スキーマは正確に何を意味しますか?ストアドプロシージャとテーブルは異なるスキーマを持つことができますか? スキーマを使用して構造を指定するにはどうすればよいですか? は、スキーマを通してオブジェクトを識別するピエッサイアを格納していますか?スキーマは正確に何を意味しますか?ストアドプロシージャとテーブルは異なるスキーマを持つことができますか?
答えて
スキーマは、データベーステーブルとそれらが互いにどのように関係しているかを示します。ストアドプロシージャもデータベースの一部ですが、スキーマの一部ではありません。
http://en.wikipedia.org/wiki/Database_schema
を更新詳しく読む: ストアドプロシージャが誤ってデータベーススキーマの一部ではないとして言及されています。
onedaywhenの答えは正しいものです。
SQL Serverのスキーマは、.netの "namespace"と似ています。 SQL Server 2005以降は正しく実装されているため、古代の歴史には触れません。
スキーマは一般的に使用されているテーブル定義、キーなども参照しています。これは私が推測する "構造"の意味です。この意味は別のものであり、名前空間の意味は異なります。
名前空間の意味でのスキーマとは、WebGUIスキーマやデスクトップスキーマに、たとえばデータスキーマやストアドプロシージャにテーブルを持たせることを意味します。 WebGUI.GetOrdersは、Data.Orderテーブルを参照します。この
一つの利点は、セキュリティがより簡単です:あなたがオブジェクト
それは主観的である上にないスキーマに付与します。 Wikipediaスキーマ はテーブル、フィールド、 関係、ビュー、索引、 パッケージ、プロシージャ、ファンクション、 キュー、トリガー、タイプ、シーケンスを定義し、リレーショナルデータベースでは、
を教えて、 は、マテリアライズド・ビューを、同義語、データベース リンク、ディレクトリ、Java、XMLスキーマ、 および他の要素。
。これは、@ niktrsの回答とは逆ですが、スキーマからプロシージャを明示的に除外しているためです。
DBMSがサポートしていないデータベース制約を適用する必要がありました(たとえば、CHECK
という制約でサブクエリが必要な場合)、私はベーステーブルから更新パーミッションを削除し、 'ヘルパー'テーブルを更新するために使用されなければならないprocを格納します。これらのサーカスでは、ストアドプロシージャがスキーマの一部を形成すると主張することができます。
私は質問者に「あなたのスキーマを投稿してください」とそのストアドプロシージャを投稿した場合(その質問に関連する場合)、私は1つは不平を言わない);
少なくともダウン投票のコメントはありますか?あらかじめありがとう – niktrs
スキーマは、SQL Server 2005の「名前空間」を意味します。たとえば、Data.myTableまたはWebGUI.GetOrders – gbn
@gbnが正しいとします。私の答えをリンクで更新しました。ありがとう! – niktrs