こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

インデックスについて

オラクルのインデックスについて教えてください。

ObjectBrowserというソフトでオラクルDBを管理しているのですが、
インデックスとCONSTRAINTというものの違いが良くわかりません。

現在ObjectBrowserで、インデックスを重複不可にすることで、そのテーブルの
主キーとしています。しかし、CONSTRAINTでPRIMARYKEYも設定できることに
最近気づきました。

ObjectBrowserに限らず、この違いについて教えてもらえないでしょうか?

どのような時にインデックスを使い、CONSTRAINTのPRIMARYKEYはこのような時に
使用するという風にお教えていただければ幸いです。

何分、データベース初心者なもので...
宜しくお願い致します。

投稿日時 - 2002-06-22 19:59:41

QNo.297856

すぐに回答ほしいです

質問者が選んだベストアンサー

CONSTRAINTと言うのは、日本語で言うと制約で、INDEXは索引です。
制約には、主キー制約と一意制約があります(他にもありますけど省略します)。索引には、一意(重複不可)と重不可があります。

制約と索引の違いは、制約はデータの整合性を保証するもので、索引は検索スピードを向上させるものです。

主キー制約は、一意でありかつNOT NULLでかつ、一つの表に一つだけです。
一意制約は、一意であるのは同じですが、NULLも認めますし、一つの表にいくつも作ることが出来ます。

以上を踏まえて、データの検索スピードを向上するときにはインデックスを作成します。また、主キー制約というのは、一意キーのうち代表的なものの一つと考えるといいです。

投稿日時 - 2002-06-23 02:32:09

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

レコードの一意にするためにつける主キーには、通常PRIMARYKEYの属性をつけます。なお、これは1つのテーブルに1つしかつけることができません。

主キーのほかにも一意となるフィールド(または組み合わせ)があるのであれば、ユニークインデックスをつける、というのが普通だと思います。

#MS-SQLServerの古いバージョンではユニークインデックスしかなかったらしいですが。

投稿日時 - 2002-06-23 00:54:09

あなたにオススメの質問