database design for nosql system group 18: 7140263 - lê nhựt trường 1570234 - phạm thành...
TRANSCRIPT
![Page 1: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/1.jpg)
Database Design for NoSQL System
GROUP 18:
7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí
7141161 - Nguyễn Ngọc Tuyển
7140265 - Võ Thái Tuyến
![Page 2: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/2.jpg)
Topics
Introduction Data Models Data Representation in NoAM Implementation Conclusion Q&A
2
![Page 3: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/3.jpg)
Introduction
More than 50 systems are available.3
![Page 4: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/4.jpg)
4
Introduction(cont.)
Conceptual Data Modeling
Aggregate Design
Aggregate Partitioning
High-level NoSQL Database Design
Implementation
=> To identify the various entities, relationships
=> To identify various classes of aggregate object needed in application
=> Aggregate was partitioned into smaller data elements
=> Aggregate are mapped to the NoAM intermediate data model
=> To map the intermediate data representation to the specific modeling elements of target data store
![Page 5: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/5.jpg)
5
Data Model
Introduction Data Model
Data Represen
tation
Implementation
![Page 6: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/6.jpg)
Data Model
NoSQL Database Models Application Data Model Aggregate Data Model The NoAM Abstract Data Model
6
![Page 7: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/7.jpg)
NoSQL Database Models
Key-value stores. Extensible record stores. Document stores.
7
![Page 8: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/8.jpg)
Application Data Model
Using object-based data model: entities, value objects and relationships
8
![Page 9: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/9.jpg)
9
Aggregate Data Model
Application dataset. Aggregate classes – each having a distinct name. The extent of aggregate class in a set of aggregate objects Each aggregate object has a complex value and identifier
![Page 10: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/10.jpg)
Aggregate Partition
Use a single element: small size or most its data is accessed or modified together.
Use multiple elements: large size and the operations frequently access or modify only specific portions of aggregate Two or more data elements should belong to the same
element if they are frequently accessed or modified together
Two or more data elements should belong to distinct elements if they are usually accessed or modified separately.
10
![Page 11: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/11.jpg)
Aggregate Partition(cont.)
Example:
11
![Page 12: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/12.jpg)
12
The NoAM Abstract Data Model
A NoAM database is a set of collections A collection is a set of blocks A block is non-empty set of entries Each entry is a pair <entryKey, entryValue>
![Page 13: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/13.jpg)
13
Data Representation
Introduction
Data Model
Data Representa
tion
Implemen-tation
![Page 14: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/14.jpg)
Data Representation in NoAM
14
![Page 15: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/15.jpg)
Data Representation in NoAM(cont.)
2 strategies
EAO
Entry per Aggregate Object
ETF
Entry per Top-level Field
15
![Page 16: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/16.jpg)
Data Representation in NoAM(cont.)
CollectionHave more blocks
BlockHas single entry
Entry keyEmpty
Entry valuewhole complex
value
EAO
16
![Page 17: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/17.jpg)
Data Representation in NoAM(cont.)
CollectionHave more blocks
BlockHave multiple
entries
Entry keyAttribute name
Entry valueAttribute value
ETF
17
![Page 18: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/18.jpg)
Data Representation-Example
mary
𝜀username: “mary”firstName: “Momo”lastName: “Wilson”Games { (game: Game:2345 , opponent : Player: rick) , (game: Game: 2611 , opponent: Player: ann)}
Player
Collection Name
Block key Entry key(ek)
entry
Entry value (ev) EAO :
18
![Page 19: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/19.jpg)
Data Representation-Example
ETF
mary
username
firstName
lastName
Games
“mary”
“Momo”
“Wilson”
{(game: Game:2345 , opponent : Player: rick) , (game: Game: 2611 , opponent: Player: ann)}
19
Player
![Page 20: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/20.jpg)
20
Implementation
Introduction
Data Model
Data Represen
tation
Implementation
![Page 21: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/21.jpg)
Implement NoAM in NoSQL System
Key-Value Store
Extensible Record Store
Document Store
21
![Page 22: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/22.jpg)
22
Key-value store: Oracle NoSQL• ETF:
username
firstName
“mary”
“Momo”
Player
Key ( major key - minor key ):Collection / block key - entry key
Value:Entry value
Player/mary/-/username mary
Player/mary/-/firstName Momo
Collection Name
mary
Block key Entry key(ek)
entry
Entry value (ev)
![Page 23: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/23.jpg)
23
Key-value store: Oracle NoSQLEAO :
mary
𝜀username: “mary”firstName: “Momo”……..
Player
Key ( major key - minor key ):Collection / block key-entry key
Value:Entry value
Question1 ?
![Page 24: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/24.jpg)
24
Extensible Record Store:DynamoDB
username
firstName
“mary”
“Momo”
Player
Table Collection Name : Player
mary
Primary Key Block key
Value Attributes Entries Value
username mary firstName Momo
![Page 25: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/25.jpg)
25
Document Store : MongoDB
id documentmary {
_id : “mary” username: “mary” firstName: “Momo” games [ …..] }
Player
mary
username
firstName
“mary”
“Momo”
Games{(game: Game:2345 , opponent : Player: rick) , (game: Game: 2611 , opponent: Player: ann)}
![Page 26: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/26.jpg)
Conclusion
26
Application Object
How to change
![Page 27: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/27.jpg)
Conclusion
27
Application Object
NoAM
![Page 28: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/28.jpg)
Question
Question 2: The implementation of a NoAM database in DynamoDB, what id is used as a DynamoDB primary key in the table?
A. Entry key
B. Block key
C. Collection name
D. Entry value
E. None of above is correct
28
![Page 29: Database Design for NoSQL System GROUP 18: 7140263 - Lê Nhựt Trường 1570234 - Phạm Thành Trí 7141161 - Nguyễn Ngọc Tuyển 7140265 - Võ Thái Tuyến](https://reader036.vdocuments.site/reader036/viewer/2022070413/5697bff41a28abf838cbcc00/html5/thumbnails/29.jpg)
29
THANK YOU !