Navicatブログ

MySQL外部キー制約のガイド 2023年6月2日 Robert Gravelle

正規化のプロセス中に、個別のエンティティを表すフィールドのグループが、より大きなテーブルやより中心的なテーブルから別のテーブルに削除されます。次に、共通フィールド(通常はID)を使用して、それらの関係を維持します。以下に例を示します:

film_id_fk (34K)

リレーショナルデータベースでは、テーブル間の参照整合性は外部キー制約を使用して強制されます。

このブログでは、外部キーの仕組みと、 Navicat 16 for MySQL を使用してMySQLで外部キー制約を作成する方法について説明します。

Navicat 16でのビューの作成 2023年5月19日 Robert Gravelle

データベーステーブルを正規化するプロセスの一環として、冗長な列は、上位レベルのテーブルから別の補助テーブルに抽出されます。これは、一部のフィールドが親エンティティと1対多の関係にあるために発生することがよくあります。例えば、Navicat Data Modelerを使用して生成された次のモデルを取り上げてみましょう:

ups_model (189K)

PostgreSQLのマルチバージョン同時実行制御 2023年5月12日 Robert Gravelle

ほとんどのデータベースシステムでは同時実行制御にロックが使用されますが、PostgreSQLは少し異なる方法で動作します。つまり、マルチバージョンモデル(Multi-Version Concurrency Control、略してMVCCとも呼ばれます)を使用してデータの一貫性を維持します。その結果、データベースにクエリを実行すると、基になるデータの現在の状態に関係なく、各トランザクションはしばらく前のデータのスナップショットを参照します。これにより、同じデータに対する他の同時トランザクション更新によって引き起こされる可能性のある不整合なデータをトランザクションが表示することがなくなり、データベースセッションごとにトランザクションが分離されます。このブログ記事では、MVCCプロトコルの仕組みの概要を簡単に説明するとともに、MVCCアプローチの長所と短所についても説明します。

PostgreSQLでのクエリのタイムアウトの設定 2023年5月5日 Robert Gravelle

Navicat Monitor 3 のクエリアナライザー画面の上部には、待ち時間が最も長いクエリを示すチャートがあります:

Screenshot_Navicat_Monitor_LongRunningQueries (102K)

遅延クエリは全てのクラッシュを引き起こしてしまう可能性があるため、遅延クエリを特定することが重要です。

トリガーを使用した監査証跡ログの実装 2023年4月28日 Robert Gravelle

データベース監査の背後にある考え方は、データベーステーブルに誰がいつアクセスしたか、テーブルにどのような変更が加えられたかを把握することです。これは、エンタープライズレベルのアプリケーションの標準的な最小要件とみなされているだけでなく、銀行業務やサイバーセキュリティなどの多くの分野の法的要件でもあります。データベース監査証跡は、不正アクセス、問題のある設定変更など、アプリケーションのあらゆる種類の問題を調査するために不可欠です。

今日のブログでは、rentalテーブルを監査するために、MySQL Sakilaサンプルデータベース にログを追加します。データベースはDVDレンタルストアのビジネスプロセスを表すため、これはキーテーブルです。

ブログのアーカイブ
シェア