データベーステーブルを正規化するプロセスの一環として、冗長な列は、上位レベルのテーブルから別の補助テーブルに抽出されます。これは、一部のフィールドが親エンティティと1対多の関係にあるために発生することがよくあります。例えば、Navicat Data Modelerを使用して生成された次のモデルを取り上げてみましょう:
当初、appraisal(査定)はupsテーブルの一部でしたが、1回のアクセスで複数のvehicle(車両)が査定される可能性があるため、データの冗長性が生じました。したがって、upsテーブルからvehicleフィールドを削除し、独自のテーブルに配置することが理にかなっていました。
第3正規形(3NF)への正規化の欠点は、メインテーブルに多数のIDフィールドが存在することです。データベース実務者としてテーブルを見ると、各ID列がどのエンティティを指しているのかを知ることが非常に困難になります。実例として、上記のモデル図のupsテーブルを見て、CSR、customer(顧客)、およびvehicleが全て、基礎となるエンティティの識別にまったく役立たない数値IDにどのように変換されているかに注目してください:
これは、自動インクリメントIDの使用と正規化に部分的に関係していますが、いずれにしても、ビューを作成することでデータをはるかに読みやすくすることができます。データベースビューはデータベースのサブセットであり、1つ以上のデータベーステーブルで実行されるクエリに基づいています。データベースビューは名前付きクエリとしてデータベースに保存され、頻繁に使用される複雑なクエリを保存するために使用できます。
Navicat 16, we can create a new view by choosing File -> New -> View... from the main menu:
新規ビュータブが追加されます。
次のステップでは、ビューフィールドを生成するSQLステートメントを追加します:
ステートメントの作成にヘルプが必要な場合は、タブツールバーにあるプレビュー、説明、ビュービルダ、SQLを整形ボタンを使用します。
結果を表示する前にビューが作成されるのを待ちたくない場合は、プレビューボタンをクリックして今すぐ表示できます:
ID列には、より説明的で意味のあるテキストデータが含まれるようになりました。
タブボタンの下には、さらに3つのタブ(定義、詳細、SQLプレビュー)があります。詳細タブには、アルゴリズム、定義者、セキュリティ、チェックオプションなどの追加オプションが含まれており、SQLプレビューには生成されたCREATE VIEWステートメントが表示されます:
新しいビューは、保存するまで`無題`という名前が付けられます。この時点で、ビュー名を指定できるダイアログが表示されます:
保存すると、新しいビューが左側のナビゲーション ウィンドウに追加され、いつでも呼び出すことができます:
Navicat 16でのビューの作成に関する最終的な考え方
今日のブログでは、データベースビューについて学び、IDフィールドを介して多数の従属テーブルにリンクするテーブル内のレコードを識別するのに役立つデータベースビューを作成するプロセスを説明しました。