โมเดลเชิงตรรกะและฟิสิคัลใน erwin data modeler การสร้างความสัมพันธ์ระหว่างเอนทิตี บทบาทของคุณลักษณะในเออร์วินคืออะไร

การสร้างระบบข้อมูลสมัยใหม่เป็นงานที่ซับซ้อน การแก้ปัญหาต้องใช้เทคนิคและเครื่องมือพิเศษ ไม่น่าแปลกใจที่เมื่อเร็วๆ นี้ในหมู่นักวิเคราะห์ระบบและนักพัฒนา มีความสนใจเพิ่มขึ้นอย่างมากใน 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 คือชื่อของข้อจำกัดหรือดัชนี