14.テーブル定義,一対多の関係,多対多の関係, 外部キー,索引(インデックス),データベース操作

Slides:



Advertisements
Similar presentations
1 データベース 基本情報技術概論 ( 第 11 回 ) 埼玉大学 理工学研究科 堀山 貴史 DB.
Advertisements

第10回 GISによる処理技法 結合用の統計データの処理
実践!DB逆設計 ~レシートからER図を起こす~
エンティティ・リレーションシップ・モデル
SQL データベースアクセスのための文法 担当 岡村耕二 月曜日 2限 平成20年度 情報科学III (理系コア科目・2年生)
DB(データベース)のおはなし 作成者:小野正広 DBと言っても、  ドラゴンボール ではないですぞ! 3/1/2017.
SQLite3
情報理工学部 情報システム工学科 ラシキアゼミ 3年 H 井奈波 和也
リレーショナル・データベース データベース論 第10回.
データベース工学および演習 第5章 リレーショナルデータベース言語SQL
PostGIS - 1 (入門編).
SQL データベースアクセスのための文法と MySQL
3-1 MySQLについて 発表者:藤村元彦 自然言語処理研究室.
MySQLに接続するデータベースプログラム
6-2 データベース 1.SQLite SQLを単純化した SQLite を使ってデータベースを操作 表「fruit」
ACCESSによる データベースアプリケーション開発実習 日本工業大学 情報工学科 “データベースの実際” 教材
Accessによる SQLの操作 ~実際にテーブルを操作してみよう!~.
Accessによるデータベース(3) Ver /11.
続 Entity Framework 入門 SQLWorld #8 サヴロウ.
SQL J2EE I 第3回 /
データモデリング CRUD分析.
データベース:Accessによる実習 第5章:クエリの基礎
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
Web上で管理・利用できる 面接予約データベースシステムの構築
マイクロソフト Access を使ってみよう 第5回
マイクロソフト Access を使ってみよう 第1回
マイクロソフト Access での SQL 演習 第1回 SQL問い合わせ(クエリ)
マイクロソフト Access を使ってみよう 第4回
表計算 Excel 演習 6. ルックアップ,データの入力規則.
データベースシステム入門 8.異状,正規化による異状の防止
データベースシステム入門 9.従属,従属関係,第三正規形
SQL パフォーマンス チューニング ~ カバーリングインデックス/クエリヒントの利用~
SQL データベースアクセスのための文法 担当 岡村耕二 月曜日 2限 平成21年度 情報科学III (理系コア科目・2年生)
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
3-10. MySQLシステムの管理  2004年6月10日  大北高広                01T6010F.
第1回.リレーショナルデータベースを使ってみよう
第1回.リレーショナルデータベースを使ってみよう
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
SQL パフォーマンス チューニング ~ プランガイドの利用~
マイクロソフト Access での SQL 演習 第5回 副問い合わせ
第3回.テーブルの結合 結合条件 SQL を用いた結合問い合わせ.
第3回.テーブルの結合 結合条件 SQL を用いた結合問い合わせ.
3-6.インデックスについて 3-7.関数と併用されることの 多いMySQLコマンド
3-3.テーブルを更新する 2004年 4月22日(木) 01T6074X 茂木啓悟.
「Webデータベースの構築技術」正誤表 ページ 項目 誤記 訂正 18 表1.4 アクセス 権限の削除 ・・・テーブル名 TO ユーザ名
マイクロソフト Access での SQL 演習 第4回 並べ替え(ソート)
講義ノート共有データベース NoteTotter?
テーブル設計を後から変更 現場で使える小技のご紹介 株式会社ジーワンシステム 生島 勘富(イクシマ サダヨシ)
マイクロソフト Access を使ってみよう 第2回
データモデリング モデルの基本作法.
マイクロソフト Access を使ってみよう 第3回
データベース設計 第6回 DBMSの機能と操作方法(3) フォームとレポート
情報システム1及び演習 第一回 データベースの概要.
マイクロソフト Access での SQL 演習 第2回 集計,集約
3.リレーショナルデータベース,主キー, SQL
データモデリング エンティティの切り出し.
Ex-11. ルックアップ 金子邦彦.
14.外部キー,データ分析,データベース設計
データベースシステム入門 10.データウエアハウス
関係データベースとSQL MZ Platform講習会(上級).
リレーショナル・データベース J2EE I (データベース論) 第2回 /
SQL パフォーマンス チューニング ~ パフォーマンス改善 最初の一歩 ~
09 06/23 PHP と SQL (MySQL) の連携 その3
データベース第3回目 意味ごとにテーブルを分ける
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
第1回.リレーショナルデータベースを使ってみよう
SQL J2EE I (データベース論) 第3回 /
第3章 関係データベースの基礎 3.1 関係とは 3.2 関係代数.
クリエイティブ リサーチ 2019/05/20 日本工学院八王子専門学校 M.Katsube.
SQL データベース論 第11回.
Presentation transcript:

