SlideShare a Scribd company logo
1 of 25
Download to read offline
データベースシステム論

[第15回]

データベースシステム論
2013年度

後期 火曜 3・4時限
担当:横山昌平

情14教室

p.1
データベースシステム論

[第15回]

講義計画 ※現時点での予定です。進捗に応じて変更します。
Oct.

• 関係データベースの歴史と基本概念

8

15 22

29

Nov.

Oct.

• SQLの基礎と応用(演習を含めつつ)

12 19 26

Dec.

• データベースの設計と構成

3

10 17

Jan.

• SQL問い合わせ処理とそれを支える技術

7

15

Jan.

• 関係データモデル以外のデータベース

28

• 総復習

21

p.2
データベースシステム論

[第15回]

データベースシステム論
第15回

関係データモデル以外のデータベース
~時間の都合上技術のエッセンスのみ~

p.3
データベースシステム論

復習 [第2回]

[第15回]

歴史
データベースの歴史は、現実の我々の身の回りにある
情報をどのようにコンピュータ上に再現するかの挑戦
といえる。我々が当たり前のように使っている表形式
のデータが登場する前に様々な試みがあった

ネットワーク型データモデル(1960年代)
ワイン
バローロ
買う

1万円
売る

人
山田

人
50歳

佐藤

40歳

p.4
データベースシステム論

復習 [第2回]

[第15回]

歴史
データベースの歴史は、現実の我々の身の回りにある
情報をどのようにコンピュータ上に再現するかの挑戦
といえる。我々が当たり前のように使っている表形式
のデータが登場する前に様々な試みがあった

階層型データモデル(1960年代後半)
人
佐藤

部長

人
山田

人
課長

渡辺

課長

p.5
データベースシステム論

復習 [第2回]

[第15回]

歴史
データベースの歴史は、現実の我々の身の回りにある
情報をどのようにコンピュータ上に再現するかの挑戦
といえる。我々が当たり前のように使っている表形式
のデータが登場する前に様々な試みがあった

関係データモデル(1970年代)
役職
部長
課長
課長
支店長

名前
佐藤
山田
渡辺
マイケル

部下
上司
山田
佐藤
渡辺
佐藤
マイケル 佐藤

p.6
データベースシステム論

[第15回]

データモデルはRelationalだけじゃない
そもそも現実のデータは構造化されていない
ワインセット

ソムリエ

年齢 価格

ワイン

評価

高級白ワイン

田崎信哉

50

シャルドネ カテナ

★★★

セミヨンブロークンウッド

★★★

おたる

★

おたる

★★

デリカート白

★★★

ガロフォリ白

★

シャトー・ジレット

★★

オーパスワン

★★★

ヒル・オブ・グレイス

★

お買い得白ワイン

お勧めワインセット

復習 [第10回]

横山昌平

田崎信哉

36

50

10000

3000

150000

p. 7
データベースシステム論

[第15回]

XML – Extensible Markup Language
• HTMLタグのような文法を持つデータ記述言語
• SGML(Standard Generalized Markup Language)が前身
• 汎用的な文章記述言語

• XMLのタイプ

• 整形式XML文書 (well-formed XML document)
• スキーマが無く自由に記述・拡張可能

• 妥当なXML文書 (valid XML document)
• DTD等によりスキーマを記述できる

• プログラムからの利用
• SAX

• ファイルの先頭から走査し構成要素をイベントとして返す

• DOM

• XMLの木構造全体を読み込みメモリ上に展開

p.8
データベースシステム論

[第15回]

XML- 例
<レシピ 名前="パン" 準備時間="5分" 調理時間="3時間">
<料理>基本的なパン</料理>
<材料 量='3' 単位='カップ'>小麦粉</材料>
<材料 量='0.25' 単位='オンス'>イースト</材料>
<材料 量='1.5' 単位='カップ' 状態="温かい">水</材料>
<材料 量="1" 単位="ティースプーン">食塩</材料>
<要領>
<手順>全ての材料を一緒にして混ぜます。</手順>
<手順>十分にこねます。</手順>
<手順>布で覆い、暖かい部屋で1時間そのままにしておきます。</手順>
<手順>もう一度こねます。</手順>
<手順>パン焼きの容器に入れます</手順>
<手順>布で覆い、暖かい部屋で1時間そのままにしておきます。</手順>
<手順>オーブンに入れて温度を180℃にして30分間焼きます。</手順>
</要領>
</レシピ>
出典:http://ja.wikipedia.org/wiki/Extensible_Markup_Language

p.9
データベースシステム論

[第15回]

