データベース、DBMSとSQL

[English]

自習及び単体テストで学んだデータベース、DBMSとSQLの知識を忘れる前にノートとして残したいと思います。

  • データベース

まず、データベースを聞いたことがない人はWiki先生の説明を参照してください。

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

情報が整理されていれば、紙媒体でもデータベースとも呼ぶそうです。

  • データベースの種類

– RDB(リレーショナルデータベース)
Wiki先生:”関係データベース(リレーショナルデータベース、relational database)は、関係モデルにもとづいて設計、開発されるデータベースである。”

現在最も広く利用されているデータベース。

– OODB(オブジェクト指向データベース)
Wiki先生:”オブジェクトデータベースは、オブジェクト指向プログラミングで使うオブジェクトの形式で表現されるデータを格納するデータベースである。オブジェクト指向データベースともいう。”

オブジェクト指向言語Java、C++等に特化したデータベースと言うことでしょう。

– XMLDB(XMLデータベース)
Wiki先生:”XMLデータベースとは、XMLを扱うための機能を持つデータベースである。狭義ではXMLのツリー構造をそのままデータ構造として持つ物を言うが、実際は伝統的な関係データベースにXMLを格納するものや、単にテキストファイルとしてXMLを格納するものなど様々である。現在ではXPath、XQueryで検索するデータベースをXMLデータベースと呼ぶことが多い。”

そして他にも以下のようなデータベースも存在します。

– キー・バリュー型ストア(Key-Value Store : KVS)
– 階層型データベース(Hierarchical Database)

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

Wiki先生:”データベース管理システムは、コンピュータのデータベースを構築するために必要なデータベース運用、管理のためのシステム、及びそのソフトウェアのことである。データベースマネジメントシステム(DBMS)とも呼ばれる。”

  • DBMSの種類

SQL Server
DB2
Oracle Database
PostgreSQL
MySQL

関係データベースを管理するDBMSを”関係データベース管理システム (RDBMS)” と呼びます。

上記のRDBMSの中でPostgreSQLは、私が単体テストに参画した際に使ったことがあります。PostgreSQLの使用には、データを操作するためSQLの知識が必要です。

  • SQL

SQLは、データベースに存在するデータを操作するための言語です。

Wiki先生:”SQLは、関係データベース管理システム(RDBMS) において、データの操作や定義を行うためのデータベース言語(問い合わせ言語)、ドメイン固有言語である。”

最初に覚えるべきSQLコマンド:

SELECT:抽出したいカラムを指定する。
FROM:テーブル名を指定する。
WHERE:条件を指定する。

使用例:

下記の”student”テーブルが存在するとします。

studentTableA

下記のコマンドは、””student”テーブルから”school_id = ‘1’”の条件にマッチするデータすべてを抽出する”という意味になります。

SELECT * FROM student WHERE school_id = '1';

※ “*” は、すべてを意味します。

結果:

WHERE句に指定した条件にマッチしたデータのみ抽出されました。

studentTableB

20180901

Leave a comment