AI・IT用語辞典
データベース用語集
SQL、テーブル、JOIN、インデックスなど、データを安全に扱う仕組みを学びます。
LEARNING PATH
まず覚えたいDB用語
左から順に読むと、用語同士のつながりが見えてきます。
- 01データベース大量のデータを決まった形で保存し、検索や更新を安全かつ高速に行うための仕組み。Web サービスの裏側はほぼ例外なくこれを持っています。
- 02SQLデータベースに検索や更新を指示する専用の言語。ほしい結果の条件だけを書けば、取り出し方はデータベース側が決めてくれます。
- 03テーブルデータベースが情報を行と列でしまっておく入れ物。どんな項目をどの型で持つかを先に決めておくことで、SQL から安全に検索・更新できるようになります。
- 04クエリデータベースに条件を伝えて欲しいデータを取り出す問い合わせ。SQL で書き、大量のレコードから必要な行と列だけを絞り込むために使います。
- 05JOIN複数のテーブルを共通の列で結び付け、1つの結果表にするSQLの操作。重複を避けて分けて保存したデータを、表示のたびに組み立て直します。
- 06インデックステーブルの特定の列に作る索引。全行を上から調べる代わりに目的の行へ直接たどり着けるので、検索の待ち時間が桁で変わります。
- 07トランザクション複数の SQL をひとかたまりとして扱い、全部成功か全部取り消しかに揃える単位。送金や在庫更新で中途半端な状態を防ぎます。
- 08ACIDDB のトランザクションが守るべき 4 つの性質の頭文字。途中で落ちても中途半端な残高や在庫を残さないための土台になる考え方です。
用語から探す
データベースの用語一覧
ACID
acidDB のトランザクションが守るべき 4 つの性質の頭文字。途中で落ちても中途半端な残高や在庫を残さないための土台になる考え方です。
AutoCommit
autocommitSQL を 1 文実行するたびに自動で確定させるモード。手軽な代わりに、複数文をまとめて取り消すことができなくなります。
better-sqlite3
better-sqlite3Node.js から SQLite を同期 API で扱うライブラリ。await 無しで SQL を書け、ローカルツールやテスト用 DB として広く使われます。
COMMIT
commitトランザクション中の変更を確定させ、他の接続からも見える正式なデータとしてデータベースへ書き込む操作。取り消しはできません。
HTTPメソッド
リクエストで何をしたいかを示す動詞。GET で取得、POST で作成、PUT で更新、DELETE で削除と、同じ URL でも操作を区別できます。
IndexError
indexerrorPython でリストの範囲外を指したときに出る例外。件数と添字のずれを知らせる合図なので、境界の条件を見直す手がかりになります。
LlamaIndex
llamaindex手元の文書を検索できる形に整えて LLM へつなぐ Python 向けのライブラリ。RAG の読み込みから検索までを短い記述で組めます。
MySQL
mysql世界中の Web サービスで使われている無償のリレーショナルデータベース。SQL でデータを保存・検索でき、学習用の環境も手元にすぐ用意できます。
mysql2/promise
Node.js から MySQL を扱うライブラリの Promise 版の入口。await でクエリを書けるので、コールバックの入れ子から抜けられます。
PostgreSQL
postgresqlオープンソースのリレーショナルデータベース。標準SQLへの忠実さとJSONや全文検索まで含む機能の広さから、業務システムでも定番になっています。
setAutoCommit
setautocommitJDBCで自動コミットの有無を切り替えるメソッド。複数のSQLをひとつのトランザクションとしてまとめたいときに false にします。
イミュータブル
イミュータブル作った後に中身を変えられないデータの扱い方。書き換える代わりに新しい値を作ることで、意図しない共有と予期せぬ変化を防ぐために使います。
インデックス
いんでっくすテーブルの特定の列に作る索引。全行を上から調べる代わりに目的の行へ直接たどり着けるので、検索の待ち時間が桁で変わります。
SQL
えすきゅーえるデータベースに検索や更新を指示する専用の言語。ほしい結果の条件だけを書けば、取り出し方はデータベース側が決めてくれます。
エンティティ
エンティティ業務の中で情報を記録しておきたい対象そのもの。会員や注文などを指し、DB 設計ではおおむね 1 つの表として形になります。
ORM
おーあーるえむデータベースの行をプログラムのオブジェクトとして扱う仕組み。SQL を直接書かずに取得や保存ができ、型の助けも受けられます。
カラム
カラムテーブルの縦方向の並びで、名前と型と制約を持つ 1 つの項目。行が 1 件のデータ、カラムがその中の 1 項目という関係です。
クエリ
くえりデータベースに条件を伝えて欲しいデータを取り出す問い合わせ。SQL で書き、大量のレコードから必要な行と列だけを絞り込むために使います。
クエリパラメータ
クエリパラメータURL の ? 以降に key=value の形で付ける追加情報。検索条件やページ番号など、同じ資源の見せ方を変える指定に使います。
コネクションプール
コネクションプールDB接続を毎回作らず、用意しておいた接続を貸し借りして使い回す仕組み。接続にかかる時間と同時接続数の両方を抑えられます。
サブクエリ
サブクエリSQL文の中に入れ子で書く別のSELECT文。平均より高い商品を出すなど、集計した結果を条件に使いたいときに欠かせない書き方です。
シーケンス
シーケンス重複しない連番を発行するデータベースの機能。複数の接続から同時に呼ばれても値が重ならないため、主キーの自動採番によく使われます。
シードデータ
シードデータ開発環境やテスト環境に最初から入れておく初期データ。空の DB では動作確認もデモもできないため、誰が実行しても同じ状態を作れる形で用意します。
JOIN
じょいん複数のテーブルを共通の列で結び付け、1つの結果表にするSQLの操作。重複を避けて分けて保存したデータを、表示のたびに組み立て直します。
スキーマ
スキーマテーブルや列、型、制約といったデータの入れ物の定義。どんな形のデータなら受け入れるかを先に決め、壊れたデータの混入を防ぐために書きます。
データベース
でーたべーす大量のデータを決まった形で保存し、検索や更新を安全かつ高速に行うための仕組み。Web サービスの裏側はほぼ例外なくこれを持っています。
テーブル
てーぶるデータベースが情報を行と列でしまっておく入れ物。どんな項目をどの型で持つかを先に決めておくことで、SQL から安全に検索・更新できるようになります。
デッドロック
デッドロック複数の処理が互いの持つロックの解放を待ち合い、どちらも進めなくなる状態。DBは輪を検出して片方を巻き戻し、自動で解消します。
トランザクション
トランザクション複数の SQL をひとかたまりとして扱い、全部成功か全部取り消しかに揃える単位。送金や在庫更新で中途半端な状態を防ぎます。
NoSQL
のーえすきゅーえる表形式にこだわらずデータを保存するデータベースの総称。文書型やキーバリュー型などがあり、形の揃わないデータや大量の書き込みを扱うときに選びます。
ハッシュテーブル
ハッシュテーブルキーを計算して置き場所を直接割り出すデータ構造。件数が増えても取り出す速さがほぼ変わらず、辞書型や連想配列の内部で使われています。
フォーム
フォーム利用者の入力をまとめて受け取り送信するHTMLの仕組み。文字入力や選択の部品をひとまとめにし、宛先と送信方法を指定して届けます。
プラットフォーム非依存
同じコードや成果物を、OS やハードウェアの違いを気にせず動かせる性質。実行環境が差を吸収するため、開発機と本番機がそろっていなくても動きます。
プリペアド
プリペアドSQLの文の形と、そこへ埋める値を分けて送る仕組み。値が文として解釈されないため、SQLインジェクションを根本から防げます。
フルスキャン
フルスキャンテーブルの全行を先頭から読んで条件に合う行を探す読み方。インデックスが効いていないときに起きる、遅いクエリの典型的な原因です。
プレースホルダ
プレースホルダSQL 文の値の位置だけを記号で空けておき、実行時に値を別途渡す書き方。SQL インジェクションを防ぐ基本の手段になります。
ホストゾーン
ホストゾーン1つのドメインに属する DNS レコードをまとめて管理する入れ物。ここに A や CNAME を登録して、名前からサーバーへ到達させます。
ミュータブル
ミュータブル生成したあとで中身を書き換えられる性質のこと。Python のリストや辞書がこれにあたり、共有されると意図しない変更が伝わります。
メディアクエリ
メディアクエリ画面幅や向きなどの条件に合ったときだけCSSを適用する仕組み。1枚のスタイルシートでスマホと PC の見た目を作り分けるために使います。
レコード
レコードテーブルに入っている 1 件分のデータのまとまり。列ごとに決めた型と制約に沿って値が並び、SQL の検索や更新はこの単位で行や件数を数えます。
ロック
ロック同じデータを複数の処理が同時に書き換えないよう、一時的に順番待ちを作るデータベースの仕組み。在庫や残高の矛盾を防ぎます。
外部キー
別テーブルの主キーを指す列に付ける制約のこと。存在しない相手を参照する行が紛れ込むのを、データベースの側で確実に防げます。
実行順序
SQL は書いた順ではなく FROM から評価される。順番を知れば別名が使えない理由も WHERE と HAVING の違いも説明でき、遅い原因も追える。
主キー
テーブルの行を1つに絞り込むための列。値の重複と空を許さない制約があり、更新や削除の対象を取り違えないための土台になります。
集約
集約とは、ばらばらの複数データをまとめること。ITでは主に、多数の値から合計・平均・件数など少数の結果を作る処理を指し、UMLでは別の意味を持ちます。
集約関数
複数の行をまとめてひとつの値を返すSQLの関数。件数や合計、平均を求めるときに使い、GROUP BYと組み合わせて集計します。
正規化
重複が出ないようにテーブルを分割していくDB設計の手順。更新のときに同じ情報が食い違って残る事態を、そもそも起こらない形にします。
多対多
両側がそれぞれ複数の相手とつながる関係のこと。RDBでは中間テーブルを1枚挟み、1対多を2本に分解して表現するのが定石です。
中間テーブル
多対多の関係を 2 つの一対多に分解するための表。学生と講義のように双方が複数を持つ関係を、外部キー 2 本を並べた行で記録するときに使います。
導出テーブル
FROM 句の中に書いたサブクエリを、その場限りのテーブルとして扱う書き方。集計した結果をさらに絞り込みたいときに使います。
不変更新
元の配列やオブジェクトを書き換えず、変更を反映した新しい値を作る更新のやり方。Reactで画面が再描画されない問題の対処法でもあります。
複合インデックス
複数のカラムを順番付きでまとめたインデックス。2つ以上の条件で絞り込む検索を、単独の索引を並べるより確実に速くするために作ります。
ほかの領域から探す
COURSES
DBを学べるコース
このDB用語集で扱う言葉と結びついた公開教材を、学ぶ順番がわかるコース単位でまとめました。
SQL・データベース
業務データを取り出し、壊れない形で保存する。
Node.js
ブラウザの外で、サーバーを自分で立てる。
JavaScript
コードを動かし、WebページとAPIへ広げる。
Python
おこづかい帳アプリを、実務スタイルのコードに育てる。