Output Diary

プログラミング × 読書 のアウトプットを発信しています

【Rails】データベース

 

データセンターのイラスト(複数)

 


データベースは、

データの蓄積・保存が容易にできるように整理された情報の集まりのことです。

 

 

データベース管理システム(Data Base Management System)とは、

データベースの機能をアプリケーションから簡単に扱えるようにしたミドルウェアです。

 

f:id:kina_kq:20210327143506j:plain

 

はい。

ミドルウェアとは、コンピュータを構成する要素の一つです。

コンピュータの構成要素は、以下のように階層上に並んでいます。

処理を行うアプリケーション

制御をするOSとの間に存在するソフトウェアのことを、

ミドルウェアと呼んでいます。

 

ミドルウェアの具体例として、

・Webサーバ

アプリケーションサーバ

・データベース管理サーバ

 があります。

 

データベースの種類(代表例)

 

データベースにはいくつかの種類に分けらます。

 

●関係型:データを表で管理します。

●階層型:データを階層で管理します。

●ネットワーク型:データを網状に管理します。

 

この中でも

関係型と呼ばれるデータベースが現在の主流となっています。

 

 

関係データベース

 

関係データベースは、

表の形で管理するデータベースです。

 

データの内容次第で複数の表を関係づけして扱うことができるため、

「関係」データベースと呼ばれています。

 

「関係」は英語で「リレーションシップ」であるため、

関係データベースは、リレーショナルデータベース(RDB:Relational Database)とも呼ばれます

 

●表を構成する各要素

f:id:kina_kq:20210327151418p:plain

 

データベースの設計の要点は、

「One Fact One Place」です。

 

「1つの事実は1つの場所のみに存在する」ということに徹底して 

蓄積されたデータに矛盾や重複が発生しないよう表の最適化を行います。

 

 これを実現化させる手法として

正規化という考えがあります。

 

 

正規化・・・

データ等々を一定のルール(規則)に従って変形させ利用しやすくすることのことをいいます。

 

例えば、

取引会社と氏名について書かれた以下の名簿があったとします。

 

 

f:id:kina_kq:20210327154039p:plain

 

この中の「ミジンコ社」が来年の春から、

会社名を「サルモネラ社」へ改名すると報告を受けたとします。

 

それを受け、

一つずつデータを取り出し、ミジンコ社→サルモネラ社へと

打ち直しをするのはとても労力を使います。

日が暮れてしまいますね。

 

 

ミジンコ社のデータが大量であればあるほど変更に要する労力は大きくなります。

 

 

そのときに「正規化」という考え方がとても大事になっていきます。

この場合、表をこんな感じに分けていきます。

 

 

f:id:kina_kq:20210327154928p:plainf:id:kina_kq:20210327154942p:plain

 

こうすることで右の表の、

ミジンコ社のところをサルモネラ社に変更させることでデータの書き換えが一瞬で終了します。

 

このようにデータを必要最低限の項目で見やすいものに書き換えていくことを

正規化と呼びます。

 

f:id:kina_kq:20210308104233p:plain

それではまた明日ー!