เปิด
ปิด

ประเภทของเอนทิตีในฐานข้อมูล ความรู้เบื้องต้นเกี่ยวกับการออกแบบฐานข้อมูล การสร้างแบบจำลองคุณลักษณะที่ซ้ำซ้อน

เอนทิตีเป็นวัตถุจริงหรือนามธรรมที่มีความสำคัญอย่างมีนัยสำคัญสำหรับสาขาวิชา เอนทิตีจะต้องมีชื่อที่แสดงโดยคำนามเอกพจน์

วิธีที่ไม่เป็นทางการในการระบุตัวตนคือการมองหานามธรรมที่อธิบายวัตถุ กระบวนการ บทบาท และแนวคิดอื่นๆ วิธีที่เป็นทางการในการระบุเอนทิตีคือการวิเคราะห์คำอธิบายข้อความของสาขาวิชา เน้นคำนาม และเลือกให้เป็นนามธรรม

อินสแตนซ์เอนทิตีเป็นตัวแทนเฉพาะของเอนทิตีที่กำหนด ตัวอย่างเช่น อินสแตนซ์ของเอนทิตีพนักงานสามารถเป็นพนักงาน Ivanov ได้

แต่ละเอนทิตีจะต้องมีคุณสมบัติดังต่อไปนี้:

มีชื่อเฉพาะ

มีคุณลักษณะตั้งแต่หนึ่งรายการขึ้นไปที่เป็นของเอนทิตีหรือสืบทอดผ่านความสัมพันธ์

มีแอตทริบิวต์อย่างน้อยหนึ่งรายการที่ระบุแต่ละอินสแตนซ์ของเอนทิตีโดยไม่ซ้ำกัน

คุณลักษณะเป็นคุณลักษณะของเอนทิตีที่มีนัยสำคัญสำหรับสาขาวิชาที่อยู่ระหว่างการพิจารณา และมีวัตถุประสงค์เพื่อระบุ จัดประเภท ปริมาณ หรือแสดงสถานะของเอนทิตี

มีแอตทริบิวต์ประเภทต่อไปนี้:

ง่าย - ประกอบด้วยองค์ประกอบข้อมูลเดียว

คอมโพสิต - ประกอบด้วยองค์ประกอบข้อมูลหลายอย่าง

ไม่คลุมเครือ - มีค่าหนึ่งค่าสำหรับหนึ่งเอนทิตี

หลายค่า - มีหลายค่าสำหรับเอนทิตีเดียว

ทางเลือก - สามารถมีค่าว่าง (ไม่ได้กำหนด)

ที่ได้รับ - ค่าที่ได้มาจากค่าของคุณลักษณะอื่น

ตัวระบุที่ไม่ซ้ำกันคือชุดของคุณลักษณะที่มีค่ารวมกันไม่ซ้ำกันสำหรับแต่ละอินสแตนซ์ของเอนทิตี การลบแอตทริบิวต์ใดๆ ออกจากตัวระบุถือเป็นการละเมิดเอกลักษณ์ของมัน ตัวระบุที่ไม่ซ้ำกันจะแสดงตามที่ขีดเส้นใต้ในแผนภาพ

แต่ละเอนทิตีสามารถมีการเชื่อมต่อกับเอนทิตีอื่นจำนวนเท่าใดก็ได้

ความสัมพันธ์ระหว่างเอนทิตี

ความสัมพันธ์คือการเชื่อมโยงที่มีชื่อระหว่างหน่วยงานที่มีความสำคัญสำหรับสาขาวิชาที่อยู่ระหว่างการพิจารณา

ระดับของการเชื่อมต่อคือจำนวนหน่วยงานที่เกี่ยวข้องกับการเชื่อมต่อ

พลังการสื่อสาร - จำนวนอินสแตนซ์เอนทิตีที่เข้าร่วมในการสื่อสาร

ขึ้นอยู่กับค่ากำลัง การสื่อสารสามารถเป็นหนึ่งในสามประเภท:

หนึ่งต่อหนึ่ง (แสดง 1:1)

หนึ่งต่อกลุ่ม (แสดง 1:N)

หลายต่อกลุ่ม (แทน M:N)

หนึ่งต่อหนึ่ง. หมายความว่าในความสัมพันธ์ดังกล่าว เอนทิตีที่มีบทบาทหนึ่งจะสอดคล้องกับเอนทิตีที่มีอีกบทบาทหนึ่งไม่เกินหนึ่งเสมอ เนื่องจากระดับการเชื่อมต่อสำหรับแต่ละเอนทิตีคือ 1 พวกมันจึงเชื่อมต่อกันด้วยบรรทัดเดียว

หนึ่งต่อหลายเอนทิตีที่มีบทบาทหนึ่งสามารถเชื่อมโยงกับเอนทิตีจำนวนเท่าใดก็ได้ที่มีบทบาทอื่น

หลายต่อหลาย ในกรณีนี้ แต่ละเอนทิตีที่เกี่ยวข้องสามารถแสดงด้วยอินสแตนซ์จำนวนเท่าใดก็ได้

คำว่า "เชิงสัมพันธ์" หมายถึง "ขึ้นอยู่กับความสัมพันธ์" ฐานข้อมูลเชิงสัมพันธ์ประกอบด้วยเอนทิตี (ตาราง) ที่มีความสัมพันธ์ซึ่งกันและกัน ชื่อนี้มาจาก คำภาษาอังกฤษความสัมพันธ์
การออกแบบฐานข้อมูลประกอบด้วยสองขั้นตอนหลัก: การสร้างแบบจำลองเชิงตรรกะและทางกายภาพ
ในระหว่างการสร้างแบบจำลองเชิงตรรกะ คุณรวบรวมข้อกำหนดและพัฒนาแบบจำลองฐานข้อมูลที่ไม่ขึ้นอยู่กับ DBMS (ระบบการจัดการฐานข้อมูลเชิงสัมพันธ์) เฉพาะเจาะจง มันเหมือนกับการสร้างพิมพ์เขียวสำหรับบ้านของคุณ คุณสามารถคิดและวาดทุกอย่างได้ ไม่ว่าจะเป็นห้องครัว ห้องนอน ห้องนั่งเล่น แต่ทั้งหมดนี้เป็นเพียงกระดาษและในรูปแบบจำลองเท่านั้น
ในระหว่างการสร้างแบบจำลองทางกายภาพ คุณสร้างแบบจำลองที่ได้รับการปรับให้เหมาะสมสำหรับแอปพลิเคชันและ DBMS เฉพาะ เป็นรูปแบบนี้ที่กำลังถูกนำไปใช้ในทางปฏิบัติ หากเรากลับเข้าบ้านจากย่อหน้าที่แล้ว ในขั้นตอนนี้ คุณจะต้องสร้างบ้านที่ไหนสักแห่ง - พกท่อนไม้ อิฐ...

กระบวนการออกแบบฐานข้อมูลประกอบด้วยขั้นตอนต่อไปนี้:

  • การรวบรวมข้อมูล
  • คำจำกัดความของเอนทิตี
  • การกำหนดคุณลักษณะสำหรับแต่ละเอนทิตี
  • การกำหนดความสัมพันธ์ระหว่างเอนทิตี
  • การทำให้เป็นมาตรฐาน;
  • การแปลงเป็นแบบจำลองทางกายภาพ
  • การสร้างฐานข้อมูล

5 ขั้นตอนแรกเป็นขั้นตอนการออกแบบเชิงตรรกะ และอีก 2 ขั้นตอนที่เหลือเป็นขั้นตอนการสร้างแบบจำลองทางกายภาพ

เฟสลอจิคัล

เฟสตรรกะประกอบด้วยหลายขั้นตอน พวกเขาจะกล่าวถึงด้านล่างทั้งหมด

การรวบรวมข้อกำหนด

ในขั้นตอนนี้ คุณจะต้องกำหนดอย่างชัดเจนว่าฐานข้อมูลจะถูกนำไปใช้อย่างไร และข้อมูลใดบ้างที่จะถูกเก็บไว้ในนั้น รวบรวมข้อมูลให้มากที่สุดเกี่ยวกับสิ่งที่ระบบควรและไม่ควรทำ

การกำหนดเอนทิตี

ในขั้นตอนนี้ คุณจำเป็นต้องกำหนดเอนทิตีที่จะสร้างฐานข้อมูล

เอนทิตีคือวัตถุในฐานข้อมูลที่เก็บข้อมูล ตัวตนอาจเป็นสิ่งที่จับต้องได้ (บ้าน บุคคล วัตถุ สถานที่) หรือบางสิ่งที่เป็นนามธรรม (ธุรกรรมทางธนาคาร แผนกบริษัท เส้นทางรถประจำทาง) ในแบบจำลองทางกายภาพ เอนทิตีเรียกว่าตาราง

เอนทิตีประกอบด้วยแอตทริบิวต์ (คอลัมน์ของตาราง) และเรกคอร์ด (แถวในตาราง)

โดยปกติแล้วฐานข้อมูลจะประกอบด้วยหน่วยงานหลักหลายแห่งที่เกี่ยวข้องกับ จำนวนมากหน่วยงานย่อย เอนทิตีพื้นฐานเรียกว่าเอนทิตีอิสระ: พวกมันไม่ได้ขึ้นอยู่กับเอนทิตีอื่นใด เอนทิตีรองเรียกว่าเอนทิตีที่ขึ้นต่อกัน: เพื่อให้หนึ่งในนั้นมีอยู่ ตารางหลักที่เกี่ยวข้องจะต้องมีอยู่
ในไดอะแกรม เอนทิตีมักจะแสดงเป็นรูปสี่เหลี่ยมผืนผ้า ชื่อเอนทิตีถูกระบุอยู่ในสี่เหลี่ยม:

ตารางใดมีลักษณะดังต่อไปนี้:

  • ไม่มีเส้นที่เหมือนกัน
  • คอลัมน์ทั้งหมด (แอตทริบิวต์) ในตารางต้องมีชื่อต่างกัน
  • องค์ประกอบภายในคอลัมน์เดียวกันมีประเภทเดียวกัน (สตริง ตัวเลข วันที่)
  • ลำดับของแถวในตารางสามารถกำหนดเองได้

ในขั้นตอนนี้ คุณจะต้องระบุข้อมูลทุกประเภท (เอนทิตี) ที่จะจัดเก็บไว้ในฐานข้อมูล

การกำหนดคุณสมบัติ

คุณลักษณะแสดงถึงคุณสมบัติที่อธิบายเอนทิตี คุณลักษณะมักเป็นตัวเลข วันที่ หรือข้อความ ข้อมูลทั้งหมดที่จัดเก็บไว้ในแอตทริบิวต์ต้องเป็นประเภทเดียวกันและมีคุณสมบัติเหมือนกัน
ในแบบจำลองทางกายภาพ คุณลักษณะจะเรียกว่าคอลัมน์
หลังจากที่คุณกำหนดเอนทิตีแล้ว คุณจะต้องกำหนดคุณลักษณะทั้งหมดของเอนทิตีเหล่านั้น
ในไดอะแกรม คุณลักษณะมักจะแสดงอยู่ภายในสี่เหลี่ยมผืนผ้าเอนทิตี ในรูปคุณจะพบตัวอย่างของฐานข้อมูล "Houses" ซึ่งขณะนี้มีการกำหนดคุณลักษณะบางอย่างสำหรับเอนทิตีจากฐานข้อมูลนี้เท่านั้น


สำหรับแต่ละแอตทริบิวต์ จะมีการกำหนดประเภทข้อมูล ขนาด ค่าที่ยอมรับได้ และกฎอื่นๆ ซึ่งรวมถึงกฎของการบังคับให้เสร็จสิ้น การเปลี่ยนแปลงได้ และความเป็นเอกลักษณ์
กฎบังคับกำหนดว่าแอตทริบิวต์เป็นส่วนที่จำเป็นของเอนทิตีหรือไม่ หากแอตทริบิวต์เป็นส่วนที่เป็นทางเลือกของเอนทิตี ก็สามารถรับค่า NULL ได้ ไม่เช่นนั้นจะรับไม่ได้
คุณต้องพิจารณาด้วยว่าแอตทริบิวต์ไม่แน่นอนหรือไม่ ค่าแอตทริบิวต์บางอย่างไม่สามารถเปลี่ยนแปลงได้หลังจากสร้างเรกคอร์ดแล้ว
สุดท้าย คุณต้องพิจารณาว่าแอตทริบิวต์นั้นไม่ซ้ำกันหรือไม่ หากเป็นกรณีนี้ จะไม่สามารถทำซ้ำค่าแอตทริบิวต์ได้

กุญแจ

คีย์คือชุดของคุณลักษณะที่ระบุระเบียนโดยไม่ซ้ำกัน คีย์แบ่งออกเป็นสองประเภท: แบบง่ายและแบบผสม
คีย์แบบง่ายประกอบด้วยแอตทริบิวต์เดียวเท่านั้น ตัวอย่างเช่น ในฐานข้อมูล "หนังสือเดินทางของพลเมืองของประเทศ" หมายเลขหนังสือเดินทางจะเป็นรหัสง่ายๆ เพราะไม่มีหนังสือเดินทางสองเล่มที่มีหมายเลขเดียวกัน
คีย์ผสมประกอบด้วยแอตทริบิวต์หลายรายการ ในฐานข้อมูลเดียวกัน “หนังสือเดินทางของพลเมืองของประเทศ” อาจมีคีย์ผสมที่มีคุณสมบัติดังต่อไปนี้:
นามสกุล, ชื่อ, นามสกุล, วันเดือนปีเกิด. นี่เป็นเพียงตัวอย่าง เนื่องจากในทางทฤษฎีแล้วคีย์ผสมนี้ไม่ได้รับประกันความเป็นเอกลักษณ์ของเรกคอร์ด
นอกจากนี้ยังมีคีย์หลายประเภทตามที่อธิบายไว้ด้านล่าง

เบาะแสที่เป็นไปได้

คีย์ตัวเลือกคือชุดของคุณลักษณะใดๆ ที่ระบุระเบียนในตารางโดยไม่ซ้ำกัน คีย์ที่เป็นไปได้อาจเป็นแบบง่ายหรือแบบผสม
แต่ละเอนทิตีจะต้องมีคีย์ที่เป็นไปได้อย่างน้อยหนึ่งคีย์ แม้ว่าจะสามารถมีคีย์ที่เป็นไปได้มากกว่าหนึ่งคีย์ก็ตาม ไม่มีแอตทริบิวต์คีย์หลักใดที่สามารถมีค่าว่างได้
คีย์ผู้สมัครเรียกอีกอย่างว่าคีย์ตัวแทน

คีย์หลัก

คีย์หลักคือชุดของคุณลักษณะที่ระบุระเบียนในตารางโดยไม่ซ้ำกัน (เอนทิตี) คีย์ตัวเลือกตัวใดตัวหนึ่งจะกลายเป็นคีย์หลัก ในไดอะแกรม คีย์หลักมักจะแสดงอยู่เหนือรายการแอตทริบิวต์หลักหรือเน้นด้วยอักขระพิเศษ เอนทิตีในรูปมีทั้งคุณลักษณะที่สำคัญและปกติ

ปุ่มทางเลือก

คีย์ที่เป็นไปได้ใดๆ ที่ไม่ใช่คีย์หลักจะเรียกว่าคีย์สำรอง เอนทิตีสามารถมีคีย์สำรองได้หลายคีย์

กุญแจต่างประเทศ

คีย์ภายนอกคือชุดของคุณลักษณะที่อ้างอิงคีย์หลักหรือคีย์สำรองของเอนทิตีอื่น หากคีย์ภายนอกไม่เชื่อมโยงกับเอนทิตีหลัก จะสามารถมีค่าว่างได้เท่านั้น หากคีย์เป็นแบบผสม คุณลักษณะทั้งหมดของคีย์นอกจะต้องไม่ถูกกำหนด
ในไดอะแกรม คุณลักษณะที่รวมเข้ากับคีย์นอกจะถูกระบุด้วยอักขระพิเศษ รูปภาพนี้แสดงให้เห็นสองหน่วยงานที่เกี่ยวข้องกัน (บ้านและเจ้าของ) และกุญแจต่างประเทศที่สร้างขึ้นโดยพวกเขา (ท้ายที่สุดแล้ว คนคนหนึ่งสามารถเป็นเจ้าของบ้านได้มากกว่าหนึ่งหลัง)

คีย์เป็นโครงสร้างเชิงตรรกะ ไม่ใช่วัตถุทางกายภาพ ฐานข้อมูลเชิงสัมพันธ์มีกลไกเพื่อให้แน่ใจว่ามีการจัดเก็บคีย์

การกำหนดความสัมพันธ์ระหว่างเอนทิตี

ฐานข้อมูลเชิงสัมพันธ์ช่วยให้คุณสามารถรวมข้อมูลที่เป็นของเอนทิตีต่างๆ
ความสัมพันธ์คือสถานการณ์ที่เอนทิตีหนึ่งอ้างอิงคีย์หลักของเอนทิตีที่สอง เช่น เอนทิตี House และ Master ในรูปก่อนหน้า
ความสัมพันธ์ถูกกำหนดในระหว่างกระบวนการออกแบบฐานข้อมูล ในการดำเนินการนี้ คุณควรวิเคราะห์เอนทิตีและระบุการเชื่อมต่อเชิงตรรกะที่มีอยู่ระหว่างเอนทิตีเหล่านั้น
ชนิดความสัมพันธ์จะกำหนดจำนวนเรกคอร์ดเอนทิตีที่เกี่ยวข้องกับเรกคอร์ดเอนทิตีอื่น ความสัมพันธ์แบ่งออกเป็น 3 ประเภทหลักๆ ซึ่งมีรายละเอียดดังนี้

หนึ่งต่อหนึ่ง

แต่ละเรกคอร์ดของเอนทิตีแรกสอดคล้องกับเรกคอร์ดเดียวจากเอนทิตีที่สองเท่านั้น และแต่ละเรกคอร์ดของเอนทิตีที่สองจะสอดคล้องกับเรกคอร์ดเดียวจากเอนทิตีแรกเท่านั้น ตัวอย่างเช่น มีสองเอนทิตี: บุคคล และสูติบัตร และหนึ่งคนสามารถมีสูติบัตรได้เพียงใบเดียวเท่านั้น

หนึ่งต่อหลาย

แต่ละเรกคอร์ดของเอนทิตีแรกสามารถสอดคล้องกับหลายเรกคอร์ดจากเอนทิตีที่สอง อย่างไรก็ตาม แต่ละเรกคอร์ดของเอนทิตีที่สองสอดคล้องกับเรกคอร์ดเดียวจากเอนทิตีแรกเท่านั้น ตัวอย่างเช่น มีสองเอนทิตี: คำสั่งซื้อและรายการสั่งซื้อ และหนึ่งออเดอร์สามารถบรรจุสินค้าได้หลายรายการ

หลายต่อหลาย

แต่ละเรกคอร์ดของเอนทิตีแรกสามารถสอดคล้องกับหลายเรกคอร์ดจากเอนทิตีที่สอง อย่างไรก็ตาม แต่ละเรกคอร์ดของเอนทิตีที่สองอาจสอดคล้องกับหลายเรกคอร์ดจากเอนทิตีแรก ตัวอย่างเช่น มีเอนทิตีสองรายการ: ผู้แต่งและหนังสือ นักเขียนคนหนึ่งสามารถเขียนหนังสือได้หลายเล่ม แต่หนังสือสามารถมีผู้แต่งได้หลายคน
ตามเกณฑ์ของการบังคับ ความสัมพันธ์จะแบ่งออกเป็นแบบบังคับและแบบเลือกได้

  • ความสัมพันธ์บังคับหมายความว่าสำหรับทุกเรกคอร์ดในเอนทิตีแรก จะต้องมีเรกคอร์ดที่เกี่ยวข้องในเอนทิตีที่สอง
  • ความสัมพันธ์เพิ่มเติมหมายความว่าเรกคอร์ดจากเอนทิตีแรกอาจไม่มีเรกคอร์ดในเอนทิตีที่สอง

การทำให้เป็นมาตรฐาน

การทำให้เป็นมาตรฐานคือกระบวนการลบข้อมูลที่ซ้ำซ้อนออกจากฐานข้อมูล แต่ละองค์ประกอบข้อมูลจะต้องถูกจัดเก็บไว้ในฐานข้อมูลในสำเนาเดียวเท่านั้น การทำให้เป็นมาตรฐานมีห้ารูปแบบทั่วไป โดยทั่วไปแล้ว ฐานข้อมูลจะลดลงเป็นรูปแบบปกติที่สาม
ในระหว่างกระบวนการทำให้เป็นมาตรฐาน จะมีการดำเนินการตามขั้นตอนบางอย่างเพื่อลบข้อมูลที่ซ้ำซ้อน การทำให้เป็นมาตรฐานช่วยเพิ่มประสิทธิภาพ เร่งการเรียงลำดับและการสร้างดัชนี ลดจำนวนดัชนีต่อเอนทิตี และเพิ่มความเร็วในการแทรกและอัปเดตการดำเนินการ
ฐานข้อมูลที่ทำให้เป็นมาตรฐานมักจะมีความยืดหยุ่นมากกว่า เมื่อแก้ไขแบบสอบถามหรือข้อมูลที่จัดเก็บ โดยทั่วไปแล้วฐานข้อมูลที่ทำให้เป็นมาตรฐานต้องการการเปลี่ยนแปลงน้อยลง และการเปลี่ยนแปลงจะมีผลกระทบน้อยลง

แบบฟอร์มปกติครั้งแรก

