บทที่ 3 แบบจําลอง entity-relationship (e-r diagram) ·...
TRANSCRIPT
บทที่ 3แบบจําลอง Entity-Relationship
(E-R DIAGRAM)บรรยายโดย
อ.ณัฐภัทร แกวรัตนภัทร
บุคคลสําคัญทางดานระบบฐานขอมูล
Edgar F. Codd หรือ EF. Coddมีชีวิตในชวง ค.ศ. 1923-2003 (เสียชีวิตแลว)เปนผูที่คิดคนรูปแบบฐานขอมูลเชิงสัมพันธ
(Relational Database Model) ในป 1970 ซึ่งทั่วโลกยังใชรูปแบบฐานขอมูลเชิงสัมพันธมาจวบจน
ปจจุบัน ทําใหเกิดความกาวหนาในการออกแบบฐานขอมูลเพื่อจัดการขอมูล
Peter Pin-Shan Chenเปนผูคิดคนแบบจําลอง
Entity-Relationship Model หรือ E-R Model ในป ค.ศ 1976
ซึ่งเปนวิธีการออกแบบฐานขอมูล เพื่อลดความซํ้าซอนและความขัดแยงของขอมูลที่มี
จํานวนมาก
คลิกที่นี่เพื่ออานประวัติการตอสูของ Edgar F. Codd
Donald D. Chamberlin และ Raymond F. Boyce
เปนผูริเริ่มภาษา SQL (แตแรกเริ่มเรียกวา SEQUEL (Structured English Query
Language) นอกจากนี้ Boyce และ EF Codd รวมกันออกแบบการทําบรรทัดฐานในรูปแบบ
Boyce-Codd Normal Form: BCNF (1974)
Donald D. Chamberlin Raymond F. Boyce
Entity-Relationship Diagramสถาปตยกรรมฐานขอมูลแบบแอนซี่สปารค
Entity-Relationship Diagram
คลิกขอมูลเพิ่มเติมเกี่ยวกับ ANSI-SPARC
Entity-Relationship Diagramในการที่จะมั่นใจวาฐานขอมูลที่ออกแบบมานั้นตรงกับความตองการใชงานของผูใช จึงตองมีการใชแบบจําลองในการสื่อสาร เพื่อลดปญหาความกํากวมและความไมเขาใจในดานวิธีการที่ใช
แบบจําลอง Entity-Relationship (E-R DIAGRAM หรือ E-R MODEL) จึงเปนตัวอยางของแบบจําลองที่นํามาใชในการแกปญหาเหลานี้
แบบจําลอง Entity-Relationship เปนวิธีการที่ใชในการออกแบบฐานขอมูล แบบบนลงลาง (top-down approach) ซึ่งเริ่มตนดวย
1. การกําหนดขอมูลที่เรียกวา เอนทิตี (Entity)2. กําหนดคุณลักษณะของเอนทิตี้ ซึ่งเรียกวา แอตทริบิวท (Attribute) ใหแก Entity3. ความสัมพันธ (Relationship) ระหวาง Entities ที่แสดงในแบบจําลอง
แนวคิดของแบบจําลอง Entity-Relationship แบบจําลอง Entity-Relationship หรือแบบจําลอง E-R เปนวิธีการออกแบบฐานขอมูล โดยใชแบบจําลองขอมูลเชิงแนวความคิด (conceptual data model) ที่พัฒนาโดย นายปเตอร เชน (Peter Chen) ในป ค.ศ 1976 เพื่อใชชวยในการออกแบบฐานขอมูล โดยแบบจําลองขอมูลเชิงแนวความคิด เปนรูปแบบของแนวคิดที่ใช ในการอธิบายถึงโครงสรางของฐานขอมูล หรือ การปรับปรุงและการเรียกคนรายการบนฐานขอมูล
ซึ่งวัตถุประสงคหลักของการพัฒนาในสวนของแบบจําลองขอมูลเชิงแนวความคิด คือ การชวยแสดงขอมูลในสวนของทรรศนะของผูใชงานและซอนรายละเอียดของเทคนิคการออกแบบฐานขอมูล โดยที่ผูใชงานไมทราบรายละเอียดในสวนการออกแบบฐานขอมูลเลย
คลิกเพื่ออานประวัติของผูคิดคน E-R Model
หัวขอที่สําคัญในแบบจําลอง Entity-Relationship 1. แบบเอนทิตี (entity type) คือ กลุมของวัตถุที่มีคุณสมบัติเหมือนกัน
1.1. แบบเอนทิตีแบบแข็งแรง (strong entity type) 1.2. แบบเอนทิตีแบบออนแอ (weak entity type)
2. ขอมูลของเอนทิตี (entity occurrence) คือ คาของวัตถุ ที่แตละคาของวัตถุมีความแตกตางกันในแบบเอนทิตี3. ลักษณะประจํา (attribute) คือ สิ่งที่ใชในการอธิบายถึงคุณสมบัติของเอนทิตี
3.1. ขอบเขตของลักษณะประจํา (domain) คือ คาที่เปนไปไดของแตละ attribute3.2. ประเภทของลักษณะประจํา (types of attribute)
4. แบบความสัมพันธ (relationship type) คือ ความสัมพันธระหวางเอนทิตี เชน one to one one to many หรือ many to many
5. ขอบังคับดานโครงสราง 5.1. อัตราคารดินัลลิตี้ (cardinality ratio) 5.2. ขอบังคับของการมีสวนรวม (participation constraints)
1. แบบเอนทิตี (entity type) คือ กลุมของวัตถุที่มีคุณสมบัติเหมือนกัน
อาจารย,วุฒิการศึกษาปริญญาโทขึ้นไป,หนาที่ สอน วิจัย บริการวิชาการ, ไดรับเงินเดือน
สายสนับสนุน,วุฒิการศึกษาปริญญาตรีขึ้นไป, หนาที่ สนับสนุนการสอน วิจัย, ไดรับเงินเดือน
นศ ชั้นปที่ 1 คณะมนุษยศาสตร สาขาสารสนเทศศาสตร
นศ ชั้นปที่ 3 คณะมนุษยศาสตร สาขาภาษาอังกฤษ
นศ ชั้นปที่ 1 คณะมนุษยศาสตร สาขาภาษาไทย
วิชาสถิติทางสังคมศาสตร, 2556
วิชาภาษาอังกฤษ, 2557
วิชาภาษาไทย, 2530
Entity Type: UniversityOfficer Entity Type: UniversityStudent Entity Type: Subjects
1. แบบเอนทิตี (entity type) คือ กลุมของวัตถุที่มีคุณสมบัติเหมือนกัน
Entity Type: Animal Entity Type: Human
Attribute: AnimalType = Poultry
Attribute: AnimalType = WaterAnimal
Attribute: AnimalType = LandAnimal
Attribute: Gender = Male
Attribute: Gender = Female
1. แบบเอนทิตี (entity type) คือ กลุมของวัตถุที่มีคุณสมบัติเหมือนกัน
Entity Type: teacher Entity Type: studentName: John K., Age: 45, Edu: Ph.D., Expert: Web Programming, Position: teacher and researcher, Dep: Science
Name: Mary Lee., Age: 30, Edu: M.A., Expert: Japanese Language ,Position: teacher, Dep: Humanities, Salary: 35K, Gender: Female
Name:Kavin Biber., Age: 18, Edu: M.6 ., Dep: Social Science, Grade: 3.4 , Year: 3 , Major: Information Management, Gender: Male
จากภาพใครควรจัดอยูใน Entity Type ใด?
1. แบบเอนทิตี Entity Type ตางกับ Entity
Entity Type: teacherเอนทิตี (Entity / Entities) คือ
- ขอมูลของแบบเอนทิตี- ที่มีคาไมซํ้า (Unique)- หรือเรียกวา Entity occurrence- หรือ Entity instance
Instance แปลวา ตัวแทนในระบบฐานขอมูล เราไมสามารถนําคน/วัตถุ/สัตว/สินคา ยัดลงฐานขอมูลได ดังนั้น จึงใชคําวา ตัวแทน ซึ่งหมายถึง ตัวแทนที่เปนขอมูลที่อางถึงลักษณะของ คน/วัตถุ/สัตว/สินคา นั้นๆ
1. แบบเอนทิตี (Entity Type) บุคคล พนักงาน นักศึกษา และ ตัวแทนจําหนาย
Emp_ID Emp_Name Emp_Salary Emp_Dep
411266456 JOHN LEE 4,582 USD Engineering
576565634 MARY NELON
5,512 USD Finance
576544557 OBAMA MACK
3,512 USD Management
Stu_ID Stu_Name Stu_Fac Stu_Major
5411222545 Micheal J. Humanities English
5744523366 Ammy C. Science Biology
5811666233 Mick D. Social Political
เอนทิตี ( Entity / Entities )
Entity Type Entity Type
1. แบบเอนทิตี (entity type) แบบเอนทิตี : นักศึกษา(ENTITY TYPE)
ลักษณะประจํา : รหัสนักศึกษา ชื่อ ที่อยู วันเดือนปเกิด และเพศ(ATTRIBUTE)
เอนทิตีของนักศึกษา :(ENTITY) 4152440016 นาย สมหวัง ใจจริง 12/5 บางพลัด กรุงเทพฯ 12/8/2525 ชาย 4152440017 น.ส. สมหญิง รักจริง 17/8 ลาดพราว กรุงเทพฯ 10/1/2525 หญิง
1. แบบเอนทิตี (entity type) แบบเอนทิตี : นักศึกษา(ENTITY TYPE)
ลักษณะประจํา : รหัสนักศึกษา ชื่อ ที่อยู วันเดือนปเกิด และเพศ(ATTRIBUTE)
โดยนิยมเขียนเปนรูปแบบของเซ็ตของเอนทิตี้ เพื่อสะดวกในการสื่อความกับผูบริหารฐานขอมูลทานอื่น ดังนี้ นักศึกษา (รหัสนักศึกษา, ชื่อ, ที่อยู, วันเดือนปเกิด, เพศ) teacher (t_id, t_name, t_faculty, t_major, t_gender, t_salary, t_degree) email (e_id, e_topic, e_receiver, e_sender, e_cc, e_bcc, e_content, e_attached)
1.1 แบบเอนทิตีแบบแข็งแรง (strong entity type) แบบเอนทิตีแบบแข็งแรง (strong entity type) คือ แบบเอนทิตี ที่มีคุณสมบัติความเปนอิสระ (independent existence) และสามารถกําหนดเปนวัตถุในทางกายภาพหรือกําหนดเปนวัตถุทางแนวความคิดได โดยที่คาของแบบเอนทิตีเปนอิสระ ไมขึ้นกับคาของแบบเอนทิตีอื่น ซึ่งใชสัญลักษณ สี่เหลี่ยมในการแสดงแบบเอนทิตีแบบแข็งแรง *** จะตองเปนคํานาม (Noun)
EMPLOYEE STUDENT BUY
ตั้งชื่อ Entity type ถูกตอง ตั้งชื่อ Entity type ถูกตอง ตั้งชื่อ Entity type ผิดเนื่องจากไมใชคํากริยา (Verb)
1.2 แบบเอนทิตีแบบออนแอ (weak entity type) แบบเอนทิตีแบบออนแอ (weak entity type) คือ แบบเอนทิตีที่มีคุณสมบัติแบบพึ่งพา (dependent existence) โดยคาของแบบเอนทิตีไมมีความเปนอิสระ และไมสามารถอยูไดดวยตัวแบบเอนทิตีเอง แตจะตองขึ้นกับคาของแบบเอนทิตีอื่น ***ซึ่งใชสัญลักษณสี่เหลี่ยมซอนกัน ดังภาพ
STUDENT PARENTS
นักศึกษา (Student) ไดตอบรับเขาศึกษากอนที่จะไดขอมูลผูปกครอง (Parents)
STUDENT จึงเปน STRONG ENTITY TYPE
ขอมูลผูปกครอง (Parents) ไดจากภายหลังที่ นักศึกษา (Student) ไดตอบรับเขาศึกษา ซึ่งหากไมมี
นักศึกษา ก็จะไมมีขอมูลผูปกครองPARENTS จึงเปน WEAK ENTITY TYPE
2. ขอมูลของเอนทิตี (Entity Occurrence)ขอมูลของเอนทิตี (Entity Occurrence) คือ คาของวัตถุ ที่แตละคาของวัตถุมีความแตกตางกันในแบบเอนทิตี
Entity Type: บุคคล เชน พนักงาน (Employee: Emp)
Emp_ID Emp_Name Emp_Salary Emp_Dep
411266456 JOHN LEE 4,582 USD Engineering
576565634 MARY NELON
5,512 USD Finance
576544557 OBAMA MACK
3,512 USD Management
เอนทิตี (entity)
ขอมูลของเอนทิตี (entity occurrence)
Entity Type
ลักษณะประจํา (attribute)
3. ลักษณะประจํา (attribute)ลักษณะประจํา (attribute) คือ ขอมูลที่ใชในการอธิบายถึงคุณสมบัติ หรือ คุณลักษณะของเอนทิตี
Emp_ID Emp_Name Emp_Salary Emp_Dep
411266456 JOHN LEE 4,582 USD Engineering
576565634 MARY NELON 5,512 USD Finance
576544557 OBAMA MACK 3,512 USD Management
ลักษณะประจํา (attribute)
หากทั้งแถวของ Attributes เรียกวา
Entity Typeหรือ
กรอบประเภทของ Entites ที่เหมือนกัน
เอนทิตี (entity)
ENTITY TYPE ANATOMY
พนักงาน (Employee: Emp)
Emp_ID Emp_Name Emp_Salary Emp_Dep
411266456 JOHN LEE 4,582 USD Engineering
576565634 MARY NELON
5,512 USD Finance
576544557 OBAMA MACK
3,512 USD Management
เอนทิตี (entity)
ขอมูลของเอนทิตี (entity occurrence)
Entity Type
ลักษณะประจํา (attribute)
คาที่เปนไปได (Domain) เชน Salary เปนตัวเลข และมีหนวย USD ไดเทานั้น
3. ลักษณะประจํา (attribute)ลักษณะประจํา (attribute) คือ ขอมูลที่ใชในการอธิบายถึงคุณสมบัติ หรือ คุณลักษณะของเอนทิตี
จากภาพธุรกิจดังกลาว มีการกําหนด Entity Type จํานวนหนึ่ง และหนึ่งในจํานวนนั้น ม ี Entity Type ชื่อวา Product นักศึกษาจะกําหนดลักษณะประจํา ใน Product อะไรบาง
Entity Type: PRODUCT
3.1 ขอบเขตของลักษณะประจํา (Domain)ขอบเขตของลักษณะประจํา (Domain) คือ ขอบเขตของขอมูลที่ใชในการกําหนดคาที่เปนไปไดของลักษณะประจํา
ในแตละลักษณะประจําจะตองมีการกําหนดกลุมคาขอมูลที่เปนไปไดของแตละลักษณะประจํา โดยเรียกกลุมคาขอมูลเหลานี้วา โดเมน (domain) เชน จากแบบเอนทิตีสาขา ทําการกําหนดโดเมนของแตละลักษณะประจํา ดังนี้
➔ ลักษณะประจําหมายเลขสาขา กําหนดเปนจํานวนเต็ม (Integer: Int) ➔ ลักษณะประจําที่ตั้ง กําหนดเปนตัวอักษร (Character: Char) ที่มีขนาด 150 อักษร➔ ลักษณะประจําเพศ กําหนดเปน Char ที่มีขนาด 1 อักษร เพศชาย (m)และเพศหญิง (f) ➔ ลักษณะประจํารายได กําหนดเปนจํานวนจริง (Real Number)เอ
นทิตี้ไทป
สาขารานค
า (B
ranc
h)
Attribute Domain ขอบเขตคาที่เปนไปได / ชนิดขอมูล
3.2 ประเภทของลักษณะประจํา (Types of Attribute)3.2.1 ลักษณะประจําแบบเดียว (Simple attribute) คือ ลักษณะประจํา ที่ประกอบดวยองคประกอบเดียวที่มีความเปนอิสระของขอมูล3.2.2 ลักษณะประจําแบบรวม (Composite attribute) คือ ลักษณะประจํา ที่ประกอบดวยลักษณะประจํามากกวาหนึ่งลักษณะประจํา โดยในแตละลักษณะประจํา มีความ เปนอิสระตอกัน3.2.3 ลักษณะประจําแบบคาเดียว (Single-valued attribute) คือ ลักษณะประจํา ที่มีคาเพียงคาเดียวในแตละเอนทิตี 3.2.4 ลักษณะประจําแบบหลายคา (Multi-valued attribute) คือ ลักษณะประจําที่มีคาในแตละเอนทิตีมากกวาหนึ่งคา3.2.5 ลักษณะประจําแบบเปลี่ยนแปร (Derived) คือ ลักษณะประจําที่แสดงคาที่ไดจากการคํานวณคาของลักษณะประจํา หรือกลุมลักษณะประจํา ที่มีสัมพันธกัน ทําใหเปลี่ยนแปรไปได3.2.6 ลักษณะประจําหลัก หรือ ลักษณะประจําแบบกุญแจ (Key Attributes) คือ ลักษณะประจําที่ใชเพื่อใชในการกําหนดความแตกตางระหวางขอมูลของแบบเอนทิตีวามีความแตกตางกัน
3.2.1 ลักษณะประจําแบบเดียว (simple attribute)● ลักษณะประจําแบบเดียว (simple attribute) คือ ลักษณะประจํา ที่ประกอบดวย
องคประกอบเดียวที่มีความเปนอิสระของขอมูล● ลักษณะประจําแบบเดียวจะไมสามารถถูกแบงออกเปนลักษณะประจํายอยๆ ไดอีก ซึ่ง
เรียกคุณสมบัตินี้วา อะตอม (Atom) หรือ อนุภาคของขอมูลที่เล็กที่สุดแลว ● เชน ลักษณะประจําเงินเดือน ลักษณะประจําแผนก เปนตน โดยใชสัญลักษณวงรีในการ
กําหนดลักษณะประจําแบบเดียว
Salary Department Gender
3.2.1 ลักษณะประจําแบบเดียว (simple attribute)
3.2.1 ลักษณะประจําแบบเดียว (simple attribute)
เมื่อนักศึกษาเติม Entity Type และ Simple Attributes แลว ลองตรวจสอบวา1) Entity Type ตั้งชื่อ เปนคํานาม (Noun) และเปนขอมูลที่ตองการ
นําไปสรางเปนแฟมขอมูลลักษณะตารางหรือไม?2) Attributes ที่ นักศึกษากําหนด มีความเกี่ยวของกับ Entity Type
ที่กําหนดหรือไม?3) Attributes ที่นักศึกษากําหนดนั้น แนใจหรือไมวา ครอบคลุม
ขอมูลหรือ Entity ทั้งหมด?4) ม ีAttributes ใดบางไหม ที่ควรแยกไปเปน Entity จะเหมาะสม
กวา?5) หลักของฐานขอมูล คือ การลดความซํ้าซอน และ การลดความ
ขัดแยงของขอมูล ดังนั้น ลองพิจารณาอีกครั้งวา มีโอกาสเกิดปญหาเหลานั้นขึ้นหรือไม?
ลองกลับไปพิจารณา
3.2.2 ลักษณะประจําแบบรวม (composite attribute)ลักษณะประจําแบบรวม (composite attribute) คือ ลักษณะประจํา ที่ประกอบดวยลักษณะประจํามากกวาหนึ่งลักษณะประจํา โดยในแตละลักษณะประจํา มีความเปนอิสระตอกัน
3.2.3 ลักษณะประจําแบบคาเดียว (single-valued attribute)
ลักษณะประจําแบบคาเดียว (single-valued attribute) คือ ลักษณะประจํา ที่มีคาเพียงคาเดียวในแตละเอนทิตี
Employee
gender
product
?
??
เปนไปไดคาเดียวเนื่องจาก เพศ จะตองเลือกวาจะมีลักษณะประจําตัวเปน เพศชาย (Male) หรือ เพศหญิง (Female)
3.2.4 ลักษณะประจําแบบหลายคา (multi-valued attribute)
ลักษณะประจําแบบหลายคา (multi-valued attribute) คือ ลักษณะประจําที่มีคาในแตละเอนทิตีมากกวาหนึ่งคา
Employee product
?
? ?
emp_tel
เปนไปไดหลายคา เนื่องจาก มี
1) เบอรโทรศัพทเคลื่อนที่
2) เบอรโทรศัพทบาน
3) เบอรโทรศัพทที่ทํางาน
3.2.5 ลักษณะประจําแบบเปลี่ยนแปรตาม (Derived Attribute)
ลักษณะประจําแบบเปลี่ยนแปรตาม (Derived Attribute) คือ ลักษณะประจํา ที่แสดงคาที่ไดจากการคํานวณคาของลักษณะประจํา หรือกลุมลักษณะประจํา ที่มีสัมพันธกัน
Employee
emp_age
product
?
? ?
emp_income
age เปลี่ยนแปร ตามป พ.ศ.เกิดincome เปลี่ยนแปร ตาม
(เงินเดือน+คานอกเวลา+คาขอตกลง) - ภาษี
3.2.6 ลักษณะประจําแบบกุญแจ (Key Attributes)ทุกๆ แบบเอนทิตี (Entity Type) จะตองมีการกําหนดลักษณะประจํา (Unique) หรือกลุมลักษณะประจํา (Unique Composition) เพื่อใชในการกําหนดความแตกตางระหวางขอมูลของแบบเอนทิตีวามีความแตกตางกันอยางไร ซึ่งเรียกลักษณะประจํา หรือ กลุมของลักษณะประจําที่ใชในการกําหนดความแตกตางของขอมูลเหลานั้นวา ลักษณะประจําหลัก (Key Attributes)
cust_id cust_name cust_citizen_id cust_username cust_password
A76690 Jarumon 3718800984108 jarum.no 2345
A00999 Katejarin 5418500984144 kate.ch 3552
Z55433 Thanakorn 5418504984108 than.ui 2223
T99987 Nutthapat 4733800984144 nutt.ke 4899
Unique
Primary Key: PK
Unique CompositionComposition Key