質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

1回答

8321閲覧

主キーとクラスタ化インデックスの違いが判らない。

S_Masato

総合スコア7

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2018/06/10 02:24

前提・実現したいこと

前提事項
・SQLの解析をして、ER図を作成する。
・主キーを設定する記述がなく、クラスタ化インデックス設定の記述がある。

ほしい答え
・主記の通り、主キーとクラスタ化インデックスは
どう違うのか教えていただきたい。

発生している問題・エラーメッセージ

とくになし。

該当のソースコード

記述不可

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2018/06/10 02:33

データベースエンジンは何でしょうか。
退会済みユーザー

退会済みユーザー

2018/06/10 02:33

DB は何か(SQL Server? Oracle? MySQL? その他?)を書かなくても、ここに書いてあること以外は何も知り得ない第三者が質問に答えられるのでしょうか?
S_Masato

2018/06/10 03:04

ご質問有難うございます。前提となる記述が不足しており申し訳ございません、大変失礼いたしました。SQLServerとなります。
sazi

2018/06/10 03:31

SQL Serverタグは付けた方が良いかと。
退会済みユーザー

退会済みユーザー

2018/06/10 04:26

質問本文に SQL Server であることと、そのバージョン・エディションを書いていただくようお願いします。あと、sazi さんがコメントされているように SQL Server のタグをつけておくのもお願いします。
S_Masato

2018/06/10 14:54

saziさん、SurferOnWwwさん すみません、大変失礼いたしました。今後質問させていただく際注意いたします。
S_Masato

2018/06/10 15:09

取り急ぎ、本質問について、SQL Serverのタグを追加いたしました。バージョンについてはすみません、私も知人より依頼を受けたのですが、何もわからないというところで、SQLを読み解いてSQLServerであるところまで分かったといったところでした。SQLを読んだ限り、2008のような気がしたものの確証がないので確認出来次第記載とさせてください。
guest

回答1

0

ベストアンサー

DBMSが不明なので、断言はできませんが、一般的にクラスタ化というのは、分散のことです。
クラスタ化インデックスの用途としてはクラスタ化に必要なインデックスであり、そのデータが一意のキーを持っているかどうかには関係しません。

追記

SqlServerということなので、以下が参考になるでしょう。
[DB] クラスタ化インデックスは主キーにつけないほうがいいかも

投稿2018/06/10 02:35

編集2018/06/10 03:25
sazi

総合スコア25184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

S_Masato

2018/06/10 03:12

ご回答ありがとうございます。 クラスタ化INDEX=あくまでインデックスであり、主キーとは関係ないのですよね。 DBMSを開示できておらず申し訳ありませんが、以下イメージのSQLとなります。 クラスタ化インデックスが主キーと定義しているように見える。 しかし、この記述から主キーはクラスタ化インデックス(hogeIDを昇順にしたもの?)なのか 主キー≒クラスタ化インデックス?という疑問からでした。 CREATE TABLE [AAA] ( [hogeID] int NOT NULL, [hogeChar] nvarchar(32) NULL, [hogehoge] int NOT NULL CONSTRAINT [hogeID_PK] PRIMARY KEY CLUSTERED ( [hogeID] ASC ) WITH (PAD_INDEX = OFF, <いろいろ設定>) ON [PRIMARY] ) ON [PRIMARY] GO
sazi

2018/06/10 03:27

>クラスタ化インデックスが主キーと定義しているように見える。 SQL Server Management Studioを使用されてデフォルトでそうなったのかと思われます
S_Masato

2018/06/10 15:00

ご回答ありがとうございます。 当該サイトを読み違えてました...。 おかげ様で、デフォルトでクラスタ化インデックスが主キーに設定されるのが MSの仕様になると思われるということで認識しました。 クラスタ化インデックス、主キーの違いについて理解しておらず恥ずかしい質問失礼いたしました。 この度は本当にありがとうございます。 大変助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問