7/29
⭐️データベース言語の種類
データ定義言語
データ操作言語
データ制御言語
データベース言語
問い合わせ言語
→かつて別れていたdb言語はSQLが統一して全てできるように!
⭐️sqlはアプリケーションプログラムでどのように動く?
この三層で見た時
アプリケーション
dbms
db
sqlはアプリケーションサーバー上で動く、
そこからデータベースサーバー上のdbmsにリクエストを出す。
dbのデータ操作が行われたあと、帰ってきたらデータをアプリケーションプログラムで使用する。
⭐️ホスト言語
sqlだけでアプリケーションを組み上げることは出来ない。
アプリケーションではsql以外の通常のプログラム言語も使用されている。
java、c、php、pythonなど
これらの言語にsqlを埋め込んで使用する。
埋め込み元の言語をホスト言語と呼ぶ
7/31
⭐️データベースのシステム構成と利用者
・システムカタログ
リレーショナルデータベースではまずスキーマを定義する
クリエイトテーブルなどのステートメント
メタデータの蓄積
それらを取りまとめるのがシステムカタログ
スキーマの情報やメタデータ管理のdb
sql文を走らせた時に、文法があっているか、fromで指定されたテーブルが存在するか、属性が正しいかなど、チェックする。
・データマネジャ
リレーションの中から条件指定(whereの処理?)
リレーションをジョインする(inner/left joinなど?)
トランザクションの処理
ログなどの障害回復用の処理の記録
これらの処理を行う部分
⭐️データベースユーザーの分類
・カジュアルユーザー
sqlを走らせてデータをとったりするユーザー。前者の自分の仕事領域はこの部分にあたる。
・ナイーブユーザー
カジュアルよりもっとライトな層。データベースの存在を認識せずに使っている人たち
・アプリケーションプログラマ
・データベース管理者
スキーマの定義や変更。概念スキーマを個人が勝手に変更するとデータベースは制御できなくなる。管理者が管理や権限の付与でコントロール。
ログなどを取っていても、データを記録するディスク本体が物理的に破損していると記録残っていてもデータそのものがないから復元できない事態になる。→バックアップは必須
バックアップや障害回復は管理者の役割