markdown
データベースの基本md 32d7237
lecture/information/database/database-basics.lecture.n.md
Download PDF

データベースの基本きほん

date2026-07-14document_iddoc_8713b89d39f89f55dc2f5612128682d5descriptionデータベースとDBMSの役割、関係モデル、キー、整合性制約、正規化、トランザクションの基礎を説明する。prerequisitesHTTPの基本type講義statusactiverelateddata/lecture/information/database/database-portal.lecture.n.md / data/lecture/information/database/sql-basics.lecture.n.md / data/lecture/information/networks/http-basics.lecture.n.md / data/lecture/information/information-engineering-portal.lecture.n.md
informationdatabaseundergraduatelecture
data/lecture/information/database/database-portal.lecture.n.md

1導入どうにゅう

この講義こうぎでは、データベース管理かんりシステムによってデータを永続的えいぞくてきかつ一貫いっかんして管理かんりするための基本概念きほんがいねんを説明せつめいする。特とくに、関係かんけいモデルの構成要素こうせいようそ、キーと整合性制約せいごうせいせいやく、正規化せいきかの目的もくてき、トランザクションの ACID 特性とくせいを導入どうにゅうする。

HTTP サーバは要求ようきゅうを処理しょりし、必要ひつように応おうじて表現ひょうげんを生成せいせいするが、利用者りようしゃ、商品しょうひん、注文ちゅうもんなどのデータは個々ここの通信つうしんが終了しゅうりょうした後あとにも保持ほじされる。このようなデータを複数ふくすうのプログラムや利用者りようしゃから安全あんぜんに共有きょうゆうするには、保存形式ほぞんけいしきだけでなく、制約せいやく、同時実行どうじじっこう、障害しょうがいからの回復かいふくを管理かんりする仕組しくみが必要ひつようである。

2データベースと DBMS

データベースDatabaseとは、特定とくていの目的もくてきに従したがって組織化そしきかされ、永続的えいぞくてきに管理かんりされるデータの集合しゅうごうである。

データベース管理かんりシステムDatabase management system; DBMSとは、データベースの定義ていぎ、保存ほぞん、検索けんさく、更新こうしん、アクセス制御せいぎょ、同時実行制御どうじじっこうせいぎょ、障害回復しょうがいかいふくなどを提供ていきょうするソフトウェアである。データベースが管理対象かんりたいしょうとなるデータであるのに対たいし、DBMS はそのデータを管理かんりする機構きこうである。

3関係かんけいモデルの構成要素こうせいようそ

関係かんけいモデルRelational modelでは、データを関係かんけいとして表現ひょうげんする。実装上じっそうじょうは表ひょうとして表示ひょうじされることが多おおいが、関係かんけいは単たんなる行列形式ぎょうれつけいしきのファイルではなく、属性ぞくせいとタプルからなる数学的すうがくてきな構造こうぞうである。

  • 属性ぞくせいAttributeは、データを特徴とくちょうづける名前なまえの付ついた項目こうもくである。
  • ドメインDomainは、ある属性ぞくせいが取とり得うる値あたいの集合しゅうごうである。
  • タプルTupleは、各属性かくぞくせいに対応たいおうする値あたいをまとめた一件いっけんのデータである。
  • 関係かんけいスキーマRelation schemaは、関係名かんけいめいと属性ぞくせいの構成こうせいを定さだめる。
  • 関係かんけいインスタンスRelation instanceは、ある時点じてんでスキーマに適合てきごうするタプルの集合しゅうごうである。

たとえば、学生がくせいを表現ひょうげんする関係かんけいスキーマを次つぎのように記述きじゅつできる。

Student(student_id,name,department_id)

この場合ばあい、student_id、name、department_id が属性ぞくせいであり、個々ここの学生がくせいに対応たいおうする値あたいの組くみがタプルである。

4キー

スーパーキーSuperkeyとは、関係かんけいスキーマで許容きょようされるすべてのインスタンスにおいて、各かくタプルを一意いちいに識別しきべつすることが制約せいやくされた属性集合ぞくせいしゅうごうである。候補こうほキーCandidate keyとは、いずれの真部分集合しんぶぶんしゅうごうもスーパーキーではない極小きょくしょうなスーパーキーである。

主しゅキーPrimary keyとは、候補こうほキーのうち、タプルの主要しゅような識別子しきべつしとして選択せんたくしたものである。候補こうほキーは複数ふくすう存在そんざいし得うるが、主しゅキーとして選択せんたくするものは一ひとつである。

外部がいぶキーForeign keyとは、ある関係かんけいの属性集合ぞくせいしゅうごうであり、その値あたいが同一どういつまたは別べつの関係かんけいの候補こうほキーを参照さんしょうする。たとえば、Student.department_id が学部がくぶの関係かんけいにある Department.department_id を参照さんしょうすれば、学生がくせいと所属学部しょぞくがくぶを関連かんれんづけられる。

5整合性制約せいごうせいせいやく

