筑波大学 データベース概論Ⅰ
というyoutube動画
があって、約3年前に視聴しました。
そのときのメモのうち、1.データベースシステムの基本概念、を以下にまとめます。
モチベ
ちょうどAWS DBSの試験に合格した直後だった。
しかし、DBガチ勢の友達と話して何もわかっていないとなった。
基礎を深掘りする。
1.データベースシステムの基本概念(1)
背景
・「計算」→「情報」→「ビッグデータ」
・ビッグデータの3V
データ量(Volume)、多様性(Variety)、スピード(Velocity)
データベースシステムとは
・データベース・・・複数の応用目的での共有を意図して組織的かつ永続的に格納されたデータ群
・データベース管理システム
・データベースシステム
従来ファイルシステムの問題点
・整合性維持機能の欠如
ファイルにはデータ型や有効な値の範囲といった概念がない。
どんな値でも入力された通り格納
・不十分な機密保護
ファイル単位のread/writeアクセス制御はあっても、より細かいレベルの制御が不可能
・複数ユーザーの同時アクセス
トランザクションが競合し、データ更新が喪失する。
ファイルでは、このような問題を防ぐためのロック等を用いるかどうかはプログラム任せ。
・不十分な障害時データ保護
トランザクションの途中で障害が発生した場合の対応が不十分
データベース化のメリット
・データを共有すること自体のメリット
データの多目的利用の促進、重複や不整合の防止、データの意味や相互関連の把握が容易、データ表現や管理方法の標準化
・データベース管理システムはデータの共有を実現しつつ、これまでに述べたファイルの問題点を解消
データベース管理システムの主な機能
・基盤となるデータ記述・操作系
・効率の良いデータアクセス機構
・整合性の維持
・機密保護
・同時実行制御
・障害回復
基盤となるデータ記述・操作系
・データモデル・・・対象データとそれに対する操作を規定した共通の枠組み
データの物理的な格納形態や検索手順の詳細に関与することなく、論理的なレベルでのデータ記述と操作が可能。
リレーショナルデータモデル
・形式的データ操作体系
リレーショナル代数、リレーショナル論理
・データベース言語 SQL
効率の良いデータアクセス機構
・データ格納方式
ファイル編成(木構造、ハッシング)、索引(主索引、二次索引)
・問い合わせ機構
問い合わせ最適化(query optimization)
整合性の維持
キー制約、ドメイン制約、参照整合性制約
機密保護
・該当するアクセス権限のあるユーザによるデータ操作
・ビューを用いたアクセス制御
・暗号化
・データベースサーバへの接続制御
・最近では、クラウド環境におけるデータや問い合わせ内容の機密保護のための技術も。
1.データベースシステムの基本概念(2)
同時実行制御(concurrency control)
・トランザクション・・・データベースに対する一貫したデータ操作の基本単位
lock,timestampなど
障害回復(recovery)
・各種障害からのデータベースの保護
・トランザクションを単位としたデータ操作を保証
スキーマとインスタンス
・スキーマ(schema):データベースの構造、枠組み、メタデータ 社員番号、氏名、基本給与、住所など
・インスタンス(instance)
・タプル(組)
通常、データベースのインスタンスは頻繁に変化するが、スキーマの変化速度はそれに比べて遅い。
抽象化の3レベル
・ANSI/SPARCモデル(アーキテクチャ)
外部レベル
概念レベル
内部レベル
データ独立性
・論理データ独立性・・・属性名の変更、属性の追加、リレーションの追加
・物理的データ独立性・・・ファイル編成の変更、索引の追加・削除
外部レベルと概念レベル
データベース言語
データ定義言語(DDL)
データ操作言語(DML)
データ制御言語(DCL)
データベース言語
問い合わせ言語
ホスト言語方式
・アプリケーションプログラム:データベース操作以外の処理も含む
↓
通常のプログラミング言語
↓
ホスト言語
データベース管理者
・スキーマ定義や変更
・物理的記憶領域管理および各種チューニング
・ユーザの登録やアクセス権の設定
・各種整合性制約の設定
・データベースのバックアップや障害への対応
以降もある
2.データモデリング へと続いていきます。
これ以降も、行列を使った原理的なDBの説明など興味深かったです。
以下にリンクを全て貼っておきます。
感想など
・やっぱり冒頭の、従来のファイルシステムの問題点の項目がよかった。
なぜDBが生まれたのか。なぜファイルじゃダメなのか。答えられますか。
・如何に探索を高速化してきたかみたいな話が、数十年前のリアルタイムの話も交えて語られていたのもおもしろかった。
・試験対策に絞るならUdemyのような動画教材も有力だが、基礎からじっくり理解したい場合は大学の授業動画がとても参考になった。