今さら聞けないWeb(制作現場に出てくる)用語集 第1回 DB編

No Photo

こんにちは、inoueです。久々につくった鳥はむが大成功!今日も幸先がよいわ。

さて、現在「EC-CUBEカスタマイズ日誌」の連載中ですが、本日よりもうひとつ連載をスタートします。
名づけて「今さら聞けないWeb(制作現場に出てくる)用語集」。
Web制作、開発の現場でよく聞く、でも担当外だったりしていまいち理解しきれていないかも、といった用語を分野別にセレクト。

第1回はDB編です。各用語に関連したリンクを用意しましたので参考にしてください。

クエリー

クエリーとは、アプリケーションからリレーショナルデータベース管理システム(DBMS。MySQL、PostgreSQLなどがこれにあたります)への問い合わせのことを指します。
Webアプリケーションのプログラムでは、ユーザの入力内容をクエリーに変換し、DBMSから受け取った問い合わせ結果をユーザに提供する形に変換する、という作業を繰り返しているといっても過言ではありません。

SQL

そのクエリーを記述する言語がSQLになります。
標準規格化されている仕様と、各RDBMSが独自に実装している仕様とがあるので、利用する際に開発者は留意が必要です。
基本的には標準SQLで記述し、利用することで大きなメリットがある場合(パフォーマンスが大幅に改善する等)のみ独自仕様を使う、というようなルールを設けると身に付けた技術の活用範囲が広がると思います。

DDL、DML、DCL

SQLは操作対象によって大きく3つに分類されます。
それが、データ定義言語(DDL:Data Definition Language)、データ操作言語(DML:Data Manipulation Language)、データ制御言語(DCL:Data Control Language)です。

スキーマ

DBのテーブル構成やデータ構成のことをスキーマと呼び、その設計内容をDDLで記述します。

ER図

スキーマ設計の際、ER図を記述するとデータ間の関連が把握でき、システム開発や運用に重宝します。
シーブレインではA5:SQL Mk-2というツールを使って、作成および管理をしています。DDLやテーブル定義書を自動生成してくれる優れものです。

インデックス

テーブル設計に誤りはなくても、Webアプリケーションとして運用する上で「データ検索に時間がかかりすぎて実用にたえない」という状況が発生することがあります。
そんなときに必要なのが、DBのパフォーマンスチューニング。特にインデックスの利用は大事です。
最も有効なインデックスのはり方ができたときの達成感は大きいです。

トランザクション、コミット、ロールバック

MySQLを使っていて、デフォルトのMyISAM形式でテーブルを構成していることが多いとトランザクションが使えないためついつい関心が薄くなってしまいがちです。
ただ、規模が大きめなCakePHPアプリケーションなどはしっかりとトランザクションを意識しないと、データ不整合が発生しやすい構造にしてしまいがちかも、と思う今日この頃です。

ビュー

MySQLにも5系から実装されたビュー。できることなら複雑なSELECT文を発行せず、ビューで定義してしまいたいです。
してしまいたい、と言わず少しずつそうすればいい、ってだけの話なんですけど。がんばります(負荷のバランスもみつつ)。

ダンプ、リストア

本番環境のデータをダンプとって、開発環境にリストアする、ってなことをよくやります。
DBおよびサーバ環境のバージョンと文字コードに相違がないか、あっても問題ないか、よく確認が必要です。

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