ความสัมพันธ์คือความสัมพันธ์เชิงตรรกะระหว่างเอนทิตี แต่ละความสัมพันธ์ควรเรียกว่ากริยาหรือวลีกริยา ชื่อความสัมพันธ์แสดงถึงข้อจำกัดหรือกฎเกณฑ์ทางธุรกิจ และทำให้อ่านไดอะแกรมได้ง่ายขึ้น ตามค่าเริ่มต้น ชื่อการเชื่อมต่อจะไม่แสดงในไดอะแกรม ในระดับตรรกะ คุณสามารถสร้างความสัมพันธ์ที่ระบุแบบหนึ่งต่อกลุ่ม ความสัมพันธ์แบบกลุ่มต่อกลุ่ม และความสัมพันธ์แบบไม่ระบุตัวตนแบบหนึ่งต่อกลุ่ม ความสัมพันธ์เป็นแนวคิดระดับลอจิคัลซึ่ง Foreign Key สอดคล้องกันในระดับฟิสิคัล ใน ERwin ความสัมพันธ์จะแสดงด้วยข้อมูลหลัก 5 ส่วน:
● ประเภทของการเชื่อมต่อ (ระบุตัวตน ไม่ระบุ หมวดหมู่ที่สมบูรณ์/ไม่สมบูรณ์ การเชื่อมต่อที่ไม่เฉพาะเจาะจง)
● นิติบุคคลหลัก;
● นิติบุคคลย่อย (ขึ้นอยู่กับ);
● พลังการสื่อสาร (เชิงจำนวน);
● การยอมรับค่าว่าง (null)
IDEFIX แยกความแตกต่างระหว่างเอนทิตีที่ต้องพึ่งพาและเอนทิตีอิสระ ประเภทของเอนทิตีถูกกำหนดโดยความสัมพันธ์กับเอนทิตีอื่น ความสัมพันธ์ที่ระบุถูกสร้างขึ้นระหว่างเอนทิตีอิสระ (หลัก) และเอนทิตีที่อยู่ในความอุปการะ (รอง) เอนทิตีที่ขึ้นต่อกันจะแสดงด้วยสี่เหลี่ยมมุมมน เมื่อมีการสร้างความสัมพันธ์ในการระบุ คุณลักษณะของคีย์หลักของเอนทิตีหลักจะถูกโอนไปยังคีย์หลักของเอนทิตีลูกโดยอัตโนมัติ การดำเนินการเพิ่มแอตทริบิวต์ให้กับเอนทิตีลูกเมื่อสร้างความสัมพันธ์นี้เรียกว่าการย้ายแอตทริบิวต์ ในเอนทิตีลูก คุณลักษณะใหม่จะถูกทำเครื่องหมายเป็นคีย์ต่างประเทศ - FK
เมื่อมีการสร้างความสัมพันธ์ที่ไม่ระบุตัวตน เอนทิตีย่อยจะยังคงเป็นอิสระ และคุณลักษณะคีย์หลักของเอนทิตีหลักจะรวมอยู่ในคุณลักษณะที่ไม่ใช่คีย์ของเอนทิตีย่อย ความสัมพันธ์ที่ไม่ระบุตัวตนถูกใช้เพื่อเชื่อมโยงเอนทิตีอิสระ ในการกำหนดความสัมพันธ์ของ ERwin คุณต้องเลือกประเภทความสัมพันธ์ จากนั้นใช้เมาส์เพื่อเลือกเอนทิตีหลักและรายการย่อย ลิงค์ระบุจะแสดงเป็นเส้นทึบ ไม่ระบุตัวตน - เส้นประ เส้นลงท้ายด้วยจุดบนด้านข้างของเอนทิตีลูก
จำนวนสมาชิก - ทำหน้าที่ระบุอัตราส่วนของจำนวนอินสแตนซ์ของเอนทิตีหลักต่อจำนวนอินสแตนซ์ของเด็ก
เอนทิตีมีสี่ประเภท:
· กรณีทั่วไปเมื่ออินสแตนซ์หนึ่งของเอนทิตีหลักสอดคล้องกับ 0, 1 หรือหลายอินสแตนซ์ของเอนทิตีลูก ไม่มีเครื่องหมายใดๆ
· สัญลักษณ์ P ทำเครื่องหมายกรณีที่หนึ่งอินสแตนซ์ของเอนทิตีหลักสอดคล้องกับ 1 หรือหลายอินสแตนซ์ของเอนทิตีลูก (ไม่รวมค่าศูนย์)
· สัญลักษณ์ Z ทำเครื่องหมายกรณีที่อินสแตนซ์หนึ่งของเอนทิตีหลักสอดคล้องกับ 0 หรือ 1 อินสแตนซ์ของเอนทิตีย่อย (ไม่รวมค่าหลายค่า)
· ตัวเลขจะทำเครื่องหมายกรณีของการจับคู่แบบตรงทั้งหมด เมื่ออินสแตนซ์หนึ่งของเอนทิตีหลักสอดคล้องกับจำนวนอินสแตนซ์ของเอนทิตีลูกที่กำหนดไว้ล่วงหน้า
· การยอมรับค่าว่าง (NULL) ในความสัมพันธ์ที่ไม่ระบุตัวตนนั้น ERwin แสดงให้เห็นเป็นเพชรว่างบนส่วนโค้งความสัมพันธ์จากด้านข้างของเอนทิตีหลัก
ชื่อของการเชื่อมต่อในระดับลอจิคัลคือคำกริยาที่เชื่อมต่อเอนทิตี ชื่อลิงก์ทางกายภาพ (ซึ่งอาจแตกต่างจากชื่อลิงก์แบบลอจิคัล) สำหรับ ERWin หมายถึงข้อจำกัดหรือชื่อดัชนี หากต้องการแสดงชื่อความสัมพันธ์ ให้เลือกตัวเลือกจากเมนู: รูปแบบ/การแสดงความสัมพันธ์/วลีกริยา
เอนทิตีบางแห่งกำหนดหมวดหมู่ทั้งหมดของออบเจ็กต์ประเภทเดียวกัน ใน ERwin ในกรณีนี้ เอนทิตีจะถูกสร้างขึ้นเพื่อกำหนดหมวดหมู่และสำหรับแต่ละองค์ประกอบของหมวดหมู่ จากนั้นจึงแนะนำความสัมพันธ์ในการจัดหมวดหมู่สำหรับรายการเหล่านั้น เอนทิตีหลักของหมวดหมู่เรียกว่า supertype และรายการย่อยเรียกว่าชนิดย่อย
ตัวอย่างเช่น เอนทิตี "เอกสารขาเข้า" อาจเป็นทั้งคำขอและคำสั่งซื้อ ชุดแรกและชุดที่สองมีชุดแอตทริบิวต์ที่แตกต่างกันและทับซ้อนกันบางส่วน (จุดตัดขั้นต่ำของประเภทย่อยคือคีย์หลัก) ส่วนทั่วไปของแอตทริบิวต์เหล่านี้ รวมถึงคีย์หลัก จะถูกวางไว้ในเอนทิตีประเภทพิเศษ "เอกสารขาเข้า" ส่วนต่างๆ (เช่น ข้อมูลเกี่ยวกับเนื้อหา ผู้ส่ง) จะถูกวางไว้ในเอนทิตีประเภทย่อย
ในเอนทิตี supertype จะมีการแนะนำแอตทริบิวต์ discriminator ที่ช่วยให้คุณสามารถแยกแยะความแตกต่างระหว่างอินสแตนซ์เฉพาะของเอนทิตี - ชนิดย่อย
ขึ้นอยู่กับว่าเอนทิตีประเภทย่อยที่เป็นไปได้ทั้งหมดรวมอยู่ในแบบจำลองหรือไม่ ความสัมพันธ์เชิงหมวดหมู่จะเสร็จสมบูรณ์หรือไม่สมบูรณ์
รูปที่ 1.4 - ตัวอย่างชุดหมวดหมู่ที่ไม่สมบูรณ์
รูปที่ 1.5 - ตัวอย่างชุดหมวดหมู่ที่สมบูรณ์
3. เอนทิตีสามารถเป็นเอนทิตีทั่วไปในความสัมพันธ์ในการจัดหมวดหมู่จำนวนเท่าใดก็ได้
4. คุณลักษณะของคีย์หลักของเอนทิตีหมวดหมู่จะต้องตรงกับคุณลักษณะของคีย์หลักของเอนทิตีทั่วไป
5. อินสแตนซ์ทั้งหมดของเอนทิตีหมวดหมู่มีค่าตัวแยกแยะที่เหมือนกัน และอินสแตนซ์ทั้งหมดของหมวดหมู่อื่น ๆ จะต้องมีค่าตัวแยกแยะที่แตกต่างกัน (ดูรูปที่ 4 และรูปที่ 5)
บทบาท
ชื่อบทบาท (ชื่อที่ใช้งานได้) เป็นคำพ้องสำหรับแอตทริบิวต์คีย์นอกที่บ่งชี้ว่าแอตทริบิวต์มีบทบาทอย่างไรในเอนทิตีลูก ตามค่าเริ่มต้น เฉพาะชื่อบทบาทเท่านั้นที่จะแสดงในรายการแอ็ตทริบิวต์ หากต้องการแสดงชื่อเต็มของคุณลักษณะ (ทั้งชื่อฟังก์ชันและชื่อบทบาท) ให้เลือก แสดงรูปแบบ/เอนทิตี จากเมนูบริบท จากนั้นเปิดใช้งานตัวเลือก ชื่อบทบาท/คุณลักษณะ ชื่อเต็มจะแสดงเป็นชื่อใช้งานและชื่อฐาน คั่นด้วยจุด ชื่อบทบาทถูกระบุบนแท็บ Rolename ของกล่องโต้ตอบความสัมพันธ์ หน้าต่างนี้ถูกเรียกขึ้นมาโดยการดับเบิลคลิกที่สายเชื่อมต่อ
จำเป็นต้องใช้ชื่อบทบาทเมื่อมีการกำหนดคุณลักษณะตั้งแต่สองรายการขึ้นไปของเอนทิตีเดียวกันในขอบเขตเดียวกัน กล่าวคือ มีความหมายเหมือนกันแต่มีความหมายต่างกัน
การแสดง.
มุมมอง หรือที่บางครั้งเรียกว่าตารางชั่วคราวหรือตารางที่ได้รับ คือออบเจ็กต์ฐานข้อมูลที่ข้อมูลไม่ได้ถูกจัดเก็บอย่างถาวร เช่นเดียวกับในตาราง แต่ถูกสร้างขึ้นแบบไดนามิกเมื่อมีการเข้าถึงมุมมอง มุมมองไม่สามารถมีอยู่ได้ด้วยตัวเอง แต่ถูกกำหนดไว้ในแง่ของตารางตั้งแต่หนึ่งตารางขึ้นไปเท่านั้น การใช้มุมมองช่วยให้ผู้ออกแบบฐานข้อมูลสามารถจัดเตรียมมุมมองข้อมูลที่แตกต่างกันให้กับผู้ใช้หรือกลุ่มผู้ใช้แต่ละราย ซึ่งช่วยแก้ปัญหาความง่ายในการใช้งานและความปลอดภัยของข้อมูล
เพื่อสร้างความสัมพันธ์ระหว่างเอนทิตีและสร้างคีย์ต่างประเทศ ERWin ให้ความสามารถในการแบ่งประเภทความสัมพันธ์ออกเป็นหลายตัวเลือก:
- การระบุความสัมพันธ์ - ความสัมพันธ์ที่กำหนดการติดต่อแบบหนึ่งต่อหนึ่งระหว่างอินสแตนซ์ของเอนทิตีหนึ่งและอินสแตนซ์เดียวของเอนทิตีที่เกี่ยวข้อง และตามกฎแล้วจะอธิบายความสัมพันธ์แบบ 1:1 แต่เมื่อใช้คีย์หลักแบบลูกโซ่ สามารถใช้ความสัมพันธ์แบบหนึ่งต่อกลุ่มได้ (1:JV)
- ความสัมพันธ์ที่ไม่ระบุตัวตน - ความสัมพันธ์ที่ใช้ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (1 :N)โดยการแสดงคีย์ต่างประเทศในเอนทิตีที่เกี่ยวข้องเป็นคุณลักษณะอย่างง่ายที่อาจอยู่ภายใต้ข้อจำกัดเพิ่มเติมบางประการเมื่อเปรียบเทียบกับคุณลักษณะข้อมูลทั่วไป
- ความสัมพันธ์แบบพหุคูณ - ความสัมพันธ์ที่ใช้ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (L G:M) จะแสดงในระดับของแบบจำลองเชิงตรรกะเท่านั้น ซึ่งแสดงให้เห็นการเชื่อมต่อระหว่างเอนทิตี แต่ไม่มีการสร้างคีย์ภายนอกในเอนทิตีที่เกี่ยวข้อง
- การจัดหมวดหมู่ - ความสัมพันธ์ที่ช่วยให้มั่นใจในการเชื่อมโยงระหว่างเอนทิตี-ชุมชนกับหมวดหมู่เอนทิตีโดยใช้ความสัมพันธ์ประเภทหนึ่งต่อหนึ่ง (1:1) และในเวลาเดียวกันก็สร้างคีย์หลักที่ต่างประเทศในหมวดหมู่เอนทิตีที่เกี่ยวข้องกับ คีย์หลักของชุมชนเอนทิตี
เมื่อสร้างความสัมพันธ์ระหว่างสองเอนทิตี เพียงเลือกไอคอนประเภทความสัมพันธ์ จากนั้นชี้ไปที่รายการหลักและเอนทิตีที่เกี่ยวข้องตามลำดับ สิ่งนี้จะสร้างความสัมพันธ์ และหากอนุญาตตามประเภทความสัมพันธ์ ให้สร้างคีย์นอกที่จำเป็นในเอนทิตีที่เกี่ยวข้อง ในกรณีที่ผู้พัฒนาไม่ได้กำหนดคีย์หลักของเอนทิตีหลักและได้สร้างความสัมพันธ์แล้ว เช่น คีย์ที่ไม่สามารถระบุได้ การสร้างคีย์ต่างประเทศจะไม่เกิดขึ้น แต่ทันทีที่คีย์หลักถูก ที่ระบุไว้ในเอนทิตีหลัก มันจะถูกสะท้อนให้เห็นในเอนทิตีที่เกี่ยวข้องทันทีด้วยคีย์ต่างประเทศตามการเชื่อมต่อระหว่างเอนทิตีเหล่านี้ที่มีอยู่ในแบบจำลอง
เครื่องมือ ERWin เมื่อสร้างความสัมพันธ์ระหว่างเอนทิตี จะกำหนดเอนทิตีสองประเภท:
- Parent - เป็นเอนทิตีฐานที่มีคีย์หลักสามารถย้ายไปยังเอนทิตีที่เกี่ยวข้องได้
- ลูก - กำหนดโดยเอนทิตีที่เมื่อสร้างการเชื่อมต่อแล้ว จะได้รับคีย์ต่างประเทศที่เกิดขึ้นจากคีย์หลักที่กำลังย้ายของเอนทิตีหลัก
แผนกนี้ดูค่อนข้างสมเหตุสมผล เนื่องจากตามลักษณะเฉพาะของการสร้างการเชื่อมต่อและตรรกะของสาขาวิชา ข้อมูลที่อธิบายโดยเอนทิตีหลักจะถูกรวบรวมโดยสัมพันธ์กับข้อมูลที่อธิบายโดยเอนทิตีย่อย ตัวอย่างเช่น เมื่อพิจารณาความสัมพันธ์ระหว่างเอนทิตี "ลูกค้า" และ "คำสั่งซื้อ" ลูกค้ารายใดรายหนึ่งซึ่งแสดงโดยอินสแตนซ์ของเอนทิตี "ลูกค้า" จะรวม (รวม) ชุดคำสั่งซื้อที่เขาสร้างขึ้นในร้านค้าอิเล็กทรอนิกส์
สังกะสี ด้วยเหตุนี้ เอนทิตี "คำสั่งซื้อ" ที่เกี่ยวข้องกับเอนทิตี "ลูกค้า" จึงถือได้ว่าเป็นเอนทิตีย่อย และเอนทิตี "ลูกค้า" เป็นพาเรนต์
คำอธิบายของความสัมพันธ์เมื่อเปรียบเทียบกับเอนทิตีและแอตทริบิวต์ มีคุณสมบัติจำนวนน้อยกว่าที่ต้องอธิบาย แต่ก็มีความสำคัญเช่นกัน และบางครั้งก็มีความสำคัญมากกว่า เนื่องจากคุณสมบัติเหล่านี้อนุญาตให้คุณอธิบายและกำหนดค่ากฎ Referential Integrity เพื่อให้แน่ใจว่าเมื่อนำมาใช้ใน ฐานข้อมูล ความถูกต้องของการจัดเก็บข้อมูล ลักษณะอย่างหนึ่งคือชื่อของการเชื่อมต่อที่ใช้ในแบบจำลองฐานข้อมูลและกำหนดความหมายพื้นฐานของการเชื่อมต่อที่สร้างขึ้นระหว่างเอนทิตี (รูปที่ 3.15)
ข้าว. 3.15.คำอธิบายพื้นฐานของการสื่อสารใน ERWin |
คอลัมน์ "ชื่อ" ในคำอธิบายการเชื่อมต่อเปิดโอกาสให้นักพัฒนาระบุชื่อที่สะท้อนถึงความหมายเชิงความหมายของการเชื่อมต่อ นี่เป็นองค์ประกอบที่สำคัญของโมเดล ซึ่งช่วยให้คุณเข้าใจสาระสำคัญและความหมายของการเชื่อมต่อที่สร้างขึ้นได้อย่างชัดเจน ซึ่งท้ายที่สุดแล้วควรช่วยทำให้โมเดลฐานข้อมูลเป็นมาตรฐานได้อย่างถูกต้อง โดยกระจายคุณลักษณะแต่ละรายการระหว่างเอนทิตีได้อย่างถูกต้อง
สิ่งสำคัญคือต้องเข้าใจว่า ถ้าเป็นไปได้ ชื่อของความสัมพันธ์ควรไม่ซ้ำกันภายในโมเดลฐานข้อมูลทั้งหมด และไม่ใช่แค่ในระดับของแต่ละไดอะแกรม การมีชื่อลิงก์ที่เหมือนกันอาจทำให้ไม่สามารถระบุลิงก์ที่เกี่ยวข้องได้อย่างถูกต้อง และท้ายที่สุดก็สร้างโมเดลที่มีประสิทธิภาพได้ ลักษณะอื่นๆ ที่อธิบายความสัมพันธ์ระหว่างเอนทิตีจะอยู่ในกล่องโต้ตอบด้านล่างรายการความสัมพันธ์ของแบบจำลอง และมีกฎสำหรับจำนวนสมาชิก (จำนวนสมาชิก) การเปลี่ยนชื่อคีย์ต่างประเทศ (บทบาท) ที่สร้างขึ้น และการรับรองความถูกต้องในการอ้างอิง
ลักษณะพื้นฐานที่สำคัญที่สุดสามประการของการเชื่อมต่อ (รูปที่ 3.16) ซึ่งเป็นสาระสำคัญของการเชื่อมต่อได้อธิบายไว้ในแท็บแรก "ทั่วไป" และแสดงถึงประเภทของการเชื่อมต่อ ชื่อของการเชื่อมต่อ จำนวนสมาชิก (กำลัง) . พารามิเตอร์การสื่อสารเหล่านี้จะต้องถูกกำหนดและอธิบายอย่างถูกต้องเสมอ นอกเหนือจากชื่อของการเชื่อมต่อแล้ว คุณลักษณะที่เหลือจะถูกถ่ายโอนระหว่างการเปลี่ยนแปลงที่เหมาะสมไปเป็นแบบจำลองทางกายภาพ จากนั้นจึงไปยังฐานข้อมูล
ลักษณะแรกของการเชื่อมต่อจะกำหนดประเภทของการเชื่อมต่อ (รูปที่ 3.17): การระบุหรือไม่ระบุ ในเวลาเดียวกัน โดยการเลือกประเภทความสัมพันธ์ที่เหมาะสม นักพัฒนามีโอกาส (สำหรับความสัมพันธ์ที่ไม่ระบุตัวตน) เพื่อระบุการไม่มีอินสแตนซ์ของเอนทิตีหลัก ดังนั้นจึงอนุญาตให้คีย์ต่างประเทศระบุค่าว่าง “NULL ".
ข้าว. 3.16.ลักษณะสำคัญของการสื่อสารใน RZh Win |
โดยทั่วไป เมื่อสร้างความสัมพันธ์ที่ไม่ระบุตัวตน ตัวเลือก Null จะถูกตั้งค่าเป็น Nulls Not Allowed สิ่งนี้ถูกกำหนดโดยลักษณะเฉพาะของการทำงานกับข้อมูล โดยที่อินสแตนซ์ข้อมูลลูกจะต้องเชื่อมโยงกับอินสแตนซ์หลัก แต่บางครั้งก็มีบางกรณีที่ไม่ได้สังเกตสิ่งนี้ ตามกฎแล้วสถานการณ์นี้เกิดขึ้นเมื่อวัตถุของสาขาวิชาที่รวมกันโดยความสัมพันธ์นี้มีค่าเท่ากันและเป็นไปไม่ได้ที่จะกำหนดลำดับความสำคัญของการปรากฏตัวของอินสแตนซ์ของเอนทิตีใด ๆ อย่างชัดเจน จากนั้นค่าจะถูกตั้งค่าเป็น "Null Allowed" (อนุญาตให้เป็น NULL) ดังแสดงในตัวอย่าง (ดูรูปที่ 3.17)
เนื่องจากการเชื่อมต่อแบบหนึ่งต่อหนึ่งและแบบหนึ่งต่อกลุ่มมีความเกี่ยวข้องกัน และความแตกต่างนั้นอยู่ที่พลังงานเท่านั้นและข้อกำหนดที่เข้มงวดมากขึ้น การสลับระหว่างการเชื่อมต่อประเภทนี้สามารถทำได้ภายในกล่องโต้ตอบการตั้งค่าการเชื่อมต่อ โดยสลับการเชื่อมต่อจาก ระบุประเภท “ไม่” เพื่อระบุประเภท “ระบุ” ในกรณีนี้ Null Option จะไม่สามารถใช้ได้
สำหรับการตั้งค่า สิ่งนี้อธิบายได้จากข้อเท็จจริงที่ว่าเมื่อมีการสร้างความสัมพันธ์ในการระบุ Foreign Key ที่ได้รับในเอนทิตีลูกก็เป็นคีย์หลักเช่นกัน และตามกฎการสร้างฐานข้อมูล คีย์หลักไม่สามารถเก็บค่าว่างได้ ดังนั้นคีย์ต่างประเทศที่เป็นผลลัพธ์จึงถูกตั้งค่าเป็น Null Not Allowed
คุณลักษณะอีกประการหนึ่งที่ทำให้สามารถย้ายจากความสัมพันธ์แบบหนึ่งต่อหนึ่งไปเป็นความสัมพันธ์แบบหนึ่งต่อกลุ่มและในทางกลับกันก็คือภาวะเชิงการนับ การสร้างจำนวนสมาชิก (อำนาจ) ของการเชื่อมต่อภายในคุณสมบัติ "จำนวนสมาชิก" และ "มูลค่าจำนวนสมาชิก" จะกำหนดกฎสำหรับการกรอกอินสแตนซ์ของเอนทิตีลูก (รูปที่ 3.18) มีตัวเลือกคาร์ดินัลลิตี้สี่ตัวเลือกที่กำหนดโดย ERWin:
- ศูนย์ หนึ่งหรือมากกว่า (ศูนย์ หนึ่งหรือหลายรายการ) - สำหรับเอนทิตีย่อย จำนวนอินสแตนซ์ที่เกี่ยวข้องกับหนึ่งอินสแตนซ์ของเอนทิตีหลักนั้นเป็นไปได้ รวมถึงตัวเลือกที่ไม่มีอินสแตนซ์ด้วย
- (P) หนึ่งรายการขึ้นไป - จำนวนอินสแตนซ์ของเอนทิตีลูกที่เกี่ยวข้องกับหนึ่งอินสแตนซ์ของเอนทิตีหลักสามารถเป็นจำนวนเท่าใดก็ได้ แต่เมื่อสร้างอินสแตนซ์ในเอนทิตีหลัก อินสแตนซ์จะต้องมีอยู่แล้วในเอนทิตีลูก ซึ่งต้องมีการตั้งค่า พารามิเตอร์ "Null Option" " เป็นค่า "Nulls Allowed" อนุญาตให้เก็บค่า Null "NULL" ไว้ในคีย์ต่างประเทศที่ได้รับจากการสร้างความสัมพันธ์
- (Z) ศูนย์หรือหนึ่ง - กำหนดความสัมพันธ์แบบหนึ่งต่อหนึ่ง ซึ่งอนุญาตให้มีข้อมูลได้ไม่เกินหนึ่งอินสแตนซ์ในเอนทิตีลูก
- ค่าจำนวนนับ - ระบุจำนวนที่แน่นอนของอินสแตนซ์ที่เกี่ยวข้องในเอนทิตีลูก ซึ่งสามารถทำได้โดยการตั้งค่า "ตัวเลือก Null" เป็น "อนุญาตให้เป็น Nulls" ขั้นแรกให้สร้างอินสแตนซ์ในเอนทิตีลูก จากนั้นจึงเชื่อมโยงอินสแตนซ์เหล่านั้นกับอินสแตนซ์ใน นิติบุคคลหลัก
จากผลการระบุจำนวนสมาชิก (กำลัง) ของการเชื่อมต่อบนโมเดล การกำหนดตัวเลขและตัวอักษรจะแสดงในแผนภาพ หากเลือกตัวเลือกจำนวนนับ (กำลัง) ในตัวเลือก "หนึ่งหรือหลายตัว" ตัวอักษร "P" จะปรากฏขึ้นในกรณีของจำนวนนับ "ศูนย์หรือหนึ่ง" - ตัวอักษร "Z" ในกรณีที่ระบุ ค่าตัวเลขที่แน่นอน - ค่าที่ระบุในตัวเลือกอื่นจะไม่แสดงเครื่องหมายบนแบบจำลอง
ลักษณะอื่นของการเชื่อมต่อนั้นอธิบายว่าเป็นคุณสมบัติหลัก - เนื้อหาความหมายของการเชื่อมต่อ (รูปที่ 3.19) ซึ่งแสดงด้วยรูปแบบกริยา
คำอธิบายนี้ เช่นเดียวกับโมเดลฐานข้อมูลทุกระดับในการนำเสนอ แสดงให้เห็นถึงลักษณะเฉพาะของการโต้ตอบของอินสแตนซ์เอนทิตีตามลักษณะของสาขาวิชา คำอธิบายจะต้องเป็นวลีที่แสดงถึงความสัมพันธ์ของอินสแตนซ์เอนทิตีหลักกับอินสแตนซ์เอนทิตีลูก หรือในทางกลับกัน ซึ่งแสดงถึงนิพจน์ที่มีกริยาแสดงการกระทำ
เมื่อมีการสร้างความสัมพันธ์แบบหนึ่งต่อหนึ่งและแบบหนึ่งต่อกลุ่ม ตามที่กล่าวไว้ข้างต้น คีย์หลักของเอนทิตีหลักจะย้ายไปยังเอนทิตีย่อย โดยสร้างคีย์ต่างประเทศที่เกี่ยวข้อง (รูปที่ 3.20) บ่อยครั้ง โดยเฉพาะอย่างยิ่งเมื่อใช้หลักการตั้งชื่อสำหรับองค์ประกอบโมเดล คีย์หลักที่เหมือนกันในเอนทิตีที่แตกต่างกันอาจมีชื่อเดียวกัน ซึ่งทำให้เกิดปัญหาในการสร้างความสัมพันธ์ ส่งผลให้จำเป็นต้องสะท้อนคีย์นอกด้วยชื่อที่มีอยู่แล้วในเอนทิตี อีกทางเลือกหนึ่ง เมื่อจำเป็นต้องใช้กลไกการตั้งชื่อของกฎการย้ายคีย์ อาจจำเป็นต้องใช้ถ้อยคำที่แม่นยำยิ่งขึ้นของแอตทริบิวต์ที่อธิบายคีย์ต่างประเทศที่เกี่ยวข้อง
การแก้ปัญหาเหล่านี้ดำเนินการผ่านกลไก "ชื่อบทบาท" ซึ่งนักพัฒนาระบุชื่อแอตทริบิวต์สำหรับคีย์ต่างประเทศตามที่ควรจะแสดงในรูปแบบฐานข้อมูลและด้วยเหตุนี้จึงเกิดการเปลี่ยนแปลงในฐานข้อมูล พื้นที่ "ข้อมูลชื่อบทบาท" มีสองคอลัมน์:
- แอตทริบิวต์ที่ถูกย้าย - แสดงแอตทริบิวต์ของเอนทิตีหลักที่แสดงด้วยคีย์ต่างประเทศในเอนทิตีลูกที่เกี่ยวข้อง (ไม่สามารถเปลี่ยนแปลงได้)
- ชื่อบทบาท—ระบุค่าชื่อแอตทริบิวต์คีย์นอกใหม่ที่ควรใช้แทนชื่อแอตทริบิวต์การย้าย
การระบุชื่อแอททริบิวต์ที่ต้องการในคอลัมน์ "ชื่อบทบาท" จะนำไปสู่การเปลี่ยนชื่อแอททริบิวต์คีย์นอกและการใช้ชื่อแอททริบิวต์ใหม่ในภายหลังในองค์ประกอบทั้งหมดของแบบจำลองฐานข้อมูลเมื่อจำเป็น
การกำหนดกฎ Referential Integrity (รูปที่ 3.21) เป็นขั้นตอนหนึ่งในการสร้างแบบจำลองทางกายภาพของฐานข้อมูล เนื่องจากกฎแต่ละข้อสำหรับ DBMS บางตัวอาจไม่พร้อมใช้งาน อย่างไรก็ตาม ERWin จัดเตรียมความสามารถในการระบุกฎ Referential Integrity สำหรับความสัมพันธ์ที่กำลังก่อตัวในขั้นตอนการสร้างแบบจำลองเชิงตรรกะ ในขั้นตอนนี้ นักพัฒนาจะได้รับชุดกฎสูงสุด:
- ไม่มี (ขาด) - กฎที่ถือว่าการกระทำของผู้ใช้โดยไม่ส่งผลกระทบต่อองค์ประกอบอื่น ๆ ของฐานข้อมูล
- ไม่มีการดำเนินการ (ไม่มีการดำเนินการ) - กฎที่ถือว่าการกระทำที่นักพัฒนากำหนด
- จำกัด (ห้าม) กฎที่ห้ามไม่ให้ดำเนินการกับข้อมูลหากเงื่อนไขการทดสอบเป็นจริง
- Cascade - กฎที่ดำเนินการตามลำดับกับข้อมูลที่เกี่ยวข้องตามการดำเนินการกับข้อมูลที่ถูกกำหนดกฎนี้
- Set Null - กฎที่ตั้งค่าคีย์ต่างประเทศเป็น NULL สำหรับอินสแตนซ์ที่เกี่ยวข้อง
- ตั้งค่าเริ่มต้น - กฎที่ตั้งค่าเริ่มต้นที่กำหนดไว้สำหรับคีย์ภายนอกของอินสแตนซ์ที่เกี่ยวข้อง
กฎความสมบูรณ์ของการอ้างอิงมีวัตถุประสงค์เพื่อให้มั่นใจถึงความถูกต้องของการดำเนินการกับข้อมูลเมื่อทำการแก้ไข ดังนั้นจะต้องปฏิบัติตามกฎเหล่านี้หากมีการดำเนินการในฐานข้อมูล แต่เพิ่ม เปลี่ยนแปลง และลบข้อมูล ERWin ดำเนินการดำเนินการข้อจำกัดความสมบูรณ์ของการอ้างอิงในขอบเขตสูงสุดที่เป็นไปได้ โดยพิจารณาการดำเนินการของการดำเนินการที่เกี่ยวข้องไม่เพียงแต่ในกรณีหลักที่ส่งผลต่อการเปลี่ยนแปลงในฐานข้อมูล แต่ยังรวมไปถึงการดำเนินการที่ไม่ควรมีการเปลี่ยนแปลงที่สำคัญในฐานข้อมูลด้วย ด้วยเหตุนี้ นักพัฒนาจะถูกขอให้ระบุกฎ Referential Integrity เมื่อดำเนินการกับข้อมูลเมื่อแก้ไขอินสแตนซ์ข้อมูลในเอนทิตีหลักและรายการย่อย ต่อจากนั้น การดำเนินการทั้งหมดเหล่านี้ (หากไม่ได้ระบุไว้ใน DBMS) จะถูกแปลงเป็นโมดูลโปรแกรมดำเนินการอัตโนมัติ (ทริกเกอร์) และเชื่อมโยงกับการดำเนินการที่ดำเนินการกับข้อมูล หาก DBMS มีการดำเนินการ Referential Integrity ที่ระบุ การดำเนินการดังกล่าวจะถูกประกาศตามกฎที่เกี่ยวข้องเมื่ออธิบายตารางข้อมูล
เมื่อสร้างการเชื่อมต่อแบบกลุ่มต่อกลุ่ม นักพัฒนามีโอกาสที่จะระบุชุดคุณลักษณะการเชื่อมต่อขั้นต่ำ รวมถึงการกำหนดโหลดความหมาย ไม่มีการกำหนดกฎและคุณลักษณะอื่นใดสำหรับการเชื่อมต่อประเภทนี้ เนื่องจากเมื่อย้ายไปยังแบบจำลองทางกายภาพ การเชื่อมต่อดังกล่าวจะต้องได้รับการทำให้เป็นมาตรฐานและแสดงโดยการเชื่อมต่อแบบหนึ่งต่อกลุ่ม (รูปที่ 3.22)
- เมื่อระบุการเชื่อมต่อเป็นครั้งแรก ให้เลือกไอคอนการเชื่อมต่อ และเลือกเอนทิตีชุมชนและหนึ่งในเอนทิตีหมวดหมู่ตามลำดับ
- ใช้ไอคอนลิงก์การจัดประเภทเดียวกัน เชื่อมต่อเอนทิตีประเภทที่เหลือโดยการเลือกองค์ประกอบกราฟิกและเอนทิตีประเภทถัดไปตามลำดับ
จากการดำเนินการเหล่านี้ โมเดลฐานข้อมูลจะมีการแสดงความสัมพันธ์คล้ายกับตัวอย่างข้างต้น (ดูรูปที่ 3.22)
ความสัมพันธ์ในการจัดหมวดหมู่มีสองประเภท โดยประเภทหนึ่งจะต้องถูกกำหนดเมื่อสร้างความสัมพันธ์ประเภทนี้ (รูปที่ 3.23) เพื่อระบุความแตกต่างในประเภทของการเชื่อมต่อการจัดหมวดหมู่ การกำหนดองค์ประกอบกราฟิกจะแสดงเป็นสองบรรทัดหรือหนึ่งบรรทัด (ตารางที่ 3.1)
สำหรับลิงค์การจัดหมวดหมู่นั้น ไม่มีการกำหนดลักษณะอื่น ๆ และนักพัฒนาจะได้รับโอกาสดูโครงสร้างของลิงค์การจัดหมวดหมู่เท่านั้น (รูปที่ 3.24) คำอธิบายนี้ทำให้สามารถดูได้ว่าเอนทิตีหมวดหมู่ใดถูกกำหนดโดยประเภทย่อย และชุมชนเอนทิตีใดที่แสดงโดยซูเปอร์ไทป์
การเชื่อมต่อจากองค์ประกอบการจัดหมวดหมู่แบบกราฟิกไปยังเอนทิตีนั้นเป็นการเชื่อมต่อแบบหนึ่งต่อหนึ่ง และตามกฎแล้ว คุณลักษณะคงที่จะถูกกำหนดไว้สำหรับสิ่งเหล่านั้น นักพัฒนาได้รับโอกาสในการระบุเฉพาะเนื้อหาความหมายของความสัมพันธ์ ชื่อของแอตทริบิวต์คีย์นอก และกฎความสมบูรณ์ของการอ้างอิง
ข้าว. 3.24.คำอธิบายความสัมพันธ์ของการจัดหมวดหมู่ใน EHRI |
- การอภิปรายโดยละเอียดเกี่ยวกับกฎ Referential Integrity มีการอภิปรายในส่วน 3.2
มีมุมมองที่เป็นไปได้สองประการเกี่ยวกับแบบจำลองข้อมูล และตามลำดับ มีสองระดับของแบบจำลอง ระดับตรรกะแรก (มุมมองของผู้ใช้) หมายถึงการแสดงข้อเท็จจริงโดยตรงจากชีวิตจริง ตัวอย่างเช่น คน โต๊ะ แผนก สุนัข และคอมพิวเตอร์เป็นวัตถุจริง ตั้งชื่อตามภาษาธรรมชาติ โดยมีตัวคั่นคำ (เว้นวรรค จุลภาค ฯลฯ) ในระดับฟิสิคัลของโมเดล จะมีการพิจารณาการใช้ 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. วัตถุประสงค์ของงาน:การเรียนรู้หลักการเตรียมแบบจำลองข้อมูลทางกายภาพเพื่อสร้างแค็ตตาล็อกระบบฐานข้อมูล
ข้อตกลง
ให้เรายอมรับแบบแผนบางประการเพื่อความกระชับของการนำเสนอในภายหลัง:
· คลิก - กดปุ่มซ้ายของเมาส์
· คลิกขวา - กดปุ่มขวาของเมาส์
· ดับเบิลคลิก - คลิกสองครั้งติดต่อกันบนปุ่มเมาส์
· เลือก - เลื่อนเคอร์เซอร์ไปยังวัตถุที่เกี่ยวข้อง (องค์ประกอบไดอะแกรม รายการเมนู ไอคอน) แล้วคลิกปุ่มซ้ายของเมาส์
· ลาก - เลือกวัตถุและเลื่อนเคอร์เซอร์โดยไม่ต้องปล่อยปุ่มเมาส์ วีตำแหน่งที่แตกต่างกัน
· รายการประเภทไฟล์/เปิดหมายความว่าคุณต้องเลือกรายการเมนูไฟล์ จากนั้นจึงเลือกรายการเปิดจากเมนูแบบเลื่อนลง
เดสก์ท็อป ERwin
ในรูป ภาพที่ 1 แสดงเดสก์ท็อปของผลิตภัณฑ์ซอฟต์แวร์ ERwin จาก Logic Works
|
|
|
|
|
รูปที่ 1 - เดสก์ท็อป Erwin
ในรูปที่ 1 ตัวเลขหมายถึง:
1- เมนูหลัก;
2- แถบเครื่องมือ;
3- ชุดเครื่องมือพิเศษ
4- แผงแบบอักษรและสี;
แผนภาพ 5 ช่อง
มาดูส่วนประกอบของเดสก์ท็อปกันดีกว่า
เมนูหลักประกอบด้วยคำสั่งทั่วไป โปรดทราบว่าคำสั่งเหล่านี้ส่วนใหญ่ทำซ้ำโดยไอคอนแถบเครื่องมือหรือโดยรายการเมนูคลิกขวา ดังนั้นตอนนี้เราจะเน้นไปที่คำสั่งที่เกี่ยวข้องกับมุมมองทั่วไปของเดสก์ท็อป รายการหน้าต่างมีรายการย่อยดังต่อไปนี้:
แถบเครื่องมือ - แถบเครื่องมือ;
แถบเครื่องมือแบบอักษรและสี - แผงแบบอักษรและสี
แถบสถานะ - แถบสถานะ;
กล่องเครื่องมือ ERwin - ชุดเครื่องมือพิเศษ
หากไม่ได้เลือกรายการใดๆ ในรายการ องค์ประกอบที่เกี่ยวข้องจะไม่แสดงบนเดสก์ท็อป รายการตัวเลือก / แสดงเมนูการแสดงผล และรายการเมนูตัวเลือก / แสดงรายการตัวแก้ไขจะเพิ่มฟังก์ชันเพิ่มเติมให้กับเมนูหลัก: จอแสดงผลและตัวแก้ไข
แถบเครื่องมือประกอบด้วยกลุ่มไอคอนต่อไปนี้:
การทำงานกับไฟล์:
สร้างไดอะแกรมใหม่
เปิดไดอะแกรมที่มีอยู่
ส่งไดอะแกรมเพื่อการพิมพ์
โปรดทราบว่าไอคอนเหล่านี้ทำซ้ำโดยคำสั่งของรายการเมนูหลักของไฟล์
ระดับการนำเสนอโมเดล:
ระดับเอนทิตี
ระดับแอตทริบิวต์
ระดับคำอธิบาย
เลเยอร์ทางกายภาพ (หากคลิกไอคอนนี้ ประเภทของพวกมันจะถูกระบุเมื่อสาธิตที่ระดับแอตทริบิวต์)
เครื่องมือเหล่านี้ทำซ้ำโดยรายการเมนูการแสดงผล ประกอบด้วยระดับการนำเสนอเพิ่มเติม: ระดับคีย์หลัก - แสดงเฉพาะคีย์หลักเท่านั้น ระดับลำดับทางกายภาพ - คุณลักษณะจะไม่แบ่งออกเป็นคีย์และไม่ใช่คีย์
การปรับขนาด:
ลด;
เพิ่มขึ้น;
ไม่มีการขยาย;
ที่เล็กที่สุด (การลดลงเพิ่มเติมจะทำให้ไดอะแกรมไม่สามารถอ่านได้)
ดูชิ้นส่วน (หลังจากเลือกเครื่องมือนี้แล้ว ให้เลือกส่วนที่คุณต้องการดูในสาขางาน)
การกระทำทั้งหมดของกลุ่มนี้จะถูกทำซ้ำโดยรายการ Display/ /Zoom
การทำงานกับเซิร์ฟเวอร์:
สร้างสคริปต์สำหรับเซิร์ฟเวอร์
เชื่อมต่อกับเซิร์ฟเวอร์
เลือกเซิร์ฟเวอร์
ชุดเครื่องมือพิเศษประกอบด้วยไอคอนทั้งหมดที่จำเป็นสำหรับการสร้างไดอะแกรมข้อมูลแบบกราฟิก ประกอบด้วยเครื่องมือดังต่อไปนี้:
การเลือกวัตถุ
การจัดการคุณสมบัติ
นิติบุคคลอิสระ
เอนทิตีที่ขึ้นอยู่กับ;
การแบ่งย่อยทั้งหมดเป็นหมวดหมู่
การจัดหมวดหมู่ที่ไม่สมบูรณ์
ความสัมพันธ์ที่ระบุแบบหนึ่งต่อกลุ่ม
ความสัมพันธ์แบบหนึ่งต่อกลุ่มที่ไม่ระบุตัวตน
ความสัมพันธ์แบบกลุ่มต่อกลุ่ม
ป้ายข้อความ
การออกแบบแนวความคิด
การสร้างเอนทิตี
เอนทิตีในแผนภาพแนวคิดสามารถขึ้นอยู่กับหรือเป็นอิสระได้ บนไดอะแกรม เอนทิตีใดๆ จะแสดงเป็นรูปสี่เหลี่ยมผืนผ้า ด้านบนเป็นชื่อของเอนทิตี สี่เหลี่ยมผืนผ้าแบ่งออกเป็นสองส่วน ส่วนด้านบนเป็นพื้นที่คีย์หลัก ส่วนล่างคือพื้นที่ของคุณลักษณะที่เหลืออยู่ เมื่อสร้างเอนทิตี สี่เหลี่ยมจะว่างเปล่าในตอนแรก และชื่อคือ E/n (เช่น E/1, E/2 ฯลฯ)
ในการสร้างเอนทิตีอิสระ คุณต้องคลิกที่ไอคอนที่เหมาะสมจากชุดเครื่องมือพิเศษ จากนั้นคลิกที่ฟิลด์ไดอะแกรมในตำแหน่งที่ควรสร้างเอนทิตีที่จะสร้าง ในการสร้างเอนทิตีที่ต้องพึ่งพา คุณต้องเลือกเครื่องมือ "เอนทิตีที่พึ่งพา" และคลิกที่ฟิลด์ไดอะแกรม โปรดทราบว่าสี่เหลี่ยมที่แสดงถึงเอนทิตีดังกล่าวมีมุมโค้งมน เมื่อสร้างไดอะแกรม แทบไม่จำเป็นต้องระบุเอนทิตีที่ขึ้นต่อกันโดยตรง เนื่องจาก ERwin แปลงเอนทิตีธรรมดาให้เป็นเอนทิตีที่ขึ้นต่อกันเมื่อจัดระเบียบความสัมพันธ์หรือแบ่งออกเป็นหมวดหมู่
หากผู้ออกแบบไม่พอใจกับตำแหน่งของเอนทิตีในฟิลด์ เขาจะต้องเลือกไอคอน "ชี้ไปที่วัตถุ" จากชุดเครื่องมือพิเศษ และลากเอนทิตีไปยังตำแหน่งใหม่ หากต้องการลบเอนทิตีที่เลือก ให้ใช้ปุ่ม Delete บนแป้นพิมพ์ของคุณ คุณสามารถเปลี่ยนขนาดของสี่เหลี่ยมที่แสดงถึงเอนทิตีได้โดยการเลือกรายการเมนูหลัก ตัวเลือก / ขนาดเอนทิตี รายการเมนูตัวเลือก / เค้าโครงใช้เพื่อจัดเรียงตำแหน่งของเอนทิตีบนฟิลด์
ตอนนี้เรามากำหนดชื่อของเอนทิตีและคุณลักษณะเฉพาะของมันกันดีกว่า เมื่อต้องการทำเช่นนี้ ให้ใช้รายการ Entity-Attribute จากเมนูที่ปรากฏขึ้นเมื่อคุณคลิกขวาที่เมาส์ ในฟิลด์ชื่อเอนทิตีของตัวแก้ไขที่เปิดขึ้น ให้ป้อนชื่อของเอนทิตี การใช้สวิตช์ คุณสามารถเปลี่ยนการพึ่งพาของเอนทิตีได้ ฟิลด์แก้ไขคีย์หลักมีไว้สำหรับป้อนชื่อของคุณลักษณะที่ประกอบขึ้นเป็นคีย์หลัก คุณลักษณะที่ไม่ใช่คีย์จะถูกป้อนลงในฟิลด์คุณลักษณะที่ไม่ใช่คีย์ โปรดทราบว่าในทั้งสองกรณี ปุ่ม Enter บนแป้นพิมพ์จะใช้เพื่อแยกแอตทริบิวต์ออกจากกัน ในรูป รูปที่ 2 แสดงตัวอย่างของเอนทิตีอิสระ
ข้าว. 2 - นิติบุคคลอิสระ
หากต้องการเพิ่มคำอธิบายเพิ่มเติมของเอนทิตี (คำจำกัดความ) และมุมมองทั่วไปของเอนทิตีทั้งหมด ให้ใช้รายการรายงาน / เบราว์เซอร์เอนทิตี
ERwin ช่วยให้คุณสามารถจัดการคุณลักษณะแต่ละรายการได้ ในการดำเนินการนี้ ให้เลือกไอคอน "การจัดการแอตทริบิวต์" ในโหมดนี้คุณสามารถ:
· ลบแอตทริบิวต์ ในการดำเนินการนี้ ให้เลือกแอตทริบิวต์แยกต่างหากแล้วกด Delete บนแป้นพิมพ์
· ย้ายแอตทริบิวต์ภายในเอนทิตี ในการดำเนินการนี้ ให้เลือกแอตทริบิวต์ และย้ายไปยังตำแหน่งที่ต้องการโดยไม่ต้องปล่อยปุ่มเมาส์ โปรดทราบว่าด้วยวิธีนี้ คุณสามารถย้ายแอตทริบิวต์ทั้งภายในพื้นที่สำคัญและไม่ใช่คีย์ และระหว่างพื้นที่เหล่านั้นได้
· ย้ายคุณลักษณะระหว่างเอนทิตี เทคนิคสำหรับการกระทำนี้คล้ายกับเทคนิคก่อนหน้า หากกดปุ่ม Ctrl ขณะย้ายแอตทริบิวต์ คุณลักษณะนั้นจะถูกคัดลอกไปยังเอนทิตีอื่น
การสร้างการเชื่อมต่อ
ลองพิจารณาสร้างความสัมพันธ์แบบหนึ่งต่อกลุ่ม ในการดำเนินการนี้ ให้เลือกไอคอนที่เหมาะสมจากชุดเครื่องมือพิเศษ จากนั้นคลิกที่ผู้ปกครองและบุตรหลานตามลำดับ ความสัมพันธ์ในการระบุจะแสดงด้วยเส้นทึบและจุดสีดำถัดจากสี่เหลี่ยมที่แสดงถึงเด็ก ความสัมพันธ์นี้มีลักษณะเฉพาะด้วยการโอนคีย์หลักของผู้ปกครองไปยังตัวระบุของเด็ก ในรูป รูปที่ 3 แสดงความสัมพันธ์ในการระบุแบบหนึ่งต่อกลุ่ม
รูปที่ 3 – ลิงค์ประจำตัว
ความสัมพันธ์ที่ไม่ระบุตัวตนถูกสร้างขึ้นในลักษณะเดียวกัน มันถูกแสดงด้วยเส้นประและเพชรถัดจากสี่เหลี่ยมที่แสดงถึงแม่ เพชรดังกล่าวหมายความว่าไม่จำเป็นต้องมีผู้ปกครองอยู่เช่น ฟิลด์คีย์ต่างประเทศสามารถเป็นค่าว่างได้ การสร้างความสัมพันธ์แบบไม่ระบุตัวตนใน ERwin มีลักษณะเฉพาะโดยการโอนคีย์หลักของพาเรนต์ไปเป็นคุณลักษณะที่ไม่ใช่คีย์ของเด็ก รูปที่ 4 แสดงความสัมพันธ์ที่ไม่ระบุตัวตน
ข้าว. 4. - การเชื่อมต่อที่ไม่ระบุตัวตน
ตามที่ระบุไว้ การออกแบบความสัมพันธ์แบบกลุ่มต่อกลุ่มจะสร้างเอนทิตีใหม่ ตัวอย่างการสร้างการเชื่อมต่อประเภทนี้ระหว่างเอนทิตีที่หนึ่งและที่สองแสดงในรูปที่ 5.
ข้าว. 5. - ความสัมพันธ์แบบกลุ่มต่อกลุ่ม
คุณสามารถดูและเปลี่ยนแปลงคำอธิบายของความสัมพันธ์ได้โดยใช้รายการความสัมพันธ์จากเมนูที่ปรากฏขึ้นเมื่อคุณคลิกขวาที่ความสัมพันธ์ ในหน้าต่างที่เปิดขึ้น ให้ระบุ:
· ชื่อของการเชื่อมต่อ (ฟิลด์กริยาวลี)
· ประเภทความสัมพันธ์: ระบุหรือไม่ระบุ
· จำนวนสมาชิกของการเชื่อมต่อ ERwin อนุญาตให้คุณกำหนดประเภทการเชื่อมต่อต่อไปนี้
1. ศูนย์ หนึ่งหรือมากกว่านั้น การมีอยู่ของภาวะเชิงการนับดังกล่าวไม่ได้ทำให้เกิดสัญลักษณ์เพิ่มเติมในแผนภาพ
2. หนึ่งหรือมากกว่านั้น การเชื่อมต่อดังกล่าวระบุด้วยตัวอักษร P ถัดจากสี่เหลี่ยมที่แสดงถึงเด็ก
3. ศูนย์หรือหนึ่ง ภาวะเชิงการนับแสดงด้วยตัวอักษร Z
4. ให้. ในกรณีนี้ ฟิลด์ Exactly จะต้องมีตัวเลขที่แสดงถึงจำนวนสมาชิก ความสัมพันธ์ดังกล่าวระบุด้วยตัวเลขถัดจากสี่เหลี่ยมที่แสดงถึงเด็ก
·ความเป็นไปได้ของการมีอยู่ของค่า Null (สวิตช์ Nulls)
· บทบาทของคีย์ต่างประเทศ ในกรณีนี้ ชื่อบทบาทจะถูกเขียนลงในฟิลด์ชื่อบทบาท ในกรณีนี้ ฟิลด์ Foreign Key ของตัวแก้ไขจะมีโครงสร้างอยู่<имя роли>.<имя первичного ключа родителя>.
หากไดอะแกรมไม่แสดงชื่อหรือคาร์ดินาลลิตี้ของความสัมพันธ์ จำเป็นต้องวางพอยน์เตอร์ไว้ตรงข้ามรายการดิสเพลย์ / กริยาวลี และดิสเพลย์ / คาร์ดินาลลิตี้
หากต้องการลบการเชื่อมต่อคุณต้องเลือกไอคอน "ชี้ไปที่วัตถุ" คลิกที่การเชื่อมต่อที่เกี่ยวข้องแล้วกด Delete บนแป้นพิมพ์
การแบ่งเอนทิตีออกเป็นหมวดหมู่ใน ERwin จะแสดงในลักษณะเดียวกันกับรูปที่ 1 6.
ข้าว. 6 - แบ่งย่อยเป็นหมวดหมู่ให้สมบูรณ์
ในการสร้างหมวดหมู่ คุณต้องทำตามขั้นตอนต่อไปนี้:
อธิบายเอนทิตีหลักอย่างครบถ้วน
สร้างเอนทิตีหมวดหมู่
เลือกไอคอนสำหรับการจัดหมวดหมู่ที่สมบูรณ์หรือไม่สมบูรณ์จากชุดเครื่องมือพิเศษ
คลิกที่เอนทิตีหลัก
คลิกที่หมวดหมู่ใดหมวดหมู่หนึ่ง
หากต้องการสร้างแต่ละหมวดหมู่ต่อมา ให้คลิกที่เครื่องหมายหมวดหมู่ จากนั้นคลิกเอนทิตีที่เกี่ยวข้อง
หากต้องการลบการเชื่อมต่อของประเภทใดประเภทหนึ่งกับเอนทิตีหลัก คุณต้องเลือกสาขาที่เกี่ยวข้องแล้วกด Delete บนแป้นพิมพ์ หากคุณต้องการลบรายละเอียดหมวดหมู่ทั้งหมด ให้ชี้ไปที่เครื่องหมายหมวดหมู่แล้วคลิกลบ
การออกแบบเชิงตรรกะ
การออกแบบเชิงตรรกะเริ่มต้นด้วยการเลือกแบบจำลองข้อมูล DBMS ทั้งหมดที่ ERwin ทำงานด้วยนั้นมีความสัมพันธ์กัน และสิ่งนี้จะกำหนดตัวเลือกของโมเดลข้อมูล
หากต้องการเลือก DBMS เฉพาะ ให้คลิกไอคอน "เลือกเซิร์ฟเวอร์" ในหน้าต่างที่เปิดขึ้น ให้วางตัวชี้ตรงข้ามกับ DBMS ที่เลือก และระบุเวอร์ชันหากจำเป็น นอกจากนี้ คุณต้องเลือกลักษณะเขตข้อมูลตารางเริ่มต้น (ประเภทและความเป็นโมฆะ)
ขั้นตอนสำคัญในการออกแบบเชิงตรรกะคือการกำหนดกลยุทธ์ในการรักษาความสมบูรณ์ของข้อมูล หากต้องการตั้งค่ากลยุทธ์เริ่มต้นสำหรับความสัมพันธ์ประเภทต่างๆ ให้คลิกปุ่ม Referential Integrity Default ในหน้าต่างการเลือก DBMS ERwin เสนอกลยุทธ์สามประเภท:
1.จำกัด-ห้าม มีลักษณะเป็นการห้ามกระทำการกับหน่วยงานที่เกี่ยวข้อง
2. น้ำตก - น้ำตก กลยุทธ์นี้เกี่ยวข้องกับการดำเนินการแบบเรียงซ้อนกับเอนทิตีที่เกี่ยวข้อง
3. ตั้งค่า Null - ศูนย์ กลยุทธ์นี้คือการตั้งค่าฟิลด์เป็น Null
หลังจากเลือก DBMS แล้ว เราจะเริ่มอธิบายข้อมูลตามเงื่อนไข เมื่อต้องการทำเช่นนี้ ให้เลือกจากเมนูที่ปรากฏขึ้นโดยการคลิกขวาที่เอนทิตีของสินค้า<имя выбранной СУБД>สคีมาฐานข้อมูล ในหน้าต่างที่เปิดขึ้น คุณสามารถระบุชื่อของตารางและฟิลด์ของตาราง รวมถึงคุณสมบัติของฟิลด์เหล่านี้ได้
ในทางปฏิบัติ มักเป็นกรณีที่ความสัมพันธ์ทุกประเภทไม่ได้ถูกกำหนดโดยกลยุทธ์เดียวกันในการรักษาข้อจำกัดด้านความสมบูรณ์ หากต้องการเปลี่ยนกลยุทธ์สำหรับความสัมพันธ์เฉพาะ ให้ใช้รายการ Referential Integrity จากเมนูที่ปรากฏขึ้นเมื่อคุณคลิกขวาที่การเชื่อมต่อ หากแผนภูมิไม่มีข้อมูลเกี่ยวกับกลยุทธ์ที่เลือก ให้วางตัวชี้ไว้ถัดจาก Display / Referenda Integrity
หากต้องการสร้างสคริปต์สำหรับ DBMS ที่เลือก ให้คลิกไอคอน "สร้างสคริปต์สำหรับเซิร์ฟเวอร์" ในกรณีนี้ ERwin จะสร้างสคีมาฐานข้อมูลตามตารางบางตาราง หาก DBMS ที่เลือกรองรับทริกเกอร์การเขียน ทริกเกอร์เหล่านั้นจะถูกสร้างขึ้นโดยขึ้นอยู่กับกลยุทธ์ที่เลือกเพื่อสนับสนุนข้อจำกัดด้านความสมบูรณ์
การออกแบบทางกายภาพ
ในขั้นตอนการออกแบบนี้ เราจะเพิ่มดัชนีเพิ่มเติมให้กับวงจรผลลัพธ์ เมื่อต้องการทำเช่นนี้ ให้ใช้รายการ<имя СУБД>เมนูดัชนีที่ปรากฏขึ้นเมื่อคุณคลิกขวาที่เอนทิตี ในหน้าต่างที่เปิดขึ้น ให้คลิกปุ่มใหม่เพื่อสร้างดัชนีใหม่ จากนั้นระบุแอตทริบิวต์โดยคลิกที่รูปภาพของแอตทริบิวต์นี้ โปรดทราบว่าขณะนี้ในแผนภาพทั่วไป คุณลักษณะที่ใช้สร้างดัชนีจะถูกทำเครื่องหมายด้วยตัวอักษร AK ซึ่งหมายความว่าเป็นกุญแจสำรอง
ออกกำลังกาย
1. สร้างไดอะแกรมฐานข้อมูลแนวคิดสำหรับหน่วยรับรองโดยใช้ ERwin คำอธิบายของสาขาวิชาได้รับด้านล่าง
หน่วยรับรองได้รับการรับรองให้ออกใบรับรองสำหรับผลิตภัณฑ์บางประเภท ผลิตภัณฑ์แต่ละประเภทมีการอธิบายด้วยรหัส (ตามตัวแยกประเภท) ชื่อประเภท (เช่น ผลิตภัณฑ์นม) และประเภท (เช่น นม) อาจมีเอกสารข้อบังคับหลายฉบับสำหรับผลิตภัณฑ์แต่ละประเภท และเอกสารข้อบังคับแต่ละฉบับใช้กับผลิตภัณฑ์หลายประเภท เอกสารกำกับดูแลมีลักษณะตามระดับ (GOST, OST ฯลฯ ) หมายเลขและชื่อ
ใบรับรองจะออกให้กับผลิตภัณฑ์ประเภทเดียวเท่านั้นและสำหรับลูกค้ารายเดียวเท่านั้น ลูกค้ารายเดียวกันสามารถติดต่อหน่วยรับรองได้หลายครั้ง ดังนั้น คุณจึงต้องจัดเก็บข้อมูลเกี่ยวกับลูกค้า (รหัสองค์กร ชื่อ ที่อยู่ และหมายเลขโทรศัพท์)
ลูกค้าสามารถติดต่อหน่วยรับรองเพื่อขอรับการรับรองได้สองประเภท: ใบสมัครหรือการประกาศ เอกสารภายในประเภทต่างๆ จะถูกจัดทำขึ้นและจัดเก็บข้อมูลต่างๆ ขึ้นอยู่กับสิ่งนี้ (ตารางที่ 1)
ตารางที่ 1
ในเวลาเดียวกัน จำนวนใบสมัครและการประกาศยังคงดำเนินต่อไป ซึ่งหมายความว่าหากมีการสมัครเป็นตัวเลขก็ไม่ควรมีการประกาศตามหมายเลขนี้
หน่วยรับรองจะจัดเก็บข้อมูลเกี่ยวกับพนักงาน (รหัสส่วนตัว นามสกุล ตำแหน่ง และที่อยู่) นอกจากนี้จำเป็นต้องทราบว่าพนักงานทำงานประเภทใดและสมัครงานประเภทใด งานที่ดำเนินการกับใบสมัครสามารถมีได้สี่ประเภท: กรอกใบสมัคร, ตัดสินใจเกี่ยวกับใบสมัคร, ตัดสินใจในการออกใบรับรอง, ออกใบรับรอง ตามแอปพลิเคชันเดียวกัน พนักงานที่แตกต่างกันสามารถทำงานประเภทต่างๆ ได้ แผนภาพแนวคิดจะต้องมีการแบ่งย่อยเป็นหมวดหมู่ นอกจากนี้ คุณต้องใช้บทบาทคีย์ต่างประเทศ
2. แปลงสคีมาแนวคิดเป็นตารางของ DBMS ที่เลือกโดยใช้ ERwin สร้างทริกเกอร์
3. สร้างผู้ใช้สามคนสำหรับฐานข้อมูลโดยมีสิทธิ์ดังต่อไปนี้:
1) “รายงาน” - สิทธิ์ในการอ่านข้อมูลทั้งหมด (ไม่มีสิทธิ์อื่น ๆ )
2) “ไดเรกทอรี” - สิทธิ์ทั้งหมดในข้อมูลเกี่ยวกับพนักงาน ลูกค้า ผลิตภัณฑ์ และเอกสารกำกับดูแล
3) “เอกสาร” - สิทธิ์ทั้งหมดในข้อมูลเกี่ยวกับเอกสารภายในของหน่วยรับรองและลูกค้า สิทธิ์ในการอ่านข้อมูลเกี่ยวกับผลิตภัณฑ์และเอกสารกำกับดูแล
รายงานจะต้องมี:
พิมพ์แผนภาพแนวคิดจาก ERwin;
เหตุผลในการเลือกกลยุทธ์เพื่อสนับสนุนข้อจำกัดด้านความสมบูรณ์ของฐานข้อมูล
โครงสร้างของตารางและทริกเกอร์
คำอธิบายเครื่องมือสำหรับการสร้างผู้ใช้ฐานข้อมูล
คำถามทดสอบ
1. การเชื่อมต่อประเภทใดที่สามารถมีอยู่ในสาขาวิชา?
2. จะกำจัดความสัมพันธ์แบบกลุ่มต่อกลุ่มออกจากสคีมาฐานข้อมูลได้อย่างไร
3. อะไรคือความแตกต่างระหว่างการเชื่อมต่อแบบระบุและไม่ระบุตัวตน?
4. ในกรณีใดที่จำเป็นต้องอธิบายบทบาทของคีย์ต่างประเทศ?
5. เราจะพิสูจน์การระบุหมวดหมู่ได้อย่างไร?
6. การแบ่งหมวดหมู่ที่สมบูรณ์และไม่สมบูรณ์แตกต่างกันอย่างไร?
7. กลยุทธ์สนับสนุนข้อจำกัดด้านความซื่อสัตย์ประเภทใดบ้างที่ถูกนำมาใช้ในห้องปฏิบัติการ
รายชื่อวรรณกรรมที่ใช้แล้ว
1. วันที่ เค.เจ. ระบบฐานข้อมูลเบื้องต้น.- หนังสือเรียน. คู่มือ: แปลจากภาษาอังกฤษ – ฉบับที่ 6 – ม.และคณะ: วิลเลียมส์, 2000. – 846 หน้า
2. Robinson S. Microsoft Access 2000: หนังสือเรียน หลักสูตร: ทรานส์ จากภาษาอังกฤษ – เซนต์ปีเตอร์สเบิร์ก: ปีเตอร์, 2001. – 511 น.
3. คุซเนตซอฟ เอส.ดี. พื้นฐานของฐานข้อมูล: รายวิชาบรรยาย: Proc. เบี้ยเลี้ยง ม.: อินเตอร์เน็ตมหาวิทยาลัยแจ้ง. เทคโนโลยี พ.ศ. 2548-484 หน้า
4. กอฟฟ์แมน วี.อี., โคโมเนนโก เอ.ดี. การทำงานกับฐานข้อมูลใน Delphi เซนต์ปีเตอร์สเบิร์ก: Dhv, 2002.-656 หน้า
5. มาคลาคอฟ เอส.วี. บีปวิน และเออร์วิน. เคสเครื่องมือสำหรับการพัฒนาระบบสารสนเทศ-ม.: Dialog-Myfi, 2003.-254p
6. มาลีคิน่า ส.ส. ฐานข้อมูล พื้นฐาน การออกแบบ การใช้งาน หนังสือเรียน คู่มือสำหรับมหาวิทยาลัย -2nd ed.-SPB.:BHV-Petersburg, 2006.-517 p.
การสร้างระบบข้อมูลสมัยใหม่เป็นงานที่ซับซ้อน การแก้ปัญหาต้องใช้เทคนิคและเครื่องมือพิเศษ ไม่น่าแปลกใจที่เมื่อเร็วๆ นี้ในหมู่นักวิเคราะห์ระบบและนักพัฒนา มีความสนใจเพิ่มขึ้นอย่างมากใน 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 ด้านบนแสดงตัวอย่างความสัมพันธ์แบบกลุ่มต่อกลุ่ม แพทย์สามารถรักษาคนไข้ได้หลายคน คนไข้สามารถรักษาได้โดยแพทย์หลายคน การเชื่อมต่อดังกล่าวจะแสดงด้วยเส้นทึบซึ่งมีจุดสองจุดที่ปลาย