14.テーブル定義,一対多の関係,多対多の関係, 外部キー,索引(インデックス),データベース操作

今日学んでもらうこと ◆ 「データベースエンジニア」として活躍できるための大事な知識 1.「何か」と「何か」の関係を記録するのは,どうしたらよいの? (復習)ER図,テーブル定義について,授業中に復習します 2.データベース処理を高速化できる技術 3.データベース操作 のコマンド

14-1 テーブル定義

データベースの構築 データベース操 作、問い合わせ テーブル定義 データベース生成 (データ定義ともいう) ※ 最初,データベースは空 ※ 最初,テーブルは空 データベース生成 ※ 最初,データベースは空 ※ データベースシステムには, たくさんのデータベースを作る ことができる

テーブル定義とは(再掲) リレーショナルデータベースにおいて、 ・テーブル名 ・各フィールドのフィールド名(属性名) ・各フィールドのデータ型 などを定義すること

SQL でのテーブル定義例 テーブル名:学科 ID 学科名 学部名 1 情報 工 2 スマート テーブルの例 ※ 今日、初めて教える大事なこと primary key ・・・ 主キーの指定 SQL でのテーブル定義例 (Access 2013の画面)

create table 学科 ( ID integer, 学科名 char, 学部名 char, primary key(ID) ); SQL での主キーの指定 ◆ primary key ・・・ 主キー ノートページ create table 学科 ( ID integer, 学科名 char, 学部名 char, primary key(ID) ); ※ 他の書き方もあります

