Presentation is loading. Please wait.

Presentation is loading. Please wait.

リレーショナル・データベース J2EE I (データベース論) 第2回 / 2004-04-21.

Similar presentations


Presentation on theme: "リレーショナル・データベース J2EE I (データベース論) 第2回 / 2004-04-21."— Presentation transcript:

1 リレーショナル・データベース J2EE I (データベース論) 第2回 /

2 この講義について 次の2つで評価します 前期末試験は行いません。
3~4回(予定)のレポート 出席(救済措置の意味が強い) 前期末試験は行いません。

3 きょうの内容 リレーショナルデータベースの概要を知る。 リレーショナルデータベースのテーブルの作り方を知る。

4 データベースとは何か データベース = データを蓄積したもの データモデル = データベース中のデータ整理の方法
文字情報 (商品の情報、名簿、記事など) 画像、映像 データモデル = データベース中のデータ整理の方法 リレーショナルモデル、オブジェクト指向モデルなど 「データベース管理システム」でデータベースを管理する。

5 データベース管理システムの 役割 トランザクション 同時アクセスへの対応 高速なアクセス データの整合性の維持
いくつかの処理をひとまとめにしたもの 同時アクセスへの対応 高速なアクセス データ量が増えても速く処理できる データの整合性の維持 不都合なデータを入れないようにできる。例えば銀行の残高にアルファベットを入れないようにできる。

6 トランザクション (1) いくつかの処理をひとまとめにしたもの。例えば口座Aから口座Bに1万円を振り込む処理。
口座Aから1万円を引く 口座Bに1万円を足す こうした処理は、ひとまとめになっていなければならない。上の例で、1で処理が途切れると困る。

7 トランザクション (2) トランザクションの途中で処理が中断した場合
それまでの処理を取り消し、なかったことにする これを「ロールバック」と言う あるトランザクションを実行しているあいだ、別のトランザクションの実行を止めることができる。 これを「ロック」と言う

8 データベースを利用した システム データを処理するシステムの場合、データベースを使ってデータを管理するのが良い。
データベース管理システムの処理内容を自分で作るのはとても面倒 トランザクション 高速なアクセス データの整合性の維持

9 リレーショナルデータベース (関係データベース)
リレーショナルモデルを用いる 現在のデータベースの標準 多くの商用・オープンソースのシステムがある Oracle Microsoft SQL Server PostgreSQL (オープンソース) MySQL (オープンソース) HSQLDB (オープンソース)

10 リレーショナルデータベースの 仕組み 「データベース」は、「テーブル」から構成される 「テーブル」は、「行」から構成される
「行」は、「項目」から構成される no title author publisher 42377 伽藍とバザール 山形浩生訳 光芒社 42872 Java言語で学ぶデザインパターン入門 結城浩 著 ソフトバンク

11 SQL リレーショナルデータベースを操作するための言語。

12 主キー (1) テーブルでは、重複した行を無くすようにする。つまり、1行1行がそれぞれ違っているようにする。
ということは、テーブル中の特定の1行を選び出すには、最悪でもすべての項目を指定すればよい。 特定の1行を選び出すのに必要な項目の組を「主キー」と言う。実際には、ある特定の1つの項目が主キーとなるようにする。

13 主キー (2) このテーブルでは、“Number” が主キーとなる(学籍番号には重複がないから) 姓や名だと、同姓同名がいると困る 項目名
意味 Number 学籍番号 Family_name Last_name

14 正規化 テーブル設計を決められたルール通りにすること。
正規化によって、適切に分割された、保守しやすいテーブルを作成できる。正規化されたテーブルを「正規形」と呼ぶ。 正規化にはさまざまな段階がある。通常は第三正規形くらいまで。 第一正規形、第二正規形、第三正規形、Boyce-Codd 正規形、第四正規形、第五正規形、ドメインキー正規形

15 第一正規形 (1) テーブルの項目には、複数の値を入れることはできない。 だめな例 No タイトル 著者 出版社 keyword 42872
Java言語で学ぶデザインパターン入門 結城浩 著 ソフトバンク Java デザインパターン

16 第一正規形 (2) 第一正規化されたテーブルの例
No タイトル 著者 出版社 keyword 42872 Java言語で学ぶデザインパターン入門 結城浩 著 ソフトバンク Java デザインパターン

17 関数従属 このテーブルの主キーは「No」と「keyword」
タイトル 著者 出版社 keyword 42872 Java言語で学ぶデザインパターン入門 結城浩 著 ソフトバンク Java デザインパターン

18 第二正規形 (1) 第二正規形 = 主キーが複数あるとき、主キーの一部にだけ関数従属している項目を、別のテーブルに移す。
この例では、 「タイトル」「著者」「出版社」という項目が「No」に関数従属している。 そこで、「No」「タイトル」「著者」「出版社」からなるテーブルを別に作成する。

19 第二正規形 (2) 第二正規化されたテーブルの例
第二正規形 (2) 第二正規化されたテーブルの例 no タイトル 著者 出版社 42872 Java言語で学ぶデザインパターン入門 結城浩 著 ソフトバンク no keyword 42872 Java デザインパターン

20 外部キー no タイトル 著者 出版社 42872 Java言語で学ぶデザインパターン入門 結城浩 著 ソフトバンク no keyword
結城浩 著 ソフトバンク no keyword 42872 Java デザインパターン それぞれのテーブルには「no」という項目がある。この項目を通じて2つのテーブルを結合できる。   ↑ この「no」が外部キー。元のテーブルを参照できる。

21 参照整合性制約 「図書」テーブルに「42377」という主キーを持つ行がないとき、「キーワード」テーブルに「42377」の外部キーを持つ行を追加できない。 「キーワード」テーブルに「42377」の外部キーを持つ行があるときに、「図書」テーブルから「42377」という主キーを持つ行を削除できない。

22 第三正規形 (1) このテーブルでは、「出版社の所在地」が「出版社」に関数従属している。
第三正規形 = 主キーではないキーに関数従属している項目を、別のテーブルに移す。 no タイトル 著者 出版社 出版社の 所在地 42872 Java言語で学ぶデザインパターン入門 結城浩 著 ソフトバンク 東京

23 第三正規形 (2) 第三正規化されたテーブルの例
第三正規形 (2) 第三正規化されたテーブルの例 no タイトル 著者 出版社 42872 Java言語で学ぶデザインパターン入門 結城浩 著 ソフトパンク 出版社 出版社の所在地 ソフトバンク 東京

24 参考文献・URL UNIXデータベース入門 http://www.wakhok.ac.jp/DB/DB.html
丸山学長によるデータベース入門。内容が古くなりつつありますが、よくまとまっている有益なテキストです。


Download ppt "リレーショナル・データベース J2EE I (データベース論) 第2回 / 2004-04-21."

Similar presentations


Ads by Google