0
Not only NoSQL
JIT
NoSQL SQL RDB TODAY
purpose <ul><li>SQL is not RDB </li></ul><ul><li>SQL is not well defined </li></ul><ul><li>RDB can be better than SQL </li...
Talk about SQL <ul><li>制定された年ごとに SQL86, SQL89, SQL92, SQL1999, SQL2003, SQL2008  などの規格がある。 </li></ul><ul><li>SQL は、 RDBMS ...
Talk about NoSQL <ul><li>NoSQL とは、 SQL の長い歴史を打破するものとして、広い意味での非 SQL な理論、製品、プログラムの総称である。 </li></ul><ul><li>主な製品として、 CouchDB ...
Happy?
tuning <ul><li>「 WEB 応答が遅い」 </li></ul><ul><li>「バッチ処理が遅い」 </li></ul><ul><li>  ⇒  NoSQL? </li></ul><ul><li>実装に惑わされるな、理論に従え <...
NoSQL  &  REST <ul><li>アーキテクチャ指向( scale out ) </li></ul><ul><li>ソフトウエア( cash, kvs, bigtable ) </li></ul><ul><li>ステートレス(冪等、...
mathematics theory architecture programming ideal
<ul><li>もっと光を! </li></ul><ul><li>ヨハン・ヴォルフガング・フォン・ゲーテ </li></ul><ul><li>詩劇『ファウスト』 </li></ul><ul><li>& リレーショナル理論 </li></ul>
SQL vs RDB <ul><li>SQLはリレーショナル理論の部分実装 </li></ul><ul><li>SQLはリレーショナル理論の直交拡張 </li></ul><ul><li>  こうではない。 </li></ul><ul><li> ...
fantasy  <ul><li>SQLは第一正規形 </li></ul><ul><li>SQLはNOT NULL制約を持つ </li></ul><ul><li>SQLはトリガー(型強制)を持つ </li></ul><ul><li>SQLは関数...
atom
<ul><li>atom は非分解、つまり原子 </li></ul><ul><li>SQL で認められている atom は string,integer,boolean,decimal,date など </li></ul><ul><li>SQL...
Is atom undividable?
helium
Check your atom <ul><li>文字列型 </li></ul><ul><li>「 少年易老學難成 」 ⇒ 「少」、「年」、、、、 </li></ul><ul><li>日付型 </li></ul><ul><li>「 2011/11...
context <ul><li>原子性はcontextに依存する </li></ul><ul><li>時間、人、物、空間、によって妥当な原子性の深さが異なる。 </li></ul><ul><li>SQLは様々なcontextを無視し、ある、独断...
complexity <ul><li>複雑さの復権 </li></ul><ul><li>  bigtable 、 Object 、 XML 、 JSON だけが複雑性の拠り所ではない。 </li></ul><ul><li>リレーショナル理論こそ...
Who? Edgar Frank Codd 1923 ・ 8 ・ 23 - 2003 ・ 4 ・ 18 Mathematician In Set theory
Set theory
Set theory <ul><li>集合は任意の対象(要素)の集まり </li></ul><ul><li>集合は任意の型を包含可 </li></ul><ul><li>集合は集合を包含可 </li></ul><ul><li>集合は要素の重複を許...
dimension <ul><li>SQL のテーブルは、 2 次元(項、列) </li></ul><ul><li>集合の次元は多次元に拡張可能 </li></ul><ul><li> 自然数  N={1,2,3,4,5,……} </li></u...
relation <ul><li>関係の項とは、組み合わせの一つの要素 </li></ul><ul><li>関係とは、集合の内積に他ならない </li></ul><ul><li>(1001,Jhon,tennis)∈ID×NAME×HOBBY ...
Cartesian coordinate system  N 次元の座標系の一点として定義 ※ 重複を許さない根拠 ( 1001,Null,tennis ) が何処をポイントするかわからない! Null を許容しない根拠
depth <ul><li>集合は集合間の包含において、任意の深さを取れる。 </li></ul><ul><li>A:集合 </li></ul><ul><li>A∈B:集合  つまり {A, A’, A’’,….} </li></ul><ul>...
Again, complexity <ul><li>Hobby∈Hobbies </li></ul><ul><li>※  Hobbies ≠ Hobby ^3 </li></ul>・ Object ・ XML ・ JSON ・ Bigdata ...
<ul><li>Select  </li></ul><ul><li>ID, </li></ul><ul><li>Name </li></ul><ul><li>From Person </li></ul><ul><li>WHERE </li></...
logic
<ul><li>Nullが怖い </li></ul><ul><li>Nullは嫌い </li></ul><ul><li>⇒ 正解です。 </li></ul>
NULL <ul><li>Null を扱った命題では、結果として True 、 False のいずれかが返される保証がない。 </li></ul><ul><li>例) </li></ul><ul><li>Where  </li></ul><ul...
three valued logic <ul><li>SQL は UNKNOWN 、 TRUE 、 FALSE の 3 値論理。 </li></ul><ul><li>リレーショナル理論(集合論など古典数学)では 2 値論理 </li></ul>...
Type
Type(SQL) <ul><li>型の有益は、言及するまでもない。 </li></ul><ul><li>SQLに型は備わっているか? </li></ul><ul><li> YES:しかしユーザ定義型が弱い </li></ul><ul><li>...
literal <ul><li>リテラルとはコンストラクタである。 </li></ul><ul><li>例)文字列型:「hello world」 </li></ul><ul><li>複雑な型表現は? </li></ul><ul><li> 例)デ...
Type(relational) <ul><li>コンストラクタの候補表現(オーバーロード) </li></ul><ul><li>強力な型制約をつけられる。 </li></ul><ul><li>  Constraint R15 { </li><...
Constraint <ul><li>関係にも制約をつけれる。 </li></ul><ul><li> Constraint R25 { </li></ul><ul><li>age <= 25 AND ID%2==0: Exception </l...
Domain <ul><li>二つのリレーションが合った場合、両方に共通したDomainが現れることがある。 </li></ul><ul><li>これらのドメイン(ID)を、同じ型で表現する。 </li></ul><ul><li>豊かな型表現に...
semantics
optimization  <ul><li>SQL:統計情報による。(コストベース) </li></ul><ul><li>等価SQL:SQLA⇒SQLB </li></ul><ul><li>簡単な(コストの低い)SQLに変換し結果を出す。 </...
Semantics optimization <ul><li>もし、 R15 指定があったとしたら、、、 </li></ul><ul><li>「 movie を趣味に持つ人を取得」にクエリ変換できる。 </li></ul><ul><li>これが...
finally <ul><li>SQLは、リレーショナル理論の完全な実装ではなかった。 </li></ul><ul><li>SQLベンダーは高速化に挑んでいるが、数学的根拠なきベースからは厳しい戦いになっているようだ。 </li></ul><u...
Upcoming SlideShare
Loading in...5
×

Notonly NoSQL

954

Published on

Introducing the beggining of Rerational theory with a little math words.
This presentation paper was written for Zansa in 18th December 2011

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
954
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Notonly NoSQL"

  1. 1. Not only NoSQL
  2. 2. JIT
  3. 3. NoSQL SQL RDB TODAY
  4. 4. purpose <ul><li>SQL is not RDB </li></ul><ul><li>SQL is not well defined </li></ul><ul><li>RDB can be better than SQL </li></ul><ul><li>(potential) </li></ul><ul><li>RDB is truly mathematics </li></ul><ul><li>(SQL product) </li></ul>
  5. 5. Talk about SQL <ul><li>制定された年ごとに SQL86, SQL89, SQL92, SQL1999, SQL2003, SQL2008 などの規格がある。 </li></ul><ul><li>SQL は、 RDBMS ( SQLMS )において、データの操作や定義を行うための問い合わせ言語である </li></ul><ul><li>主な製品として、 Oracle 、 DB2 、 MySQL など。 </li></ul><ul><li>by wikipedia </li></ul>
  6. 6. Talk about NoSQL <ul><li>NoSQL とは、 SQL の長い歴史を打破するものとして、広い意味での非 SQL な理論、製品、プログラムの総称である。 </li></ul><ul><li>主な製品として、 CouchDB 、 HBase 、 Memcachedb 、 MongoDB など </li></ul><ul><li>by wikipedia </li></ul>
  7. 7. Happy?
  8. 8. tuning <ul><li>「 WEB 応答が遅い」 </li></ul><ul><li>「バッチ処理が遅い」 </li></ul><ul><li>  ⇒  NoSQL? </li></ul><ul><li>実装に惑わされるな、理論に従え </li></ul>
  9. 9. NoSQL  &  REST <ul><li>アーキテクチャ指向( scale out ) </li></ul><ul><li>ソフトウエア( cash, kvs, bigtable ) </li></ul><ul><li>ステートレス(冪等、独立) </li></ul><ul><li>bigdata(Object) </li></ul><ul><li>複雑性( XML 、 JSON 、 YAML ) </li></ul><ul><li>確かに素晴らしい。 </li></ul><ul><li>これがなくては現在の世の中は成り立たない。 </li></ul><ul><li>しかし本当に RDB と直交する概念か!? </li></ul>
  10. 10. mathematics theory architecture programming ideal
  11. 11. <ul><li>もっと光を! </li></ul><ul><li>ヨハン・ヴォルフガング・フォン・ゲーテ </li></ul><ul><li>詩劇『ファウスト』 </li></ul><ul><li>& リレーショナル理論 </li></ul>
  12. 12. SQL vs RDB <ul><li>SQLはリレーショナル理論の部分実装 </li></ul><ul><li>SQLはリレーショナル理論の直交拡張 </li></ul><ul><li>  こうではない。 </li></ul><ul><li>   Class SQL extends RDB{ </li></ul><ul><li>} </li></ul><ul><li>SQLは混乱する。(私だけ?) </li></ul>
  13. 13. fantasy <ul><li>SQLは第一正規形 </li></ul><ul><li>SQLはNOT NULL制約を持つ </li></ul><ul><li>SQLはトリガー(型強制)を持つ </li></ul><ul><li>SQLは関数型言語 </li></ul><ul><li>SQLは数学に基礎を置く </li></ul><ul><li>SQLはACID、トランザクションを持つ </li></ul><ul><li>SQLは統計情報から最適化される </li></ul>
  14. 14. atom
  15. 15. <ul><li>atom は非分解、つまり原子 </li></ul><ul><li>SQL で認められている atom は string,integer,boolean,decimal,date など </li></ul><ul><li>SQL では論外 </li></ul>  boy girl Bob 1003 poem movie book May 1002   piano tennis Jhon 1001 Hobby Name ID
  16. 16. Is atom undividable?
  17. 17. helium
  18. 18. Check your atom <ul><li>文字列型 </li></ul><ul><li>「 少年易老學難成 」 ⇒ 「少」、「年」、、、、 </li></ul><ul><li>日付型 </li></ul><ul><li>「 2011/11/28 」 ⇒年 2011 、月 11 、日 28 </li></ul><ul><li>真理値型 </li></ul><ul><li>「イルカは魚または動物」⇒命題として分解 </li></ul><ul><li>数値型 </li></ul><ul><li>「 100 」⇒素因数分解 (2^2×5^2) </li></ul>
  19. 19. context <ul><li>原子性はcontextに依存する </li></ul><ul><li>時間、人、物、空間、によって妥当な原子性の深さが異なる。 </li></ul><ul><li>SQLは様々なcontextを無視し、ある、独断で原子性を定義 </li></ul><ul><li> (そんな乱暴な第一正規形に従うな!) </li></ul>
  20. 20. complexity <ul><li>複雑さの復権 </li></ul><ul><li>  bigtable 、 Object 、 XML 、 JSON だけが複雑性の拠り所ではない。 </li></ul><ul><li>リレーショナル理論こそ、複雑性の代名詞といえる。( e.g  表現力) </li></ul>
  21. 21. Who? Edgar Frank Codd 1923 ・ 8 ・ 23 - 2003 ・ 4 ・ 18 Mathematician In Set theory
  22. 22. Set theory
  23. 23. Set theory <ul><li>集合は任意の対象(要素)の集まり </li></ul><ul><li>集合は任意の型を包含可 </li></ul><ul><li>集合は集合を包含可 </li></ul><ul><li>集合は要素の重複を許さない </li></ul><ul><li>集合は要素数が 0 を認める </li></ul><ul><li>集合は対象が未定( NULL) を許さない </li></ul><ul><li>集合には集合命題がある </li></ul><ul><li>  ⊂、∈など </li></ul><ul><li>集合には集合演算がある </li></ul><ul><li>  ∪、∩など </li></ul>
  24. 24. dimension <ul><li>SQL のテーブルは、 2 次元(項、列) </li></ul><ul><li>集合の次元は多次元に拡張可能 </li></ul><ul><li> 自然数  N={1,2,3,4,5,……} </li></ul><ul><li> 整数    Z= -N∪{0} ∪N </li></ul><ul><li>有理数  Q= Z × Z </li></ul><ul><li>デカルト座標  D= Q× Q </li></ul><ul><li> ※実際には実数 </li></ul><ul><li> ※ Q×Q を Q^2 と書く </li></ul>
  25. 25. relation <ul><li>関係の項とは、組み合わせの一つの要素 </li></ul><ul><li>関係とは、集合の内積に他ならない </li></ul><ul><li>(1001,Jhon,tennis)∈ID×NAME×HOBBY </li></ul>
  26. 26. Cartesian coordinate system N 次元の座標系の一点として定義 ※ 重複を許さない根拠 ( 1001,Null,tennis ) が何処をポイントするかわからない! Null を許容しない根拠
  27. 27. depth <ul><li>集合は集合間の包含において、任意の深さを取れる。 </li></ul><ul><li>A:集合 </li></ul><ul><li>A∈B:集合  つまり {A, A’, A’’,….} </li></ul><ul><li>B∈C:集合 </li></ul><ul><li>・・・・・・ </li></ul>
  28. 28. Again, complexity <ul><li>Hobby∈Hobbies </li></ul><ul><li>※ Hobbies ≠ Hobby ^3 </li></ul>・ Object ・ XML ・ JSON ・ Bigdata に表現力は遜色ない。 ※ すごい似てる!
  29. 29. <ul><li>Select </li></ul><ul><li>ID, </li></ul><ul><li>Name </li></ul><ul><li>From Person </li></ul><ul><li>WHERE </li></ul><ul><li>‘ tennis’∈Hobbies.Hobby </li></ul>Sample Person ※ SQL で無理やり書くとこんな感じかな、、、、
  30. 30. logic
  31. 31. <ul><li>Nullが怖い </li></ul><ul><li>Nullは嫌い </li></ul><ul><li>⇒ 正解です。 </li></ul>
  32. 32. NULL <ul><li>Null を扱った命題では、結果として True 、 False のいずれかが返される保証がない。 </li></ul><ul><li>例) </li></ul><ul><li>Where </li></ul><ul><li>  NULL > 100 </li></ul><ul><li>AND NULL = NULL </li></ul><ul><li>この Where 句は真に評価される?偽に評価される? </li></ul><ul><li>⇒ UNKNOWN </li></ul>
  33. 33. three valued logic <ul><li>SQL は UNKNOWN 、 TRUE 、 FALSE の 3 値論理。 </li></ul><ul><li>リレーショナル理論(集合論など古典数学)では 2 値論理 </li></ul><ul><li>3 値論理は非常に危険!既存の数学的な論拠が使えない。 </li></ul><ul><li>  例)背理法が使えない。俳中律の崩壊。 </li></ul><ul><li>⇒ 数学を基盤にしているとはとても言えない、、、 </li></ul><ul><li>現世界のコンピュータは 2 値論理で稼動している。( 2 値に抑えればクエリ高速化に繋がる可能性) </li></ul>
  34. 34. Type
  35. 35. Type(SQL) <ul><li>型の有益は、言及するまでもない。 </li></ul><ul><li>SQLに型は備わっているか? </li></ul><ul><li> YES:しかしユーザ定義型が弱い </li></ul><ul><li> (トリガーでごまかされている気がする。) </li></ul><ul><li>強力な型が欲しい! </li></ul><ul><li>リレーショナル理論では型の表現が自由 </li></ul>
  36. 36. literal <ul><li>リテラルとはコンストラクタである。 </li></ul><ul><li>例)文字列型:「hello world」 </li></ul><ul><li>複雑な型表現は? </li></ul><ul><li> 例)デカルト座標        </li></ul>コンストラクタのオーバーロードが欲しい。 極座標
  37. 37. Type(relational) <ul><li>コンストラクタの候補表現(オーバーロード) </li></ul><ul><li>強力な型制約をつけられる。 </li></ul><ul><li>  Constraint R15 { </li></ul><ul><li>age <= 15 : Exception </li></ul><ul><li>  } on Person.Age </li></ul>Age には年齢制限があるため、このタプルを含む集合を Person に代入しようとした時点で例外発生
  38. 38. Constraint <ul><li>関係にも制約をつけれる。 </li></ul><ul><li> Constraint R25 { </li></ul><ul><li>age <= 25 AND ID%2==0: Exception </li></ul><ul><li>} on Person </li></ul>
  39. 39. Domain <ul><li>二つのリレーションが合った場合、両方に共通したDomainが現れることがある。 </li></ul><ul><li>これらのドメイン(ID)を、同じ型で表現する。 </li></ul><ul><li>豊かな型表現により、プリミティブでない項目表現が可能 </li></ul>
  40. 40. semantics
  41. 41. optimization <ul><li>SQL:統計情報による。(コストベース) </li></ul><ul><li>等価SQL:SQLA⇒SQLB </li></ul><ul><li>簡単な(コストの低い)SQLに変換し結果を出す。 </li></ul><ul><li>関係(relational)では、型制約、関係制約を持っていることから、意味論(semantics)的な最適化が出来る。 </li></ul>
  42. 42. Semantics optimization <ul><li>もし、 R15 指定があったとしたら、、、 </li></ul><ul><li>「 movie を趣味に持つ人を取得」にクエリ変換できる。 </li></ul><ul><li>これが意味論的最適化 </li></ul><ul><li>⇒  高速化の期待! </li></ul><ul><li>「 movie を趣味に持つ 16 歳以上の人を取得」 </li></ul>
  43. 43. finally <ul><li>SQLは、リレーショナル理論の完全な実装ではなかった。 </li></ul><ul><li>SQLベンダーは高速化に挑んでいるが、数学的根拠なきベースからは厳しい戦いになっているようだ。 </li></ul><ul><li>理論、とっても大切!つねに頭に数学を! </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×