ご挨拶
みなさん、初めまして。脇本と申します。
私がこの業界(IT業界)に勤めはじめて13年ぐらいがたちましたが、IT技術の世界はとにかく足が速いと言われていたものです。特にインターネットの技術やその上で動くサービスが充実し始めたここ数年の勢いは目を見張るものがありますね。また、iPhoneやAndroidといったモバイルデバイスがさらなる加速を促しているのは、みなさんもご存じの通りです。
そんな風に情報の流れる早さは変わりましたが、今も昔もIT技術者に必要なのは、技術的な興味と好奇心であると思っています。
現在私は、さまざまな縁があって大手自動車会社の研究部門で仕事をさせていただいておりますが、当コラムを通してみなさんの技術的な興味や好奇心を触発するきっかけになれば、と思います。どうぞよろしくお願いいたします。
サービスを支えるデータベース
さて、みなさんは普段どのようなサービスを使っていますか? SNSやオンラインショッピング、あるいはスポーツジムの入会サイトだったりするかもしれません。何気なく使っているサービスですが、データ(会員情報や、商品、ユーザのアップロード情報などなど)はどこに格納されるんでしょうか?
答えはデータベースです。
現在のシステム開発で使われないことはまずありえません。というほど“当たり前”のものとなっています。今回から数回にわたって、縁の下の力持ち、データベースについて紹介をしたいと思います。
データベースの種類
データベース、と一言で言ってしまうのも乱暴ですが、ぱっと思いつくのは、…Oracle, MySQL, Microsoft SQL Server, PostgreSQLなどなど…、Microsoft Accessもそうですね!これらはいずれも基本的にはRDBMS(Relational DataBase Management System)と呼ばれるものです。
こういったRDBMSは、データをテーブルと呼ばれる2次元表で表現し、データ同士の関連性をリレーショナルという形で表現することで、
- データの関係性を担保
- 正規化によるデータの管理の容易性
を実現しています。
データへのアクセスはSQL(Structured Query Language)と呼ばれる問い合わせ言語を用いて行われます。SQLは標準規格が定められており、どのDBMSを使用してもほぼ共通の言語として扱えるのが特長です。
また、データ操作においてもACID(表1)が実装されていることで、データを操作する側がデータの整合性をとるために複雑な処理を実装しなくてもよくなっています。
表1 ACIDとは…DBの処理単位であるトランザクションの特性として語られる。
名前 | 意味 | 説明 |
Atomicity | 原子性 | トランザクションが実行されたか、あるいは全くされていないかという状態を表現する |
Consistency | 一貫性 | トランザクションがDB内で整合性が保たれているか。 |
Isolation | 独立性 | トランザクションが他のトランザクションに割り込まれないこと。 |
Durability | 耐久性 | 障害時などにトランザクション前か後に整合性を持って保たれること。 |
一度でもRDBMSを使用した開発を行った事があればわかると思いますが、いわゆるトランザクション管理をアプリケーションレベルで実装することはありません。
こうしたRDBMSは私たち開発者にとって非常になじみが深いものとなっています。データベース=RDBMSという図式が成り立っていると言っても過言ではありません。
しかし最近、RDBMSとは違うDBMSが頭角を表してきています。NoSQLと呼ばれるDBMSです。
NoSQLデータベース
RDBMSではないデータベースモデルとして1998年ごろに用語として使われるようになったそうです。NoSQLとはその名の通り、SQLを使わないという意味ですが、最近では誤解を招くと言うことでNot Only SQLという風に言われたりするようです。
NoSQLはRDBMSと比較して、
- データ構造が単純である
- リレーションがない
- 拡張性/柔軟性が高い
- トランザクションがない
- 分散環境への対応が容易
という特色が見られます。
次回はNoSQLの特色について、もう少し踏み込んでみたいと思います。