Transcript Entity
Lecture 7 Entity-Relationship Modeling The Entity-Relationship Model คือ แบบจำลองทีใ่ ช้อธิบำยโครงสร้ำงของฐำนข้อมูลซึง่ เขียนออกมำใน ลักษณะของรูปภำพ ซึง่ พัฒนำโดย Peter Chen ใช้สำหรับกำรออกแบบฐำนข้อมูลในระดับ Conceptual เมือ ่ นำมำเขียนแสดงเป็ นแผนภำพ เรียกว่ำ E-R Diagram ช่วยให้กำรนำเสนอเกิดควำมเข้ำใจระหว่ำงผูอ ้ อกแบบและผูใ้ ช้งำน จะช่วยให้กำรออกแบบได้งำ่ ยขึน้ ด้วยกำรจัดระเบียบควำมคิดของคนที่ ทำกำรออกแบบ และลดควำมซับซ้อนของระบบได้เป็ นอย่ำงดี 2 Entity คือสิง่ ทีค่ งอยู่ สำมำรถระบุได้ในควำมจริง เช่น บุคคล เหตุกำรณ์ และสถำนที่ เป็ นต้น มักจะอยูใ่ นรูปของคำนำม (Noun) สำมำรถมีคุณสมบัต ิ (Property) หรือแอททริบวิ ต์ (Attribute) ได้ เช่น บุคคล จะมี Attribute ชือ่ ทีอ่ ยู่ อำยุ เพศ ฯลฯ EMPLOYEE 3 Example Entity Group Entities Example place room, office, college, building person student, employee, supplier object book, product, car event registration, sale, reservation concepts account, course, inventory 4 Symbol of E-R Entity Composite Attribute Weak Entity Multivalued Attribute Relationship Derived Attribute Attribute Association 5 Entity Type Strong Entity คือเอ็นติตเ้ี กิดขึน้ ได้ดว้ ยตัวเอง เป็ นอิสระไม่ขน้ึ กับ เอ็นติตใ้ี ดๆ บำงครัง้ เรียกอีกชื่อ Regular Entity Weak Entity เอ็นติตช้ี นิดนี้อยูก่ บั เอ็นติตช้ี นิดอื่นๆ ไม่สำมำรถเกิดขึน้ ได้ตำมลำพัง และจะถูกลบเมือ่ เอ็นติตห้ี ลักถูกลบออกไป EMPLOYEE Strong Entity NEXT_OF_KIN Weak Entity 6 Attributes เป็ นคุณสมบัตหิ รือลักษณะของ Entity เช่น Attributes ของ พนักงำน ประกอบด้วย • เลขทีพ่ นักงำน • ชื่อ-นำมสกุล • เพศ • เงินเดือน สัญลักษณ์ Attributes นัน ้ จะแทนด้วยวงรี โดยมีช่อื ของ Attributes กำกับอยูภ่ ำยใน และมีเส้นเชื่อมต่อกับ Entity ของมัน empNo 7 Example Entity Attributes building buildingno, buildingname, yearbuild, contractor student stu_no, name, address, faculty book code, title, publisher, authorname, year, ISBN order ordernum, sendto, producedby, date course coursecode, name, credit, faculty 8 Example Employee (empNo, name, salary, sex) sex name empNo Employee salary 9 Type of Attributes Simple Attribute Attributes ทีม่ อี งค์ประกอบเดียวไม่สำมำรถแบ่งแยกย่อยได้อกี แล้ว เช่น แอตตริบวิ ต์ sex และ salary เป็ นต้น Composite Attribute Attributes ทีม่ อี งค์ประกอบอยูห่ ลำยตัว มีขอ้ มูลมำกกว่ำหนึ่ง เช่น แอตตริบวิ ต์ address ประกอบด้วย street, city และ postcode 10 Type of Attributes Single - Valued Attribute Attributes ทีบ่ รรจุคำ่ เพียงค่ำเดียว เช่น แอตตริบวิ ต์รหัสพนักงำน สำมำรถอ้ำงอิงข้อมูลพนักงำนได้หนึ่งคนเท่ำนัน้ Multi - Valued Attribute Attributes ทีส่ ำมำรถมีหลำยค่ำได้ เช่น พนักงำนคนหนึ่งสำมำรถมีวฒ ุ ิ กำรศึกษำได้หลำยระดับ Derived Attribute Attributes ทีเ่ กิดจำกกำรประยุกต์ดว้ ยแอตตริบวิ ต์อ่นื ๆ เช่น แอตตริบวิ ต์ age ทีไ่ ด้มำจำกกำรนำแอตตริบวิ ต์วนั เกิด มำประยุกต์ใช้งำนด้วยนำปี 11 ปจั จุบนั หักด้วยปี เกิดก็จะได้แอตตริบวิ ต์ age Simple Attribute empName empNo Employee address 12 Composite Attribute empName empNo Employee address street city postcode 13 Single-valued Attribute, Multi-valued Attribute and Derived Attribute empName empNo Single - Valued sex birthday Employee Age Derived degree Multi - Valued 14 Relationship หมำยถึง Entity ทีแ่ สดงควำมสัมพันธ์ระหว่ำง 2 Entity ขึน้ ไป เป็ นควำมสัมพันธ์ระหว่ำง Entity ทีม ่ ี Attributes ร่วมกัน โดยแต่ละควำมสัมพันธ์จะถูกระบุดว้ ยสัญลักษณ์สเ่ี หลีย ่ มข้ำวหลำมตัด (Diamond) และคำทีอ่ ธิบำยถึงควำมสัมพันธ์นนั ้ ๆ พร้อมทัง้ ระบุชนิดของควำมสัมพันธ์ระหว่ำง Entity นัน ้ ๆ ด้วย 15 Example Relationship Lecturer 1 teaches M Subject_item 16 Relationship Degree ดีกรีของควำมสัมพันธ์เป็ นตัวแสดงถึงจำนวนเอ็นติตท้ี ่มี คี วำมสัมพันธ์ ระหว่ำงกัน โดยจำนวนควำมสัมพันธ์ระหว่ำงเอ็นติตม้ี อี ยู่ 3 รูปแบบ Unary Relationships เป็ นควำมสัมพันธ์ระหว่ำง entity เดียว ตัวอย่ำงเช่น ผูจ้ ดั กำร <จัดกำร> พนักงำนของตน (ผูจ้ ดั กำรก็คอื พนักงำน) โดยควำมสัมพันธ์แบบยูนำรีกค็ อื ควำมสัมพันธ์แบบรีเคอร์ซพี (Recursive) ทีเ่ รียกใช้ตวั เอง 1 manages Employee M 17 Relationship Degree Binary Relationships เป็ นควำมสัมพันธ์ระหว่ำงเอ็นติต้ี 2 เอ็นติตท้ี เ่ี กีย่ วข้องกัน ตัวอย่ำงเช่น คณะ <ประกอบด้วย> หลำยสำขำ Faculty 1 inculdes M Major 18 Relationship Degree Ternary Relationships เป็ นควำมสัมพันธ์ทม่ี เี อ็นติตเ้ี ข้ำมำเกีย่ วข้อง 3 เอ็นติตด้ี ว้ ยกัน Doctor 1 writes M Prescription M recives 1 Patient M appears in 1 Drug • แพทย์ (Doctor) <เขียน> ใบสังยำ ่ (Prescription) ได้หลำยรำยกำร • ผูป้ ว่ ย (Patient) <รับ> ใบสังยำได้ ่ หลำยรำยกำร • ยำ (Drug) ทีแ่ พทย์ระบุลงไป <ปรำกฏ> อยูใ่ นใบสังยำได้ ่ หลำยรำยกำร 19 Structural Constraints (โครงสร้ างข้ อบังคับ) เป็ นกระบวนกำรนำควำมสัมพันธ์และกฎเกณฑ์มำบังคับใช้ เพื่อเป็ น เงือ่ นไขกำรจัดเก็บข้อมูลในฐำนข้อมูลให้เป็ นไปอย่ำงเหมำะสมและถูกต้อง สำหรับข้อบังคับบนควำมสัมพันธ์มอี ยู่ 2 ชนิด ด้วยกัน คือ Cardinality Constraints Participation Constraints 20 Cardinality Constraints ตำมปกติแล้วดีกรีของควำมสัมพันธ์สว่ นใหญ่มกั เป็ นในรูปแบบไบนำรี และควำมสัมพันธ์แบบไบนำรีมอี ยูด่ ว้ ยกัน 3 รูปแบบ 1 1 1 M M N one-to-one (1:1) one-to-many (1:M) many-to-many (M:N) 21 One-to-One Relationships Semantic Net Model • พนักงำนรหัส SG05 <จัดกำร> สำขำ B003 • พนักงำนรหัส SL21 <จัดกำร> สำขำ B005 • พนักงำนรหัส SG37 ไม่ได้รบั มอบหมำยให้ <จัดกำร> สำขำใดๆ 22 One-to-One Relationships • แต่ละสำขำจะถูกจัดกำรโดยพนักงำนหนึ่งคน one and only one (1,1) และ พนักงำนจะจัดกำรสำขำหรือไม่กไ็ ด้ ซึง่ เป็ นไปในลักษณะ zero or one (0,1) 23 One-to-One Relationships 24 One-to-Many Relationships • พนักงำนรหัส SG37 <ดูแล> บ้ำนเช่ำรหัส PG21 และ PG36 • พนักงำนรหัส SA09 <ดูแล> บ้ำนเช่ำรหัส PA14 • พนักงำนรหัส SG05 ไม่ได้ <ดูแล> บ้ำนเช่ำใดๆ เลย • บ้ำนเช่ำรหัส PG04 ไม่ได้รบั กำร <ดูแล> จำกพนักงำนคนใดเลย 25 One-to-Many Relationships • พนักงำนสำมำรถดูแลบ้ำนเช่ำได้หลำยหลังหรือไม่ได้ดแู ลก็ได้ ซึง่ เป็นไปใน ลักษณะ zero or more และบ้ำนเช่ำจะถูกดูแลโดยพนักงำนหนึ่งคนหรือไม่ได้รบั กำรดูแลก็ได้ ซึง่ เป็ นไปในลักษณะ zero or one 26 One-to-Many Relationships 27 Many-to-Many Relationships • หนังสือพิมพ์ The Nation <โฆษณำ> บ้ำนเช่ำรหัส PG21 และ PG36 • หนังสือพิมพ์ Daily News <โฆษณำ> บ้ำนเช่ำรหัส PG36 • หนังสือพิมพ์ Bangkok Post <โฆษณำ> บ้ำนเช่ำรหัส PA14 • บ้ำนเช่ำรหัส PG04 ไม่ได้ลง <โฆษณำ> ในหนังสือพิมพ์ใดๆ เลย 28 Many-to-Many Relationships • หนังสือพิมพ์แต่ละฉบับโฆษณำบ้ำนเช่ำได้หนึ่งหลังหรือมำกกว่ำ ซึง่ เป็นไปใน ลักษณะ one or more ในขณะทีบ่ ำ้ นเช่ำหนึ่งหลังสำมำรถลงโฆษณำในหนังสือ พิมพ์ได้หลำยฉบับหรือไม่ได้ลงโฆษณำในหนังสือพิมพ์เลย ซึง่ เป็ นในลักษณะ zero or more 29 Many-to-Many Relationships 30 Cardinality Notations สัญลักษณ์ข้อบังคับบนความสัมพันธ์ในรูปแบบต่างๆ 31 Participation Constraints ข้อบังคับของกำรมีสว่ นร่วม หมำยถึงกำรทีเ่ อ็นติตห้ี นึ่งจะยังคงอยูไ่ ด้ดว้ ย กำรพึง่ พิงจำกเอ็นติตห้ี นึ่ง ซึง่ มีอยู่ 2 ชนิดด้วยกัน Total Participation หรือ Mandatory คือควำมสัมพันธ์ชนิดบังคับ ซึง่ แต่ละควำมสัมพันธ์จะ ทำกำรเชื่อมโยงด้วยเส้นคู่ Partial Participation หรือ Optional คือควำมสัมพันธ์ชนิดเลือกได้ ซึง่ แต่ละควำมสัมพันธ์จะ ทำกำรเชื่อมโยงด้วยเส้นเดีย่ ว 32 Participation Constraints • BRANCH ในควำมสัมพันธ์ของ <has> คือแบบ Total Participation • EMPLOYEE ในควำมสัมพันธ์ของ <has> คือแบบ Partial Participation • BRANCH ต้องมีพนักงำนอย่ำงน้อยหนึ่ง • พนักงำนบำงคนอำจไม่จำเป็นต้องประจำอยูใ่ น BRANCH ก็ได้ 33 Participation Constraints • BRANCH จะต้องมีพนักงำนอย่ำงน้อย 5 คน (Min=5) หรือมำกกว่ำโดย ไม่จำกัด (Max=N) • พนักงำนอำจไม่ได้ประจำอยูใ่ น BRANCH (Min=0) กับพนักงำนทีต่ อ้ งประจำ อยูใ่ น BRANCH ทีต่ นสังกัดอยู่ (Max=1) 34 Problems with ER Models กำรเขียนแผนภำพ E-R จัดเป็ นขัน้ ตอนกำรออกแบบในระดับตรรกะ ดังนัน้ จึงอำจเกิดปญั หำบำงอย่ำงได้ในระยะของกำรออกแบบ โดยเฉพำะ ในกำรสร้ำงควำมสัมพันธ์ระหว่ำงเอ็นติต้ี ซึง่ ก่อให้เกิดกำรแปลควำมหมำย ควำมสัมพันธ์ผดิ พลำด โดยปญั หำใน E-R Model มีอยู่ 2 รูปแบบ Fan Traps Chasm Traps 35 Fan Traps เป็ นปญั หำทีก่ ่อให้เกิดควำมกำกวม หรือมีควำมไม่ชดั เจนในกำรแสดง ข้อมูลทีเ่ รำสนใจ โดยปญั หำดังกล่ำวเป็ นปญั หำทีเ่ กีย่ วข้องกับกำรจัดควำม สัมพันธ์ระหว่ำงเอ็นติต้ี ทีม่ กั พบบนควำมสัมพันธ์แบบ one-to-many 36 An Example of a Fan Trap จำกภำพจะเห็นว่ำมีฝำ่ ยงำนหนึ่ง (Division) ปฏิบตั กิ ำร <operates> อยู่ ในหลำยสำขำ (Branch) ขณะเดียวกันฝำ่ ยงำนนัน้ ก็มพี นักงำนสังกัดอยู่ หลำยคน 37 An Example of a Fan Trap คาถาม : พนักงำนรหัส SG37 ทำงำนอยูส่ ำขำใด คาตอบ : B003 หรือ B007 38 Restructuring ER model to remove Fan Trap 39 Semantic Net of Restructured ER Model with Fan Trap Removed พนักงาน SG37 ทางานอยู่ในสาขา B003 40 Chasm Traps เป็ นปญั หำทีเ่ กิดขึน้ จำกกำรไม่ได้โยงควำมสัมพันธ์ระหว่ำงเอ็นติต้ี จึงส่ง ผลให้ควำมสัมพันธ์ขำดหำยไป ซึง่ ปญั หำดังกล่ำวมักจะปรำกฎบนควำม สัมพันธ์แบบ Partial ในรูปแบบของเส้นควำมสัมพันธ์นนั ้ ไม่ได้เชื่อมโยงกับ เอ็นติตท้ี เ่ี กีย่ วข้องตำมทีค่ วรจะเป็ น 41 An Example of a Chasm Trap จำกภำพอธิบำยได้วำ่ สำขำหนึ่ง <มี> พนักงำนได้หลำยคน โดยพนักงำน แต่ละคนจะ <ดูแล> บ้ำนเช่ำทีต่ นได้รบั มอบหมำย และจำกกำรมีสว่ นร่วมใน ควำมสัมพันธ์ ก็จะทรำบได้วำ่ ไม่ใช่พนักงำนทุกคนต้องดูแลบ้ำนเช่ำ และไม่ ใช่บำ้ นเช่ำทุกหลังจะต้องถูกดูแลโดยพนักงำน 42 An Example of a Chasm Trap คาถาม : บ้ำนเช่ำรหัส PA14 อยูส่ ำขำใด และพนักงำนคนใดเป็ นผูด้ แู ล คาตอบ : ไม่ทรำบ 43 ER Model Restructured to Remove Chasm Trap 44 Restructured ER Model with Chasm Trap Removed 45 An Example E-R Model 46 An Example E-R Model 47 An Example E-R Model 48 Data Dictionary • Referenced Documentation that descript component of data • Show Data element 49 Data Dictionary • Consist of : – – – – – Data Name Key Data Types Length Description 50 Customer Name Key Types Length Description Cus_ID PK Number 5 รหัสลูกค้า Cus_name Varchar 30 ชื่อลูกค้า Cus_add Varchar 50 ที่อยู่ Cus_sex Char 1 เพศ : M,F Cus_position Varchar 20 ตาแหน่งงาน 51 Tool create E-R • Navicat 52 Tool create E-R • MySQL Workbench 53 Tool create E-R • Microsoft Visio 54