การสร้างระบบข้อมูลสมัยใหม่เป็นงานที่ซับซ้อน การแก้ปัญหาต้องใช้เทคนิคและเครื่องมือพิเศษ ไม่น่าแปลกใจที่เมื่อเร็วๆ นี้ในหมู่นักวิเคราะห์ระบบและนักพัฒนา มีความสนใจเพิ่มขึ้นอย่างมากใน CASE (ซอฟต์แวร์ช่วยคอมพิวเตอร์/วิศวกรรมระบบ) - เทคโนโลยีและเครื่องมือของ CASE ที่ทำให้สามารถจัดระบบและทำให้ทุกขั้นตอนของการพัฒนาซอฟต์แวร์เป็นอัตโนมัติได้สูงสุด
หนังสือที่นำเสนอแก่ผู้อ่านเป็นแนวทางปฏิบัติในการสร้างระบบข้อมูลโดยใช้เครื่องมือวิเคราะห์ การออกแบบ และสร้างโค้ดที่มีประสิทธิภาพจากเทคโนโลยี PLATINUM - BPwin และ ERwin นอกจากนี้ยังมีคำอธิบายวิธีการวิเคราะห์โครงสร้างและการออกแบบแบบจำลองข้อมูลตามขอบเขตที่จำเป็นสำหรับการปฏิบัติงานจริง การประยุกต์ใช้วิธีการต่างๆ จะแสดงพร้อมตัวอย่าง
หนังสือเล่มนี้เขียนขึ้นบนพื้นฐานของประสบการณ์ส่วนตัวของผู้เขียนที่ได้รับในขณะที่พัฒนาระบบข้อมูล การบรรยาย และการดำเนินการชั้นเรียนเชิงปฏิบัติเกี่ยวกับเทคโนโลยี CASE และเครื่องมือของ CASE ที่ศูนย์ฝึกอบรมของบริษัท Interface Ltd. ส่งถึงผู้เชี่ยวชาญในสาขาเทคโนโลยีสารสนเทศ: นักวิเคราะห์ระบบ ผู้จัดการโครงการ นักพัฒนา - และยังมีประโยชน์สำหรับนักศึกษาระดับปริญญาตรีและบัณฑิตศึกษาที่กำลังศึกษาพื้นฐานของการวิเคราะห์ระบบและการออกแบบระบบสารสนเทศ
หนังสือ:
ความสัมพันธ์คือความสัมพันธ์เชิงตรรกะระหว่างเอนทิตี แต่ละความสัมพันธ์ควรเรียกว่าคำกริยาหรือวลี (Relationship Verb Phrases) (รูปที่ 2.20) ชื่อความสัมพันธ์แสดงถึงข้อจำกัดหรือกฎเกณฑ์ทางธุรกิจ และทำให้อ่านไดอะแกรมได้ง่ายขึ้น ตัวอย่างเช่น:
ลูกค้าทุกคน <размещает> คำสั่งซื้อ;
ทุกการสั่งซื้อ <выполняется> พนักงาน.
ข้าว. 2.20. ชื่อความสัมพันธ์ - วลีกริยาความสัมพันธ์
การเชื่อมต่อแสดงให้เห็นว่าคำสั่งซื้อใดที่ลูกค้าได้ดำเนินการและพนักงานคนใดกำลังดำเนินการตามใบสั่ง ตามค่าเริ่มต้น ชื่อการเชื่อมต่อจะไม่แสดงในไดอะแกรม ในการแสดงชื่อ ในเมนูบริบทที่ปรากฏขึ้นหากคุณคลิกซ้ายที่ตำแหน่งใดๆ ในไดอะแกรมที่ไม่ถูกครอบครองโดยออบเจ็กต์โมเดล ให้เลือก ตัวเลือกการแสดง/ความสัมพันธ์ จากนั้นเปิดใช้งานตัวเลือก วลีคำกริยา
ในระดับตรรกะ คุณสามารถสร้างความสัมพันธ์ที่ระบุแบบหนึ่งต่อกลุ่ม ความสัมพันธ์แบบกลุ่มต่อกลุ่ม และความสัมพันธ์แบบไม่ระบุตัวตนแบบหนึ่งต่อกลุ่ม (ตามลำดับ ปุ่มเหล่านี้คือจากซ้ายไปขวาในเครื่องมือ จานสี)
IDEF1X แยกความแตกต่างระหว่างเอนทิตีที่ขึ้นต่อกันและเอนทิตีอิสระ ประเภทของเอนทิตีถูกกำหนดโดยความสัมพันธ์กับเอนทิตีอื่น ความสัมพันธ์ที่ระบุถูกสร้างขึ้นระหว่างเอนทิตีอิสระ (จุดสิ้นสุดระดับบนสุดของความสัมพันธ์) และเอนทิตีที่ขึ้นอยู่กับ (จุดสิ้นสุดระดับย่อยของความสัมพันธ์) เมื่อมีการดึงความสัมพันธ์ที่ระบุออกมา ERwin จะแปลงเอนทิตีย่อยให้เป็นเอนทิตีที่ขึ้นต่อกันโดยอัตโนมัติ เอนทิตีที่ขึ้นต่อกันจะแสดงด้วยสี่เหลี่ยมมุมมน (entity คำสั่ง ในรูป 2.21) อินสแตนซ์ของเอนทิตีที่ขึ้นต่อกันถูกกำหนดผ่านความสัมพันธ์กับเอนทิตีหลักเท่านั้น นั่นคือในโครงสร้างในรูป 2.21 ข้อมูลเกี่ยวกับคำสั่งซื้อไม่สามารถป้อนได้และไม่มีความหมายหากไม่มีข้อมูลเกี่ยวกับลูกค้าที่สั่งซื้อ เมื่อมีการสร้างความสัมพันธ์ในการระบุ คุณลักษณะของคีย์หลักของเอนทิตีหลักจะถูกโอนไปยังคีย์หลักของเอนทิตีลูกโดยอัตโนมัติ การดำเนินการเพิ่มแอตทริบิวต์ให้กับเอนทิตีลูกเมื่อสร้างความสัมพันธ์นี้เรียกว่าการย้ายแอตทริบิวต์ ในเอนทิตีลูก คุณลักษณะใหม่จะถูกทำเครื่องหมายเป็นคีย์ต่างประเทศ - (FK)
ข้าว. 2.21. การระบุความสัมพันธ์ระหว่างตารางอิสระและตารางขึ้นอยู่กับ
ในอนาคต เมื่อสร้างสคีมาฐานข้อมูล คุณลักษณะคีย์หลักจะได้รับแอตทริบิวต์ NOT NULL ซึ่งหมายความว่าเป็นไปไม่ได้ที่จะสร้างรายการในตารางคำสั่งซื้อโดยไม่มีข้อมูลเกี่ยวกับหมายเลขลูกค้า
เมื่อมีการสร้างความสัมพันธ์ที่ไม่ระบุตัวตน (รูปที่ 2.22) เอนทิตีย่อยยังคงเป็นอิสระ และคุณลักษณะคีย์หลักของเอนทิตีหลักจะโยกย้ายไปยังส่วนประกอบที่ไม่ใช่คีย์ของเอนทิตีหลัก ความสัมพันธ์ที่ไม่ระบุตัวตนถูกใช้เพื่อเชื่อมโยงเอนทิตีอิสระ
ข้าว. 2.22. ความสัมพันธ์ที่ไม่ระบุตัวตน
อินสแตนซ์เอนทิตี พนักงาน สามารถดำรงอยู่ได้โดยอิสระจากอินสแตนซ์ใดๆ ของเอนทิตี แผนก, กล่าวคือ พนักงานสามารถทำงานในองค์กรได้โดยไม่ต้องจดทะเบียนในแผนกใดๆ
การเชื่อมต่อที่ระบุจะแสดงบนแผนภาพเป็นเส้นทึบโดยมีจุดหนาที่ปลายลูกของการเชื่อมต่อ (ดูรูปที่ 2.21) ส่วนที่ไม่ระบุจะแสดงเป็นเส้นประ (รูปที่ 2.22)
หากต้องการสร้างการเชื่อมต่อใหม่:
วางเคอร์เซอร์บนปุ่มที่ต้องการในแถบเครื่องมือ (ระบุหรือไม่ระบุการเชื่อมต่อ) แล้วคลิกปุ่มซ้ายของเมาส์ (รูปที่ 2.2)
คลิกก่อนบนรายการหลัก จากนั้นคลิกที่เอนทิตีลูก
รูปทรงของสายสื่อสารสามารถเปลี่ยนแปลงได้ ในการดำเนินการนี้ คุณจะต้องจับเส้นเชื่อมต่อที่ต้องการด้วยเมาส์แล้วย้ายจากที่หนึ่งไปยังอีกที่หนึ่งจนกว่าเส้นจะเริ่มดูดีขึ้น
ปุ่มในแถบเครื่องมือ
สอดคล้องกับลิงค์ระบุปุ่ม
ความสัมพันธ์และปุ่มแบบกลุ่มต่อกลุ่ม
สอดคล้องกับความสัมพันธ์ที่ไม่ระบุตัวตน
หากต้องการแก้ไขคุณสมบัติของความสัมพันธ์ ให้คลิกขวาที่ความสัมพันธ์และเลือกตัวแก้ไขความสัมพันธ์จากเมนูบริบท
ในแท็บทั่วไปของกล่องโต้ตอบที่ปรากฏขึ้น คุณสามารถตั้งค่าพลังงาน ชื่อ และประเภทการเชื่อมต่อได้ (รูปที่ 2.23)
พลังการสื่อสาร (Cardinality) -ทำหน้าที่เพื่อแสดงอัตราส่วนของจำนวนอินสแตนซ์ของเอนทิตีหลักต่อจำนวนอินสแตนซ์ของเด็ก
กำลังมีสี่ประเภท (รูปที่ 2.24):
กรณีทั่วไปที่อินสแตนซ์หนึ่งของเอนทิตีหลักสอดคล้องกับ 0, 1 หรือหลายอินสแตนซ์ของเอนทิตีย่อยไม่ได้ทำเครื่องหมายด้วยสัญลักษณ์ใดๆ
สัญลักษณ์ P ทำเครื่องหมายกรณีที่อินสแตนซ์หนึ่งของเอนทิตีหลักสอดคล้องกับ 1 หรือหลายอินสแตนซ์ของเอนทิตีย่อย (ไม่รวมค่าศูนย์)
สัญลักษณ์ Z ทำเครื่องหมายกรณีที่หนึ่งอินสแตนซ์ของเอนทิตีหลักสอดคล้องกับ 0 หรือ 1 อินสแตนซ์ของเอนทิตีย่อย (ไม่รวมค่าหลายค่า)
ตัวเลขจะทำเครื่องหมายกรณีของการจับคู่แบบตรงทั้งหมด เมื่ออินสแตนซ์หนึ่งของเอนทิตีหลักสอดคล้องกับจำนวนอินสแตนซ์ของเอนทิตีย่อยที่กำหนดไว้ล่วงหน้า
ข้าว. 2.23. กล่องโต้ตอบตัวแก้ไขความสัมพันธ์
ตามค่าเริ่มต้น สัญลักษณ์ที่แสดงถึงความแรงของลิงก์จะไม่แสดงบนไดอะแกรม หากต้องการแสดงชื่อ ในเมนูบริบทที่ปรากฏขึ้นหากคุณคลิกซ้ายที่ตำแหน่งใดๆ ในไดอะแกรมที่ไม่ถูกครอบครองโดยออบเจ็กต์โมเดล ให้เลือก Display Options/Relationship จากนั้นเปิดใช้งานตัวเลือก Cardinality
คำกริยาวลี- วลีที่แสดงถึงความสัมพันธ์ระหว่างเอนทิตีผู้ปกครองและเด็ก สำหรับความสัมพันธ์แบบหนึ่งต่อกลุ่ม ทั้งแบบระบุหรือไม่ระบุ การระบุชื่อที่แสดงถึงลักษณะความสัมพันธ์จากเอนทิตีระดับบนสุดถึงระดับย่อย (ระดับบนสุดถึงระดับล่าง) ก็เพียงพอแล้ว สำหรับความสัมพันธ์แบบกลุ่มต่อกลุ่ม ต้องระบุทั้งชื่อระหว่างผู้ปกครองและเด็กและผู้ปกครอง
ข้าว. 2.24. การกำหนดกำลัง
ประเภทของการเชื่อมต่อ (ระบุ/ไม่ระบุ)สำหรับความสัมพันธ์ที่ไม่ระบุตัวตน คุณสามารถระบุ Nulls ได้ ในกรณีของความสัมพันธ์แบบบังคับ (ไม่มีค่า Null) เมื่อสร้างสคีมาฐานข้อมูล แอตทริบิวต์ของคีย์ภายนอกจะได้รับแอตทริบิวต์ที่ไม่เป็นโมฆะ แม้ว่าคีย์ภายนอกจะไม่ได้เป็นส่วนหนึ่งของคีย์หลักของเอนทิตีลูกก็ตาม ในกรณีที่มีความสัมพันธ์เพิ่มเติม (อนุญาตให้ใช้ค่า Nulls) คีย์นอกอาจเป็น NULL ได้ ความสัมพันธ์แบบไม่ระบุตัวตนที่เป็นตัวเลือกจะถูกทำเครื่องหมายด้วยเพชรโปร่งใสที่ด้านเอนทิตีหลัก (ดูรูปที่ 2.22)
ข้าว. 2.25. แท็บการดำเนินการ Rolename/RI ของกล่องโต้ตอบตัวแก้ไขความสัมพันธ์
ในแท็บคำจำกัดความ คุณสามารถให้คำจำกัดความที่สมบูรณ์ยิ่งขึ้นของความสัมพันธ์เพื่อให้สามารถอ้างอิงถึงความสัมพันธ์ได้ในอนาคต
ในแท็บการดำเนินการ Rolename/RI คุณสามารถตั้งชื่อบทบาทและกฎ Referential Integrity ได้
ชื่อบทบาท (ชื่อการทำงาน) -มันเป็นคำพ้องสำหรับคุณลักษณะของคีย์ภายนอกที่บ่งชี้ว่าคุณลักษณะมีบทบาทอย่างไรในเอนทิตีลูก
ข้าว. 2.26. ชื่อบทบาทที่สำคัญต่างประเทศ
ในตัวอย่างที่แสดงในรูปที่. 2.26 เป็นหลัก พนักงาน คีย์ต่างประเทศ เลขที่แผนก มีชื่อการทำงานว่า "Where Works" ซึ่งบ่งชี้ว่าแอตทริบิวต์นี้มีบทบาทอย่างไรในเอนทิตี ตามค่าเริ่มต้น เฉพาะชื่อบทบาทเท่านั้นที่จะแสดงในรายการแอ็ตทริบิวต์ หากต้องการแสดงชื่อเต็มของแอททริบิวต์ (ทั้งชื่อฟังก์ชันและชื่อบทบาท) ในเมนูบริบทที่ปรากฏขึ้นหากคุณคลิกซ้ายที่ตำแหน่งใดๆ ในไดอะแกรมที่ไม่ถูกครอบครองโดยออบเจ็กต์โมเดล ให้เลือก Display Options/Entities และ จากนั้นเปิดใช้งานคุณสมบัติ Rolename/ option (รูปที่ 2.25) ชื่อเต็มจะแสดงเป็นชื่อฟังก์ชันและชื่อฐานคั่นด้วยจุด (ดูรูปที่ 2.26)
จำเป็นต้องใช้ชื่อบทบาทเมื่อมีการกำหนดแอตทริบิวต์ตั้งแต่สองรายการขึ้นไปของเอนทิตีเดียวกันในขอบเขตเดียวกัน กล่าวคือ มีขอบเขตเดียวกัน แต่มีความหมายต่างกัน ในรูป 2.27 สาระสำคัญ ขายสกุลเงิน มีข้อมูลเกี่ยวกับการแลกเปลี่ยนสกุลเงินที่เกี่ยวข้องกับสองสกุลเงิน - ขายและซื้อ ข้อมูลเกี่ยวกับสกุลเงินมีอยู่ในเอนทิตี สกุลเงิน. ดังนั้นเอนทิตี ขายสกุลเงิน และ สกุลเงิน จะต้องเชื่อมโยงสองครั้งและคีย์หลักคือ - หมายเลขสกุลเงิน ต้องย้ายไปยังเอนทิตีสองครั้ง สกุลเงิน เป็นคีย์ต่างประเทศ จำเป็นต้องแยกแยะระหว่างคุณลักษณะเหล่านี้ ซึ่งมีข้อมูลเกี่ยวกับจำนวนสกุลเงินที่ขายและซื้อ (มีความหมายต่างกัน) แต่อ้างอิงถึงเอนทิตีเดียวกัน สกุลเงิน (มีช่วงของค่าที่เหมือนกัน) ในตัวอย่างในรูป 2.27 คุณลักษณะที่ได้รับชื่อบทบาท ขายแล้ว และ ซื้อแล้ว.
ข้าว. 2.27. กรณีของชื่อบทบาทบังคับ
อีกตัวอย่างหนึ่งของการตั้งชื่อบทบาทที่บังคับคือ การเชื่อมต่อแบบเรียกซ้ำ(บางครั้งเรียกว่า "เบ็ดตกปลา") เมื่อเอนทิตีเดียวกันเป็นทั้งผู้ปกครองและเด็กในเวลาเดียวกัน เมื่อกำหนดความสัมพันธ์แบบเรียกซ้ำ คุณลักษณะจะต้องย้ายเป็นคีย์นอกไปยังคุณลักษณะที่ไม่ใช่คีย์ของเอนทิตีเดียวกัน แอตทริบิวต์ไม่สามารถปรากฏสองครั้งในเอนทิตีเดียวกันภายใต้ชื่อเดียวกัน ดังนั้นจึงต้องได้รับชื่อบทบาท ในรูป 2.26 สาระสำคัญ พนักงาน มีแอตทริบิวต์คีย์หลัก หมายเลขบุคลากร. ข้อมูลเกี่ยวกับผู้จัดการของพนักงานมีอยู่ในเอนทิตีเดียวกัน เนื่องจากผู้จัดการทำงานในองค์กรเดียวกัน หากต้องการอ้างถึงผู้จัดการของพนักงาน คุณควรสร้างความสัมพันธ์แบบเรียกซ้ำ (ในรูปที่ 2.26 ความสัมพันธ์อยู่ในความรับผิดชอบ/ผู้ใต้บังคับบัญชา) และกำหนดชื่อบทบาท (“ผู้จัดการ”) โปรดทราบว่าความสัมพันธ์แบบเรียกซ้ำไม่สามารถระบุได้เท่านั้น มิฉะนั้น คีย์ภายนอกจะต้องเป็นส่วนหนึ่งของคีย์หลัก และได้รับแอตทริบิวต์ NOT NULL เมื่อสร้างสคีมา สิ่งนี้จะทำให้ไม่สามารถสร้างลำดับชั้นได้ - แผนผังการรายงานจะต้องมีรูท - พนักงานที่ไม่รายงานต่อใครก็ตามภายในองค์กร
ความสัมพันธ์คำสั่ง/ติดตามจะแสดงในรูป 2.26 ช่วยให้คุณสามารถจัดเก็บลำดับชั้นของการอยู่ใต้บังคับบัญชาของพนักงานได้ การสื่อสารแบบเรียกซ้ำประเภทนี้เรียกว่า การเรียกซ้ำแบบลำดับชั้นและกำหนดความสัมพันธ์โดยที่ผู้นำ (อินสแตนซ์ของเอนทิตีหลัก) สามารถมีผู้ใต้บังคับบัญชาได้จำนวนมาก (อินสแตนซ์ของเอนทิตีลูก) แต่ผู้ใต้บังคับบัญชามีผู้นำเพียงคนเดียว (รูปที่ 2.28)
การเรียกซ้ำแบบลำดับชั้น การเรียกซ้ำแบบเครือข่าย
ข้าว. 2.28. การอยู่ใต้บังคับบัญชาของอินสแตนซ์เอนทิตีในการเรียกซ้ำแบบลำดับชั้นและการเรียกซ้ำเครือข่าย
การเรียกซ้ำอีกประเภทหนึ่งคือ การเรียกซ้ำเครือข่ายเมื่อผู้นำสามารถมีผู้ใต้บังคับบัญชาได้หลายคน และในทางกลับกัน ผู้ใต้บังคับบัญชาสามารถมีผู้จัดการได้หลายคน การเรียกซ้ำของเครือข่ายกำหนดเว็บของความสัมพันธ์ระหว่างอินสแตนซ์ของเอนทิตีหลักและเอนทิตีลูก นี่เป็นกรณีที่เอนทิตีมีความสัมพันธ์แบบกลุ่มต่อกลุ่มกับตัวมันเอง หากต้องการแก้ไขความสัมพันธ์แบบกลุ่มต่อกลุ่ม คุณต้องสร้างเอนทิตีใหม่ (ความสัมพันธ์แบบกลุ่มต่อกลุ่มจะกล่าวถึงในรายละเอียดด้านล่าง)
ข้าว. 2.29. ตัวอย่างการใช้งานการเรียกซ้ำเครือข่าย
ในรูป 2.29 พิจารณาตัวอย่างการใช้งานการเรียกซ้ำเครือข่าย โครงสร้างนี้จำลองความสัมพันธ์ในครอบครัวระหว่างสมาชิกในครอบครัวไม่ว่าจะซับซ้อนเพียงใด คุณลักษณะ ประเภทความสัมพันธ์ สามารถรับความหมาย “พ่อ-ลูก” “แม่-ลูกสาว” “ปู่-หลาน” “แม่สามี-ลูกสะใภ้” “พ่อตา” เป็นต้น เนื่องจากครอบครัว ความสัมพันธ์เชื่อมโยงคนสองคนเข้าด้วยกันจากแก่นแท้เสมอ สัมพันธ์กับ สาระสำคัญ เครือญาติ มีการสร้างลิงก์ระบุสองลิงก์พร้อมชื่อบทบาท "อาวุโส" และ "จูเนียร์" สมาชิกในครอบครัวแต่ละคนสามารถเชื่อมโยงกับสมาชิกในครอบครัวคนอื่นๆ ได้ ยิ่งไปกว่านั้น ญาติคู่เดียวกันสามารถเชื่อมโยงกันได้ด้วยความสัมพันธ์ในครอบครัวประเภทต่างๆ
หากแอตทริบิวต์ถูกย้ายเป็นคีย์ภายนอกไปยังมากกว่าหนึ่งระดับ ชื่อเต็มของคีย์ต่างประเทศ (ชื่อบทบาท + ชื่อแอ็ตทริบิวต์พื้นฐาน) จะแสดงที่ระดับแรก และจะแสดงเฉพาะชื่อบทบาทในระดับที่สองขึ้นไป ระดับ ในรูป รูปที่ 2.30 แสดงโครงสร้างข้อมูลที่มีเอนทิตี ทีม, สาระสำคัญ ผู้เล่น, ซึ่งเก็บข้อมูลเกี่ยวกับผู้เล่นของแต่ละทีมและนิติบุคคล เป้าหมาย, มีข้อมูลเกี่ยวกับเป้าหมายที่ผู้เล่นแต่ละคนทำคะแนน คุณลักษณะคีย์ต่างประเทศ หมายเลขทีม สาระสำคัญ ผู้เล่น มีชื่อบทบาทว่า "เขาเล่นอยู่ทีมไหน"
ข้าว. 2.30. การย้ายชื่อบทบาท
ในระดับต่อไปโดยพื้นฐานแล้ว เป้าหมาย, แสดงเฉพาะชื่อบทบาทของแอตทริบิวต์คีย์ต่างประเทศที่เกี่ยวข้องเท่านั้น (เขาเล่นอยู่ทีมอะไร)
กฎ Referential Integrity (RI) เป็นโครงสร้างเชิงตรรกะที่แสดงกฎเกณฑ์ทางธุรกิจสำหรับการใช้ข้อมูล และเป็นตัวแทนของกฎการแทรก การแทนที่ และการลบ เมื่อสร้างสคีมาฐานข้อมูลตามตัวเลือกโมเดลเชิงตรรกะที่ระบุในแท็บบทบาท/การดำเนินการ RI กฎความสมบูรณ์ในการอ้างอิงที่ประกาศจะถูกสร้างขึ้น ซึ่งจะต้องกำหนดไว้สำหรับแต่ละความสัมพันธ์ และทริกเกอร์ที่รับประกันความสมบูรณ์ในการอ้างอิง ทริกเกอร์คือโปรแกรมที่ดำเนินการทุกครั้งที่มีการดำเนินการคำสั่งแทรก แทนที่ หรือลบ (INSERT, UPDATE หรือ DELETE) ในรูป 2.30 มีความสัมพันธ์ในการระบุระหว่างเอนทิตี ทีม และ ผู้เล่น. จะเกิดอะไรขึ้นถ้าคุณลบคำสั่ง? อินสแตนซ์เอนทิตี ผู้เล่น ไม่สามารถอยู่ได้หากไม่มีคำสั่ง (แอตทริบิวต์คีย์หลัก เขาเล่นอยู่ทีมอะไร? หมายเลขทีม ไม่สามารถใช้ค่า NULL ได้) ดังนั้นคุณต้องห้ามไม่ให้ลบทีมตราบใดที่มีผู้เล่นอย่างน้อยหนึ่งคน (หากต้องการลบทีมคุณต้องลบผู้เล่นทั้งหมดก่อน) หรือลบผู้เล่นทั้งหมดทันที กับทีม กฎการลบดังกล่าวเรียกว่า "ข้อจำกัด" และ "การเรียงซ้อน" (การจำกัดพาเรนต์และพาเรนต์ CASCADE ดูรูปที่ 2.25) โปรดทราบว่าเอนทิตี ผู้เล่น และ เป้าหมาย, ในทางกลับกัน จะเชื่อมต่อกันด้วยลิงก์ที่ระบุ และหากทีมถูกลบแบบเรียงซ้อน ผู้เล่นทั้งหมดในทีมและประตูทั้งหมดที่พวกเขาทำได้จะถูกลบ การดำเนินการคำสั่งเพื่อลบหนึ่งแถวอาจทำให้มีการลบแถวหลายพันแถวในฐานข้อมูล ดังนั้นคุณควรใช้กฎการลบแบบเรียงซ้อนด้วยความระมัดระวัง หากมีการตั้งค่ากฎข้อจำกัดการลบ หากคุณพยายามลบทีมที่มีผู้เล่นอย่างน้อยหนึ่งคน เซิร์ฟเวอร์ DBMS เชิงสัมพันธ์จะส่งกลับข้อผิดพลาด
ในรูป 2.26 ความสัมพันธ์แบบไม่ระบุตัวตนที่เป็นตัวเลือกถูกสร้างขึ้นระหว่างเอนทิตี แผนก และ พนักงาน. อินสแตนซ์เอนทิตี พนักงาน สามารถดำรงอยู่ได้โดยไม่ต้องมีการอ้างอิงแผนก (แอตทริบิวต์คีย์ต่างประเทศ เขาทำงานที่ไหน? เลขที่แผนก สามารถเป็นโมฆะได้) ในกรณีนี้ คุณสามารถตั้งกฎสำหรับการตั้งค่าให้เป็นศูนย์ได้ - SET NULL เมื่อลบแผนก คุณลักษณะของคีย์ต่างประเทศของเอนทิตี ลูกจ้าง - เขาทำงานที่ไหน? เลขที่แผนก จะเป็นโมฆะ ซึ่งหมายความว่าเมื่อแผนกถูกลบ พนักงานจะยังคงทำงานในองค์กรโดยไม่ได้รับมอบหมายให้แผนกใดๆ และข้อมูลเกี่ยวกับเขาจะถูกบันทึกไว้
สามารถตั้งค่ากฎการลบได้อีกสองกฎ (หาก DBMS รองรับ):
SET DEFAULT - เมื่อทำการลบ คุณลักษณะของคีย์นอกจะถูกกำหนดค่าเริ่มต้น ตัวอย่างเช่น เมื่อทีมถูกลบ ผู้เล่นอาจถูกย้ายไปยังทีมอื่น
NONE - เมื่อลบแล้ว ค่าของแอตทริบิวต์คีย์นอกจะไม่เปลี่ยนแปลง บันทึกเกี่ยวกับนักเตะ “แฮงค์ อินเดอะแอร์” คือหมายถึงทีมที่ไม่มีอยู่อีกต่อไป สถานการณ์นี้เป็นเรื่องปกติสำหรับโต๊ะ "แบน" ตัวอย่างเช่น หากข้อมูลผู้เล่นและทีมถูกจัดเก็บไว้ในไฟล์ dbf คุณสามารถลบรายการทีมโดยไม่ต้องให้ไฟล์ผู้เล่นทราบข้อเท็จจริงที่ว่าไม่มีทีมที่เกี่ยวข้อง ดังนั้น บนเดสก์ท็อปหรือระบบเซิร์ฟเวอร์ไฟล์ ฟังก์ชันที่บังคับใช้กฎความสมบูรณ์ของการอ้างอิงจึงถูกนำมาใช้ในแอปพลิเคชันไคลเอนต์
กฎการลบจะควบคุมสิ่งที่เกิดขึ้นในฐานข้อมูลเมื่อมีการลบแถว ในทำนองเดียวกัน กฎการแทรกและอัปเดตจะควบคุมสิ่งที่เกิดขึ้นกับฐานข้อมูลหากแถวมีการเปลี่ยนแปลงหรือเพิ่ม ตัวอย่างเช่น คุณสามารถตั้งกฎที่อนุญาตให้คุณเพิ่มทีมใหม่ได้ก็ต่อเมื่อมีการลงทะเบียนผู้เล่นอย่างน้อยหนึ่งคนเท่านั้น พฤติกรรมที่ต้องการสามารถทำได้โดยการดำเนินการต่อไปนี้:
กำหนดจุดแข็งของการเชื่อมต่อระหว่างเอนทิตี ทีม และ ผู้เล่น, เท่ากับ "หนึ่งหรือมากกว่า" - 1 หรือมากกว่า (ประเภท P) สันนิษฐานว่ามีการสร้างความสัมพันธ์ในการระบุตัวตนแล้ว
กำหนดการดำเนินการทริกเกอร์ RI "Parent Insert-CASCADE" เพื่อให้เมื่อมีการสร้างแถวใหม่ในตาราง ทีม มีการสร้างแถวอย่างน้อยหนึ่งแถวในตารางลูกโดยอัตโนมัติ ผู้เล่น.
กำหนดการดำเนินการของทริกเกอร์ RI "Parent Delete-CASCADE" ให้กับการเชื่อมต่อ เพื่อให้เมื่อแถวถูกลบออกจากตาราง ทีม แถวหรือแถวที่เกี่ยวข้องจากตาราง ผู้เล่น ก็ถูกลบออกเช่นกัน
ERwin จะกำหนดค่า Referential Integrity เริ่มต้นให้กับแต่ละความสัมพันธ์โดยอัตโนมัติก่อนที่จะเพิ่มลงในไดอะแกรม โหมด RI ที่กำหนดโดย ERwin เป็นค่าเริ่มต้น (แสดงในตาราง 2.4) สามารถเปลี่ยนแปลงได้ในตัวแก้ไข Referential Integrity Default ซึ่งเรียกขึ้นมาโดยการคลิกปุ่มค่าเริ่มต้น RI ในกล่องโต้ตอบเซิร์ฟเวอร์เป้าหมาย (เมนูเซิร์ฟเวอร์/เซิร์ฟเวอร์เป้าหมาย)
ตารางที่ 2.4. ค่า RI ที่กำหนดโดยค่าเริ่มต้นใน ERwin รวมถึงโหมดที่เป็นไปได้สำหรับการสื่อสารแต่ละประเภท
ลิงค์ประจำตัว | อนุญาตให้ใช้ค่า Nulls ได้ | ความสัมพันธ์ที่ไม่ระบุตัวตน (ไม่มี Nulls) | การเชื่อมต่ออย่างเด็ดขาด | |
เด็กลบโหมดที่เป็นไปได้ | จำกัด, เรียงซ้อน, ไม่มี | จำกัด, เรียงซ้อน, ไม่มี, ตั้งค่าเป็นโมฆะ, ตั้งค่าเริ่มต้น | จำกัด, น้ำตก, | |
ไม่มี | ||||
ลูกลบโหมดเริ่มต้น | ไม่มี | ไม่มี | ไม่มี | ไม่มี |
เด็กแทรกโหมดที่เป็นไปได้ | จำกัด, น้ำตก, | จำกัด, เรียงซ้อน, ไม่มี, ตั้งค่าเริ่มต้น | จำกัด, น้ำตก, | |
ไม่มี | ไม่มี | |||
เด็กแทรกโหมดเริ่มต้น | จำกัด | ตั้งค่าเป็นโมฆะ | จำกัด | จำกัด |
โหมดที่เป็นไปได้ของการอัปเดตเด็ก | จำกัด, เรียงซ้อน, ไม่มี | จำกัด, เรียงซ้อน, ไม่มี, ตั้งค่าเป็นโมฆะ, ตั้งค่าเริ่มต้น | จำกัด, เรียงซ้อน, ไม่มี, ตั้งค่าเริ่มต้น | จำกัด, เรียงซ้อน, ไม่มี |
โหมดเริ่มต้นการอัพเดตย่อย | จำกัด | ตั้งค่าเป็นโมฆะ | จำกัด | จำกัด |
ผู้ปกครองลบโหมดที่เป็นไปได้ | จำกัด, เรียงซ้อน, ไม่มี | จำกัด, เรียงซ้อน, ไม่มี, ตั้งค่าเป็นโมฆะ, ตั้งค่าเริ่มต้น | จำกัด, เรียงซ้อน, ไม่มี, ตั้งค่าเริ่มต้น | จำกัด, น้ำตก, |
ไม่มี | ||||
ผู้ปกครองลบโหมดเริ่มต้น | จำกัด | ตั้งค่าเป็นโมฆะ | จำกัด | น้ำตก |
ผู้ปกครองแทรกโหมดที่เป็นไปได้ | จำกัด, เรียงซ้อน, ไม่มี | จำกัด, เรียงซ้อน, ไม่มี, ตั้งค่าเป็นโมฆะ, ตั้งค่าเริ่มต้น | จำกัด, เรียงซ้อน, ไม่มี, ตั้งค่าเริ่มต้น | จำกัด, เรียงซ้อน, ไม่มี |
ผู้ปกครองแทรกโหมดเริ่มต้น | ไม่มี | ไม่มี | ไม่มี | ไม่มี |
อัพเดตผู้ปกครองโหมดที่เป็นไปได้ | จำกัด, เรียงซ้อน, ไม่มี | จำกัด, เรียงซ้อน, ไม่มี, ตั้งค่าเป็นโมฆะ, ตั้งค่าเริ่มต้น | จำกัด, เรียงซ้อน, ไม่มี, ตั้งค่าเริ่มต้น | จำกัด, เรียงซ้อน, ไม่มี |
โหมดเริ่มต้นการอัพเดตผู้ปกครอง | จำกัด | ตั้งค่าเป็นโมฆะ | จำกัด | น้ำตก |
การสื่อสารแบบกลุ่มต่อกลุ่มเป็นไปได้เฉพาะในระดับของตัวแบบข้อมูลเชิงตรรกะเท่านั้น ในรูป รูปที่ 2.31 ด้านบนแสดงตัวอย่างความสัมพันธ์แบบกลุ่มต่อกลุ่ม แพทย์สามารถรักษาคนไข้ได้หลายคน คนไข้สามารถรักษาได้โดยแพทย์หลายคน การเชื่อมต่อดังกล่าวจะแสดงด้วยเส้นทึบซึ่งมีจุดสองจุดที่ปลาย
มาดูวงจรการพัฒนาโดยใช้ตัวอย่างที่ให้ไว้ในบทความของ Codd
ให้เรานึกถึงเนื้อหาของปัญหาโดยย่อ บันทึกของพนักงานได้รับการเก็บรักษาไว้ สำหรับพนักงานแต่ละคน ข้อมูลเกี่ยวกับเด็กและรายการตำแหน่งที่พนักงานคนนี้ดำรงตำแหน่งจะถูกเก็บไว้ สำหรับตำแหน่งต่างๆ จะมีการจัดเก็บข้อมูลเงินเดือนอย่างเป็นทางการที่จัดตั้งขึ้น
ขั้นแรก เรามาสร้างระดับตรรกะของโมเดลกันก่อน เมื่อต้องการทำเช่นนี้ ให้ตั้งค่าโหมดการแสดงเอนทิตี (ระดับการแสดงผล/เอนทิตี) มาสร้างเอนทิตี "พนักงาน" "ลูก" "ประวัติการทำงาน" "ประวัติเงินเดือน" โดยใช้แถบเครื่องมือ เราจะตั้งชื่อเอนทิตีเป็นภาษารัสเซีย
เมื่อเลือกแต่ละเอนทิตีแล้ว เราจะกำหนดคำอธิบายโดยละเอียดเป็นภาษารัสเซียในตัวแก้ไข "คำจำกัดความเอนทิตี" คำอธิบายนี้จะปรากฏในรายงาน ERwin และสามารถแสดงในแผนภูมิได้
ให้เราระบุความเชื่อมโยงระหว่างเอนทิตี ตัวอย่างเช่น "พนักงาน" ถูกเชื่อมโยงโดยความสัมพันธ์ของข้อมูลประจำตัว "เป็นผู้ปกครอง" กับเอนทิตี "ลูก" คำอธิบายความสัมพันธ์จะถูกป้อนลงในเครื่องมือแก้ไข "บรรณาธิการ/ความสัมพันธ์"
ผลลัพธ์ของงานจะแสดงบนแผนภาพ ERwin (รูปที่ 2)
ข้าว. 2. แผนภาพระดับเอนทิตี
ตอนนี้ไปที่โหมดการตั้งค่าแอตทริบิวต์ (ระดับการแสดงผล/แอตทริบิวต์) ในตัวแก้ไข "เอนทิตี/แอตทริบิวต์" เราจะตั้งชื่อแอตทริบิวต์คีย์และไม่ใช่คีย์ในภาษารัสเซีย โปรดทราบว่าสำหรับเอนทิตีลูก “children” แอตทริบิวต์คีย์ “หมายเลขพนักงาน” ไม่ได้ถูกระบุด้วยตนเอง ERwin จัดการการโยกย้ายจากเอนทิตีหลัก สิ่งเดียวกันนี้เกิดขึ้นกับเอนทิตีลูกอื่นๆ
สำหรับแอตทริบิวต์ "ชื่อ" ของเอนทิตี "พนักงาน" เราระบุว่าเป็นคีย์สำรอง (เราจะถือว่าพนักงานทุกคนมีชื่อ/นามสกุลที่ไม่ซ้ำกัน) ในการดำเนินการนี้ หลังจากชื่อแอตทริบิวต์ เราจะวางตัวชี้ AK1 ไว้ในวงเล็บ
ผลลัพธ์ของงานจะแสดงบนแผนภาพ ERwin (รูปที่ 3) ในรูปแบบ IDEF1X
ข้าว. 3. ไดอะแกรมระดับแอตทริบิวต์ในรูปแบบ IDEF1X
มุมมองของไดอะแกรมเดียวกันในรูปแบบ IE (วิศวกรรมสารสนเทศ) แสดงในรูปที่ 4
ข้าว. 4. ไดอะแกรมระดับแอตทริบิวต์ในรูปแบบ IE
เนื่องจากเราระบุชื่อของคุณลักษณะและเอนทิตีเป็นภาษารัสเซีย เพื่อย้ายไปยังระดับทางกายภาพของโมเดล เราควรกำหนดตัวระบุของตาราง คอลัมน์ และข้อจำกัดที่ตรงตามกฎของ DBMS เป้าหมาย (โดยปกติจะหมายถึงการใช้ตัวอักษรละติน ตัวเลข และอักขระพิเศษบางตัว)
ในตัวแก้ไข "Database Schema" ให้ระบุชื่อตารางที่สอดคล้องกันสำหรับแต่ละเอนทิตี จากนั้นในตัวแก้ไข "คำจำกัดความแอตทริบิวต์" เราตั้งชื่อคอลัมน์ตารางที่สอดคล้องกับแอตทริบิวต์เอนทิตี ERwin ยังมีการโยกย้ายชื่อคอลัมน์ไปยังตารางรองอีกด้วย
ในขั้นตอนนี้ คุณยังสามารถใช้ตัวแก้ไข "แอตทริบิวต์เพิ่มเติม" เพื่อกำหนดคุณลักษณะเพิ่มเติมของ PowerBuilder (รูปแบบการแสดงผล การแก้ไขมาสก์ กฎการควบคุม การจัดตำแหน่ง ส่วนหัว และความคิดเห็น)
ตัวแก้ไขข้อกำหนดความสัมพันธ์จะระบุชื่อทางกายภาพของความสัมพันธ์ ซึ่งสอดคล้องกับชื่อของข้อจำกัดที่สร้างโดย ERwin ในฐานข้อมูล
ตอนนี้ทุกอย่างพร้อมสำหรับการสร้างฐานข้อมูลแล้ว และคุณต้องเลือก DBMS เป้าหมาย (หากยังไม่เคยทำมาก่อน) เรามาเลือกกัน เช่น Sybase System 10
ในตัวแก้ไข SYBASE Database Schema เราตั้งค่าประเภทข้อมูลสำหรับคอลัมน์ตาราง
กล่องโต้ตอบที่เลือกประเภทข้อมูลจะแสดงในรูปที่ 5
ข้าว. 5. คำจำกัดความของแบบจำลองทางกายภาพ
ตอนนี้คุณสามารถดำเนินการสร้างฐานข้อมูลต่อไปได้ เมื่อต้องการทำเช่นนี้ ให้เรียกใช้คำสั่ง "Sybase schema generation" ERwin จะสร้างแพ็คเกจของคำสั่งการสร้างฐานข้อมูล SQL รูปที่ 6 แสดงกล่องโต้ตอบสำหรับเลือกพารามิเตอร์การสร้างแพ็คเกจสำหรับสร้างฐานข้อมูล รูปภาพแสดงให้เห็นว่าสามารถตั้งค่าตัวกรองได้ (ไม่ใช่ทุกตารางที่ถูกสร้างขึ้น) สามารถดูแพ็คเกจของคำสั่ง SQL (ดูตัวอย่าง) พิมพ์ บันทึกลงในไฟล์ (รายงาน) และสร้าง (สร้าง)
ข้าว. 6. การเลือกพารามิเตอร์การสร้างฐานข้อมูล
คุณสมบัติ ERwin ขั้นสูง
มีมุมมองที่เป็นไปได้สองประการเกี่ยวกับแบบจำลองข้อมูล และตามลำดับ มีสองระดับของแบบจำลอง ระดับตรรกะแรก (มุมมองของผู้ใช้) หมายถึงการแสดงข้อเท็จจริงโดยตรงจากชีวิตจริง ตัวอย่างเช่น คน โต๊ะ แผนก สุนัข และคอมพิวเตอร์เป็นวัตถุจริง ตั้งชื่อตามภาษาธรรมชาติ โดยมีตัวคั่นคำ (เว้นวรรค จุลภาค ฯลฯ) ในระดับฟิสิคัลของโมเดล จะมีการพิจารณาการใช้ DBMS เฉพาะ ประเภทข้อมูล (เช่น จำนวนเต็มหรือจำนวนจริง) และดัชนีสำหรับตารางจะถูกกำหนด
ERwin มอบความสามารถในการสร้างและจัดการการนำเสนอสองระดับที่แตกต่างกันของไดอะแกรม (แบบจำลอง) เดียว พร้อมทั้งมีตัวเลือกการแสดงผลมากมายในแต่ละระดับ คำว่า "ระดับตรรกะ" ใน ERwin สอดคล้องกับแบบจำลองแนวความคิด
ขั้นตอนของการสร้างแบบจำลองข้อมูล:
· คำจำกัดความของเอนทิตี
· การพิจารณาการพึ่งพาระหว่างเอนทิตี
· การตั้งค่าคีย์หลักและคีย์สำรอง
· คำจำกัดความของคุณลักษณะเอนทิตี
· นำแบบจำลองไปสู่ระดับที่ต้องการของรูปแบบปกติ
·เปลี่ยนไปใช้คำอธิบายทางกายภาพของแบบจำลอง: การกำหนดชื่อเอนทิตีการติดต่อ - ชื่อตาราง, คุณลักษณะเอนทิตี - คุณลักษณะของตาราง;
· การตั้งค่าทริกเกอร์ ขั้นตอน และข้อจำกัด
· การสร้างฐานข้อมูล
เออร์วินสร้างการแสดงภาพ (แบบจำลองข้อมูล) สำหรับปัญหาที่กำลังแก้ไข มุมมองนี้สามารถใช้สำหรับการวิเคราะห์โดยละเอียด การปรับแต่ง และการแจกจ่ายเอกสารที่จำเป็นในวงจรการพัฒนา อย่างไรก็ตาม ERwin ไม่ได้เป็นเพียงเครื่องมือวาดภาพเท่านั้น ERwin จะสร้างฐานข้อมูลโดยอัตโนมัติ (ตาราง ดัชนี ขั้นตอนการจัดเก็บ ทริกเกอร์ Referential Integrity และอ็อบเจ็กต์อื่นๆ ที่จำเป็นในการจัดการข้อมูล)
การสร้างเอนทิตี
ในการเพิ่มเอนทิตีให้กับโมเดล คุณต้องคลิกที่ปุ่มเอนทิตีบนแถบเครื่องมือ (Erwin Toolbox) จากนั้นคลิกที่ตำแหน่งบนไดอะแกรมที่คุณต้องการวางเอนทิตีใหม่ ด้วยการคลิกขวาที่เอนทิตีและเลือกตัวแก้ไขเอนทิตีจากเมนูป๊อปอัป คุณจะสามารถแสดงกล่องโต้ตอบตัวแก้ไขเอนทิตีได้ โดยที่คุณกำหนดชื่อ คำอธิบาย และความคิดเห็นของเอนทิตี
แต่ละเอนทิตีจะต้องถูกกำหนดโดยสมบูรณ์โดยใช้คำอธิบายข้อความในแท็บคำจำกัดความ คำจำกัดความเหล่านี้มีประโยชน์ทั้งในระดับตรรกะ เนื่องจากช่วยให้คุณเข้าใจว่าเอนทิตีคืออะไร และในระดับกายภาพ เนื่องจากสามารถส่งออกเป็นส่วนหนึ่งของสคีมาและใช้ในฐานข้อมูลจริงได้ (สร้างความคิดเห็นใน entert_name) บุ๊กมาร์ก Note, Note2, Note3, UDP (คุณสมบัติที่กำหนดโดยผู้ใช้) ถูกใช้เพื่อเพิ่มความคิดเห็นและคำจำกัดความเพิ่มเติมให้กับเอนทิตี
ในแท็บไอคอน แต่ละเอนทิตีสามารถกำหนดรูปภาพที่จะแสดงในโหมดการดูแบบจำลองที่ระดับไอคอน และรูปภาพที่จะแสดงในระดับอื่นทั้งหมด
แท็บ UDP ของกล่องโต้ตอบตัวแก้ไขเอนทิตีใช้เพื่อกำหนดคุณสมบัติที่ผู้ใช้กำหนด (ผู้ใช้ - คุณสมบัติที่กำหนด) เมื่อคุณคลิกที่ปุ่มสำหรับแท็บนี้ กล่องโต้ตอบ User - Defined Property Editor จะถูกเรียกขึ้นมา (หรือเรียกจากเมนู Edit/UDPs) จำเป็นต้องระบุประเภทของออบเจ็กต์ที่กำลังสร้าง UDP (ไดอะแกรมโดยรวม เอนทิตี คุณลักษณะ ฯลฯ) และประเภทข้อมูล หากต้องการเพิ่มคุณสมบัติใหม่ ให้คลิกปุ่มในตารางแล้วป้อนชื่อ ประเภทข้อมูล ค่าเริ่มต้น และคำจำกัดความ
การสร้างคุณสมบัติ
เพื่ออธิบายแอตทริบิวต์ ให้คลิกขวาที่เอนทิตีและเลือกตัวแก้ไขแอตทริบิวต์จากเมนูที่ปรากฏขึ้น กล่องโต้ตอบตัวแก้ไขแอตทริบิวต์จะปรากฏขึ้น
หากคุณคลิกที่ปุ่มใหม่ ในกล่องโต้ตอบแอตทริบิวต์ใหม่ที่ปรากฏขึ้น คุณสามารถระบุชื่อของแอตทริบิวต์ ชื่อของคอลัมน์ที่สอดคล้องกับแอตทริบิวต์ดังกล่าวในแบบจำลองทางกายภาพ และโดเมนได้ โดเมนแอตทริบิวต์จะถูกใช้เมื่อกำหนดประเภทคอลัมน์ในระดับแบบจำลองทางกายภาพ
สำหรับแอตทริบิวต์คีย์หลัก ในแท็บทั่วไปของกล่องโต้ตอบตัวแก้ไขแอตทริบิวต์ คุณต้องทำเครื่องหมายในหน้าต่างการเลือกคีย์หลัก
แท็บคำจำกัดความ หมายเหตุ และ UDP ทำหน้าที่เดียวกันกับเมื่อกำหนดเอนทิตี แต่อยู่ที่ระดับแอททริบิวต์
เพื่อให้ไดอะแกรมมองเห็นได้มากขึ้น แต่ละแอตทริบิวต์สามารถเชื่อมโยงกับไอคอนได้ ซึ่งสามารถทำได้โดยใช้รายการการเลือกไอคอนในแท็บทั่วไป
สิ่งสำคัญคือต้องตั้งชื่อให้ถูกต้องแก่แอตทริบิวต์ คุณสมบัติจะต้องตั้งชื่อเป็นเอกพจน์และมีความหมายเชิงความหมายที่ชัดเจน
ตามไวยากรณ์ IDEF1X ชื่อแอตทริบิวต์จะต้องไม่ซ้ำกันภายในโมเดล (ไม่ใช่แค่ภายในเอนทิตีเท่านั้น!) ตามค่าเริ่มต้น เมื่อคุณพยายามเพิ่มชื่อแอตทริบิวต์ที่มีอยู่ ERwin จะเปลี่ยนชื่อ ตัวอย่างเช่น หากแอตทริบิวต์ Comment มีอยู่แล้วในโมเดล คุณลักษณะอื่น (ในเอนทิตีอื่น) จะมีชื่อว่า Comment/2 จากนั้น Comment/3 เป็นต้น
เมื่อถ่ายโอนแอตทริบิวต์ภายในและระหว่างเอนทิตี คุณสามารถใช้เทคนิคการลากและวางโดยการเลือกปุ่มในแผงเครื่องมือ
การสร้างการเชื่อมต่อ
หากต้องการสร้างความสัมพันธ์ใหม่ ให้เลือกความสัมพันธ์ที่มีการระบุหรือไม่ระบุในแถบเครื่องมือ (กล่องเครื่องมือ ERwin) คลิกก่อนบนรายการหลัก จากนั้นคลิกที่เอนทิตีลูก
ในแผงเครื่องมือ ปุ่มจะสอดคล้องกับความสัมพันธ์ที่ระบุ ปุ่มความสัมพันธ์แบบกลุ่มต่อกลุ่ม และปุ่มที่สอดคล้องกับความสัมพันธ์ที่ไม่ระบุตัวตน หากต้องการแก้ไขคุณสมบัติของความสัมพันธ์ ให้คลิกขวาที่ความสัมพันธ์และเลือกตัวแก้ไขความสัมพันธ์จากเมนูบริบท
ในแท็บทั่วไปของกล่องโต้ตอบที่ปรากฏขึ้น คุณสามารถตั้งค่าพลังงาน ชื่อ และประเภทการเชื่อมต่อได้
พลังการสื่อสาร (Cardinality)- ทำหน้าที่ระบุอัตราส่วนของจำนวนอินสแตนซ์ของเอนทิตีหลักต่อจำนวนอินสแตนซ์ของเด็ก
พลังมีสี่ประเภท:
กรณีทั่วไปที่อินสแตนซ์หนึ่งของเอนทิตีหลักสอดคล้องกับ 0, 1 หรือหลายอินสแตนซ์ของเอนทิตีย่อยไม่ได้ทำเครื่องหมายด้วยสัญลักษณ์ใดๆ
สัญลักษณ์ P ทำเครื่องหมายกรณีที่หนึ่งอินสแตนซ์ของเอนทิตีหลักสอดคล้องกับ 1 หรือหลายอินสแตนซ์ของเอนทิตีย่อย (ไม่รวมค่า null)
สัญลักษณ์ Z ทำเครื่องหมายกรณีที่หนึ่งอินสแตนซ์ของเอนทิตีหลักสอดคล้องกับ 0 หรือ 1 อินสแตนซ์ของเอนทิตีย่อย (ไม่รวมค่าหลายค่า)
หมายเลขนี้ทำเครื่องหมายกรณีและปัญหาเมื่ออินสแตนซ์หนึ่งของเอนทิตีหลักสอดคล้องกับจำนวนอินสแตนซ์ของเอนทิตีย่อยที่กำหนดไว้ล่วงหน้า
ตามค่าเริ่มต้น สัญลักษณ์ที่แสดงถึงความแรงของลิงก์จะไม่แสดงบนไดอะแกรม หากต้องการแสดงชื่อ ในเมนูบริบทที่ปรากฏขึ้นหากคุณคลิกขวาที่ตำแหน่งใดๆ ในไดอะแกรมที่ไม่ถูกครอบครองโดยออบเจ็กต์โมเดล ให้เลือก Display Options/Relationship จากนั้นเปิดใช้งานตัวเลือก Cardinality
ประเภทของการเชื่อมต่อ (ระบุ/ไม่ระบุ)
IDEF1X แยกความแตกต่างระหว่างเอนทิตีที่ขึ้นต่อกันและเอนทิตีอิสระ ประเภทของเอนทิตีถูกกำหนดโดยความสัมพันธ์กับเอนทิตีอื่น ความสัมพันธ์ที่ระบุถูกสร้างขึ้นระหว่างเอนทิตีอิสระ (จุดสิ้นสุดระดับบนสุดของความสัมพันธ์) และเอนทิตีที่ขึ้นอยู่กับ (จุดสิ้นสุดระดับย่อยของความสัมพันธ์) เมื่อมีการดึงความสัมพันธ์ที่ระบุออกมา ERwin จะแปลงความสัมพันธ์ลูกเป็นความสัมพันธ์แบบพึ่งพาโดยอัตโนมัติ เอนทิตีที่ขึ้นต่อกันจะแสดงด้วยสี่เหลี่ยมมุมมน
อินสแตนซ์ของเอนทิตีที่ขึ้นต่อกันถูกกำหนดผ่านความสัมพันธ์กับเอนทิตีหลักเท่านั้น เมื่อมีการสร้างความสัมพันธ์ในการระบุ คุณลักษณะของคีย์หลักของเอนทิตีหลักจะถูกโอนไปยังคีย์หลักของเอนทิตีลูกโดยอัตโนมัติ การดำเนินการเพิ่มแอตทริบิวต์ให้กับเอนทิตีลูกเมื่อสร้างความสัมพันธ์นี้เรียกว่าการย้ายแอตทริบิวต์ ในเอนทิตีลูก คุณลักษณะใหม่จะถูกทำเครื่องหมายเป็นคีย์ต่างประเทศ - (FK)
เมื่อมีการสร้างความสัมพันธ์ที่ไม่ระบุตัวตน เอนทิตีลูกจะยังคงเป็นอิสระ และคุณลักษณะคีย์หลักของเอนทิตีหลักจะโยกย้ายไปยังส่วนประกอบที่ไม่ใช่คีย์ของเอนทิตีลูก ความสัมพันธ์ที่ไม่ระบุตัวตนถูกใช้เพื่อเชื่อมโยงเอนทิตีอิสระ
การเชื่อมต่อที่ระบุจะแสดงบนไดอะแกรมเป็นเส้นทึบโดยมีจุดหนาที่ปลายชายด์ของการเชื่อมต่อ และการเชื่อมต่อที่ไม่ระบุตัวตนจะแสดงเป็นเส้นประ
สำหรับความสัมพันธ์ที่ไม่ระบุตัวตน คุณสามารถระบุข้อบังคับได้ (ค่า Null ในแท็บทั่วไปของกล่องโต้ตอบตัวแก้ไขความสัมพันธ์) ในกรณีของความสัมพันธ์แบบบังคับ (ไม่มีค่า Null) เมื่อสร้างสคีมาฐานข้อมูล แอตทริบิวต์ของคีย์ภายนอกจะได้รับแอตทริบิวต์ที่ไม่เป็นโมฆะ แม้ว่าคีย์ภายนอกจะไม่ได้เป็นส่วนหนึ่งของคีย์หลักของเอนทิตีลูกก็ตาม ในกรณีที่มีความสัมพันธ์เพิ่มเติม (อนุญาตให้ใช้ค่า Nulls) คีย์นอกอาจเป็น NULL ได้ ความสัมพันธ์แบบไม่ระบุตัวตนที่เป็นตัวเลือกจะถูกทำเครื่องหมายด้วยเพชรโปร่งใสที่ด้านเอนทิตีหลัก
คำกริยาวลี- วลีที่แสดงถึงความสัมพันธ์ระหว่างเอนทิตีผู้ปกครองและเด็ก สำหรับความสัมพันธ์แบบหนึ่งต่อกลุ่ม ทั้งแบบระบุหรือไม่ระบุ การระบุชื่อที่แสดงถึงลักษณะความสัมพันธ์จากเอนทิตีระดับบนสุดถึงระดับย่อย (ระดับบนสุดถึงระดับล่าง) ก็เพียงพอแล้ว สำหรับความสัมพันธ์แบบกลุ่มต่อกลุ่ม ต้องระบุทั้งชื่อระหว่างผู้ปกครองและเด็กและผู้ปกครอง หากต้องการแสดงชื่อ ในเมนูบริบทที่ปรากฏขึ้นหากคุณคลิกขวาที่ใดก็ได้ในไดอะแกรมที่ไม่ถูกครอบครองโดยออบเจ็กต์โมเดล ให้เลือก Display Options/Relationship จากนั้นเปิดใช้งานตัวเลือก Verb Phrase
ชื่อบทบาทหรือชื่อการทำงาน (Rolename)เป็นคำพ้องสำหรับคุณลักษณะของคีย์นอกที่บ่งชี้ว่าคุณลักษณะมีบทบาทอย่างไรในเอนทิตีลูก คุณสามารถตั้งชื่อบทบาทได้ในแท็บการดำเนินการ Rolename/RI ของกล่องโต้ตอบตัวแก้ไขความสัมพันธ์
รูปที่ 1. ชื่อบทบาทที่สำคัญต่างประเทศ
ในตัวอย่างที่แสดงในรูปที่. 1 ในเอนทิตีหมายเลขแผนกของคีย์ต่างประเทศของพนักงานจะมีชื่อบทบาท "ที่ทำงาน" ซึ่งบ่งชี้ว่าคุณลักษณะนี้มีบทบาทอย่างไรในเอนทิตี ตามค่าเริ่มต้น เฉพาะชื่อบทบาทเท่านั้นที่จะแสดงในรายการแอ็ตทริบิวต์ หากต้องการแสดงชื่อแอตทริบิวต์แบบเต็ม (ทั้งชื่อฟังก์ชันและชื่อบทบาท) ในเมนูบริบทที่ปรากฏขึ้นหากคุณคลิกขวาที่ใดก็ได้ในไดอะแกรมที่ไม่ถูกครอบครองโดยออบเจ็กต์โมเดล ให้เลือก Display Options/Entities จากนั้นเปิดใช้งานชื่อบทบาท / คุณสมบัติตัวเลือก ชื่อเต็มจะแสดงเป็นชื่อฟังก์ชันและชื่อฐานคั่นด้วยจุด (รูปที่ 1)
จำเป็นต้องใช้ชื่อบทบาทเมื่อมีการกำหนดคุณลักษณะตั้งแต่สองรายการขึ้นไปของเอนทิตีเดียวกันในขอบเขตเดียวกัน กล่าวคือ มีความหมายเหมือนกันแต่มีความหมายต่างกัน
รูปที่ 2. กรณีของชื่อบทบาทบังคับ
ในรูปที่ 2 เอนทิตีการขายสกุลเงินประกอบด้วยข้อมูลเกี่ยวกับการกระทำการแลกเปลี่ยนสกุลเงินที่เกี่ยวข้องกับสองสกุลเงิน - ขายและซื้อ ข้อมูลเกี่ยวกับสกุลเงินมีอยู่ในเอนทิตีสกุลเงิน ดังนั้น การขายสกุลเงินและเอนทิตีสกุลเงินจะต้องมีการเชื่อมโยงสองครั้ง และคีย์หลัก - หมายเลขสกุลเงินจะต้องถูกโยกย้ายสองครั้งไปยังเอนทิตีสกุลเงินเป็นคีย์ต่างประเทศ จำเป็นต้องแยกแยะระหว่างคุณลักษณะเหล่านี้ ซึ่งมีข้อมูลเกี่ยวกับจำนวนสกุลเงินที่ขายและซื้อ (มีความหมายต่างกัน) แต่อ้างอิงถึงเอนทิตีสกุลเงินเดียวกัน (มีช่วงของค่าทั่วไป) ในตัวอย่างในรูปที่ 2 คุณลักษณะได้รับชื่อบทบาทที่ขายและซื้อแล้ว
อีกตัวอย่างหนึ่งของการใช้ชื่อบทบาทแบบบังคับคือความสัมพันธ์แบบเรียกซ้ำ เมื่อเอนทิตีเดียวกันนั้นเป็นทั้งพาเรนต์และลูก
กฎความสมบูรณ์ของการอ้างอิง (RI)- โครงสร้างเชิงตรรกะที่แสดงกฎเกณฑ์ทางธุรกิจสำหรับการใช้ข้อมูลและเป็นตัวแทนของกฎสำหรับการแทรก การแทนที่ และการลบ คุณสามารถตั้งค่ากฎ Referential Integrity ได้ในแท็บ Rolename/RI Actions ของกล่องโต้ตอบตัวแก้ไขความสัมพันธ์
เมื่อสร้างสคีมาฐานข้อมูลตามตัวเลือกโมเดลเชิงตรรกะ กฎ Referential Integrity ที่ประกาศจะถูกสร้างขึ้น ซึ่งจะต้องกำหนดไว้สำหรับแต่ละความสัมพันธ์ และทริกเกอร์ที่รับประกันความสมบูรณ์ของการอ้างอิง
รูปที่ 3 การย้ายชื่อบทบาท
ในรูปที่ 3 มีความสัมพันธ์ที่ระบุระหว่างเอนทิตีทีมและผู้เล่น จะเกิดอะไรขึ้นถ้าคุณลบคำสั่ง? ผู้เล่นอินสแตนซ์เอนทิตีไม่สามารถอยู่ได้หากไม่มีคำสั่ง (แอตทริบิวต์คีย์หลัก เขาเล่นอยู่ทีมอะไร? หมายเลขทีมไม่สามารถใช้ค่า NULL ได้) ดังนั้นคุณต้องห้ามไม่ให้ลบทีมตราบใดที่มีผู้เล่นอย่างน้อยหนึ่งคนในนั้น หรือลบผู้เล่นทั้งหมดพร้อมกับทีม กฎการลบดังกล่าว (การลบพาเรนต์) เรียกว่า การจำกัดพาเรนต์ (ข้อจำกัด) และพาเรนต์คาสเคด (คาสเคด) ในทางกลับกัน ผู้เล่นและเป้าหมายของเอนทิตีจะเชื่อมต่อกันด้วยลิงก์ที่ระบุ และหากการลบผู้เล่นอยู่ภายใต้กฎการลบแบบเรียงซ้อนสำหรับบันทึกทั้งหมดของเป้าหมายของเขา จากนั้นเมื่อทีมถูกลบ ผู้เล่นทุกคนในทีม และประตูทั้งหมดที่ผู้เล่นเหล่านี้ทำได้จะถูกลบออก
การสื่อสารแบบกลุ่มต่อกลุ่มสามารถทำได้ในระดับแบบจำลองข้อมูลเชิงตรรกะเท่านั้น การเชื่อมต่อดังกล่าวจะแสดงด้วยเส้นทึบซึ่งมีจุดสองจุดที่ปลาย ในการเพิ่มความสัมพันธ์ คุณต้องคลิกที่ปุ่มในแถบเครื่องมือ (กล่องเครื่องมือ ERwin) ก่อน จากนั้นจึงคลิกที่เอนทิตีที่เกี่ยวข้องทั้งสองตามลำดับ
ความสัมพันธ์แบบกลุ่มต่อกลุ่มควรตั้งชื่อ (กริยาวลี) ด้วยสองวลี - ทั้งสองทิศทาง ทำให้อ่านแผนภาพได้ง่ายขึ้น
การสร้างคีย์
แต่ละอินสแตนซ์ของเอนทิตีต้องไม่ซ้ำกันและแตกต่างจากแอตทริบิวต์อื่นๆ
คีย์หลักคือคุณลักษณะหรือกลุ่มของคุณลักษณะที่ระบุอินสแตนซ์ของเอนทิตีโดยไม่ซ้ำกัน คุณลักษณะคีย์หลักในแผนภาพไม่จำเป็นต้องมีการกำหนดพิเศษ - เป็นคุณลักษณะที่อยู่เหนือเส้นแนวนอนในรายการคุณลักษณะ เมื่อเพิ่มแอตทริบิวต์ใหม่ในกล่องโต้ตอบตัวแก้ไขแอตทริบิวต์ เพื่อให้เป็นแอตทริบิวต์คีย์หลัก คุณจะต้องเปิดใช้งานช่องทำเครื่องหมายคีย์หลักที่ด้านล่างของแท็บทั่วไป ในแผนภาพ คุณสามารถเพิ่มคุณลักษณะของคีย์ลงในคีย์หลักได้โดยใช้โหมดการถ่ายโอนคุณลักษณะ (ปุ่มในแถบเครื่องมือ)
เอนทิตีหนึ่งอาจมีแอตทริบิวต์หรือชุดคุณลักษณะหลายรายการที่อ้างว่าเป็นคีย์หลัก ผู้สมัครดังกล่าวเรียกว่า คีย์ที่เป็นไปได้ (คีย์ผู้สมัคร)
คีย์อาจซับซ้อนได้ เช่น ที่มีคุณสมบัติหลายประการ คีย์หลักที่ซับซ้อนไม่จำเป็นต้องมีสัญลักษณ์พิเศษ - เป็นรายการคุณลักษณะที่อยู่เหนือเส้นแนวนอน เมื่อเลือกคีย์หลัก ควรกำหนดการตั้งค่าให้กับคีย์ที่ง่ายกว่า เช่น คีย์ที่มีคุณสมบัติน้อยกว่า
เอนทิตีจำนวนมากมีคีย์ตัวเลือกเพียงคีย์เดียวเท่านั้น นี่จะกลายเป็นคีย์หลัก บางเอนทิตีอาจมีคีย์ที่เป็นไปได้มากกว่าหนึ่งคีย์ จากนั้นหนึ่งในนั้นจะกลายเป็นคีย์หลัก และส่วนที่เหลือจะกลายเป็นคีย์สำรอง
ทางเลือกที่สำคัญเป็นคีย์ตัวเลือกที่ยังไม่กลายเป็นคีย์หลัก
แต่ละคีย์มีดัชนีที่สอดคล้องกัน ซึ่งชื่อจะถูกกำหนดโดยอัตโนมัติด้วย ชื่อคีย์และดัชนีสามารถเปลี่ยนแปลงได้ด้วยตนเองหากต้องการ
ในแผนภาพ คุณลักษณะของคีย์สำรองจะแสดงเป็น (Akn.m.) โดยที่ n คือหมายเลขซีเรียลของคีย์ m คือหมายเลขซีเรียลของคุณลักษณะในคีย์ เมื่อคีย์สำรองมีแอตทริบิวต์หลายรายการ (Akn.m.) จะถูกวางไว้หลังแต่ละรายการ
รูปที่ 4. เอนทิตี "พนักงาน" พร้อมคีย์ที่แสดง
กุญแจต่างประเทศจะถูกสร้างขึ้นโดยอัตโนมัติเมื่อความสัมพันธ์เชื่อมต่อเอนทิตี: ความสัมพันธ์จะสร้างการอ้างอิงถึงคุณลักษณะคีย์หลักในเอนทิตีย่อย และคุณลักษณะเหล่านี้จะสร้างคีย์ภายนอกในเอนทิตีลูก (การย้ายคีย์) คุณลักษณะคีย์ต่างประเทศจะแสดงด้วยสัญลักษณ์ (FK) หลังชื่อ (รูปที่ 4) คุณลักษณะคีย์ต่างประเทศ Where Works หมายเลขแผนก (“ Where Works” คือชื่อบทบาท) ของเอนทิตี Employee คือแอตทริบิวต์คีย์หลัก (PK) ในเอนทิตีแผนก
เอนทิตีที่ขึ้นต่อกันสามารถมีคีย์เดียวกันจากเอนทิตีหลักหลายรายการได้ เอนทิตียังสามารถรับคีย์ต่างประเทศเดียวกันได้หลายครั้งจากพาเรนต์เดียวกันผ่านความสัมพันธ์ที่แตกต่างกันหลายรายการ เมื่อ ERwin ตรวจพบเหตุการณ์ใดเหตุการณ์หนึ่ง ระบบจะรับรู้ว่าแอตทริบิวต์ทั้งสองเหมือนกัน และวางคุณลักษณะของคีย์นอกไว้ในเอนทิตีที่ขึ้นต่อกันเพียงครั้งเดียวเท่านั้น การรวมกันหรือการรวมคุณลักษณะที่เหมือนกันนี้เรียกว่าการรวม
มีหลายกรณีที่การรวมกันไม่เป็นที่พึงปรารถนา ตัวอย่างเช่น เมื่อแอตทริบิวต์ทั้งสองมีชื่อเหมือนกัน แต่จริงๆ แล้วแอตทริบิวต์ทั้งสองมีความหมายต่างกัน และจำเป็นต้องสะท้อนให้เห็นความแตกต่างนี้ในแผนภาพ ในกรณีนี้ จำเป็นต้องใช้ชื่อบทบาทคีย์ต่างประเทศ (รูปที่ 2)
โดเมน
โดเมนสามารถกำหนดเป็นชุดของค่าที่ได้รับมาจากค่าแอตทริบิวต์ แต่ละแอตทริบิวต์สามารถกำหนดได้บนโดเมนเดียวเท่านั้น แต่สามารถกำหนดแอตทริบิวต์ได้หลายรายการในแต่ละโดเมน แนวคิดของโดเมนไม่เพียงแต่รวมถึงประเภทข้อมูลเท่านั้น แต่ยังรวมถึงช่วงของค่าข้อมูลด้วย ตัวอย่างเช่น คุณสามารถกำหนดโดเมนอายุเป็นจำนวนเต็มบวก และกำหนดแอตทริบิวต์อายุของพนักงานให้เป็นของโดเมนนั้น
ใน ERwin โดเมนสามารถกำหนดได้เพียงครั้งเดียวและสามารถใช้ได้ทั้งในรูปแบบลอจิคัลและฟิสิคัล
ในระดับตรรกะ โดเมนสามารถอธิบายได้โดยไม่มีคุณสมบัติทางกายภาพเฉพาะ ในระดับกายภาพ พวกเขาได้รับคุณสมบัติเฉพาะที่สามารถเปลี่ยนแปลงได้ด้วยตนเอง ดังนั้น โดเมน "อายุ" สามารถมีประเภทตัวเลขได้ในระดับตรรกะ ในระดับกายภาพ โดเมนจะได้รับประเภทจำนวนเต็ม
หากต้องการสร้างโดเมนในโมเดลเชิงตรรกะ ให้ใช้กล่องโต้ตอบตัวแก้ไขพจนานุกรมโดเมน สามารถเรียกได้จากเมนูแก้ไข/พจนานุกรมโดเมนโดยใช้ปุ่มที่อยู่ในส่วนบนซ้ายของแท็บทั่วไปของกล่องโต้ตอบตัวแก้ไขแอตทริบิวต์ หากต้องการสร้างโดเมนใหม่ในกล่องโต้ตอบตัวแก้ไขพจนานุกรมโดเมน:
· คลิกที่ปุ่มใหม่ กล่องโต้ตอบโดเมนใหม่จะปรากฏขึ้น
· เลือกโดเมนหลักจากรายการโดเมนหลัก โดเมนใหม่สามารถสร้างขึ้นตามโดเมนที่ผู้ใช้สร้างไว้แล้ว หรือตามโดเมนที่มีอยู่เดิม ตามค่าเริ่มต้น Erwin มีโดเมนที่กำหนดไว้ล่วงหน้าสี่โดเมน (สตริง, ตัวเลข, Blob, Datetime) โดเมนใหม่สืบทอดคุณสมบัติทั้งหมดของโดเมนหลัก คุณสมบัติเหล่านี้สามารถกำหนดใหม่ได้ในภายหลัง
· ป้อนชื่อโดเมนในช่องชื่อตรรกะ คุณยังสามารถระบุชื่อโดเมนจริงในฟิลด์ชื่อจริงได้ หากไม่ได้ระบุชื่อฟิสิคัล ชื่อดังกล่าวจะมีค่าดีฟอลต์เป็นชื่อโลจิคัล
· คลิกที่ปุ่มตกลง;
ในกล่องโต้ตอบตัวแก้ไขพจนานุกรมโดเมน คุณสามารถเชื่อมโยงโดเมนกับไอคอนที่จะแสดงในรายการโดเมน (ไอคอนโดเมน) ซึ่งเป็นไอคอนที่แอตทริบิวต์ที่กำหนดบนโดเมนจะแสดงในรูปแบบ (ไอคอนที่สืบทอดมา ตามคุณสมบัติ)
แต่ละโดเมนสามารถอธิบายได้ในแท็บคำจำกัดความ ซึ่งมีความคิดเห็นในแท็บหมายเหตุ หรือคุณสมบัติที่ผู้ใช้กำหนดในแท็บ UDP
ERwin มีเครื่องมือพิเศษที่ช่วยให้สร้างแอตทริบิวต์ใหม่ในโมเดลโดยใช้คำอธิบายโดเมนได้ง่ายขึ้นมาก - เบราว์เซอร์แอตทริบิวต์อิสระ กล่องโต้ตอบนี้ถูกเรียก (และซ่อนไว้) โดยใช้ปุ่มลัด CTRL+B ด้วยความช่วยเหลือนี้ คุณสามารถเลือกโดเมนในรายการและใช้วิธีการลากและวางเพื่อโอนโดเมนไปยังเอนทิตีได้ มันจะสร้างแอตทริบิวต์ใหม่ด้วยชื่อที่ควรตั้งค่าในหน้าต่างชื่อที่สืบทอดโดยแอตทริบิวต์ของกล่องโต้ตอบตัวแก้ไขพจนานุกรมโดเมน หากไม่ได้ระบุค่าฟิลด์ ค่าเริ่มต้นคือชื่อโดเมน
ในระดับฟิสิคัล ไดอะล็อก Domain Dictionary Editor ช่วยให้คุณสามารถแก้ไขคุณสมบัติทางกายภาพของโดเมนได้ ชื่อของแท็บนี้ขึ้นอยู่กับเซิร์ฟเวอร์ฐานข้อมูลที่เลือก ในนั้นคุณสามารถตั้งค่าประเภทข้อมูลเฉพาะที่สอดคล้องกับโดเมน กฎสำหรับการกำหนดค่า NULL กฎการตรวจสอบ (กฎสำหรับการตรวจสอบค่าที่ถูกต้อง) และการตั้งค่าเริ่มต้น กฎการตรวจสอบและค่าเริ่มต้นจะต้องอธิบายและตั้งชื่อไว้ก่อนหน้านี้ หากต้องการเรียกกล่องโต้ตอบสำหรับแก้ไขกฎการตรวจสอบและค่าเริ่มต้น ให้ใช้ปุ่มทางด้านขวาของรายการการเลือกที่เกี่ยวข้อง (ถูกต้องและค่าเริ่มต้น)
ฟังก์ชันของแท็บอื่นๆ ของกล่องโต้ตอบตัวแก้ไขพจนานุกรมโดเมน:
ทั่วไป.การระบุโดเมนพาเรนต์และชื่อที่กำหนดให้กับคอลัมน์เมื่อสร้างขึ้นโดยใช้เบราว์เซอร์คอลัมน์อิสระ ด้วยตัวเลือกทางกายภาพเท่านั้น โดเมนสามารถกำหนดได้ในระดับแบบจำลองทางกายภาพเท่านั้น
ความคิดเห็นการเพิ่มความคิดเห็นให้กับแอตทริบิวต์
ยูดีพี- คุณสมบัติที่ผู้ใช้กำหนด
วิชวลเบสิก- พาวเวอร์บิลเดอร์ การตั้งค่าคุณสมบัติโดเมนพิเศษสำหรับการสร้างโค้ดของแอปพลิเคชันไคลเอนต์
งานที่ต้องทำให้เสร็จ
ตามแบบจำลองการทำงานที่สร้างขึ้นก่อนหน้านี้และคำอธิบายของสาขาวิชา ให้สร้างแบบจำลองเชิงตรรกะโดยใช้แพ็คเกจ ERwin
งานห้องปฏิบัติการหมายเลข 7
พื้นฐานของเออร์วิน การเตรียมแบบจำลองข้อมูลทางกายภาพสำหรับการสร้างฐานข้อมูล
1. วัตถุประสงค์ของงาน:การเรียนรู้หลักการเตรียมแบบจำลองข้อมูลทางกายภาพเพื่อสร้างแค็ตตาล็อกระบบฐานข้อมูล
งานห้องปฏิบัติการหมายเลข 3 การสร้างโมเดลฐานข้อมูลโดยใช้เออร์วิน
วัตถุประสงค์ของการทำงาน– นักเรียนได้รับทักษะการปฏิบัติในการสร้างแบบจำลองข้อมูลเชิงตรรกะและกายภาพโดยใช้ CASE – เครื่องมือการพัฒนาระบบสารสนเทศ
พื้นฐาน
ERwin รองรับการสร้างแบบจำลองฐานข้อมูลแบบไปข้างหน้าและย้อนกลับ ในการสร้างแบบจำลองไปข้างหน้า สกีมาฐานข้อมูลจะถูกอธิบายโดยตรงโดยใช้แผนภาพความสัมพันธ์เอนทิตี เอนทิตีในแผนภาพจะแสดงด้วยสี่เหลี่ยม สี่เหลี่ยมแต่ละอันสามารถมีลักษณะการมองเห็นที่แตกต่างกันได้ แต่ละเอนทิตีจะต้องได้รับชื่อที่ไม่ซ้ำกัน ชื่อเอนทิตีต้องเป็นเอกพจน์ สิ่งนี้ถูกกำหนดโดยข้อเท็จจริงที่ว่าระบบมักจะทำงานกับอินสแตนซ์ที่แยกจากกันของเอนทิตี ในกรณีนี้ แต่ละอินสแตนซ์ของเอนทิตีจะถือเป็นออบเจ็กต์ และเอนทิตีจะถือเป็นคลาสของออบเจ็กต์ หากมีการอธิบายเอนทิตีระหว่างการสร้างแบบจำลองใน BPwin ก็สามารถนำเข้าสู่ ERwin ได้อย่างง่ายดาย ตัวอย่างของไดอะแกรมที่มีเอนทิตีที่สร้างขึ้นจะแสดงในรูป
รูปที่ 4 - ตัวอย่างไดอะแกรมที่มีเอนทิตีที่สร้างขึ้น
การสร้างโมเดลใน ERwin
มีมุมมองที่เป็นไปได้สองประการเกี่ยวกับแบบจำลองข้อมูล และตามลำดับ มีสองระดับของแบบจำลอง ระดับตรรกะแรก (มุมมองของผู้ใช้) หมายถึงการแสดงข้อเท็จจริงโดยตรงจากชีวิตจริง ตัวอย่างเช่น คน โต๊ะ แผนก สุนัข และคอมพิวเตอร์เป็นวัตถุจริง ตั้งชื่อตามภาษาธรรมชาติ โดยมีตัวคั่นคำ (เว้นวรรค จุลภาค ฯลฯ) ในระดับฟิสิคัลของโมเดล จะมีการพิจารณาการใช้ DBMS เฉพาะ ประเภทข้อมูล (เช่น จำนวนเต็มหรือจำนวนจริง) และดัชนีสำหรับตารางจะถูกกำหนด
ERwin มอบความสามารถในการสร้างและจัดการการนำเสนอสองระดับที่แตกต่างกันของไดอะแกรม (แบบจำลอง) เดียว พร้อมทั้งมีตัวเลือกการแสดงผลมากมายในแต่ละระดับ คำว่า "ระดับตรรกะ" ใน ERwin สอดคล้องกับแบบจำลองแนวความคิด
ขั้นตอนของการสร้างแบบจำลองข้อมูล
- คำจำกัดความของเอนทิตี
- การกำหนดการพึ่งพาระหว่างเอนทิตี
- การตั้งค่าคีย์หลักและคีย์สำรอง
- การกำหนดคุณลักษณะของเอนทิตี
- นำแบบจำลองไปสู่ระดับที่ต้องการของรูปแบบปกติ
- เปลี่ยนไปใช้คำอธิบายทางกายภาพของแบบจำลอง: การกำหนดชื่อเอนทิตีการติดต่อ - ชื่อตาราง, คุณลักษณะเอนทิตี - คุณลักษณะของตาราง;
- การตั้งค่าทริกเกอร์ ขั้นตอน และข้อจำกัด
- การสร้างฐานข้อมูล
เออร์วินสร้างการแสดงภาพ (แบบจำลองข้อมูล) สำหรับปัญหาที่กำลังแก้ไข มุมมองนี้สามารถใช้สำหรับการวิเคราะห์โดยละเอียด การปรับแต่ง และการแจกจ่ายเอกสารที่จำเป็นในวงจรการพัฒนา อย่างไรก็ตาม ERwin ไม่ได้เป็นเพียงเครื่องมือวาดภาพเท่านั้น ERwin จะสร้างฐานข้อมูลโดยอัตโนมัติ (ตาราง ดัชนี ขั้นตอนการจัดเก็บ ทริกเกอร์ Referential Integrity และอ็อบเจ็กต์อื่นๆ ที่จำเป็นในการจัดการข้อมูล)
การสร้างเอนทิตี
ในการเพิ่มเอนทิตีให้กับโมเดล คุณต้องคลิกที่ปุ่มเอนทิตีบนแถบเครื่องมือ (Erwin Toolbox) จากนั้นคลิกที่ตำแหน่งบนไดอะแกรมที่คุณต้องการวางเอนทิตีใหม่ ด้วยการคลิกขวาที่เอนทิตีและเลือกตัวแก้ไขเอนทิตีจากเมนูป๊อปอัป คุณจะสามารถแสดงกล่องโต้ตอบตัวแก้ไขเอนทิตีได้ โดยที่คุณกำหนดชื่อ คำอธิบาย และความคิดเห็นของเอนทิตี
แต่ละเอนทิตีจะต้องถูกกำหนดโดยสมบูรณ์โดยใช้คำอธิบายข้อความในแท็บคำจำกัดความ คำจำกัดความเหล่านี้มีประโยชน์ทั้งในระดับตรรกะ เนื่องจากช่วยให้คุณเข้าใจว่าออบเจ็กต์คืออะไรและในระดับฟิสิคัล เนื่องจากสามารถส่งออกเป็นส่วนหนึ่งของสคีมาและใช้ในฐานข้อมูลจริง ( สร้างความคิดเห็นใน Entity_name- บุ๊กมาร์ก Note, Note2, Note3, UDP (คุณสมบัติที่กำหนดโดยผู้ใช้) ถูกใช้เพื่อเพิ่มความคิดเห็นและคำจำกัดความเพิ่มเติมให้กับเอนทิตี
ในแท็บไอคอน แต่ละเอนทิตีสามารถกำหนดรูปภาพที่จะแสดงในโหมดการดูแบบจำลองที่ระดับไอคอน และรูปภาพที่จะแสดงในระดับอื่นทั้งหมด
แท็บ UDP ของกล่องโต้ตอบตัวแก้ไขเอนทิตีใช้เพื่อกำหนดคุณสมบัติที่ผู้ใช้กำหนด (ผู้ใช้ - คุณสมบัติที่กำหนด) เมื่อคุณคลิกที่ปุ่มสำหรับแท็บนี้ กล่องโต้ตอบ User - Defined Property Editor จะถูกเรียกขึ้นมา (หรือเรียกจากเมนู Edit/UDPs) จำเป็นต้องระบุประเภทของออบเจ็กต์ที่กำลังสร้าง UDP (ไดอะแกรมโดยรวม เอนทิตี คุณลักษณะ ฯลฯ) และประเภทข้อมูล หากต้องการเพิ่มคุณสมบัติใหม่ ให้คลิกปุ่มในตารางแล้วป้อนชื่อ ประเภทข้อมูล ค่าเริ่มต้น และคำจำกัดความ
การสร้างคุณสมบัติ
ขั้นตอนต่อไปในการสร้างแบบจำลองคือการตั้งค่าคุณลักษณะสำหรับแต่ละเอนทิตี เมื่อระบุประเภทแอตทริบิวต์ คุณสามารถใช้โดเมนได้ โดเมนเป็นประเภทนามธรรมที่ผู้ใช้กำหนดซึ่งกำหนดให้กับประเภทข้อมูลทางกายภาพใดๆ นอกจากนี้ แต่ละโดเมนสามารถมีค่าเริ่มต้นและกฎสำหรับตรวจสอบข้อมูลอินพุตของตนเองได้ ERwin มอบความสามารถในการบันทึกขั้นตอนทั้งหมดที่เกี่ยวข้องกับการสร้างประเภทข้อมูลของคุณเอง การใช้แนวคิดโดเมน ฐานข้อมูลสามารถพกพาไปยังแพลตฟอร์มฮาร์ดแวร์ที่แตกต่างกันได้
รูปที่ 5 - การสร้างโดเมนใหม่ | รูปที่ 6 - การระบุคุณสมบัติของโดเมนใหม่ |
รูปที่ 7 - ค่าเริ่มต้นสำหรับโดเมนใหม่
รูปที่ 8 - การใช้โดเมนเพื่อระบุประเภทข้อมูลของแอตทริบิวต์
เพื่ออธิบายแอตทริบิวต์ ให้คลิกขวาที่เอนทิตีและเลือกตัวแก้ไขแอตทริบิวต์จากเมนูที่ปรากฏขึ้น กล่องโต้ตอบตัวแก้ไขแอตทริบิวต์จะปรากฏขึ้น
หากคุณคลิกที่ปุ่มใหม่ ในกล่องโต้ตอบแอตทริบิวต์ใหม่ที่ปรากฏขึ้น คุณสามารถระบุชื่อของแอตทริบิวต์ ชื่อของคอลัมน์ที่สอดคล้องกับแอตทริบิวต์ดังกล่าวในแบบจำลองทางกายภาพ และโดเมนได้ โดเมนแอตทริบิวต์จะถูกใช้เมื่อกำหนดประเภทคอลัมน์ในระดับแบบจำลองทางกายภาพ
สำหรับแอตทริบิวต์คีย์หลัก ในแท็บทั่วไปของกล่องโต้ตอบตัวแก้ไขแอตทริบิวต์ คุณต้องทำเครื่องหมายในหน้าต่างการเลือกคีย์หลัก
แท็บคำจำกัดความ หมายเหตุ และ UDP ทำหน้าที่เดียวกันกับเมื่อกำหนดเอนทิตี แต่อยู่ที่ระดับแอททริบิวต์
เพื่อให้ไดอะแกรมมองเห็นได้มากขึ้น แต่ละแอตทริบิวต์สามารถเชื่อมโยงกับไอคอนได้ ซึ่งสามารถทำได้โดยใช้รายการการเลือกไอคอนในแท็บทั่วไป
สิ่งสำคัญคือต้องตั้งชื่อให้ถูกต้องแก่แอตทริบิวต์ คุณสมบัติจะต้องตั้งชื่อเป็นเอกพจน์และมีความหมายเชิงความหมายที่ชัดเจน
ตามไวยากรณ์ IDEF1X ชื่อแอตทริบิวต์จะต้องไม่ซ้ำกันภายในโมเดล (ไม่ใช่แค่ภายในเอนทิตีเท่านั้น!) ตามค่าเริ่มต้น เมื่อคุณพยายามเพิ่มชื่อแอตทริบิวต์ที่มีอยู่ ERwin จะเปลี่ยนชื่อ ตัวอย่างเช่น หากแอตทริบิวต์ Comment มีอยู่แล้วในโมเดล คุณลักษณะอื่น (ในเอนทิตีอื่น) จะมีชื่อว่า Comment/2 จากนั้น Comment/3 เป็นต้น
เมื่อถ่ายโอนแอตทริบิวต์ภายในและระหว่างเอนทิตี คุณสามารถใช้เทคนิคการลากและวางโดยการเลือกปุ่มในแผงเครื่องมือ
หากต้องการสร้างความสัมพันธ์ใหม่ ให้เลือกความสัมพันธ์ที่มีการระบุหรือไม่ระบุในแถบเครื่องมือ (กล่องเครื่องมือ ERwin) คลิกก่อนบนรายการหลัก จากนั้นคลิกที่เอนทิตีลูก
ในแผงเครื่องมือ ปุ่มจะสอดคล้องกับความสัมพันธ์ที่ระบุ ปุ่มความสัมพันธ์แบบกลุ่มต่อกลุ่ม และปุ่มที่สอดคล้องกับความสัมพันธ์ที่ไม่ระบุตัวตน หากต้องการแก้ไขคุณสมบัติของความสัมพันธ์ ให้คลิกขวาที่ความสัมพันธ์และเลือกตัวแก้ไขความสัมพันธ์จากเมนูบริบท
ในแท็บทั่วไปของกล่องโต้ตอบที่ปรากฏขึ้น คุณสามารถตั้งค่าพลังงาน ชื่อ และประเภทการเชื่อมต่อได้
พลังการสื่อสาร (Cardinality)- ทำหน้าที่ระบุอัตราส่วนของจำนวนอินสแตนซ์ของเอนทิตีหลักต่อจำนวนอินสแตนซ์ของเด็ก
พลังมีสี่ประเภท:
· กรณีทั่วไปเมื่ออินสแตนซ์หนึ่งของเอนทิตีหลักสอดคล้องกับ 0, 1 หรือหลายอินสแตนซ์ของเอนทิตีลูกไม่ได้ทำเครื่องหมายด้วยสัญลักษณ์ใดๆ
· สัญลักษณ์ P ทำเครื่องหมายกรณีที่หนึ่งอินสแตนซ์ของเอนทิตีหลักสอดคล้องกับ 1 หรือหลายอินสแตนซ์ของเอนทิตีลูก (ไม่รวมค่าศูนย์)
· สัญลักษณ์ Z ทำเครื่องหมายกรณีที่อินสแตนซ์หนึ่งของเอนทิตีหลักสอดคล้องกับ 0 หรือ 1 อินสแตนซ์ของเอนทิตีย่อย (ไม่รวมค่าหลายค่า)
· ตัวเลขจะเป็นเครื่องหมายกรณีที่อินสแตนซ์หนึ่งของเอนทิตีหลักสอดคล้องกับจำนวนอินสแตนซ์ของเอนทิตีลูกที่กำหนดไว้ล่วงหน้า
ตามค่าเริ่มต้น สัญลักษณ์ที่แสดงถึงความแรงของลิงก์จะไม่แสดงบนไดอะแกรม หากต้องการแสดงชื่อ ในเมนูบริบทที่ปรากฏขึ้นหากคุณคลิกขวาที่ตำแหน่งใดๆ ในไดอะแกรมที่ไม่ถูกครอบครองโดยออบเจ็กต์โมเดล ให้เลือก Display Options/Relationship จากนั้นเปิดใช้งานตัวเลือก Cardinality
ประเภทของการเชื่อมต่อ (ระบุ/ไม่ระบุ)
IDEF1X แยกความแตกต่างระหว่างเอนทิตีที่ขึ้นต่อกันและเอนทิตีอิสระ ประเภทของเอนทิตีถูกกำหนดโดยความสัมพันธ์กับเอนทิตีอื่น ความสัมพันธ์ที่ระบุถูกสร้างขึ้นระหว่างเอนทิตีอิสระ (จุดสิ้นสุดระดับบนสุดของความสัมพันธ์) และเอนทิตีที่ขึ้นอยู่กับ (จุดสิ้นสุดระดับย่อยของความสัมพันธ์) เมื่อมีการดึงความสัมพันธ์ที่ระบุออกมา ERwin จะแปลงความสัมพันธ์ลูกเป็นความสัมพันธ์แบบพึ่งพาโดยอัตโนมัติ เอนทิตีที่ขึ้นต่อกันจะแสดงด้วยสี่เหลี่ยมมุมมน
อินสแตนซ์ของเอนทิตีที่ขึ้นต่อกันถูกกำหนดผ่านความสัมพันธ์กับเอนทิตีหลักเท่านั้น เมื่อมีการสร้างความสัมพันธ์ในการระบุ คุณลักษณะของคีย์หลักของเอนทิตีหลักจะถูกโอนไปยังคีย์หลักของเอนทิตีลูกโดยอัตโนมัติ การดำเนินการเพิ่มแอตทริบิวต์ให้กับเอนทิตีลูกเมื่อสร้างความสัมพันธ์นี้เรียกว่าการย้ายแอตทริบิวต์ ในเอนทิตีลูก คุณลักษณะใหม่จะถูกทำเครื่องหมายเป็นคีย์ต่างประเทศ - (FK)
เมื่อมีการสร้างความสัมพันธ์ที่ไม่ระบุตัวตน เอนทิตีลูกจะยังคงเป็นอิสระ และคุณลักษณะคีย์หลักของเอนทิตีหลักจะโยกย้ายไปยังส่วนประกอบที่ไม่ใช่คีย์ของเอนทิตีลูก ความสัมพันธ์ที่ไม่ระบุตัวตนถูกใช้เพื่อเชื่อมโยงเอนทิตีอิสระ
การเชื่อมต่อที่ระบุจะแสดงบนไดอะแกรมเป็นเส้นทึบโดยมีจุดหนาที่ปลายชายด์ของการเชื่อมต่อ และการเชื่อมต่อที่ไม่ระบุตัวตนจะแสดงเป็นเส้นประ
สำหรับความสัมพันธ์ที่ไม่ระบุตัวตน คุณสามารถระบุข้อบังคับได้ (ค่า Null ในแท็บทั่วไปของกล่องโต้ตอบตัวแก้ไขความสัมพันธ์) ในกรณีของความสัมพันธ์แบบบังคับ (ไม่มีค่า Null) เมื่อสร้างสคีมาฐานข้อมูล แอตทริบิวต์ของคีย์ภายนอกจะได้รับแอตทริบิวต์ที่ไม่เป็นโมฆะ แม้ว่าคีย์ภายนอกจะไม่ได้เป็นส่วนหนึ่งของคีย์หลักของเอนทิตีลูกก็ตาม ในกรณีที่มีความสัมพันธ์เพิ่มเติม (อนุญาตให้ใช้ค่า Nulls) คีย์นอกอาจเป็น NULL ได้ ความสัมพันธ์แบบไม่ระบุตัวตนที่เป็นตัวเลือกจะถูกทำเครื่องหมายด้วยเพชรโปร่งใสที่ด้านเอนทิตีหลัก
คำกริยาวลี- วลีที่แสดงถึงความสัมพันธ์ระหว่างเอนทิตีผู้ปกครองและเด็ก สำหรับความสัมพันธ์แบบหนึ่งต่อกลุ่ม ทั้งแบบระบุหรือไม่ระบุ การระบุชื่อที่แสดงถึงลักษณะความสัมพันธ์จากเอนทิตีระดับบนสุดถึงระดับย่อย (ระดับบนสุดถึงระดับล่าง) ก็เพียงพอแล้ว สำหรับความสัมพันธ์แบบกลุ่มต่อกลุ่ม ต้องระบุทั้งชื่อระหว่างผู้ปกครองและเด็กและผู้ปกครอง หากต้องการแสดงชื่อ ในเมนูบริบทที่ปรากฏขึ้นหากคุณคลิกขวาที่ใดก็ได้ในไดอะแกรมที่ไม่ถูกครอบครองโดยออบเจ็กต์โมเดล ให้เลือก Display Options/Relationship จากนั้นเปิดใช้งานตัวเลือก Verb Phrase
ชื่อบทบาทหรือชื่อการทำงาน (Rolename)เป็นคำพ้องสำหรับคุณลักษณะของคีย์นอกที่บ่งชี้ว่าคุณลักษณะมีบทบาทอย่างไรในเอนทิตีลูก คุณสามารถตั้งชื่อบทบาทได้ในแท็บการดำเนินการ Rolename/RI ของกล่องโต้ตอบตัวแก้ไขความสัมพันธ์
การสร้างคีย์
แต่ละอินสแตนซ์ของเอนทิตีต้องไม่ซ้ำกันและแตกต่างจากแอตทริบิวต์อื่นๆ
คีย์หลักคือคุณลักษณะหรือกลุ่มของคุณลักษณะที่ระบุอินสแตนซ์ของเอนทิตีโดยไม่ซ้ำกัน คุณลักษณะคีย์หลักในแผนภาพไม่จำเป็นต้องมีการกำหนดพิเศษ - เป็นคุณลักษณะที่อยู่เหนือเส้นแนวนอนในรายการคุณลักษณะ เมื่อเพิ่มแอตทริบิวต์ใหม่ในกล่องโต้ตอบตัวแก้ไขแอตทริบิวต์ เพื่อให้เป็นแอตทริบิวต์คีย์หลัก คุณจะต้องเปิดใช้งานช่องทำเครื่องหมายคีย์หลักที่ด้านล่างของแท็บทั่วไป ในแผนภาพ คุณสามารถเพิ่มคุณลักษณะของคีย์ลงในคีย์หลักได้โดยใช้โหมดการถ่ายโอนคุณลักษณะ (ปุ่มในแถบเครื่องมือ)
เอนทิตีหนึ่งอาจมีแอตทริบิวต์หรือชุดคุณลักษณะหลายรายการที่อ้างว่าเป็นคีย์หลัก ผู้สมัครดังกล่าวเรียกว่า คีย์ที่เป็นไปได้ (คีย์ผู้สมัคร)
คีย์อาจซับซ้อนได้ เช่น ที่มีคุณสมบัติหลายประการ คีย์หลักที่ซับซ้อนไม่จำเป็นต้องมีสัญลักษณ์พิเศษ - เป็นรายการคุณลักษณะที่อยู่เหนือเส้นแนวนอน เมื่อเลือกคีย์หลัก ควรกำหนดการตั้งค่าให้กับคีย์ที่ง่ายกว่า เช่น คีย์ที่มีคุณสมบัติน้อยกว่า
เอนทิตีจำนวนมากมีคีย์ตัวเลือกเพียงคีย์เดียวเท่านั้น นี่จะกลายเป็นคีย์หลัก บางเอนทิตีอาจมีคีย์ที่เป็นไปได้มากกว่าหนึ่งคีย์ จากนั้นหนึ่งในนั้นจะกลายเป็นคีย์หลัก และส่วนที่เหลือจะกลายเป็นคีย์สำรอง
ทางเลือกที่สำคัญเป็นคีย์ตัวเลือกที่ยังไม่กลายเป็นคีย์หลัก
แต่ละคีย์มีดัชนีที่สอดคล้องกัน ซึ่งชื่อจะถูกกำหนดโดยอัตโนมัติด้วย ชื่อคีย์และดัชนีสามารถเปลี่ยนแปลงได้ด้วยตนเองหากต้องการ
ในแผนภาพ คุณลักษณะของคีย์สำรองจะแสดงเป็น (Akn.m.) โดยที่ n คือหมายเลขซีเรียลของคีย์ m คือหมายเลขซีเรียลของคุณลักษณะในคีย์ เมื่อคีย์สำรองมีแอตทริบิวต์หลายรายการ (Akn.m.) จะถูกวางไว้หลังแต่ละรายการ
กุญแจต่างประเทศจะถูกสร้างขึ้นโดยอัตโนมัติเมื่อความสัมพันธ์เชื่อมต่อเอนทิตี: ความสัมพันธ์จะสร้างการอ้างอิงถึงคุณลักษณะคีย์หลักในเอนทิตีย่อย และคุณลักษณะเหล่านี้จะสร้างคีย์ภายนอกในเอนทิตีลูก (การย้ายคีย์) คุณลักษณะคีย์ต่างประเทศจะแสดงด้วยสัญลักษณ์ (FK) หลังชื่อ
เอนทิตีที่ขึ้นต่อกันสามารถมีคีย์เดียวกันจากเอนทิตีหลักหลายรายการได้ เอนทิตียังสามารถรับคีย์ต่างประเทศเดียวกันได้หลายครั้งจากพาเรนต์เดียวกันผ่านความสัมพันธ์ที่แตกต่างกันหลายรายการ เมื่อ ERwin ตรวจพบเหตุการณ์ใดเหตุการณ์หนึ่ง ระบบจะรับรู้ว่าแอตทริบิวต์ทั้งสองเหมือนกัน และวางคุณลักษณะของคีย์นอกไว้ในเอนทิตีที่ขึ้นต่อกันเพียงครั้งเดียวเท่านั้น การรวมกันหรือการรวมคุณลักษณะที่เหมือนกันนี้เรียกว่าการรวม
มีหลายกรณีที่การรวมกันไม่เป็นที่พึงปรารถนา ตัวอย่างเช่น เมื่อแอตทริบิวต์ทั้งสองมีชื่อเหมือนกัน แต่จริงๆ แล้วแอตทริบิวต์ทั้งสองมีความหมายต่างกัน และจำเป็นต้องสะท้อนให้เห็นความแตกต่างนี้ในแผนภาพ ในกรณีนี้ คุณต้องใช้ชื่อบทบาทคีย์นอก
ความสัมพันธ์ในไดอะแกรมแสดงด้วยเส้นที่เดินทางจากเอนทิตีหนึ่ง (ตาราง) ไปยังอีกเอนทิตีหนึ่ง แต่ละลิงก์ได้รับการกำหนดชื่อไม่ซ้ำกัน ตารางที่เกี่ยวข้องจะแบ่งออกเป็นตารางหลักและตารางรอง ตารางหลักจะแสดงเป็นรูปสี่เหลี่ยมมุมฉาก ส่วนตารางย่อยจะมีมุมโค้งมน
หลังจากระบุคุณลักษณะทั้งหมดของรูปแบบข้อมูลแล้ว จำเป็นต้องแปลงแบบจำลองเชิงตรรกะที่สร้างขึ้นให้เป็นแบบจำลองทางกายภาพ เพื่อสิ่งนี้มีความจำเป็นต้อง เครื่องมือเลือก รับโมเดลใหม่โดยที่ฐานข้อมูลเป้าหมายเลือก ODBC/ทั่วไป(สำหรับใช้ใน MySQL DBMS) ดูรูปที่ 9 โมเดลของเรา (ดูรูปที่ 4) จะถูกแปลงเป็นรูปแบบดูรูปที่ 11
รูปที่ 9 - การแปลงแบบจำลองเชิงตรรกะเป็นแบบฟิสิคัล
รูปที่ 10 - แบบจำลองทางกายภาพที่ระบุรูปแบบข้อมูล
รูปที่ 11 - การสร้างโค้ด SQL
ออกกำลังกาย
1. สร้างไดอะแกรมด้วยเอนทิตีที่กำหนด (การสร้างแบบจำลองโดยตรง) สำหรับสาขาวิชาที่กำหนด
2. ตั้งค่าคุณลักษณะสำหรับแต่ละเอนทิตีที่กำหนดไว้ เมื่อตั้งค่าแอตทริบิวต์ ให้ใช้โดเมน
3. ป้อนความสัมพันธ์ระหว่างเอนทิตี ตั้งชื่อที่ไม่ซ้ำให้กับการเชื่อมต่อของคุณ
4. ใช้ MYSQL DBMS เพื่อตัดสินใจเกี่ยวกับการสร้างฐานข้อมูลโดยตรงสำหรับโครงการข้อมูลที่ได้รับการออกแบบ
5. รายงานจะต้องมีแบบจำลองแนวคิดและฐานข้อมูลทางกายภาพใน MYSQL DBMS
คำถามเพื่อความปลอดภัย
1. อะไรคือความแตกต่างระหว่างระดับลอจิคัลและฟิสิคัลในการแสดงโมเดลข้อมูลโดยใช้ ERwin?
2. อะไรคือความแตกต่างระหว่างแบบจำลองข้อมูลที่แสดงในรูปแบบของแผนภาพความสัมพันธ์เอนทิตี โมเดลตามคีย์ และแบบจำลองคุณลักษณะแบบเต็ม?
3. องค์ประกอบหลักของแบบจำลองข้อมูลที่นำเสนอตามวิธี IDEF1X มีอะไรบ้าง
รายการประเภทข้อมูลที่ DBMS รองรับต้องได้รับการตรวจสอบกับผู้ผลิต
การเชื่อมต่อคือการพึ่งพาการทำงานระหว่างสองเอนทิตี (โดยเฉพาะ เอนทิตีสามารถเชื่อมต่อกับตัวเองได้) ตัวอย่างเช่น การรู้นามสกุลของพนักงานเป็นสิ่งสำคัญ และต้องรู้ว่าเขาทำงานอยู่ในแผนกใดก็สำคัญไม่แพ้กัน ดังนั้นระหว่างเอนทิตี "แผนก" และ "พนักงาน" จึงมีความสัมพันธ์ "ประกอบด้วย" (แผนกประกอบด้วยพนักงาน) ความสัมพันธ์เป็นแนวคิดระดับลอจิคัลซึ่ง Foreign Key สอดคล้องกันในระดับฟิสิคัล ใน ERwin ความสัมพันธ์จะแสดงด้วยข้อมูลหลัก 5 ส่วน:
· ประเภทของการเชื่อมต่อ (ระบุ ไม่ระบุ หมวดหมู่สมบูรณ์/ไม่สมบูรณ์ การเชื่อมต่อไม่เฉพาะเจาะจง)
· นิติบุคคลหลัก
· นิติบุคคลย่อย (ขึ้นอยู่กับ)
· พลังการสื่อสาร (เชิงจำนวน);
· การยอมรับค่าว่าง (null)
กล่าวกันว่าความสัมพันธ์เป็นการระบุว่ามีการระบุอินสแตนซ์ของเอนทิตีลูกผ่านความสัมพันธ์กับเอนทิตีหลักหรือไม่ คุณลักษณะที่ประกอบขึ้นเป็นคีย์หลักของเอนทิตีหลักจะรวมอยู่ในคีย์หลักของเอนทิตีย่อยด้วย เอนทิตีลูกในความสัมพันธ์ที่ระบุจะขึ้นอยู่กับเสมอ
ความสัมพันธ์กล่าวกันว่าไม่สามารถระบุตัวตนได้ หากมีการระบุอินสแตนซ์ของเอนทิตีลูกนอกเหนือจากผ่านความสัมพันธ์กับเอนทิตีหลัก คุณลักษณะที่ประกอบขึ้นเป็นคีย์หลักของเอนทิตีหลักจะรวมอยู่ในคุณลักษณะที่ไม่ใช่คีย์ของเอนทิตีย่อยด้วย
ในการกำหนดความสัมพันธ์ของ ERwin คุณต้องเลือกประเภทความสัมพันธ์ จากนั้นใช้เมาส์เพื่อเลือกเอนทิตีหลักและรายการย่อย ลิงค์ระบุจะแสดงเป็นเส้นทึบ ไม่ระบุตัวตน - เส้นประ เส้นลงท้ายด้วยจุดบนด้านข้างของเอนทิตีลูก
เมื่อกำหนดความสัมพันธ์ คุณลักษณะคีย์หลักของเอนทิตีหลักจะถูกย้ายไปยังขอบเขตคุณลักษณะที่สอดคล้องกันของเอนทิตีย่อย ดังนั้นจึงไม่ได้ป้อนแอตทริบิวต์ดังกล่าวด้วยตนเอง
คุณลักษณะคีย์หลักของเอนทิตีหลักจะโยกย้ายด้วยชื่อของตนเองตามค่าเริ่มต้น ERwin อนุญาตให้คุณป้อนบทบาทให้พวกเขาได้ เช่น ชื่อใหม่ซึ่งแอตทริบิวต์การย้ายข้อมูลจะแสดงในเอนทิตีย่อย หากแอตทริบิวต์ถูกย้ายหลายครั้ง จำเป็นต้องเปลี่ยนชื่อดังกล่าว ตัวอย่างเช่น เอนทิตี "ธุรกรรมตัวกลาง" มีแอตทริบิวต์ "รหัสองค์กรของผู้ขาย" และ "รหัสองค์กรของผู้ซื้อ" ในกรณีนี้ คีย์หลักของเอนทิตี "องค์กร" ("รหัสองค์กร") มีสองบทบาทในเอนทิตีลูก
ในระดับฟิสิคัล ชื่อบทบาทคือชื่อของคอลัมน์คีย์นอกในตารางลูก
จุดแข็งของความสัมพันธ์คืออัตราส่วนของจำนวนอินสแตนซ์ของเอนทิตีหลักต่อจำนวนอินสแตนซ์ของเอนทิตีลูกที่สอดคล้องกัน สำหรับความสัมพันธ์ใดๆ ที่ไม่ใช่ความสัมพันธ์ที่ไม่เฉพาะเจาะจง ความสัมพันธ์นี้เขียนเป็น 1:n
ERwin ตามวิธี IDEF1X มีตัวเลือก 4 ตัวสำหรับ n ซึ่งแสดงด้วยสัญลักษณ์เพิ่มเติมในเอนทิตีลูก: ศูนย์ หนึ่งรายการขึ้นไป (ค่าเริ่มต้น); ศูนย์หรือหนึ่ง; ตรงกับ N โดยที่ N คือตัวเลขเฉพาะ
การยอมรับค่าว่าง (NULL) ในความสัมพันธ์ที่ไม่ระบุตัวตนจะแสดงโดย ERwin เป็นเพชรว่างที่ด้านเอนทิตีหลักของส่วนโค้งความสัมพันธ์
การกำหนดกำลังตามลำดับ ศูนย์ หนึ่งหรือมากกว่า หนึ่งหรือมากกว่า ศูนย์หรือหนึ่งในรูปแบบ IE จะแสดงในรูปที่ 1 1.
รูปที่ 1. สัญกรณ์พลังการสื่อสารในรูปแบบ IE
ชื่อของความสัมพันธ์ในระดับตรรกะคือ “กริยา” ที่เชื่อมโยงเอนทิตี ชื่อทางกายภาพของลิงก์ (ซึ่งอาจแตกต่างจากชื่อเชิงตรรกะ) สำหรับ ERwin คือชื่อของข้อจำกัดหรือดัชนี