Download - Chapter 7
1
Chapter 7
Analysis: Component Data Model & Database Model
Aj. Khuanlux Mitsophonsiri CS.324 & CS.313 System Analysis and Design
2
ส่�วนประกอบของแบบจำ��ลองข�อมู�ล Data Model1. ส่�วนโครงส่ร��ง (Structural) ประกอบด้วยกลุ่ �มสั�ญลุ่�กษณ์�รวมทั้��ง
กฎระเบ�ยบทั้��เห็�นพ้องต้องก�น เพ้"�อใช้ในการสัรางฐานข้อม(ลุ่ เช้�นการจั�ด้เก�บข้อม(ลุ่ในร(ปแบบข้องต้าราง (Table)
(Column – Row)2. ส่�วนปร�บปร�ง (Manipulative) เป+นสั�วนทั้��ก,าห็นด้ช้น-ด้ข้องการปฏิ-บ�ต้-
การต้�างๆทั้��เก��ยวก�บข้อม(ลุ่ ประกอบด้วยการ Update , การเร�ยกด้(ข้อม(ลุ่จัากฐานข้อม(ลุ่ , การเปลุ่��ยนแปลุ่งโครงสัรางฐานข้อม(ลุ่ น-ยมใช้ SQL ในการจั�ด้การข้อม(ลุ่
3. ส่�วนกฎคว�มูคงส่ภ�พ (a set of integrity rules) เป+นกฎเกณ์ฑ์�ทั้��ใช้ในการควบค มความถู(กต้องข้องข้อม(ลุ่ เพ้"�อให็เก-ด้ความม��นใจัในความถู(กต้องก�อนการบ�นทั้4กข้อม(ลุ่
3
ค�ณส่มูบ�ติ�ของแบบจำ��ลองข�อมู�ลที่!"ดี!1. ง��ยติ�อคว�มูเข��ใจำ - ใช้กฎเกณ์ฑ์�ทั้��วไป โด้ยม�ข้อม(ลุ่ Attribute อธิ-บายในรายลุ่ะเอ�ยด้ข้องแต้�ลุ่ะ Entity2. มู!ส่�ระส่��ค�ญและไมู�ซ้ำ�*�ซ้ำ�อน - Attribute ในแต้�ลุ่ะ Entity ไม�ควรม�ข้อม(ลุ่ซ้ำ,�าซ้ำอนโด้ยบาง Attribute อาจัจัะเป+น Foreign Key เพ้"�อใช้ในการอางอ-งข้อม(ลุ่ในอ�ก Entity ห็น4�ง3. มู!คว�มูย+ดีหย��นและง��ยติ�อก�รปร�บปร�งในอน�คติ - ไม�ข้4�นก�บ Application Program , การเปลุ่��ยนแปลุ่งโครงสัรางไม�กระทั้บ ก�บโปรแกรม
4
1. แบบจั,าลุ่องฐานข้อม(ลุ่แบบลุ่,าด้�บช้��น (Hierarchical database Model) 2. แบบจั,าลุ่องฐานข้อม(ลุ่แบบเคร"อข้�าย (Network database Model) 3. แบบจั,าลุ่องฐานข้อม(ลุ่เช้-งสั�มพ้�นธิ� (Relational
database Model) 4. แบบจั,าลุ่องฐานข้อม(ลุ่เช้-งว�ต้ถู (Object- Oriented database Model)
แบบจำ��ลองฐ�นข�อมู�ล (Database Model)
5
- เป+นการจั�ด้โครงสัรางแบบบนลุ่งลุ่�าง -(Top down) - ม�ลุ่�กษณ์ะคลุ่ายโครงสัรางต้นไม (Tree Structure) เป+นลุ่,าด้�บ
ช้��น - ข้อม(ลุ่จัะม�ความสั�มพ้�นธิ�แบบ - - one to many ระด้�บสั(งสั ด้เร�ยกว�า
Root - ม�ความสั�มพ้�นธิ�แบบ Parent / Child (พ้�อ/ลุ่(ก) - เป+นสัถูาป9ต้ยกรรมฐานข้อม(ลุ่ทั้��เก�าแก�ทั้��สั ด้ ป9จัจั บ�นไม�น-ยมใช้งาน
แลุ่ว - ยากต้�อการพ้�ฒนา Application, - การปร�บปร งโครงสัรางม�ความย"ด้ห็ย �นนอย - ไม�สัามารถูก,าห็นด้ความสั�มพ้�นธิ�แบบ man - -y to many
1. แบบจำ��ลองฐ�นข�อมู�ลแบบล��ดี�บชั้�*น (Hierarchicald atabase model)
6
Hierarch ical Data Mode l
A 11 A 12
A 1
A 21 A 22
A 2
A
B 11 B 12
B 1
B 21 B 22
B 2
B
C 11 C 12
C 1
C 21 C 22
C 2
C
R o ot
7
Hierarchical Database
Customers
Orders
Item Description Quantity998 Dog Food 12764 Cat Food 11
Items
Customer
Order
Items Ordered
To retrieve data, you must start at the top (customer).
8
ข�อดี! 1. ม�โครงสัรางทั้��เข้าใจัง�าย - Tree Structure
2. โครงสัรางข้องฐานข้อม(ลุ่ซ้ำ�บซ้ำอนนอยทั้��สั ด้ เห็มาะก�บข้อม(ลุ่ทั้��ม�ความสั�มพ้�นธิ�
แบบ - -one to many 3. ม�การป;องก�นความปลุ่อด้ภั�ยข้องข้อม(ลุ่ทั้��ด้� เพ้ราะต้องอ�านข้อม(ลุ่ทั้��เป+น
ต้นก,าเน-ด้ก�อน 4. เห็มาะก�บข้อม(ลุ่ทั้��ม�การเร�ยงลุ่,าด้�บแบบต้�อเน"�อง
Hierarchical d atabase model
9
ข�อเส่!ย 1. ไม�สัามารถูรองร�บข้อม(ลุ่ทั้��ม�ความสั�มพ้�นธิ�แบบ
- - many to many ได้ 2 . ม�ความย"ด้ห็ย �นนอย แลุ่ะย �งยากในการปร�บ
เปลุ่��ยนโครงสัราง Tree 3 . การเร�ยกใช้ข้อม(ลุ่ต้องผ่�านจัาก Root เสัมอ
การคนห็าข้อม(ลุ่ในระด้�บลุ่�าง ต้องคนห็าทั้��งแฟ้;มข้อม(ลุ่
4 . การพ้�ฒนาโปรแกรมค�อนข้างยาก ต้องทั้ราบถู4งโครงสัรางใน การจั�ด้เก�บข้อม(ลุ่
Hierarchical d atabase model
10
ม�ลุ่�กษณ์ะโครงสัรางทั้��คลุ่ายก�บโครงสัรางแบบลุ่,าด้�บช้��น แต้�แต้กต้�างก�นทั้��ข้อม(ลุ่ม�ความสั�มพ้�นธิ�ได้ทั้��งแบบ - - - - one to one , one to manyแลุ่ะ - -many to many อ�กทั้��งย�งสัามารถูน,าเอาอ�ลุ่กอร-ทั้4มข้องการ Hashing มาใช้ในการคนห็าข้อม(ลุ่
2 . แบบจำ��ลองข�อมู�ลเคร+อข��ย (Network Database Model)
13
ข�อดี! 1. สัน�บสัน นความสั�มพ้�นธิ�แบบ - -many to many
2. ความซ้ำ�บซ้ำอนในข้อม(ลุ่เก-ด้ข้4�นนอยกว�าแบบลุ่,าด้�บช้��น 3. สัามารถูเช้"�อมโยงข้อม(ลุ่แบบไปกลุ่�บได้ 4. ม�ความย"ด้ห็ย �นในการคนห็าข้อม(ลุ่ด้�กว�า โด้ยใช้ Pointer ใน
การเข้าถู4งข้อม(ลุ่ข�อเส่!ย1. เน"�องจัากสัามารถูเข้าถู4งข้อม(ลุ่ได้โด้ยต้รง ทั้,าให็การป;องก�น
ความปลุ่อด้ภั�ยข้อง ข้อม(ลุ่ม�นอยลุ่ง
2. สั-�นเปลุ่"องเน"�อทั้��ข้องห็น�วยความจั,าในการเก�บ Pointer 3. การเปลุ่��ยนแปลุ่งในโครงสัรางย�งม�ความย �งยากอย(�
แบบจำ��ลองข�อมู�ลเคร+อข��ย (Network Database Model)
14
เป+นแบบทั้��คนใช้มากทั้��สั ด้ในป9จัจั บ�น เป+นผ่ลุ่งานข้อง E.F.Codd (ค.ศ . 1970) น,าเสันอข้อม(ลุ่ในร(ปแบบต้าราง
ทั้,าให็สัามารถูเข้าใจัได้ง�าย ประกอบด้วย Row แลุ่ะ Colum n สัามารถูแสัด้งความสั�มพ้�นธิ�ได้ทั้��งแบบ - - one to one ,
- - one to many แลุ่ะ - - many to many แลุ่ะใช้ Key ในการอางอ-งก�บต้ารางอ"�น (Primary key , Secondary
Key) สัามารถูใช้ค,าสั��ง SQLในการจั�ด้การก�บฐานข้อม(ลุ่ช้น-ด้น��
3 . แบบจำ��ลองข�อมู�ลเชั้�งส่�มูพ�นธ์1 (Relation Database Model)
15
E-ID
NAME
ADDRESS
PHONE
001
Somchai
Bangkok
02-2322212
002
Sompon
Chonburi
085-3342518
003
Somsri
Ranong 084-1456321
004
Somjai
Nonthaburi
02-2322212
EmployeeR
ela
tion
Degree
Card
inalit
y
Attribute
TAX-ID
Salary
E-ID
Tax - Type
0012345
10,000
004 1
1234566
8,900
002 2
PayrollPrimary Key Foreign Key
แบบจำ��ลองข�อมู�ลเชั้�งส่�มูพ�นธ์1 (Relation Database Model)
16
Relational Database
Customer(CustomerID, Name, …
Order(OrderID, CustomerID, OrderDate, …
ItemsOrdered(OrderID, ItemID, Quantity, …
Items(ItemID, Description, Price, …
17
CustomerID Name LastName Address City1 สัมช้าย แซ้ำ�ต้��ง 333 ถู.วรจั�กร กร งเทั้พ้ฯ.2 อด้-สัรณ์� สัมใ จัน4ก 10 ซ้ำ. ลุ่าด้พ้ราว 108 กร งเทั้พ้ฯ.3 อ,านาจั ช้วนฝั9น 88/8 ถู. พ้ระ ราม 3 กร งเทั้พ้ฯ.4 อมรศร� ทั้ร�พ้ย�ม� 33 ถู.รามค,าแห็ง กร งเทั้พ้ฯ.5 อพ้-นยา งามช้ด้ช้อย 200/25 ถู.ว-ช้ายนนทั้� เช้�ยงใ ห็ม�6 ช้มพ้�ด้ ด้(ช้าต้-ช้าย 51/63 ถู.ประ ช้าราช้ นนทั้บ ร�7 ช้วนจั-ต้ น�าพ้-ศม�ย 34/88 ถู.สั เทั้พ้ เช้�ยงใ ห็ม�8 ด้อกไ ม พ้-นงามแทั้ 6/99 ถู.รามอ-นทั้รา กร งเทั้พ้ฯ.
RelationCustomer
18
OrderID CustomerID OrderDate1 2 31/1/19552 3 3/2/19553 1 28/2/19554 5 19/3/19555 4 21/3/19556 6 29/3/19557 6 1/4/19558 7 10/4/19559 8 30/12/1955
OrderId ItemID Quantity1 1 101 3 252 4 52 7 33 8 24 1 64 3 75 1 35 2 36 8 56 9 37 6 27 8 208 4 109 1 1
RelationOrder
RelationItems Ordered
19
ItemID Description Price1 ปากกาลุ่(กลุ่"�น 152 ปากกาห็ม4กซ้ำ4ม 1203 ด้-นสัอ 2 B 54 ด้-นสัอ 1.5 B 45 ยางลุ่บปากกา 156 ยางลุ่บด้-นสัอ 57 กระ ด้าษวาด้เข้�ยน 58 กระ ด้าษถู�ายเอกสัาร 29 กบเห็ลุ่าด้-นสัอ 3
RelationItems
20
Common Order SystemCustomer
Order
Salesperson
Item
OrderItem
1
m
1
m1
m1
m
Customer(CustomerID, Name, Address, City, Phone)
Salesperson(EmployeeID, Name, Commission, DateHired)
Order(OrderID, OrderDate, CustomerID, EmployeeID)
OrderItem(OrderID, ItemID, Quantity)
Item(ItemID, Description, ListPrice)
21
ข�อดี! 1. สัามารถูสั"�อสัารแลุ่ะเข้าใจัได้ง�าย
2. สัามารถูเลุ่"อกแสัด้งข้อม(ลุ่ต้ามเง"�อนไข้ได้ห็ลุ่าย Key Field 3. ความซ้ำ�บซ้ำอนข้องข้อม(ลุ่ม�นอยมาก 4. ม�ระบบร�กษาความปลุ่อด้ภั�ยทั้��ด้�ผ่(ใช้งานไม�ต้องทั้ราบโครงสัรางข้องการเก�บข้อม(ลุ่ภัายในฐานข้อม(ลุ่ 5. โครงสัรางข้องฐานข้อม(ลุ่ม�ความอ-สัระจัากโปรแกรม
ข�อเส่!ย 1. ต้องม�การลุ่งทั้ นสั(งเน"�องจัากต้องใช้ Hardware แลุ่ะ Software
ทั้��ม�ความสัามารถูสั(ง
แบบจำ��ลองข�อมู�ลเชั้�งส่�มูพ�นธ์1 (Relation Database Model)
22
ส่�วนประกอบของโครงส่ร��งฐ�นข�อมู�ลเชั้�งส่�มูพ�นธ์1 (Relation Database Structure)Relation - ต้าราง 2 ม-ต้- ประกอบด้วย Row แลุ่ะ ColumnAttribute - ค ณ์สัมบ�ต้-ห็ร"อรายลุ่ะเอ�ยด้ข้อง Relation
Domain - เป+นการก,าห็นด้ข้อบเข้ต้ ค�าข้อม(ลุ่ แลุ่ะช้น-ด้ข้องข้อม(ลุ่ เช้�น Salary - ม�ค�าไม�เก-น 7 digits , เพ้ศ - 1 = ช้าย / 2 = ห็ญ-งTuple - ค"อแถูวแต้�ลุ่ะแถูวใน RelationDegree - ค"อจั,านวน Attribute ทั้��บรรจั อย(�ใน Relation
Cardinality - ค"อจั,านวน Tuple ห็น4�งทั้��บรรจั อย(�ใน Relation ห็น4�งทั้��ไปม�ความสั�มพ้�นธิ�ใน Tuple ข้องอ�ก Relation ห็น4�ง
23
1. Relation ต้องม�ช้"�อก,าก�บ แลุ่ะช้"�อซ้ำ,�าก�นไม�ได้ 2. แต้�ลุ่ะ AAAAAAAAA ข้อง AAAAAAAA จัะบรรจั ค�าเพ้�ยงค�าเด้�ยว ( )
3. ช้"�อข้องแต้�ลุ่ะ Attribute ในแต้�ลุ่ะ AAAAAAAA จัะต้องไม�ซ้ำ,�าก�น 4. ค�าข้องข้อม(ลุ่ใน Attribute ต้องเป+นไปต้ามข้อก,าห็นด้ข้อง AAAAAA
ใน Attribute น��นๆ 5. การเร�ยงลุ่,าด้�บในแต้�ลุ่ะ Attribute ไม�ม�ความสั,าค�ญใด้ๆ 6. แต้�ลุ่ะ AAAAA ต้องไม�ม�ข้อม(ลุ่ทั้��ซ้ำ,�าก�น 7. การเร�ยงลุ่,าด้�บข้องแต้�ลุ่ะ Tuple ไม�ม�ความสั,าค�ญใด้ๆ
ค�ณส่มูบ�ติ�ของ Relation (Properties of Relations)
24
ค"อการก,าห็นด้ Column ห็ร"อกลุ่ �มข้อง Column เพ้"�อใช้ในการระบ แถูว
ต้�างๆ โด้ยทั้,าให็แต้�ลุ่ะแถูวม�ความแต้กต้�างก�น ต้�วอย�างข้อง Keyม�ด้�งน��
1. Super Key ค"อ Attribute ห็ร"อกลุ่ �มข้อง Attribute ทั้��บ�งบอกถู4งความเป+นเอกลุ่�กษณ์�ข้องแต้�ลุ่ะ Tuple ใน
Relation น��น 2. Candidate Key ค"อ Key ค(�แข้�ง 3. Primary Key ค"อ Key ค(�แข้�งทั้��ผ่�านการค�ด้เลุ่"อกเพ้"�อให็เป+น Primary Key แลุ่ะใช้ในการอางอ-งรวมทั้��งแสัด้งความเป+นเอกลุ่�กษณ์�ข้อง Relation น��น
Keys
25
4. Secondary Key ห็ร"อ Alternate Key เป+น Key สั,ารอง ค"อ Key ค(�แข้�งทั้��ไม�ได้ถู(กเลุ่"อกเป+น Key ห็ลุ่�ก (Primary Key) 5. ( )Foreign Key FK ค"อ Key นอก ประกอบด้วย Attributeห็ร"อกลุ่ �มข้อง Attribute ใน Relation ทั้��ม�ค ณ์สัมบ�ต้-เป+น
Key ห็ลุ่�ก แลุ่ะไปปรากฏิในอ�ก Relation ห็น4�ง Keyนอก จั�ด้เป+น Key ทั้��ม�ความสั,าค�ญเพ้ราะเป+นต้�วเช้"�อม
ความสั�มพ้�นธิ�ใน Relation 6. Composite Key เป+น Key ค(�แข้�งทั้��ประกอบด้วยกลุ่ �มข้อง
Attribute ซ้ำ4�งอาจัเร�ยกเป+น Concatenated Key ห็ร"อ Compound Key
26
- เก-ด้จัากแนวค-ด้ข้องการเข้�ยนโปรแกรมเช้-งว�ต้ถู (OOP Object Oriented Program) โด้ยการมองข้อง
ทั้ กสั-�งเป+นว�ต้ถู โด้ยแต้�ลุ่ะว�ต้ถู จัะเป+นแห็ลุ่�งรวมข้องข้อม(ลุ่แลุ่ะการปฏิ-บ�ต้-งาน (Data & Procedure)- ม�คลุ่าสัเป+นต้�วก,าห็นด้ค ณ์สัมบ�ต้-ห็ร"อรายลุ่ะเอ�ยด้ข้องว�ต้ถู รวม
ทั้��งค ณ์สัมบ�ต้- การปกปCด้ความลุ่�บข้องว�ต้ถู (Encapsulation)- การเข้าถู4งข้อม(ลุ่ต้องม�การต้อบร�บจัาก Method ในว�ต้ถู น��นว�า
จัะอน ญาต้ ในการสั�งMessage เพ้"�อการต้-ด้ต้�อห็ร"อไม�
4 . แบบจำ��ลองฐ�นข�อมู�ลเชั้�งว�ติถุ� (Object Oriented Database Model)
27
Object Class 1
Methods
AttributesObject Class 2 Object Class 3
AttributesAttributesMethods Methods
แบบจำ��ลองฐ�นข�อมู�ลเชั้�งว�ติถุ� (Object Oriented Database Model)
28
Object-Oriented DBMS
CustomerCustomerIDName… Add CustomerDrop CustomerChange Address
OrderOrderIDCustomerID… NewOrderDeleteOrder…
OrderItemOrderIDItemID… OrderItemDropOrderItem…
ItemItemIDDescription… New ItemSell ItemBuy Item …
GovernmentCustomer
ContactNameContactPhoneDiscount, …
NewContact
CommercialCustomer
ContactNameContactPhone…
NewContact
29
ข�อดี! 1. สัามารถูจั�ด้การก�บข้อม(ลุ่ทั้��ม�ความซ้ำ�บซ้ำอนได้เป+นอย�างด้�
(Graphic , VDO , Voice) 2 . สัน�บสัน นค ณ์สัมบ�ต้-ข้องการน,ากลุ่�บมาใช้ให็ม� (Reuseable)
ข�อเส่!ย1. ต้องอาศ�ยบ คลุ่ากรทั้��ม�ความร( แลุ่ะประสับการณ์�มากในการ
จั�ด้การก�บ ฐานข้อม(ลุ่ช้น-ด้น��
แบบจำ��ลองฐ�นข�อมู�ลเชั้�งว�ติถุ� (Object Oriented Database Model)