AI・IT用語辞典

データベース用語集

SQL、テーブル、JOIN、インデックスなど、データを安全に扱う仕組みを学びます。

52語を収録SQL設計検索・集計運用

LEARNING PATH

まず覚えたいDB用語

左から順に読むと、用語同士のつながりが見えてきます。

  1. 01データベース大量のデータを決まった形で保存し、検索や更新を安全かつ高速に行うための仕組み。Web サービスの裏側はほぼ例外なくこれを持っています。
  2. 02SQLデータベースに検索や更新を指示する専用の言語。ほしい結果の条件だけを書けば、取り出し方はデータベース側が決めてくれます。
  3. 03テーブルデータベースが情報を行と列でしまっておく入れ物。どんな項目をどの型で持つかを先に決めておくことで、SQL から安全に検索・更新できるようになります。
  4. 04クエリデータベースに条件を伝えて欲しいデータを取り出す問い合わせ。SQL で書き、大量のレコードから必要な行と列だけを絞り込むために使います。
  5. 05JOIN複数のテーブルを共通の列で結び付け、1つの結果表にするSQLの操作。重複を避けて分けて保存したデータを、表示のたびに組み立て直します。
  6. 06インデックステーブルの特定の列に作る索引。全行を上から調べる代わりに目的の行へ直接たどり着けるので、検索の待ち時間が桁で変わります。
  7. 07トランザクション複数の SQL をひとかたまりとして扱い、全部成功か全部取り消しかに揃える単位。送金や在庫更新で中途半端な状態を防ぎます。
  8. 08ACIDDB のトランザクションが守るべき 4 つの性質の頭文字。途中で落ちても中途半端な残高や在庫を残さないための土台になる考え方です。

用語から探す

データベースの用語一覧

全用語の索引を見る

ACID

acid

DB のトランザクションが守るべき 4 つの性質の頭文字。途中で落ちても中途半端な残高や在庫を残さないための土台になる考え方です。

AutoCommit

autocommit

SQL を 1 文実行するたびに自動で確定させるモード。手軽な代わりに、複数文をまとめて取り消すことができなくなります。

better-sqlite3

better-sqlite3

Node.js から SQLite を同期 API で扱うライブラリ。await 無しで SQL を書け、ローカルツールやテスト用 DB として広く使われます。

COMMIT

commit

トランザクション中の変更を確定させ、他の接続からも見える正式なデータとしてデータベースへ書き込む操作。取り消しはできません。

HTTPメソッド

リクエストで何をしたいかを示す動詞。GET で取得、POST で作成、PUT で更新、DELETE で削除と、同じ URL でも操作を区別できます。

IndexError

indexerror

Python でリストの範囲外を指したときに出る例外。件数と添字のずれを知らせる合図なので、境界の条件を見直す手がかりになります。

LlamaIndex

llamaindex

手元の文書を検索できる形に整えて LLM へつなぐ Python 向けのライブラリ。RAG の読み込みから検索までを短い記述で組めます。

MySQL

mysql

世界中の Web サービスで使われている無償のリレーショナルデータベース。SQL でデータを保存・検索でき、学習用の環境も手元にすぐ用意できます。

mysql2/promise

Node.js から MySQL を扱うライブラリの Promise 版の入口。await でクエリを書けるので、コールバックの入れ子から抜けられます。

PostgreSQL

postgresql

オープンソースのリレーショナルデータベース。標準SQLへの忠実さとJSONや全文検索まで含む機能の広さから、業務システムでも定番になっています。

setAutoCommit

setautocommit

JDBCで自動コミットの有無を切り替えるメソッド。複数の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・データベース

業務データを取り出し、壊れない形で保存する。

公開中 4コース・104レッスン
学習SQL入門編検索・絞り込み・集計を身につける
学習SQL実践編複数表を結び、安全に更新する
学習設計編壊れないテーブルを設計する
道場道場編司書「この蔵書データ、集計できますか?」
学ぶ順番を見る

Python

おこづかい帳アプリを、実務スタイルのコードに育てる。

公開中 10コース・142レッスン
学習Python入門編動くスクリプトを書けるようになる
学習Python演算子・制御編値を比べて処理を分ける
学習Pythonループ・関数編繰り返しを関数へ分ける
学習Pythonコレクション編リストと辞書でデータを整理する
ほか6コース
学ぶ順番を見る

Java

業務システムの定番言語で、APIサーバーまで組む。

公開中 12コース・246レッスン
学習Java入門編基礎文法とクラスのきほん
学習Java制御構文編条件分岐で処理を組み立てる
学習Java反復・メソッド編繰り返しを部品へ分ける
学習Java配列・コレクション編複数のデータを安全に扱う
ほか8コース
学ぶ順番を見る

技術面接対策

コーディング面接と設計面接に、自分の言葉で答えられるようにする。

公開中 5コース・197レッスン
学習System Design編設計の判断を数字で説明する
学習アルゴリズム基礎編典型問題を自力で実装する
学習アルゴリズム応用編木・グラフ・高度なDPを解く
道場道場編カメ師範「十の巻、開いてみるか」
ほか1コース
学ぶ順番を見る
すべてのコースを見る