Download presentation
Presentation is loading. Please wait.
1
14.テーブル定義,一対多の関係,多対多の関係, 外部キー,索引(インデックス),データベース操作
2
今日学んでもらうこと ◆ 「データベースエンジニア」として活躍できるための大事な知識 1.「何か」と「何か」の関係を記録するのは,どうしたらよいの? (復習)ER図,テーブル定義について,授業中に復習します 2.データベース処理を高速化できる技術 3.データベース操作 のコマンド
3
14-1 テーブル定義
4
データベースの構築 データベース操 作、問い合わせ テーブル定義 データベース生成 (データ定義ともいう) ※ 最初,データベースは空
※ 最初,テーブルは空 データベース生成 ※ 最初,データベースは空 ※ データベースシステムには, たくさんのデータベースを作る ことができる
5
テーブル定義とは(再掲) リレーショナルデータベースにおいて、 ・テーブル名 ・各フィールドのフィールド名(属性名)
・各フィールドのデータ型 などを定義すること
6
SQL でのテーブル定義例 テーブル名:学科 ID 学科名 学部名 1 情報 工 2 スマート テーブルの例
※ 今日、初めて教える大事なこと primary key ・・・ 主キーの指定 SQL でのテーブル定義例 (Access 2013の画面)
7
create table 学科 ( ID integer, 学科名 char, 学部名 char, primary key(ID) );
SQL での主キーの指定 ◆ primary key ・・・ 主キー ノートページ create table 学科 ( ID integer, 学科名 char, 学部名 char, primary key(ID) ); ※ 他の書き方もあります
8
主キーは大切 create table 学科 ( ID integer, 学科名 char, 学部名 char,
◆ 主キーは、データ管理のために重要 ◆ SQL の create table を使ってテーブル定義するとき、 定義したいテーブルに、主キーがあるなら、必ず primary key(・・・) を書く create table 学科 ( ID integer, 学科名 char, 学部名 char, primary key(ID) );
9
14-2 一対多の関係
10
テーブル定義での注意点 何かと何かの対応関係に、注意する必要あり ◆1対1 日本の結婚制度 ◆1対多
日本の結婚制度 ◆1対多 「小学生」は、1つの「小学校」にしか所属できない。 「小学校」には、たくさんの「小学生」がいる。 ◆多対多 顧客が商品を注文する(1対1でも1対多でもない) ※ いまから説明します
11
1対多の対応のイメージ ノートページ A小学校 B小学校
12
ER図での1対多の書き方の例 n 1 小学校 小学生 所属 1対多であることを、ER図の中に書き込むと:
※ この書き方を Peter Chen 記法という ほかの書き方もある
13
テーブル定義に至るストーリー例 1. 学生名簿のデータベースを新しく作りたいと考えた 2.「学生」と「学科」に関する ER 図を描いた
3. テーブル定義を行った
14
データの例 学生と学科 学科テーブルは次のよ うに決めた(決定) 学生については ・氏名 ・学生番号 を記録したい ID 学科名 学部名 1
データの例 学生と学科 学科テーブルは次のよ うに決めた(決定) 学生については ・氏名 ・学生番号 を記録したい ID 学科名 学部名 1 情報 工 2 機械 ※ 主キーは ID
15
ER 図の例 学生と学科 ◆ それぞれの学生は、1つの学科に所属する ◆ 学科には、複数の学生が所属する 1 n 学科 所属 学生
1対多の対応 1 n 学科 所属 学生
16
データの例 学生と学科 学生テーブル 学科テーブル ID 学科名 学部名 1 情報 工 2 機械 学生番号 氏名 所属 1 XX 2 YY
データの例 学生と学科 学生テーブル 学科テーブル ID 学科名 学部名 1 情報 工 2 機械 学生番号 氏名 所属 1 XX 2 YY 3 AA 4 BB ※ 主キーは ID ※ 主キーは学生番号
17
データの例 学生と学科 学生テーブル 学科テーブル ID 学科名 学部名 1 情報 工 2 機械 学生番号 氏名 所属 1 XX 2 YY
データの例 学生と学科 学生テーブル 学科テーブル ID 学科名 学部名 1 情報 工 2 機械 学生番号 氏名 所属 1 XX 2 YY 3 AA 4 BB ※ 主キーは ID ※ 主キーは学生番号 t 1 n 学科 所属 学生
18
1対多の場合のテーブル定義 実体Xのための テーブル1個 実体Yのための テーブル1個 1 n X Z Y ※ Yは実体 ※ Xは実体
フィールド1つを含める 1 n X Z Y ※ Yは実体 ※ Xは実体 ※ Z は X と Y の間の 関連
19
14-3 多対多の関係
20
多対多の対応のイメージ ノートページ りんご Aさん みかん Bさん メロン
21
ER図での多対多の書き方の例 m n 顧客 商品 購入 多対多であることを、ER図の中に書き込むと:
※ この書き方を Peter Chen 記法という. ほかの書き方もある
22
データの例 顧客と商品 顧客テーブルは次のよ うに決めた 商品テーブルは次のよ うに決めた ID 顧客名 1 X 2 Y ID 商品名 単価
データの例 顧客と商品 顧客テーブルは次のよ うに決めた 商品テーブルは次のよ うに決めた ID 顧客名 1 X 2 Y ID 商品名 単価 1 りんご 100 2 みかん 50 3 メロン 500 ※ 主キーは ID ※ 主キーは ID
23
データの例 顧客と商品 顧客テーブル 購入テーブル 商品テーブル ID 商品名 単価 1 りんご 100 2 みかん 50 3 メロン
データの例 顧客と商品 顧客テーブル 購入テーブル 商品テーブル ID 商品名 単価 1 りんご 100 2 みかん 50 3 メロン 500 顧客ID 商品ID 1 3 2 ID 顧客名 1 X 2 Y ※ 主キーは ID ※ 主キーは ID n m 顧客 購入 商品
24
データの例 顧客と商品 顧客テーブル 購入テーブル 商品テーブル ID 商品名 単価 1 りんご 100 2 みかん 50 3 メロン
データの例 顧客と商品 顧客テーブル 購入テーブル 商品テーブル ID 商品名 単価 1 りんご 100 2 みかん 50 3 メロン 500 顧客ID 商品ID 1 3 2 ID 顧客名 1 X 2 Y ※ 主キーは ID ※ 主キーは ID n m 顧客 購入 商品
25
多対多の場合のテーブル定義 実体Xのための テーブル1個 関連Zのための テーブル1個 実体Yのための テーブル1個 n m X Z Y
※ Z は X と Y の間の 関連
26
ER図とテーブル定義 ◆ ER図に関連の種類を書き込む 1対1 1対多 多対多 ◆ 実体1つにテーブル1つが基本
◆ 実体1つにテーブル1つが基本 ◆ 1対多対応については、フィールドを1つ追加 ◆ 多対多対応については、テーブル1つを追加 ノートページ
27
14-4 外部キー
28
(参考)外部キーの例 学生テーブル 学科テーブル ID 学科名 学部名 1 情報 工 2 スマート 学生番号 氏名 所属 1 XX 2 YY
3 AA 4 BB ※ 主キーは ID ※ 主キーは学生番号 外部キーとは、 他のテーブルの主キーを参照している フィールドのこと t
29
(参考)外部キーの存在をコンピュータに教えたいときは
学生テーブル 学科テーブル ID 学科名 学部名 1 情報 工 2 スマート 学生番号 氏名 所属 1 XX 2 YY 3 AA 4 BB ※ 主キーは ID ※ 主キーは学生番号 外部キーとは、 他のテーブルの主キーを参照している フィールドのこと t
30
14-5 索引(インデックス)
31
インデックス(索引)のイメージ 見出し語 場所 アセンブラ 35 データベース 110 マシンラーニング 169 インデックス(索引)
ノートページ 見出し語 場所 アセンブラ 35 データベース 110 マシンラーニング 169 インデックス(索引) データ本体
32
インデックス(索引)とは インデックス(索引)とは, テーブルの特定の処理を高速にするための仕掛け ノートページ 但し、別の処理が遅くなる
33
SQL を用いたインデックス(索引)作成例
create index <インデックス名> on テーブル名(フィールド名)
34
14-6 データベース操作
35
3種類のデータベース操作 ◆ 新しいレコードの挿入 ◆ 条件に合致するレコードの削除 ◆ 既存のデータの更新
36
3種類のデータベース操作 操作の種類 SQL 新しいレコードの挿入 INSERT INTO 条件に合致するレコードの削除
ノートページ 操作の種類 SQL 新しいレコードの挿入 INSERT INTO 条件に合致するレコードの削除 DELETE FROM WHERE 既存のデータの更新 UPDATE SET WHERE
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.