SQLデータベースの主キー:とは何か、利点と選択方法
公開: 2021-05-25目次
主キーとは何ですか?
SQLで新しいデータベースを設計するには、他に類を見ない選択肢があります。 適切な主キーを特定することは、あなたがしなければならない最も重要な決定の1つです。 主キーの根本的な目的は単純明快です。
主キーは、2つの基本的な役割を果たします。 1つは、関係を定義するのに役立ちます。 2つ目は、この関係を実装するのに役立ちます。 つまり、主キーがないと、リレーショナルデータベースは存在しません。 当然のことながら、主キーの概念は珍しいように聞こえます。
しかし、気づかずに日常生活で主キーを使用していると言ったらどうなるでしょうか。 私たちの一日の目覚めた瞬間には、文字通りデータベースの世界の主キーに囲まれていますが、それでも私たちはそれらを当然のことと思っています。 たとえば、学生証について考えてみましょう。 これは、主キーの必要性の典型的な例です。 同様に、各従業員には固有の会社コードがあり、世界の各国には固有の名前とコードがあります。
読む: SQLでの正規化
主キーの利点は何ですか?
SQLの主キーは、テーブルからの単一の値またはいくつかの値の組み合わせとして定義されます。 テーブル内の各レコードを明確に表します。 この値にアクセスすると、同じレコードの他の値に加えて、関連するレコードをテーブルに配置するためのタイムリーなアクセスが保証されます。 この時点で、提起すべき重要な質問があるかもしれません。 各テーブルに主キーを生成することは必須ですか? 絶対違う。
SQLでは、主キーを作成する必要はありません。 ただし、データベースモデリングの最良かつ最も効率的な方法では、SQLのすべてのテーブルに主キーを作成することを強くお勧めします。 テーブル間の共通のリンクフィールドであることに加えて、主キーの利点は複数あります。
以下のリストは、主キーの主な利点をまとめたものです。
- 主キーはインデックスとして機能するため、レコードの並べ替えや検索などの速度ベースのデータベース操作が高速になります。
- 主キーは、特定のデータベーステーブル内の一意の行をすばやく識別して見つけるのに役立ちます。
- セーフモードでは、主キーを使用して特定のレコードのみを一意に識別できるため、更新と削除が大量のデータではなく特定の行にのみ影響するようになります。
- データベース内の他のテーブルで外部キーとして使用すると、参照整合性を維持するのに役立ちます。
主キーを選択する方法は?
テーブルは、SQLデータベースの主要なオブジェクトを構成します。 これらのテーブルは、データをレコードまたは行として格納します。 したがって、テーブルの各行を識別するには、同じテーブルで、行ごとに異なる入力値を持つ列を見つける必要があります。 たとえば、すべての米国市民に関するデータを含むテーブルがあると仮定します。 'social_security_number'という名前の列は、そのようなテーブルのある行を別の行と区別するのに役立ちます。
同様に、別の例を考えてみましょう。 プライベートバンクに普通預金口座のテーブルがあるとします。 'account_number'という名前の列を使用して、このテーブルの特定の行を一意に識別することができます。
これらの両方の例で、テーブルの行ごとに異なる値、つまり「social_security_number」と「account_number」の列を特定したら、主キーを作成できます。 この主キーは、特定した特定の列に基づいて、テーブルのすべての行のメイン識別子になります。
したがって、模範的なデータベース設計のマークは、SQLの主キーです。 したがって、選択した主キーは100%一意である必要があり、データの各行に主キーの一意の値が存在する必要があることは言うまでもありません。 通常、個人は、データベース管理システム自体に依存して一意の識別子を生成する傾向があります。
強力な主キーの特徴は次のとおりです。
- 強力な主キーは通常、長さが短く、コンパクトで、可能な限り少ない属性が含まれています。 長いデータ型と複合キーはSQLを複雑にします。 主キーの長さは900バイトを超えてはなりません。
- 完全に数値である主キーは、クエリのパフォーマンスを向上させるのに役立ちます。
- 特殊文字または大文字と小文字の組み合わせの使用は避けてください。 SQLが文字列値を数値よりも比較するのにかなり長い時間がかかるため、テキストデータ型の使用は避けてください。
- 郵便番号、電子メールアドレス、社会保障番号など、同じ行の主要でない列からの識別可能な情報は避けてください。 主キーが実際のデータに基づいている場合、将来のある時点で変更する必要がある可能性があります。これは、モデリングの方法としてはお勧めできません。 主キーが任意の識別子である場合、ユーザーに表示されるデータは後で変更される可能性がありますが、識別子は変更する必要はありません。
- 主キーの値は安定している必要があり、変更しないでください。
主キーは、すべての行が主キー列に一意の空でない値を持つようにするための技術的なメカニズムを採用していることに注意する必要があります。 これは、レコードの主キー値をnullにすることはできないことを意味します。 さらに、主キー列に重複が見つかった値を持つnewを挿入しようとしたとします。 その場合、新しい行の挿入は主キーによって拒否されます。
チェックアウト: SQLプロジェクトのアイデアとトピック
複数の列を持つ主キー
場合によっては、自然な1列の主キーが存在しません。 主キーを定義するために複数の列が使用される場合、それは複数列または複合主キーと呼ばれます。 たとえば、列が「customer_name」、「reservation_day」、「reservation_time」、「number_of_people」のテーブル「reservation」があるとします。
ここで、「customer_name」を主キーとして単独で使用することはできません。これは、当然、顧客が異なる日に、または同じ日に複数の予約を行う可能性があるためです。 したがって、主キーに「reservation_day」と「reservation_time」を追加して、値ごとに組み合わせを一意にします。
この考慮事項は、32列を超えてはなりません。 列の数が多いほど、必要なストレージスペースも大きくなります。 複数列の主キーを追加する構文は、単一列の主キーを追加する構文とは異なります。
世界のトップ大学からオンラインでソフトウェアエンジニアリングコースを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
まとめ
カスタマーケアに電話して、顧客番号を尋ねられたことはありますか? あなたはそれを忘れているかもしれません、それは彼らがあなたの郵便番号または電話番号をあなたに尋ねるときです。
なぜだろうと思ったことはありますか? 簡単な答えは主キーです。 長い答えは、主キーの利点はすべてのデータベースシステムの出発点であるということです。 主キーがないと、データベースは現在機能しているように機能しません。正確には、データベースはまったく機能しません。
SQL、フルスタック開発について知りたい場合は、フルスタックソフトウェア開発におけるIIIT-B&upGradのエグゼクティブPGプログラムをチェックしてください。これは、働く専門家向けに作成され、10以上のケーススタディとプロジェクト、実践的なハンズオンワークショップを提供します。業界の専門家とのメンターシップ、業界のメンターとの1対1、400時間以上の学習とトップ企業との仕事の支援。
SQLの主キーとは何ですか?
主キーは、エンティティのIDを定義するために使用される一意の値を持つフィールドです。 主キーが定義されると、それを削除または変更することはできません。 実際、主キーはテーブルの特別な特性であり、テーブルの関係の基礎になります。 主キーは常にテーブルの最初の列で定義され、変更することはできません。 これは、データの論理的および物理的なレコード構造において非常に重要な役割を果たします。 主キーはレコードを一意に識別するために使用されるため、候補キーと呼ばれます。
SQLの主キーの特徴は何ですか?
主キーは、テーブル内の各レコードを一意に識別する列または列のグループです。 テーブルに含めることができる主キーは1つだけです。 整合性を維持するには、主キーが常に必要です。 主キーは、互いに異なる列の組み合わせで構成する必要があります。 主キーが1つの列のみで構成されている場合、それは単純主キーと呼ばれます。 データベースエンジンは、主キーを使用して、データベース内のレコードを見つけて更新します。 Nullは定義されていないか不明であることを意味するため、主キーをNullにすることはできません。 主キーは、単一列または複数列にすることができます。 主キーの値は、一意または非一意にすることができます。 主キーには、インデックスを作成する機能があります。 主キーは、データベースエンジンがテーブルの整合性を維持するのに役立ちます。 主キーはデータベースで簡単に識別できます。
SQLで主キーを選択する方法は?
主キーは、テーブル内で最も重要な列です。 これらは、各レコードを一意に識別するためにアプリで使用されるIDです。 主キーとして選択するフィールドは、nullではなく一意である必要があります。 主キーは通常、インデックス作成に最適な候補列です。 主キーは次の目的で使用されます。テーブル内の各レコードの一意の参照。データが既にあるレコードのIDを検索し、各行の主キーに有効な値があることを確認します。 テーブル内のデータが有効で一貫性を保つようにするには、すべての主キー値が一意であり、主キー値がnullでないことを確認してください。