主キーは大切 create table 学科 ( ID integer, 学科名 char, 学部名 char, ◆ 主キーは、データ管理のために重要 ◆ SQL の create table を使ってテーブル定義するとき、 定義したいテーブルに、主キーがあるなら、必ず  primary key(・・・) を書く create table 学科 ( ID integer, 学科名 char, 学部名 char, primary key(ID) );

14-2 一対多の関係

テーブル定義での注意点 何かと何かの対応関係に、注意する必要あり ◆1対1 日本の結婚制度 ◆1対多  日本の結婚制度 ◆1対多  「小学生」は、1つの「小学校」にしか所属できない。  「小学校」には、たくさんの「小学生」がいる。 ◆多対多  顧客が商品を注文する(1対1でも1対多でもない) ※ いまから説明します

1対多の対応のイメージ ノートページ A小学校 B小学校

ER図での1対多の書き方の例 n 1 小学校 小学生 所属 1対多であることを、ER図の中に書き込むと: ※ この書き方を Peter Chen 記法という   ほかの書き方もある

テーブル定義に至るストーリー例 1. 学生名簿のデータベースを新しく作りたいと考えた 2.「学生」と「学科」に関する ER 図を描いた 3. テーブル定義を行った

データの例 学生と学科 学科テーブルは次のよ うに決めた(決定) 学生については ・氏名 ・学生番号 を記録したい ID 学科名 学部名 1 データの例 学生と学科 学科テーブルは次のよ うに決めた(決定) 学生については ・氏名 ・学生番号 を記録したい ID 学科名 学部名 1 情報 工 2 機械 ※ 主キーは ID

ER 図の例 学生と学科 ◆ それぞれの学生は、1つの学科に所属する ◆ 学科には、複数の学生が所属する 1 n 学科 所属 学生 1対多の対応 1 n 学科 所属 学生

データの例 学生と学科 学生テーブル 学科テーブル ID 学科名 学部名 1 情報 工 2 機械 学生番号 氏名 所属 1 XX 2 YY データの例 学生と学科 学生テーブル 学科テーブル ID 学科名 学部名 1 情報 工 2 機械 学生番号 氏名 所属 1 XX 2 YY 3 AA 4 BB ※ 主キーは ID ※ 主キーは学生番号

データの例 学生と学科 学生テーブル 学科テーブル ID 学科名 学部名 1 情報 工 2 機械 学生番号 氏名 所属 1 XX 2 YY データの例 学生と学科 学生テーブル 学科テーブル ID 学科名 学部名 1 情報 工 2 機械 学生番号 氏名 所属 1 XX 2 YY 3 AA 4 BB ※ 主キーは ID ※ 主キーは学生番号  t 1 n 学科 所属 学生

1対多の場合のテーブル定義 実体Xのための テーブル1個 実体Yのための テーブル1個 1 n X Z Y ※ Yは実体 ※ Xは実体 フィールド1つを含める 1 n X Z Y ※ Yは実体 ※ Xは実体 ※ Z は X と Y の間の 関連

14-3 多対多の関係

多対多の対応のイメージ ノートページ りんご Aさん みかん Bさん メロン

ER図での多対多の書き方の例 m n 顧客 商品 購入 多対多であることを、ER図の中に書き込むと: ※ この書き方を Peter Chen 記法という.   ほかの書き方もある

データの例 顧客と商品 顧客テーブルは次のよ うに決めた 商品テーブルは次のよ うに決めた ID 顧客名 1 X 2 Y ID 商品名 単価 データの例 顧客と商品 顧客テーブルは次のよ うに決めた 商品テーブルは次のよ うに決めた ID 顧客名 1 X 2 Y ID 商品名 単価 1 りんご 100 2 みかん 50 3 メロン 500 ※ 主キーは ID ※ 主キーは ID

データの例 顧客と商品 顧客テーブル 購入テーブル 商品テーブル 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 顧客 購入 商品

データの例 顧客と商品 顧客テーブル 購入テーブル 商品テーブル 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 顧客 購入 商品

多対多の場合のテーブル定義 実体Xのための テーブル1個 関連Zのための テーブル1個 実体Yのための テーブル1個 n m X Z Y ※ Z は X と Y の間の 関連

ER図とテーブル定義 ◆ ER図に関連の種類を書き込む 1対1 1対多 多対多 ◆ 実体1つにテーブル1つが基本 ◆ 実体1つにテーブル1つが基本 ◆ 1対多対応については、フィールドを1つ追加 ◆ 多対多対応については、テーブル1つを追加 ノートページ

14-4 外部キー

(参考)外部キーの例 学生テーブル 学科テーブル ID 学科名 学部名 1 情報 工 2 スマート 学生番号 氏名 所属 1 XX 2 YY 3 AA 4 BB ※ 主キーは ID ※ 主キーは学生番号 外部キーとは、 他のテーブルの主キーを参照している フィールドのこと  t

(参考)外部キーの存在をコンピュータに教えたいときは 学生テーブル 学科テーブル ID 学科名 学部名 1 情報 工 2 スマート 学生番号 氏名 所属 1 XX 2 YY 3 AA 4 BB ※ 主キーは ID ※ 主キーは学生番号 外部キーとは、 他のテーブルの主キーを参照している フィールドのこと  t

14-5 索引(インデックス)

インデックス(索引)のイメージ 見出し語 場所 アセンブラ 35 データベース 110 マシンラーニング 169 インデックス(索引) ノートページ 見出し語 場所 アセンブラ 35 データベース 110 マシンラーニング 169 インデックス(索引) データ本体

インデックス(索引)とは インデックス(索引)とは, テーブルの特定の処理を高速にするための仕掛け ノートページ 但し、別の処理が遅くなる

SQL を用いたインデックス(索引)作成例 create index <インデックス名> on テーブル名(フィールド名)

14-6 データベース操作

3種類のデータベース操作 ◆ 新しいレコードの挿入 ◆ 条件に合致するレコードの削除 ◆ 既存のデータの更新

3種類のデータベース操作 操作の種類 SQL 新しいレコードの挿入 INSERT INTO 条件に合致するレコードの削除 ノートページ 操作の種類 SQL 新しいレコードの挿入 INSERT INTO 条件に合致するレコードの削除 DELETE FROM WHERE 既存のデータの更新 UPDATE SET WHERE