リレーショナルデータベース(RDBMS)の構造およびSQLとは
データベースとは、コンピューター上に大量の情報を蓄積し、効率よく検索できるようにしたソフトウェアの事。
データベースを使用すれば、大量の情報を間違いなく記憶し、情報の検索や集計も人間よりもはるかに速くできる。
このようにコンピューター上で扱う情報の集合をデータベースと呼ぶ。
データベースにはいくつかのデータモデルがあり、主なものに階層型、ネットワーク型、リレーショナル型等がある。
大量の情報を高速に検索、集計するようなデータベースを管理するためのソフトウェアを「データベース管理システム(DBMS:DatabaseManagementSystem)」と呼び、
リレーショナル型のデータベースを管理するソフトウェアを「リレーショナルデータベース管理システム(RDBMS:RelationalDatabaseManagementSystem)」と呼ぶ。
データベース管理システムを使用すれば、コンピューター上に様々なデータベースを構築し、大量の情報を記憶して、高速に検索したり、計算したりする事ができる。
リレーショナルデータベースの構造
リレーショナルデータベースには三つの重要な構成要素がある。
表(リレーションの集合)、表を管理する一連の演算子、データの整合性規則である。
リレーショナルデータベースでは、「行(ROW)」と「列(COLUMN)」で構成される「表(TABLE)」という単位でデータを管理する。
通常は効率よく管理できるようにするため、1つの表に全てのデータを格納するのではなく、複数の表にデータを分割・分類して格納する。
リレーショナルデータベースでは別々の表に格納されているデータ間の関連づけをデータ値によって行う。
表データを操作する場合は、SQLを使用して必要な要素を指定する(論理演算)。
そうすると、RDBMSがどのように実行すべきか判断して演算を実行する(物理演算)。
また、表への無効なデータの入力を防止するためのルールを整合性規則によって設定する事も可能。
リレーショナルデータベースは、「表形式でデータを表現するため、データ構造がわかりやすい」、「SQLに夜論理演算を指定できるため人間が使いやすい」、「整合性規則によってデータの整合性を維持できる」という特徴がある。
リレーショナルデータベースを理解する上で欠かせない用語として、「主キー」と「外部キー」がある。
主キーとは「表の行を一意に識別するための列(または、列の組み合わせ)」だ。
主キーには重複した値を格納したり、NULL値を含める事はできない。
主キーは1つの表に1つだけ設定できる。
外部キーとは、「同じ表、または別の表の主キー、または一意キーを参照する1つの列(または列の組み合わせ)」だ。
外部キーとして指定した列には参照先の列に格納されている値しか格納できない。
外部キーを設定する事で意味のないデータの登録を未然に防ぐ事ができる。
外部キーにはNULL値を含める事ができる。
データベースのCRUD操作
データベースに対して行う情報操作は、「CRUD(クラッド)操作」と呼ぶ。
データベースに行う基本的な4種類の操作の頭文字を取ってそう呼ばれる。
CRUDの頭文字はそれぞれ、「情報の生成(Create)」、「情報の読み込み(Read)」、「情報の更新(Update)」、「情報の削除(Delete)」の意味だ。
Createは新しい情報をデータベースへ登録する事を意味する。
Readは、データベースに登録されている情報を読み取る事を意味する。
これにはデータベースでは様々な条件を指定して、条件に合致する情報を抽出するような検索処理も含まれる。
Updateはデータベースに登録されている情報を更新する事を意味する。
読み取りと同様に様々な条件を指定して合致する情報を一括して変更する事ができる。
Deleteはデータベースに登録されている情報を削除する事を意味する。
こちらも読み取り同様、様々な条件を指定して合致する情報を一括して削除する事ができる。
データベースは表の形で情報を管理する。「テーブル」と呼び、ID、氏名、商品名等、テーブルの列を「カラム」と呼ぶ。
データベース操作を行うSQL
データベースに対する命令を「SQL」と呼ぶ。
SQLはANSI(米国規格協会)や、ISO(国際標準化機構)、JIS(日本工業規格)などで標準規格化されている、リレーショナルデータベースを操作するための言語だ。
SQLの文法の詳細部分はデータベース製品によって若干異なる。
リレーショナルデータベースに格納されているデータにアクセスするのはSQLを使用する必要がある。
SQLを使用すると論理レベルでデータを処理できるため、データが物理的にどこに格納されているかを意識する必要がない。物理的に格納されている場所へのアクセス経路は、RDBMSが判断する。
SQLは機能の特徴によって大きく4つに分類される。
データ操作言語(DML)、データ定義言語(DDL)、データ制御言語(DCL)、トランザクション制御である。
SQLとは「Structured Query Language」の略で、「問い合わせのための言語」という意味。
SQLはプログラミング言語のような制御構造はない。「何を」「どこから」「どのように」抽出するかを表現する事に特化した言語だ。
「何を」欲しいかはSELECT文を使用する。
「どこから」指定するかはFROM句、INNER JOIN句である。
「どのように」を指定するのはON以降。
Webアプリケーションとデータベースの通信
Webアプリケーションとデータベースの間では、SQLの発行や結果の取得を行うために通信が必要。
Webブラウザと、Webサーバの間の通信ではHTTPを使用するが、Webアプリケーションとデータベースの通信はデータベース製品固有の通信プロトコルを使用する。
しかし、通常はそのような通信を行ってくれるライブラリが標準で提供されているため、開発者が意識する必要はない。
代表的なデータベース製品には、Oracle DataBase(オラクルデータベース)や、PostgreSQL(ポストグレス、ポストグレスキューエル)、MySQL(マイエスキューエル)などがある。
コメント ( 0 )
トラックバックは利用できません。
この記事へのコメントはありません。