ในการแปลงเอนทิตีเป็นรูปแบบปกติรูปแบบแรก คุณต้องกำจัดกลุ่มของค่าที่ซ้ำกัน และตรวจสอบให้แน่ใจว่าแต่ละแอตทริบิวต์มีเพียงค่าเดียว ไม่อนุญาตให้ใช้รายการค่า
กล่าวอีกนัยหนึ่ง แต่ละแอตทริบิวต์จำเป็นต้องจัดเก็บไว้ในอินสแตนซ์เดียวเท่านั้น
ตัวอย่างเช่น ในรูป เอนทิตี Home ไม่ได้ถูกทำให้เป็นมาตรฐาน ประกอบด้วยคุณลักษณะหลายประการในการจัดเก็บข้อมูลเกี่ยวกับเจ้าของบ้าน (เอนทิตีของบ้านไม่สอดคล้องกับรูปแบบปกติครั้งแรก)

ในการนำเอนทิตี House เข้าสู่รูปแบบปกติแรก จำเป็นต้องลบกลุ่มของค่าที่ซ้ำกัน กล่าวคือ ลบแอตทริบิวต์ Owner 1-3 ออก และวางไว้ในเอนทิตีที่แยกจากกัน ผลลัพธ์ (Essence House ลดเหลือรูปแบบปกติครั้งแรก):

แบบฟอร์มปกติที่สอง

ตารางในรูปแบบ Second Normal จะมีเฉพาะข้อมูลที่เกี่ยวข้องเท่านั้น ค่าของแอตทริบิวต์เอนทิตีที่ไม่ใช่คีย์ขึ้นอยู่กับคีย์หลัก แม่นยำยิ่งขึ้น แอตทริบิวต์จะขึ้นอยู่กับคีย์หลัก คีย์หลักทั้งหมด และเฉพาะคีย์หลักเท่านั้น
เพื่อให้สอดคล้องกับรูปแบบปกติที่สอง เอนทิตีจะต้องอยู่ในรูปแบบปกติครั้งแรก
ตัวอย่างเช่น นิติบุคคลบ้านในภาพมีแอตทริบิวต์ราคาต่อลิตรของน้ำมันเบนซิน ซึ่งไม่เกี่ยวข้องกับบ้าน คุณลักษณะนี้จะถูกลบออก (หรือคุณสามารถย้ายไปยังเอนทิตีอื่นได้) นอกจากนี้ เรายังโอนแอตทริบิวต์นายกเทศมนตรีไปยังนิติบุคคลแยกต่างหาก - คุณลักษณะนี้ขึ้นอยู่กับเมืองที่บ้านตั้งอยู่ ไม่ใช่ในบ้าน
รูปนี้แสดงสาระสำคัญของบ้านในรูปแบบปกติที่สอง (แก่นแท้ของบ้านลดลงเป็นรูปแบบปกติที่สอง)

แบบฟอร์มปกติที่สาม

รูปแบบปกติที่สามไม่รวมคุณลักษณะที่ไม่ขึ้นอยู่กับคีย์ทั้งหมด เอนทิตีใดๆ ที่อยู่ในรูปแบบปกติที่สามก็จะอยู่ในรูปแบบปกติที่สองเช่นกัน นี่เป็นรูปแบบฐานข้อมูลที่พบบ่อยที่สุด
ในรูปแบบปกติที่สาม แต่ละแอตทริบิวต์ขึ้นอยู่กับคีย์ คีย์ทั้งหมด และไม่มีอะไรนอกจากคีย์
ตัวอย่างเช่น นิติบุคคลของเจ้าของบ้านในภาพมีแอตทริบิวต์ราศี ซึ่งขึ้นอยู่กับวันเกิดของเจ้าของบ้าน ไม่ใช่ชื่อของเขา (ซึ่งเป็นกุญแจสำคัญ)
ในการนำเอนทิตีเจ้าของบ้านมา คุณต้องสร้างเอนทิตีราศีและโอนแอตทริบิวต์ราศีไปที่นั่น (เอนทิตีเจ้าของบ้านลดเหลือรูปแบบปกติที่สาม):

ข้อ จำกัด

ข้อจำกัด- เหล่านี้เป็นกฎที่ได้รับการตรวจสอบโดยระบบการจัดการฐานข้อมูล ข้อจำกัดกำหนดชุดของค่าที่สามารถป้อนลงในคอลัมน์หรือคอลัมน์ได้
ตัวอย่างเช่น คุณไม่ต้องการให้ยอดสั่งซื้อในร้านค้าเจ๋งๆ ของคุณน้อยกว่า 500 รูเบิล คุณเพียงแค่กำหนดขีดจำกัดในคอลัมน์จำนวนการสั่งซื้อ

ขั้นตอนการจัดเก็บ

Stored Procedures เป็นขั้นตอนที่คอมไพล์ล่วงหน้าแล้วจัดเก็บไว้ในฐานข้อมูล Stored Procedure สามารถใช้ในการกำหนดได้ กฎเกณฑ์ทางธุรกิจด้วยความช่วยเหลือเหล่านี้ คุณสามารถคำนวณที่ซับซ้อนได้มากกว่าการใช้ข้อจำกัดเพียงอย่างเดียว
โพรซีเดอร์ที่เก็บไว้สามารถมีลอจิกโฟลว์ของโปรแกรมรวมถึงการสืบค้นฐานข้อมูล พวกเขาสามารถยอมรับพารามิเตอร์และส่งกลับผลลัพธ์เป็นตารางหรือค่าเดียว
ขั้นตอนที่เก็บไว้จะคล้ายกับขั้นตอนหรือฟังก์ชันปกติในโปรแกรมใดๆ

บันทึก
ขั้นตอนที่จัดเก็บอยู่ในฐานข้อมูลและดำเนินการบนเซิร์ฟเวอร์ฐานข้อมูล โดยทั่วไปจะเร็วกว่าคำสั่ง SQL เนื่องจากถูกจัดเก็บในรูปแบบที่คอมไพล์

ความสมบูรณ์ของข้อมูล

เมื่อจัดระเบียบข้อมูลลงในตารางและกำหนดความสัมพันธ์ระหว่างตารางเหล่านั้นแล้ว เราสามารถพิจารณาว่ามีการสร้างแบบจำลองแล้ว ในทางที่ถูกต้องสะท้อนถึงสภาพแวดล้อมทางธุรกิจ ตอนนี้เราต้องแน่ใจว่าข้อมูลที่ป้อนในฐานข้อมูลให้ภาพสถานะที่ถูกต้อง กล่าวอีกนัยหนึ่ง คุณต้องแน่ใจว่ามีการปฏิบัติตามกฎเกณฑ์ทางธุรกิจและรักษาความสมบูรณ์ของฐานข้อมูล
ตัวอย่างเช่น บริษัทของคุณจัดส่งหนังสือ คุณไม่น่าจะยอมรับคำสั่งซื้อจากลูกค้าที่ไม่รู้จัก เนื่องจากคุณจะไม่สามารถส่งคำสั่งซื้อได้ ดังนั้นกฎเกณฑ์ทางธุรกิจ: คำสั่งซื้อจะได้รับการยอมรับจากลูกค้าที่มีข้อมูลอยู่ในฐานข้อมูลเท่านั้น
ความถูกต้องของข้อมูลในฐานข้อมูลเชิงสัมพันธ์นั้นได้รับการรับรองโดยชุดกฎ กฎความสมบูรณ์ถูกต้องของข้อมูลแบ่งออกเป็นสี่ประเภท

  • ความสมบูรณ์ของเอนทิตี- แต่ละเรกคอร์ดเอนทิตีจะต้องมีตัวระบุที่ไม่ซ้ำกันและมีข้อมูล ท้ายที่สุดคุณต้องแยกความแตกต่างระหว่างบันทึกเหล่านี้ทั้งหมดในฐานข้อมูล
  • ความสมบูรณ์ของแอตทริบิวต์- แต่ละแอตทริบิวต์ยอมรับเฉพาะค่าที่ถูกต้องเท่านั้น ตัวอย่างเช่น จำนวนการซื้อต้องไม่ต่ำกว่าศูนย์อย่างแน่นอน
  • ความสมบูรณ์ของการอ้างอิง- ชุดของกฎที่ให้ความมั่นใจในความสอดคล้องเชิงตรรกะของคีย์หลักและคีย์ต่างประเทศเมื่อทำการแทรก อัปเดต และลบบันทึก Referential Integrity ช่วยให้แน่ใจว่าสำหรับ Foreign Key ทุกอันจะมีคีย์หลักที่สอดคล้องกัน ลองใช้ตัวอย่างก่อนหน้านี้กับเจ้าของบ้านและเอนทิตีของบ้าน สมมติว่าคุณคือ Vasya Ivanov และคุณเป็นเจ้าของบ้าน คุณเปลี่ยนนามสกุลเป็น Sidorov และทำการเปลี่ยนแปลงที่เกี่ยวข้องกับเจ้าของบ้าน คุณคงต้องการให้บ้านของคุณจดทะเบียนภายใต้ชื่อใหม่ของคุณต่อไป และไม่ใช่ของ Vasya Ivanov ที่ไม่มีอยู่อีกต่อไป
  • กฎความสมบูรณ์ที่กำหนดเอง- กฎความซื่อสัตย์ใด ๆ ที่ไม่ได้อยู่ในหมวดหมู่ใด ๆ ที่ระบุไว้

ทริกเกอร์

สิ่งกระตุ้นเป็นอะนาล็อกของขั้นตอนการจัดเก็บที่ถูกเรียกโดยอัตโนมัติเมื่อข้อมูลในตารางเปลี่ยนแปลง
ทริกเกอร์เป็นกลไกอันทรงพลังในการรักษาความสมบูรณ์ของฐานข้อมูล ทริกเกอร์จะถูกเรียกก่อนหรือหลังการเปลี่ยนแปลงข้อมูลในตาราง
เมื่อใช้ทริกเกอร์ คุณจะไม่เพียงสามารถเลิกทำการเปลี่ยนแปลงเหล่านี้ได้ แต่ยังเปลี่ยนแปลงข้อมูลในตารางอื่นได้อีกด้วย
ตัวอย่างเช่น คุณกำลังสร้างฟอรัมออนไลน์ และคุณต้องตรวจสอบให้แน่ใจว่าโพสต์ในฟอรัมล่าสุดแสดงอยู่ในรายการฟอรัม แน่นอน คุณสามารถรับข้อความจากเอนทิตีข้อความของฟอรัมได้ แต่จะเพิ่มความซับซ้อนให้กับคำขอของคุณและเวลาในการดำเนินการ ง่ายกว่าที่จะเพิ่มทริกเกอร์ให้กับเอนทิตีโพสต์ของฟอรัม ซึ่งจะบันทึกข้อความที่เพิ่มล่าสุดไปยังเอนทิตีของฟอรัมในแอตทริบิวต์โพสต์ล่าสุด สิ่งนี้จะทำให้คำของ่ายขึ้นอย่างมาก

กฎเกณฑ์ทางธุรกิจ

กฎเกณฑ์ทางธุรกิจจะกำหนดข้อจำกัดเกี่ยวกับข้อมูลตามความต้องการของธุรกิจ (ที่คุณกำลังสร้างฐานข้อมูลให้) กฎเกณฑ์ทางธุรกิจอาจประกอบด้วยชุดของขั้นตอนที่จำเป็นในการทำงานเฉพาะอย่างให้เสร็จสิ้น หรืออาจเป็นเพียงการตรวจสอบเพื่อให้แน่ใจว่าข้อมูลที่ป้อนนั้นถูกต้อง กฎเกณฑ์ทางธุรกิจอาจรวมถึงกฎความสมบูรณ์ถูกต้องของข้อมูล แตกต่างจากกฎอื่น ๆ จุดประสงค์หลักคือเพื่อให้แน่ใจว่าการทำธุรกรรมทางธุรกิจเหมาะสม
ตัวอย่างเช่น ที่บริษัท Very Cool Guys อาจเป็นธรรมเนียมที่จะซื้อรถยนต์สีขาว น้ำเงิน และดำเพื่อความต้องการอย่างเป็นทางการเท่านั้น
จากนั้น กฎทางธุรกิจสำหรับแอตทริบิวต์สียานพาหนะของเอนทิตียานพาหนะของบริษัทก็คือยานพาหนะต้องเป็นสีขาว สีน้ำเงิน หรือสีดำเท่านั้น
DBMS ส่วนใหญ่มีสิ่งอำนวยความสะดวก:

  • เพื่อระบุค่าเริ่มต้น
  • เพื่อตรวจสอบข้อมูลก่อนเข้าสู่ฐานข้อมูล
  • เพื่อรักษาความสัมพันธ์ระหว่างตาราง
  • เพื่อให้เกิดความเป็นเอกลักษณ์ของค่านิยม
  • เพื่อจัดเก็บขั้นตอนการจัดเก็บไว้ในฐานข้อมูลโดยตรง

ความสามารถทั้งหมดนี้สามารถใช้เพื่อนำกฎทางธุรกิจไปใช้ในฐานข้อมูลได้

แบบจำลองทางกายภาพ

ขั้นตอนต่อไป หลังจากการสร้างแบบจำลองเชิงตรรกะแล้ว ก็คือการสร้างแบบจำลองทางกายภาพ แบบจำลองทางกายภาพคือการนำฐานข้อมูลไปใช้จริง โมเดลฟิสิคัลจะกำหนดออบเจ็กต์ทั้งหมดที่คุณต้องนำไปใช้
เมื่อย้ายจากแบบจำลองเชิงตรรกะไปเป็นเอนทิตีทางกายภาพ คุณลักษณะจะถูกแปลงเป็นตารางและคุณลักษณะเป็นคอลัมน์
ความสัมพันธ์ระหว่างเอนทิตีสามารถแปลงเป็นตารางหรือปล่อยไว้เป็นคีย์นอกได้
คีย์หลักจะถูกแปลงเป็นข้อจำกัดของคีย์หลัก คีย์ที่เป็นไปได้อยู่ในข้อจำกัดด้านเอกลักษณ์

การทำให้เป็นปกติ

การทำให้เป็นปกติเป็นการจงใจเปลี่ยนแปลงโครงสร้างของฐานที่ฝ่าฝืนกฎของรูปแบบปกติ โดยปกติจะทำเพื่อปรับปรุงประสิทธิภาพของฐานข้อมูล
ตามทฤษฎี คุณควรพยายามสร้างฐานที่ทำให้เป็นมาตรฐานอย่างสมบูรณ์เสมอ แต่ในทางปฏิบัติ การทำให้ฐานเป็นมาตรฐานอย่างสมบูรณ์มักจะหมายถึงประสิทธิภาพที่ลดลง การทำให้ฐานข้อมูลมีมาตรฐานมากเกินไปอาจส่งผลให้ต้องเข้าถึงหลายตารางทุกครั้งที่ดึงข้อมูล โดยทั่วไป แบบสอบถามต้องเกี่ยวข้องกับสี่ตารางหรือน้อยกว่า
เทคนิคการทำให้ปกติเป็นมาตรฐาน ได้แก่ การรวมหลายตารางเป็นหนึ่งเดียว การจัดเก็บแอตทริบิวต์เดียวกันในหลายตาราง และจัดเก็บข้อมูลสรุปหรือข้อมูลที่คำนวณไว้ในตาราง

คุณลักษณะ.

สาขาวิชา.

ฐานข้อมูล คำนิยาม.

ดีบีเอ็มเอส. คำนิยาม.

ฐานข้อมูล คำนิยาม.

รูปแบบปกติที่สาม คำนิยาม. ตัวอย่าง.

ตัวแปรความสัมพันธ์ R อยู่ในรูปแบบปกติที่สาม ถ้าหากเท่านั้น เงื่อนไขต่อไปนี้:

· R อยู่ในรูปแบบปกติที่สอง

· ไม่มีคุณลักษณะที่ไม่ใช่คีย์ R อยู่ในการพึ่งพาฟังก์ชันสกรรมกริยา (เช่น การพึ่งพาไม่ได้แสดงผ่านคุณลักษณะอื่น) บนคีย์ตัวเลือก R

คุณลักษณะที่ไม่ใช่คีย์ของความสัมพันธ์ R คือคุณลักษณะที่ไม่ได้เป็นของคีย์ที่เป็นไปได้ใดๆ ของ R

ฐานข้อมูล- นี่คือไฟล์ข้อมูลหนึ่งไฟล์ขึ้นไปที่มีไว้สำหรับจัดเก็บ เปลี่ยนแปลง และประมวลผลข้อมูลที่เกี่ยวข้องกันจำนวนมาก โดยจัดระบบในลักษณะที่สามารถค้นหาและประมวลผลวัสดุเหล่านี้ได้โดยใช้คอมพิวเตอร์อิเล็กทรอนิกส์ (คอมพิวเตอร์)

ระบบการจัดการฐานข้อมูล (DBMS)เป็นซอฟต์แวร์ที่อนุญาตให้ผู้ใช้กำหนด สร้าง และบำรุงรักษาฐานข้อมูล และอนุญาตให้จัดการการเรียกฐานข้อมูลจากแอปพลิเคชันผู้ใช้ปลายทาง

ฐานข้อมูล- อัตโนมัติ ระบบข้อมูลการจัดเก็บข้อมูลแบบรวมศูนย์และการใช้ข้อมูลโดยรวม คลังข้อมูลประกอบด้วยฐานข้อมูลตั้งแต่หนึ่งฐานข้อมูลขึ้นไป ไดเร็กทอรีฐานข้อมูล DBMS รวมถึงไลบรารีของการสืบค้นและโปรแกรมแอปพลิเคชัน

สาขาวิชา- นี่คือส่วนหนึ่ง โลกแห่งความจริงที่จะศึกษาเพื่อสร้างฐานข้อมูลเพื่อทำให้กระบวนการจัดการเป็นแบบอัตโนมัติ

คุณลักษณะ– หน่วยที่เล็กที่สุดของโครงสร้างข้อมูล แต่ละองค์ประกอบจะได้รับการกำหนดชื่อเฉพาะเมื่อสร้างฐานข้อมูล มันถูกอ้างถึงด้วยชื่อนี้ในระหว่างการประมวลผล

แก่นแท้– วัตถุที่เป็นรูปธรรมหรือนามธรรมใด ๆ ในสาขาวิชาที่อยู่ระหว่างการพิจารณา เอนทิตีคือประเภทพื้นฐานของข้อมูลที่เก็บอยู่ในฐานข้อมูล (ในฐานข้อมูลเชิงสัมพันธ์ แต่ละเอนทิตีจะถูกกำหนดตาราง)

แสดงรายการฟังก์ชันต่างๆ ของ DBMS

หน้าที่หลักของ DBMS:

1) การกำหนดโครงสร้างของฐานข้อมูลที่จะสร้าง การเริ่มต้น และการโหลดครั้งแรก

2) ให้ผู้ใช้สามารถจัดการข้อมูลได้ (การเลือกข้อมูลที่จำเป็น การคำนวณ การพัฒนาอินเทอร์เฟซอินพุต/เอาท์พุต การแสดงภาพ)

3) รับประกันความเป็นอิสระของข้อมูลเชิงตรรกะและทางกายภาพ

4) การปกป้องความสมบูรณ์ทางลอจิคัลของฐานข้อมูล - ความน่าเชื่อถือของข้อมูลสามารถถูกละเมิดได้เมื่อเข้าสู่ฐานข้อมูลหรือเนื่องจากการกระทำที่ผิดกฎหมายของขั้นตอนการประมวลผลข้อมูลที่รับและป้อนข้อมูลที่ไม่ถูกต้องลงในฐานข้อมูล เพื่อเพิ่มความน่าเชื่อถือของข้อมูล สิ่งที่เรียกว่าข้อจำกัดด้านความสมบูรณ์จะถูกประกาศในระบบ



5) การปกป้องความสมบูรณ์ทางกายภาพ - วิธีการกู้คืนฐานข้อมูล (ธุรกรรม)

6) การจัดการสิทธิ์ของผู้ใช้ในการเข้าถึงฐานข้อมูล

7) การประสานการทำงานของผู้ใช้หลายคน

8) การจัดการทรัพยากรสภาพแวดล้อมการจัดเก็บข้อมูล - DBMS จัดสรรทรัพยากรหน่วยความจำสำหรับข้อมูลใหม่ แจกจ่ายหน่วยความจำที่ว่างอีกครั้ง จัดระเบียบคิวคำขอไปยังหน่วยความจำภายนอก และอื่นๆ

9) สนับสนุนกิจกรรมของบุคลากรระบบ

เมื่อสองสามปีก่อน ในบรรดากิจกรรมอื่นๆ ของฉัน มีบทเรียนออนไลน์เกี่ยวกับพื้นฐานของการสร้างโครงสร้างฐานข้อมูลเชิงตรรกะและภาษา SQL ฉันไม่ได้ทำบทเรียนในขณะนี้ แต่การบันทึกยังคงอยู่ดังนั้นฉันจึงตัดสินใจโพสต์มันทำไมมันถึงสูญเปล่า? 🙂

วันนี้เราจะพูดถึงโมเดลความสัมพันธ์เอนทิตี

ทฤษฎี

แบบจำลองเอนทิตี-ความสัมพันธ์หรือแบบจำลอง ER คือแบบจำลองข้อมูลเชิงแนวคิดระดับสูงที่พัฒนาขึ้นเพื่อลดความซับซ้อนของงานการออกแบบโครงสร้างฐานข้อมูล