整合性制約せいごうせいせいやくIntegrity constraintとは、データベースの状態じょうたいが満みたすべき条件じょうけんである。代表的だいひょうてきな制約せいやくには、次つぎのものがある。

  • ドメイン制約せいやくは、属性値ぞくせいちを所定しょていのドメインへ制限せいげんする。
  • キー制約せいやくは、候補こうほキーの値あたいがタプルを一意いちいに識別しきべつすることを要求ようきゅうする。
  • 実体整合性じったいせいごうせいは、主しゅキーの構成属性こうせいぞくせいが欠損けっそんせず、各かくタプルを識別しきべつできることを要求ようきゅうする。
  • 参照整合性さんしょうせいごうせいReferential integrityは、外部がいぶキーの非空ひくうの値あたいが参照先さんしょうさきに存在そんざいすることを要求ようきゅうする。

DBMS はこれらの制約せいやくに違反いはんする更新こうしんを拒否きょひし、または宣言せんげんされた参照動作さんしょうどうさに従したがって関連かんれんするデータを更新こうしんする。ただし、データが現実世界げんじつせかいを正確せいかくに反映はんえいしているかどうかは、スキーマに表現ひょうげんされた制約せいやくだけでは完全かんぜんに保証ほしょうできない。

6正規化せいきかの目的もくてき

同一どういつの事実じじつを複数箇所ふくすうかしょへ記録きろくすると、一部いちぶだけを更新こうしんすることによる不整合ふせいごう、データを追加ついかできない状況じょうきょう、削除さくじょに伴ともなう別べつの事実じじつの消失しょうしつが生しょうじ得うる。これらをそれぞれ更新こうしん、挿入そうにゅう、削除さくじょの異常いじょうAnomalyという。

正規化せいきかNormalizationとは、属性間ぞくせいかんの依存関係いぞんかんけいに基もとづいて関係かんけいスキーマを分解ぶんかいし、望のぞましくない冗長性じょうちょうせいと更新異常こうしんいじょうを抑制よくせいするための設計過程せっけいかていである。正規化せいきかはあらゆる重複ちょうふくを消去しょうきょすることではなく、依存関係いぞんかんけいを適切てきせつに表現ひょうげんすることを目的もくてきとする。性能せいのうや利用形態りようけいたいに応おうじて、意図的いとてきに冗長性じょうちょうせいを導入どうにゅうする非正規化ひせいきかもある。

7トランザクションと ACID

トランザクションTransactionとは、DBMS が一ひとつの論理的ろんりてきな作業単位さぎょうたんいとして扱あつかう操作列そうされつである。たとえば送金そうきんでは、一方いっぽうの口座こうざからの減額げんがくと他方たほうの口座こうざへの増額ぞうがくを一体いったいとして処理しょりする必要ひつようがある。

トランザクションの代表的だいひょうてきな特性とくせいを ACID と総称そうしょうする。

  • 原子性げんしせいAtomicity: トランザクションの全操作ぜんそうさを反映はんえいするか、いずれも反映はんえいしない。
  • 一貫性いっかんせいConsistency: トランザクションが正ただしく実行じっこうされると、制約せいやくを満みたす状態じょうたいから別べつのそのような状態じょうたいへ移行いこうする。
  • 独立性どくりつせいIsolation: 並行へいこうするトランザクションの干渉かんしょうを制御せいぎょし、所定しょていの分離ぶんりレベルに対応たいおうする観測結果かんそくけっかを提供ていきょうする。
  • 永続性えいぞくせいDurability: 確定かくていしたトランザクションの結果けっかは、以後いごの障害しょうがいに対たいして保持ほじされる。

ACID は実装方式じっそうほうしきそのものではなく、トランザクション処理しょりが目標もくひょうとする性質せいしつである。また、一貫性いっかんせいは DBMS だけで自動的じどうてきに得えられるものではなく、適切てきせつな制約せいやくと正ただしいトランザクション処理しょりを必要ひつようとする。

8要点ようてん

  • データベースは組織化そしきかされたデータであり、DBMS はその定義ていぎ、操作そうさ、保護ほごを担になう。
  • 関係かんけいスキーマは属性ぞくせいの構成こうせいを定さだめ、関係かんけいインスタンスはある時点じてんのタプルの集合しゅうごうである。
  • 候補こうほキー、主しゅキー、外部がいぶキー、および整合性制約せいごうせいせいやくは、データの識別しきべつと関連かんれんを表現ひょうげんする。
  • 正規化せいきかは望のぞましくない冗長性じょうちょうせいと更新異常こうしんいじょうを抑制よくせいし、トランザクションは複数ふくすうの操作そうさを論理的ろんりてきな単位たんいとして管理かんりする。

9次つぎに進すすむ講義こうぎ

data/lecture/information/database/sql-basics.lecture.n.md
raw .n.md をコピー
loc をコピー (filepath:line ~ line)
copy share link
copy encoded share link
path をコピー
copy share link
copy encoded share link
copy share link
copy encoded share link
タブを全て閉じる