Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
データベース入門
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
saireya
July 10, 2025
Education
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
データベース入門
データベース分野を俯瞰するスライドです。
saireya
July 10, 2025
More Decks by saireya
See All by saireya
記号論に基づく情報科の「中核的な概念」を学ぶ教育実践
saireya
0
61
情報学の基礎(第1回): 情報・表現・内容
saireya
0
35
情報学の基礎(第2回): コミュニケーションとメディア
saireya
0
32
教育実習の事後指導における話し合い活動でのICT活用
saireya
0
46
関連を根本とするデータモデル
saireya
0
40
人工知能(AI)の「細胞」の動きを学ぼう
saireya
0
40
情報科の概念マップをみんなで考えよう
saireya
0
27
情報科の「中核的な概念」を段階的に学ぶ教材の開発
saireya
0
120
情報科教育法(ゲスト講義用)2025
saireya
0
30
Other Decks in Education
See All in Education
Case Studies and Future Research - Lecture 12 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
170
吉祥寺.pmは1つじゃない — 複数イベント並走運営の12年 —
magnolia
0
1.3k
Visionary Initiative: Future Intelligence 「未来の知性と社会の礎を築く」|Science Tokyo(東京科学大学)
sciencetokyo
PRO
0
190
From Participation to Outcomes
territorium
PRO
0
460
Visualisation Techniques - Lecture 8 - Information Visualisation (4019538FNR)
signer
PRO
1
3.1k
事業紹介資料(トレーナー養成講座)
kentaro1981
0
440
偶然のチャンスを掴みに行けるのは君だ!
kotomin_m
2
120
Laura Wilson - The Quarterly PR Pivot
laurawilsonbseo1
1
330
[2026前期火5] 論理学(京都大学文学部 前期 第1回)「ハルシネーションを外部世界との対応を考えずに見分ける方法」
yatabe
0
1.1k
応募課題(’25広島)
forget1900
0
1.6k
アントレプレナーシップ教育機構 概要
sciencetokyo
PRO
0
3.8k
2026年度春学期 統計学 第1回 イントロダクション ー 統計的なものの見方・考え方について (2026. 4. 9)
akiraasano
PRO
0
140
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
860
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Building the Perfect Custom Keyboard
takai
2
780
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
190
Believing is Seeing
oripsolob
1
140
Transcript
データベース入門 1
本日の内容・目標 データの管理・処理について、 • 個人規模での管理方法 • 情報システムでの管理方法 …を学ぶ 5
本日の内容・目標 データの管理・処理について、 • 個人規模での管理方法 • 情報システムでの管理方法 …を学ぶ 6
非構造化データ データに含まれる要素間 の関係を機械的な方法 で検出しづらい 構造化データ データに含まれる要素間 の関係を機械的な方法 で検出しやすい 構造がないデータ・構造があるデータ 7
都道府県 地方 大阪府 近畿 京都府 近畿 兵庫県 近畿 岡山県 中国 広島県 中国 香川県 四国 近畿に大阪府や京都 府がある。実は兵庫が 含まれる。広島県は中 国地方にある。岡山も も同じである。香川県 はうどん県のことで、四 国の北東にある。
関係と構造 関係(relation): いくつかの要素間で成立する事柄 • 「2は1より大きい」 「大きい」という関係が2と1の間で成り立つ • 「香川県の県庁所在地は高松市である」 「県庁所在地」という関係が 香川県と高松市の間で成り立つ
構造(structure): 関係の集まり・全体 8
関係と構造の例: 家系図 「••家」の構造は、 「婚姻関係」「親子関係」「兄弟関係」などからなる 9 (出典) みふねたかし「いらすとや」 https://www.irasutoya.com/2019/05/blog-post_235.html
表計算ソフト: 個人でデータを管理する簡易な方法 • 「計算」を行うことに関する基本的な使い方は、 (おそらく)ICTリテラシなどで学んだと思います • ここでは、「表」の基本的な扱い方を取り上げます • テーブル •
ピボットテーブル • ピボットグラフ • MOSの勉強をした人は多分知っている話です • manabaにあるダミーデータをダウンロードし、 Excelで開いてください • 参考資料: 「表計算ソフトの基礎」 10 (出典) UserLocal「個人情報テストデータジェネレーター」https://testdata.userlocal.jp
Work: 表計算ソフトでのデータ分析演習 やること: 1. 1行目・1列目の固定 2. 列幅の変更 3. テーブルの作成 4.
フィルター・並べ替え 5. ピボットテーブルの作成 6. クロス集計(血液型×性別) 7. ピボットグラフの作成 8. クロス集計(血液型×年齢) 9. 年齢をグループ化 11
表計算ソフトでデータを扱うことの何が問題か? マクロを使えばある程度自動化できるといっても… • 扱えるデータの量が小さく、業務用途に適さない ※Excelの上限: ([Ctrl]+[矢印]キー) 1,048,576(220)行×16,384(214)列 • 複数の表を組み合わせた処理を行うのが難しい (個々の処理はxlookup関数でできるが…)
• 複数人が同時に参照・更新するのに向かない (「共同編集」機能を適切に実装するのは難しい) ⇒ 大規模システムでは、データの管理を専門に行う データベース管理システム(DBMS)が必要 12 (参考) Microsoft「Excelの仕様と制限」(2024/10時点) https://support.microsoft.com/office/1672b34d-7043-467e-8e27-269d656771c3
本日の内容・目標 データの管理・処理について、 • 個人規模での管理方法 • 情報システムでの管理方法 …を学ぶ 13
(参考) 情報処理技術者試験の項目 14 (参考) IPA「試験要綱・シラバスについて」 (ITパスポートv6.3, 基本情報v9.0, 応用情報v7.0) https://www.ipa.go.jp/shiken/syllabus/gaiyou.html 大分類
中分類 テ ク ノ ロ ジ 系 基礎理論 基礎理論 アルゴリズムと プログラミング コンピュータ システム コンピュータ構成要素 システム構成要素 ソフトウェア ハードウェア 技術要素 ユーザーインタフェース 情報メディア データベース ネットワーク セキュリティ 開発技術 システム開発技術 ソフトウェア 開発管理技術 大分類 中分類 マ ネ ジ メ ン ト 系 プロジェクト マネジメント プロジェクトマネジメント サービス マネジメント サービスマネジメント システム監査 ス ト ラ テ ジ 系 システム戦略 システム戦略 システム企画 経営戦略 経営戦略マネジメント 技術戦略マネジメント ビジネスインダストリ 企業と法務 企業活動 法務 基本情報・応用情報の大分類・中分類は共通 ITパスポートの「開発技術」はマネジメント系、 テクノロジ系の中分類に「ユーザーインタフェー ス」ではなく「情報デザイン」がある
(参考) 情報処理技術者試験の項目 (DB分野) 15 (参考) IPA「試験要綱・シラバスについて」 (ITパスポートv6.4, 基本情報v9.1, 応用情報v7.1) https://www.ipa.go.jp/shiken/syllabus/gaiyou.html
分類2 分類3 デ ー タ 操 作 DBの操作 DB 言語 DB言語の種類 DB言語(SQL) データ定義言語 DB言語(SQL) データ操作言語(SELECT 文) DB言語(SQL) その他のデータ操作言語 DB言語(SQL) 埋込型 SQL ト ラ ン ザ ク シ ョ ン 処 理 同時実行制御(排他制御) 障害回復 トランザクション管理 (基本) DBの性能向上 (基本) データ制御 (基本) DB 応 用 DBの応用 (基本) 分散DB (基本) データ資源管理 (基本) 分類2 分類3 DB 方 式 DB DBの種類と特徴 DBの3層スキーマアーキテクチャ DBのデータモデル 関係モデル DB 管理 シス テム DB管理システムの目的 同時実行制御(排他制御) 障害回復 データセキュリティ DB管理システムの種類と特徴 DB 設 計 データ分析 DBの 設計 DB開発工程 (応用) DBの概念設計 DBの論理設計 データの正規化 DBのパフォーマンス設計 (応用) DBの物理設計 (基本) DBの作成手順 (応用) DBの評価・運用 (応用)
(参考) 情報処理技術者試験の項目 (DB分野) 16 (参考) IPA「試験要綱・シラバスについて」 (ITパスポートv6.4, 基本情報v9.1, 応用情報v7.1) https://www.ipa.go.jp/shiken/syllabus/gaiyou.html
分類2 分類3 デ ー タ 操 作 DBの操作 DB 言語 DB言語の種類 DB言語(SQL) データ定義言語 DB言語(SQL) データ操作言語(SELECT 文) DB言語(SQL) その他のデータ操作言語 DB言語(SQL) 埋込型 SQL ト ラ ン ザ ク シ ョ ン 処 理 同時実行制御(排他制御) 障害回復 トランザクション管理 (基本) DBの性能向上 (基本) データ制御 (基本) DB 応 用 DBの応用 (基本) 分散DB (基本) データ資源管理 (基本) 分類2 分類3 DB 方 式 DB DBの種類と特徴 DBの3層スキーマアーキテクチャ DBのデータモデル 関係モデル DB 管理 シス テム DB管理システムの目的 同時実行制御(排他制御) 障害回復 データセキュリティ DB管理システムの種類と特徴 DB 設 計 データ分析 DBの 設計 DB開発工程 (応用) DBの概念設計 DBの論理設計 データの正規化 DBのパフォーマンス設計 (応用) DBの物理設計 (基本) DBの作成手順 (応用) DBの評価・運用 (応用)
(参考) 情報処理技術者試験の項目 (DB分野) 17 (参考) IPA「試験要綱・シラバスについて」 (ITパスポートv6.4, 基本情報v9.1, 応用情報v7.1) https://www.ipa.go.jp/shiken/syllabus/gaiyou.html
分類2 分類3 デ ー タ 操 作 DBの操作 DB 言語 DB言語の種類 DB言語(SQL) データ定義言語 DB言語(SQL) データ操作言語(SELECT 文) DB言語(SQL) その他のデータ操作言語 DB言語(SQL) 埋込型 SQL ト ラ ン ザ ク シ ョ ン 処 理 同時実行制御(排他制御) 障害回復 トランザクション管理 (基本) DBの性能向上 (基本) データ制御 (基本) DB 応 用 DBの応用 (基本) 分散DB (基本) データ資源管理 (基本) 分類2 分類3 DB 方 式 DB DBの種類と特徴 DBの3層スキーマアーキテクチャ DBのデータモデル 関係モデル DB 管理 シス テム DB管理システムの目的 同時実行制御(排他制御) 障害回復 データセキュリティ DB管理システムの種類と特徴 DB 設 計 データ分析 DBの 設計 DB開発工程 (応用) DBの概念設計 DBの論理設計 データの正規化 DBのパフォーマンス設計 (応用) DBの物理設計 (基本) DBの作成手順 (応用) DBの評価・運用 (応用)
データベース (DB: database) データベースは「データが保管されている基地」 database = data + base データ
基地 • 情報システムの裏側でデータを管理するシステム • ほぼすべてのアプリ・Webサービスにおいて必須 • データベースについて学ぶと、 • データの適切な管理・整理・操作の方法を理解できる • 効率的なデータの扱いと「無駄(?)」の関係を学べる • 情報システムを構築するSEの視点を理解できる • 基本情報・応用情報の資格取得に向けた学習になる 18 職業エンジニア以外にも 必須の内容です
「ミドルウェア」としてのデータベース 19 (参考) Think IT「ミドルウェア(Web、AP、DB)について知ろう」(2017) https://thinkit.co.jp/article/11837 ミドルウェア middleware データベース ソフトウェア
software ハードウェア hardware
データベース管理システム(DBMS) DBがミドルウェアとしての役割を果たすためには、 DBを管理する専用のシステムが必要 • ソフトウェアからの問い合わせ(query)に対応 • ハードウェアとのデータの入出力(I/O)に対応 → データベース管理システム(DBMS)が対応 20
データベース管理システム(DBMS) 21
DBMSの種類と例 ▪ 関係データベース (RDB) ▪ NoSQL系 (RDB以外) オープン ソース •
MySQL • PostgreSQL • SQLite • MariaDB • MongoDB • Redis • Cassandra 商用 • Oracle Database • Microsoft SQL Server • IBM Db2 • Microsoft Access • Snowflake • Elasticsearch • Databricks 対象 関係データ(関係表) オブジェクト・文書・ グラフ・XML・ 時系列・空間… 22 (参考) DB-Engines「DB-Engines Ranking」(2024/10時点) https://db-engines.com/en/ranking
DBMSの種類と例: 関係データベース(RDB) いくつかの表をもついくつかのデータベースからなる 23 aaa bbb ccc ddd … …
… … … … … … … … … … aaa bbb ccc ddd … … … … … … … … … … … … aaa bbb ccc ddd … … … … … … … … … … … … aaa bbb ccc ddd … … … … … … … … … … … … aaa bbb ccc ddd … … … … … … … … … … … … aaa bbb ccc ddd … … … … … … … … … … … … aaa bbb ccc ddd … … … … … … … … … … … … aaa bbb ccc ddd … … … … … … … … … … … … aaa bbb ccc ddd … … … … … … … … … … … … aaa bbb ccc ddd … … … … … … … … … … … … aaa bbb ccc ddd … … … … … … … … … … … … aaa bbb ccc ddd … … … … … … … … … … … … 関係データベース 管理システム (RDBMS)
DBMSの種類と例: NoSQL系 RDBでは処理効率が悪い場面で、 RDBではないデータ構造を採用したDBが台頭 24 (参考) Microsoft「リレーショナル データ ソースとNoSQLデータ」(2022) https://learn.microsoft.com/ja-jp/dotnet/architecture/cloud-native/relational-vs-nosql-data
文書 指向 Key- Value型 列 指向 グラフ 指向 MongoDB, Elasticsearch, BaseX Redis, DynamoDB Cassandra, BigTable, HBase Neo4j
DBMSのランキング(2024/10時点) Oracle MySQL Microsoft SQL Server PostgreSQL MongoDB Redis Snowflake
Elasticsearch IBM Db2 SQLite Cassandra Microsoft Access Splunk Databricks MariaDB 0 200 400 600 800 1000 1200 1400 データベース管理システム (上位15製品) DB-Enginesが算出した得点 25 (出典) DB-Engines「DB-Engines Ranking」(2024/10時点) https://db-engines.com/en/ranking 主要なDBMSの大半が 「関係データベース」を採用 用途によってはNoSQL系が 使われることも増加している
(参考) Oracle本社 26 (出典) Wikimedia Commons「File:Oracle Headquarters Redwood Shores.jpg」 https://commons.wikimedia.org/wiki/File:Oracle_Headquarters_Redwood_Shores.jpg
(参考) Forbes Global 2000 (2023) Microsoft Alphabet Meta Platforms Tencent
Holdings Oracle IBM Cisco Systems Salesforce Accenture SAP 0 500 1,000 1,500 2,000 2,500 3,000 3,500 「IT Software & Services」分野の上位10社 ※時価総額順ではない 時価総額 (単位:10億ドル) 27 (参考) Forbes「The World’s Largest Public Companies」(2024/10時点) https://www.forbes.com/global2000/list/2/
(参考) 情報処理技術者試験の項目 (DB分野) 28 (参考) IPA「試験要綱・シラバスについて」 (ITパスポートv6.4, 基本情報v9.1, 応用情報v7.1) https://www.ipa.go.jp/shiken/syllabus/gaiyou.html
分類2 分類3 デ ー タ 操 作 DBの操作 DB 言語 DB言語の種類 DB言語(SQL) データ定義言語 DB言語(SQL) データ操作言語(SELECT 文) DB言語(SQL) その他のデータ操作言語 DB言語(SQL) 埋込型 SQL ト ラ ン ザ ク シ ョ ン 処 理 同時実行制御(排他制御) 障害回復 トランザクション管理 (基本) DBの性能向上 (基本) データ制御 (基本) DB 応 用 DBの応用 (基本) 分散DB (基本) データ資源管理 (基本) 分類2 分類3 DB 方 式 DB DBの種類と特徴 DBの3層スキーマアーキテクチャ DBのデータモデル 関係モデル DB 管理 シス テム DB管理システムの目的 同時実行制御(排他制御) 障害回復 データセキュリティ DB管理システムの種類と特徴 DB 設 計 データ分析 DBの 設計 DB開発工程 (応用) DBの概念設計 DBの論理設計 データの正規化 DBのパフォーマンス設計 (応用) DBの物理設計 (基本) DBの作成手順 (応用) DBの評価・運用 (応用)
E-R(Entity-Relationship)モデル Entity(実体)とRelationship(関連)に分けて データベースを設計する考え方(データモデル) Entity(実体)の例: 個人(氏名, 住所, 生年月日, …) 場所(地名, 緯度,
経度, 高度, …) (「個人」「場所」などのモノ自体を表す) Relationship(関連)の例: 出身地(氏名, 地名) (「ある個人がある場所で生まれた」という、 実体と実体の間の関連を表す) 29 ※DB分野では個々の関係(relation)と関係間の関連(relationship)を使い分けます
E-R図 (Entity-Relationship diagram) E-Rモデルを記述する図 • 複 数 の 記 法
が あ る (ITパスポートでは記 法の細部は問わない) • 右図では、 • 実体: Person, Location • 関連: Birthplace (Personが Locationで生まれた、 という関連) • 1:1, 1:多 なども表す 30 (出典) Wikimedia Commons「File:ERD Representation.svg」(2008) https://commons.wikimedia.org/wiki/File:ERD_Representation.svg
(参考) 最初期のE-R図 (Chen, 1976) 31 (参考) P.P.S.Chen「The Entity-Relationship Model: Toward
a Unified View of Data」 (1976) doi:10.1145/320434.320440
関係表 表(table): データの関係を格子状にまとめたもの (これを関係表(relational table)、 もしくは単に関係(relation)という) 利用者名簿 32 (出典) UserLocal「個人情報テストデータジェネレーター」https://testdata.userlocal.jp
氏名 よみがな 年齢 電話番号 大久保 藍 おおくぼ あい 77 0574-43-3139 福島 紀子 ふくしま のりこ 44 01586-5-7658 加藤 吉孝 かとう よしたか 55 03-6479-7858 滝沢 俊之 たきざわ としゆき 35 06-7797-2829 村上 浩二 むらかみ こうじ 49 03-2822-4810
関係表 表(table): データの関係を格子状にまとめたもの (これを関係表(relational table)、 もしくは単に関係(relation)という) 利用者名簿 33 (出典) UserLocal「個人情報テストデータジェネレーター」https://testdata.userlocal.jp
氏名 よみがな 年齢 電話番号 大久保 藍 おおくぼ あい 77 0574-43-3139 福島 紀子 ふくしま のりこ 44 01586-5-7658 加藤 吉孝 かとう よしたか 55 03-6479-7858 滝沢 俊之 たきざわ としゆき 35 06-7797-2829 村上 浩二 むらかみ こうじ 49 03-2822-4810 「氏名が[大久保 藍]の人のよみがなは[おおくぼ あい]、 年齢は[77]歳で、電話番号は[0574-43-3139]である」 …という「関係」を表す
関係表 表(table): データの関係を格子状にまとめたもの (これを関係表(relational table)、 もしくは単に関係(relation)という) 利用者名簿 34 (出典) UserLocal「個人情報テストデータジェネレーター」https://testdata.userlocal.jp
氏名 よみがな 年齢 電話番号 大久保 藍 おおくぼ あい 77 0574-43-3139 福島 紀子 ふくしま のりこ 44 01586-5-7658 加藤 吉孝 かとう よしたか 55 03-6479-7858 滝沢 俊之 たきざわ としゆき 35 06-7797-2829 村上 浩二 むらかみ こうじ 49 03-2822-4810 列(column) 属性(attribute) 行(row)・組(tuple) レコード(record) テーブル名 関係名・リレーション名 属性名
(参考) 用語の使い分け 表(表現形式) としての用語 関係データベース としての用語 数学的構造 としての用語 表 (table)
関係表 (relational table) 関係 (relation) テーブル名 関係名 行(row) レコード(record) 組(tuple) 列(column) 属性(attribute) 次元(dimension) セル(cell) 属性値 フィールド(field) 要素(element) 行数 関係の大きさ (cardinality) 組数 列数 次数(degree) 見出し(heading) 属性名 属性の型(type) 定義域(domain) 35 ※どの呼び方でも問題ないが、異なる分野の用語が交ざると違和感が生じるので注意 (とはいえ、DBは厳密でない実用志向の分野であるため、実際には交ぜて使われることも多い)
キー: 主キー・外部キー・インデックス キー(key): 関係表の列(の組)のうち、 その列の値を定めると、 その値に対応する関係表 の行が一つに定まるもの • 主 キ
ー: キーのうち 最も「好ましい」もの (IDなどの識別子) 外部キー: 関係表の列の う ち で 、 別 の 関 係 表 の キーを定義域とする列 例: • 国民の表で、ある「個人 番号(マイナンバー)」に 対応する国民は一人に 定まるはず • 製品の表で、ある「製造 番号」に対応する製品 は一つに定まるはず • 大学生の表で、ある「大 学」とある「学籍番号」 に対応する学生は一人 に定まるはず • ある「氏名」に対応する 個人は一人に定まらな い (同姓同名がいる) 36
効率的なデータの管理: 正規化の必要性 期末試験の解答用紙における記入事項(例): 理屈上は、学籍番号さえ分かれば、 他の情報は学生情報のテーブルから得られるはず (学部名や氏名は学籍番号に関数従属している) ⇒ 効率的なDB設計のための正規化を行う 37 2024年度第1期「◆◆入門」期末考査
解答用紙 情報デザイン 学部 情報デザイン 学科 1 年 氏名 •• •• 学籍番号 2401234 . これをすべて書く(データとして記録する)必要はあるのか? ※記録するデータ量を最小化するだけなら学籍番号のみ記入させればよいが、実際は、回答者が 学籍番号を書き間違えることがあるため、学籍番号以外も記入させ、あえて冗長化(非正規化)する
効率的なデータの管理: データの前処理 入手したデータをすぐDBに入れられるとは限らない 複数のデータが1つの要素に結合されていたり、 表記ゆれがあったり前後に空白があったりする ⇒ データクレンジング(前処理ともいう)が必要 • 総務省「統計表における機械判読可能な データ作成に関する表記方法」(2020)
https://www.soumu.go.jp/main_content/000723697.pdf • 首相官邸「数値(表)、文章、地理空間情報の データ作成に当たっての留意事項」(2016) https://www.digital.go.jp/assets/contents/node/basic_ page/field_ref_resources/f7fde41d-ffca-4b2a-9b25- 94b8a701a037/faf1278e/20220523_resources_data_ betten_05.pdf 38
(参考) 情報処理技術者試験の項目 (DB分野) 39 (参考) IPA「試験要綱・シラバスについて」 (ITパスポートv6.4, 基本情報v9.1, 応用情報v7.1) https://www.ipa.go.jp/shiken/syllabus/gaiyou.html
分類2 分類3 デ ー タ 操 作 DBの操作 DB 言語 DB言語の種類 DB言語(SQL) データ定義言語 DB言語(SQL) データ操作言語(SELECT 文) DB言語(SQL) その他のデータ操作言語 DB言語(SQL) 埋込型 SQL ト ラ ン ザ ク シ ョ ン 処 理 同時実行制御(排他制御) 障害回復 トランザクション管理 (基本) DBの性能向上 (基本) データ制御 (基本) DB 応 用 DBの応用 (基本) 分散DB (基本) データ資源管理 (基本) 分類2 分類3 DB 方 式 DB DBの種類と特徴 DBの3層スキーマアーキテクチャ DBのデータモデル 関係モデル DB 管理 シス テム DB管理システムの目的 同時実行制御(排他制御) 障害回復 データセキュリティ DB管理システムの種類と特徴 DB 設 計 データ分析 DBの 設計 DB開発工程 (応用) DBの概念設計 DBの論理設計 データの正規化 DBのパフォーマンス設計 (応用) DBの物理設計 (基本) DBの作成手順 (応用) DBの評価・運用 (応用)
関係表におけるデータの操作 (一部) 操作の種類 使うSQL文 SQLでの書き方 説明 挿入 insert INSERT文 INSERT
INTO テーブル名 (列名1, 列名2, …) VALUES (値1, 値2, …) 表に新たな データを挿入 更新 update UPDATE文 UPDATE テーブル名 SET 列名1= 値1, 列名2 = 値2, … WHERE 条件式 表のデータの 一部を更新 選択 select SELECT文 SELECT * FROM テーブル名 WHERE 条件式 表の一部の 行を抽出 射影 projection SELECT 列名1, 列名2 FROM テーブル名 表の一部の 列を抽出 結合 join SELECT * FROM テーブル名1 INNER JOIN テーブル名2 ON テーブル名1.列名1 = テーブル名2.列名2 複数の表を 結合 40 ※ITパスポートではSQLの文法は問われないので、まずは操作の種類を理解すればOK
関係表におけるデータの操作: 挿入(insert) 41 氏名 よみがな 年齢 電話番号 大久保 藍 おおくぼ
あい 77 0574-43-3139 福島 紀子 ふくしま のりこ 44 01586-5-7658 加藤 吉孝 かとう よしたか 55 03-6479-7858 氏名 よみがな 年齢 電話番号 大久保 藍 おおくぼ あい 77 0574-43-3139 福島 紀子 ふくしま のりこ 44 01586-5-7658 加藤 吉孝 かとう よしたか 55 03-6479-7858 滝沢 俊之 たきざわ としゆき 35 06-7797-2829 村上 浩二 むらかみ こうじ 49 03-2822-4810 関係表に氏名「滝沢 俊之」「村上 浩二」の行を挿入 INSERT INTO テーブル名 (氏名, よみがな, 年齢, …) VALUES (“滝沢 俊之”, ”たき ざわ としゆき”, 35, …) ※関係表には行の順序はないので、基本的に末尾に挿入される
関係表におけるデータの操作: 更新(update) 42 氏名 よみがな 年齢 電話番号 大久保 藍 おおくぼ
あい 77 0574-43-3139 福島 紀子 ふくしま のりこ 44 01586-5-7658 加藤 吉孝 かとう よしたか 55 03-6479-7858 氏名 よみがな 年齢 電話番号 大久保 藍 おおくぼ あい 77 0574-43-3139 福島 紀子 ふくしま のりこ 23 0120-333-555 加藤 吉孝 かとう よしたか 55 03-6479-7858 関係表の氏名「福島 紀子」の行に おける年齢と電話番号を更新 UPDATE テーブル名 SET 年齢 = 23, 電話番号 = “0120- … WHERE 氏名 = “福島 紀子” ※WHEREで条件を指定しないと、すべての行の値が更新されてしまう
関係表におけるデータの操作: 選択(select) 43 氏名 よみがな 年齢 電話番号 大久保 藍 おおくぼ
あい 77 0574-43-3139 福島 紀子 ふくしま のりこ 44 01586-5-7658 加藤 吉孝 かとう よしたか 55 03-6479-7858 氏名 よみがな 年齢 電話番号 福島 紀子 ふくしま のりこ 44 01586-5-7658 加藤 吉孝 かとう よしたか 55 03-6479-7858 関係表のうち年齢が60以下の 行を選択 SELECT * FROM テーブル名 WHERE 年齢 <= 60 ※SELECTの後の「*」は「すべての列」を示す(「ワイルドカード」と呼ばれる特殊な指定方法の一種)
関係表におけるデータの操作: 射影(projection) 44 氏名 よみがな 年齢 電話番号 大久保 藍 おおくぼ
あい 77 0574-43-3139 福島 紀子 ふくしま のりこ 44 01586-5-7658 加藤 吉孝 かとう よしたか 55 03-6479-7858 よみがな 年齢 おおくぼ あい 77 ふくしま のりこ 44 かとう よしたか 55 関係表のうちよみがなと年齢の列 を射影 SELECT よみがな, 年齢 FROM テーブル名 ※選択と射影はどちらがどちらか紛らわしいが、関係データベースでは基本的に行(レコード)単位 でデータを操作する。関係表の行は後から変更しやすいが、列は最初に作成した後はあまり変えない
氏名 よみがな 年齢 電話番号 大久保 藍 おおくぼ あい 77 0574-43-3139
福島 紀子 ふくしま のりこ 44 01586-5-7658 加藤 吉孝 かとう よしたか 55 03-6479-7858 関係表におけるデータの操作: 結合(join) 45 氏名 よみがな 電話番号 大久保 藍 おおくぼ あい 0574-43-3139 福島 紀子 ふくしま のりこ 01586-5-7658 加藤 吉孝 かとう よしたか 03-6479-7858 よみがな 年齢 おおくぼ あい 77 ふくしま のりこ 44 かとう よしたか 55 2つの関係表をよみがなをキーに して結合 SELECT * FROM テーブル名1 INNER JOIN テーブル名2 ON テーブル名1.よみがな = テーブル名2.よみがな ※結合には複数の結合方法・記法がある
(参考) 情報処理技術者試験の項目 (DB分野) 46 (参考) IPA「試験要綱・シラバスについて」 (ITパスポートv6.4, 基本情報v9.1, 応用情報v7.1) https://www.ipa.go.jp/shiken/syllabus/gaiyou.html
分類2 分類3 デ ー タ 操 作 DBの操作 DB 言語 DB言語の種類 DB言語(SQL) データ定義言語 DB言語(SQL) データ操作言語(SELECT 文) DB言語(SQL) その他のデータ操作言語 DB言語(SQL) 埋込型 SQL ト ラ ン ザ ク シ ョ ン 処 理 同時実行制御(排他制御) 障害回復 トランザクション管理 (基本) DBの性能向上 (基本) データ制御 (基本) DB 応 用 DBの応用 (基本) 分散DB (基本) データ資源管理 (基本) 分類2 分類3 DB 方 式 DB DBの種類と特徴 DBの3層スキーマアーキテクチャ DBのデータモデル 関係モデル DB 管理 シス テム DB管理システムの目的 同時実行制御(排他制御) 障害回復 データセキュリティ DB管理システムの種類と特徴 DB 設 計 データ分析 DBの 設計 DB開発工程 (応用) DBの概念設計 DBの論理設計 データの正規化 DBのパフォーマンス設計 (応用) DBの物理設計 (基本) DBの作成手順 (応用) DBの評価・運用 (応用)
トランザクション トランザクション(transaction): 直訳は「取引」だが、DB分野では「一つの活動と して扱うべきいくつかの処理のまとまり」を指す トランザクション処理が必要になる場面: • 複数の処理を同時に要求されたときに、 どちらの処理も正しく完了させなければならない • 一つの解決策は、あるトランザクションの処理中は
DBに他の処理を行うことを制限(ロック)し、他の 処理を行えないようにする(排他制御)こと 47
ACID特性: トランザクション処理で考慮すべき点 • 原子性(Atomicity): あるトランザクションの処理 について、「全く処理していない」か「すべて処理 し終えた」のどちらかの結果になるように処理す る(「途中まで処理した」という中途半端な状態に ならないようにする) •
一貫性(Consistency): あるトランザクションの 処理について、処理の前後でDBの内容に矛盾 が生じていないように処理する • 独立性(Isolation): いくつかのトランザクション の処理について、処理を一つずつ実行しても同時 並行で実行しても同じ結果になるように処理する • 永続性(Durability): 処理し終えたトランザク ションについては、その後に障害が生じても処理 結果が失われないように処理する 48
障害が生じたときの回復処理 DBに何らかの障害(DBが壊れること)が生じた場合、 何らかの回復処理が必要になる • バックワードリカバリ(ロールバック): トランザクションの処理中に障害が生じたときに、 トランザクション処理直前の状態に戻す (処理開始前に作成したログファイルを使用する) • フォワードリカバリ(ロールフォワード):
トランザクションの処理後に障害が生じたときに、 トランザクション処理直後の状態に戻す (DB全体のバックアップと、 処理終了後に作成したログファイルを使用する) 49
本日の内容・目標 データの管理・処理について、 • 個人規模での管理方法 • 情報システムでの管理方法 …を学ぶ 50
(参考) すぐ学び始めたい方へ • 武善「身近にあるデータベースを学ぼう!」 https://www.youtube.com/watch?v=T1U E1j8Q-i0 「情報I」を学ぶ現在の高校生向けの動画です。 • 藤本「実践データベース」 https://speakerdeck.com/
recruitengineers/shi-jian-detabesushe-ji リクルートの新人研修用スライドだそうです。 • 基本情報技術者試験などの参考書 浅いが簡潔に書かれているので、予習にお勧め。 52
(参考) すぐ学び始めたい方へ • 山本「データベースの講義ノート」 https://dbnote.hontolab.org 名古屋市立大の講義で使われている資料です。 • 向「データベースシステム」 https://mukai-lab.info/pages/classes/ database_system/
椙山女学園大の講義資料だそうです。 • 宇田川・藤原『実学としてのデータベース』 https://amazon.jp/dp/4864810893 次年度使用予定の必携書。 変えるかもしれないので、まだ買わなくてよいです。 53
(参考) すぐ学び始めたい方へ DB分野の情報処理技術者試験の過去問サイト • ITパスポート試験ドットコム https://www.itpassportsiken.com/ index_te.html#21_1 • みちともデジタル https://michitomo2019.com/
it-passport-database-qs/ • 基本情報技術者試験ドットコム • https://www.fe-siken.com/ index_te.html#9_1 • スマホ用アプリなどもある ※情報処理技術者試験の過去問は、教育目的など試験の意義に即した 利用であれば、条件を満たせば許諾なく利用可能だそうです。 54 (参考) IPA「試験に関するよくある質問」(2024/10時点) https://www.ipa.go.jp/shiken/faq.html
課題 「過去・現在・未来におけるあなたとデータベースの 関係」について、Webフォームに記入し提出 • 「過去」は大学入学以前、「未来」は学部卒業後 • それぞれの場面で使っている(いた)データベース の具体名(Web上のものはURLも記す)を挙げる • それぞれ異なるものを1つずつ(計3つ)挙げる
• ここでいう「データベース」は、Webで利用可能な もの以外の、紙や自作ファイルにまとめたものも可 • 「データベース」に直接触らず、Webサイト・アプリ などから利用するものでも可 • 挙げた「データベース」を、あなたがいつどのよう に使っている(いた)かを具体的に説明する 55