โมเดลนี้คือชุดของแนวคิดที่อธิบายโครงสร้างของฐานข้อมูลเป็นชุดของเอนทิตี คุณลักษณะ และความสัมพันธ์ วัตถุประสงค์หลักของการพัฒนาแบบจำลองข้อมูลดังกล่าวคือเพื่อสร้างการรับรู้ของผู้ใช้เกี่ยวกับข้อมูลและประสานด้านเทคนิคจำนวนมากที่เกี่ยวข้องกับการออกแบบฐานข้อมูล ควรสังเกตเป็นพิเศษว่าโมเดลข้อมูลเชิงแนวคิดไม่ได้ขึ้นอยู่กับ DBMS หรือแพลตฟอร์มฮาร์ดแวร์เฉพาะที่ใช้ในการนำฐานข้อมูลไปใช้

วัตถุประสงค์ของแผนภาพ “ความสัมพันธ์ระหว่างเอนทิตี” คือการสร้างการนำเสนอสาขาวิชาจริง (SbA) ที่ถูกต้องและครบถ้วน ซึ่งต่อมาใช้เป็นแหล่งข้อมูลสำหรับการสร้างฐานข้อมูลของระบบประมวลผลข้อมูลอัตโนมัติ (AISDB)

แผนภาพหรือแบบจำลองแนวคิดของ SbA นี้ต้องเป็นไปตามข้อกำหนดต่อไปนี้:

  • ตรวจสอบให้แน่ใจว่ามีการแสดง SbA อย่างเพียงพอ
  • นำเสนอในภาษาที่เข้าใจได้สำหรับผู้ใช้ ASOI ในอนาคตและผู้พัฒนาฐานข้อมูล
  • มีข้อมูลเกี่ยวกับ SbA ที่เพียงพอสำหรับการออกแบบฐานข้อมูลเพิ่มเติม (การพัฒนาแบบจำลองเชิงตรรกะและกายภาพ)
  • รับประกันการตีความหรือการตีความแบบจำลอง SbA ที่ชัดเจน

แนวคิดหลักของโมเดลนี้คือแนวคิด เอนทิตี คุณลักษณะ และความสัมพันธ์

แก่นแท้คือชุดของวัตถุในโลกแห่งความเป็นจริงที่มีคุณสมบัติเหมือนกัน เอนทิตีมีลักษณะพิเศษคือการดำรงอยู่อย่างเป็นอิสระและสามารถเป็นวัตถุที่มีการดำรงอยู่ทางกายภาพ (หรือจริง) หรือวัตถุที่มีการดำรงอยู่ตามแนวคิด (หรือนามธรรม)

เอนทิตีแสดงถึงเนื้อหาหลักของปรากฏการณ์หรือกระบวนการ (ธุรกรรมหรือคำขอ) ที่ต้องรวบรวมข้อมูล และเป็นจุดสำคัญในการรวบรวมข้อมูล เอนทิตีหมายถึงชุดของวัตถุหรือสิ่งของที่เป็นเนื้อเดียวกัน แต่ละเอนทิตีจะถูกระบุด้วยชื่อและรายการคุณสมบัติ (แอตทริบิวต์) เอนทิตีอาจเป็นบุคคล สถานที่ สิ่งของ ฯลฯ ข้อมูลที่ต้องเก็บไว้ในฐานข้อมูล

ฝึกฝน

ตัวอย่าง. สาขาวิชา " การจองตั๋วที่โรงภาพยนตร์" โรงภาพยนตร์ฉายภาพยนตร์ โดยสามารถซื้อตั๋วได้ในวันที่ฉายหรือจองล่วงหน้า ฐานข้อมูลประกอบด้วยข้อมูลเกี่ยวกับการแสดงภาพยนตร์ทั้งหมดในโรงภาพยนตร์ที่กำหนด รวมถึงรายการเก่าด้วย การฉายภาพยนตร์แต่ละเรื่องมีค่าใช้จ่ายของตัวเองเช่น ตั๋วหนังเรื่องเดียวกันแต่เข้า เวลาที่แตกต่างกัน, ราคาอาจแตกต่างกันไป. นิทรรศการภาพยนตร์ประกอบด้วยภาพยนตร์ซึ่งมีข้อมูลที่จัดเก็บไว้ในฐานข้อมูลด้วย

สำหรับซอฟต์แวร์” การจองตั๋วที่โรงภาพยนตร์” เอนทิตีจะเป็นแนวคิดดังต่อไปนี้:

ฉายภาพยนตร์

ภาพยนตร์

ผู้ดู

ตั๋ว

การจอง

ราคา

ในรูปแบบกราฟิก เอนทิตีในไดอะแกรมความสัมพันธ์เอนทิตีจะแสดงเป็นรูปสี่เหลี่ยมผืนผ้า:

คุณลักษณะมันเป็นวิธีการที่กำหนดคุณสมบัติของเอนทิตีหรือความสัมพันธ์ คุณลักษณะเป็นคุณลักษณะที่มีชื่อของเอนทิตี ชื่อแอตทริบิวต์จะต้องไม่ซ้ำกันสำหรับเอนทิตีเฉพาะ แต่สามารถเหมือนกันสำหรับเอนทิตีที่ต่างกันได้

ชุดคุณลักษณะเฉพาะสำหรับเอนทิตีถูกกำหนดโดยงานที่ใช้งาน ตัวอย่างเช่น เอนทิตี SbA "การสั่งซื้อตั๋วในโรงภาพยนตร์" สามารถอธิบายได้โดยใช้ชุดแอตทริบิวต์ต่อไปนี้:

ฉายภาพยนตร์(หมายเลขภาพยนตร์ หมายเลขภาพยนตร์ วันที่ฉาย หมายเลขต้นทุน)

ภาพยนตร์(หมายเลขภาพยนตร์ ชื่อเรื่อง ระยะเวลา คำอธิบายโดยย่อ);

ผู้ดู(หมายเลขผู้ชม ชื่อเต็ม วันเดือนปีเกิด)

ตั๋ว(หมายเลขผู้ชม หมายเลขฉายภาพยนตร์ ราคาตั๋ว)

การจอง(หมายเลขผู้ชม หมายเลขฉายภาพยนตร์ วันที่จอง)

ราคา(หมายเลขค่าใช้จ่าย, หมายเลขฉายภาพยนตร์, ค่าใช้จ่าย)

ในเชิงกราฟิก รูปภาพของแอตทริบิวต์เอนทิตีจะแสดงในรูปแบบของคำบรรยายภาพ ซึ่งแสดงรายการชื่อแอตทริบิวต์ ตัวอย่างเช่น:

ตัวเอียงและขีดเส้นใต้ที่เป็นตัวหนาบ่งบอกถึงคีย์หลัก - คุณลักษณะของเอนทิตีที่แสดงลักษณะเฉพาะของเอนทิตี ขีดล่างแสดงถึงคีย์นอก - คุณลักษณะที่มีลักษณะเฉพาะของเอนทิตีที่อ้างถึง

การเชื่อมต่อคือความสัมพันธ์ระหว่างอินสแตนซ์ของสองเอนทิตีที่แตกต่างกัน (หรือมากกว่า) กลไกการเชื่อมโยงใช้เพื่อกำหนดความสัมพันธ์ระหว่างเอนทิตีใน SbA นอกจากนี้ยังมีความสัมพันธ์ระหว่างคุณลักษณะของเอนทิตีที่แยกจากกัน (จะได้รับการพิจารณาเมื่อสร้างแบบจำลองเชิงตรรกะ)

แต่ละลิงก์จะได้รับชื่อที่ควรอธิบายฟังก์ชันของมัน การเชื่อมต่อมีลักษณะต่างๆ เช่น ชื่อของการเชื่อมต่อ ตัวบ่งชี้จำนวนสมาชิก ระดับการมีส่วนร่วม ระดับของการเชื่อมต่อ อายุการใช้งานของการเชื่อมต่อ และอื่นๆ

ชื่อของความสัมพันธ์ควรมีความหมายบางอย่างเพื่อให้เข้าใจได้ง่ายขึ้นว่าเอนทิตีเกี่ยวข้องกันอย่างไร ตัวอย่างเช่น ความสัมพันธ์ระหว่างเอนทิตีผู้ชมและตั๋วสามารถกำหนดเป็น "ซื้อ"

เพื่อแสดงความสัมพันธ์แบบกราฟิกในไดอะแกรมความสัมพันธ์เอนทิตี-ความสัมพันธ์ จะใช้รูปสี่เหลี่ยมขนมเปียกปูน ภายในเพชร ชื่อของการเชื่อมต่อจะถูกกำหนด และเอนทิตีที่เข้าร่วมในการเชื่อมต่อนี้เชื่อมต่อกันโดยใช้เส้น

ตัวบ่งชี้จำนวนการเชื่อมโยง (ลักษณะของเอกลักษณ์) ระบุระดับของการเชื่อมต่อโครงข่ายระหว่างเอนทิตี และอธิบายจำนวนการเชื่อมต่อที่เป็นไปได้สำหรับแต่ละเอนทิตีที่เข้าร่วม:

  • หนึ่งต่อหนึ่ง (1:1);
  • หนึ่งต่อกลุ่ม (1:N);
  • หลายต่อหลาย (N:M)

Zaitsev S.L., Ph.D.

ส่วนที่ 1 แนวคิดเรื่องสาระสำคัญ

ในบทความนี้ เราจะอธิบายเอนทิตีและคีย์เอนทิตีโดยละเอียด ดังที่คุณทราบ แก่นแท้- นี่คือแนวคิดเกี่ยวกับข้อมูลที่ควรจัดเก็บเพื่อการประมวลผลต่อไป ใน หน่วยงานเออร์วินเป็นการนำเสนอแบบกราฟิกของการจัดกลุ่มข้อมูลเชิงตรรกะ เอนทิตีอาจเป็นวัตถุที่จับต้องได้ วัตถุจริง หรือนามธรรมเชิงแนวคิดที่จับต้องไม่ได้ เอนทิตีไม่ได้มีวัตถุประสงค์เพื่อเป็นตัวแทนของเอนทิตีเดียว แต่เป็นตัวแทนของคลาสที่มีคุณลักษณะที่มีข้อมูลเกี่ยวกับหลายอินสแตนซ์

คำถามต่อไปนี้เกี่ยวกับเอนทิตีจะกล่าวถึงด้านล่าง:

  • ไดอะแกรมเชิงสัมพันธ์ของเอนทิตี
  • การเลือกเอนทิตี
  • การกำหนดประเภทเอนทิตี
  • การตั้งชื่อและการอธิบายเอนทิตี
  • ข้อผิดพลาดทั่วไปเมื่อทำงานกับเอนทิตี

เนื่องจาก ERwin ใช้วิธีการสำหรับการสร้างแบบจำลองข้อมูล เอ่อ(Entity Relational) เริ่มต้นด้วยการแนะนำโดยย่อเกี่ยวกับแนวคิด ER ก่อนอื่น มาเริ่มศึกษาเอนทิตี - "คอนเทนเนอร์" สำหรับการจัดเก็บข้อมูลโมเดลเชิงตรรกะ

บทนำสู่แผนภาพเอนทิตีเชิงสัมพันธ์

เอกสารนี้และสิ่งตีพิมพ์อื่น ๆ ในหัวข้อนี้ใช้ ERD (Entity Relational Diagram) ตามสัญลักษณ์ที่ใช้โดย เออร์วิน. แม้ว่าจะมีวิธีการสร้างแบบจำลองข้อมูลอื่นๆ อยู่ เช่น Extended Relational Analysis (ERA), Object Oriented (OO) และ Object Role Modeling (ORM) แต่แนวคิดพื้นฐานของระเบียบวิธี ER ก็มีอยู่และอยู่ในนั้น

วิธีการสร้างแบบจำลอง ER ได้รับการพัฒนาโดย P. Chen ในช่วงปลายทศวรรษ 1970 สี่เหลี่ยมถูกใช้เพื่อแสดงเอนทิตีในวิธีการ ER ในรูปแบบ ER ดั้งเดิมของ Chen ความสัมพันธ์ประกอบด้วยคุณลักษณะ ความเป็นไปได้ที่เท่าเทียมกันในการใช้คุณลักษณะในเอนทิตีและความสัมพันธ์ทำให้ความแตกต่างระหว่างเอนทิตีและความสัมพันธ์ค่อนข้างยาก

แนวทาง ER มีการเปลี่ยนแปลงและขยายออกไปเมื่อเวลาผ่านไป แต่แนวคิดหลักยังคงเป็นรากฐานที่แข็งแกร่งสำหรับการสร้างแบบจำลองข้อมูลอัจฉริยะ

ต่อไปได้รับ คำอธิบายโดยละเอียดและให้ข้อมูลเบื้องต้นเกี่ยวกับคีย์โดยเน้นเป็นพิเศษในการค้นหาคีย์หลักสำหรับเอนทิตี มีการจัดเตรียมคำอธิบายประเภทเอนทิตีด้วย และให้คำแนะนำในการตั้งชื่อและอธิบายเอนทิตี ส่วนสุดท้ายจะเน้นไปที่การวิเคราะห์ ข้อผิดพลาดทั่วไปเกี่ยวข้องกับเอนทิตีและคีย์

เอนทิตีคืออะไร?

แก่นแท้คือการแสดงทางกายภาพของการจัดกลุ่มข้อมูลเชิงตรรกะ เอนทิตีอาจเป็นวัตถุจริงที่จับต้องได้ เช่น PERSON หรือ ICE CREAM หรือนามธรรมทางแนวคิดที่จับต้องไม่ได้ เช่น COST CENTER หรือ MARKET เอนทิตีไม่ได้มีวัตถุประสงค์เพื่อเป็นตัวแทนของเอนทิตีเดียว แต่เป็นการรวบรวมอินสแตนซ์ที่มีข้อมูลที่น่าสนใจในแง่ของเอกลักษณ์ ตัวอย่างเช่น เอนทิตี PERSON เป็นอินสแตนซ์ของออบเจ็กต์ประเภทบุคคล Ivan Petrov, Maria Rusanova และ Savely Bogdanov - ตัวอย่างที่เฉพาะเจาะจงอินสแตนซ์ของเอนทิตี PERSON อินสแตนซ์เฉพาะของเอนทิตีจะแสดงด้วยแถวของตารางและระบุด้วยคีย์หลัก

กิจการมีลักษณะดังต่อไปนี้:

  • มันมีชื่อและคำอธิบาย
  • มันแสดงถึงคลาส ไม่ใช่อินสแตนซ์เดียวของสิ่งที่เป็นนามธรรม
  • ตัวแทนเฉพาะ (อินสแตนซ์) สามารถระบุได้โดยไม่ซ้ำกัน
  • ประกอบด้วยการจัดกลุ่มคุณลักษณะเชิงตรรกะที่แสดงถึงข้อมูลที่เป็นที่สนใจของบริษัท

คำจำกัดความที่เป็นทางการของเอนทิตี

ด้านล่างนี้คือรายการคำจำกัดความเอนทิตีจากหน่วยงานที่ได้รับการยอมรับในด้านการสร้างแบบจำลองข้อมูล สังเกตความคล้ายคลึงกัน:

  • Chen (1976): “สิ่งที่สามารถระบุได้อย่างมีเอกลักษณ์”
  • วันที่ (1986): "วัตถุที่แตกต่างใด ๆ ที่จะถูกแสดงในฐานข้อมูล"
  • Finklestein (1989): "เอนทิตีข้อมูลแสดงถึง 'สิ่งของ' ที่ถูกเก็บไว้เพื่อใช้อ้างอิงในภายหลัง คำว่าเอนทิตีหมายถึงการแสดงข้อมูลเชิงตรรกะ"

การเลือกเอนทิตี

จะเริ่มกระบวนการแยกเอนทิตีได้อย่างไร? หน่วยงานส่วนใหญ่จะถูกระบุในระหว่างช่วงการทำงานและการสัมภาษณ์ การวิเคราะห์ความต้องการข้อมูลจากผู้เชี่ยวชาญในเนื้อหาและผู้ใช้ปลายทางเป็นแหล่งข้อมูลที่ดีที่สุด

แหล่งข้อมูลที่ดีอีกแหล่งหนึ่งคือโมเดลองค์กร

ให้ความสนใจกับคำนามและชื่อวัตถุ - ค่อนข้างเป็นไปได้ที่พวกมันจะกลายเป็นเอนทิตีเชิงตรรกะ หลีกเลี่ยงการแสดงอินสแตนซ์เดียวเป็นเอนทิตี ดังที่มักเกิดขึ้นเมื่อมีการสร้างแบบจำลองเอนทิตีในแง่ของบทบาท การสร้างแบบจำลองเอนทิตีในแง่ของบทบาทถือเป็นข้อผิดพลาดที่ค่อนข้างบ่อย เอนทิตียังปรากฏในระหว่างกระบวนการทำให้เป็นมาตรฐานด้วย การลดแบบจำลองเชิงตรรกะเป็นรูปแบบปกติที่สามมักจะส่งผลให้มีเอนทิตีเพิ่มเติมหลายรายการปรากฏขึ้น

มีสองกลุ่มหลักของเอนทิตี: ขึ้นอยู่กับและเป็นอิสระ. เอนทิตีอิสระไม่ต้องการข้อมูลจากเอนทิตีอื่นเพื่อระบุอินสแตนซ์ที่ไม่ซ้ำกัน เธอแนะนำตัวเองกับ เออร์วินในรูปสี่เหลี่ยมผืนผ้า คีย์หลักของเอนทิตีอิสระไม่รวมคีย์หลักของเอนทิตีอื่น
เอนทิตีที่ต้องพึ่งพาจะต้องดึงข้อมูลจากเอนทิตีอื่นเพื่อระบุอินสแตนซ์ที่ไม่ซ้ำกัน มันถูกแสดงบนไดอะแกรม ER เป็นรูปสี่เหลี่ยมผืนผ้าที่มีมุมโค้งมน คีย์หลักของเอนทิตีที่ขึ้นต่อกันประกอบด้วยคีย์หลักของเอนทิตีหลักตั้งแต่หนึ่งรายการขึ้นไป

ข้าว. 2.1. ตัวอย่างกิจการหลักสำหรับบริษัทที่ขายไอศกรีม

ให้ความสนใจกับมะเดื่อ 2.1. ซึ่งแสดงมุมขวาของหน่วยงานอิสระ STORE และ ICE CREAM และมุมโค้งมนของหน่วยงานอิสระ ICE CREAM STORE

การกำหนดประเภทเอนทิตี

ทั้งเอนทิตีที่ขึ้นต่อและอิสระสามารถแบ่งออกเป็นหลายประเภท:

  • เอนทิตีหลัก - บางครั้งเรียกว่าเอนทิตีหลักหรือเอนทิตีหลัก แสดงถึงวัตถุสำคัญที่ควรจัดเก็บข้อมูล
  • รหัส/ข้อมูลอ้างอิง/ตัวแยกประเภท - เอนทิตีเหล่านี้มีสตริงที่กำหนดชุดของค่าหรือขอบเขตสำหรับแอตทริบิวต์
  • เอนทิตีที่เชื่อมโยง - เอนทิตีเหล่านี้ใช้เพื่อแก้ไขความสัมพันธ์ หลายต่อหลาย.
  • เอนทิตีที่มีลักษณะเฉพาะ - เอนทิตีเหล่านี้มีสองประเภท: เอกสิทธิ์และแบบรวม

หน่วยงานหลัก

หน่วยงานหลักเป็นตัวแทนของวัตถุข้อมูลองค์กรที่สำคัญที่สุด สิ่งเหล่านี้บางครั้งเรียกว่าเอนทิตีหลัก หลัก หรือหลัก เนื่องจากเอนทิตีเหล่านี้มีความสำคัญอย่างยิ่ง จึงมีแนวโน้มที่จะนำไปใช้ในหลายส่วนของบริษัท ใช้เวลาค้นหาเอนทิตีที่คล้ายกัน เนื่องจากเอนทิตีหลักมีแนวโน้มที่จะนำกลับมาใช้ใหม่ได้ ภายในองค์กร เอนทิตีหลักจะต้องได้รับการสร้างแบบจำลองอย่างสม่ำเสมอ นักสร้างโมเดลที่ดีมองว่าแนวทางนี้มีประโยชน์อย่างยิ่ง

เอนทิตีหลักสามารถเป็นอิสระหรือขึ้นอยู่กับก็ได้ รูปที่ 2.1 แสดงตัวอย่างองค์กรหลักของบริษัทที่ขายไอศกรีม นิติบุคคล ICE CREAM เป็นตัวแทนของผลิตภัณฑ์พื้นฐานของบริษัท เอนทิตี STORE เป็นตัวอย่างของช่องทางการจัดจำหน่ายหรือตัวกลางในการขายสินค้า

สมมติว่าบริษัทกำลังไปได้ดีและมีการตัดสินใจเปิดร้านค้าเพิ่มเติม หากต้องการเพิ่มอินสแตนซ์ใหม่ของเอนทิตี STORE ไม่จำเป็นต้องเปลี่ยนแบบจำลอง เช่นเดียวกับเอนทิตี ICE CREAM

ให้ความสนใจกับหน่วยงานหลัก ICE CREAM และ STORE แม้ว่าตัวอย่างอาจดูตรงไปตรงมาเล็กน้อย แต่ก็แสดงให้เห็นถึงพลังของแนวคิดเบื้องหลังการสร้างแบบจำลองเอนทิตีหลัก
การทำความเข้าใจความจำเป็นในการสร้างแบบจำลองเอนทิตีหลักเป็นคอนเทนเนอร์ที่ปรับขนาดได้และขยายได้นั้น ผู้สร้างโมเดลจะต้องมองเอนทิตีเป็นแนวคิดเชิงนามธรรม และข้อมูลโมเดลโดยไม่ขึ้นกับวิธีการใช้ปัจจุบัน ในตัวอย่างนี้ แบบจำลองของเอนทิตี ICE CREAM อยู่นอกบริบทของเอนทิตี STORE โดยสมบูรณ์ และในทางกลับกัน ดังนั้นหากบริษัทตัดสินใจขาย ICE CREAM ผ่านช่องทางการจัดจำหน่ายใหม่ เช่น อินเทอร์เน็ตหรือการจัดส่งถึงบ้าน ช่องทางการจัดจำหน่ายใหม่ก็สามารถเพิ่มได้โดยไม่ต้องเปลี่ยนแปลงกับหน่วยงานอื่น

