Download presentation
Presentation is loading. Please wait.
1
リレーショナル・データベース データベース論 第10回
2
きょうの内容 リレーショナルデータベースの概要を知る。 リレーショナルデータベースのテーブルの作り方を知る。
3
データベースとは何か データベース = データを蓄積したもの データモデル = データベース中のデータ整理の方法
文字情報 (商品の情報、名簿、記事など) 画像、映像 データモデル = データベース中のデータ整理の方法 リレーショナルモデル、オブジェクト指向モデルなど 「データベース管理システム」でデータベースを管理する。
4
データベース管理システムの役割 トランザクション 同時アクセスへの対応 高速なアクセス データの整合性の維持
いくつかの処理をひとまとめにしたもの 同時アクセスへの対応 高速なアクセス データ量が増えても速く処理できる データの整合性の維持 不都合なデータを入れないようにできる。例えば銀行の残高にアルファベットを入れないようにできる。
5
トランザクション (1) いくつかの処理をひとまとめにしたもの。例えば口座Aから口座Bに1万円を振り込む処理。
口座Aから1万円を引く 口座Bに1万円を足す こうした処理は、ひとまとめになっていなければならない。上の例で、1で処理が途切れると困る。
6
トランザクション (2) トランザクションの途中で処理が中段した場合
それまでの処理を取り消し、なかったことにする これを「ロールバック」と言う あるトランザクションを実行しているあいだ、別のトランザクションの実行を止めることができる。
7
データベースを利用したシステム データベース管理システムの処理内容を自分で作るのはとても面倒 トランザクション 高速なアクセス
データの整合性の維持
8
リレーショナルデータベース (関係データベース)
リレーショナルモデルを用いる 現在のデータベースの標準 多くの商用・オープンソースのシステムがある Oracle Microsoft SQL Server PostgreSQL (オープンソース) MySQL (オープンソース) HSQLDB (オープンソース)
9
リレーショナルデータベースの仕組み 「データベース」は、「テーブル」から構成される 「テーブル」は、「行」から構成される
「行」は、「項目」から構成される no title author publisher 42377 伽藍とバザール 山形浩生訳 光芒社 42872 Java言語で学ぶデザインパターン入門 結城浩 著 ソフトパンク
10
SQL リレーショナルデータベースを操作するための言語。
11
主キー (1) テーブルでは、重複した行を無くすようにする。つまり、1行1行がそれぞれ違っているようにする。
ということは、テーブル中の特定の1行を選び出すには、最悪でもすべての項目を指定すればよい。 特定の1行を選び出すのに必要な項目の組を「主キー」と言う。実際には、ある特定の1つの項目が主キーとなるようにする。
12
主キー (2) このテーブルでは、“Number” が主キーとなる(学籍番号には重複がないから) 姓や名だと、同姓同名がいると困る 項目名
意味 Number 学籍番号 Family_name 姓 Last_name 名
13
正規化 テーブル設計のルール 正規化によって、適切に分割された、保守しやすいテーブルを作成できる。正規化されたテーブルを「正規形」と呼ぶ。
正規化にはさまざまな段階がある。通常は第三正規形くらいまで。 第一正規形、第二正規形、第三正規形、Boyce-Codd 正規形、第四正規形、第五正規形、ドメインキー正規形
14
第一正規形 (1) テーブルの項目には、複数の値を入れることはできない。
15
第一正規形 (2) だめな例 No タイトル 著者 出版社 keyword 42872 Java言語で学ぶデザインパターン入門 結城浩 著
結城浩 著 ソフトパンク Java デザインパターン
16
第一正規形 (3) 第一正規化されたテーブルの例
No タイトル 著者 出版社 keyword 42872 Java言語で学ぶデザインパターン入門 結城浩 著 ソフトパンク Java デザインパターン
17
関数従属 このテーブルの主キーは「No」と「keyword」
タイトル 著者 出版社 keyword 42872 Java言語で学ぶデザインパターン入門 結城浩 著 ソフトパンク Java デザインパターン
18
第二正規形 (1) 第二正規形 = 主キーが複数あるとき、主キーの一部にだけ関数従属している項目を、別のテーブルに移す。
この例では、 「タイトル」「著者」「出版社」という項目が「No」に関数従属している。 そこで、「No」「タイトル」「著者」「出版社」からなるテーブルを別に作成する。
19
第二正規形 (2) 第二正規化されたテーブルの例
第二正規形 (2) 第二正規化されたテーブルの例 no タイトル 著者 出版社 42872 Java言語で学ぶデザインパターン入門 結城浩 著 ソフトパンク no keyword 42672 Java デザインパターン
20
外部キー no タイトル 著者 出版社 42872 Java言語で学ぶデザインパターン入門 結城浩 著 ソフトパンク
結城浩 著 ソフトパンク それぞれのテーブルには「no」という項目がある。この項目を通じて2つのテーブルを結合できる。 no keyword 42672 Java デザインパターン ↑ この「no」が外部キー。元のテーブルを参照できる。
21
第三正規形 (1) このテーブルでは、「出版社の所在地」が「出版社」に関数従属している。
第三正規形 = 主キーではないキーに関数従属している項目を、別のテーブルに移す。 no タイトル 著者 出版社 出版社の 所在地 42872 Java言語で学ぶデザインパターン入門 結城浩 著 ソフトバンク 東京
22
第三正規形 (2) 第三正規化されたテーブルの例
第三正規形 (2) 第三正規化されたテーブルの例 no タイトル 著者 出版社 42872 Java言語で学ぶデザインパターン入門 結城浩 著 ソフトパンク 出版社 出版社の所在地 ソフトバンク 東京
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.