データベース(DB)とは?SQL(データ制御言語、データ定義言語、データ操作言語)とDBMSのシェア、種類

スポンサーリンク
コラム

データベースとは、 大量のデータを集めて、コンピューターでデータの追加、削除、検索をしやすい形に整理したものです。

また、蓄積されたデータを管理するソフトウェアをデータベースマネジメントソフトウェア(DBMS)と呼ぶことがあります。

 

歴史上データベースは、階層型のデータベース、ネットワーク型のデータベースと進化していき1980年代からはリレーショナル型のデータベースが主流となりました。

現在、ソフトウェアでデータベースというときは、ほとんどの場合、リレーショナルデータベース(RDB、関係データベース)のことを指します。

 

SQL (Structured Query Language) とは

SQL(エスキューエル)は、関係データベース管理システムにおいて、データの操作や定義を行うための言語です。

SQLは、1974年にIBMのSystem Rというデータベースで初めて使われました。

 

SQLの文法の種別は、

データ制御言語 (DCL: Data Control Language)

データ操作言語 (DML: Data Manipulation Language)

データ制御言語 (DCL: Data Control Language)

の3つに大別されます。

それぞれの違いを見てみましょう。

 

データ定義言語 (DDL: Data Definition Language)

データ定義言語はDDLと略され、RDBMSで扱うオブジェクト(テーブルやインデックスなど)の構造や、オブジェクト同士の関係を定義する構文です。

 

CREATE (データベースオブジェクト(表、インデックス、制約など)の定義)

DROP (データベースオブジェクトの削除)

ALTER (データベースオブジェクトの定義変更)

 

データ操作言語 (DML: Data Manipulation Language)

データ操作言語はDMLと略され、データベースを操作するための構文です。目的語やさまざまな条件を示すキーワードと組み合わせて使われ、多くのパターンがあります。

目的語には「~以上」「~以下」などの条件をつけることもでき、SQL関数と呼ばれる関数を使用することもできます。

 

INSERT INTO (行データもしくは表データの挿入)

UPDATE 〜 SET (表を更新)

DELETE FROM (表から特定行の削除)

SELECT 〜 FROM 〜 WHERE (表データの検索、結果集合の取り出し)

 

データ制御言語 (DCL: Data Control Language)

データ制御言語はDCLと略され、データへのアクセスを制御する構文です。

トランザクションやシステムを管理したり、ユーザーのアクセス権を制御したりするために使われます。

 

GRANT (特定のデータベース利用者に特定の作業を行う権限を与える)

REVOKE (特定のデータベース利用者からすでに与えた権限を剥奪する)

SET TRANSACTION (トランザクションモードの設定(並行トランザクションの分離レベル (ISOLATION MODE))など))

BEGIN (トランザクションの開始)

COMMIT (トランザクションの確定)

ROLLBACK (トランザクションの取り消し)

SAVEPOINT (任意にロールバック地点を設定する)

LOCK (表などの資源を占有する)

 

マスターデータとトランザクションデータ (マスタとトラン)

リレーショナルデータベースの用語として必ず出てくる用語にマスターデータとトランザクションデータがあります。

 

「マスタ」というのは、業務の基幹となるデータのことで基本的には不変的なものです。

ただ、業務体系や価格体系、商品体系などの根本的な見直しの際に変更はあります。

例として、商品価格表、商品分類表、社員情報表などがあります。

 

一方、「トラン」というのは、日々の業務上発生するトランザクション(一連の処理)から掃きだされるデータのことをいいます。

これらは、都度、追加・更新されていくものです。

例として、注文データ、受注データ、履歴データなどがあります。

 

主なDBMS (データベース管理システム)

よく使われている主なDBMS(Database Management System)をまとめました。

 

Oracle (オラクル)

オラクルのDBMSです。

世界で最も使われていると言われいるDBMSです。

 

SQL Server

マイクロソフトのDBMSです。

主にWindows Serverで使われています。

 

DB2 UDB

IBMのDBMSです。

汎用機からパソコンまでサポートしています。

 

MySQL (MariaDB)

MySQLはもともと、スウェーデンのMySQL ABのDBMSでしたが、サン・マイクロシステムズに買収され、その後、オラクルに買収されました。

オープン系では最も使われているDBMSです。

 

MariaDBはMySQLからフォークしたプロジェクトです。

そのため、MySQLと互換性があり、現在は、CentOSなどオープン系ではMariaDBが最も標準的なDBMSです。

 

PostgresSQL (ポスグレ)

オープン系ではMySQLと共によく使われているDBMSです。

 

MongoDB (モンゴDB)

MogoDBの読み方は、モンゴデービーです。

MongoDBは、オープンソースのドキュメント指向データベースです。

C++言語で記述されており、開発とサポートはMongoDB Inc.によって行なわれています。

MongoDBはRDBMSではなく、NoSQLと呼ばれるデータベースに分類されるものです。

ドキュメントデータベースと言われることもあります。

 

SQLite (エスキューライト)

SQLiteは、サーバとしてではなくアプリケーションに組み込んで利用される軽量のデータベースです。

サーバーで動作させるようなRDBMSに比べて大規模な仕事には不向きですが、アプリケーションと共に配布されるような軽量なデータベースとしては最適です。

 

データベースの市場シェア

Top Database indexによる世界のデータベースのシェアです。

databaseshare

(出典: TOPDB Top Database index )

 

やはり、Oracleが最強で、MySQL、SQLServerが続きます。

 

データベースとデータウェアハウス

データベースと関連してよく出てくる用語としてデータウェアハウスというのがあります。

両者の違いについては以下にまとめました。

BI (ビジネスインテリジェンス) とは?データウェアハウスとは?ETLツールとは?
今日は、データベースとデータウェアハウスの違いとデータベースからデータウェアハウスへの加工するETLツールについてまとめてみました。 この分野は情報システムを取り扱う大企業を顧客に持つSEでないとなかなか踏み込まない分...

 

まとめ

  • ソフトウエアでデータベースという場合、ほとんどはリレーショナルデータベースのことです。
  • リレーショナルデータベースにアクセスする言語をSQLと言います。
  • 世界で最も使われているデータベースはOracleです。

 

データベースのきほんを理解するには以下の本がおすすめです。

 

最後まで読んでいただきありがとうござました。

この記事が気に入っていただけたらシェアしてくれると嬉しいです。

 

 

 

コメント