รหัสเอนทิตี

รหัสเอนทิตีเป็นอิสระอยู่เสมอ มักเรียกว่าข้อมูลอ้างอิง ตัวแยกประเภท หรือประเภทเอนทิตี ขึ้นอยู่กับวิธีการที่ใช้ อินสแตนซ์ที่ไม่ซ้ำกันที่แสดงโดยเอนทิตีโค้ดจะกำหนดขอบเขตของค่าแอตทริบิวต์ที่เป็นของเอนทิตีอื่น ความสัมพันธ์ระหว่างเอนทิตีรหัสและเอนทิตีอื่นๆ จะมีการหารือในโพสต์ในอนาคตในหัวข้อนี้ คุณอาจถูกล่อลวงให้ใช้แอตทริบิวต์เดียวในตารางโค้ด เป็นการดีกว่ามากที่จะรวมแอตทริบิวต์อย่างน้อยสามรายการในเอนทิตีการเข้ารหัส: ตัวระบุ ชื่อ (บางครั้งเรียกว่า ชื่อสั้น) และคำจำกัดความ

ในรูปที่ 2.2 สูงสุด- เอนทิตีอิสระ (สังเกตมุมขวา) TOP ยังเป็นเอนทิตีรหัสหรือตัวแยกประเภท อินสแตนซ์ (แถว) ของเอนทิตี TOP กำหนดรายการท็อปที่มีอยู่

เอนทิตีรหัสมักจะมีแอตทริบิวต์จำนวนจำกัด มีการใช้งานที่เอนทิตีเหล่านี้มีเพียงแอตทริบิวต์เดียวเท่านั้น จะดีกว่าถ้าสร้างโมเดลเอนทิตีโค้ดโดยใช้ตัวระบุปลอม ตัวระบุปลอม พร้อมด้วยชื่อและคำจำกัดความ ช่วยให้สามารถเพิ่ม TOP ชนิดใหม่เป็นอินสแตนซ์ (สตริง) ให้กับเอนทิตีได้ สังเกตคุณลักษณะสามประการของเอนทิตี TOP

ผู้เชี่ยวชาญมักอ้างถึงเอนทิตีรหัสว่าเป็นวัตถุทางธุรกิจขององค์กร คำว่าออบเจ็กต์ธุรกิจขององค์กรบ่งชี้ว่าเอนทิตีถูกกำหนดและใช้ร่วมกันในระดับองค์กร แทนที่จะเป็นระดับของแอปพลิเคชัน ระบบ หรือหน่วยองค์กรเดียว เอนทิตีเหล่านี้มักจะใช้ร่วมกันระหว่างฐานข้อมูลหลายแห่งเพื่อให้แนวทางแบบองค์รวมในการรายงานสรุปและการวิเคราะห์แนวโน้ม

ข้าว. 2.2. เอนทิตีรหัสอนุญาตให้องค์กรกำหนดชุดของค่าสำหรับการใช้งานแบบรวมศูนย์ภายในองค์กร อินสแตนซ์โค้ดเอนทิตีกำหนดขอบเขตสำหรับการกำหนดค่าเพื่อใช้ในส่วนอื่น ๆ ของโมเดล

หน่วยงานที่เกี่ยวข้อง

เชื่อมโยงเป็นเอนทิตีที่มีคีย์หลักของเอนทิตีอื่นตั้งแต่สองตัวขึ้นไป หน่วยงานที่เชื่อมโยงจะขึ้นอยู่กับเสมอ ใช้เพื่อแก้ไขความสัมพันธ์แบบกลุ่มต่อกลุ่มระหว่างเอนทิตีอื่นๆ ความสัมพันธ์แบบกลุ่มต่อกลุ่มเกิดขึ้นเมื่อหลายอินสแตนซ์ของเอนทิตีหนึ่งเชื่อมโยงกับหลายอินสแตนซ์ของเอนทิตีอื่น เอนทิตีที่เชื่อมโยงช่วยให้เราสร้างแบบจำลองจุดตัดของอินสแตนซ์ของสองเอนทิตีได้ เพื่อให้แน่ใจว่าแต่ละอินสแตนซ์ของการเชื่อมโยงจะไม่ซ้ำกัน

ในรูปที่ 2.1 เอนทิตีที่เชื่อมโยงถูกใช้เพื่อแก้ไขความสัมพันธ์ หลายต่อหลายระหว่างหน่วยงาน STORE และ ICE CREAM การเปิดตัวนิติบุคคลที่เชื่อมโยงทำให้สามารถใช้ ICE CREAM เดียวกันเพื่อขายในร้านค้าหลายชุด โดยไม่จำเป็นต้องขาย ICE CREAM พันธุ์เดียวกันในแต่ละร้าน หน่วยงานที่เชื่อมโยง ICE CREAM SHOP คำนึงถึงข้อเท็จจริงที่ว่าอินสแตนซ์ของ STORE ขาย ICE CREAM หลายอินสแตนซ์ และอินสแตนซ์ของ ICE CREAM สามารถขายได้โดยอินสแตนซ์ของ STORE หลายรายการ

เอนทิตีลักษณะเฉพาะ

เอนทิตีลักษณะเฉพาะเป็นที่พึ่งเสมอ คุณควรใช้เอนทิตีที่มีลักษณะเฉพาะซึ่งเหมาะสมสำหรับอินสแตนซ์เอนทิตีในการจัดเก็บชุดแอตทริบิวต์ที่แตกต่างกัน Finklestein เรียกเอนทิตีที่มีลักษณะเฉพาะ เอนทิตีรอง เอนทิตีที่มีลักษณะเฉพาะจะมีเอนทิตี "เพียร์" หนึ่งรายการขึ้นไปเสมอ เอนทิตีที่มีลักษณะเฉพาะแบบเพียร์เกี่ยวข้องกับเอนทิตีหลักโดยความสัมพันธ์ชนิดพิเศษที่สามารถเป็นแบบพิเศษหรือแบบรวมได้

รูปที่ 2.3 แสดงเอนทิตีคอนเทนเนอร์และเอนทิตีลักษณะเฉพาะ HORN และ CUP เห็นได้ชัดว่าร้านไอศกรีมไม่ได้ขายตามน้ำหนัก แต่ขายแยกส่วน โปรดทราบว่าอินสแตนซ์ CONTAINER ต้องเป็น HORN หรือ CUP คอนเทนเนอร์ไม่สามารถเป็นทั้ง HORN และ CUP สิ่งเหล่านี้เป็นเอนทิตีลักษณะพิเศษเฉพาะ

เอนทิตี PERSON ในรูปที่ 2.3 มีสองเอนทิตีที่มีลักษณะเฉพาะคือ EMPLOYEE และ CLIENT โปรดทราบว่าเอนทิตีลักษณะพิเศษจะไม่อนุญาตให้อินสแตนซ์หนึ่งของ PERSON มีข้อเท็จจริงที่เหมือนกันกับ EMPLOYEE และ CLIENT แน่นอนว่าสิ่งนี้ขัดแย้งกับการปฏิบัติจริง พนักงานสามารถเป็นลูกค้าได้อย่างแน่นอน ซัพพลายเออร์สามารถทำหน้าที่เป็นลูกค้าได้เช่นกัน นี่คือตัวอย่างของเอนทิตีที่มีลักษณะเฉพาะแบบรวม

ข้าว. 2.3. สองตัวอย่างของเอนทิตีลักษณะเฉพาะคือ PERSON และ CONTAINER ทั้งสองตัวอย่างใช้สัญกรณ์ ERwin IE เพื่อแสดงเอนทิตีลักษณะเฉพาะและแบบรวม การไม่มี (X) ในสัญลักษณ์เอนทิตีที่มีลักษณะเฉพาะบ่งชี้ถึงความสัมพันธ์แบบรวม

เอนทิตีโครงสร้าง

บางครั้งอินสแตนซ์ของเอนทิตีเดียวกันก็เกี่ยวข้องกัน ในหนังสือของเขาปี 1992 “การพัฒนาระบบยุทธศาสตร์” K. Finklestein เสนอให้ใช้เอนทิตีเชิงโครงสร้างเพื่อแสดงความสัมพันธ์ระหว่างอินสแตนซ์ของเอนทิตีเดียวกัน ความสัมพันธ์ระหว่างอินสแตนซ์ของเอนทิตีเดียวกันเรียกว่าความสัมพันธ์แบบเรียกซ้ำ ความสัมพันธ์แบบเรียกซ้ำจะกล่าวถึงในบทความ "แนวคิดของความสัมพันธ์" ความสัมพันธ์แบบเรียกซ้ำเป็นแนวคิดเชิงตรรกะ และผู้ใช้ไม่สามารถเข้าใจแนวคิดนี้ได้ง่าย

รูปที่ 2.4 แสดงเอนทิตีโครงสร้างเพิ่มเติมที่อธิบายความสัมพันธ์ระหว่างอินสแตนซ์ของเอนทิตี EMPLOYEE แผนภาพแสดงให้เห็นว่าเอนทิตีที่มีลักษณะเฉพาะ EMPLOYEE ของเอนทิตี PERSON มีเอนทิตีที่มีลักษณะเฉพาะสองรายการ EXECUTOR และ MANAGER เอนทิตีโครงสร้างพนักงานแสดงถึงความสัมพันธ์ระหว่างอินสแตนซ์ของเอนทิตี EMPLOYEE

ข้าว. 2.4. สาระสำคัญของโครงสร้างเป็นตัวอย่างของแนวทางของ K. Finklestein ในการแก้ไขความสัมพันธ์แบบเรียกซ้ำ

การกำหนดคีย์หลัก

เพื่อระบุอินสแตนซ์เฉพาะของเอนทิตี คุณต้องกำหนดคีย์หลัก คีย์หลักคือแอตทริบิวต์หรือชุดของคุณลักษณะที่ระบุอินสแตนซ์เดียวของเอนทิตีโดยไม่ซ้ำกัน กล่าวอีกนัยหนึ่ง คีย์หลักอาจเป็นแอตทริบิวต์เดียวหรือประกอบด้วยหลายแอตทริบิวต์ก็ได้ คีย์หลักที่ประกอบด้วยแอตทริบิวต์มากกว่าหนึ่งรายการเรียกว่าคีย์คอมโพสิตหรือคอมโพเนนต์ ต่อไปนี้เราจะใช้คำว่า คีย์ผสม

คีย์หลักจะต้องคงที่และไม่ลบเลือน คงที่และทำลายไม่ได้หมายความว่าคีย์หลักไม่ควรมีการเปลี่ยนแปลง การเปลี่ยนแปลงคีย์หลักนั้นยากต่อการบำรุงรักษา ซึ่งมักจะนำไปสู่การทำใหม่ซึ่งมีราคาแพงมาก ดังนั้นตัวเลือกที่ดีที่สุดคือเมื่อคีย์หลักไม่ขึ้นอยู่กับอินสแตนซ์ของเอนทิตีโดยสมบูรณ์

การค้นหาคีย์หลักจำเป็นต้องวิเคราะห์ข้อมูลที่กำหนดเอนทิตี โดยทั่วไปแล้ว คีย์หลักสำหรับเอนทิตีหลักจะถูกกำหนดในระหว่างเซสชันการทำงานและการอภิปราย ผู้เชี่ยวชาญโดเมนและผู้ใช้เป็นแหล่งข้อมูลที่ดีสำหรับการเลือกคีย์หลักที่เป็นไปได้ ข้อมูลตัวอย่างยังให้ข้อมูลที่มีคุณค่าเมื่อเลือกคีย์หลักด้วย

เริ่มต้นกระบวนการระบุคีย์หลักโดยการระบุคุณลักษณะที่สำคัญทั้งหมดที่เรียกว่าตัวเลือกคีย์ คีย์ตัวเลือกอาจเป็นแอตทริบิวต์เดียวหรือหลายแอตทริบิวต์รวมกันก็ได้ หากไม่มีคีย์ตัวเลือกอยู่ หรือผู้สมัครเป็นคีย์ผสมที่มีขนาดใหญ่เกินไปและเทอะทะ ให้พิจารณาใช้ตัวระบุเฉพาะปลอม คีย์ที่ยืมมาจากเอนทิตีหลักเรียกว่าคีย์ต่างประเทศ คีย์ต่างประเทศจะมีการหารือในสิ่งพิมพ์ในอนาคตในหัวข้อนี้ ด้านล่างนี้เป็นคำอธิบายของคีย์ประเภทต่างๆ:

  • ผู้สมัครคนสำคัญ คีย์ตัวเลือกคือคุณลักษณะหรือชุดของคุณลักษณะที่ระบุอินสแตนซ์เดียวของเอนทิตี บางครั้งอินสแตนซ์เดียวของเอนทิตีจะถูกระบุด้วยแอตทริบิวต์หลายรายการหรือรวมกัน
  • คีย์คอมโพสิต คีย์ที่ประกอบด้วยแอตทริบิวต์มากกว่าหนึ่งรายการเรียกว่าคีย์ผสม คีย์เชิงซ้อน หรือคีย์คอมโพเนนต์ สำหรับคีย์ผสม แต่ละองค์ประกอบของคีย์จะต้องมีค่าสำหรับแต่ละอินสแตนซ์ ส่วนใดส่วนหนึ่งของคีย์จะต้องไม่เป็นโมฆะ จำเป็นต้องระบุทุกส่วนของคีย์และไม่สามารถละเว้นได้
  • และกุญแจหลักเทียม บางครั้งทั้งแอตทริบิวต์เดียวหรือการรวมกันของแอตทริบิวต์ไม่สามารถกำหนดอินสแตนซ์ได้ ในกรณีเหล่านี้ คุณจะใช้ตัวระบุที่ไม่ซ้ำกันปลอม คีย์หลักเทียมมักจะเพียงระบุหมายเลขแต่ละอินสแตนซ์หรือรหัส
  • กุญแจต่างประเทศ เมื่อคีย์หลักของเอนทิตีหนึ่งย้ายไปยังตารางอื่น จะเรียกว่าคีย์นอก คีย์ต่างประเทศ "เชื่อมโยง" เอนทิตีโดยแสดงความสัมพันธ์ระหว่างกัน คีย์ต่างประเทศจะมีการหารือในรายละเอียดเพิ่มเติมในบทความในอนาคตในหัวข้อนี้

การลดโมเดลเป็นรูปแบบปกติที่สาม รวมถึงการตรวจสอบการขาดการพึ่งพาการทำงานและการระบุคีย์หลักหรือคีย์ผสม การพึ่งพาการทำงานที่กล่าวถึงในการเล่นบทความ บทบาทสำคัญเมื่อระบุคีย์หลักและตัวเลือกคีย์

การตั้งชื่อเอนทิตี

ชื่อที่กำหนดให้กับเอนทิตีจะต้องระบุลักษณะเฉพาะของอินสแตนซ์ของเอนทิตี ชื่อควรมีความชัดเจนและเป็นที่ยอมรับโดยทั่วไป เมื่อเลือกชื่อ ให้ใช้มุมมองขององค์กรและพยายามใช้ชื่อที่สะท้อนถึงวิธีการใช้ข้อมูลภายในองค์กร แทนที่จะใช้ภายในแผนกใดแผนกหนึ่ง ใช้ชื่อที่มีความหมายต่อชุมชนผู้ใช้และผู้เชี่ยวชาญโดเมน

บริษัทของคุณอาจมีรูปแบบการตั้งชื่อที่คุณใช้ในระหว่างการพัฒนาหรือเมื่อสร้างแบบจำลองข้อมูลองค์กรของคุณ การใช้แบบแผนทำให้มั่นใจได้ว่าชื่อจะถูกสร้างขึ้นอย่างสม่ำเสมอภายในองค์กร ไม่ว่าใครจะเป็นคนสร้างชื่อก็ตาม ส่วนต่อไปนี้เป็นชุดเริ่มต้นของแบบแผนการตั้งชื่อ และยกตัวอย่างแบบแผนการตั้งชื่อที่ดีและไม่ดี

แบบแผนการตั้งชื่อเอนทิตี

แบบแผนการตั้งชื่ออาจดูเหมือนไม่สำคัญหากคุณทำงานในองค์กรขนาดเล็กที่มีผู้ใช้น้อย อย่างไรก็ตาม ในองค์กรขนาดใหญ่ที่มีทีมพัฒนาหลายทีมและมีผู้ใช้จำนวนมาก รูปแบบการตั้งชื่อจะช่วยในการสื่อสารและการแบ่งปันข้อมูลได้อย่างมาก ตามหลักการแล้ว คุณจะพัฒนาและรักษาแบบแผนการตั้งชื่อจากส่วนกลาง จากนั้นจัดทำเอกสารและเผยแพร่ไปยังทั้งองค์กร

