565 Views
January 12, 22
スライド概要
リレーショナルデータベースの基本(スライド資料とプログラム例)
https://www.kkaneko.jp/de/ds/index.html
ds-1. データベースとは,データベースシステムとは,情報とデータ
ds-2. SQL,SQL のデータ型,テーブル定義,問い合わせ(クエリ)
ds-3. ER 図,関連,異状, テーブル分解
ds-4. 問い合わせ(クエリ)
ds-5. 集計・集約
ds-6. 並べ替え(ソート)
ds-7. 結合
ds-8. データベースの異状,分解と結合
ds-9. 主キー,参照整合性制約,従属
ds-10. 中間まとめ,データベースの応用,データベースの種類
ds-11. SQL のIN,副問い合わせ
ds-12. データベースの AND,OR,NOT
ds-13. データベース操作,トランザクション,リカバリ,ロック,同時実行制御
ds-14. 従属,正規形,正規化
ds-15. さまざまなデータベース
YouTube 再生リスト「リレーショナルデータベースの基本」
https://youtube.com/playlist?list=PLwoDcGBEg9WGKPP6dExr8DcUf9nV2kYGD
金子邦彦研究室ホームページ:
https://www.kkaneko.jp/index.html
金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko
5. 集計・集約 URL: https://www.kkaneko.jp/de/ds/index.html 金子邦彦 謝辞:この資料では「いらすとや」のイラストを使用しています 1
リレーショナルデータベースシステム データベースシステムの一種 コンピュータ 記憶 装置 リレーショナル リレーショナル データベース データベース 管理システム たくさんのテーブルが格納される あわせて リレーショナルデータベースシステム 2
問い合わせ(クエリ)の仕組み 問い合わせ(クエリ) の結果は,テーブル形式の データ 問い合わせ (クエリ) のコマンド リレーショナル データベースシステム データの種類ごとに分かれ た、たくさんのテーブル 3
SQL による問い合わせの例 ① SELECT * FROM 商品; ② SELECT 名前, 単価 FROM 商品; ③ SELECT 名前, 単価 FROM 商品 WHERE 単価 > 80; 4
Access で SQLビューを開く. ①「作成」タブで、 「クエリデザイン」 をクリック このような 表示が出た ときは 「閉じる」を クリック ②「デザイン」タブで、 「表示」を展開し「SQL ビュー」を選ぶ 5
アウトライン 番号 項目 説明時間の 目安 5-1 分布,密度,平均 15分 5-2 集計・集約 6分 5-3 SQL での集計・集約 9分 5-4 Access を用いた集計・集約の実演・実習 14分 6
内容 • SQL を用いた集計・集約の方法、そのバリエーションを知る グループ化の基準となる属性(複数可能)、 集計・集約の種類 • 米国成人調査データを利用した演習 調査に協力した人たちの年 齢分布は? 教育と年収の関係を見る 7
5-1. 分布,ヒストグラム,平均 8
データベースの重要性 • データから,正しく知見や結論を導くこと 平均,分散などの算出. 要因や連関の度合いの算出. • さまざまな応用がある • 大量のデータを使い,データの分析を行う人工 知能(データの分析で,人間とAIが協同する) など 授業では,人間が「データベースシステム」を使い,データの利活用を行う ことを説明 ※ 人工知能については,別の選択科目の授業で説明します 9
分布から読み取れること 2つの量に関係がある 密集 縦 軸 は 花 び ら の 幅 密集 密集 かたまり かたまり 横軸は花びらの長さ 10
ヒストグラム ヒストグラムは,区間ごとに,データを数え上げた もの データが 何個あるのか 区間 0.6 ~ 1.1 の データは 10個 11
ヒストグラムから読み取れること 密度が高い 密度が低い 【全体の傾向】 山が2つある(1つではない) 12
平均 • 平均の基本,合計して,データの個数で割る 10, 40, 30, 40 の平均: 120 ÷ 4 で 30 平均は,データ集合の代表とみ ることができる場合がある 平均 計測に誤差があるとき, 複数の計測を繰り返し,平均をとる ことで,誤差を軽減できることも 13
平均を使うときの注意点 平均 平均 このような平均に, 意味があるでしょうか? データの分布によっては,平均では役に 立たないこともある. (平均は万能ではない) 14
データサイエンスの要点 • データから,正しく知見や結論を導くこと 平均 誤差がある.平均値は,正解に 近いだろう • 決して「難解な数式が出てきて難しい」ものでは ない • 正しい手順を踏んで,データから知見や結論を導 くことにつながる 15
まとめ 思い込みを疑い,根拠を確認することが大切. ⇒ データベースの活用 データの分析を行うというとき,ヒストグラム,平 均などに着目する • 分布: データ全体の傾向 • ヒストグラム: • 平均: 分布をみる1つの手段 データを代表する値 16
5-2. 集計・集約 17
集計・集約の例 元データ A B 3 2 行数 A B 90 93 得点の平均 18
集計・集約 ◆ 集計・集約は、データをグループ化して、 グループごとに何らかの計算を行うこと A B 3 2 行数 Aさんは 3科目 Bさんは 2科目受講した A B 90 93 得点の平均 Aさんは平均 90 Bさんは平均 93 19
集計・集約のバリエーション① 集計・集約の種類のバリエーション 元データ A B 270 186 A B 3 2 行数 A B 90 93 得点の平均 A B 95 96 得点の最大 A B 85 90 得点の最小 得点の合計 20
集計・集約のバリエーション② グループ化の基準となる属性のバリエーション A B 3 2 行数 A B 90 93 得点の平均 「受講者」でグループ化 国語 算数 理科 2 2 1 行数 グループ化の基準となる属性は、 1個でもよいし複数個でもよい (あとで実演・実習) 国語 算数 理科 87.5 93 95 得点の平均 「科目」でグループ化 21
グループ化の基準が受講者 「受講者」でグループ化 元データ A B 90 93 得点の平均 22
グループ化の基準が科目 「科目」でグループ化 元データ 国語 算数 理科 87.5 93 95 得点の平均 23
5-3. SQL での集計・集約 24
SQL での集計・集約の書き方 select ○, ○, ○ フィールド名、 count(*) sum(集計するフィールド名) avg(集計するフィールド名) max(集計するフィールド名) min(集計するフィールド名) を並べる from <集計・集約したいテーブル名> group by <グループ化の基準> 25
SQL のキーワード • 行数 count • 合計 sum • 平均 avg • 最大 max • 最小 min 26
集計・集約を行う問い合わせ(クエリ)の例 集計・集約結果は 1つのテーブル select 受講者, count(*) from 成績 group by 受講者; 問い合わせ(クエリ) のコマンド A B 3 2 結果 成績テーブル 27
集計・集約を行う問い合わせ(クエリ)の例 select 受講者, avg(得点) from 成績 group by 受講者; select 科目, avg(得点) from 成績 group by 科目; グループ化の基準の違い (Access での実行結果画面を示す) 28
5-4. Access を用いた集計・集 約の実演・実習 29
実演・実習で使うデータベース 米国成人調査データ (1994年、米国における統計調査データのうち 32561 人分) ※ このデータを使います (演習では、特定の職業、学歴、性別、母国を差別的に見ないようにしてください) データの出典:Lichman, M. (2013). UCI Machine Learning Repository [http://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science (米国) 30
演習用のデータベースファイル • 演習用の Access データベースファイル セレッソの利用者は,セレッソからもダウンロード可能 ファイル名: db4-4.accdb (第4回授業と同じファイル) • 「コンテンツの有効化」のメッセージが出たときは、確認 のうえ、次にすすむ • つぎのような表示が出たときは、確認のうえ、「はい」 31
米国成人調査データ 32
SELECT 年齢, count(*) FROM 米国成人調査データ GROUP BY 年齢; ・空白文字や , や count(*) は半角 ・「;」は最後にだけ 調査に協力した人たちの年齢分布は? 33
SELECT 教育, count(*) FROM 米国成人調査データ GROUP BY 教育; ・空白文字や , や count(*) は半角 ・「;」は最後にだけ 調査に協力した人たちの教育の分布は? 34
SELECT 週当たり労働時間, count(*) FROM 米国成人調査データ GROUP BY 週当たり労働時間; ・空白文字や , や count(*) は半角 ・「;」は最後にだけ 調査に協力した人たちの週当たり労働時間の分布は? 35
SELECT 年収5万ドル以上か, count(*) FROM 米国成人調査データ GROUP BY 年収5万ドル以上か; ・空白文字や , や count(*) は半角 ・「年収5万ドル以上か」は全角 ・「;」は最後にだけ 36
SELECT 教育, 年収5万ドル以上か, count(*) FROM 米国成人調査データ GROUP BY 教育, 年収5万ドル以上か; ・空白文字や , や count(*) は半角 ・「年収5万ドル以上か」は全角 ・「;」は最後にだけ 教育と年収の関係を見る 37
全体まとめ • データに基づいた分析は極めて重要 • データの分析を行うというとき,ヒストグラム, 平均などに着目する • 集計・集約は、データをグループ化して、グルー プごとに何らかの計算を行うこと • SQL による集計・集約の例 select 受講者, count(*) from 成績 group by 受講者; A B 3 2 38