dポイントプレゼントキャンペーン実施中!

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

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

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

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

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

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

A 回答 (2件)

CONSTRAINTと言うのは、日本語で言うと制約で、INDEXは索引です。


制約には、主キー制約と一意制約があります(他にもありますけど省略します)。索引には、一意(重複不可)と重不可があります。

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

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

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

レコードの一意にするためにつける主キーには、通常PRIMARYKEYの属性をつけます。

なお、これは1つのテーブルに1つしかつけることができません。

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

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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!