リレーショナルデータベース
データを表形式のテーブルで管理し、テーブル同士の関係で情報を扱うデータベースです。
顧客、案件、商品、明細などを分けて管理できます。
業務システムのデータ設計でよく使われます。
Time Columns
DX, Web, AI
Time Glossary
業務データ、AppSheet、SQL、システム設計で使うRDBMS関連の基本用語です。
Database / RDBMS
業務データを扱うときに必要になる、テーブル、キー、リレーション、正規化、SQLなどの基本用語を整理します。
データを表形式のテーブルで管理し、テーブル同士の関係で情報を扱うデータベースです。
顧客、案件、商品、明細などを分けて管理できます。
業務システムのデータ設計でよく使われます。
Relational Database Management Systemの略です。
リレーショナルデータベースを作成、保存、検索、更新するための管理システムです。
PostgreSQL、MySQL、SQL Serverなどが代表例です。
同じ種類のデータを行と列で管理する表です。
顧客テーブル、商品テーブル、申請テーブルなどのように分けます。
AppSheetやスプレッドシート設計でも基本になる考え方です。
テーブル内の1行分のデータです。
顧客1件、申請1件、商品1件などを表します。
業務データでは、後から追跡できる単位になります。
テーブル内の列です。
氏名、金額、日付、ステータスなど、データの項目を表します。
後から集計や検索をしやすくするには、項目を適切に分けることが重要です。
レコードを一意に識別するための値です。
IDやコードなど、重複しない値を使います。
リレーションやデータ更新の基準になります。
別のテーブルの主キーを参照するための値です。
顧客IDを案件テーブルに持たせるような形で、テーブル同士をつなぎます。
データの関係性を保つために使います。
テーブル同士の関係です。
顧客と案件、請求書と明細、商品とカテゴリなどのつながりを表します。
業務データを重複なく管理するために重要です。
データの重複や矛盾を減らすために、テーブルを適切に分ける設計です。
同じ情報を複数箇所に持たせないようにします。
後から修正しやすいデータ構造を作るために使います。
検索速度や表示のしやすさを優先して、あえて重複したデータを持つ設計です。
集計用、表示用、履歴保存用などで使われることがあります。
便利ですが、更新時の整合性には注意が必要です。
リレーショナルデータベースを操作するための言語です。
データの検索、追加、更新、削除に使います。
SELECT、INSERT、UPDATE、DELETEなどが基本です。
データベースに対する問い合わせや処理命令です。
条件に合うデータを取り出したり、集計したりします。
SQL文そのものを指すこともあります。
データ検索を速くするための仕組みです。
本の索引のように、目的の行へ到達しやすくします。
便利ですが、増やしすぎると更新処理が重くなることがあります。
複数の処理を一つのまとまりとして扱う仕組みです。
途中で失敗した場合に、処理前の状態へ戻すことができます。
入金処理や在庫更新など、整合性が重要な場面で使われます。
データベースの構造や定義です。
テーブル、カラム、型、制約、関係などを含みます。
業務システムでは、データ設計の設計図に近いものです。
業務上、管理したい対象を表す概念です。
顧客、商品、案件、申請、請求書などが例です。
テーブル設計の元になる考え方です。
複数のレコード同士が相互に複数対応する関係です。
商品とタグ、ユーザーと権限などが例です。
中間テーブルを使って管理することが多いです。
値が存在しないことを表す特別な状態です。
0や空文字とは意味が異なります。
検索条件や集計で意図しない結果を生むことがあるため、扱いに注意が必要です。
データを保存し、検索や更新ができるように管理する保管場所です。業務では顧客、案件、請求、在庫などの情報を整理して扱う基盤になります。
テーブル内の1行分のデータです。日本語ではレコードと呼ばれることが多く、顧客1件や注文1件などを表します。
複数のカラムを組み合わせてレコードを一意に識別するキーです。単独のIDではなく、年月と番号、親IDと明細番号のような組み合わせで使います。
同じ値の重複を許さない制約です。メールアドレス、会員番号、外部システムのIDなど、一意であるべき項目に使います。
NULLを許可する設定です。未入力を認める項目か、必ず値を入れる項目かを分けるために使います。
値が指定されなかったときに自動で入る初期値です。作成日時、ステータス、フラグなどで使われます。
第一正規形のことです。ひとつの項目に複数の値を詰め込まず、表として扱いやすい形にする正規化の基本段階です。
第二正規形のことです。複合キーの一部だけに依存する項目を分け、データの重複や更新ミスを減らします。
第三正規形のことです。主キー以外の項目に依存する情報を分け、業務データの矛盾を起こしにくくします。
顧客、商品、社員、部門など、他の業務データから参照される基準情報を持つテーブルです。
受注、請求、入金、問い合わせ履歴など、日々発生する業務の動きを記録するテーブルです。
コードや分類、選択肢の意味を参照するためのテーブルです。画面表示や入力候補の管理で使われます。
多対多の関係を管理する中間テーブルです。ユーザーと権限、商品とカテゴリなどをつなぐときに使います。
親子関係で階層的にデータを整理する構造です。組織、カテゴリ、フォルダ構成などで使われます。
同じ構造が自分自身を参照する設計です。親カテゴリIDを持つカテゴリテーブルのように、階層を表すときに使います。
データベースからデータを取得するSQL文です。条件、並び替え、集計、結合と組み合わせて使います。
テーブルに新しいレコードを追加するSQL文です。フォーム送信やデータ取り込みで使われます。
既存レコードの値を変更するSQL文です。条件指定を誤ると広範囲を書き換えるため注意が必要です。
テーブルからレコードを削除するSQL文です。実務では物理削除ではなく削除フラグで扱うこともあります。
対象データがあれば更新し、なければ追加する処理です。外部データ同期やマスタ更新で使われます。
複数のテーブルを関連するキーで結合するSQLの操作です。顧客と案件、伝票と明細のような関係を扱います。
両方のテーブルで条件に一致するデータだけを取得する結合です。共通部分を取り出すときに使います。
左側のテーブルを基準にし、右側に一致するデータがあれば結合する方法です。未紐づきデータを残して確認するときに便利です。
指定した項目ごとにデータをまとめるSQL句です。顧客別売上、月別件数、ステータス別集計などで使います。
取得結果を指定した項目で並び替えるSQL句です。日付順、金額順、名前順などに使います。
取得、更新、削除の対象を条件で絞るSQL句です。実務では最も事故を防ぐために確認すべき部分です。
GROUP BYで集計した結果に対して条件をかけるSQL句です。件数や合計値で絞り込むときに使います。
複数のSELECT結果をひとつにまとめるSQLの操作です。同じ形の一覧を結合するときに使います。
SQL文の中に入れ子で書く問い合わせです。条件や集計結果をもとに別の検索を行うときに使います。
WITH句で一時的な結果セットに名前を付ける書き方です。複雑なSQLを段階的に読みやすくできます。
行ごとの明細を残したまま、順位、累計、前後行との差分などを計算するSQL機能です。
データの物理的な並びに近い形で使われるインデックスです。DB製品によって仕様が異なります。
テーブル全体を順番に読み込む検索です。件数が多いテーブルでは遅くなりやすく、インデックス設計の確認対象になります。
データベースがSQLをどう実行するかを示す計画です。インデックス利用や結合順序の確認に使います。
SQLの実行計画と実際の実行状況を確認するための機能です。遅いSQLの原因調査で使います。
SQL、インデックス、テーブル設計、実行計画を調整して処理を効率化することです。
一覧取得の後に各行ごとの追加クエリが大量発生する問題です。ORM利用時の性能劣化でよく出ます。
よく使うデータや計算結果を一時保存し、再利用して処理を速くする仕組みです。
クエリ結果を実体として保存するビューです。集計や重い検索を速くするために使います。
トランザクション内の変更を確定する操作です。確定後は他の処理からも変更後の状態として扱われます。
トランザクション内の変更を取り消し、処理前の状態に戻す操作です。失敗時の整合性維持に使います。
トランザクションが満たすべき原子性、一貫性、独立性、永続性の性質です。データの信頼性を考える基本概念です。
同時に動くトランザクション同士が、互いの変更をどの程度見えるようにするかを決める設定です。
複数の処理が互いに相手のロック解除を待ち続け、進めなくなる状態です。
同時更新による矛盾を防ぐために、データや処理対象を一時的に制御する仕組みです。
衝突は少ない前提で更新時にバージョンなどを確認する排他制御です。Webアプリや業務アプリでよく使われます。
衝突が起きる前提で対象データを先にロックする排他制御です。競合を避けたい処理で使います。
Write Ahead Logの略です。SQLiteなどで変更内容を先にログへ記録し、整合性と性能を両立させる仕組みです。
SQLiteのWALモードで使われる共有メモリ関連ファイルです。複数接続の状態管理に関係します。
SQLiteで不要領域を整理し、データベースファイルを再構成する操作です。
SQLiteの設定や内部情報を確認、変更するための命令です。journal_modeやtable_infoなどで使われます。
SQLiteで変更時の記録方式を決める設定です。DELETE、WALなどのモードがあります。
レコード追加時にIDを自動採番する仕組みです。SQLiteでは通常のINTEGER PRIMARY KEYとの違いも意識します。