ひよっこSEの備忘録

20卒の未経験エンジニアの日々の備忘録です。

データベースの基礎

 

データベース

省略されてDBと言われることもあります。

一箇所にまとめられて蓄積・管理されているデータの集合体で、作成・管理には一定の形式が設けられています。また、複数で利用・共有すること、検索・加工することも条件にあります。

一般的にはコンピュータ上のものをデータベースと言いますが、紙媒体の電話帳やタウンページもれっきとしたデータベースです。

ファイルシステム上での整合性を解決しています。

ファイルシステムとの違い

データベースが登場するまで多く使われていました。

データベースは数値や文字まで解体された個々の要素を蓄積するのに対して、 ファイルシステムは〇〇のデータという加工済みのファイルとして保存されます。

プログラミング等でデータを使用する際は、ファイルシステムだとファイルのある場所、メモリのどこにあるかの情報が必要となります。

データベースの場合は、格納されているところからデータベース側が取り出してくれるので、場所の情報が不要になります。

DBMS

データベース管理システム(Database Management System)

データベースを管理するためのシステムです。 管理するだけなので、DBMSで何か動かそうとすることはできません。

操作をするにはSQL言語が必要となります。

DBMSの利点
  • 複数のデータを一元管理できる

一箇所にまとめて管理をしておくことで、データがどこにあるのか探す必要がなくなります。

データの位置を意識する必要がなく、命令で欲しいデータを取り出すことが可能です。

  • 複数人で使える

複数のユーザが同時にデータを利用したい場合、データベース側が制御してくれます。(ファイルシステムでは解決できなかった整合性の解決)

  • バックアップ機能

手動でバックアップを取る必要がなく、自動で定期的にバックアップをとることが可能です。

データベースの種類

階層型データベース

会社の組織図や家系図のように、幹から枝が生えている(ツリー構造)イメージです。

親データと子データで1対多数の関係になります。

大型のコンピュータで使用されてきており、大量のデータを高速で処理することができます。(検索する際にルートが1つに限られるため)

データの変更がしにくい、データが重複することがあることがデメリットです。

ネットワーク型データベース

 階層型では実現が難しい、多数対多数の関係を構築できます。ツリー構造よりは網目状のイメージです。

後述するRDBに代替されるようになりました。

ビッグデータ

従来のデータベース群では管理が難しい、巨大なデータ群です。

日々生産されるリアルタイムな情報を指すことが多いです。

NoSQL

SQLを用いないDBMSです。

RDBで必要なテーブル等を用意する必要がなく、あらかじめ用意されている関数のみで操作ができます。

リレーショナルデータベース(RDB)

RDBを管理するソフトウェアをRDBMSと言います。

Oracle,MySQL,SQLserver等、様々なベンダーの製品があります。

 

RDBの特徴として、データを表の形で構成をします。表をテーブルと言います。

複数のデータを表と表の関係を用いて管理しています。

表の縦をフィールド、横をレコードと言います。

あらかじめ用意する基礎のデータをマスタテーブル、日々蓄積されるデータをトランザクションテーブルと言います。

 

レコードを取り出す際には、そのレコードを取り出すのに必要なフィールドを指定します。この時に指定されたフィールドをキーと言います。

キーは他に、社員番号や個人番号のような重複することのない一意(ユニークとも言います)を特定することのできる特別なキーがあり、主キー(Primary key)と言います。

主キーがNULL、空の扱いになることはありません。

複数のフィールドを主キーのように使う時には複合キーと言います。

 

テーブルが複数ある際には、外部キーを使い他のテーブルと結びつけることもできます。

これをリレーションシップと言います。

データベースでは複数のテーブルを使用することが一般的となります。