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_idnamedepartment_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
タブを全て閉じる