データベースとスキーマの違い


166

SQL Serverのデータベースとスキーマの違いは何ですか?どちらもテーブルとデータのコンテナです。

スキーマが削除された場合、そのスキーマに含まれるすべてのテーブルも自動的に削除されますか、それともデータベースが削除されるときに削除されますか?

回答:


171

データベースはメインコンテナーであり、データとログファイル、およびその中のすべてのスキーマが含まれます。常にデータベースをバックアップします。データベースはそれ自体が個別のユニットです。

スキーマはデータベース内のフォルダーのようなものであり、主に論理オブジェクトをグループ化するために使用されます。これにより、スキーマによる権限の設定が容易になります。

追加の質問のために編集

drop schema test1

メッセージ3729、レベル16、状態1、行1
オブジェクト 'copyme'によって参照されているため、スキーマ 'test1'を削除できません。

使用中のスキーマは削除できません。まず、スキーマからすべてのオブジェクトを削除する必要があります。

関連読書:

  1. SQL Serverスキーマにはどのようなメリットがありますか?
  2. MSDN:ユーザーとスキーマの分離

5
SQL Server 2005以降のバージョンでは、データベースオブジェクトの作成中にスキーマ名を指定しないと、デフォルトですべてがDBOスキーマ内に入りますか?
sqlchild

@sqlchildはいそうです。スキーマが必要です。すべてのオブジェクトはスキーマに保持されるため、デフォルトはdboです
RichardTheKiwi

クライアントごとに個別のデータベースを作成するのではなく、同じデータベースでテーブルを複製し、スキーマごとに異なるクライアントに従ってグループ化することを検討しますか?
Yevgraf Andreyevich Zhivago 2014

AWS Redshiftのロジックは同じですか?誰でも?AWSに関して、私は2つの間で混乱しています。
Aakash Basu

19

スキーマは、データベース内のオブジェクトを分類する方法です。複数のアプリケーションが単一のデータベースを共有していて、すべてのアプリケーションがアクセスする共通のデータセットがある場合に役立ちます。


12

データベースはスキーマを含むデータのコンテナのようなものであり、スキーマはデータ型、関係などのテーブルのレイアウトです


1
これは特にSQL Serverには当てはまりません。テーブルには一般的なデータベースのスキーマがありますが、SQL Serverのスキーマ(理由を知っている人のための)も事実上、テーブルを含む名前空間です(これらのテーブルにも従来の意味でのスキーマがあります)。マイクロソフトが彼らのために選んだ残念な名前- namespaceはるかに適切です。
SacredSkull 2018年

7

スキーマは、データベース内のテーブル、テーブルの列、関連性を示します。各データベースには独自のスキーマがあります。


しかし、スキーマを明示的に作成せず、スキーマ名を指定せずにテーブルを作成する場合、テーブルはどこに作成されますか。デフォルトでは、これらはdboスキーマに含まれている必要があります。ね?
sqlchild

はい。ただし、通常はスキーマを手動で処理せず、管理ツールから、またはORMツールの最初のコード機能を使用してテーブルを作成します
Robert

私はSQLサーバー管理スタジオを使用しており、スキーマ名については言及していません
sqlchild '16年

4

SQL Serverのスキーマは、テーブル、ビュー、ストアドプロシージャなどの他のデータベースオブジェクトの定義を概念的に保持するオブジェクトです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.