XMLの問い合わせ
XPath
XML木の特定のノードの位置を表現
linuxのディレクトリの表現に似た文法
加えて基本的な問い合わせの機能を持つ
/レシピ/材料[@単位!= ティースプーン ]
手順[last()]

XQuery
RDBに対するSQLに相当するXML問い合わせ言語
XPathよりも複雑な問い合わせに対応
『FLWOR表現』を基本とした文法
for句、let句、where句、order by句、return句

p.10
データベースシステム論

XMLのデータベース
• Apache Xindice (開発終了)

• 初期の有名なXMLデータベース

• Tamino

• 商用ベースのネイティブXMLデータベース

• 国産

• TX1(東芝)
• Shunsaku(富士通)
• EsTerra(メディアフュージョン)

• RDB統合タイプ

• Oracle XML DB
• IBM DB2 9 pureXML

[第15回]

p.11
データベースシステム論

[第15回]

RDF - Resource Description Framework
「リソース」の「メタデータ」を記述
要素間の関係を記述可能

トリプルを使ってデータを表現
主語(subject), 述語(predicate), 目的語(object)
データベース
システム論

担当教員
横山昌平

一般的にXML形式でシリアライズされる
「オープンデータ」のデータ形式として利用

p.12
データベースシステム論

[第15回]

RDFの問い合わせ
SPARQL
SPARQL Protocol and RDF Query Language
次のSPARQLクエリは、アフリカ諸国の首都のリスト
PREFIX abc: <http://mynamespace.com/exampleOntologie#>
SELECT ?capital ?country
WHERE {
?x abc:cityname ?capital.
?y abc:countryname ?country.
?x abc:isCapitalOf ?y.
?y abc:isInContinent abc:africa.
}
出展:http://ja.wikipedia.org/wiki/SPARQL

p.13
データベースシステム論

[第15回]

「NoSQL」ムーブメント
• そういうソフトがある訳ではありません。
• 文字通りSQLにNoを言うムーブメント
• 柔らかく「Not only SQL」と解釈すべき?

• RDBのメリット(難しい事をDBがやってくれる)
• ACIDの保証
• データに対するスキーマの厳密な適用
• 強力な結合演算

• 上記のメリットの反面、性能が犠牲になる
• 上記メリットを捨てる事でメリットもある
• スケーラビリティ(大規模分散化)

p.14
データベースシステム論

NoSQL関連のキーワード
• KVS (Key-Value Store)

• 連想配列・ハッシュテーブルに基いたDB
• Amazon Dynamo, Memcached, Hibari

• カラム(列)指向

• キーに対し大量のカラムを保存するのに適したDB
• Apache HBase, Apache Cassandra

• グラフ型

• 文字通り「グラフ」を保存するのに適したDB
• Neo4j

• ドキュメント指向

• 半構造データを集合に対し高速に問い合わせ
• MongoDB, Apache CouchDB

[第15回]

p.15
データベースシステム論

[第15回]

MongoDB
• フリーのドキュメント指向データベース

• 「ドキュメント」=JSON形式でデータ投入

• ディスク上にはバイナリ化(BSON形式)して保存

• ドキュメントの集合「コレクション」を管理
• 特徴
•
•
•
•
•

半構造データ
スキーマレス
高速(インデクスの付与も可)
大規模分散
ACIDと結合が弱い

p.16
データベースシステム論

MongoDBのWebページ
• http://www.mongodb.org/

[第15回]

p.17
データベースシステム論

JSON
• JavaScript Object Notation

• 配列やオブジェクトとその入れ子を表現
• 要はJavaScriptの右辺
• 配列

• var arr = [“りんご”,”ごりら”,”らっぱ”];

• オブジェクト

• var obj = {“静岡県”:”静岡市”,”神奈川県”:”横浜市”};

• XMLのような半構造データを記述可能

[第15回]

p.18
データベースシステム論

MongoDB − データ挿入
db.car.insert({
"maker":"Honda",
"model":"N-ONE",
"option":["四駆","横滑り防止装置","エアバック"]
});
db.car.insert({
"maker":"Abarth",
"model":"500",
"baseMode":"Fiat 500",
"option":{
"エアコン":"オートエアコン",
"シート":"レザーシート",
"その他":["ターボ","MT"]
}
})

[第15回]

p.19
データベースシステム論

[第15回]

MongoDB − データ検索
一致検索
db.car.find({ maker : Abarth })
{ "_id" : ObjectId("52e6856416abdf51a6d36b63"), "maker" : "Abarth",
"model" : "500", "baseMode" : "Fiat 500", "option" : { "エアコン" : "オー
トエアコン", "シート" : "レザーシート", "その他" : [ "ターボ",
"MT" ] } }

