beyond the relational model · popular open source software such as db4o frameworks for languages...
TRANSCRIPT
![Page 1: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/1.jpg)
Beyond the Relational Model
Serge Abiteboul
INRIA Saclay & ENS Cachan
4/29/2013 1 4/29/2013 1 4/29/2013 1 4/29/2013 1
![Page 2: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/2.jpg)
Recall for first lecture: Always question everything
In industry: to challenge the well established guys
In academia: to discover new problems
Revisit the models, languages, principles
Main motivations – To facilitate application development
– Performance to scale to always more data and queries
– To offer more in terms of reliability, security, etc..
We study here some of the main attempts to go beyond the relational model
4/29/2013 2
![Page 3: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/3.jpg)
Organization
Trees and XML
Graphs and object databases
NoSQL
OLAP (On-line analytical processing)
Conditional tables
Next class: Semantic Web
4/29/2013 3
![Page 4: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/4.jpg)
Trees and XML
4/29/2013 4
![Page 5: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/5.jpg)
Introduction
Trees are useless n
A tree is a tree. How many more do you have to look at?
Ronald Reagan, governor of California, opposing the expansion of Redwood National Park (1966)
We don’t need anything beyond relations. These things are useless. Reject!
Anonymous referee (circa 1990)
Knowledge lives in trees
But of the tree of the knowledge of good and evil, thou shalt not eat of it: for in the day that thou eatest thereof thou shalt surely die. Genesis, 2. 17
The Bible does not say “But of the two dimensional table of knowledge of good and evil … ”
4/29/2013 5
![Page 6: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/6.jpg)
Using trees to represent data: an old idea
From the 60s and IMS (Hierarchical database model) – But fully procedural languages and records at a time
All really started in the 80s and Non-first-normal-form – François Bancilhon in France et Hans Schek in Germany
– PhD thesis of Nicole Bidoit
4/29/2013 6
![Page 7: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/7.jpg)
First-Normal-Form 1NF Non-First-Normal-Form N1NF
Name Child Car
Alice Toto Jaguar
Alice Lulu 2CV
Bob Mimi Mustang
Bob Zaza Prius The last class was on relations. Now
what?
Trees!
Name Child Car
Alice Toto Lulu
Jaguar 2CV
Bob Mimi Zaza
Mustang Prius
Data would prefer to live in infamous nested relations aka V-relations aka N1NF relations aka NF2 relations
Data live in 1NF relations: Entries of tables should be atomic
4/29/2013 7
![Page 8: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/8.jpg)
The devil is in the details
V-relations N1NF-relations
A B
1 1
1 2
2 2
2 3
3 1
3 3
A B C
1 1 2
1
2 2 3
3 1 3
3 4
A C
1 1
3 3
3 4
A
1
2
3
A B
1
1 1
1 2
1 3
1 1 2
1 1 3
1 2 3
1 1 2 3
A is not a key The size is now possibly exponential in the size of the domain
A is a key No new power 4/29/2013 8
![Page 9: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/9.jpg)
Complex object model: set and tuple constructors
*
Name Peter
Cars
Name BMW
Year 2010
Name Toto
Sex M
Children
Families
*
* *
Name Peter
Cars
Name 2CV
Year 1976
Name Mimi
Sex F
Children
*
Name Zaza
Sex F
4/29/2013 9
![Page 10: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/10.jpg)
Logic for complex objects
Logic: main novelty – variables denoting sets
Example: AbouBanat query
{ T.Father | Families(T) X,x ( T.Children = X ⋀ x X ⇒ x.Sex = F ) }
The father of only girls
4/29/2013 10
![Page 11: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/11.jpg)
Algebra for complex objects
Set of sets
Unnest Nest Unnest
Name Child Car
Alice Toto
Bob Mimi Zaza
Mustang
Bob Lulu Prius
Name Child Car
Bob Mimi Mustang
Bob Zaza Mustang
Bob Lulu Prius
Name Child Car
Bob Mimi Zaza Lulu
Mustang Prius
4/29/2013 11
Name Child
Alice Toto
Bob Mimi Name Child
Name Child
Alice Toto
Bob Mimi
Name Child
Alice Toto
Name Child
Bob Mimi
Name Child Car
Bob Mimi Mustang
Bob Zaza Mustang
Bob Lulu Prius
Identity
![Page 12: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/12.jpg)
Results
Equivalence theorem: algebra and logic have same expressive power
Remark: one can compute transitive closure using algebra/logic (Cool!)
Each new level of nesting introduces one more exponential – A query is in the algebra/calculus iff it has elementary time complexity
(similarly space complexity)
22 2n …
4/29/2013 12
![Page 13: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/13.jpg)
From complex objects to semistructured data
*
Name Peter
Cars
Name BMW
Year 2010
Name Toto
Sex M
Children
Families
*
* *
Name Peter
Cars
Name 2CV
Year 1976
Name Mimi
Sex F
Children
*
Name Zaza
Sex F
4/29/2013 13
![Page 14: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/14.jpg)
Revolution 1: more flexibility
*
Name Peter
Cars
Name BMW
Year 2010
Name Toto
Sex M
Children
Families
*
* *
Name Peter
Cars
Name 2CV
Year 1976
Name Mimi
Sex F
Children
*
Name Zaza
Sex F
Annotations
Trash
4/29/2013 14
![Page 15: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/15.jpg)
Revolution 2: get ride of *-nodes
and name all nodes
*
Name Peter
Cars
Name BMW
Year 2010
Name Toto
Sex M
Children
Families
*
* *
Name Peter
Cars
Name 2CV
Year 1976
Name Zaza
Sex F
Ann. Trash
Family Family
Car Car Child Child
4/29/2013 15
![Page 16: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/16.jpg)
XML = ordered, labeled, unbounded trees
Name Peter
Cars
Name BMW
Year 2010
Name Toto
Sex M
Children
Families
Name Peter
Cars
Name 2CV
Year 1976
Name Zaza
Sex F
Ann. Trash
Family Family
Car Car Child Child
4/29/2013 16
![Page 17: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/17.jpg)
This is better adapted to a Web context
Self describing data: No separation between schema and data
Flexibility
Not such a big deal
A syntax for inlining and exchanging data <families><family><name>Peter<Name><Cars><Car><Name>BMW</Name><Year>2010</Year></Car></Cars><Children><Child> …
The more things change, the more they stay the same
4/29/2013 17
![Page 18: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/18.jpg)
What else? The trees are unbounded
Like nested relations, trees are unbounded in width
Unlike nested relations, they are unbounded in depth
One can simulate 2 counter machines with 2 branches – I am still looking for a real application that simulate 2
counter machines with XML documents?
– XML documents are rarely deep
But even for bounded trees there are fun questions
– Rich study of query languages
– Typing and semantics
r
s
a
a
a
a
a
a
a
a
a
a
a
b
a
b
a
b
$
4/29/2013 18
![Page 19: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/19.jpg)
What else? the trees are ordered
Unranked labeled ordered trees = XML
Ignore order
Classical optimization
Respect order
Totally new ball game
Reconcile? Order is often
painful for
optimization 4/29/2013 19
![Page 20: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/20.jpg)
The XML world
Typing – Tree automata, DTD, XML Schema, Relax NG…
Query languages – XPATH
article[1]/auteurs/auteur[2]
– Xquery FOR $ p IN document ("bib.xml") / / publisher LET $ b: = document ("bib.xml) / / book [publisher = $ p] WHERE count ($ b)> 100 RETURN $ p
– Monadic datalog, FO, Pebble automata…
Transformation language: XSLT Other standards around XML
– SOAP, DOM – XML dialects: RSS, WML, SVG, XLink, MathML
Lots of open source software
4/29/2013 20
![Page 21: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/21.jpg)
Query containment (continuing jewel of 1st class)
• Recall Homomorphism Theorem
q1 ⊆ q2 iff there is a homomorphism from q2 to q1
4/29/2013 21
![Page 22: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/22.jpg)
Tree pattern query – semantics
Tree pattern query
4/29/2013 22
r
#
b
c
a
c
r
a
b
c
r
b
a
c
r
c
c
c
☝ ☝ ☟
![Page 23: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/23.jpg)
Tree pattern query – semantics
Tree pattern query
4/29/2013 23
r
#
#
c
r
a
b
c
r
b
a
c
r
c
c
c
☝ ☝ ☝
![Page 24: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/24.jpg)
Tree pattern query containment
Tree pattern containment There is no homomorphism from q2 to q1
24
r
#
a
c
b
c
r
#
#
c
q1 q2
![Page 25: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/25.jpg)
Tree pattern query containment
Tree pattern containment
25
r
#
a
c
b
c
r
#
#
c
q1 q2
• But q1 ⊆ q2
q2 = there is a path of length at least 2 from the root r to a leaf c
q1 & the # is not an a
– There is such a path
q1 & the # is not a b
– There is such a path
r
#
a
c
q11
r
#
b
c
q12
![Page 26: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/26.jpg)
XML storage
In a file system – A directory is now becoming a searchable database
In a native XML DBMS – eXist: open source
– MonetDB
In a relational DBMS – Blades for storing XML
Several types of API – XQJ XQuery API for Java specification (XQJ)
– XML:DB JDBC for XML databases
Trend: reduce the separation between DBMS and file systems
4/29/2013 26
![Page 27: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/27.jpg)
Graphs and object databases
4/29/2013 27
![Page 28: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/28.jpg)
Object databases = Object-oriented languages + Databases
• Object-oriented language – Object = data + behavior
– Objects encapsulate data
• Standard database features – Transactions
– Queries, etc.
• Object data model – Object identity
– Complex structure (typically set & tuple constructors)
– Classes: type and class hierarchies
– Inheritance
4/29/2013 28
![Page 29: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/29.jpg)
Architecture: relational vs. object
JDBC / ODBC
Application
Relational server
Each reads is to the server
Application
Object DB server
Some reads are local
Object cache & cache manager
4/29/2013 29
Queries or OIDs
![Page 30: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/30.jpg)
The same object from disc to memory
Greatly facilitates developing applications
– A single data model (richer) – Integration with an object programming language,
Performance because of complex objects – Join between multiple tables replaced by navigation between objects – Object often in local cache
4/29/2013 30
In memory object Same object in object database
Query Navigation
![Page 31: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/31.jpg)
Moderate industrial success
• Object database systems – 1989: Object Database Manifesto (Atkinson, Bancilhon et al)
– Pioneers: O2, ObjectStore, Objectivity, Versant…
– ODMG Standard, OQL
• Object-Relational – Dirty attempts to use relational back-ends to store objects
4/29/2013 31
In memory objects Relational data with pointers to objects
SQL extension
![Page 32: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/32.jpg)
But the ideas are spreading
Standard around Java: JDO
Popular open source software such as Db4o
Frameworks for languages with persistence: JPA, DataObjects.NET
4/29/2013 32
![Page 33: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/33.jpg)
NoSQL
4/29/2013 33
![Page 34: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/34.jpg)
Motivations for NoSQL
DBMSs pay a high overhead for their universality
Avoid this overhead for very demanding applications
Major overheads to avoid: 1. Buffer Management: cache disk blocks in memory
2. Locking: for the management of concurrency.. Transactions must wait for the release of locks
3. Latching: Short term locks used for access structures that are shared as B-tree
4. Logging: Every update is written in the log that is forced to disk
Analysis of OLTP applications [Harizopoulos & AL08]: 35% buffer management 21% locking
19% latching 17% logging
4/29/2013 34
![Page 35: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/35.jpg)
Specialized data management systems
Specialized for certain types of queries
Specialized for certain aspects such as scalability
In return: sacrifice universality – Sacrifice certain types of queries like the join
– Sacrifice some features, such as concurrency
No SQL – Non-standard systems for data management
– Typically simpler data models
– (Support sometimes SQL)
Warning: the term NoSQL is also used sometimes for systems based on the contrary, more complex models: Object /XML / RDF – not here
4/29/2013 35
![Page 36: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/36.jpg)
NoSQL : different flavors
Extreme performance – Massive scalability
– Massive distribution
– Total availability
Specialization – High transaction rates
– Simple OLAP queries on very large volumes
No universality
Less independence – No 3 levels
Less abstraction – Not relational and SQL
– Simple Data: key / value
– Simple queries
Loss of functionality – No ACID (strict)
– Less typing and integrity
– Simple access structures
– simplistic API - no JDBC
4/29/2013 36
![Page 37: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/37.jpg)
Examples
Key / value store with weak consistency – Cassandra (Apache), Dynamo (Amazon)
Key / value store on disk – Hadoop Hbase (Apache), BigTable (Google)
Document store with N1NF – MongoDB (free software)
Main memory database single-threaded for OLTP – VolTDB
Massively parallel database for analysis – Greenplum, MySQL Cluster
And many more …
4/29/2013 37
![Page 38: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/38.jpg)
The OLAP multidimensional model
4/29/2013 38
![Page 39: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/39.jpg)
Data get organized in cubes
USA Canada France UK
Bread 12 25 14 86
Cheese 23 68 45 25
Yoghurt 12 95 65 42
Chocolate 44 22 33 18
USA Canada France UK
Bread 12 25 14 86
Cheese 23 68 45 25
Yoghurt 12 95 65 42
Chocolate 44 22 33 18
USA Canada France UK
Pain 12 25 14 86
Fromage 23 68 45 25
Yaourt 12 95 65 42
Chocolat 44 22 33 18
January February
Pro
du
ct
Region
+ more dimensions: • Kind of customer • Kind of sale (web, • …
4/29/2013 39
March
![Page 40: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/40.jpg)
Discussion
Ted Codd 1995
Evolution from spreadsheet
Provide multidimensional views for analysis – Hierarchical domains – Time: day, week, month, year
– Aggregation
Example of queries – 5 top demography groups buying videos
– Products sold in France where rejection rate diminished by more than 5%
Querying, navigation, reporting
4/29/2013 40
![Page 41: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/41.jpg)
Standard query language: MDX (MSFT, 1997)
SQL
select, from, where, group-by
Yields a table (2-dim)
Select columns from some tables
Filter lines with predicates in where clause Aggregation using group by
MDX
with, select, from, where
Yields a cube (N-dim)
Select: select cube dimensions
With: specification on selected dimensions
Where: specification on non selected dimensions
Implicit aggregation
with member Measures.profit as Measures.StoreSales – Measures.cost
select
{Measures.StoreSales, Measures.Profit} on columns,
non empty filter(Product.ProductDepartment.members,
(Product.currentMember, Measures.StoreSales) > 20000.0) on rows
from [Sales]
where ([Time].[1997]) 4/29/2013 41
![Page 42: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/42.jpg)
Conditional tables
4/29/2013 42
![Page 43: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/43.jpg)
Uncertainty
Lots of uncertain data
Studied in academia
Not much in industry – Null values in SQL – Trash semantics
– No clear standard
We will see here in brief – Conditional tables
– How to turn them probabilistic
4/29/2013 43
![Page 44: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/44.jpg)
Conditional tables & uncertainty
Friend Location Condition
Alice London E
Bob London E⋀F
Alice Paris ¬E
Lucile London F
4/29/2013 44
Friend Location
Alice London
Bob London
Lucile London
Friend Location
Alice London
Friend Location
Alice Paris
Lucile London
Friend Location
Alice Paris
4 possible worlds
![Page 45: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/45.jpg)
Conditional tables & probabilities
Friend Location Condition
Alice London E
Bob London E⋀F
Alice Paris ¬E
Lucile London F
4/29/2013 45
Friend Location
Alice London
Bob London
Lucile London
Friend Location
Alice London
Friend Location
Alice Paris
Lucile London
Friend Location
Alice Paris
32% 48% 8% 12%
E is 80% F is 40%
![Page 46: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/46.jpg)
A jewel of databases
The worst way I know of computing transitive closure
4/29/2013 46
![Page 47: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/47.jpg)
Calculus for complex objects
The points reachable from a in a graph G
{ x ⎟∀R ( ( R(a) ⋀ ∀y,z ( R(y) ⋀ G(y,z) ⇒R(z) ) ) ⇒ R(x) ) }
x is reachable from a if x ∈ R
for each set R containing a and “closed under” G
4/29/2013 47
![Page 48: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/48.jpg)
Algebra for complex objects
The points reachable from a in a graph G
D := 𝚷1(G) ⋃ 𝚷2(G) : the nodes in G
P := 2D : the powerset of D
Θ an algebraic query (in classical relational algebra) equivalent to:
R(a) ⋀ ∀x,y ( R(x) ⋀ G(x,y) ⇒R(y) )
Q := σθ(P) : the subsets of D satisfying Θ
Q’ := 𝚷1(σ1⊃2(Q × Q)) : the non-minimal elements in Q
Q” := Q − Q’ : the minimal elements in Q (unique)
unnest(Q”) : the points reachable from a in G
4/29/2013 48
![Page 49: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/49.jpg)
Complexity
4/29/2013 49
calculus
Quantify Over Sets
Quantify Over Sets of
sets
Quantify Over Sets of sets of sets
ptime
exptime
2exptime
Calculus + order +
FP
Quantify Over
Sets + FP
Quantify Over Sets of
sets + FP
![Page 50: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/50.jpg)
Conclusion
4/29/2013 50
![Page 51: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/51.jpg)
Conclusion
Regain the 3 principles – Is this desirable?
Build a unifying theory – Is this desirable?
Develop new systems
Develop new theories
Consider richer semantics – Semantic Web: next time
4/29/2013 51
![Page 52: Beyond the Relational Model · Popular open source software such as Db4o Frameworks for languages with persistence: JPA, DataObjects.NET 4/29/2013 32 . NoSQL 4/29/2013 33 . Motivations](https://reader033.vdocument.in/reader033/viewer/2022051807/5fee811ade251b3b3465dc30/html5/thumbnails/52.jpg)
4/29/2013 52
Merci !