eyecatch

作成日:2019-03-04 / 更新日:2020-06-06

日々、発生するデータを蓄積するための格納庫として、データベースが活躍しています。

データベースを利用しない日は今の世の中ではほとんどないと思います。

そんなデータベースについて、わかりやすく紹介していきたいと思います。

# データベースとは「データの集合体」である

データベースに格納するデータについてですが、みなさんはどのように認識されていますでしょうか?

世の中にあるものはほぼなんでも、データと呼べると思います。ただし、**言語化(文字化)**は必要です。

言語化(文字化)してしまえばデータになることは可能です。

日付、名前、性別、住所・・・・なんかはわかりやすい例ですね。

ただ単純に集合して格納しているだけではなく、格納しているデータを引き出したり、更新したりすることができるのもデータベースです。

データを管理しやすくするため、データベース管理システムを利用することが今では一般的かと思います。

ちなみにWikipediaによると・・・・

データベース (英database, DB)とは、検索や蓄積が容易にできるよう整理された情報の集まり。通常はコンピュータによって実現されたものを指すが、紙の住所録などをデータベースと呼ぶ場合もある。コンピュータを使用したデータベース・システムでは、データベース管理用のソフトウェアであるデータベース管理システムを使用する場合も多い。

となっています。同じようなことが書かれていますね。

# データ集合体をどのように作るのかを定義するがデータモデルである

データの集合体であるデータベースですが、どのように集合体を作るのかによって、モデルが存在しています。大きく分類されるのが、以下のとおりです。

  1. 階層型
  2. ネットワーク型
  3. 関係型(リレーショナル)
  4. オブジェクト型

現在の主流は、関係型(リレーショナル)モデルです。

数学の集合論が考え方の元になっているようですが、このあたりのことはあまりわかっていなくても問題にはならないように思います。

当初、階層型がデータモデルの典型でした。 1980年代以降、主流が関係型(リレーショナル)に変化していった経緯があります。

今でもメインフレームのような旧来からのシステムでは階層型が使われていることが多いように思いますし、オープン系については、リレーショナルが使われていることが多いと思います。

最近はオブジェクト型が徐々に普及してきました。

オブジェクト型はデータのどのように格納しておくかをきっちりと定義しないことが特徴だと思います。

データが膨大に増えてきた現在にとっておきの方法なのかもしれませんね。 (今はその中でもキーバリューと呼ばれるモデルが主流なようです。)

とはいえ、データをしっかりと格納し、容易に取り出せるリレーショナルはまだまだ健在です。

ここからは、リレーショナルモデルのデータベースを中心に解説していきます。

# 関係型データモデル

すべてのデータは何かしらの関係によって、成り立っているという考え方です。

例えば、”寅”は干支の3番目、干支の10番目は”酉”というように、この場合だと2つの関係性からデータが成り立っていることがわかります。このデータモデルを考えていくことをデータベース設計(スキーマ設計)と呼びます。スキーマは会計の定義などであらわされる関係型データベースの論理です。

# 関係型データベースにおける基本的な用語

少し、データベースを勉強する上で必要そうな用語をまとめてみました。

  1. 関係:英語だとreration。表でいえば見出しと本体。
  2. 表:英語だとtable。関係をあらわすために一般的に広く使われているもの。水平方向と垂直方向にデータ要素を並べたもの。
  3. 属性:英語だとattribute。表でいえば、列。(SQLではcolumn)
  4. タプル:日本語でいうと”組”。表でいえば、行。(SQLではrow)

このあたりの基本用語がわかると、様々な資料・情報でもイメージがしやすくなると思います。

# DBMSとファイルシステム

DBMS(DataBaseManagementSystem)という言葉、お聞きになったことはありますでしょうか。DBMSはデータを一元的に管理して、有効に、効率的に利活用するための仕組みです。 これに対して、昔からあるのが、ファイルシステムです。これはwindowsのフォルダなどでもおなじみのものです。ファイルシステムでデータを管理することができないわけではないのですが、いくつか問題があります。

  • データの重複→windowsだとファイルを自由に作って、自由にコピーできたりしますよね。同じものが複数に分けられてたりすることもあり、重複感がどうしてもでてしまいます。

  • データの共有→ファイルシステムだと同じファイルを同時に複数人で共有することは不向きです。できないわけではないですが、同時に更新などするとデータが壊れてしまうこともあります。

DBMSだと、一元管理にて、データの重複を排除し、複数からデータを共有することになっても、処理できるよう、”ロック”などの制御が行えるようになっています。

DBMSのうち、リレーショナルデータモデルの場合は特にRDBMS(RerationalDataBaseManagementSystem)と表記されることがあります。有名なRDBMSは以下のようなものがあります。

  1. Oracle
  2. Mysql
  3. PostgresSQL
  4. MariaDB

# DBMSとデータベース(DB)の違い

上で説明したとおり、DBMSはデータを一括管理するための仕組みのことを指します。 一方でデータベースはデータの集合体のことを指します。

データベースだけだとデータの管理方法についてはわからないわけです。 どのようにデータを管理しているのかを定めたものがDBMSということになります。