sql >> データベース >  >> RDS >> Mysql

DBMSによるスキーマ定義

    さまざまなデータベース管理システムがスキーマを定義しています 独自の方法で。これにより、データベース開発者がスキーマとは何かを正確に把握することが困難になる可能性があります。特に、異なるDBMSを切り替える場合はそうです。

    この記事では、3つの主要なデータベースシステムで使用される定義について説明します。

    MySQL

    MySQLのドキュメントでは、概念と物理の両方の観点からスキーマを定義しています。

    概念

    概念的には、スキーマは、テーブル、テーブル列、列のデータ型、インデックス、外部キーなど、相互に関連するデータベースオブジェクトのセットです。列がテーブルを構成し、外部キーがテーブルと列を参照するなどの理由で、これらのオブジェクトはSQL構文を介して接続されます。理想的には、それらは論理的に接続され、統合されたアプリケーションまたは柔軟なフレームワークの一部として一緒に機能します。たとえば、 information_schema およびperformance_schema データベースは、名前に「スキーマ」を使用して、データベースに含まれるテーブルと列の間の密接な関係を強調しています。

    物理的

    次に、物理的な観点から、スキーマとデータベースの間に区別がないことが指摘されています。

    MySQLでは、物理的にはスキーマ データベースと同義です 。キーワードSCHEMAに置き換えることができます DATABASEの代わりに MySQL SQL構文で、たとえばCREATE SCHEMAを使用する CREATE DATABASEの代わりに 。

    出典:「MySQL用語集」。 MySQL5.7リファレンスマニュアル。 MySQL。 2016年6月6日取得。

    SQL Server

    用語集

    データベーススキーマ

    データベースのテーブル、フィールド、データ型、および主キーと外部キーの名前。

    出典:「用語集」。 SQLServer2016テクニカルドキュメント。 MicrosoftDeveloperNetwork。 2016年6月6日取得。

    SQLServerの技術記事

    データベースオブジェクトスキーマに関するこの記事では、データベースユーザーとスキーマの違いを明確に示しています(これは、以下のOracleがスキーマを定義する方法とは対照的です)。

    スキーマは、データベースオブジェクトの分離、管理、および所有権を促進するための別個の名前空間です。

    および

    データベースユーザーが所有するオブジェクトは、そのユーザーに関連付けられなくなりました。これで、オブジェクトはスキーマ(多くのデータベースオブジェクトを保持できるコンテナ)に属します。

    および

    この分離は、ユーザーがデータベースに追加される前にオブジェクトとスキーマを作成できることを意味します。また、ユーザーが所有するオブジェクトを特に削除しなくても、ユーザーを削除できることを意味します。

    出典:「SQLServerのベストプラクティス–データベースオブジェクトスキーマの実装」。 MicrosoftTechNetの記事。公開日:2008年11月。2016年6月6日取得。

    Oracleデータベース

    Oracle Databaseのスキーマ・システムは、他のシステムとはかなり異なります。 Oracleのスキーマは、データベースユーザーと非常に密接に関連しています。

    スキーマは、データの論理構造またはスキーマオブジェクトのコレクションです。スキーマはデータベースユーザーによって所有されており、そのユーザーと同じ名前を持っています。各ユーザーは単一のスキーマを所有しています。

    Oracleはスキーマオブジェクトを区別します および非スキーマオブジェクト 。つまり、一部のデータベースオブジェクトはスキーマに含めることができません。

    スキーマオブジェクト

    Oracle Databaseでは、スキーマオブジェクト 以下を含めます:

    • クラスター
    • 制約
    • データベースリンク
    • データベーストリガー
    • 寸法
    • 外部プロシージャライブラリ
    • インデックス編成のテーブル
    • インデックス
    • インデックスタイプ
    • Javaクラス、Javaリソース、Javaソース
    • マテリアライズドビュー
    • マテリアライズドビューログ
    • マイニングモデル
    • オブジェクトテーブル
    • オブジェクトタイプ
    • オブジェクトビュー
    • オペレーター
    • パッケージ
    • シーケンス
    • ストアド関数、ストアドプロシージャ
    • 同義語
    • テーブル
    • ビュー

    非スキーマオブジェクト

    Oracle Databaseでは、次のオブジェクトは非スキーマオブジェクトです。 :

    • コンテキスト
    • ディレクトリ
    • エディション
    • ポイントを復元する
    • 役割
    • ロールバックセグメント
    • テーブルスペース
    • ユーザー

    出典:「データベースオブジェクト」。 Oracle Database Online Documentation 12cリリース1(12.1)。 Oracleヘルプセンター。 2016年6月6日取得。


    1. SQL Serverシステムデータベース–Tempdbのメンテナンス

    2. OracleDropグローバル一時テーブルを強制する

    3. 複数のクエリに対するPDOのサポート(PDO_MYSQL、PDO_MYSQLND)

    4. SQLエラー:ORA-00933:SQLコマンドが正しく終了していません