0-9
- 1NF, First Normal Form, 第1正規形
- 繰り返し項目のない状態。
- 1PC, One-phase commit protocol, 1相コミットプロトコル
- 2相コミットプロトコルと比較して1相なので、そう呼ぶ。主サイトが従サイトにデータ更新し、その後、何の確認もせずにコミット命令を発する。主サイトおよび従サイトがダウンすると、ACIDは保てない。
- 2NF, Second Normal Form, 第2正規形
- 部分関数従属のない状態。
- 2PC, Two-phase commit protocol, 2相コミットプロトコル
- 分散データベースにおいて、ACIDを保証するための制御プロトコルのこと。主サイトが従サイトにデータ更新し、その後、コミット可否を従サイトに確認してから、コミット命令を発することで、ACIDを保証する。ただし、完全な保証はできず、従サイトがダウンするとACIDを保てない。ただし、この2PCが最も使われている、とのこと。
- 2PL, Two-phase locking, 2相ロック, ツーフェーズロック
- トランザクションを並列実行する際に、ACIDを保証するためのロック法の1つ。並列実行した結果と直列実行した結果を同様にするために用いる(いわゆる直列可能性を保証するため)。ロックする資源がいくつかある際に、すべてロックしてから、処理を行い、終わったらすべてをアンロックする方法。ロックとアンロックの2相に完全に分かれているので、2相ロックと言う。特に1相目を成長フェーズ、2相目を縮退フェーズと呼ぶ。この方法では、同一資源を事なる順序でロックするため、デッドロックが発生する可能性がある。
- 3NF, Third Normal Form, 第3正規形
- 推移的関数従属のない状態。
- 3PC, Three-phase commit protocol, 3相コミットプロトコル
- 2相コミットプロトコルにさらにコミット可否確認からコミットまでの間に、一度、プレコミットを行う。プレコミットが実行できたことを確認してから、コミットを行う。これで、ほぼACIDを確保できる。ただし、確認が多すぎるため、ネットワークトラフィックが増大し、分散データベースの性能を悪化させてしまうので、あまり採用されない。
- 4NF, Fourth Normal Form, 第4正規形
- 5NF, Fourth Normal Form, 第5正規形
A
- Access, Microsoft ACCESS
- データベースソフトの1つ。
- ACID
- Atomicity, Consistency, Isolation, Durabilityの総称。日本語で言えば、原子性、一貫性、隔離性、永続性。
- ADO, ActiveX Data Objects
- ARCHIVE
- ストレージエンジンの1つ。
- ARIES, Algorithm for Recovery and Isolation Exploiting Semantics
- Artificial key, alias key, surrogate key, 人工キー, 別名キー, 代替キー
- たとえばデータの一意性を保つために用いる連番などのことで、データベースに格納する情報とは本質的には異なり、あくまで管理用などのために生み出したキーのこと。
- Attribute, 属性
- Atomicity, 原子性 (*1)
- ACIDの1つ。ある一連の操作について、一連の操作は全て行われるか、全く行われないかの2状態しかないこと。つまり中途半端な状態で処理が終わることはないこと。原子性がない場合、操作は中途半端な状態で終了し、大抵の場合、その中途半端な操作の結果、中途半端なデータを作り出し、データに異常が生まれる。実際に、原子性を保つためには、各トランザクションの処理を始めたときに、データベースをロックしたり、トランザクション中はデータベースに操作結果を反映せずに、操作がすべて終わった時にコミット(確定処理)によって反映するか、ロールバック(取り消し処理)を行う。
- Atomicity, 原子性 (*2)
- 関連モデルの関連表において、各行の値(属性値)が多重化されていないこと。もし多重化されていない場合、原子性がなく、非正規形である、という。
B
- B Tree, B木
- B+ Tree, B+木
- Bachman diagram, バックマン線図
- ER図(ERモデルを図式化する方法)の1つ。
- Barker-Ellis notation, バーカー記法
- ER図(ERモデルを図式化する方法)の1つ。
- BLACKHOLE
- MySQLのストレージエンジンの1つ。
- Bottom-Up Design, ボトムアップアプローチ, ボトムアップデザイン
- 現行システムを見て、その具体的な属性を洗い出し、それを正規化しつつ、概念データモデルを作成する手法。トップダウンアプローチの逆。
- Boyce-Codd normal form, ボイス・コッド正規形
- 任意の関数従属において、それが自明な関数従属だったり、独立変数がスーパーキーである関係表のこと。
C
- Candidate key, 候補キー
- テーブルの行を一意に識別できる属性または属性の組のこと。スーパーキーとは違い、候補キーを成す属性のうち、1つでも欠けると、候補キーとして成立しない。スーパーキーは、余計な属性が入っていても良い。
- Cardinality, カーディナリティ、多重度
- ER図などで、「1対1」や「1対多」、「多対多」のように、実体などの項目同士の数的関係性を表すもの。英語としては「濃度」を意味する。
- Cartesian product, 直積
- Checkpoint, チェックポイント
- DBMSは基本的にメモリ上に読み込んだデータに対して読み書きを行う。このため、障害が発生するとメモリ上のデータは復旧できない。これを防ぐため、メモリ上のデータを定期的に補助記憶装置に書き出すようにしている。この書き出すタイミングをチェックポイントと呼ぶ。つまり、チェックポイント以前のデータは全て補助記憶装置に書き出されていることが保証されている。チェックポイントは大きく2つに分類できる。1つは、チェックポイントでデータを補助記憶装置に書き出している際には、一切のトランザクション処理が実行されないというもので、チェックポイント時点でのデータの一貫性が保証される。もう1つは、チェックポイントでデータを補助記憶装置に書き出している際にもトランザクションが実行できる方法で、こちらはチェックポイント時点での終了していないトランザクションが原因でデータの一貫性は保てなくなる。(ただし、そのトランザクションは、WALによってログが先に書き出されているため、復旧時点に於いて、正しいトランザクション処理を実行することで、データを一貫性を保ちつつ、復旧することが可能になる。)
- Class Diagram, クラス図
- UMLが規定する図。クラスの名前や内包する情報、操作や、関連するクラスを図解したもの。
- Clustering, クラスタリング
- Cold restart, コールド・リスタート、寒再開
- データベースの異常を検知できず、完全に停止してしまった後に、バックアップから復旧を行い、データベースシステムを再開する方法。
- Column-oriented DBMS, Columnar Database, 列指向DBMS, 列指向データベースマネジメントシステム, カラムナデータベース
- 行ごとにデータを蓄えるのではなく、列ごとにデータを蓄える形式のDBMS。行指向DBMSよりも集計処理が高速である。
- Conceptual Data Model, 概念データモデル
- データモデルのうち、DBMSやハードに依存しないデータモデル。データモデリングする際に、対象世界の情報を収集し、整理したもの。ユーザーやアプリケーションからの見た目をモデル化したもので、システム開発に関わるメンバーが理解し共有できる設計書となる。大きな機能は2つ、「情報を格納するデータを定義すること」、「その整合性を保つこと」。
- Conceptual Schema, 概念スキーマ
- Consistency, 一貫性
- ある操作の結果、データに不整合が起きないこと。たとえばマイナスの値を禁止するデータに対し、結果がマイナスの値をとるような操作を行うとエラーになること。
D
- DASD, Direct Access Storage Device, 直接アクセス記憶装置
- ハードディスクのようなランダムアクセスが可能な記憶媒体のこと。
- Database, データベース
- 情報資源管理である。現実世界の情報を収集し、分析し、蓄えておき、利用するためのもの。
- Database Failures, データベース障害
- データベースには、ソフトウェアの不具合による障害、ディスク故障による障害など、様々な原因で障害が発生する。データベースは基本的には、このように障害を前提として、その障害が発生しても、なるべく即座に復旧できるようにしている。データベース障害には、いくつか種類がある。
- Database Failures - Transaction Failure, トランザクション障害
- トランザクションの処理中に、たとえばデッドロックが発生し、それを検出したり、0除算が発生したり、メモリが不足したり、データに不整合が発生した場合に発生する障害。
- Database Failures - System Failure, システム障害
- 電源切断、DBMSサービス(デーモン)の強制終了など、システムで発生する障害。
- Database Failures - Media Failure, 媒体障害
- ハードディスクやSSDなどの補助記憶装置で発生する障害。
- Data dictionary, データディクショナリー、データ辞書
- 主にRDBMSにおいて、表の定義に関わる情報を格納する領域のこと。C++でいえば、クラス定義を書くヘッダーに当たる。
- Data mining, データマイニング
- Data model, データモデル
- 現実世界の情報をまとめたもの。モデルという言葉は難しいが、「モデル=模型」の意味で、現実世界の情報を必要な情報だけまとめたミニチュアのようなものだろうか。
- Data modeling, データモデリング, モデル化
- 現実世界の情報を元に、データモデルを作り出す行為。
- DBMS, Data Base Management System,データベース管理システム,データベースマネジメントシステム
- Decision tree, デシジョンツリー, 決定木
- Dicing, ダイシング
- Difference, 差
- Dimension table, ディメンションテーブル
- Dirty Read, ダーティリード
- 分散データベースなどによって、並列実行されたトランザクションで、片側のトランザクションの処理中の値が他方のトランザクションによって読み込まれてしまうこと。
- Division, 商
- DDL, Data Definition Language, データ定義言語
- DML, Data Manupulation Language, データ操作言語
- Domain, ドメイン, 値域
- Drilling, ドリリング
- Drill down, ドリルダウン
- Drill up, ドリルアップ
- DRM, Data Resource Management, データ資源管理
- 電子化された情報管理のこと。電子化されていない情報も含んだ管理は、IRMと呼ぶ。
- Durability, 永続性
E
- Emergency Start, 緊急再開
- データベースシステムgあ障害を検出した際に自動的復旧を行い、サービスを再開すること。
- Entity, エンティティ, 実体
- データベースで管理される情報のこと。スキーマが「型」なら、エンティティはその型をはめた情報。インスタンス。
- ERD, E-R Diagram, Entity-Relationship Diagram, E-R図, 実体関連図
- E-Rモデルを図示したもの。バックマン線図、バーカー記法、IE記法、IDEF1X、UMLなどの方法で図示する。
- ERM, E-R Model, Entity-Relationship Model, E-Rモデル, 実体関連モデル
- 概念データモデルの表現方法の1つ。「実体」と「関連」という2つの要素で現実世界の情報を表す。
- Equijoin, 等結合
F
- Fact table, ファクトテーブル
- FALCON
- MySQLのストレージエンジンの1つ。
- FASMI, Fast Analysis of Shared Multidimensional Information
- FD, Functional Dependency, 関数従属性
- 関係データベースで、ある属性の値が決まれば別の属性が一意に決まる関係性のこと。Xが決まればYが決まるという数学の関数に準えて「関数」従属性と呼ばれる。
- FFD, Full Funcational Dependency, 完全関数従属
- 関数従属性の1つ。複合キーな候補キーに従属する属性があった際に、その属性は、複合キーを構成する属性には従属しないこと。
- Firebird
- Flat File Database, フラットファイルデータベース
- Full outer join, 完全外結合
G
- GIN, 汎用転置インデックス
- GiST, Generalized Search Tree, 汎用検索ツリー, 多次元木
H
- Hash Table, ハッシュテーブル
- HDBMS, Hierarchical DBMS, 階層型DBMS
- 階層構造(木構造)を持ったDBMS。ポインタによってデータを連結して管理するため、データモデルを再構成することが難しい。
- Hierarchical database model, 階層型データベースモデル, 階層モデル
- 木構造で定義される概念データモデル。あるセグメントは、複数の下位セグメントを持つ事が出来る。ただし、あるセグメントは上位セグメントを唯一1つしか持つ事が出来ない。
I
- IDED1X
- ER図(ERモデルを図式化する方法)の1つ。米国連邦政府標準。
- IE notation, Information Engineering notation, IE記法
- ER図(ERモデルを図式化する方法)の1つ。
- IMDB, MMDB, インメモリデータベース, メインメモリデータベース
- データを主にメインメモリに記録するデータベース。ディスクストレージデータベースよりも高速に動作する。これは単にディスクが遅いことだけに起因しない。遅いデバイスが混ざることが複雑な最適化必要であるが、IMDBはそのような最適化が不要なので、より高速である。とは言っても、障害時に備えて、ログ等を補助記憶装置に記録はしている。
- Index, インデックス, 索引
- データベースに格納されたデータ(レコード)を効率よく見つけ出しアクセスするための機能。いくつかのメジャーな索引方式がある。
- Index - B+ Tree Index, B+木索引
- B+木を用いた索引方式。多くのRDBMSに実装されている索引方式。平均アクセス時間がO(logN)となる。
- Index - Bitmap Index, ビットマップ索引
- レコードキーの種類が少なく重複が多いアクセスに適する。
- Index - Clustered Index, クラスタ索引
- アクセスが高速であるが、追加の多いアクセスには耐えない。
- Index - Hash Index, ハッシュ索引
- アクセスが高速であるが、範囲検索はできない。
- Index - 相対編成ファイル
- アクセスが高速であるが、レコードキーが連番である必要がある。
- InnoDB
- ストレージエンジンの1つ。MySQL5.5からデフォルトストレージエンジンとなった。
- InterBase
- Inner Join, 内部結合
- RDBMSにおいて、二つのテーブルを結合する方法の1つ。直積による結合。単純には、テーブルの各タプルを組み合わせる。そのため、結果としてはN個のデータを持つテーブルと、M個のデータを持つテーブルがあるときに、結合するとN×M行のテーブルになる。
- Intersection, 交わり, 交差
- IRM, Information Resource Management, 情報資源管理
- DRMに加えて、電子化されていない情報も含む管理のこと。
- ISAM, Indexed Sequential Access Method, 索引付き順次アクセス方式
- Isolation, 独立性、分離性
- ACIDのひとつ。トランザクションの操作途中で、他のトランザクションから操作中のデータが見えないように独立させておくこと。もし、操作途中のデータが見えてしまうと、間違った判断をしたり、全体の整合性が保てなくなる。よくある例えは、銀行の入金トランザクションと出金トランザクションで、5万円の入金をしようとすると、「残高の読み込み」→「5万円を足す」→「コミット」の順に操作を行う。一方、出金トランザクションが、「残高の読み込み」→「10万円を引く」→「コミット」の順に操作を行うとすると、これらが並列処理されたときに、ほぼ同時に「残高の読み込み」を行い仮に100万円だったとして、先に出金トランザクションが10万円を引いて90万円、次に入金トランザクションが自身が読み込んだ100万円の残高に5万円を足して105万円、出金トランザクションが90万円をコミット、入金トランザクションが105万円をコミットすると、本当は95万円になるべきにも関わらず、処理順序によって、残高が変わってしまう。ということで、互いに操作途中を開始した時点で、操作途中に値が見れないようにデータベースをロックすることが多い。そうすれば、最初の「残高の読み込み」を片方のトランザクションがした時点で、他方のトランザクションは「残高の読み込み」を行えなくなり、先のトランザクションが終わってから、操作を実行できるようになる。独立性をどの程度にすればよいかは、操作により異なり、独立性を高めれば高めるほど、データベースのパフォーマンスは悪くなる。このため、トランザクション独立性のレベル「トランザクション分離レベル」を設定する必要がある。
- Isolation levels, トランザクション分離レベル, 隔離レベル, 独立性レベル, 隔離性水準レベル
- 必要性については、前項の「Isolation」を参照のこと。ANSI/ISO SQLでは、分離レベルの高い順に「SERIALIZABLE(直列化可能)」、「REPEATABLE READ(繰り返し読み取り可能)」、「READ COMMITTED(コミット済み読み取り)」、「READ UNCOMMITTED(コミット前読み取り)」を定義している。それぞれについては、次項を参照のこと。
- Isolation levels - SERIALIZABLE
- 同時に実行しても、順番に実行しても同じ結果になることが保証される分離レベル。もっとも独立性が高い。
- Isolation levels - REPEATABLE
- トランザクション途中で、何度か値を読み込んだ時に、その値が変わらないことが保証される分離レベル。ただし、ファントムリードは発生する。
- Isolation levels - READ COMMITTED
- 値を読み込んだ際に、その値がコミット済みの値であることが保証される分離レベル。ただし、ファントムリードおよびノンリピータブルリードは発生する。
- Isolation levels - READ UNCOMMITTED
- 他トランザクションが操作途中の値を読み込んでしまう分離レベル。ファントムリード、ノンリピータブルリード、ダーティリードが発生する。
J
- JDBC, Java Data-Base Connectivity
- Java用のデータベース接続API。ODBCと同じくデータベースへの接続を統一化するためのもの。
- JDBC Driver
- JDBC APIの実装。接続先データベースに応じて、実装が変わる。JDBC自体が抽象クラスとすれば、JDBC Driverは具象クラス。
- Journaling file system, ジャーナリングファイルシステム
K
- Key, キー
L
- Left outer join, 左外結合
- LINQ
- Logical Data Model, 論理データモデル
- Logical Schema, 論理スキーマ
- Lost Update, ロストアップデート
- 分散データベースなど、トランザクションを並列実行した際に、十分な分離レベルが設定されていない場合に、片側のトランザクションが実行した結果が、もう片方のトランザクションによって上書きされることによって、一切、失われること。
M
- Marcket bascket
- MDDB, Multi-Dimensional Database, 多次元データベース
- MEMORY
- ストレージエンジンの1つ。
- Metadata, メタデータ
- MOF, Meta-Object Facility
- 詳細は、UMLを参照。
- MOLAP, MDDB-OLAP
- MongoDB
- MyISAM
- ストレージエンジンの1つ。
- MVD, Multivalued Dependency, 多値従属性
- MySQL
N
- Natural join, 自然結合
- Natural key, 自然キー
- NDBMS, Network DBMS, ネットワーク型DBMS
- ネットワーク構造を持ったDBMS。ポインタによってデータを連結して管理するため、データモデルを再構成することが難しい。
- Neural network, ニューラルネットワーク
- Network database model, ネットワーク型データベースモデル, ネットワークモデル
- 網構造を持つ概念データモデル。階層モデルの「上位セグメントは1つ」という制約がネットワークモデルにはない。
- None-Repeatable Read, Fuzzy Read, ノンリピータブルリード, ファジーリード
- 分散データベースなどにおいて、並列実行されるトランザクションで、片側のトランザクションで同じ条件のクエリを2回以上実行した際に、結果が変わること。これは他方のトランザクションで条件に合致するデータが削除または変更され、それが2回目のクエリで読めてしまうことが原因。ファントムリードとの違いに注意。
- NoSQL, Not only SQL
O
- ODBC, Open Database Connectivity
- データベース接続API。JDBCと同じくデータベースへの接続を統一化するためのもの。データベースの形式が何であれ、データへのアクセス方法を統一した方が、そのデータを扱うプログラムの適用先が広がるので、用いる。しかし、現実的にはデータベースの形が変わればアクセス方法も変えなければ、パフォーマンスは出ないし、変化があれば、隠れていた不具合が表面する可能性もあり、理想通りにはいかない。なので、実際には、その考え方や基本的な仕組みのみが同じで、プログラムの修正コストを安く済ますためのもの、と捉えた方が良いだろう。
- ODBC Driver
- ODBC APIの実装。
- OLAP, On-Line Analytical Processing
- Old Master-New Master
- Optimistic concurrency control, 楽観的並行性制御, 楽観アルゴリズム
- トランザクションの並列実行において、ACIDを保証するための方法。データの参照時には何もせず、他トランザクションが何もしていないと楽観的に考えているアルゴリズム。データ参照時にはロックしないが、トランザクションの開始時にデータのタイムスタンプ等を記録しておき、トランザクション終了時にタイムスタンプが更新されていないことを確認してからデータ更新する。タイムスタンプが更新されていれば、他トランザクションがデータを更新していることを意味するので、ロールバックして、自身のトランザクションをやり直す。
- Optimistic lock, 楽観的ロック
- 楽観的並行性制御と同意。
- OODBMS, Object Relational DBMS, オブジェクト指向DBMS
- ORDBMS, Object Relational DBMS, オブジェクト関係DBMS
- Outer Join, 外結合
- RDBMSにおいて、二つのテーブルを結合する方法の1つ。左外部結合と右外部結合があるが、大差はない。テーブルAとテーブルBを結合する際に、「A×B」と書くか「B×A」と書くかの違いしかない。(行列計算で、交換法則が成り立たないことがあることを思い出して欲しい。)具体的には、「A×B」のときはテーブルAの各行ごとに、テーブルBの行を組み合わせて行く。組み合わせる際は、[A.x = B.y」のように結合条件を指定するため、合致しない行が出てくる。そういった行は、「左」に指定したテーブルAにある行は残るが、「右」に指定したテーブルBの行はA.xと合致するB.yがないため残らない。
P
- Pessimistic concurrency control, 悲観的並行性制御, 悲観アルゴリズム
- 楽観的並行性制御と対比して、トランザクションを開始する際にデータをロックしてしまうアルゴリズムのこと。他トランザクションが動かない場合は、無駄にロックしてしまい、参照でさえも時間がかかってしまうことがある。
- Pessimistic lock, 悲観的ロック
- 悲観的並行性制御と同意。
- PFD,Partial Functional Dependency,部分関数従属
- 関数従属性のひとつ。複合キーな候補キーがあったときに、その複合キーな候補キーを構成する属性に別の属性が関数従属している関係をいう。複合キーの一部に従属しているので、部分関数従属。なお、正規化のお話で「部分関数従属を排除すべし」とは、複合キーを構成する属性に「非キー属性」が部分関数従属しているものを排除することであって、複合キーを構成する属性に別の候補キーが部分関数従属していても良い。この部分関数従属を取り除いた状態は完全関数従属しているという。
- Phantom Read, Phantoms, ファントムリード
- 分散データベースなどにおいて、並列実行されるトランザクションで、片側のトランザクションで同じ条件のクエリを2回以上実行した際に、結果が変わること。これは他方のトランザクションで条件に合致するデータが追加され、それが2回目のクエリで読めてしまうことが原因。ノンリピータブルリードとの違いに注意。
- Physical data model, 物理データモデル
- PK, Primary key, 主キー
- 主キーは、テーブルの行を一意に識別できる候補キーのうち、そのテーブルの意味としてふさわしいと考えられる候補キーのこと。テーブル設計者が決める。
- PostgreSQL
- Projection, 射影
- Pure Functional Data Structure, 純粋関数型データ構造
Q
- Query
- Query Optimization, クエリ最適化
R
- RDBMS, Relational DBMS, 関係DBMS
- データを表形式で管理するDBMS。集合論に基づいている。世の中の、たいていのデータベースはRDBMS。
- Relation, リレーション, 関係
- リレーショナルモデルにおいて、現実世界のデータを表すもの。「見出し(Heading)」と「本体(Body)」で表す。リレーショナルモデルの1つ「SQL」では、リレーションは「テーブル」に相当する。「見出し」は「属性(Attribute)」の集合で、「本体」は「タプル(tuple)」の集合。
- Relational Algebra, 関係代数
- Relational Database, 関係データベース
- Relational Model, リレーショナルモデル, 関係モデル
- 現実世界のデータを「リレーション」で表現するデータモデル。SQLはリレーショナルモデルの1つ。
- Relationship, リレーションシップ, 関連
- エンティティ間の関係性を表す。
- Replication, レプリケーション
- 負荷分散などのためにデータベースの複製(レプリカ)を作成する機能の事。
- REST, Representational State Transfer
- ソフトウェアアーキテクチャの1つ。4つの設計原則を元にソフトウェアを構築することで、ウェブのようなスケーラブルなシステムを作れるという考え。原則は、ステートレス、CCRUD操作、リソースへの一意な識別子、リソース同士のリンク機能。
- REST Resource, RESTリソース
- RESTにおけるデータのこと。このリソースは、一意に識別でき、他のリソースへのリンクを持つことがある。
- RESTafarian, レスタファリアン
- REST原則の愛好家のこと。
- RESTful
- REST原則にしたがって設計されたソフトウェア。
- Restriction, 制限, Selection, 選択
- Right outer join, 右外結合
- Roll, ロール
- リレーションシップ(関連;エンティティ間の関連)に書きたす情報。それぞれのエンティティの役割を表す。たとえば会社エンティティと人エンティティには、リレーションシップが存在するが、そのロールは、雇用主、従業員と書くことになる。
- Rollback, ロールバック
- トランザクション障害発生時に、そのトランザクションを実行する直前の状態にまでデータを戻すこと。
- Rollforward, ロールフォワード
- Row-oriented DBMS, 行指向データベースマネジメントシステム
- Row-oriented DBMS, 行指向DBMS, 行指向データベースマネジメントシステム
- 行ごとにデータを蓄えるDBMS。
- Rule, ルール
- RDBMSにおいて、テーブルの特定項目の値域などを設定する事。DBMSでチェックしてくれるようになるので、クライアント・アプリケーションなどでチェックが不要になり、アプリケーションの保守性や生産性を上げる事ができる。
S
- Schema, スキーマ
- データ構造のこと。英語では「図解」などを意味する名詞だが、語源である古代ギリシア語の「σχῆμα」には「型」や「形」という意味がある。
- Serializability, 直列化可能性, 直列可能性
- 並列実行した結果と直列実行した結果を同様になること。
- Semijoin, 準結合, セミジョイン
- 分散データベースにおいて、結合処理に必要な最低限の情報だけを他サイトに送信し、その結合結果を自サイトにも結合する併合(マージ)に近い結合方法。必要最低限のデータを送るので、通信負荷を押さえることが出来る。
- Shadow Paging, シャドウページング
- Shard, シャード
- データベースを複数のサーバーに分散させてできる分散してできたデータベースの事。
- Sharding, シャーディング
- データベースを複数のサーバーに分散させる事。
- Slicing, スライシング
- SQL, Structured Query Language
- SQLite
- Snow flake, スノーフレーク
- SPIDER
- MySQLのストレージエンジンの1つ。
- Star schema, スタースキーマ
- Stereotype, ステレオタイプ
- UMLで規定されるプラグイン的なもののこと。UML自身を拡張するための表記として存在している。UML2.0では、「Standard Stereotypes」として、L1=19個、L2=12個、L3=3個を規定していて、使用者はこの規定されているもの以外のステレオタイプを独自に規定しても良いことになっている。
- Strage Engine, ストレージエンジン
- MySQLのストレージアクセス部分をつかさどるモジュールの名称。
- Stored Procedure, ストアドプロシージャ, Persistent Storage Module, 永続格納モジュール
- DBMSの拡張機能、SQLの拡張機能の1つ。一定のSQLの組み合わせをデータベースサーバー内に登録しておき、それを命令として呼び出す方法。
- Subquery, 副問合せ
- 通常のクエリ式の内部に、クエリ式を書き条件の一部として使用する。たとえば、あるテーブルの平均値を超えるデータのみを取り出すような場合、平均値をクエリ式で書き、その平均値を超えるクエリ式を書く。
- Superblock, Super block, スーパーブロック
- Superkey, スーパーキー
- テーブルの行を一意に指すことができる属性あるいは属性の組のこと。候補キーとの違いは、候補キーは一意性を保てる最小限の属性であり、スーパーキーは余計な属性が組み合わされていてもスーパーキーと言える。つまり、候補キーは、スーパーキーの一部である。(主キーは候補キーの一部)。
T
- Table, テーブル, 表
- TFD,Transitive Functional Dependency,推移的関数従属
- Three schema approach, 3層スキーマ
- ANSI/SPARCにより提唱されたデータベース構造の設計手法。データベース構造、すなわちスキーマを決定する際に、将来に発生しうる「変更」に強いデータベース構造を構築する方法。具体的に、データベース構造を「概念スキーマ」、「外部スキーマ」、「内部スキーマ」の三層に分けて定義する。これにより論理データ独立性と、物理データ独立性を保つことができる。
- Timestamp-based concurrency control, 時刻印ロック, 時刻印アルゴリズム
- トランザクションの並列実行において、ACIDを保つために行うロック法のひとつ。データの参照時刻、データの更新時刻、トランザクションの時刻を元に、同時実行制御をする方法。要は、トランザクション処理中に、他トランザクションがデータを更新した事を検知し、ロールバックしてやり直し、データベースの一貫性を保つ。他トランザクションがデータを更新したかどうかは、前述の時刻(タイムスタンプ)を比較する事で実現する。
- Top-Down Design, トップダウンアプローチ, トップダウンデザイン
- 対象世界の情報を概念データモデルとして作成し、それから徐々にエンティティに必要な属性を定義して行く方法。
- Transaction, トランザクション
- データの操作をひとまとめにしたもの。ただし、このトランザクションは中途半端な状態を許さない。たとえば、あるトランザクションには4つの操作A,B,C,Dを順に実行するものとする。このとき、操作Cが失敗したとき、それはトランザクション全体の失敗を意味し、操作A,Bも行わなかったことにする必要がある(原子性)。また、操作Bまで行った途中の段階のデータの状態が他のトランザクションから見えてはいけない(独立性)。仮に独立性が保たれていないと、全体の整合性を保てなくなる。
- Tree locking protocol, 木制約ロック
- トランザクションを並列実行する際に、ACIDを保証するためのロック法の1つ。並列実行した結果と直列実行した結果を同様にするために用いる(いわゆる直列可能性を保証するため)。直列可能性を保証しつつ、デッドロックも起きない。簡単に言えば、資源をロックする際に、必ず順序を守ってロックするだけのこと。その資源の順序を有向木として定義し、その木の有向グラフ通りにロックを行う。有向木の各ノードに同じ資源が複数回現れるとロック順序が一定にならず、デッドロックを起こすので注意が必要。ロックは、有向木の途中のノードにある資源からでもロックする事が可能。アンロックの順序については、自由。
- Trivial Functional Dependency, 自明な関数従属
- 関数従属の独立変数と従属変数の関係が部分集合である場合。例:「{A,B}→A」
- Trigger, トリガー
- DBMSの拡張機能の1つで、データベースに特定の処理が行われた事をきっかけにして、ストアドプロシージャ等を実行させる機能の事。
- Tuple, タプル, 組
- Two-Phase Locking, ツーフェーズロック, 二相ロック
U
- UML, Unified Modeling Language、統一モデリング言語
- 言語というより、図解法。現実世界の情報をコンピュータに落とし込むにあたって、統一した図式で表現しようとするもの。現実世界の情報を「M0モデル」と呼び、実際にコンピュータ上に置かれた形ある情報を「M1モデル」、そしてその形を作る鋳型としての情報を「M2モデル」や「メタモデル」と呼び、これをUMLが規定していることになる。UMLは、さらに上位の「M3モデル」の存在を「MOF」として規定している。
- Union, 和
- Use Case Diagram, ユースケース図
- UMLで規定される図。当該システムに関連する人や別システムを「アクター」として、当該システムが提供する機能を「ユースケース」として図解する。また「システム境界」として、開発する対象なのかどうかも明示する。システム開発の初期に作成することで、意思の疎通を図る。
V
- VSAM, Virtual Storage Access Method, 仮想記憶アクセス方式
W
- WAFL, Write Anywhere File Layout
- WAL, Write Ahead Logging, LWA, Log Write-Ahead, ログ先行書き込み
- データベースシステム処理の実行前にログを書き出すこと。こうすることで、その処理を実行中に障害が発生しても、データベースを復旧できる。
- Warm restart, ウォーム・リスタート、暖再開
- データベースシステムで異常を検知した際に、オペレータが手動で再開する方法。データベースシステムを停止させ、データベースを復旧させ、再開する事。
- Write-Behind Caching
X
Y
Z
- ZigBee, IEEE 802.15.4
他
- 終結プロトコル
- 単純終結プロトコル
- 協調的終結プロトコル
- トランザクション障害
- システム障害
- 媒体障害
まとめ
データベースを学ぶ前に
基本的にデータベースという技術には、様々な技術が混ざっているので、非常に複雑である。
なので、データベースという技術が、どんな目的のために生まれ、そのためにどんな方法が使われているのかをしっかり考えなければ意味が分からなくなってしまう。またそれらを効率的に行うために、どんな方法論が生まれて使われてきたのかも非常に重要。
この辺、ごちゃごちゃに書いてあるテキストも多いのでご注意を。
データベースとは
大雑把に言えば、膨大なデータを扱うものであれば、そこにデータベースという技術を持ち込んでも良いと思う。
たとえば、検索エンジンの検索結果は膨大な情報から指定された条件に合致する情報を取り出すために使われる。
たとえば、アプリケーションでユーザーが作り出した情報を整理しておくために使っても良い。
データベースとは、情報を登録し、整理し、取り出しやすくしておくものと言えます。
また多人数が同時に取り出したり登録することもありますし、さらに情報を保存するストレージが複数のコンピュータ、複数の地域にまたがっていることもあります。これらをどのように扱うか、不整合なく、できるだけ速く取り出すにはどのようなテクノロジーが必要なのか、それを考えるのがデータベースという技術と言えます。
隔離性水準(Isolation Levels)
「隔離性が高い」とは、分散データベースで、他トランザクションに悪影響を与えにくいということ。「隔離性が低い」とは他トランザクションに悪影響を与えてしまうということ。
隔離性 | 名前 | 発生する問題 |
高 | Serializable | 特になし |
↑ | Repeatable Read | ファントムリード |
↓ | Read Committed | ファントムリード、ノンリピータブルリード |
低 | Read Uncommitted | ファントムリード、ノンリピータブルリード、ダーティリード |
列「名前」に書いたものは、データベースでトランザクションに設定する名称のことである。
隔離性が高いほど、データベースの整合性が保証されるが、その分パフォーマンスが下がる。
最も低レベルの「Read Uncommitted」で発生する「ダーティリード」は「Dirty Read」、直訳すれば「よごれた読み込み」。
並列処理されている別のトランザクションが処理中の値が読み込めてしまうこと。処理途中なので、整合性が保たれていない可能性があり、当然、その読み込んだ側のトランザクションも整合性を保てなくなる。
最も低レベル「Read Uncommitted」や、次に低いレベル「Read Committed」で発生する「ノンリピータブルリード」は「
ファジーリード」ともいい、直訳すれば「繰り返し読めない」で、1つのトランザクション中で同じ条件のクエリを実行した際に結果が異なること。だが、「ファントムリード」と類似してるので注意。
最後、「Repeatable Read」以下で発生する「ファントムリード」は、「ノンリピータブルリード」と類似の概念。同じ条件でクエリを実行した際にデータが増えること。ようは、並列処理されている別のトランザクションで、条件に合致するデータを追加したことにより発生すること。