大学、特に理系では「基礎」って書いている本とかは大抵専門的で難しいです。特に数学は「基礎」の方が大抵抽象的ですしね。「入門」と書いていれば、一般向けの入門なのか、学部生向けなのかで多少違いますが、割と必死こいて調べなくても読み切れるものが多いイメージですね。
あまり深入りせずに簡単に読める様に書いてみました。
なぜ、データベースを使う?
大規模なデータを正しく速く処理するのに必要です。
エクセルのような表計算ソフトではデータ数が多いと重かったり、データの多様さに対応できなかったりします。
データベースとは?
計算機科学の文脈では、データベースは
「計算機に永続的かつ体系的に格納されたデータの集まり」
と定義されます。
データベース内のデータを管理(検索・データ更新・障害回復など)するシステムとは区別されます。
表記
例えば、学校のデータベースなら、少なくとも学生のデータを管理するでしょう。
学生(名前, 学生番号, 学年, クラス, 部活)
教師(名前, 科目, 年齢)
のように表記します。(実際にデータベースを使うとして追加する項目は、性別とか、車椅子などのサポートが必要な身体障害の有無などがあるでしょう)
問い合わせ
見たいデータを見るための操作を問い合わせと呼びます。
SQLというコンピュータ言語の場合の操作方法を書きます。
2年生でテニス部に所属している生徒の名前一覧を見たいときは、
SELECT 名前 FROM 学生 WHERE 学年 ='2' AND 部活 = 'テニス'
のように書きます。(厳密には「’テニス’」は「N’テニス’」と書きます。「N」は英文字以外の文字列を扱うときに必要。部活とか学年の前には書いたらだめ。)
独立性
学生(名前, 学生番号, 学年, クラス, 部活)
学生の「部活」を「クラブ」という表記に変更したいとします。
変更したら、
学生(名前, 学生番号, 学年, クラス, クラブ)
になるので、
さっき↓
SELECT 名前 FROM 学生 WHERE 学年 ='2' AND 部活 = 'テニス'
とか書きましたが、
SELECT 名前 FROM 学生 WHERE 学年 ='2' AND クラブ = 'テニス'
と書かなければいけないのでしょうか。
独立性があれば、答えは「NO」です。
以下、その理由の説明です。
学生(名前, 学生番号, 学年, クラス, 部活)
教師(名前, 科目, 年齢)
みたいなやつを変更しても、あらかじめ、「部活」などの属性を「ビュー定義」っていう操作をしておけば、SQLでの操作で属性の名前を気にせずに済みます。
実際は知りませんが、学生管理サービスの会社があれば、各学校の言い方(部活、クラブ活動、サークル活動)に合わせて表記できるけど、操作は同じ様にできて便利なわけです。
その場合は「部活マスター」みたいな名称にして「名称変更したらSQLでも変更後の名称使うやつ」なのか「名称変更しても、SQLではずっと同じでいいやつ」なのかを区別できるようにします。
コメント