0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

データベース(DB)とは

Posted at

【データベースとは】

「決まった形式(データモデル)で整理されたデータの集まり」
厳密に言うと、決まった形式で「複数で共有、利用すること」と「検索、加工すること」を目的に整理されたデータの集まりを指す。

また、データベースは「データベース管理システム(DBMS)」というソフトウェアで制御(データの保存、検索、更新、削除などの操作)を行う。

例えば、以下のような場面でデータベースが役立つ。
・商品在庫データの中から、在庫数が一定数以上の商品を見つけたい。
・住所録の中から、東京都在住の人物をリストアップしたい。
・契約リストのなかから、担当者が「田中」のものだけを抜き出したい。

(補足)
Webサービスの基本的なサーバー構成(Web3層構造)には、必ずデータベースが含まれている。
また、下記のようにサーバーとデータベースはやりとりをしている。
「Webサーバー⇔APサーバー⇔データベース」

【データベースとスプレッドシートの違い】

データベースとスプレッドシート(Excelなど)は、どちらも情報を保存する便利な方法ではあるが、これらには次のような違いがある。
・データをどのように保存し、操作するか
・データにアクセスできるのは誰か
・どの程度の量のデータを保存できるか

スプレッドシートは本来1人のユーザー向けに設計されており、その点を反映した特性を備えている。ユーザーが1人または少人数で、過剰に複雑なデータ操作を大量に実行しないのであれば、スプレッドシートは十分に機能する。
一方、データベースは、整理された情報の大規模な集合を保持するように設計されていて、そのデータが膨大な量になることもある。データベースを使用すると、同時に複数のユーザーが迅速、安全にデータを利用でき、きわめて複雑な論理と言語を使用してデータに対するクエリを実行できる。

(補足)
クエリ:データベースに対する命令文。

【データベースの種類(データ・モデル)】

データを整理及び管理する方法には、以下のようなものが挙げられる。

  • ツリー状に構成する「階層型」
    会社の組織図のように、上層から下層に分岐する1対多の形でデータが整理されているデータベース。
    上層から特定のデータに至るまでのルートは一つのみのため、データの検索が早いという特長がある。
    しかし、データが重複する場合データ構造が冗長になりやすいデメリットを持っている。また、データの追加や削除が入るとアクセスルートは変わってしまうため、柔軟なデータ管理が困難になる。

例)会社の組織図で社員のAさんが人事部と総務部を兼任している場合、人事部と総務部の両方の下層にAさんの名前が記入されることになる。このように、状況次第では一つのデータを複数個所に登録する必要が生じるのが弱点である。

  • 網目状に構成する「ネットワーク型」
    関連性のあるデータを相互に結び付けて保存するタイプ。階層型を、下層から上層に向けても分岐させた形式のデータベースといえる。
    これにより、多対多の関係性が成り立つと同時に、情報の重複登録が避けられる。
    デメリットとしては、データの追加、削除でメンテナンスが煩雑になるのが挙げられる。

例)社員のAさんが人事部と総務部を兼任している場合、人事部と総務部の両方から同一のAさんのデータへとたどり着ける。逆に、Aさんのデータから人事部と総務部の両方にアクセスすることも可能となる。
そのため、階層型のように、人事部と総務部の下層に別々にAさんの情報を登録する必要がなくなる。

  • 表で構成する「関係型」 ※別名:リレーショナルデータベース(RDB)
    現在はこのリレーショナルデータベースが主流となっている。

表(Excel)に似た形式で、行と列で構成されたデータベース。
Excelでいう表を「テーブル」といい、列を「フィールド」、行を「レコード」と呼ぶ。フィールドには項目が入り、レコードには項目ごとに該当するデータが入る。

・レコードにはルールがある。
各レコードのデータは、必ず「一意(ダブりがないよう)」にならないとダメだということ。データベースは検索されることを念頭におく必要があるので、重複したデータがあると検索時に支障がでる。

・管理しやすいようにどのようなデータを格納しているのか、「属性」をおく必要がある。言わば、「商品名」、「販売価格」などインデックスのようなもの。

・メリット:テーブル同士を組み合わせて表示できるため、複雑に関連している情報でも整理がしやすい。
アクセスルートが変わらない。また、データの重複を避けられること、検索能力が高いのも利点である。
・デメリット:データ容量がおおきくなりがち(1つのサーバで管理できない)。因みに、これを克服するのが「NoSQL」。

・RDBは、「SQL」という言語で操作する。

  • NoSQL
    SQLを使わないという意味ではないので注意。Not Only SQLの略で、SQLだけではないという意味。
    NoSQLは「ビッグデータ」などの大量のデータを扱う場合に威力を発揮する。
    同時にデータを探すことが得意。大量のコンピューターを使って「同時に大量のデータを検索」したりできるのが特徴。

  • 他にも「オブジェクト指向データベース」、「分散データベース」、「データ・
ウェアハウス」などがある。

【データベース管理システム(DBMS)】

データベース管理システムとは、その名のとおり「データベースの管理・運用を行うシステム」のこと。
つまり、データベースを制御するシステムである。

データベースは自動でデータを追加、更新、削除などの操作を行ってくれない為、必ず管理する人が必要になる。ただ、管理する人が誤って同じデータを追加、あるいは削除してしまってはいけない。人間の手でデータベースを管理することは非常に危険なので、コンピュータのシステムに管理してもらう方が断然良いのである。
データベース管理システムであれば自動でデータ整理を行うため、簡単にデータを編集し、抽出できる。更に、重複するデータを入力しようとした際には警告が表示されるなど、ミスを防ぐうえでも有効である。

まとめると、
・データベースを操作・管理する
・データベースへのアクセスを制御、処理する
・障害が発生したとき正常状態に復旧する
がDBMSの主な機能である。

・リレーショナルデータベース(RDB)を管理、運用するデータベース管理システムのことを特に、
「リレーショナルデータベース管理システム(RDBMS)」と呼ぶ。

【代表的なDBMS】

・MySQL:世界でもっとも利用されている「データベース管理システム」。大容量のデータに対しても高速で動作し、便利な機能がたくさんあるので、非常に実用性が高くなっている。また、オープンソースなので非商用利用であれば無償で使用できるため、初心者でも導入しやすい。
・Oracle Database
・PostgreSQL
・SQLite
・Microsoft Access

【構造化クエリ言語(SQL)】

「SQLはデータベース(RDBMS)を操作するための言語」。

SQLは国際標準化されているため、さまざまなデータベースで利用できる。
有名なデータベースとしては、Oracle、MySQL、PostgreSQL、SQLiteなどが、いずれもSQLで操作可能。

SQLでデータベースに対して行える操作として、主に次のようなものがある。
・データの検索
・データの追加
・データの更新
・データの削除
・テーブルの作成
・テーブルの削除
・テーブルの主キーの設定
・ユーザー権限の付与

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?