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