ด้านล่างนี้เป็นแนวทางบางส่วนสำหรับการสร้างชุดเริ่มต้นของแบบแผนการตั้งชื่อ ในกรณีที่องค์กรของคุณยังไม่ได้พัฒนา:

  • ชื่อเอนทิตีต้องมีคำอธิบายเพียงพอ ใช้ชื่อคำเดียวเฉพาะเมื่อเป็นชื่อของแนวคิดที่ได้รับการยอมรับอย่างกว้างขวางเท่านั้น พิจารณาใช้วลีที่เป็นคำนาม
  • ชื่อเอนทิตีต้องเป็นคำนามหรือวลีนามเอกพจน์ ใช้ PERSON แทน PERSONS หรือ PEOPLE และใช้ CONTAINER แทน CONTAINERS
  • ชื่อเอนทิตีต้องไม่ซ้ำกัน การใช้ชื่อเดียวกันสำหรับเอนทิตีที่มีข้อมูลต่างกัน หรือชื่อที่แตกต่างกันสำหรับเอนทิตีที่มีข้อมูลเดียวกัน จะทำให้นักพัฒนาและผู้ใช้ปลายทางสับสนโดยไม่จำเป็น
  • ชื่อเอนทิตีต้องระบุข้อมูลที่จะจัดเก็บไว้ในแต่ละอินสแตนซ์
  • ชื่อเอนทิตีต้องไม่มีอักขระพิเศษ (เช่น !, @, #, $, %, &, * และอื่นๆ ที่คล้ายคลึงกัน) หรือบ่งบอกถึงความเป็นเจ้าของ (PERSON ICE CREAM)
  • ชื่อเอนทิตีไม่ควรมีตัวย่อหรือตัวย่อ เว้นแต่จะเป็นส่วนหนึ่งของแบบแผนการตั้งชื่อที่ยอมรับ

ตัวอย่างชื่อนิติบุคคลที่ดี

วิธีที่ดีที่สุดคือใช้ชื่อที่สอดคล้องกันภายในองค์กร ตารางที่ 2.1 แสดงตัวอย่างชื่อที่ดีและไม่ดีสำหรับเอนทิตี

ตารางที่ 2.1 ตัวอย่างชื่อเอนทิตีพร้อมคำอธิบาย

ชื่อดี

ชื่อไม่ดี

คำอธิบาย

สูตรทางคณิตศาสตร์ สูตร FORMULA มีความคลุมเครือเกินไป การเติมคำคุณศัพท์ MATHEMATICAL จะทำให้ความหมายชัดเจนยิ่งขึ้น
หนังสือ หนังสือ BOOK เป็นคำนามเอกพจน์
โซฟา โซฟา
โซฟา
SOFA และ COUCH มีความหมายเหมือนกัน เลือกสิ่งหนึ่ง
ไอศครีม ไอศกรีมบ้าง คำสรรพนาม SOME ไม่ได้เพิ่มความหมายหรือความหมายเพิ่มเติมใดๆ ให้กับคำนี้ หลีกเลี่ยงการเพิ่มเติมที่ไม่จำเป็น
รูปถ่าย ภาพ รูปถ่าย - เพียงพอแน่นอน ภาพ - ค่อนข้างเบลอ
เวลาที่คาดว่าจะมาถึง โออาร์พี ตัวย่อ ORP อาจไม่ชัดเจนสำหรับผู้ใช้
บริษัท บริษัท XYZ XYZ เป็นอินสแตนซ์เฉพาะของบริษัท และต้องเป็นแถวในเอนทิตีของบริษัท

คำอธิบายของเอนทิตี

แม้แต่ชื่อที่ดีที่ระบุให้ผู้ใช้ทราบว่าข้อมูลที่คาดหวังจากเอนทิตีมักจะไม่เพียงพอ ทุกหน่วยงานต้องการความชัดเจน แม่นยำ และ คำอธิบายแบบเต็มหรือคำจำกัดความให้ตีความได้ชัดเจนภายในองค์กร คำอธิบายเอนทิตีต้องอธิบายความหมายของเอนทิตีและความสำคัญของเอนทิตีต่อองค์กร

แม้ว่าคำอธิบาย คำจำกัดความ และวัตถุประสงค์มักจะใช้แทนกันได้ แต่ควรใช้คำว่า คำอธิบาย เนื่องจากสนับสนุนให้เราอธิบายเอนทิตีในแง่ที่ผู้ใช้สามารถเข้าใจได้

กฎเกณฑ์ในการสร้างคำอธิบายที่ดี

คำอธิบายของเอนทิตีควรอธิบายความหมาย ไม่ใช่วิธีการใช้ข้อมูลของเอนทิตี คุณต้องรวบรวมคำอธิบายเอนทิตีในระหว่างการระบุเอนทิตี ใช้ความระมัดระวังในการรวมข้อมูลการใช้งาน: ข้อมูลดังกล่าวควรใช้เพื่อวัตถุประสงค์ในการอธิบายหรือเป็นตัวอย่างเท่านั้น วิธีใช้ข้อมูลเปลี่ยนแปลงบ่อยกว่าข้อมูล ดังนั้นข้อมูลการใช้งานจึงไม่คงที่

คำอธิบายของกิจการต้องชัดเจน แม่นยำ ครบถ้วนและสม่ำเสมอ ควรจัดทำขึ้นโดยไม่ต้องใช้คำศัพท์ทางเทคนิค ทุกคนที่คุ้นเคยกับแนวคิดที่อธิบายไว้เพียงเล็กน้อยก็สามารถเข้าใจได้ ตรวจสอบให้แน่ใจว่าคำอธิบายใช้ถ้อยคำทางธุรกิจและมีคำอธิบายถึงความสำคัญของเอนทิตี

ตัวอย่างคำอธิบายที่ดี

ตาราง 2.2 ไม่ได้มีจุดมุ่งหมายเพื่อให้ครอบคลุม แต่มีวัตถุประสงค์เพื่อแสดงคำอธิบายที่ดีและสาเหตุที่คำอธิบายที่ไม่ดีไม่เป็นไปตามหลักการพื้นฐาน

ตารางที่ 2.2 คำอธิบายของเอนทิตีพร้อมคำอธิบาย

คำอธิบายที่ดี

คำอธิบายที่ไม่ดี

คำอธิบาย

PERSON มีข้อมูลเกี่ยวกับ บุคคลใครเข้า
สู่การมีปฏิสัมพันธ์
กับบริษัท. ข้อมูล
o PERSON ช่วยเหลือบริษัทในการวางแผน การพัฒนาผลิตภัณฑ์ และกิจกรรมส่งเสริมการขาย
ลูกค้าหรือพนักงาน คำอธิบายที่ดีรวมถึงคำจำกัดความของกิจการและความสำคัญของกิจการต่อบริษัท
รวมถึงชื่อ วันเดือนปีเกิด ฯลฯ สำหรับบุคคล ไม่มีการแจงนับแบบง่ายของแอตทริบิวต์เอนทิตี ข้อมูลเพิ่มเติมเกี่ยวกับกิจการคืออะไร และเหตุใดจึงมีความสำคัญต่อองค์กร
ข้อมูลลูกค้า
และพนักงาน
ลูกค้าและพนักงานเป็นตัวอย่างของบทบาทที่บุคคลสามารถเล่นได้ การใช้ตัวอย่างเพียงอย่างเดียวไม่ได้อธิบายว่าองค์กรคืออะไรหรือเหตุใดจึงมีความสำคัญต่อองค์กร
เอนทิตีประกอบด้วยอักขระและข้อมูลตัวเลขที่แยกออกมา
จาก POS (จุดขาย - สถานีซื้อขาย) จัดเก็บโดยใช้การบีบอัดมาตรฐานและบรรจุเลขทศนิยม
ที่ ตัวอย่างเทียมมีจุดมุ่งหมายเพื่อแสดงให้เห็นว่าคำอธิบายทางเทคนิคและตัวย่อเป็นเรื่องยากสำหรับผู้ใช้ทางธุรกิจที่จะเข้าใจ

ข้อผิดพลาดทั่วไปในการสร้างแบบจำลองเอนทิตีและการเลือกคีย์

ส่วนนี้เกี่ยวกับข้อผิดพลาดในการสร้างแบบจำลองทั่วไปไม่ได้ตั้งใจให้เสร็จสมบูรณ์ จุดประสงค์คือเพื่อชี้ให้เห็นข้อผิดพลาดทั่วไปที่ผู้สร้างโมเดลทำ

การสร้างแบบจำลองบทบาท

การสร้างแบบจำลองบทบาทหมายถึงอะไร? ในระหว่างเซสชันการทำงาน ผู้ใช้อาจบอกคุณว่าจำเป็นต้องจัดเก็บข้อมูลพนักงาน เป็นการดึงดูดให้สร้างเอนทิตีของพนักงาน การวิเคราะห์ข้อมูลที่น่าสนใจของบริษัทอย่างละเอียดยิ่งขึ้น เช่น ชื่อ ที่อยู่ และหมายเลข ประกันสังคมแสดงให้เห็นว่าค่าเหล่านี้ไม่ได้ขึ้นอยู่กับเอนทิตี EMPLOYEE สำหรับ EMPLOYEE ที่เฉพาะเจาะจง ค่าของแอตทริบิวต์ NAME ไม่ได้ขึ้นอยู่กับเอนทิตี EMPLOYEE สิ่งนี้ง่ายต่อการเข้าใจเมื่อคุณคิดว่าชื่อของคุณยังคงเป็นชื่อของคุณ ไม่ว่าคุณจะเป็นพนักงานหรือไม่ก็ตาม

เอนทิตีโอเวอร์โหลด

เอนทิตีที่โอเวอร์โหลดคือเอนทิตีที่มีข้อมูลเกี่ยวกับวัตถุแนวคิดมากกว่าหนึ่งรายการ หากแอตทริบิวต์เอนทิตีบางตัวอธิบายแนวคิดเดียวกัน ควรตรวจสอบเอนทิตีเหล่านั้น เอนทิตีที่โอเวอร์โหลดไม่มีค่าสำหรับทุกแอตทริบิวต์

บางครั้งผู้เชี่ยวชาญจากสาขาวิชาที่แตกต่างกันในองค์กรจะใช้ชื่อนิติบุคคลที่ฟังดูและสะกดเหมือนกัน แต่มีความหมายต่างกันสำหรับผู้เชี่ยวชาญที่แตกต่างกัน วิธีเดียวที่จะทำให้แน่ใจว่าชื่อเดียวกันอธิบายออบเจ็กต์เดียวกันคือการตรวจสอบคำอธิบาย ตรวจสอบให้แน่ใจว่าเอนทิตีมีข้อมูลที่อธิบายแนวคิดเดียว

ตัวอย่างเช่นนิติบุคคล EQUIPMENT อาจมีอย่างแน่นอน ความหมายที่แตกต่างกันสำหรับฝ่ายเทคโนโลยีสารสนเทศและฝ่ายสื่อและการสื่อสาร

เอนทิตีที่ซ้ำซ้อน

เอนทิตีที่ซ้ำซ้อนคือเอนทิตีที่มีชื่อต่างกัน แต่มีข้อมูลเกี่ยวกับแนวคิดที่คล้ายคลึงกัน ภาษาอังกฤษมีคำหลายคำที่แสดงถึงสิ่งเดียวกัน วิธีหนึ่งในการค้นหาเอนทิตีดังกล่าวคือการค้นหาเอนทิตีที่มีคุณลักษณะคล้ายกัน เปรียบเทียบคำอธิบายของแต่ละเอนทิตีเหล่านี้เพื่อดูว่าแสดงถึงแนวคิดที่คล้ายคลึงกันหรือไม่ เอนทิตีที่ซ้ำซ้อนมักเป็นผลมาจากแนวโน้มที่จะจำลองบทบาทเป็นเอนทิตี

ตัวอย่างเช่น เอนทิตี MANAGER และ EMPLOYEE อาจมีข้อมูลที่คล้ายกัน เนื่องจากทั้งสองเป็นบทบาทที่อินสแตนซ์ของเอนทิตี PERSON สามารถเล่นได้

การเลือกคีย์หลักผิด

การเลือกคีย์หลักที่ไม่ถูกต้องหมายความว่าคุณได้เลือกคีย์หลักที่ไม่ผ่านการทดสอบ ข้อผิดพลาดทั่วไปที่เกี่ยวข้องกับคีย์หลักคือ:

  • ไม่ซ้ำกัน: คีย์หลักไม่ซ้ำกันสำหรับแต่ละอินสแตนซ์ ตัวอย่างเช่น ผู้สร้างโมเดลอาจพิจารณาว่าหมายเลขประกันสังคมไม่ซ้ำกันสำหรับแต่ละคน อย่างไรก็ตาม หมายเลขประกันสังคมสามารถนำมาใช้ซ้ำได้หากเจ้าของเดิมเสียชีวิต
  • ค่าที่ต้องการ/ความไม่แน่นอน: คีย์หลักไม่มีค่าสำหรับบางอินสแตนซ์ ตัวอย่างเช่น ไม่ใช่ทุกอินสแตนซ์ของเอนทิตี PERSON ที่จะมีหมายเลขประกันสังคม ชาวต่างชาติและเด็กเล็กเป็นคนสองประเภทที่จะขาดงาน

การใช้ชื่อเอนทิตีที่ไม่ดี

ชื่อที่สับสน กำกวม หรือไม่แน่ชัด ทำให้ผู้ใช้ใหม่และทีมพัฒนาสามารถนำกลับมาใช้ใหม่หรือขยายโมเดลที่มีอยู่ได้ยาก

อย่าใช้คำย่อหรือคำย่อเป็นส่วนหนึ่งของชื่อของคุณ ตัวย่อและตัวย่อเปิดให้สำหรับการตีความที่ผิดและอาจมีความหมายที่แตกต่างกันในสาขาวิชาที่แตกต่างกัน

อย่ารวมสถานที่เป็นส่วนหนึ่งของชื่อ ตามกฎแล้วคุณจะต้องมีสถานที่อื่นอย่างหลีกเลี่ยงไม่ได้ ชื่อเฉพาะสถานที่เป็นการบ่งชี้ว่าคุณกำลังสร้างแบบจำลองอินสแตนซ์เฉพาะแทนที่จะเป็นคลาสเอนทิตี

การใช้คำอธิบายเอนทิตีที่ไม่ดี

อย่าใช้คำอธิบายที่นำมาจากพจนานุกรมเท่านั้น คำอธิบายพจนานุกรมจะไม่รวมข้อมูลที่เกี่ยวข้องกับธุรกิจ

อย่าพยายามใช้ถ้อยคำชื่อเอนทิตีใหม่ อย่าใช้ชื่อเอนทิตีในคำอธิบาย

คำอธิบายที่ไม่ชัดเจน คลุมเครือ หรือแย่กว่านั้นคือคำอธิบายที่ไม่สมบูรณ์ทำให้ยากต่อการนำมาใช้ซ้ำและขยายโมเดลที่มีอยู่ ผู้ใช้จะไม่สามารถตรวจสอบได้ว่าเอนทิตีมีข้อมูลที่จำเป็นทั้งหมดหรือไม่

สิ่งนี้เพิ่มความเสี่ยงอย่างมากในการสร้างเอนทิตีที่โอเวอร์โหลดและใช้เพื่อจัดเก็บข้อมูลเกี่ยวกับออบเจ็กต์ต่างๆ

แนวคิดที่ดูเหมือนชัดเจนสำหรับทุกคนที่เกี่ยวข้องกับเซสชันการทำงานอาจไม่ชัดเจนนักเมื่อเวลาผ่านไป เนื่องจากทีมพัฒนาใหม่ได้รับมอบหมายให้ขยายโมเดลที่มีอยู่

บทสรุป

เอนทิตีคือวัตถุ ข้อมูลที่ควรสะสมและดูแลรักษา เป็น "คอนเทนเนอร์" สำหรับจัดระเบียบและจัดกลุ่มข้อเท็จจริงทางธุรกิจ เอนทิตีที่สำคัญที่สุดมักจะถูกระบุและบันทึกไว้ในระหว่างช่วงการทำงานหรือการสัมภาษณ์ และเป็นผลมาจากกระบวนการทำให้เป็นมาตรฐาน

เอนทิตีแบ่งออกเป็นสองกลุ่มหลัก: ขึ้นอยู่กับและเป็นอิสระ เอนทิตีที่ขึ้นต่อกันต้องการข้อมูลจากเอนทิตีอื่นเพื่อระบุอินสแตนซ์โดยไม่ซ้ำกัน แต่เอนทิตีอิสระไม่ต้องการ ภายในเอนทิตีสองกลุ่มหลัก จะมีประเภทเฉพาะทางที่แตกต่างกันมากขึ้น พร้อมด้วยคุณลักษณะที่สนับสนุนประเภทความสัมพันธ์เฉพาะระหว่างเอนทิตีหลักและเอนทิตีรอง

แต่ละเอนทิตีต้องมีชุดแอตทริบิวต์หนึ่งชุดขึ้นไปที่เป็นคีย์ตัวเลือก ตัวเลือกหลักจะระบุอินสแตนซ์เฉพาะของเอนทิตีได้โดยไม่ซ้ำกัน ผู้สมัครหลักอาจประกอบด้วยแอตทริบิวต์เดียวหรือกลุ่มของแอตทริบิวต์ หากไม่มีตัวเลือกคีย์หรือรักษาได้ยาก คุณอาจต้องสร้างคีย์หลักปลอม การวิเคราะห์และการวิจัยมีบทบาทสำคัญในการระบุคีย์หลักที่จะยังคงเอกลักษณ์และเชื่อถือได้เมื่อเวลาผ่านไป

เอนทิตีจำเป็นต้องมีชื่อและคำอธิบายที่ดี มาตรฐานและแบบแผนการตั้งชื่อเป็นแนวทางแบบองค์รวมในการพัฒนาชื่อและคำอธิบาย ลักษณะของเอนทิตีจะถูกกำหนดโดยคุณลักษณะที่มีอยู่ คุณลักษณะของเอนทิตีแสดงถึงข้อเท็จจริงเกี่ยวกับเอนทิตีที่บริษัทสนใจที่จะสะสมและดูแลรักษา

บทความถัดไปในชุดนี้จะอธิบายกระบวนการในการระบุคุณลักษณะและคุณลักษณะ การกำหนดคุณลักษณะคีย์และไม่ใช่คีย์ ขอบเขตและข้อมูลเสริม และการสร้างแบบแผนสำหรับการสร้างชื่อคุณลักษณะและคำอธิบายที่ดี

ส่วนที่ 2 แนวคิดคุณลักษณะ

บทความ "แนวคิดพื้นฐานของการสร้างแบบจำลองข้อมูล" ได้แนะนำแนวคิดพื้นฐานที่เกี่ยวข้องกับการสร้างแบบจำลองข้อมูล ในบทความส่วนประกอบหลักของไดอะแกรม ERwin - เอนทิตี คุณลักษณะ ความสัมพันธ์ ส่วนที่ 1 ให้แนวคิดของเอนทิตี ข้อมูลเบื้องต้นเกี่ยวกับเอนทิตีและคีย์เอนทิตี บทความนี้กล่าวถึงคุณลักษณะและอธิบายการทำให้เป็นมาตรฐานและคีย์โดยละเอียดเพิ่มเติม

ในบทความนี้คุณจะได้เรียนรู้วิธีการ:

  • ระบุคุณลักษณะ
  • ดำเนินการทำให้เป็นมาตรฐานในระหว่างการวิเคราะห์คุณลักษณะ
  • ตั้งชื่อและอธิบายคุณลักษณะ และเรียนรู้เกี่ยวกับแบบแผนการตั้งชื่อคุณลักษณะ
  • กำหนดประเภทและคุณลักษณะของแอตทริบิวต์ เช่น ขอบเขตและประเภทข้อมูลบูลีน และตรวจสอบความถูกต้องของคีย์จากมุมมองของแอตทริบิวต์
  • หลีกเลี่ยงข้อผิดพลาดทั่วไปเมื่อทำงานกับแอตทริบิวต์

ในไดอะแกรม ER เอนทิตีและความสัมพันธ์จะทำหน้าที่จัดกลุ่มและรวมแอตทริบิวต์ เป็นคุณลักษณะที่ประกอบขึ้นเป็นแก่นแท้ของแบบจำลอง เรามาเริ่มศึกษาคุณลักษณะกันดีกว่า - ข้อเท็จจริงที่ประกอบขึ้นเป็นข้อมูลของแบบจำลองเชิงตรรกะ

คุณลักษณะคืออะไร?

คุณลักษณะเป็นการนำเสนอข้อเท็จจริงที่องค์กรสนใจในการจัดเก็บข้อมูลอย่างมีเหตุผล โปรดจำไว้ว่าใน ERwin เอนทิตีทำหน้าที่แสดงการจัดกลุ่มแอตทริบิวต์เชิงตรรกะ ในทางกลับกัน คุณลักษณะแสดงถึงข้อเท็จจริงที่สะสมเกี่ยวกับเอนทิตีในแบบจำลองเชิงตรรกะ คุณลักษณะคือข้อเท็จจริงที่ทำหน้าที่ระบุ จัดหมวดหมู่ แสดงเป็นตัวเลข หรืออธิบายสถานะของอินสแตนซ์เอนทิตี

คุณลักษณะต้องแสดงถึงแนวคิดเดียว แอ็ตทริบิวต์สร้างกลุ่มลอจิคัลที่อธิบายแต่ละอินสแตนซ์ของเอนทิตี ตัวอย่างเฉพาะของแอตทริบิวต์คือ ความหมาย. ตัวอย่างเช่น คุณลักษณะชื่อ Name จะกำหนดขอบเขตข้อเท็จจริงเกี่ยวกับเอนทิตีที่เรียกว่า PERSON Gabriel, RJ, Will และ Vanessa เป็นตัวอย่างของความหมายชื่อเฉพาะสำหรับกรณีเฉพาะของ PERSON ค่าเฉพาะสำหรับแต่ละแอตทริบิวต์เอนทิตีแสดงถึงอินสแตนซ์เดียว

โมเดลแอตทริบิวต์ที่ถูกต้องมีลักษณะดังต่อไปนี้:

  • ค่าแอตทริบิวต์เป็นที่สนใจของบริษัท
  • มีแอ็ตทริบิวต์เพียงอินสแตนซ์เดียวในแบบจำลองเชิงตรรกะ
  • แอ็ตทริบิวต์มีชนิดข้อมูลบูลีนและขอบเขต
  • ค่าแอ็ตทริบิวต์ถูกกำหนดให้เป็นค่าบังคับหรือเป็นทางเลือก
  • คุณลักษณะมีชื่อและคำอธิบาย
  • สามารถใช้ค่าเดียวเท่านั้นสำหรับแต่ละอินสแตนซ์เอนทิตี

ผู้ขายปลีกไอศกรีม Betty Wilson ต้องการสั่งซื้อรสชาติยอดนิยมมากขึ้นแต่รสชาติที่ได้รับความนิยมน้อยที่สุดน้อยลง Betty Corporation กำลังทำไอศกรีมสูตรพิเศษ และสนใจทราบว่าลูกค้าเลือกไอศกรีมรสชาติใดสำหรับของหวานรสกล้วยและฟัดจ์ในช่วงเมนูพิเศษ เพื่อให้เป็นไปตามข้อกำหนดทางธุรกิจ จำเป็นต้องรวบรวมข้อมูลรสชาติไอศกรีมสำหรับขนมกล้วย ฟัดจ์ และอินทผาลัม

ในรูปที่ 3.1 มีสองเอนทิตี BANANA DESSERT และ CREAM Fudge แต่ละเอนทิตีมีคุณสมบัติที่แสดงถึงส่วนประกอบของแต่ละจาน โปรดทราบว่าสำหรับ BANANA DESSERT คุณสามารถเลือกได้สามรสชาติ สามท็อปปิ้ง: กล้วย วิปครีม และเชอร์รี่ เช่น Fudge คุณสามารถเลือกได้ 2 รสชาติ ได้แก่ กล้วย วิปครีม และเชอร์รี่

ข้าว. 3.1. เอนทิตีและคุณลักษณะที่แสดงถึงแนวคิดพื้นฐานสองประการ (ไม่ค่อยดีนัก): Fudge และ BANANA DESSERT

การค้นพบคุณสมบัติ

จะเริ่มกระบวนการระบุคุณลักษณะได้ที่ไหน? คุณลักษณะส่วนใหญ่จะถูกระบุในระหว่างเซสชันการทำงานและการสัมภาษณ์ระหว่างการกำหนดเอนทิตี การวิเคราะห์ความต้องการข้อมูลจากผู้เชี่ยวชาญโดเมนและผู้ใช้ปลายทางเป็นแหล่งข้อมูลที่ดีที่สุดในการระบุคุณลักษณะ

โมเดลองค์กรยังเป็นพื้นฐานที่ดีเยี่ยมสำหรับการเน้นย้ำคุณลักษณะต่างๆ เปรียบเทียบเอนทิตีและคุณลักษณะของโมเดลองค์กรกับเอนทิตีและคุณลักษณะของโมเดลลอจิคัลใหม่ โมเดลองค์กรประกอบด้วยแอตทริบิวต์ที่กำหนดไว้ก่อนหน้านี้สำหรับแต่ละเอนทิตี โดยเฉพาะอย่างยิ่งเอนทิตีหลัก หากไม่มีแอตทริบิวต์ในรูปแบบองค์กร การวิเคราะห์เพิ่มเติมจะช่วยให้คุณสามารถกำหนดได้ว่าจำเป็นต้องเพิ่มหรือเป็นของหน่วยงานอื่นหรือไม่

จัดระเบียบแอตทริบิวต์ตามความต้องการข้อมูล

คุณลักษณะของแบบจำลองเชิงตรรกะต้องเป็นไปตามข้อกำหนดข้อมูลอย่างเคร่งครัด คุณลักษณะแต่ละรายการที่มีอยู่ในโมเดลจะต้องตอบสนองความต้องการข้อมูลตั้งแต่หนึ่งรายการขึ้นไป แบบจำลองควรมีเฉพาะคุณลักษณะที่จำเป็นในการนำเสนอข้อเท็จจริงที่น่าสนใจต่อบริษัทภายในสาขาวิชาที่อยู่ระหว่างการพิจารณา

ข้อเท็จจริงที่น่าสนใจทุกประการจากมุมมองขององค์กรจะต้องนำเสนออย่างถูกต้องและสมบูรณ์ในรูปแบบตรรกะ ข้อกำหนดด้านข้อมูลทำหน้าที่เป็นตัววัดความจำเป็นในการเน้นคุณลักษณะ จะมีประโยชน์ในการจัดทำเอกสารความสัมพันธ์ระหว่างคุณลักษณะและข้อกำหนดข้อมูล

การวิเคราะห์คุณสมบัติ

คุณควรวิเคราะห์แต่ละแอตทริบิวต์เพื่อกำหนดความสัมพันธ์กับคุณลักษณะอื่นๆ ทั้งหมดในโมเดล การวิเคราะห์ที่ดำเนินการอย่างถูกต้องช่วยให้แน่ใจว่าแต่ละคุณลักษณะมีอยู่ในแบบจำลองในสำเนาเดียว และวางไว้ในเอนทิตีตามรูปแบบปกติที่สาม

เป็นสิ่งสำคัญอย่างยิ่งในการวิเคราะห์แต่ละคีย์หลักและแต่ละส่วนของคีย์หลักแบบรวมเพื่อตรวจสอบว่าค่ามีอยู่สำหรับแต่ละอินสแตนซ์ของเอนทิตี คุณต้องตรวจสอบให้แน่ใจด้วยว่าคีย์หลักระบุอินสแตนซ์เดียวของเอนทิตีเท่านั้น

การวิเคราะห์ยังสามารถระบุได้ว่าบริษัทสนใจที่จะสะสมและรักษาข้อมูลใดๆ เกี่ยวกับคุณลักษณะนั้นหรือไม่ หากแอตทริบิวต์มีความสำคัญมากจนต้องมีแอตทริบิวต์เพิ่มเติมเพื่อจัดเก็บข้อมูล คุณควรพิจารณาสร้างเอนทิตีใหม่

คุณต้องวิเคราะห์แอตทริบิวต์ของโมเดลเชิงตรรกะแต่ละรายการเพื่อให้แน่ใจว่ามีเพียงอินสแตนซ์เดียวของแต่ละแอตทริบิวต์ในโมเดล และมีเพียงค่าแอตทริบิวต์เดียวเท่านั้นสำหรับแต่ละอินสแตนซ์เอนทิตี คุณต้องวางแอตทริบิวต์ในเอนทิตีที่เหมาะสมโดยใช้กฎการปรับมาตรฐานและกำหนดคุณลักษณะ

ควรจะเหลือเพียงคนเดียวเท่านั้น

แอ็ตทริบิวต์จะต้องมีอยู่ในโมเดลเชิงตรรกะในสำเนาเดียว "ข้อเท็จจริงเดียวในที่เดียว" (วันที่ 1986) เพื่อให้แน่ใจว่าข้อเท็จจริงแต่ละรายการแสดงด้วยแอตทริบิวต์เดียว ให้ตรวจสอบแอตทริบิวต์ที่มีชื่อหรือคำอธิบายคล้ายกัน นอกจากนี้ คุณต้องพิจารณาว่าแอตทริบิวต์นั้นเป็นอินสแตนซ์จริงหรือค่าที่เป็นรูปธรรมซึ่งแสดงในรูปแบบที่ไม่ถูกต้องด้วยแอตทริบิวต์ที่แตกต่างกัน

แอตทริบิวต์ที่มีชื่อและคำอธิบายคล้ายกันอาจแสดงถึงแนวคิดเดียวกันและควรแสดงด้วยแอตทริบิวต์เดียว ในภาษาธรรมชาติ คำเดียวกันสามารถแสดงถึงแนวคิดได้หลายแนวคิด แต่ที่แย่ไปกว่านั้นก็คือ ภาษาอังกฤษอาจมีคำที่แตกต่างกันหลายคำเพื่อแสดงแนวคิดเดียวกัน

คุณลักษณะที่มีคำว่า "ตัวบ่งชี้" หรือ "ธง" ในชื่อมักจะแสดงถึงค่าเฉพาะจากขอบเขตของคำจำกัดความของแอตทริบิวต์ ค่าเฉพาะเป็นตัวอย่างของแอตทริบิวต์ การใช้อินสแตนซ์ของแอตทริบิวต์ในแบบจำลองถือเป็นข้อผิดพลาดทั่วไป ตัวอย่างเช่น "ตัวบ่งชี้ผมสีดำ" จะเป็น "ใช่" หากมีผมสีดำ และ "ไม่" หากไม่มีผมสีดำ ควรใช้แอตทริบิวต์ สีผม ในโมเดล ซึ่งอาจมีค่าเฉพาะ "สีดำ"

คุณลักษณะต้องแสดงถึงแนวคิดทางธุรกิจเพียงแนวคิดเดียวเท่านั้น ไม่ควรมีหลายค่าสำหรับอินสแตนซ์เอนทิตีเดียว รูปที่ 3.1 แสดงสองเอนทิตี BANANA DESSERT และ Fudge เอนทิตีทั้งสองมีแอตทริบิวต์ที่มีหลายค่าชื่อ "วันที่เริ่มต้นหรือสิ้นสุด" ข้อเสนอพิเศษ" ชื่อของแอตทริบิวต์ระบุว่าค่าสามารถแสดงถึงวันที่เริ่มต้นของข้อเสนอพิเศษหรือวันที่สิ้นสุดของข้อเสนอพิเศษได้ และเราไม่มีทางแยกความแตกต่างระหว่างแอตทริบิวต์เหล่านี้ได้! แอตทริบิวต์นี้จะต้องแบ่งออกเป็นสองส่วน โดยแต่ละแอตทริบิวต์ จะแสดงข้อเท็จจริงข้อเดียว

หากเราอนุญาตให้แอตทริบิวต์มีหลายค่า อาจส่งผลให้มีแอตทริบิวต์ "ที่ซ่อนอยู่" ที่เกี่ยวข้องกันอย่างใกล้ชิด ตัวอย่างก่อนหน้านี้ค่อนข้างชัดเจน คุณลักษณะที่มีหลายค่าไม่สามารถแปลงได้ง่ายนัก อาจเป็นเรื่องแปลกใจสำหรับคุณที่ในแอตทริบิวต์ที่มีส่วนของข้อความ เช่น ความคิดเห็นหรือบันทึก มีค่าแอตทริบิวต์ที่สำคัญมากมายที่ซ่อนอยู่ในข้อความ

การทำให้เป็นมาตรฐาน: การวางแอตทริบิวต์ลงในเอนทิตีที่เกี่ยวข้อง

คุณลักษณะกำหนดจำนวนของเอนทิตีที่จะแสดงในรูปแบบลอจิคัลที่ลดลงเหลือรูปแบบปกติที่สาม กระบวนการทำให้เป็นมาตรฐานประกอบด้วยการวิเคราะห์การพึ่งพาคุณลักษณะซึ่งกันและกันและการพึ่งพาคุณลักษณะในคีย์หลัก

การทำให้เป็นมาตรฐานที่ทำอย่างถูกต้องช่วยให้แน่ใจว่าแบบจำลองสามารถปรับขนาดและขยายได้โดยการวางแอตทริบิวต์ลงในเอนทิตีที่เหมาะสม

การลดแบบจำลองเชิงตรรกะให้เหลือรูปแบบปกติที่สามมักจะนำไปสู่การเกิดขึ้นของเอนทิตีใหม่

ประโยชน์อื่นๆ ของการทำให้เป็นมาตรฐานคือ:

  • กำจัดหรือลดความซ้ำซ้อน ข้อมูลที่ซ้ำซ้อนอาจมีอยู่ในคุณลักษณะที่แสดงถึงแนวคิดเดียวกันแต่ตั้งชื่อต่างกัน หรืออยู่ในกลุ่มที่ซ้ำกัน การนำเสนอข้อเท็จจริงแต่ละข้อในที่เดียวจะช่วยลดความซ้ำซ้อน
  • กำจัดหรือลดการแทรก การลบ หรือการอัปเดตความผิดปกติ โครงสร้างข้อมูลที่ไม่ปกติทำให้ข้อเท็จจริงเดียวกันปรากฏในหลายตำแหน่งโดยขึ้นอยู่กับคีย์หลักที่ไม่สมบูรณ์หรือบางส่วน การแทรก การลบ หรือการอัปเดตความผิดปกติเกี่ยวข้องกับข้อมูลที่ไม่สอดคล้องกัน ซึ่งภายใต้เงื่อนไขเหล่านี้ อาจนำไปสู่ความประหลาดใจหรือความไม่ถูกต้องในการเข้าถึงข้อมูลได้
  • กำจัดหรือลดการใช้ค่า Null สำหรับแอตทริบิวต์ กลุ่มแอ็ตทริบิวต์ที่ทำซ้ำมักมีค่า Null สำหรับหลายๆ อินสแตนซ์ เนื่องจากแสดงถึงข้อเท็จจริงที่บางเอนทิตีอาจมีหลายค่า ในขณะที่บางเอนทิตีไม่มีค่า การมีเอนทิตีที่มีอินสแตนซ์ที่มีค่าว่างส่งผลให้มีโครงสร้างข้อมูลที่มีประชากรเบาบาง (กระจัดกระจาย)

เมื่อแบบจำลองถูกลดขนาดเป็นรูปแบบปกติที่สาม แต่ละแอตทริบิวต์จะเป็นของเอนทิตีที่เกี่ยวข้อง เมื่อแบบจำลองถูกลดขนาดเป็นรูปแบบปกติที่สาม มักจะค้นพบคุณลักษณะและเอนทิตีใหม่

การพึ่งพาการทำงาน

การพึ่งพาการทำงานใช้เพื่ออธิบายความสัมพันธ์ระหว่างคุณลักษณะในแบบจำลอง คุณลักษณะของเอนทิตีแต่ละรายการจะต้องขึ้นอยู่กับฟังก์ชันของคีย์หลักของเอนทิตี (และไม่ต้องขึ้นอยู่กับฟังก์ชันของแอตทริบิวต์โมเดลอื่นใด) หากไม่เป็นเช่นนั้น จะต้องย้ายแอตทริบิวต์ไปยังเอนทิตีใหม่ที่จะปฏิบัติตามข้อกำหนดนี้

หากต้องการกำหนดความสัมพันธ์ในการทำงานระหว่างคุณลักษณะ ให้จัดกลุ่มคุณลักษณะเหล่านั้นเป็นชุดที่มีธีมร่วมกันก่อน วิเคราะห์หัวข้อต่างๆ อย่างรอบคอบในแง่ของความคล้ายคลึงกัน ตรวจสอบแอ็ตทริบิวต์ในธีมเพื่อดูว่ามีการพึ่งพาการทำงานของแอ็ตทริบิวต์ภายในธีมหรือไม่ หากแอตทริบิวต์หรือกลุ่มของแอตทริบิวต์ไม่ได้ขึ้นอยู่กับคีย์หลักของเอนทิตี จะต้องถูกย้ายไปยังเอนทิตีอื่น

คุณลักษณะที่อยู่ในหัวข้อเดียวกันอาจซ้ำซ้อน คุณลักษณะที่ซ้ำซ้อนอาจถูกจัดกลุ่มเป็นเอนทิตีเดียวหรืออาจใช้นามธรรมระดับที่สูงกว่าทั่วไปเป็นเอนทิตีที่มีลักษณะเฉพาะของเอนทิตีหลัก มีหัวข้อทั่วไปอย่างน้อยสองหัวข้อในรูปที่ 3.1: และ สูงสุด. คุณลักษณะเหล่านี้เป็นตัวเลือกที่ดีสำหรับการโอนไปยังเอนทิตีอื่น ลองพิจารณาจากแง่มุมของการพึ่งพาการทำงาน ค่าแอตทริบิวต์ สารปรุงแต่งรสถึงไอศกรีมไม่ได้ขึ้นอยู่กับมูลค่าของคีย์หลัก - ส่วนผสมขนมกล้วย. เช่นเดียวกับกุญแจ ครีมฟัดจ์.

รูปที่ 3.2 แสดงวิธีแก้ปัญหาโดยที่ เครื่องปรุงไอศกรีมและ สูงสุดจัดสรรในเอนทิตีโดยที่ค่าของมันขึ้นอยู่กับคีย์หลัก โซลูชันนี้ช่วยขจัดปัญหาที่ชัดเจนบางประการที่เกี่ยวข้องกับความซ้ำซ้อน

แบบฟอร์มปกติครั้งแรก

การแคสต์เป็นรูปแบบปกติครั้งแรกหมายถึงการย้ายแอตทริบิวต์ที่ซ้ำกันทั้งหมดไปยังเอนทิตีอื่น แอ็ตทริบิวต์ที่ซ้ำกันนั้นค่อนข้างสังเกตได้ง่าย เนื่องจากมักมีการกำหนดหมายเลขเป็น อันดับ 1และ อันดับ 2หรือ รสชาติ1และ รสชาติ 2.

สร้างเอนทิตีที่ต้องพึ่งพาซึ่งจะมีชุดของแอตทริบิวต์เพื่อแสดงแอตทริบิวต์ที่ซ้ำกัน คีย์หลักของเอนทิตีที่อยู่ในอุปการะจะเป็นคีย์หลักแบบผสมที่มีคีย์หลักของเอนทิตีหลักและแอตทริบิวต์เพิ่มเติมอย่างน้อยหนึ่งรายการเพื่อให้แน่ใจว่าไม่ซ้ำกัน

กลุ่มการทำซ้ำถูกย้ายในรูปที่ 3.2 เครื่องปรุงไอศกรีมและ สูงสุดเข้าสู่เอนทิตีที่ขึ้นอยู่กับ สังเกตการสร้างเอนทิตี TASTE

ข้าว. 3.2. การกำจัดคุณลักษณะที่ซ้ำซ้อน

แบบฟอร์มปกติที่สอง

การลดเป็นรูปแบบปกติที่สองหมายถึงการลบแอตทริบิวต์ที่ซ้ำซ้อน คุณลักษณะที่ซ้ำซ้อนอาจเป็น:

  • คุณลักษณะที่แตกต่างกันซึ่งแสดงถึงแนวคิดเดียวกัน
  • คุณสมบัติของเอนทิตีต่างๆ ที่เกี่ยวข้องกับหัวข้อเดียวกัน
  • คุณลักษณะที่ไม่มีค่าสำหรับทุกอินสแตนซ์ของเอนทิตี

คุณลักษณะที่แสดงถึงแนวคิดเดียวกันจะต้องแปลงเป็นคุณลักษณะเดียว คุณลักษณะที่ซ้ำซ้อนอาจไม่มีค่าสำหรับทุกอินสแตนซ์ของเอนทิตี ดังนั้นการมีอยู่ของมันจึงไม่ขึ้นอยู่กับค่าของคีย์หลัก ย้ายแอตทริบิวต์เหล่านี้ไปยังเอนทิตีโดยที่พวกเขาจะมีค่าสำหรับแต่ละอินสแตนซ์

สร้างเอนทิตีแอตทริบิวต์เพื่อแสดงแอตทริบิวต์ที่ซ้ำซ้อน เอนทิตีใหม่มีคีย์หลักที่ระบุอินสแตนซ์เดียว คีย์หลักนี้จะกลายเป็นคีย์ต่างประเทศในเอนทิตีดั้งเดิม คีย์ต่างประเทศจะมีการหารือในภายหลัง

รูปที่ 3.2 แสดงวิธีแก้ปัญหาสำหรับคุณลักษณะที่ซ้ำซ้อนของเอนทิตี BANANA DESSERT และ Fudge ลองพิจารณาความซ้ำซ้อนจากมุมมองของเอนทิตีหลักสองรายการ ทั้งสองบริษัทมีธีมร่วมกัน: การปรุงไอศกรีมและท็อปปิ้ง นี่เป็นสัญญาณว่าหน่วยงานหลักสามารถรวมเข้าด้วยกันได้มากขึ้น ระดับสูงนามธรรม

รูปที่ 3.3 สาธิตการสร้างซูเปอร์ไทป์ชื่อ MIXTURE โดยมี BANANA DESSERT และ Fudge เป็นส่วนประกอบ ฉันได้เพิ่มแอตทริบิวต์การจำแนกประเภท "ประเภทส่วนผสม" ให้กับเอนทิตีหลัก MIXTURE เพื่อระบุว่า MIXTURE เป็นอินสแตนซ์ของเอนทิตี BANANA DESSERT หรือ Fudge อินสแตนซ์ของเอนทิตี MIXTURE อาจเป็นอินสแตนซ์ของเอนทิตี BANANA DESSERT หรือ Fudge แต่ไม่ใช่ทั้งสองอย่าง

ข้าว. 3.3. ความซ้ำซ้อนของเอนทิตีหลักจะถูกกำจัดโดยการย้ายคุณลักษณะทั่วไปไปยังเอนทิตี MIXTURE ทั่วไป โปรดทราบว่าคีย์หลัก "Blend ID" จะอยู่ในทั้งเอนทิตี BANANA DESSERT และ Fudge

แบบฟอร์มปกติที่สาม

การส่งไปยังรูปแบบปกติที่สามหมายถึงการกำจัดคุณลักษณะใด ๆ ที่ขึ้นอยู่กับค่าของคุณลักษณะอื่นที่ไม่ใช่คีย์หลัก บางครั้งเรียกว่าการพึ่งพาสกรรมกริยา

สร้างเอนทิตีใหม่และย้ายแอททริบิวต์เข้าไปโดยไม่ขึ้นอยู่กับคีย์หลักในเอนทิตีดั้งเดิม กำหนดคีย์หลักสำหรับเอนทิตีใหม่เพื่อรับประกันความเป็นเอกลักษณ์

ในรูปที่ 3.3 คุณลักษณะ วิปครีมและ เชอร์รี่ไม่ได้ขึ้นอยู่กับคีย์หลักของเอนทิตี BANANA DESSERT และ FANDISH ในความเป็นจริงคุณต้องตัดสินใจว่าคุณลักษณะนั้น วิปครีมและ เชอร์รี่อินสแตนซ์ของเอนทิตี TOP

ในรูปที่ 3.4 ให้สังเกตแอตทริบิวต์ Blend Date เพิ่มเติม ซึ่งให้ข้อมูลเกี่ยวกับเวลาที่สร้างอินสแตนซ์เอนทิตี MIX ฉันลบแอตทริบิวต์วันที่เริ่มต้นและวันที่สิ้นสุดออกจากเอนทิตี BANANA DESSERT และ FANDISH ขณะนี้รายการข้อเสนอพิเศษใหม่ประกอบด้วยวันที่สองวันนี้และแอตทริบิวต์รสไอศกรีมเพื่อระบุว่าไอศกรีมใดมีสิทธิ์ได้รับข้อเสนอ

ข้าว. 3.4. แต่ละแอตทริบิวต์จะขึ้นอยู่กับคีย์หลัก คีย์หลักแบบเต็ม และไม่มีอะไรนอกจากคีย์ .

การกำหนดลักษณะแอตทริบิวต์

คุณสมบัติแบ่งออกเป็นสองกลุ่ม คุณลักษณะอาจเป็นคีย์หรือไม่ใช่ก็ได้ รูปที่ 3.5 แสดงคุณลักษณะที่สำคัญสำหรับแบบจำลองเชิงตรรกะของเอนทิตี MIXTURE โปรดสังเกตว่า โดยพื้นฐานแล้ว คุณลักษณะของคีย์หลักจะอยู่เหนือบรรทัดภายในเอนทิตี และคุณลักษณะที่เหลือจะอยู่ใต้บรรทัด

ข้าว. 3.5. คุณลักษณะทั้งหมดที่ไม่ได้เป็นส่วนหนึ่งของคีย์หลักจะอยู่ใต้ตัวคั่นในเอนทิตี สิ่งเหล่านี้อาจเป็นคีย์ตัวเลือก คีย์ภายนอกและคีย์สำรอง และแอตทริบิวต์แบบง่าย

คุณสมบัติที่สำคัญ

คุณลักษณะที่สำคัญคือคุณลักษณะที่มีค่าเป็นตัวกำหนดมูลค่าของคุณลักษณะอื่นๆ ค่าของคุณลักษณะหลักไม่ได้ขึ้นอยู่กับค่าของคุณลักษณะอื่นๆ คีย์อาจประกอบด้วยแอตทริบิวต์เดียวหรือประกอบด้วยหลายแอตทริบิวต์ แอ็ตทริบิวต์เหล่านี้อาจเป็นคีย์หลัก คีย์หลักแบบผสม คีย์ตัวเลือก คีย์นอก หรือคีย์สำรอง

คุณลักษณะของคีย์หลัก

ไม่ว่าคีย์หลักจะเป็นแอตทริบิวต์เดียวหรือเป็นกลุ่ม ค่าของคีย์นั้นจะเป็นตัวกำหนดค่าของคุณลักษณะอื่นๆ ทั้งหมด

คีย์หลักที่ดีจะมีลักษณะดังต่อไปนี้:

  • รับประกันว่าค่าจะไม่ซ้ำกันสำหรับแต่ละอินสแตนซ์
  • ความหมายไม่มีความหมายที่ซ่อนอยู่
  • ขอบเขตของค่าจะยังคงคงที่เมื่อเวลาผ่านไป
  • ค่ามีอยู่สำหรับแต่ละอินสแตนซ์เอนทิตี

คีย์หลักประดิษฐ์

คีย์หลักเทียมคือคุณลักษณะที่สร้างขึ้นเพื่อจุดประสงค์ในการระบุอินสแตนซ์เฉพาะของเอนทิตีเท่านั้น ในบางกรณี ไม่มีแอตทริบิวต์หรือกลุ่มที่ระบุอินสแตนซ์เอนทิตีโดยไม่ซ้ำกัน ในกรณีอื่นๆ คีย์หลักแบบผสมมีขนาดใหญ่เกินไปและดูแลรักษายาก คีย์หลักเทียมบางครั้งเรียกว่าคีย์เทียมหรือคีย์ที่ระบบสร้างขึ้น เรียกอีกอย่างว่าตัวระบุเฉพาะปลอม ซึ่งระบุถึงวัตถุประสงค์ของมัน

คีย์หลักปลอมมักถูกสร้างขึ้นโดยเพียงแค่ระบุหมายเลขอินสแตนซ์เอนทิตีแต่ละรายการตามลำดับ ประโยชน์เพิ่มเติมของคีย์ปลอมดังกล่าวคือไม่จำเป็นต้องใส่ใจเกี่ยวกับความหมายของอินสแตนซ์เอนทิตีที่เกี่ยวข้องกับคีย์เหล่านั้น นอกเหนือจากการรับประกันความเป็นเอกลักษณ์ ในความเป็นจริง คีย์หลักปลอมที่สร้างขึ้นด้วยวิธีนี้รับประกันว่าจะมีคุณลักษณะของคีย์หลักที่ดี

โปรดทราบว่าคีย์หลักส่วนใหญ่ในรูปที่ 3.5 เป็นคีย์ปลอม โดยส่วนใหญ่ คีย์หลักเป็นเพียงตัวเลขที่ไม่ซ้ำกันสำหรับแต่ละอินสแตนซ์

ผู้สมัครคนสำคัญ

คีย์ผู้สมัครคือคุณลักษณะหรือกลุ่มของคุณลักษณะที่ระบุอินสแตนซ์เฉพาะของเอนทิตี ตัวเลือกคีย์แสดงถึงกลไกในการกำหนดคีย์หลักที่เป็นไปได้เพื่อระบุอินสแตนซ์เฉพาะของเอนทิตี

ตัวเลือกคีย์ที่ไม่ได้เลือกเป็นคีย์หลักจะเรียกว่าคีย์สำรอง คีย์สำรองคือแอ็ตทริบิวต์หรือกลุ่มของแอ็ตทริบิวต์ที่สามารถใช้สำหรับการทำดัชนี

กุญแจต่างประเทศ

คีย์ภายนอกคือคุณลักษณะหรือกลุ่มของคุณลักษณะที่ประกอบขึ้นเป็นคีย์หลักของเอนทิตีอื่น Foreign Key อาจเป็นหรือไม่ใช่คุณลักษณะของคีย์ในเอนทิตีที่เกี่ยวข้อง สังเกตคำที่เกี่ยวข้องกับเอนทิตี Foreign Key แสดงถึงความสัมพันธ์ระหว่างเอนทิตี ซึ่งจะกล่าวถึงรายละเอียดเพิ่มเติมในบทความถัดไป

การโอนย้ายแอตทริบิวต์คีย์หลัก

คุณลักษณะคีย์ภายนอกคือคุณลักษณะคีย์หลักของเอนทิตีอื่นที่ได้ย้ายไปยังเอนทิตีนี้ผ่านความสัมพันธ์ คีย์ต่างประเทศสามารถระบุหรือไม่ระบุได้ การระบุคีย์ต่างประเทศกลายเป็นส่วนหนึ่งของคีย์หลักในเอนทิตีที่พวกเขาย้าย คีย์ต่างประเทศที่ไม่ระบุตัวตนกลายเป็นคุณลักษณะที่ไม่ใช่คีย์

คุณลักษณะที่ไม่ใช่คีย์

คุณลักษณะที่ไม่ใช่คีย์คือแอตทริบิวต์ที่มีค่าขึ้นอยู่กับค่าของคีย์หลักหรือคีย์หลักแบบผสม คุณลักษณะที่ไม่ใช่คีย์เหล่านี้ต้องขึ้นอยู่กับค่าของคีย์ คีย์เต็ม และไม่มีอะไรอื่นนอกจากคีย์

ในหนังสือของเขา การพัฒนาระบบยุทธศาสตร์ K. Finklestein กำหนดคุณลักษณะที่ไม่ใช่คีย์หลายประเภท:

  • คุณลักษณะเฉพาะคือคุณลักษณะที่ใช้ในการระบุอินสแตนซ์เดียวของเอนทิตีเมื่อคีย์ไม่ซ้ำกัน เรียกอีกอย่างว่าคีย์รอง
  • คุณลักษณะกลุ่มคือคุณลักษณะที่รวมกลุ่มของคุณลักษณะที่มีรายละเอียดมากขึ้นเข้าด้วยกัน
  • คุณลักษณะกลุ่มที่ทำซ้ำคือคุณลักษณะที่แสดงถึงการเกิดขึ้นหลายครั้งของคุณลักษณะเดียวกันภายในเอนทิตี
  • คุณลักษณะที่ได้รับคือคุณลักษณะที่มีค่าถูกกำหนดจากค่าของคุณลักษณะอื่นๆ
  • คุณลักษณะข้อมูลหลักคือคุณลักษณะที่ไม่ได้รับการคัดเลือก กลุ่ม กลุ่มการทำซ้ำ หรือคุณลักษณะที่ได้รับ

คุณลักษณะแบบเลือก กลุ่ม และแบบกลุ่มซ้ำไม่ควรปรากฏอยู่ในแบบจำลองตรรกะที่ลดลงเหลือรูปแบบปกติที่สาม คุณลักษณะที่เลือกจะต้องเป็นส่วนหนึ่งของคีย์หลัก หากจำเป็นในการระบุอินสแตนซ์เดียวของเอนทิตี คุณลักษณะของกลุ่มมีหลายค่า ในความคิดของฉัน คุณลักษณะของกลุ่มจะแสดงได้ดีที่สุดในรูปแบบที่เป็นรหัสหรือเอนทิตีการจัดหมวดหมู่ ตามที่ระบุไว้ข้างต้น กลุ่มที่ทำซ้ำควรถูกจัดอยู่ในเอนทิตีรอง

ในรูปแบบปกติที่สาม คุณลักษณะที่ไม่ใช่คีย์จะต้องเป็นแบบธรรมดา (หลัก) หรือคุณลักษณะที่ได้รับมา

คุณสมบัติที่เรียบง่าย

คุณลักษณะแบบง่ายคือคุณลักษณะที่เป็นผลมาจากการสลายตัวซึ่งได้ถูกนำมาสู่รายละเอียดระดับสูงสุด ดังนั้นค่าของมันจึงขึ้นอยู่กับคีย์หลักโดยสิ้นเชิงและถูกกำหนดไว้สำหรับแต่ละอินสแตนซ์ของเอนทิตี ไม่ใช่เกณฑ์การคัดเลือกและไม่สามารถใช้ในการจัดกลุ่มเอนทิตีได้ พวกเขาเป็นตัวแทนของข้อเท็จจริงอะตอมง่ายๆ ที่บริษัทสนใจ

คุณสมบัติที่ได้รับ

คุณลักษณะที่ได้รับคือคุณลักษณะที่มีค่าซึ่งอนุมานหรือคำนวณจากค่าของคุณลักษณะอื่นตั้งแต่หนึ่งรายการขึ้นไป มีการพูดคุยกันถึงประเด็นเรื่องการยอมรับการมีอยู่ของคุณลักษณะที่ได้รับในแบบจำลองเชิงตรรกะ ผู้เชี่ยวชาญบางคนเชื่อว่าเนื่องจากค่าของคุณลักษณะที่ได้รับนั้นขึ้นอยู่กับค่าของคุณลักษณะดั้งเดิม จึงไม่ควรแสดงคุณลักษณะที่ได้รับในรูปแบบตรรกะ

โมเดลลอจิกได้รับการออกแบบเพื่อให้แสดงข้อกำหนดข้อมูลได้ครบถ้วนและถูกต้อง คุณอาจตัดสินใจสร้างแอตทริบิวต์ที่ได้รับในระดับแบบจำลองทางกายภาพเพื่อให้เหมาะกับความต้องการการใช้งานของคุณ

แม้ว่าอาร์กิวเมนต์สำหรับการยกเว้นคุณลักษณะที่ได้รับจะเข้าใจได้ แต่โมเดลเชิงตรรกะก็ยังเป็นเช่นนั้น สถานที่ที่ดีที่สุดเพื่อป้อนชื่อและคำอธิบายของแอตทริบิวต์ทั้งหมด ดังนั้นจึงควรรวมคุณลักษณะที่ได้รับมาในแบบจำลองเชิงตรรกะด้วย อย่างไรก็ตาม ผู้สร้างโมเดลควรหลีกเลี่ยงการใช้แอตทริบิวต์ที่ได้รับเป็นคีย์หลักหรือเป็นส่วนหนึ่งของคีย์หลักแบบผสม นอกจากนี้ อย่าลืมรวมกฎการอนุมานในคำอธิบายแอตทริบิวต์ที่ได้รับด้วย

การค้นหาขอบเขตของแอตทริบิวต์

ขอบเขตคำจำกัดความของแอตทริบิวต์ระบุรายการค่าที่อนุญาตที่แอตทริบิวต์สามารถใช้กับอินสแตนซ์เอนทิตีเฉพาะได้ ขอบเขตของคำจำกัดความประกอบด้วยขอบเขตของประเภทข้อมูลทั่วไปเป็นอย่างน้อย และอาจรวมถึงขอบเขตที่ผู้ใช้กำหนดด้วย ในแบบจำลองเชิงตรรกะที่สมบูรณ์ คุณควรค้นหาโดเมนของคำจำกัดความสำหรับแต่ละคุณลักษณะ

เราสามารถพูดได้ว่าขอบเขตของแอตทริบิวต์ต้องมีค่าอย่างน้อยสองค่า แอ็ตทริบิวต์ที่อนุญาตให้มีเพียงค่าเดียวเสมออาจไม่ได้รับการแมปอย่างถูกต้องในโมเดล ในรูปที่ 3.5 มีคุณสมบัติดังกล่าวอยู่สองประการ ได้แก่ Banana และ Fudge

โดยพื้นฐานแล้ว BANANA DESSERT มีคุณลักษณะของ Banana อยู่ด้วย กฎเกณฑ์ทางธุรกิจระบุว่าทุกกรณีของเอนทิตี BANANA DESSERT มีกล้วยอยู่ ดังนั้นแอตทริบิวต์ Banana สามารถมีค่าได้เพียงค่าเดียวเท่านั้น และอาจไม่จำเป็นสำหรับแอตทริบิวต์ดังกล่าว แต่คำอธิบายของเอนทิตี BANANA DESSERT จะต้องระบุว่ากล้วยถูกรวมไว้ในแต่ละอินสแตนซ์ด้วย เช่นเดียวกับคุณลักษณะ Fudge ในสาระสำคัญของ Fudge

ตารางที่ 3.1 แสดงขอบเขตของคำจำกัดความของประเภทข้อมูลเชิงตรรกะของเอนทิตีข้อเสนอพิเศษของแบบจำลองเชิงตรรกะ MIXTURE

ตารางที่ 3.1 ตัวอย่างของชนิดข้อมูลเชิงตรรกะ

ขอบเขตของคำจำกัดความของประเภทข้อมูลแบบง่ายและแบบขยาย

ขอบเขตประเภทข้อมูลจะกำหนดวิธีการแสดงค่าแอตทริบิวต์ ในโมเดลลอจิคัลที่สมบูรณ์ จำเป็นต้องมีขอบเขตการกำหนดชนิดข้อมูลสำหรับแต่ละแอ็ตทริบิวต์ รายการต่อไปนี้แสดงตัวอย่างต่างๆ ของชนิดข้อมูล ERwin Boolean:

  • วันที่และเวลา - วันที่/เวลา
  • หมายเลข - หมายเลข
  • สตริง - สตริง

แพลตฟอร์มฐานข้อมูลใหม่จำนวนมากรองรับประเภทข้อมูลขั้นสูงมากขึ้น อย่างไรก็ตาม สิ่งสำคัญคือต้องจำไว้ว่าประเภทข้อมูลที่ซับซ้อนเหล่านี้ มีข้อยกเว้นบางประการ เฉพาะแพลตฟอร์ม ไม่ว่าในกรณีใด หากผู้ใช้ต้องการแอตทริบิวต์ จะต้องรวมไว้ในโมเดล โดยไม่คำนึงถึงประเภทข้อมูล ประเภทข้อมูลขยายที่ใช้กันทั่วไปบางประเภทมีดังต่อไปนี้:

  • รูปภาพ - รูปภาพ
  • เสียง - เสียง
  • วิดีโอ - วิดีโอ

ขอบเขตที่ผู้ใช้ระบุ

ขอบเขตที่ผู้ใช้ระบุเป็นขอบเขตเฉพาะที่ระบุชุดค่าที่อนุญาตสำหรับแอตทริบิวต์ ขอบเขตเหล่านี้มักจะเฉพาะเจาะจงกับองค์กร และต้องมีการกำหนดและใช้อย่างสม่ำเสมอทั่วทั้งองค์กร ตัวอย่างเช่น แอ็ตทริบิวต์ที่มีขอบเขตประเภทข้อมูล Number อาจมีขอบเขตที่ผู้ใช้ระบุซึ่งจำกัดค่าที่เป็นไปได้ระหว่าง 1 ถึง 100 หลักการของความซื่อสัตย์ช่วยให้บริษัททำการเปลี่ยนแปลงเอนทิตีหนึ่งเพื่อขยายขอบเขต สำหรับแต่ละแอตทริบิวต์ที่ใช้

การพิจารณาว่าแอตทริบิวต์เป็นทางเลือกหรือไม่

ค่าแอตทริบิวต์อาจจำเป็นหรือไม่จำเป็นก็ได้ หากค่าจำเป็นหรือจำเป็น ค่านั้นจะต้องปรากฏในขณะที่สร้างอินสแตนซ์ หากค่านี้เป็นทางเลือก คุณสามารถสร้างอินสแตนซ์โดยไม่มีค่านี้ได้

ในหนังสือ วิศวกรรมสารสนเทศ: การพัฒนาระบบเชิงกลยุทธ์ K. Finklestein กำหนดคุณสมบัติบังคับของแอตทริบิวต์ผ่านชุดของ "กฎการแก้ไข":

  • เพิ่มทันทีไม่สามารถเปลี่ยนแปลงได้ในภายหลัง
  • เพิ่มทันที เปลี่ยนแปลงทีหลัง
  • เพิ่มในภายหลังเปลี่ยนแปลงในภายหลัง
  • เพิ่มทีหลัง ไม่สามารถเปลี่ยนแปลงทีหลังได้

ให้ความสำคัญกับแอตทริบิวต์เพิ่มเติม หากแอตทริบิวต์หรือชุดแอตทริบิวต์มีค่าเฉพาะสำหรับอินสแตนซ์เฉพาะของเอนทิตี ให้พิจารณาย้ายไปยังเอนทิตีซึ่งค่าจะมีอยู่สำหรับแต่ละอินสแตนซ์

ตาราง 3.2 แสดงคุณสมบัติบังคับสำหรับคุณลักษณะของเอนทิตีข้อเสนอพิเศษ โปรดทราบว่าเมื่อคุณสร้างอินสแตนซ์เอนทิตีข้อเสนอพิเศษ คุณจะต้องระบุค่าสำหรับแอตทริบิวต์ทั้งหมด ยกเว้นแอตทริบิวต์วันที่สิ้นสุดข้อเสนอพิเศษ

ตารางที่ 3.2. ตัวอย่างของคุณสมบัติบังคับ

ตาราง 3.2 แสดงกฎเกณฑ์ทางธุรกิจที่ระบุว่าอินสแตนซ์ของเอนทิตีข้อเสนอพิเศษต้องการข้อมูลต่อไปนี้:

  • รหัสเอนทิตี (รหัสข้อเสนอพิเศษ)
  • รหัสรสชาติข้อเสนอพิเศษ (รหัสไอศกรีม และรหัสรสชาติ)
  • วันที่เริ่มต้นข้อเสนอพิเศษ (ข้อเสนอพิเศษเริ่มต้น)

วันที่สิ้นสุดสำหรับแต่ละอินสแตนซ์ของเอนทิตีข้อเสนอพิเศษเป็นทางเลือก กฎเกณฑ์ทางธุรกิจระบุว่าข้อเสนอพิเศษจะต้องมีจุดเริ่มต้น แต่ไม่จำเป็นต้องเป็นจุดสิ้นสุด

แอตทริบิวต์ที่ต้องระบุค่าต้องไม่มีค่าว่าง ผู้เชี่ยวชาญบางคนเชื่อว่าควรต้องมีค่าสำหรับทุกอินสแตนซ์ของเอนทิตี โดยปกติแล้ว ภายใต้สมมติฐานที่ว่าค่าของแต่ละคุณลักษณะของอินสแตนซ์เอนทิตีจะถูกค้นพบหรือทราบก่อนที่จะสร้างอินสแตนซ์

แอตทริบิวต์ที่มีค่าเป็นทางเลือกสามารถมีค่าว่างได้ ผู้เชี่ยวชาญบางคนเชื่อว่าแอตทริบิวต์ไม่ควรปรากฏในเอนทิตี หากไม่มีค่าของมันสำหรับแต่ละอินสแตนซ์ เหตุผลหนึ่งก็คือค่าว่างนั้นตีความได้ยาก ค่าว่างหมายความว่าอินสแตนซ์ไม่รู้จักค่าหรือไม่ได้รับการดึงข้อมูลมาใช่หรือไม่

บันทึก

ในบรรดาผู้สร้างแบบจำลอง การถกเถียงเกี่ยวกับข้อดีและข้อเสียของค่าที่ต้องการและค่าทางเลือกยังคงดำเนินต่อไป นักพัฒนาบางคนเชื่อว่าแอตทริบิวต์ไม่ควรมีค่าว่าง และยืนยันว่าขอบเขตควรมีค่าต่างๆ เช่น ไม่ทราบและไม่ได้รับ คนอื่นๆ เชื่อว่าจำเป็นต้องมีค่าต่างๆ และการใช้ขอบเขตก็จำเป็นต้องใช้ค่าเริ่มต้นด้วย ส่งผลให้ค่าไม่น่าเชื่อถือและน่าสงสัย

ควรใช้ค่า Null และปล่อยให้ความรับผิดชอบในการจัดการค่า Null ให้กับแอปพลิเคชันโปรแกรมหรือเครื่องมือสืบค้น นี่เป็นโซลูชันที่เหมาะสมและยืดหยุ่นที่สุดเพราะช่วยให้ตีความค่า Null ได้แตกต่างกันเพื่อให้เหมาะกับความต้องการทางธุรกิจที่แตกต่างกัน

คุณสมบัติการตั้งชื่อ

คุณลักษณะแต่ละรายการต้องมีชื่อที่ชัดเจน แม่นยำ และสอดคล้องกัน ชื่อแอตทริบิวต์ต้องไม่ขัดแย้งกับคำอธิบาย ชื่อแอตทริบิวต์จะต้องระบุค่าที่รวบรวมสำหรับอินสแตนซ์ของแอตทริบิวต์ ชื่อแอตทริบิวต์จะต้องเข้าใจได้และเป็นที่ยอมรับโดยทั่วไปภายในองค์กร

อาจเป็นไปได้ว่าคุณมีชุดแบบแผนการตั้งชื่อแอตทริบิวต์ที่คุณพัฒนาขึ้นภายในองค์กรของคุณหรือเมื่อสร้างแบบจำลองข้อมูลองค์กรที่คุณใช้เป็นแนวทาง การใช้แบบแผนการตั้งชื่อคุณลักษณะช่วยให้แน่ใจว่าชื่อจะถูกสร้างขึ้นอย่างสม่ำเสมอทั่วทั้งองค์กร ไม่ว่าใครจะเป็นคนสร้างชื่อก็ตาม

แบบแผนการตั้งชื่อแอตทริบิวต์มีความสำคัญ ไม่ว่าคุณจะทำงานในองค์กรขนาดเล็กหรือขนาดใหญ่ อย่างไรก็ตาม ในองค์กรขนาดใหญ่ที่มีทีมพัฒนาหลายทีมและมีผู้ใช้จำนวนมาก รูปแบบการตั้งชื่อจะช่วยในการสื่อสารและทำความเข้าใจข้อมูลเบื้องต้นได้อย่างมาก ตามหลักการแล้ว คุณควรพัฒนาและรักษาแบบแผนการตั้งชื่อคุณลักษณะจากส่วนกลาง จากนั้นจัดทำเอกสารและเผยแพร่ทั่วทั้งองค์กร

ด้านล่างนี้เป็นแนวทางบางส่วนสำหรับการสร้างชุดเริ่มต้นของแบบแผนการตั้งชื่อแอตทริบิวต์ ในกรณีที่องค์กรของคุณยังไม่ได้พัฒนาชุดดังกล่าว:

  • ชื่อแอตทริบิวต์ต้องมีคำอธิบายเพียงพอ พิจารณาใช้นามวลีในรูปแบบ object/modifier/class
  • เมื่อใดก็ตามที่เป็นไปได้ ชื่อแอตทริบิวต์ควรมีชื่อเอนทิตีด้วย ใช้ "ชื่อบุคคล" แทนที่จะเป็นเพียง "ชื่อ"
  • ชื่อแอตทริบิวต์จะต้องระบุค่าของอินสแตนซ์แอตทริบิวต์เฉพาะ การใช้ชื่อเดียวกันสำหรับแอตทริบิวต์ที่มีข้อมูลต่างกัน หรือชื่อที่แตกต่างกันสำหรับแอตทริบิวต์ที่มีข้อมูลเดียวกัน จะทำให้นักพัฒนาและผู้ใช้ปลายทางสับสนโดยไม่จำเป็น
  • ชื่อแอตทริบิวต์ควรใช้ภาษาธุรกิจแทนภาษาทางเทคนิค
  • ชื่อแอตทริบิวต์ต้องไม่มีอักขระพิเศษ (เช่น !, @, #, $, %, l, &, * ฯลฯ) หรือบ่งบอกถึงความเป็นเจ้าของ (ชื่อที่เป็นของบุคคล)
  • ชื่อแอตทริบิวต์ไม่ควรมีตัวย่อหรือตัวย่อ เว้นแต่จะเป็นส่วนหนึ่งของรูปแบบการตั้งชื่อที่ยอมรับ

จะดีกว่าสำหรับผู้สร้างโมเดลที่จะใช้แบบแผนการตั้งชื่อที่ดี หากมีอยู่ หรือพัฒนาหากไม่มีแบบแผนดังกล่าว

ชื่อแอตทริบิวต์ในรูปแบบ Object/Modifier/Class

แบบฟอร์ม object/modifier/class เป็นรูปแบบการตั้งชื่อแอตทริบิวต์ที่ใช้กันอย่างแพร่หลายในอุตสาหกรรม ข้อตกลงนี้สนับสนุนการใช้ชื่อแอตทริบิวต์สามส่วน ส่วนของวัตถุบางครั้งเรียกว่าประธานหรือคำหลัก วัตถุมักจะเป็นชื่อของเอนทิตี

ตัวแก้ไขอาจเป็นคำเดียวหรือเป็นกลุ่มก็ได้ แม้ว่าจะไม่มีรายการตัวดัดแปลงมาตรฐาน แต่ผู้สร้างแบบจำลองควรสร้างตัวดัดแปลงที่สั้นและมีความหมาย การใช้ตัวแก้ไขช่วยให้คุณสร้างชื่อแอตทริบิวต์ที่สื่อความหมายทางสายตาได้ หากชื่อกลายเป็นชื่อที่หนักหนาจนไม่อาจยอมรับได้สำหรับผู้ใช้หรือใช้อย่างแพร่หลาย ตามที่กำหนดในบริษัท คุณอาจต้องการประนีประนอมโดยตัดชื่อแอตทริบิวต์ที่มีสามพยางค์ออก

ส่วนฐานของชื่อแอตทริบิวต์คือคลาส ซึ่งระบุประเภทของข้อมูลที่แอตทริบิวต์เป็นตัวแทน คลาสที่ใช้กันทั่วไปบางส่วน:

  • ตัวระบุ
  • ตัวเลข
  • ขนาด
  • ปริมาณ
  • ความถี่

ตัวอย่างของชื่อแอตทริบิวต์

ภายในบริษัท จะดีกว่าเสมอถ้าใช้ชื่อแอตทริบิวต์ที่สอดคล้องกัน ตาราง 3.3 แสดงตัวอย่างชื่อคุณลักษณะที่ดีและไม่ดี โปรดทราบว่าคำในชื่อแอตทริบิวต์จะคั่นด้วยช่องว่าง ขึ้นต้นด้วยตัวพิมพ์ใหญ่ และใช้อักขระตัวพิมพ์เล็กสำหรับส่วนที่เหลือ

ตารางที่ 3.3 ชื่อแอตทริบิวต์พร้อมคำอธิบาย

ชื่อดี

ชื่อไม่ดี

คำอธิบาย

ชื่อบุคคล
(ชื่อบุคคล)
ชื่อ
(ชื่อ)
Name คือชื่อของคลาสและต้องมีการกำหนดอ็อบเจ็กต์ Person และตัวแก้ไขตัวแรก
ปริมาณการขายไอศกรีม
(ปริมาณการขายไอศกรีม)
ปริมาณการขาย
(ปริมาณการขาย)
ปริมาณคือชื่อของชั้นเรียนและควรอยู่ในตำแหน่งสุดท้าย (in ฉบับภาษาอังกฤษชื่อแอตทริบิวต์) “The” และ “of” ไม่ได้เพิ่มความหมายใดๆ เพิ่มเติม
จำนวนต้นทุนรายการ
(มูลค่าตำแหน่ง)
ต้นทุนของรายการ
(มูลค่าตำแหน่ง)
“ของ” ไม่ได้เพิ่มความหมายใดๆ เพิ่มเติม ชื่อคลาส "Amount" จะบอกผู้ใช้ว่าควรมีอะไรอยู่ในแอตทริบิวต์
ตัวระบุผลิตภัณฑ์
(รหัสผลิตภัณฑ์)
ตัวระบุผลิตภัณฑ์
(รหัสผลิตภัณฑ์)
"ตัวระบุ" เป็นพหูพจน์ ชื่อแอตทริบิวต์ต้องเป็นคำนามเอกพจน์
รหัสที่ตั้งจุดขาย

รหัส POS
(รหัส POS)
"POS" เป็นตัวย่อ ชื่อคลาส "รหัส" ที่ใช้ต้องมีตัวแก้ไข
วันเกิดของบุคคล
(วันเกิดของบุคคล)
วันเกิด
(วันเกิด)
วันเกิดไม่มีชื่อคลาสวันที่ การรวมตัวแก้ไขและชื่ออ็อบเจ็กต์ทำให้ความหมายของชื่อแอตทริบิวต์ชัดเจนยิ่งขึ้น

คำอธิบายของคุณลักษณะ

คำอธิบายแอตทริบิวต์ควรเป็นคำอธิบายสั้นๆ ว่าแอตทริบิวต์หมายถึงอะไร ไม่ใช่คำอธิบายการใช้งาน คำอธิบายของแอตทริบิวต์ไม่ควรขัดแย้งกับชื่อและไม่ควรเป็นชื่อซ้ำๆ ใช้ชื่อคลาสและออบเจ็กต์ในคำสั่งเพื่ออธิบายข้อมูลได้อย่างถูกต้อง หากมีการอนุมานหรือคำนวณแอตทริบิวต์ ให้รวมกฎการอนุมานหรือสูตรการคำนวณด้วย กฎต่อไปนี้ใช้กับคำอธิบายแอตทริบิวต์:

  • คำอธิบายแอตทริบิวต์ต้องชัดเจน ครบถ้วน และไม่คลุมเครือ
  • คำอธิบายแอตทริบิวต์ต้องตรงกับชื่อ
  • คำอธิบายของแอตทริบิวต์จะต้องไม่ขึ้นอยู่กับคำอธิบายของแอตทริบิวต์อื่น
  • คำอธิบายแอตทริบิวต์ควรเขียนเป็นภาษาธุรกิจ ไม่ใช่ภาษาทางเทคนิค
  • ชื่อของแอตทริบิวต์ควรสะท้อนถึงความหมาย ไม่ใช่วิธีการใช้
  • คำอธิบายแอตทริบิวต์จะต้องชี้แจงคำย่อและตัวย่อทั้งหมดที่ใช้ในชื่อ

เราสนับสนุนให้ผู้สร้างโมเดลจัดเตรียมคำอธิบายที่ดีสำหรับคุณลักษณะแต่ละรายการ คำอธิบายแอตทริบิวต์ที่ดีทำให้โมเดลนี้ใช้งานง่ายสำหรับทุกคน ผู้ที่ใช้แบบจำลองที่สร้างขึ้นโดยนักพัฒนาที่ดีจะพึงพอใจกับการมีข้อกำหนดข้อมูลที่กำหนดไว้อย่างดีในแบบจำลอง เปรียบเทียบตัวอย่างในตาราง 3.4

ตารางที่ 3.4. ชื่อแอตทริบิวต์และคำอธิบายพร้อมคำอธิบาย

ชื่อแอตทริบิวต์

คำอธิบายที่ดี

คำอธิบายที่ไม่ดี

คำอธิบาย

ชื่อบุคคล

(ชื่อบุคคล)

ชื่อของบุคคลที่อนุญาตให้บริษัทสื่อสารกับบุคคลโดยใช้เงื่อนไขที่เป็นมิตร

ฟิลด์ที่มีความยาว 40 อักขระ

ไม่ได้ใช้ภาษาธุรกิจ คำศัพท์ทางเทคนิคที่ใช้

ปริมาณการขายไอศกรีม

(ปริมาณการขายไอศกรีม)

ปริมาณของไอศกรีมยี่ห้อหนึ่งที่ขายในงานขายนั้นๆ

ปริมาณการขาย.

ไม่ได้เพิ่มความหมายใหม่ใดๆ แต่เพียงใช้ถ้อยคำชื่อแอตทริบิวต์ใหม่ในรูปแบบที่คลุมเครือ

จำนวนต้นทุนรายการ

(มูลค่าตำแหน่ง)

มูลค่าของตำแหน่งเฉพาะในช่วงเวลาที่กำหนด หมายถึงต้นทุนรวมของการขายและการจัดส่ง

เลขทศนิยมหกหลักที่มีทศนิยมสองตำแหน่ง

คำอธิบายทางเทคนิคมากเกินไป แทบจะไม่มีความหมายอะไรเลยสำหรับผู้ใช้รายการข้อมูล

ตัวระบุผลิตภัณฑ์

(รหัสผลิตภัณฑ์)

ตัวระบุตัวเลขเฉพาะปลอมสำหรับผลิตภัณฑ์เฉพาะ

รหัสผลิตภัณฑ์

การเรียบเรียงชื่อแอตทริบิวต์ใหม่อย่างง่าย

รหัสที่ตั้งจุดขาย

(รหัสสถานที่ขายหน้าร้าน)

การระบุรหัสที่ไม่ซ้ำ ตำแหน่งทางภูมิศาสตร์จุดขาย

ตัวย่อที่ใช้อาจไม่ชัดเจนสำหรับผู้ใช้ นอกจากนี้ ตัวแก้ไขที่สำคัญจะไม่รวมอยู่ในคำอธิบาย

วันเกิดของบุคคล

(วันเกิดของบุคคล)

วันเดือนปีเกิดของบุคคล

วันเกิดของบุคคล

คำอธิบายละเว้นชื่อของคลาส "วันที่"

ข้อผิดพลาดทั่วไปเมื่อทำงานกับแอตทริบิวต์

ส่วนนี้ ซึ่งครอบคลุมถึงข้อผิดพลาดทั่วไปในการสร้างแบบจำลองแอตทริบิวต์ ไม่ได้หมายถึงให้ครอบคลุม จุดประสงค์คือเพื่อชี้ให้เห็นข้อผิดพลาดทั่วไปที่นักพัฒนาโมเดลทำ

บางครั้ง เมื่อสร้างโมเดลบางอย่างในลักษณะเฉพาะ ผู้สร้างโมเดลจะตัดสินใจเลือกอย่างมีสติโดยยึดตาม หลักการที่ถูกต้อง. เป็นสิ่งสำคัญมากที่จะต้องเข้าใจห่วงโซ่แห่งเหตุและผลทั้งหมดของการตัดสินใจและผลลัพธ์ที่สามารถนำไปสู่การตัดสินใจได้

การสร้างแบบจำลองในแง่ของค่านิยม

การสร้างแบบจำลองในแง่ของค่านิยมหมายถึงอะไร? ในระหว่างเซสชันการทำงาน ผู้ใช้อาจบอกคุณว่าพวกเขาต้องการชุดแอตทริบิวต์ที่ระบุหมวดหมู่อายุของอินสแตนซ์ของเอนทิตี PERSON มีปัญหาอย่างน้อยสามประการกับสถานการณ์นี้:

  1. วิธีการกำหนด หมวดหมู่อายุในองค์กรสามารถเปลี่ยนแปลงไปตามกาลเวลา
  2. อายุของบุคคลใดบุคคลหนึ่งเปลี่ยนแปลงไปตามกาลเวลาอย่างแน่นอน
  3. คุณลักษณะทั้งหมดจะแสดงค่าแอตทริบิวต์ อายุของบุคคล. โดยธรรมชาติแล้ว อายุของบุคคลจะเปลี่ยนแปลงไปตามกาลเวลา ดังนั้นทางออกที่ดีที่สุดคือการใช้แอตทริบิวต์แบบง่ายในโมเดล วันเดือนปีเกิดของบุคคล

การสร้างแบบจำลองแอตทริบิวต์หลายค่า

คุณลักษณะที่มีความหมายหลายประการสำหรับแนวคิดจะมีหลายค่า ตรวจสอบคำอธิบายแอตทริบิวต์ที่ระบุหลายค่าสำหรับแนวคิดเดียวกัน

บางครั้งผู้เชี่ยวชาญจากสาขาวิชาที่แตกต่างกันในองค์กรจะใช้ชื่อคุณลักษณะที่สะกดและออกเสียงเหมือนกัน แต่มีความหมายที่แตกต่างกันสำหรับผู้เชี่ยวชาญที่แตกต่างกัน วิธีหนึ่งในการตรวจสอบให้แน่ใจว่าแอตทริบิวต์ที่มีชื่อเดียวกันจะอธิบายออบเจ็กต์เดียวกันคือการตรวจสอบคำอธิบาย ตรวจสอบให้แน่ใจว่าค่าแอตทริบิวต์อธิบายแนวคิดเดียว

ตัวอย่างเช่น คุณสามารถสร้างโค้ดเทียมได้โดยการเชื่อมต่อโค้ดตั้งแต่หนึ่งโค้ดขึ้นไปเพื่อเชื่อมโยงข้อมูลที่ไม่เกี่ยวข้องก่อนหน้านี้ ส่วนของข้อความสามารถซ่อนคุณลักษณะและความหมายอันมีค่ามากมายได้

ความล้มเหลวในการแก้ไขแอตทริบิวต์ที่มีหลายค่าอาจส่งผลให้กฎเกณฑ์ทางธุรกิจที่สำคัญบางข้อยังคงตรวจไม่พบและไม่มีการจัดทำเอกสาร

การสร้างแบบจำลองคุณลักษณะที่ซ้ำซ้อน

แอ็ตทริบิวต์ที่มีชื่อต่างกันแต่มีข้อมูลเกี่ยวกับแนวคิดที่คล้ายกันจะซ้ำซ้อน ในทุกภาษามีคำมากมายที่แสดงถึงสิ่งเดียวกัน วิธีหนึ่งในการค้นหาแอตทริบิวต์ที่ซ้ำซ้อนคือการดูเอนทิตีที่มีคุณสมบัติคล้ายกัน เปรียบเทียบคำอธิบายของแอตทริบิวต์ทั้งหมดเพื่อดูว่าเอนทิตีมีข้อมูลเกี่ยวกับแนวคิดที่คล้ายกันหรือไม่ คุณลักษณะที่ซ้ำซ้อนมักเป็นผลมาจากแนวโน้มในการสร้างแบบจำลองค่าเป็นคุณลักษณะ ตัวอย่างเช่น เอนทิตี MANAGER และ EXECUTOR อาจมีแอตทริบิวต์ชื่อผู้จัดการและชื่อผู้ดำเนินการ เนื่องจากทั้ง MANAGER และ EXECUTOR เป็นบทบาทที่อินสแตนซ์ของเอนทิตี PERSON สามารถทำได้ คุณจึงสามารถย้ายแอตทริบิวต์นี้ไปที่นั่นและตั้งชื่อเป็น PERSONNAME ได้

การใช้ชื่อที่ไม่ดีสำหรับคุณลักษณะ

ชื่อแอตทริบิวต์ที่ไม่ชัดเจน คลุมเครือ หรือไม่แน่ชัด ทำให้ผู้ใช้ใหม่และทีมพัฒนาสามารถนำกลับมาใช้ใหม่หรือพัฒนาโมเดลที่มีอยู่ได้ยาก

อย่าใช้คำย่อหรือตัวย่อเป็นส่วนหนึ่งของชื่อแอตทริบิวต์ ตัวย่อและตัวย่อเปิดให้สำหรับการตีความที่ผิดและอาจมีความหมายที่แตกต่างกันในสาขาวิชาที่แตกต่างกัน

อย่าใช้ชื่อเฉพาะที่ระบุความหมายของตัวอย่างเฉพาะ ชื่อแอ็ตทริบิวต์ที่ใช้ชื่อที่ถูกต้องเป็นตัวบ่งชี้ถึงปัญหาการสร้างแบบจำลองที่ร้ายแรง ซึ่งเกี่ยวข้องกับมากกว่าการเลือกชื่อที่ไม่ดี อย่ารวมสถานที่เป็นส่วนหนึ่งของชื่อแอตทริบิวต์ หากมีค่าสำหรับตำแหน่งหนึ่ง ค่านั้นจะมีอยู่ในตำแหน่งอื่นอย่างแน่นอน ชื่อแอตทริบิวต์พร้อมตำแหน่งเป็นการบ่งชี้ว่าคุณกำลังสร้างโมเดลอินสแตนซ์เฉพาะแทนที่จะเป็นคลาส

การใช้คำอธิบายที่ไม่ดีสำหรับคุณลักษณะ

อย่าใช้คำอธิบายคุณลักษณะที่นำมาจากพจนานุกรมเท่านั้น คำอธิบายพจนานุกรมจะไม่รวมข้อมูลที่เกี่ยวข้องกับธุรกิจซึ่งทำให้คุณลักษณะมีความสำคัญต่อองค์กร อย่าเพียงแค่ใช้ถ้อยคำชื่อแอตทริบิวต์ใหม่ อย่าใช้ชื่อแอตทริบิวต์ในคำอธิบาย

คำอธิบายแอตทริบิวต์ที่ไม่ชัดเจน คลุมเครือ หรือแย่กว่านั้นคือไม่มี ทำให้ยากต่อการนำมาใช้ซ้ำหรือพัฒนาโมเดลที่มีอยู่ ผู้ใช้จะไม่สามารถตรวจสอบได้ว่าโมเดลมีข้อกำหนดข้อมูลทั้งหมดหรือไม่ นอกจากนี้ยังเพิ่มโอกาสในการใช้ค่าเฉพาะและแอตทริบิวต์ที่มีหลายค่าในโมเดลแทนแอตทริบิวต์

แนวคิดที่ดูเหมือนชัดเจนสำหรับทุกคนที่เกี่ยวข้องกับเซสชันการทำงานอาจไม่ชัดเจนนักเมื่อเวลาผ่านไป เมื่อทีมพัฒนาใหม่ได้รับมอบหมายให้พัฒนาโมเดลที่มีอยู่

บทสรุป

หน่วยงานแสดงถึงข้อเท็จจริงที่บริษัทสนใจที่จะรวบรวมและรักษาข้อมูล สิ่งเหล่านี้ถือเป็นแก่นแท้ของแบบจำลองและส่วนใหญ่จะถูกเปิดเผยในระหว่างช่วงการทำงาน การแสดงคุณลักษณะที่สมบูรณ์และถูกต้องในแบบจำลองจำเป็นต้องมีการวิเคราะห์อย่างรอบคอบเพื่อให้แน่ใจว่าคุณลักษณะนั้นตรงกับข้อกำหนดของข้อมูลอย่างถูกต้อง แอตทริบิวต์จะต้องมีอยู่ในโมเดลในสำเนาเดียวและต้องแสดงถึงแนวคิดทางธุรกิจเดียว ต้องใช้กฎการทำให้เป็นมาตรฐานเพื่อวางแอตทริบิวต์ลงในเอนทิตีที่เหมาะสม

แอ็ตทริบิวต์อาจเป็นคีย์หรือไม่ใช่คีย์ก็ได้ คีย์อาจเป็นแอตทริบิวต์เดี่ยวหรือกลุ่มของแอตทริบิวต์ก็ได้ คีย์หลักจะถูกเลือกจากคีย์ตัวเลือกที่ระบุอินสแตนซ์เอนทิตีโดยไม่ซ้ำกัน คุณลักษณะของคีย์หลักจะย้ายจากเอนทิตีดั้งเดิมไปเป็นคีย์ต่างประเทศของเอนทิตีรอง ค่าของแอตทริบิวต์ที่ไม่ใช่คีย์จะต้องขึ้นอยู่กับค่าของคีย์หลัก

ขอบเขตระบุชุดของค่าแอตทริบิวต์ ขอบเขตบูลีนอาจเป็นประเภทข้อมูลธรรมดา เช่น ตัวเลขหรือสตริง นอกจากนี้ยังอาจเป็นประเภทข้อมูลที่ซับซ้อนที่ผู้ใช้กำหนดซึ่งได้รับการปรับแต่งให้ตรงตามข้อกำหนดเฉพาะของบริษัท DBMS ใหม่รองรับประเภทข้อมูลขั้นสูง เช่น รูปภาพและเสียง

ค่าแอตทริบิวต์อาจจำเป็นหรือไม่จำเป็น หากจำเป็นต้องมีค่า แอ็ตทริบิวต์จะต้องไม่มีค่าว่าง แอตทริบิวต์ต้องมีชื่อและคำอธิบาย เมื่อตั้งชื่อแอตทริบิวต์ ขอแนะนำให้ใช้มาตรฐานการตั้งชื่อในรูปแบบ object/modifier/class คุณลักษณะแต่ละรายการควรมีคำอธิบายที่ดีซึ่งใช้คำศัพท์ทางธุรกิจเพื่อกำหนดว่าแอตทริบิวต์คืออะไร ไม่ใช่ว่าจะใช้อย่างไร