252 Views
January 12, 22
スライド概要
リレーショナルデータベース序論(全4回)
データベースの入門者へ
https://www.kkaneko.jp/cc/di/index.html
金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko
di-2. リレーショナル データベースシステム, SQL リレーショナルデータベース序 論(全4回) データベースの入門者へ https://www.kkaneko.jp/cc/di/index.html 金子邦彦 1 謝辞:この資料では「かわいいフリー素材集 いらすとや」のイラストを使用しています
リレーショナルデータベースシステム • データベースシステムの一種 • データの形はテーブル(リレーションともいう) • SQL の機能 コンピュータ 記憶 装置 リレーショナル リレーショナル データベース データベース 管理システム たくさんのテーブルが格納される あわせて リレーショナルデータベースシステム 2
リレーショナルデータベースシステムは 表計算ではない データベース エクセルのデータ + + データベース 管理システム エクセル (ソフトウエア) || || データベース システム 表計算のシステム データ共有,検索,セキュリティ 表計算 3
リレーショナルデータベースシステムの特徴 • データの形はテーブル(リレーションともいう) • 個々のテーブルを定義する方法(テーブル定義) は体系化されている • データベースの演算も体系化されている. • データベース設計の基礎は理論だっており,学び やすい:ER モデル,異状,従属,正規化,正規 形 • リレーショナルデータベース管理システムにはさ まざまある.MySQL, マイクロソフト Access, Oracle, SQL Server, PostgreSQL, SQLite3, Firebird など.(無料で使えるものもある) 4
2-1 テーブル定義 5
テーブルの例 テーブル テーブル名: tosyo book 赤 赤 青 緑 who XX XX YY ZZ what 貸出 返却 貸出 貸出 at 2021-05-11 13:30:18 2021-05-11 13:30:18 2021-05-11 13:30:18 2021-05-11 13:30:18 「book」と「who」と 「what」と「at」の属性 6
リレーショナルデータベースの構築手順 id id データベース データベース 生成 設計 ※ 最初,デー タベースは空 購入 者 商品 ID name 数量 id 購入 者 商品 ID 数量 1 X 1 10 2 Y 2 5 price テーブル定義 ※ 最初,テーブルは空 テーブル生成 7
テーブル定義 テーブル定義では, ・テーブル名 ・属性の属性名 ・属性のデータ型 テーブル名: tosyo book 赤 who XX what at 貸出 2021-05-11 13:30:18 赤 XX 返却 2021-05-11 13:30:18 青 YY 貸出 2021-05-11 13:30:18 緑 ZZ 貸出 2021-05-11 13:30:18 などを設定して,テーブルを定義する CREATE TABLE tosyo ( book TEXT, who TEXT, what TEXT, at DATETIME); 8
属性のデータ型 book 赤 赤 青 緑 who XX XX YY ZZ what 貸出 返却 貸出 貸出 TEXT TEXT TEXT at 2021-05-11 13:30:18 2021-05-11 13:30:18 2021-05-11 13:30:18 2021-05-11 13:30:18 属性名 テーブル の本体 DATETIME それぞれの属性のデータ型 9
2-2 SQL 10
リレーショナルデータベースシステムの機能 テーブル定義 問い合わせ(クエ リ) データ操作 トランザクション 機能 テーブル定義 データ型 SQL のキーワード CREATE TABLE CHAR, TEXT, INTEGER, REAL, DATETIME, BIT, NULL オートナンバー AUTOINCREMENT 主キー PRIMARY KEY 参照整合性制約 FOREIGN KEY, REFERENCES 射影、選択、結合 SELECT FROM WHERE 重複行除去(分解でも) DISTINCT 比較,範囲指定,パター =, <, >, <>, !=, <=, >=, BETWEEN, ンマッチ,AND/OR LIKE, AND, OR, IS NULL, IS NOT NULL 集計・集約 GROUP BY, MAX, MIN, COUNT, AVG, SUM 並べ替え(ソート) ORDER BY 副問い合わせ IN 挿入、削除、更新 INSERT INTO, DELETE FROM WHERE, UPDATE SET WHERE 開始、コミット、ロール BEGIN TRANSACTION, COMMIT, バック ROLLBACK 11
問い合わせ(クエリ)の仕組み 問い合わせ(クエリ) の結果は,テーブル形式の データ 問い合わせ (クエリ) のコマンド リレーショナル データベースシステム データの種類ごとに分かれ た,たくさんのテーブル 12
問い合わせ(クエリ) • 問い合わせ(クエリ)は,データベースの検索, 集計・集約,ソート(並べ替え)などを行う • リレーショナルデータベースでの問い合わせ(ク エリ)の結果は,テーブル形式のデータ 13
SQL による問い合わせ(クエリ)の例 誰が何回貸出,返却したか SELECT who, COUNT(*) FROM tosyo GROUP BY who; 貸出の回数は全部で何回か SELECT COUNT(*) FROM tosyo WHERE what='貸出'; 14
SQL を用いた新しいレコードの挿入 テーブル名: products id 1 2 3 name price orange 50 apple 100 melon 500 id 1 2 3 4 name price orange 50 apple 100 melon 500 apple 150 INSERT INTO products VALUES(4, 'apple', 150); テーブル名 値の並び.半角のカンマ「,」で区切る ※ 文字列は半角の「'」で囲む 15
SQL の利用イメージ SQLの作成, 編集,実行 SQLプログラム1 SQLプログラム2 SQLプログラム3 ・SQL プログラムを準備しておき, 呼び出すことが可能. ・他のアプリの中に SQL プログラム を埋め込むことが可能 一般利用者は,リレーショナル データベースの利用で, SQLのことを意識しないことも多い リレーショナル データベースシステム 16
2-3 演算の体系 17
関係代数のオペレータ( Union Intersection Difference Cartesian Product a1 b1 c1 d1 a1 b1 c1 d1 a2 b2 c1 d1 a2 b2 c2 d2 a1 b1 c2 d2 a2 v2 c2 d2
関係代数のオペレータ Selection Projection Natural (Join) a1 b1 b1 e1 a1 b1 e1 a2 b2 b2 e2 a2 b2 e2 Divide a a x b a y x a z z b x c x
Relation Calculus 問い合わせ(クエリ)は、Relation Calculus を使っ ても書ける 例 { t | ( t ∈ bank ) & ( t.LNAME = Smith ) } テーブル bank から、LNAME が Smith である ようなタップルをすべて求めよ {t1 | (∃T2) ( ( t1 ∈ bank ) & ( t2 ∈ emp ) & ( t1.FNAME = t2.FNAME ) & ( t1.LNAME = t2. LNAME ) & ( t2.CITY = Fairfax ) ) }
関連資料 • リレーショナルデータベース序論(全4回) 全体を知る. https://www.kkaneko.jp/cc/di/index.html • リレーショナルデータベースの基本(全15回) 基礎を学ぶ. https://www.kkaneko.jp/cc/ds/index.html • リレーショナルデータベース演習(全15回) 演習により修得する. https://www.kkaneko.jp/cc/de/index.html 21