Lab 09 Data Model Web Dev DataLab, CS, NTHU 2019 Spring
Lab 09 Data Model
Web DevDataLab, CS,
NTHU
2019 Spring
Data model
• Definition : A data model is a framework for describing the structure of databases.
Hierarchical data model Network data model Relational data model
Outline
• Hierarchical data model• Relational data model• ER model
Outline
• Hierarchical data model• Relational data model• ER model
c-Id c-name
Course
Hierarchical data model
t-Id t-name
Teacher
s-Id s-name
Student
• Tree structure• Suit for 1-many relation
105062570105062570
Example
CS241 SS
Course
xxx Brandon
Teacher
105062570 紫魚
Student
More complex?
d-Id d-name
Department
Course
c-Id c-name s-Id s-name
Student
s-Id s-name
Student
t-Id t-name
Teacher
c-Id c-name
Course
CS241 SS
105062570 紫魚
CS241 SSCS241 SS
105062570 紫魚10506257
0 紫魚
62 CS
CS241 SS
Course
105062570 紫魚
Student
05062570 紫魚
Student
xxx Brandon
Teacher
CS241 SS
Course
Department
10506257
1 0 紫魚105062570 紫魚0506257
紫魚
105062571 0
0
紫魚105062570 紫魚0506257
紫魚
105062571 0
0
紫魚105062570 紫魚05062571 10506257
0
紫魚
紫魚10506257 紫魚10506257
0 紫魚
Some constraint
• Not suitable for many-many relation• Cause data redundant
CS241 SS
105062570 紫魚
CS241 SSCS241 SS
105062570 紫魚10506257
0 紫魚
62 CS
CS241 SS
Course
105062570 紫魚
Student
0506257紫魚
Student
xxx Brandon
Teacher
CS241 SS
Course
Department
Redundant data
105062571 0
0
紫魚105062570 紫魚0506257
紫魚
105062571 0
0
紫魚105062570 紫魚0506257
紫魚
105062571 0
0
紫魚105062570 紫魚05062571 10506257
0
紫魚
紫魚10506257 紫魚10506257
0 紫魚
CS241 SS
105062570 紫魚
CS241 SSCS241 SS
105062570 紫魚10506257
0 紫魚
62 CS
CS241 SS
Course
105062570 紫魚
Student
0506257紫魚
Student
xxx Brandon
Teacher
CS241 SS
Course
Department
Redundant data If we want modify Course Info
105062571 0
0
紫魚105062570 紫魚0506257
紫魚
105062571 0
0
紫魚105062570 紫魚0506257
紫魚
105062571 0
0
紫魚105062570 紫魚05062571 10506257
0
紫魚
紫魚10506257 紫魚10506257
0 紫魚
CS241 SS
105062570 紫魚
CS241 SSCS241 SS
105062570 紫魚10506257
0 紫魚
62 CS
CS241 SS
Course
105062570 紫魚
Student
0506257紫魚
Student
xxx Brandon
Teacher
CS241 SS
Course
Department
Redundant data If we want modify Course Info
105062571 0
0
紫魚105062570 紫魚0506257
紫魚
105062571 0
0
紫魚105062570 紫魚05062571 10506257
0
紫魚
紫魚10506257 紫魚10506257
0 紫魚
Some constraint
• Not suitable for many-many relation• Cause data redundant
• SELECT cost• Must through parent to child
CS241 SS
105062570 紫魚
CS241 SSCS241 SS
105062570 紫魚10506257
0 紫魚
62 CS
CS241 SS
Course
105062570 紫魚
Student
0506257紫魚
Student
xxx Brandon
Teacher
CS241 SS
Course
Department
If we want SELECT
105062571 0
0
紫魚105062570 紫魚0506257
紫魚
105062571 0
0
紫魚105062570 紫魚05062571 10506257
0
紫魚
紫魚10506257 紫魚10506257
0 紫魚
CS241 SS
105062570 紫魚
CS241 SSCS241 SS
105062570 紫魚10506257
0 紫魚
62 CS
CS241 SS
Course
105062570 紫魚
Student
0506257紫魚
Student
xxx Brandon
Teacher
CS241 SS
Course
Department
105062571 0
0
紫魚105062570 紫魚0506257
紫魚
105062571 0
0
紫魚105062570 紫魚05062571 10506257
0
紫魚
紫魚10506257 紫魚10506257
0 紫魚
CS241 SS
105062570 紫魚
CS241 SSCS241 SS
105062570 紫魚10506257
0 紫魚
62 CS
CS241 SS
Course
105062570 紫魚
Student
0506257紫魚
Student
xxx Brandon
Teacher
CS241 SS
Course
Department
105062571 0
0
紫魚105062570 紫魚05062571 10506257
0
紫魚
紫魚10506257 紫魚10506257
0 紫魚
CS241 SS
105062570 紫魚
CS241 SSCS241 SS
105062570 紫魚10506257
0 紫魚
62 CS
CS241 SS
Course
105062570 紫魚
Student
0506257紫魚
Student
xxx Brandon
Teacher
CS241 SS
Course
Department
105062571 0
0
紫魚105062570 紫魚05062571 10506257
0
紫魚
紫魚10506257 紫魚10 506257
0 紫魚
CS241 SS
105062570 紫魚
CS241 SSCS241 SS
105062570 紫魚10506257
0 紫魚
62 CS
CS241 SS
Course
105062570 紫魚
Student
0506257
Student
xxx Brandon
Teacher
CS241 SS
Course
1 10506257
0
紫魚
紫魚10506257 紫魚10506257
0 紫魚
Department
CS241 SS
105062570 紫魚
CS241 SSCS241 SS
10506257 紫魚10506257 紫魚
62 CS
CS241 SS
Course
105062570 紫魚
Student
105062570 紫魚
Student
xxx Brandon
Teacher
CS241 SS
Course
Department
GET!
Outline
• Hierarchical data model• Relational data model• ER model• Today’s mission
Relational data model
c-id c-name d-name s-Id s-name
CS 241 SS CS 105062570 紫魚
CS 241 SS CS 105062558 朕鮪
CS 321 Computer Networks CS 105062570 紫魚
CS 321 Computer Networks CS 105062521 計網概助教
• Table structure
Relational data model
c-id c-name d-name s-Id s-name
CS 241 SS CS 105062570 紫魚
CS 241 SS CS 105062558 朕鮪
CS 321 Computer Networks CS 105062570 紫魚
CS 321 Computer Networks CS 105062521 計網概助教
• Table structure
Record
Field
Outline
• Hierarchical data model• Relational data model• ER model• Today’s mission
ER model
• Allows thinking how to structure your data in a proper way.• Entity
• A record• With fields
• Entity group• A table• Define unique ID field for each entity
• Relationship between entities• 1-1, 1-many, many-many
Departments
d-idd-name
Students
s-ids-namemajor-id
Courses
c-id title dept-id
1
*
1
*
* *
How?
Departments
d-idd-name
Students
s-ids-namemajor-id
Courses
c-id title dept-id
Enroll
student-id course-id grade
1 1
1
*
1
*
* *
Departments
d-idd-name
Students
s-ids-namemajor-id
Courses
c-id title dept-id
Enroll
student-id course-id grade
1 1
1
*
1
*
• Table• Realization of entity group / relational ship
* *
Departments
d-idd-name
Students
s-ids-namemajor-id
Courses
c-id title dept-id
Enroll
student-id course-id grade
1 1
1
*
1
*
• Primary key• Unique ID field for each table
* *
Departments
d-idd-name
Students
s-ids-namemajor-id
Courses
c-id title dept-id
Enroll
student-id course-id grade
1 1
1
*
1
*
* *
• Foreign key• Implement the relationship• Point to the primary key of other record• Only 1-1 1-many