専門用語リスト
Glossary
各章の専門用語を、章の順に並べています。本の用語リストと同じ説明です。
はじめに
- Python® / programming language:プログラムを作り、実行するために使う言語です。
- sqlite3 / database interface:PythonからSQLiteを操作するための標準ライブラリです。
- SQLite / database engine:この本でSQLを実行するデータベースの仕組みです。
- インメモリデータベース / in-memory database:プログラムを動かしている間、メモリの中に作るデータベースです。
- SQL / Structured Query Language:SQLは、関係データベースの構造やデータを定義・操作するための言語です。
- Web付録 / web appendix:本に関連する資料をインターネットで見られるようにした付録です。
第1章:データを使う仕事とデータベース
- データベース / database:データベースは、目的に合わせてデータを整理し、保存・検索・更新できるようにした集まりです。
- DBMS / database management system:DBMSは、データベースの構造やデータを定義・操作・制御するソフトウェアです。
- 関係データベース / relational database:関係データベースは、データを行と列からなる表で表し、表どうしを関係づけて扱うデータベースです。
- 制約 / constraint:保存するデータが守る条件です。
- 正本 / source of truth:組織で基準として扱う情報です。
第2章:表・行・列・キー
- テーブル / table:テーブルは、関係データベースでデータを行と列に整理した表です。
- 行 / row (record):行は、表の中で一つの記録を表す横方向のまとまりです。
- 列 / column (attribute):列は、表の中で記録する項目の種類を表す縦方向のまとまりです。
- 主キー / primary key:主キーは、表の各行を一意に識別するために選ぶ列または列の組です。
- 外部キー / foreign key:外部キーは、別の表のキーを参照して表どうしの関係を表す列または列の組です。
- NULL / NULL:NULLは、その列の値が存在しない、または分からないことを表す特別な値です。
- 一意性制約 / uniqueness constraint:一意性制約は、指定した列または列の組で値の重複を制限する制約です。SQLiteのUNIQUE制約では、NULLを含む組合せを重複と扱わないため、複数のNULLが登録されることがあります。
第3章:SELECTで取り出す
- SELECT / select:SELECTは、結果に出す列を指定する句です。
- FROM / from:FROMは、どの表からデータを取り出すかを示します。
- WHERE / where:WHEREは、条件に合う行を選ぶ句です。
- ORDER BY / order by:ORDER BYは、結果の行を並べる列を指定する句です。
- LIMIT / limit:LIMITは、結果として返す行数の上限を指定します。
- プレースホルダー / placeholder:プレースホルダーは、SQL文の値を入れる場所を示す記号で、実際の値をSQL文と分けて渡すために使います。
第4章:集計
- 集計 / aggregation:集計は、表の行を数えたり、列の値を計算したりして、結果をまとめる処理です。
- COUNT / count:COUNT(*)は行数を数え、COUNT(列名)はその列のNULLではない値の数を数える集計関数です。
- SUM / sum:SUM(列名)は、その列のNULLではない数値を合計する集計関数です。
- AVG / average:AVG(列名)は、その列のNULLではない数値の平均を求める集計関数です。
- GROUP BY / group by:GROUP BYは、指定した列の値が同じ行をグループにまとめる句です。
- HAVING / having:HAVINGは、集計後のグループを条件で選ぶ句です。
第5章:JOINで表を結ぶ
- INNER JOIN / inner join:INNER JOINは、指定した結合条件に合う行を結びます。
- LEFT JOIN / left join:LEFT JOINは、左側の表の行を残して右側の一致行を結び、対応行がない右側の値はNULLにします。
- ON / on:ONは、表の行を結び付ける条件を指定します。
- NULL補完行 / null-extended row:NULL補完行は、LEFT JOINで右側に一致行がないとき、左側の行を残すために作られる行です。
第6章:データを追加・更新・削除する
- INSERT / insert:INSERT(insert)は、列と値を指定して表に新しい行を追加する命令です。
- UPDATE / update:UPDATE(update)は、条件に合う行の列の値を変更する命令です。
- DELETE / delete:DELETE(delete)は、条件に合う行を表から削除する命令です。
- トランザクション / transaction:トランザクションは、一つのまとまりとして実行し、確定または取り消すデータベース処理です。
- COMMIT / commit:COMMITは、現在のトランザクションの変更を確定する命令です。
- ROLLBACK / rollback:ROLLBACK(rollback)は、確定前のトランザクションの変更を取り消す命令です。
第7章:CREATE TABLEと制約
- CREATE TABLE / create table:CREATE TABLEは、列の定義を指定してデータベースに表を作るSQLの命令です。
- データ型 / data type:データ型は、列にどのような値を保存するかを表す型です。
- TEXT / text:TEXTは、文字列を保存するために使うSQLiteの型名です。
- INTEGER / integer:INTEGERは、整数を保存するために使うSQLiteの型名です。
- REAL / real:REALは、小数を含む数値を保存するために使うSQLiteの型名です。
- NOT NULL / not null:NOT NULLは、その列にNULLを入れられないようにする制約です。
- CHECK / check constraint:CHECKは、列に入れる値が指定した条件を満たすかを確かめる制約です。
第8章:ER図と正規化
- ER図 / entity-relationship diagram:ER図は、扱うもの(エンティティ)と、その属性や関係を図で表したデータ設計図です。
- 関数従属 / functional dependency:関数従属は、ある列または列の組の値が決まると、別の列の値が一つに決まる関係です。
- 複合キー / composite key:複合キーは、複数の列を組み合わせて行を識別するキーです。
- 第1正規形 / first normal form:第1正規形は、各行の各列に一つの値を入れ、同じ種類の項目を繰り返し列にしない形です。
- 第2正規形 / second normal form:この例では、第1正規形を満たし、キー以外の列が複合キー全体で決まる形を第2正規形として学びます。
- 第3正規形 / third normal form:この例では、第2正規形を満たし、キー以外の列が、ほかのキー以外の列を通じて決まる関係を取り除いた形を第3正規形として学びます。
第9章:トランザクションと同時利用
- ACID特性 / ACID properties:ACID特性は、原子性・一貫性・独立性・永続性というトランザクションの性質を表す呼び方です。
- 原子性 / atomicity:原子性は、一つのまとまりの処理を全部行うか、全部取り消す考え方です。
- 一貫性 / consistency:一貫性は、処理の前後で定めた制約を保つ考え方です。
- 独立性 / isolation:独立性は、同時に動く処理どうしが互いに不適切な途中状態を見せないようにする考え方です。
- 永続性 / durability:永続性は、確定した変更が障害後も保たれることを目指す考え方です。
- バックアップ / backup:バックアップは、障害や誤操作に備えて、データの複製を別に保存し、必要なときに戻せるようにすることです。
第10章:安全に使い、設計を説明する
- 情報セキュリティ / information security:情報や機器が、盗まれたり、こわされたり、勝手に使われたりしないように守ることです。
- 個人情報 / personal information:個人情報は、生きている特定の人が誰か分かる情報です。他の情報と簡単に照合して分かる場合や、法律で定める個人識別符号を含む場合もあります。住所やメールアドレスは、内容や他の情報との組合せによって当てはまります。
- 情報最小化 / data minimization:情報最小化は、目的に必要な情報を決め、不要な情報を集めたり表示したりしないようにする考え方です。
- アクセス権 / access privilege:アクセス権は、利用者や役割ごとに、データの読み取りや変更などを許可する範囲です。
- 最小権限 / least privilege:最小権限は、利用者や処理に必要な範囲だけの権限を与える考え方です。
- SQLインジェクション / SQL injection:SQLインジェクションは、外部から受け取った値を不適切にSQLへ組み込むことで、意図しないSQLとして解釈されるおそれがある問題です。