3-1
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
บทที่ 3* ฐานขอมูลเบื้องตนและแบบจําลองเชิงแนวคิด Data Modeling Using Entity-Relationship (ER) Model วัตถุประสงค 1. เพื่อใหรูจักแนวคิดของแบบจําลองอีอาร (ER Model) ซึ่งเปนแบบจําลองขอมูลเชิงแนวคิดระดับสูง (High-level conceptual data model) 2. เพื่อใหรูจักสัญกรณสําหรับแผนภาพอีอาร (ER Diagram) 3. เพื่อใหรูจักแผนภาพ UML แอปพลิเคชันฐานขอมูล (Database Application) หมายถึง ฐานขอมูลและโปรแกรมที่เกี่ยวของที่ใชในการสืบคน ฐานขอมูล (Database query) และปรับปรุงฐานขอมูล (Update) เชน แอปพลิเคชันทางธนาคาร (BANK Application) ที่ทําหนาที่ในการจัดเก็บและติดตามบัญชี (Account) ของลูกคานั้น จะตองมีโปรแกรมเพื่อทําการ ฝากและถอนเงิน ดังนั้นงานสวนหนึ่งในการจัดทําฐานขอมูลนั้น จะตองประกอบดวยการออกแบบ การพัฒนา และ การทดสอบแอปพลิเคชันโปรแกรมดวย
3.1
ระเบียบวิธีการออกแบบฐานขอมูล และระเบียบวิธีทางวิศวกรรม ซอฟตแวร (Database design methodology & Software engineering methodology) ระเบียบวิธีการออกแบบฐานขอมูล (Database design methodology) นั้นจะกลาวถึงแนวคิดในการกําหนด วิธีการดําเนินการ (Operation) กับวัตถุฐานขอมูล (Database object) สวนระเบียบวิธีการทางวิศวกรรม ซอฟตแวร (Software engineering methodology) นั้นจะระบุรายละเอียดเกี่ยวกับโครงสรางของฐานขอมูลที่ โปรแกรมจะใช และเขาถึงฐานขอมูล ซึ่งจะเห็นไดวา ทั้งสองสวนมีความเกี่ยวเนื่องกันอยางมาก
* อางอิงจากบทที่ 3 ของเอกสารอางอิง [1]
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
3-2
รูปที่ 3.1 แผนภาพอยางงาย แสดงเฟสหลักใน การออกแบบ ฐานขอมูล
3.2
ตัวอยางแอปพลิเคชันฐานขอมูล “COMPANY” เพื่อแสดงตัวอยางในการออกแบบฐานขอมูล เราจะใชตัวอยางของฐานขอมูล “COMPANY” โดยจะเรื่มดูตั้งแต ความตองการของบริษัท ซึ่งเราสามารถแยกแยะความตองการและขอกําหนดไดดังนี้ • บริษัทจัดระบบเปนแผนก (Department) โดยแตละแผนกจะมีชื่อ (Name) ที่ไมซ้ํากัน มีเลขที่แผนก (Number) ที่ไมซ้ํากัน และมีพนักงานหนึ่งคนที่เปนผูจัดการ (Manager) ของแผนกนั้น ซึ่งเราจะทํา การเก็บวันที่ที่พนักงานผูนั้นเริ่มทํางานเปนผูจัดการของแผนกนั้น โดยแตละแผนกอาจมีที่ทําการหรือ สํานักงานไดหลายแหง (Location) • แตละแผนกจะทําการควบคุมดูแล (Control) โครงการ (Project) จํานวนหนึ่ง ซึ่งแตละโครงการ จะ ประกอบดวย ชื่อโครงการและเลขที่โครงการที่ไมซ้ํากัน และแตละโครงการ location จะขึ้นอยูกับที่ทํา การ (Location) เพียงแหงเดียวเทานั้น • เราจะจัดเก็บขอมูลพนักงาน (Employee) ซึ่งประกอบดวย ชื่อ รหัสประจําตัว ที่อยู เงินเดือน เพศ และ วันเกิด โดยพนักงานแตละคนสามารถทํางาน (Work) ใหกับแผนกหนึ่งแผนกใดเทานั้น แตอาจทําหลาย โครงการได โดยเราตองการจะติดตามชั่วโมงการทํางานของพนักงานแตละคน แตละโครงการ นอกเหนือจากนั้น เรายังตองการติดตามขอมูลผูควบคุมดูแล (Direct Supervisor) ของพนักงานแตละ คนอีกดวย
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย •
3-3
นอกจากนี้ยังมีการเก็บขอมูลบุตรหรือผูอยูในอุปการะ (Dependent) ของพนักงานแตละคน ซึ่งพนักงาน คนหนึ่งๆ สามารถมีบุตรหรือผูอยูในอุปการะไดหลายคน โดยจะเก็บขอมูล ชื่อ เพศ วันเกิด และ ความสัมพันธกับพนักงานผูนั้น
รูปที่ 3.2 แผนภาพเคารางอี อาร (ER schema diagram) สําหรับ ฐานขอมูล COMPANY
3.3
แนวคิดของแบบจําลองอีอาร (ER Model Concepts) 3.3.1 เอนทิตี (Entity) และแอทตริบิวต (Attribute) เอนทิตี (Entity) คือ วัตถุตางๆ ในมินิเวิรลที่เราสนใจ เชน พนักงาน (EMPLOYEE) แผนก (DEPARTMENT) หรือ โครงการ (PROJECT) เปนตน สวนแอทตริบิวต (Attribute) คือ สมบัติ (Property) ของเอนทิตี เชน เอนทิตีพนักงาน (EMPLOYEE) อาจมี แอทตริบิวตคือ ชื่อพนักงาน รหัสประจําตัว ที่อยู เพศ วันเกิด เปนตน เอนทิตีแตละเอนทิตีจะมีคาที่ระบุไวสําหรับแตละแอทตริบิวต เชน เอนทิตีพนักงาน (EMPLOYEE) อาจมีคา ชื่อ พนักงาน = John Smith รหัสประจําตัว = 123456789 ที่อยู = 731, Frondren, Houston, TX เพศ = ชาย วันเกิด = 9 ม.ค. 55 เปนตน นอกจากนี้ แตละแอทตริบิวตจะตองมีขนิดของขอมูล (Value set หรือ Data type) กํากับอยู เชน จํานวนเต็ม (Integer) ขอความ (String) แบบพิสัยยอย (Subrange) แบบแจงนับ (Enumerated type) เปนตน
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
3-4
รูปที่ 3.3 เอนทิตีพนักงาน (e1) และบริษัท (c1) และแอทตริ บิวตของแตละเอนทิ ตี แอทตริบิวตสามารถแบงออกเปนประเภทตางๆ ดังนี้ • แอทตริบิวตเชืงเดียว (Simple attribute) และ แอทตริบิวตเชิงประกอบ (Composite attribute) - แอทตริบิวตเชืงเดียว (Simple attribute) เปนแอทตริบิวตที่แตละเอนทิตีจะมีคาไดเพียงคา เดียว และไมสามารถจะแบงยอยไดอีก เชน รหัสประจําตัว หรือ เพศ - แอทตริบิวตเชิงประกอบ (Composite attribute) เปนแอทตริบิวตที่ประกอบดวย สวนประกอบตางๆ เชน ที่อยู จะประกอบดวยบานเลขที่ ถนน แขวง เขต จังหวัด รหัสไปรษณีย และประเทศ เปนตน • แอทตริบิวตแบบคาเดี่ยว (Single-valued attribute) และ แอทตริบิวตแบบหลายคา (Multi-valued attribute) - แอทตริบิวตแบบคาเดี่ยว (Single-valued attribute) เปนแอทตริบิวตที่มีไดคาเดียว เชน -
อายุ และสวนสูง เปนตน แอทตริบิวตแบบหลายคา (Multi-valued attribute) เปนแอทตริบิวตที่มีไดหลายคา เชน สี ของรถ วุฒิการศึกษา ซึ่งเขียนในรูปของ {Color} และ {PreviousDegree}
รูปที่ 3.4 การแตกสาขาของ แอทตริบิวตเชิง ประกอบ (Composite attributes)
รูปที่ 3.5 แอทตริบิวตเชิงซอน (Complex attribute): AddressPhone
โดยทั่วไปแลว แอทตริบิวตเชิงประกอบ (Composite attribute) และแบบหลายคา (Multi-valued attribute) อาจมีการซอนมากมายหลายระดับได ถึงแมวาจะเกิดขึ้นไดยากก็ตาม เชน วุฒิการศึกษาของนักศึกษา (STUDENT) เปนแอทตริบิวตเชิงประกอบชนิดหลายคา (Composite multi-value attribute) ซึ่งสามารถ เขียนในรูปของ {วุฒิการศึกษา (มหาวิทยาลัย, ป, วุฒปิ ริญญา, สาขา)} หรือ {PreviouseDegrees (College, Year, Degree, Field)} เปนตน • แอทตริบิวตที่เก็บไว (Stored attribute) และ แอทตริบิวตที่ไดจากการอนุมาน (Derived attribute) - แอทตริบิวตที่เก็บไว (Stored attribute) เชน วันเกิด - แอทตริบิวตที่ไดจากการอนุมาน (Derived attribute) เชน อายุ
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย •
3-5
คาวาง (Null values) บางแอทตริบิวตอาจไมมีคาที่เหมาะสม เชน เลขที่อพารทเมนท (สําหรับคนที่อาศัยอยูบานเดี่ยว) วุฒิ มหาวิทยาลัย เปนตน โดยในการระบุจะใชคาวางในกรณีที่ไมทราบคาของแอทตริบิวต เชน - มีคาที่สามารถระบุลงในแอทตริบิวตแตขาดหายไป เชน ความสูง - ไมทราบคา ถึงแมวาจะมีคานั้นอยู เชน เบอรโทรศัพทบาน เปนตน
3.3.2 ชนิดเอนทิตี (Entity Type) และ แอทตริบิวตที่เปนคีย (Key Attribute) พิจารณารูปที่ 3.2 • เอนทิตีที่มีแอทตริบิวต (Attribute) พื้นฐานเหมือนกัน จะถูกจัดกลุมหรือจัดประเภท ลงในชนิดเอนทิตี (Entity type) เดียวกัน เชน ชนิดเอนทิตีพนักงาน (EMPLOYEE) ชนิดเอนทิตีโครงการ (PROJECT) เปนตน • กลุมของเอนทิตีทุกเอนทิตีที่อยูในชนิดเอนทิตีเดียวกันในฐานขอมูลที่เวลาใดเวลาหนึ่ง จะถูกเรียกวา กลุม เอนทิตี (Entity set) • แอทตริบิวตของเอนทิตีหนึ่งๆที่มีคาแอทตริบิวตเปนคาเฉพาะสําหรับแตละเอนทิตี จะเรียกวา แอทตริบิวต ที่เปนคีย (Key attribute) โดยยึดหลักความเฉพาะเจาะจง เชน รหัสประจําตัวของพนักงาน เปนตน โดยชนิดเอนทิตีหนึ่งๆ อาจมีคียมากกวาหนึ่งคีย เชน ชนิดเอนทิตี CAR ซึ่งอาจมีคียเปน VenhicleIdentificationNumber (VIN) VehicleTagNumber (Number, State) หรือที่เรียกวา license_plate number นอกจากนี้ แอทตริบิวตที่เปนคีย อาจเปนแอทตริบิวตเชิงประกอบ (Composite attribute) เชน VehicleTagNumber เปนคียของเอนทิตี CAR ซึ่งประกอบดวย (เลขที่,รัฐ) -
รูปที่ 3.6 ชนิดเอนทิตี (Entity type)
พนักงาน (EMPLOYEE)
และบริษัท (COMPANY)
รูปที่ 3.7 ชนิดเอนทิตี CAR ซึ่งมีแอทตริบิวต 2 แอทตริบิวตที่เปน คีย คือ Registration และ Vehicle ID
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย •
รูปที่ 3.8 การออกแบบขั้นตน ของชนิดเอนทิตี (Entity type)
รูปที่ 3.9 สรุปสัญลักษณของ แผนภาพ อีอาร สําหรับเคาราง อี อาร (ER Schema)
3-6
Value set หรือโดเมน (Domain) ของแอทตริบิวต แอทตริบิวตแตละแอทตริบิวตของชนิดเอนทิตี (Entity type) จะเกี่ยวของกับ value set หนึ่งๆ (หรือ โดเมนของ value) ซึ่งหมายถึงชนิดขอมูลพื้นฐานที่มีใหในภาษาโปรแกรมทั่วไป เชน จํานวนเต็ม (Integer) ขอความ (String) แบบตรรก (Boolean) จํานวนจริง (Float) แบบแจงนับ (Enumerate type) แบบยอย (Subrange) เปนตน
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
3-7
รูปที่ 3.10 แผนภาพ อีอาร ซึ่ง มีชนิดเอนทิตี คือ EMPLOYEE, DEPARTMEN T, PROJECT, DEPENDENT
3.4
ความสัมพันธ (Relationship) และชนิดความสัมพันธ (Relationship type) ความสัมพันธ (Relationship) เปนตัวเชื่อมเอนทิตีที่แตกตางกันตั้งแต 2 เอนทิตีขึ้นไป โดยมีจุดประสงคที่แนนอน เชน พนักงานชื่อ John Smith (EMPLOYEE John Smith) ทํางาน (Work on) โครงการเกี่ยวกับผลิตภัณฑ X (ProductX PROJECT) หรือ พนักงานชื่อ Franklin Wong (EMPLOYEE Franklin Wong) บริหาร (Manage) แผนกการวิจัย (Research DEPARTMENT) เปนตน (Relationship) ประเภทเดียวกัน จะถูกจัดกลุมหรือจัดประเภทลงในชนิดความสัมพันธ (Relationship type) เดียวกัน เชน ชนิดความสัมพันธ WORKS_ON ซึ่งเชื่อมระหวาง EMPLOYEEs และ PROJECTs หรือ ชนิดความสัมพันธ MANAGES ซึ่งเชื่อมระหวาง EMPLOYEEs และ DEPARTMENTs
ความสัมพันธ
ดีกรีของชนิดความสัมพันธ (Degree of relationship type) คือจํานวนของชนิดเอนทิตี (Entity type) ที่เขา รวม ซึ่งจากตัวอยางดังกลาว จะเห็นวาทั้ง MANAGES และ WORKS_ON ตางก็มีดีกรีเทากับ 2 หรือเรียกได วาความสัมพันธแบบไบนารี (Binary relationship)
รูปที่ 3.11 แสดงชนิด ความสัมพันธ (Relationship type) WORKS_FOR
ระหวาง EMPLOYEE
และ DEPARTMENT
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
3-8
รูปที่ 3.12 12 แสดงชนิด ความสัมพันธ (Relationship type) WORKS_ON
ระหวาง EMPLOYEE และ PROJECT
ในการสรางความสัมพันธ สามารถมีชนิดความสัมพันธ (Relationship type) ไดมากกวา 1 ชนิด ที่เชื่อมระหวาง คูชนิดเอนทิตีที่เขารวมเดียวกัน เชน MANAGES และ WORKS_FOR ซึ่งตางก็เชื่อมระหวาง EMPLOYEE และ DEPARTMENT แตโดยความหมายและรูปแบบความสัมพันธที่แตกตางกัน
รูปที่ 3.13 แผนภาพ อีอาร (ER Diagram) แสดงชนิด ความสัมพันธ (Relationship type) คือ WORKS_FOR, MANAGES, WORKS_ON, CONTROLS, SUPERVISION, DEPENDENT_OF
3.4.1 ดีกรีของความสัมพันธ (Relationship) • • • • •
ชนิดความสัมพันธ (Relationship type) ที่มีดีกรีเทากับ 2 จะถูกเรียกวา ไบนารี (Binary) ชนิดความสัมพันธ (Relationship type) ที่มีดีกรีเทากับ 3 จะถูกเรียกวา เทอนารี (Ternary) ชนิดความสัมพันธ (Relationship type) ที่มีดีกรีเทากับ n จะถูกเรียกวา เอนนารี (n-ary) โดยทั่วไปแลวชนิดความสัมพันธแบบเอนนารี นั้นไมเทากับ n ความสัมพันธไบนารี สวน Higher-order relationship นั้น จะอธิบายภายหลังในบทที่ 4
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
3-9
รูปที่ 3.14 แสดงความสัมพันธ ของกลุม ความสัมพันธ (Relationship set) SUPPLY ซึ่ง
เปนแบบเทอนารี
3.4.2 แอทตริบิวตของชนิดความสัมพันธ (Attribute of Relationship type) ชนิดความสัมพันธ (Relationship type) ก็สามารถมีแอทตริบิวต (Attribute) ไดเชนกัน เชน จํานวนชั่วโมงใน การทํางานตอหนึ่งสัปดาห (HoursPerWeek) ซึ่งเปนแอทตริบิวตของชนิดความสัมพันธ WORKS_ON ซึ่งมี คาที่ระบุเปน จํานวนชั่วโมงในการทํางานตอหนึ่งสัปดาหที่พนักงานทําบนโครงการหนึ่งๆ (EMPLOYEE works on a PROJECT)
รูปที่ 3.15 แอทตริบิวตของ ชนิดความสัมพันธ คือ Hours ของ WORKS_ON
3.4.3 เงื่อนไขบังคับเกี่ยวกับความสัมพันธ (Constraints on Relationships) เงื่อนไขบังคับบนชนิดความสัมพันธ (Constraints on Relationship type) หรือที่เรียกกันวา เงื่อนไขบังคับ อัตราสวน (Ratio constraint) ทําไดโดยการกําหนดคา Maximum Cardinality ซึ่งหมายถึง จํานวน ความสัมพันธมากที่สุดที่แตละเอนทิตีสามารถเขารวมได เชน • • •
One-to-one (1:1) One-to-many (1:N) หรือ Many-to-one (N:1) Many-to-many (M:N)
3-10
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
นอกจากนี้ยังมีสามารถกําหนด
Minimum
Cardinality
ซึ่งอาจเรียกวา เงื่อนไขบังคับการเขารวม (Participation constraint) หรือเงื่อนไขบังคับการขึ้นตอกันเชิงปรากฎ (Existence dependency constraints) ซึ่งหมายถึง จํานวนความสัมพันธนอยสุดที่แตละเอนทิตีจะตองเขารวม โดยถากําหนดคาเปน 0 จะ หมายความวาเอนทิตีทุกเอนทิตีไมจําเปนตองเขารวม ซึ่งถือวาไมเปนการขึ้นตอกันเชิงปรากฎ (Existencedependent) แตถากําหนดใหมีคาตั้งแต 1 ขึ้นไปนั้น หมายความวาทุกๆเอนทิตีจะตองเขารวมความสัมพันธ ซึ่ง เรียกวา การขึ้นตอกันเชิงปรากฎ (Existence-dependent)
รูปที่ 3.16 ความสัมพันธแบบ Many-to-one (N:1)
e1 z e2 z e3 z e4 z e5 z e6 z e7 z รูปที่ 3.17 ความสัมพันธแบบ
r9 r 1 r2
p p z 2 p z 3 z 1
r8
Many-to-many
นอกจากนี้ ยังมีชนิดความสัมพันธแบบวนซ้ํา (Recursive relationship type) ซึ่งเชื่อมโยงชนิดเอนทิตี (Entity type) เดียวกันในตางบทบาท เชน ความสัมพันธ SUPERVISION ระหวางพนักงาน (EMPLOYEE) ที่มี บทบาทเปนผูควบคุมหรือเจานาย และพนักงาน (EMPLOYEE) ที่มีบทบาทเปนผูใตบังคับบัญชาหรือลูกนอง ซึ่ง แสดงใหเห็นในรูปตอไปนี้ โดยแทนสัญลักษณ “1” สําหรับบทแรก และ “2” สําหรับบทบาทที่ 2 โดยในกรณีเชนนี้ ในแผนภาพ อีอาร (ER Diagram) จะตองทําการกําหนดชื่อบทบาทเพื่อแยกความแตกตางระหวางเอนทิตีที่ เชื่อมโยงกันดังกลาว
3-11
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
EMPLOYEE e1 z e2 z e3 z e4 z
SUPERVISION
SUPERVISION (Recursive Relationship: SUPERVISION)
1 2
2 1
2 2
รูปที่ 3.18 ความสัมพันธแบบ วนซ้ํา
r1 r2 r
2 1
1
1 1
2 © The Benjamin/Cummings Publishing Company, Inc. 1994, Elmasri/Navathe, Fundamentals of Database Systems, Second Edition
รูปที่ 3.19 ชนิดความสัมพันธ แบบวนซ้ํา SUPERVISION
ที่มีการระบุบทบาท ลงในแผนภาพ เงื่อนไขบังคับเกี่ยวกับโครงสราง (Structural Constraints) นั้น นับเปนทางเดียวในการแสดงความหมายของ ความสัมพันธ โดยเงื่อนไขบังคับดานโครงสรางบนความสัมพันธ (Structural constraints on relationship) จะ ประกอบดวย • Cardinality ratio สําหรับความสัมพันธแบบไบนารี เปนการระบุจํานวนความสัมพันธทั้งหมดที่แตละ เอนทิตีสามารถเขารวมได เชน 1:1, 1:N, N:1 หรือ M:N ซึ่งสามารถแสดงโดยการใสเลขที่เหมาะสม ลงบนเสนเชื่อม • เงื่อนไขบังคับการเขารวม (Participation constraint) บนแตละเอนทิตีที่เขารวม เปนการระบุจํานวน ความสัมพันธนอยสุดที่แตละเอนทิตีจะตองเขารวม ซึ่งสามารถแบงไดเปน 2 ประเภท คือ
3-12
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
แบบทั้งหมด (Total) หรือเรียกวา การขึ้นตอกันเชิงปรากฎ (Existence dependency) ซึ่ง ทุกๆเอนทิตีในชนิดเอนทิตีเดียวกัน จะตองเขารวมความสัมพันธ โดยสามารถแสดง ความสัมพันธชนิดนี้ในแผนภาพ อีอาร ไดโดยการใชเสนเชื่อม 2 เสน - แบบบางสวน (Partial) ซึ่งทุกๆเอนทิตีไมจําเปนตองเขารวมความสัมพันธทั้งหมด โดย สามารถแสดงความสัมพันธชนิดนี้ในแผนภาพ อีอาร ไดโดยการใชเสนเชื่อม 1 เสน หมายเหตุ จะเห็นวา ทั้งหมดนี้เปนการงายสําหรับชนิดความสัมพันธแบบไบนารี (Binary relationship type) -
3.4.4 Alternative notation (min, max) •
• • •
ระบุลงในแตละการเขารวม (Participation) ของชนิดเอนทิตี E ในชนิดความสัมพันธ R โดยระบุวาแต ละเอนทิตี e ใน E จะทําการเขารวมความสัมพันธ R ไดอยางนอยเทากับ min และอยางมากเทากับ max คา Default (ไมมีขอบังคับ) คือ min = 0, max = 1 Must have min?max, min?0, min?1
สามารถอนุมานไดจากความรูเกี่ยวกับขอบังคับของมินิเวิรลด
ตัวอยาง •
•
รูปที่ 3.20 เงื่อนไขบังคับดาน ความสัมพันธ โดย ใชสัญลักษณมาก สุดนอยสุด ((min, max) notation)
แตละแผนกจะมีผูบริหารได 1 คน สวนพนักงานแตละคนสามารถบริหารแผนกไดมากที่สุดเพียงแผนก เดียวเทานั้น - ระบุ (0, 1) สําหรับการเขารวมของ EMPLOYEE บนความสัมพันธ MANAGES - ระบุ (1, 1) สําหรับการเขารวมของ DEPARTMENT บนความสัมพันธ MANAGES พนักงานแตละคนสามารถทํางานใหกับแผนกใดแผนกหนึ่งเทานั้น แตแผนกหนึ่งๆสามารถมีสมาชิก พนักงานเทาใดก็ได - ระบุ (1, 1) สําหรับการเขารวมของ EMPLOYEE บนความสัมพันธ WORKS_FOR - ระบุ (1, n) สําหรับการเขารวมของ DEPARTMENT บนความสัมพันธ WORKS_FOR
(0,1)
(1,1)
(1,1)
(1,N)
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
3-13
รูปที่ 3.21 แผนภาพเคาราง อี อาร COMPANY ที่ ใชสัญลักษณนอย สุดมากสุด ((min, max) notation)
3.5
เอนทิตีชนิดออน (Weak entity type) เอนทิตีชนิดออน (Weak entity type) คือ เอนทิตีที่ไมมีแอทตริบิวตที่เปนคีย (Key attribute) ของตนเอง โดย เอนทิตีชนิดออนจะถูกระบุถึงไดโดยผานชนิดเอนทิตีอื่นๆที่มีคาของแอทตริบิวตเกี่ยวเนื่องกัน ซึ่งเรียกชนิดเอนทิตี ดังกลาวนี้วา เจาของ (Owner) หรือชนิดเอนทิตีระบุ (Identifying entity type) และเรียกความสัมพันธที่ เชื่อมตอระหวางเอนทิตีชนิดออนและชนิดเอนทิตีระบุนี้วา ชนิดความสัมพันธระบุ (Identifying relationship type) โดยเอนทิตีชนิดออนนี้ จะถูกระบุไดโดยใช Partial key ของเอนทิตีชนิดออน หรือผานทางเอนทิตีที่เกี่ยวของ ในชนิดเอนทิตีระบุ (Identifying entity type) ตัวอยาง กําหนดใหเอนทิตีผูเกี่ยวของ (DEPENDENT) ถูกระบุโดย ชื่อของผูเกี่ยวของ วันเกิด และชื่อพนักงานที่เกี่ยวของ ดวย จะไดวา DEPENDENT นี้จัดเปนเอนทิตีชนิดออน (Weak entity type) โดยมี EMPLOYEE เปนชนิด เอนทิตีระบุ (Identifying entity type) และเชื่อมผานความสัมพันธ DEPENDENT_OF ซึ่งเปนความสัมพันธ ระบุ (Identifying relationship type)
รูปที่ 3.22 เอนทิตีชนิดออน (Weak entity type) คือ DEPENDENT
และความสัมพันธระบุ (Identifying relationship) คือ DEPENDENTS_OF
3-14
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
3.6
เครื่องมือสรางแบบจําลองขอมูล (Data Modeling Tools) มีเครื่องมือที่ไดรับความนิยมเปนจํานวนมากที่ครอบคลุมสรางแบบจําลองระดับแนวคิด (Conceptual modeling) และการแปลง (Mapping) เปนรูปแบบเคารางความสัมพันธ (Relational schema design) ซึ่งมีขอดี คือ บริการในลักษณะเอกสารเกี่ยวกับความตองการของแอปพลิเคชัน และมีสวนติดตอผูใชที่เขาใจงายซึ่งมักสนับสนุน รูปแบบกราฟก ปญหาเกี่ยวกับเครื่องมือสําหรับสรางแบบจําลองในปจจุบัน • แผนภาพ (Diagramming) - ใชสัญลักษณที่สื่อความหมายทางแนวคิดไดไมดี - เพื่อหลีกเลี่ยงปญหาในการจัดวางรูปแบบและความสวยงามของแผนภาพ จึงใชกลองและเสน และไมทําอะไรอีกนอกจากแสดงความสัมพันธของคียหลักและคียนอก (Primary-foreign key) ระหวางตาราง • ระเบียบวิธีการ (Methodology) - ไมสนับสนุน methodology แบบ built-in -
Poor tradeoff analysis or user-driven design preferences Poor design verification and suggestions for improvement
COMPANY Embarcadero Technologies
รูปที่ 3.23 เครื่องมือออกแบบ ฐานขอมูลอัตโนมัติ ที่มีในปจจุบัน
TOOL
FUNCTIONALITY
ER Studio
Database Modeling in ER and IDEF1X
DB Artisan
Database administration and space and security management
Oracle
Developer 2000 and Designer 2000
Database modeling, application development
Popkin Software
System Architect 2001
Data modeling, object modeling, process modeling, structured analysis/design
Platinum Technology
Platinum Enterprice Modeling Suite: Erwin, BPWin, Paradigm Plus
Data, process, and business component modeling
Persistence Inc.
Pwertier
Mapping from O-O to relational model
Rational
Rational Rose
Modeling in UML and application generation in C++ and JAVA
Rogue Ware
RW Metro
Mapping from O-O to relational model
Resolution Ltd.
Xcase
Conceptual modeling up to code maintenance
Sybase
Enterprise Application Suite
Data modeling, business logic modeling
Visio
Visio Enterprise
Data modeling, design and reengineering Visual Basic and Visual C++
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
3-15
รูปที่ 3.24 แผนภาพ อีอาร (ER Diagram)
สําหรับฐานขอมูล BANK
3.7
ปญหาเกี่ยวกับสัญกรณอีอาร (ER notation) แบบจําลอง อีอาร ในรูปแบบแรกเริ่มไมสนับสนุนการทํา Specialization/Generalization abstraction
3.8
แบบจําลอง Extended Entity-Relationship (EER) • • •
รูปที่ 3.25 เคารางระดับ แนวคิด (Conceptual schema) ของ COMPANY ใน
รูปแบบแผนภาพ UML
เพิ่ม Set-subset relationships เพิ่ม Specialization/Generalization Hierarchies ในบทถัดไปจะเปนการนําเสนอวาแบบจําลอง อีอาร สามารถขยายความสามารถในดานตางๆ เชน Setsubset relationships และ Specialization/Generalization Hierarchies ไดอยางไร รวมถึงการ สรางแผนภาพ EER (EER Diagram)
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
3-16
แบบฝกหัด 1. 2.
จงอธิบายความแตกตางระหวาง Attribute และ Value set จงอธิบายความสัมพันธแบบวนซ้ํา(Recursive relationship type) พรอมยกตัวอยางของ ความสัมพันธแบบวนซ้ํา 3. ใหพิจารณาแผนภาพ อีอาร ของฐานขอมูล BANK ในรูปที่ 3.24 เพื่อตอบคําถาม • แสดงชื่อของเอนทิตี (entity type) • แสดงชื่อของเอนทิตีชนิดออน (Weak entity type) เอนทิตีระบุ (Identifying entity type) ความสัมพันธระบุ (Identifying relationship type) และ Partial key • ถากําหนดใหลูกคา (CUSTOMER) จะมีบัญชีเงินกู(LOAN)หรือไมก็ไดแตถามีแตละคนจะมีไดไม เกิน 2 บัญชี และบัญชีเงินกูแตละบัญชีจะตองมีชื่อลูกคาอยางนอยหนึ่งคน ใหแสดง (min,max) constraintของความสัมพันธ L-C