私はデータベースに不慣れです。スキーマを作成するときに、MySQLではデータベースであるのに対し、SQLServerではデータベース内のスキーマである理由を知りたいです。誰かが私にそれを説明できますか?
2 に答える
SQLサーバーの場合
データベーススキーマは、テーブル、ビュー、ストアドプロシージャなどのオブジェクトを論理的にグループ化する方法です。スキーマは、オブジェクトのコンテナと考えてください。ユーザーのログイン権限を単一のスキーマに割り当てて、ユーザーがアクセスを許可されているオブジェクトにのみアクセスできるようにすることができます。スキーマはデータベースで作成および変更でき、ユーザーにはスキーマへのアクセスを許可できます。スキーマは任意のユーザーが所有でき、スキーマの所有権は譲渡可能です。
詳細については、有名なSQLAuthorityブログ http://blog.sqlauthority.com/2009/09/07/sql-server-importance-of-database-schemas-in-sql-server/をご覧ください。
MySQLでは
スキーマの作成は、データベースの作成に似ています。 http://dev.mysql.com/doc/refman/5.0/en/create-database.html
ベンダーが異なれば、説明、分離、描写の方法も異なり、同じ単語を異なる方法で使用することもできます。MySQLは何らかの理由で(Oracleとよりインラインであると思います)スキーマとデータベースを同じものと呼びますが、SQLServerには複数のスキーマを含むことができるデータベースがあります。どちらかを「もっと正しい」と宣言できるかどうかはわかりませんが、直感的でなくても、違いを知るだけです。私が思うANSI規格をチェックして、標準化団体が意図したものとより一致しているものを確認することができます。
MySQLとSQLServerのチームに参加してもらい、なぜ彼らが彼らのやり方を選んだのかを述べることができない限り、この質問に対する正当な答えを得ることに本当に挑戦しているかどうかはわかりません。これらの選択を行った人々は、まだそれぞれのチームに所属している可能性が低いことを念頭に置いてください)。