データベース基本概念

データベース でーたべーす

DBMSリレーショナルデータベースSQLテーブルレコードNoSQL
データベースについて教えて

簡単に言うとこんな感じ!

データベースは「超整理された電子の棚」だよ! Excelの表みたいにデータをきっちり並べて保存しておく仕組みで、必要なときに即座に取り出せるんだ。ネットショップの商品情報や会員データ、銀行の口座残高も、全部データベースに入ってるってこと!


データベースとは

データベース(Database)とは、大量のデータを整理・管理し、素早く検索・更新・取得できるように設計された「データの保管庫」です。単なるファイルの寄せ集めではなく、データ同士の関係性を保ちながら、複数のユーザーが同時に安全に扱えるよう構造化されています。

身近な例で言えば、オンラインショッピングの商品カタログ・注文履歴・会員情報、病院のカルテ管理、交通系ICカードの乗降履歴など、「大量のデータを扱うシステム」のほぼすべてにデータベースが使われています。スマートフォンの連絡先アプリも、内部ではデータベースで動いています。

データベースを操作・管理するソフトウェアをDBMS(DataBase Management System:データベース管理システム)と呼びます。「データベース」と「DBMS」はしばしば混同されますが、正確には「データベース=データの集まり」「DBMS=それを管理するソフトウェア」という関係です。代表的な製品にはOracle、MySQL、PostgreSQL、Microsoft SQL Serverなどがあります。


データベースの構造と仕組み

データベースを構成する基本要素を押さえておくと、エンジニアとの会話やシステム発注時に役立ちます。

用語説明身近な例
データベースデータ全体の最上位の入れ物会社の基幹システム全体
テーブル(表)用途別に整理されたデータの「表」社員名簿・商品一覧・注文履歴
レコード(行)1件分のデータのまとまり1人の社員情報・1件の注文
フィールド(列)データの項目名社員ID・氏名・部署・入社日
インデックス(索引)高速検索のための索引情報電話帳の五十音索引
キーレコードを一意に識別する値社員ID・注文番号

下の図は「社員名簿」テーブルを例にした、データベースの構造の全体像です。

データベース テーブル(表):社員名簿 社員ID 氏名 部署 E001 田中 太郎 営業部 E002 鈴木 花子 開発部 E003 佐藤 次郎 総務部 ↑ フィールド(列)=項目名(社員ID・氏名・部署) ← レコード (行・1件) 複数のテーブルが組み合わさって「データベース」を構成する (例:社員名簿テーブル・部署マスタテーブル・勤怠テーブル など)

覚え方:「データベース=データの図書館」

図書館(データベース)
  └─ 棚(テーブル):社員名簿・商品一覧・注文履歴…
       └─ 本1冊(レコード):1人分・1商品分のデータ
            └─ 奥付・タイトル・著者(フィールド):社員ID・氏名・部署…

この比喩で構造を丸ごと覚えられます。「本を探す目録カード」がインデックスに相当します。

SQLとは

SQL(Structured Query Language:構造化問い合わせ言語)は、データベースを操作するための標準言語です。「取り出す(SELECT)」「追加する(INSERT)」「更新する(UPDATE)」「削除する(DELETE)」という4操作(CRUD)を担います。

-- 「営業部」の社員を全員取り出す例
SELECT 社員ID, 氏名 FROM 社員名簿 WHERE 部署 = '営業部';

一般のビジネスパーソンがSQLを書く機会は少ないですが、「DBへの命令文」というイメージを持っておくとエンジニアとの会話がスムーズになります。


歴史と背景

  • 1960年代:IBMが階層型データベースを開発。データ管理が一元化されたが、構造変更が難しく柔軟性に欠けた
  • 1970年:IBMの研究者エドガー・コッドが「リレーショナルモデル(関係モデル)」を論文発表。現代DBの礎となる歴史的転換点
  • 1974年:IBMでSQLの原型「SEQUEL」が開発される
  • 1979年Oracle(現・オラクル社)が世界初の商用リレーショナルデータベースリリース
  • 1983年:IBMが「DB2」をリリース、大企業向け市場が本格拡大
  • 1995年前後:オープンソースのMySQLPostgreSQLが登場。Webアプリケーションの爆発的普及を支えた
  • 2000年代後半:SNSやビッグデータの需要急増で、NoSQLデータベース(MongoDB・Cassandra・Redisなど)が台頭
  • 2010年代〜:クラウド型のDBaaS(Database as a Service)が普及。Amazon RDS・Google Cloud SQL・Azure SQL Databaseなどが選ばれるように

リレーショナルDB(RDB)と NoSQL の違い

発注・システム選定の場面で必ずと言っていいほど登場する比較です。どちらが「優れている」ではなく、用途で使い分けるのが正解です。

比較項目リレーショナルDB(RDBNoSQL
データ形式テーブル(行・列の表形式)ドキュメント / KVS / グラフ など多様
問い合わせSQL(国際標準、変更に強い)独自API・クエリ言語(製品依存)
整合性強い(ACID特性を保証)緩い(結果整合性・BASE)
スケール方法垂直(サーバーを強化)水平(サーバーを増やす)
得意な用途金融・基幹・人事システムSNS・IoT・ログ・全文検索
代表製品Oracle / MySQL / PostgreSQLMongoDB / Redis / DynamoDB

ACID特性とは「原子性(Atomicity)・一貫性(Consistency)・独立性(Isolation)・耐久性(Durability)」の頭文字で、「処理が絶対に中途半端な状態で終わらない」ことを保証します。銀行の振込など「絶対に間違えられない」場面ではRDBが選ばれます。


関連する規格・RFC

規格内容
ISO/IEC 9075SQL言語の国際標準規格(通称「標準SQL」)
ACID特性トランザクションの信頼性を保証する4つの性質の総称
ODBC / JDBCアプリケーションからDBに接続するための標準インターフェース仕様
JSON / BSONNoSQLで多用されるドキュメント形式のデータ記述標準

関連用語

  • SQL — データベースを操作するための標準的な問い合わせ言語
  • リレーショナルデータベース — テーブル形式でデータを管理する最も普及したDB方式
  • NoSQL — 柔軟なデータ構造を持つ非リレーショナルDB群の総称
  • DBMS — データベースを管理・運用するソフトウェア全般
  • トランザクション — 一連のDB操作をひとまとめに扱う仕組み
  • クラウドデータベース — クラウド上でDBをサービスとして提供するDBaaS全般