- ベストアンサー
インデックスについて
オラクルのインデックスについて教えてください。 ObjectBrowserというソフトでオラクルDBを管理しているのですが、 インデックスとCONSTRAINTというものの違いが良くわかりません。 現在ObjectBrowserで、インデックスを重複不可にすることで、そのテーブルの 主キーとしています。しかし、CONSTRAINTでPRIMARYKEYも設定できることに 最近気づきました。 ObjectBrowserに限らず、この違いについて教えてもらえないでしょうか? どのような時にインデックスを使い、CONSTRAINTのPRIMARYKEYはこのような時に 使用するという風にお教えていただければ幸いです。 何分、データベース初心者なもので... 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
CONSTRAINTと言うのは、日本語で言うと制約で、INDEXは索引です。 制約には、主キー制約と一意制約があります(他にもありますけど省略します)。索引には、一意(重複不可)と重不可があります。 制約と索引の違いは、制約はデータの整合性を保証するもので、索引は検索スピードを向上させるものです。 主キー制約は、一意でありかつNOT NULLでかつ、一つの表に一つだけです。 一意制約は、一意であるのは同じですが、NULLも認めますし、一つの表にいくつも作ることが出来ます。 以上を踏まえて、データの検索スピードを向上するときにはインデックスを作成します。また、主キー制約というのは、一意キーのうち代表的なものの一つと考えるといいです。
その他の回答 (1)
- taka_tetsu
- ベストアンサー率65% (1020/1553)
レコードの一意にするためにつける主キーには、通常PRIMARYKEYの属性をつけます。なお、これは1つのテーブルに1つしかつけることができません。 主キーのほかにも一意となるフィールド(または組み合わせ)があるのであれば、ユニークインデックスをつける、というのが普通だと思います。 #MS-SQLServerの古いバージョンではユニークインデックスしかなかったらしいですが。