1
データベース
動的コンテンツ
2011年5月19日 4班 宇賀 一登 尾形 勇磨 田口 龍一 藤森 夏輝 藤原 祐太 2目次
データベースシステム データベース データベース管理システム SQL 動的コンテンツ 今回の課題について 3データベースシステム
DBS (Data Base System)
各種アプリケーションが取り扱うデータを効率的 に管理・共有・利用 データベース(DB) データベースシステム (DBS) データベース管理システム(DBMS) ユーザ、アプリケーション
DBSの開発動機
データ格納手段として、OSによるファイルシステム ファイルシステムの問題点 データがファイルごとにばらばらになる 不正な更新や誤ったデータ入力を認識する機能が存在 しない ファイル単位でしか機密を保護できない 複数ユーザがデータ操作を同時に行うとデータが不正に システムの障害時にデータの整合性を保てないデータベース
様々な利用・応用を考慮して格納された データの集まり データベース 販売担当 生産担当 売り上げ予測 生産能力確認データベースの形態
カード型データベース 一枚のカードに必要な情報を記入 簡単なデータ記録のみ、関連する別のカードは更 新されない 関係(リレーショナル)型データベース データモデルに表構造を用いる 複数の関係によって構成される表の集まり7
データベース管理システム(1)
DBMS (Data Base Management System) アプリケーションとデータベースとの橋渡し 以下の要件を満たす 物理的データ管理 データの独立性 データの一貫性,同時実行制御 機密保護 障害回復 8
データベース管理システム(2)
物理的データ管理 データを抽象化して扱う データの独立性 データ構造の変化にもアプリケーションの変更が不必要 データの一貫性、同時実行制御 データへの複数のアクセスによる矛盾を発生させない 機密保護 利用者に応じてデータへのアクセス制限 障害回復 障害時にもシステムを矛盾のないようにする 9データ操作言語
DML (Data Manipulate Language) DBMSによるデータ操作のための言語 データの登録 データの検索 データの更新 データの削除 SQLも含まれる 10
関係データベース
RDB (Relational Data Base) 表構造 表は関係(リレーション)と呼ばれる 関係は組(タプル)の集合 組はドメイン(定義域)から取り出したアトリビュート (属性)により構成 複数の関係により構成 11
表構造
名前 種別 攻撃力 アンロック MP5K SMG 40 0 AK74u SMG 35 17 AUG AR 35 26 AK47 AR 40 38 M60 LMG 50 21 属性(アトリビュート) 組(タプル) 武器 関係 (リレーション) 定義域(ドメイン){SMG,AR,LMG}から 12RDBの技術要素(1)
キー(key) 関係するデータを指定できる入力(a[0]=1,..) 主キー:データを一意に指定可能なキー 候補キー:データを複数指定するキー テーブル(table) データに複数の属性を持たせる 表構造13
RDBの技術要素(2)
ハッシュ (Hash) 与えられたキーをハッシュ関数によって別の数値に変 換し、データの格納番地(ハッシュ番地)を得る データ指定のための計算量O(1) 例:キーをハッシュ関数f(k)=k/16の余りに変換 3015番の情報の格納番地? 3015/16=188あまり7→7ページに格納 14関係データベース管理システム
操作や定義を行うソフトウェア SQLによりデータベースの操作を行う データベース 管理システム ユーザ データ データ 命令 クエリ データベースシステム 15オープンソースの管理システム
MySQL PostgreSQL オープンソースの管理システムのシェア 世界的にはおよそ8:2、日本ではおよそ5:5MySQL
歴史 1996年 自力で開発,6月には 公式リリース 2000年 MySQL AB 社設立 2008年 サンマイクロシステムズが買収 2010年 Oracleが買収 2010年 最新版の MySQL ver.5.5.12 をリリース ストレージエンジンの設定の自由度が高い データベースを操作するための基礎となるシ ステムの部品 Monty Widenius 氏PostgreSQL
オブジェクト関係データベース管理システム 1980年頃開発開始 → 1989年発表 データ型とオブジェクトの作成が可能 データ型:データの意味を指定できる オブジェクト:演算子や関数が作成可能商用の管理システム
Oracle Database 大規模データベース向け 1979年に発表された Microsoft Access 小規模データベース向け 操作が簡単であり設定も容易 Microsoft SQL server 大規模データベース向け 拡張性が高く、柔軟性がある19
SQLの開発の経緯
Coddの論文 →IBM社のSanJose研究所 System Rを開発 19 System Rのデータ操作言語としてSEQUELを開発→SQL Donald Chamberlin氏
20
SQL
SQLとは
関係データベースの データ作成・操作・取得のための言語 機能
データ定義 データ操作 データ制御 20 21データ定義言語
create・・・作成
drop・・・削除
alter・・・変更
truncate・・・全ての行を削除
スキーマ・・・データ構造の定義の記述 21 22CREATEの使用例
mysql> CREATE TABLE person -> (person_id int , -> fname char(20), -> name char(20), -> birth_date date),-> constraint pk_person primary key
(person_id);
列名
型
テーブル名
22 23
生成されたテーブル
Field Type Null Key Default Extra person_id int NO PRI 0 fname char YES NULL name char YES NULL birth_date date YES NULL
mysql>DESC person;
23 24データ操作言語
insert・・・挿入
select・・・検索
update・・・更新
delete・・・削除
2425
INSERT,SELECTの使用例
mysql-> INSERT INTO person
-> (person_id, fname, name, birth_date) -> VALUES (1, ‘TAGUCHI’, ‘Ryuuichi’, ‘1990-08-21’);
mysql-> SELECT person_id, fname, name,birth_date -> FROM person;
person_id fname name birth_date 1 TAGUCHI Ryuuichi 1990-08-21 25 26
データ制御言語
grant・・・権限を与える
revoke・・・権限を剥奪
例 connect…接続 select…検索 insert…新規登録 26 27動的コンテンツ
利用者の挙動に応じて変化 ⇔ 静的コンテンツ動的コンテンツの実現
SSI (Server Side Include)
HTML内にその記述をすることにより、文字通
りその処理結果をその場に挿入し表示するも の。
CGI (Common Gateway Interface)
Webサーバ内のプログラムを実行し、その実 行結果を表示するもの。
SSIの動き
Web サーバ 要求 結果 利用者CGIの動き
Web サーバ 要求 起動 結果 結果31