Views
ユビキタスを便利にするデータベース
ユビキタス情報社会を支えるソフトウェアの世界(第2回 菊地時夫)
データベースとは
- データ の 基地 (Base)
- データベース管理システム
- データベースサーバ
たとえば
- 26年前、札幌から高知へ引っ越し
- 荷物は1ヶ月かかった。
- 問い合わせ
- 「函館あたりで止まってるかもしれない」??
今なら
- 宅配便追跡システム
- バーコードとか無線タグとか
- データの基地と通信
- 宅配荷物受け取り
- 中継(何箇所も)
- 配送完了
データベースシステムに求められるもの
- 高速(検索・更新)
- 大容量
- 安全
リレーショナルデータベース
- RDB: Relational DataBase
- データベースのモデル
- 「表」を基本とする
- 表と表の間に関係を持たせる
- 最も多く使われている
例:
- 娘表
娘番号 氏名 生年月日 1 吉澤ひとみ 1985-04-12 2 辻希美 1987-06-17 3 高橋愛 1986-09-14
例(続き):
- ユニット表
ユニット番号 ユニット名 1 モーニング娘。 2 ミニモニ。
例(その3):
- 組合せ表
ユニット番号 娘番号 1 1 1 3 2 2 2 3
正規化
- リレーショナルデータベースでは
- 同じデータを2度書かない
- 行を分ける・表を分ける
- 正規化と呼ぶ(第1とか第2とかあるが省略)
書いてはいけない例
ユニット名 氏名 モーニング娘。 吉澤ひとみ 高橋愛 ミニモニ。 辻希美 高橋愛
モーニング娘。のメンバー表を作りたい
- 「ユニット表」でモーニング娘。を探すと
- ユニット番号は 1
- 「組合せ表」でユニット番号1 を探すと
- 娘番号 1 と 3
- 「娘表」から娘番号 1, 3 を探すと
- 氏名は 吉澤ひとみ と 高橋愛
SQL 言語
- Structured Query Language
- データベースへの問い合わせ
- SELECT 娘表.氏名
- FROM 娘表, ユニット表, 組合せ表
- WHERE ユニット表.ユニット名 =
モーニング娘。
- AND ユニット表.ユニット番号 = 組合せ表.ユニット番号
- AND 組合せ表.娘番号 = 娘表.娘番号
SQL は難しい
- 「すまないけど、残業でこのデータ入れといて」
- というような人が使いこなせるようなものではありません。
- 皮をかぶせます。
- 中華饅頭や餃子のようなもの
- 皮 = WWW (World Wide Web)
- 例
ウェブ連携データベース
閑話休題
- ヨン様サイトがやられた!
- 価格.com がやられた!
- SQL インジェクション(注射)
- データベースで管理者情報を管理
アプリケーション(応用)サーバ
- Zope ... HTTP サーバ + データベース
- Web アプリケーションの開発を Web でできる
- 情報発信の枠組みが用意されている
コンテンツ管理システム
ブログとポドキャスト
XML とは?
- eXtensible Markup Language
<はろぷろ> <ユニット> <ユニット名>モーニング娘。</ユニット名> <メンバー> <氏名>吉澤ひとみ</氏名> <生年月日>1985-04-12</生年月日> </メンバー> <メンバー> <氏名>高橋愛</氏名> <生年月日>1986-09-14</生年月日> </メンバー> </ユニット> </はろぷろ>
XML は難しい
- データ交換のためのデータ形式
- 人間が読み書きするものではない
- が、
- HTML -> XHTML への移行が進んでいる
- 例:Plone, 携帯サイト
まとめ
- データベースは表を使う
- 表と表に関係がある(リレーショナルデータベース/RDB)
- データベースへの問い合わせは SQL を使う
- データ交換には XML を使う(ことが増えてきている)
- RDB も SQL も XML も 縁の下の力持ち