ソート
db.car.find().sort({maker:1})
{ _id : ObjectId( 52e6856416abdf51a6d36b63 ), maker : Abarth ,
・・・
{ "_id" : ObjectId("52e6856316abdf51a6d36b62"), "maker" : "Honda",

p.20
データベースシステム論

[第15回]

MongoDB − プログラミング
JavaScriptで記述可能
Google V8: JavaScript実行エンジン
Google Chrome(ブラウザ)に採用されている

例
for文で1万個のデータを挿入
for (var i = 0; i < 10000; i++){
db.test.insert({x:i, y:Math.random()});
}

→ブラウザと同じJavaScriptがDBで動く!

p.21
データベースシステム論

復習 [第2回]

[第15回]

三層構成のWeb
データベースを利用したWebアプリ
ブラウザ

Webサーバ

DBサーバ

p.22
データベースシステム論

復習 [第2回]

[第15回]

p.23

三層構成のWeb
データベースを利用したWebアプリ
ブラウザ

Webサーバ

DBサーバ

Chrome

node.js

MongoDB

Google V8

Google V8

Google V8

全てのレイヤがJavaScriptで技術可能!!
データベースシステム論

次回予告
2月4日

期末試験

[第15回]

p.24
2月4日

期末試験

データベースシステム論

• 情13室

• 各机の真ん中に一人ずつ座ってください。
• 多分、席は足りるでしょう・・・

• 15分以上遅刻しない事。

• 遅刻しても延長しません。

• 公欠以外での再試はありません

• 先週出した模試レベルの問題は解けるように

• 合格点:60点

• これまでの講義中課題を加味します。

[第15回]

p. 25

More Related Content

What's hot (8)

データベースシステム論13 - データベースの運用
データベースシステム論13 - データベースの運用データベースシステム論13 - データベースの運用
データベースシステム論13 - データベースの運用
 
インデックス使えてる?じぇじぇじぇ!
インデックス使えてる?じぇじぇじぇ!インデックス使えてる?じぇじぇじぇ!
インデックス使えてる?じぇじぇじぇ!
 
nextl enju 56
nextl enju 56nextl enju 56
nextl enju 56
 
データベース01 - データベースとは
データベース01 - データベースとはデータベース01 - データベースとは
データベース01 - データベースとは
 
Riak map reduce for beginners
Riak map reduce for beginnersRiak map reduce for beginners
Riak map reduce for beginners
 
Webアプリケーション入門(3)
Webアプリケーション入門(3) Webアプリケーション入門(3)
Webアプリケーション入門(3)
 
Tile map 2011_foss4g_osaka
Tile map 2011_foss4g_osakaTile map 2011_foss4g_osaka
Tile map 2011_foss4g_osaka
 
データベース入門
データベース入門データベース入門
データベース入門
 

Viewers also liked

Wikipedia解析
Wikipedia解析Wikipedia解析
Wikipedia解析
ghazel7
 
XMLデータベースについて
XMLデータベースについてXMLデータベースについて
XMLデータベースについて
Koji Kawaguchi
 
Chefを利用した運用省力化とDevOpsの取り組みについて
Chefを利用した運用省力化とDevOpsの取り組みについてChefを利用した運用省力化とDevOpsの取り組みについて
Chefを利用した運用省力化とDevOpsの取り組みについて
Yuuki Namikawa
 
[D35] インメモリーデータベース徹底比較 by Komori
[D35] インメモリーデータベース徹底比較 by Komori[D35] インメモリーデータベース徹底比較 by Komori
[D35] インメモリーデータベース徹底比較 by Komori
Insight Technology, Inc.
 
ngGoBuilder and collaborative development between San Francisco and Tokyo
ngGoBuilder and collaborative development between San Francisco and TokyongGoBuilder and collaborative development between San Francisco and Tokyo
ngGoBuilder and collaborative development between San Francisco and Tokyo
notolab
 
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
Yuuki Namikawa
 
CAPとBASEとEventually Consistent
CAPとBASEとEventually ConsistentCAPとBASEとEventually Consistent
CAPとBASEとEventually Consistent
Yohei Yamamoto
 
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
Akihiro Kuwano
 

Viewers also liked (20)

Cent7@zabbix2.4を試す
Cent7@zabbix2.4を試すCent7@zabbix2.4を試す
Cent7@zabbix2.4を試す
 
Eight meets AWS
Eight meets AWSEight meets AWS
Eight meets AWS
 
Wikipedia解析
Wikipedia解析Wikipedia解析
Wikipedia解析
 
「クラウド本気で始めました」なSIerのChef活用と実践~Chefアンチパターンとの戦い~
「クラウド本気で始めました」なSIerのChef活用と実践~Chefアンチパターンとの戦い~「クラウド本気で始めました」なSIerのChef活用と実践~Chefアンチパターンとの戦い~
「クラウド本気で始めました」なSIerのChef活用と実践~Chefアンチパターンとの戦い~
 
XMLデータベースについて
XMLデータベースについてXMLデータベースについて
XMLデータベースについて
 
Chefを利用した運用省力化とDevOpsの取り組みについて
Chefを利用した運用省力化とDevOpsの取り組みについてChefを利用した運用省力化とDevOpsの取り組みについて
Chefを利用した運用省力化とDevOpsの取り組みについて
 
Riak: 本物の高可用性を実現する仕組みとは?
Riak: 本物の高可用性を実現する仕組みとは?Riak: 本物の高可用性を実現する仕組みとは?
Riak: 本物の高可用性を実現する仕組みとは?
 
CAPとBASE、ACIDの呪縛
CAPとBASE、ACIDの呪縛CAPとBASE、ACIDの呪縛
CAPとBASE、ACIDの呪縛
 
VMware的インフラ仮想化の世界
VMware的インフラ仮想化の世界VMware的インフラ仮想化の世界
VMware的インフラ仮想化の世界
 
マニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpec
マニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpecマニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpec
マニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpec
 
[D35] インメモリーデータベース徹底比較 by Komori
[D35] インメモリーデータベース徹底比較 by Komori[D35] インメモリーデータベース徹底比較 by Komori
[D35] インメモリーデータベース徹底比較 by Komori
 
Japan Developer Summit (jp) - Cloud Foundry, the Open Platform As A Service
Japan Developer Summit (jp) - Cloud Foundry, the Open Platform As A ServiceJapan Developer Summit (jp) - Cloud Foundry, the Open Platform As A Service
Japan Developer Summit (jp) - Cloud Foundry, the Open Platform As A Service
 
ngGoBuilder and collaborative development between San Francisco and Tokyo
ngGoBuilder and collaborative development between San Francisco and TokyongGoBuilder and collaborative development between San Francisco and Tokyo
ngGoBuilder and collaborative development between San Francisco and Tokyo
 
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
 
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
 
CAPとBASEとEventually Consistent
CAPとBASEとEventually ConsistentCAPとBASEとEventually Consistent
CAPとBASEとEventually Consistent
 
ハードウェア勉強会[Shibuya Hw]
ハードウェア勉強会[Shibuya Hw]ハードウェア勉強会[Shibuya Hw]
ハードウェア勉強会[Shibuya Hw]
 
qpstudy 〜初心者にやさしいインフラ勉強会〜 の紹介
qpstudy 〜初心者にやさしいインフラ勉強会〜 の紹介qpstudy 〜初心者にやさしいインフラ勉強会〜 の紹介
qpstudy 〜初心者にやさしいインフラ勉強会〜 の紹介
 
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
 
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
 

More from Shohei Yokoyama

More from Shohei Yokoyama (6)

データベースシステム論10 - データベースの設計
データベースシステム論10 - データベースの設計データベースシステム論10 - データベースの設計
データベースシステム論10 - データベースの設計
 
データベースシステム論08 - SQL応用演習 結合演算とその他
データベースシステム論08 - SQL応用演習 結合演算とその他データベースシステム論08 - SQL応用演習 結合演算とその他
データベースシステム論08 - SQL応用演習 結合演算とその他
 
データベースシステム論07 - SQL基礎演習2 データの問い合わせ
データベースシステム論07 - SQL基礎演習2 データの問い合わせデータベースシステム論07 - SQL基礎演習2 データの問い合わせ
データベースシステム論07 - SQL基礎演習2 データの問い合わせ
 
データベースシステム論04 - 関係代数(後半)
データベースシステム論04 - 関係代数(後半)データベースシステム論04 - 関係代数(後半)
データベースシステム論04 - 関係代数(後半)
 
データベースシステム論03 - 関係データモデルと関係代数(前半)
データベースシステム論03 - 関係データモデルと関係代数(前半)データベースシステム論03 - 関係データモデルと関係代数(前半)
データベースシステム論03 - 関係データモデルと関係代数(前半)
 
静大情報学部オープンキャンパス ミニ講義CS系
静大情報学部オープンキャンパス ミニ講義CS系静大情報学部オープンキャンパス ミニ講義CS系
静大情報学部オープンキャンパス ミニ講義CS系
 

Recently uploaded

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
 

Recently uploaded (7)

ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 

データベースシステム論15 - 関係データモデル以外のデータベース