データベース

データベース(DB)とは

再利用可能なデータの集合体

データベース(DB) は、項目や条件によって分類した「データの集合体」で、再利用しやすいように整理した情報のことです。今回学習するSQLで操作するリレーショナルデータベースや、Excel、CSVといった電子データだけでなく、紙のデータも情報が分類、蓄積されていればデータベースといいます。

DBMS

PCでデータベースを管理するシステムのことをDBMS(Database Management System)といい、ここではDBMSを単純にデータベース(DB)と呼ぶようにします。

RDBMS

RDBMSとは

RDBMS(リレーショナル・データベース・マネジメント・システム)は、DBMSにおいてリレーションの機能を持ったDBのことで、単純にRDBともいいます。

Relation(リレーション)とは

Relation(リレーション)は「関連」という意味で、テーブルをまたいで大量のデータを高速に検索することができます。 RDBの操作するにはSQL言語を利用します。

NoSQL

RDBと対照的にSQLを使わないデータベースをNoSQL DBといい、現在のWebシステムでも多く利用されます。

NoSQLのメリット・デメリット

NoSQLのメリットはRDBと比べて単純なデータ構造で、より大量のデータを高速処理できます。例えば、チャットデータや機械学習のデータ分析などで利用されます。デメリットはRDBと比べて複雑なデータ構造が苦手な点です。

RDBの種類

RDBの種類として「MySQL」「PostgreSQL」「SQLite」「Oracle」といったものがあります。 なかでもMySQLPostgreSQLはオープンソースのRDBで、業務用でも無料で利用できるため高いシェアがあります。

MySQL

MySQL

MySQLはOracle社が開発・サポートするオープンソースのRDBです。Webシステムで高いシェアをもち、さまざまなサービスで利用されています。

PostgreSQL

PostgreSQL

PostgreSQLも非常にシェアが高いオープンソースのRDBです。 MySQLに比べて高機能で複雑な処理がしやすい特徴がありますが、大きな違いではありません。

Oracle

Oracle

Oracle社が開発した商用のRDBで、MySQLやPostgreSQLと比較して、メンテナンスを含めた機能が豊富でパフォーマンスが高いのが特徴です。非常に高機能ですが費用的な面でデメリットといえます。

RDBの基本構造

データベース(DB)

データベース(DB)は複数のテーブル(Table) で構成されています。テーブルはスプレッドシートのシートのようなもので、セルにデータを永続的に保存するイメージです。

テーブル(Table)

テーブルの構造

テーブル(Table)はデータを表形式に保存する場所で、RDBのテーブル構造には「レコード」「カラム」「フィールド」などの名称がついています。

  • テーブル:レコードの集合体
  • レコード:データの行
  • カラム:データの列
  • フィールド:データのセル

リレーション(Relation)

RDBは複数のテーブルを連携して利用します。このテーブルのの関係性をRelation(リレーション)といいます。リレーションすることでテーブルに跨った大量のデータを、高速かつ柔軟に操作することができます。

SQL

SQLとは

SQL(Structured Query Language) は、RDBを操作する言語で、テーブルにデータを保存したり、大量のデータを条件指定して検索することができます。SQLの機能はたくさんありますが、大きく3つに分類できます。

  • DDL(データ定義言語)
  • DML(データ操作言語)
  • DCL(データ制御言語)

DDL(データ定義言語)

DDL(Data Definition Language)は、データベースを定義するためのSQLです。

  • データベースの作成(CREATE DATABASE)
  • データベースの削除(DROP DATABASE)
  • テーブルの作成(CREATE TABLE)
  • テーブルの削除(DROP TABLE)
  • テーブルの変更(ALTER TABLE)

DML(データ操作言語)

DML(Data Manipulation Language)は、データを操作するためのSQLです。

  • データの検索(SELECT)
  • データの挿入(INSERT)
  • データの更新(UPDATE)
  • データの削除(DELETE)

DCL(データ制御言語)

DCL(Data Control Language)は、DMLやDDLをコントロールするためのSQLです。

  • トランザクションの開始(BEGIN)
  • トランザクションの終了(COMMIT)
  • トランザクションのキャンセル(ROLLBACK)
  • 権限付与(GRANT)
  • 権限剥奪(REVOKE)