พอร์ทัลการปรับปรุงห้องน้ำ เคล็ดลับที่เป็นประโยชน์

ประเภทเอนทิตีในฐานข้อมูล พื้นฐานฐานข้อมูล

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

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

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

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

เฟสลอจิก

เฟสตรรกะประกอบด้วยหลายขั้นตอน นอกจากนี้พวกเขาทั้งหมดได้รับการพิจารณา

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

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

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

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

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

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

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

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

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

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

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

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


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

คีย์

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

คีย์ที่เป็นไปได้

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

คีย์หลัก

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

ปุ่มสำรอง

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

คีย์ต่างประเทศ

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

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

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

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

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

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

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

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

หลายต่อหลายคน

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

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

Normalization

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

รูปแบบปกติครั้งแรก

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

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

รูปแบบปกติที่สอง

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

รูปแบบปกติที่สาม

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

ข้อ จำกัด

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

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

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

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

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

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

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

ทริกเกอร์

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

กฎทางธุรกิจ

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

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

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

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

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

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

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

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

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

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

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

เฟสลอจิก

เฟสตรรกะประกอบด้วยหลายขั้นตอน นอกจากนี้พวกเขาทั้งหมดได้รับการพิจารณา

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

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

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

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

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

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

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

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

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

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

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

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


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

คีย์

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

คีย์ที่เป็นไปได้

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

คีย์หลัก

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

ปุ่มสำรอง

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

คีย์ต่างประเทศ

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

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

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

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

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

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

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

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

หลายต่อหลายคน

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

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

Normalization

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

รูปแบบปกติครั้งแรก

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

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

รูปแบบปกติที่สอง

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

รูปแบบปกติที่สาม

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

ข้อ จำกัด

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

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

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

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

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

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

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

ทริกเกอร์

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

กฎทางธุรกิจ

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

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

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

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

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

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

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

เอนทิตี (Entity) - วัตถุจริงหรือนามธรรมที่จำเป็นสำหรับสาขาวิชา เอนทิตีต้องมีคำนามในเอกพจน์

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

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

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

มีชื่อเฉพาะ

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

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

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

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

ง่าย - ประกอบด้วยรายการข้อมูลหนึ่งรายการ

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

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

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

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

ได้รับ - ค่าที่ได้มาจากค่าของแอตทริบิวต์อื่น

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

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

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

ความสัมพันธ์ - ชื่อการเชื่อมโยงระหว่างเอนทิตีที่มีความหมายกับโดเมนที่เป็นปัญหา

ระดับของความสัมพันธ์คือจำนวนของเอนทิตีที่เข้าร่วมในความสัมพันธ์

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

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

ตัวต่อตัว (แสดง 1: 1)

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

หลายต่อหลายคน (แสดงโดย M: N)

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

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

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

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

วันนี้เราจะเน้นที่รูปแบบความสัมพันธ์เอนทิตี

ทฤษฎี

Entity-Relationship model (ER) เป็นแบบจำลองข้อมูลแนวความคิดระดับสูงที่ได้รับการพัฒนาขึ้นเพื่อลดความซับซ้อนของงานออกแบบโครงสร้างฐานข้อมูล

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

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

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

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

แนวคิดพื้นฐานของแบบจำลองนี้คือแนวคิด เอนทิตีแอตทริบิวต์และความสัมพันธ์

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

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

การปฏิบัติ

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

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

การฉายภาพยนตร์

ภาพยนตร์

ผู้ชม

ตั๋ว

การจองห้องพัก

ค่าใช้จ่าย

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

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

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

การฉายภาพยนตร์ (หมายเลขฉาย, หมายเลขฟิล์ม, วันที่ฉาย, หมายเลขราคา);

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

ผู้ชม (หมายเลขผู้ชม, ชื่อ - นามสกุล, วันเดือนปีเกิด);

ตั๋ว (หมายเลขผู้ชม, หมายเลขคัดกรอง, ราคาตั๋ว);

การจองห้องพัก (หมายเลขผู้ชม, หมายเลขคัดกรอง, วันที่จอง);

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

การแสดงแอตทริบิวต์ของเอนทิตีแบบกราฟิกจะแสดงเป็นข้อความเสริมที่แสดงรายการชื่อแอตทริบิวต์ ตัวอย่างเช่น:

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

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

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

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

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

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

  • ตัวต่อตัว (1: 1);
  • หนึ่งต่อหลาย (1: N);
  • หลายต่อหลายคน (N: M)


การสร้างฐานข้อมูลเริ่มต้นด้วยการออกแบบ

ขั้นตอนการออกแบบฐานข้อมูล:

·การวิจัยในสาขาวิชา;

·การวิเคราะห์ข้อมูล (เอนทิตีและคุณลักษณะ);

·การกำหนดความสัมพันธ์ระหว่างเอนทิตีและการกำหนดคีย์หลักและรอง (ต่างประเทศ)

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

ถึงแนวคิดพื้นฐาน แบบจำลองฐานข้อมูล "เอนทิตี - ความสัมพันธ์" รวม: เอนทิตีความสัมพันธ์ระหว่างพวกเขาและแอตทริบิวต์ (คุณสมบัติ)

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

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

การสื่อสาร - ความสัมพันธ์ระหว่างเอนทิตีในสาขาวิชา ลิงค์คือการเชื่อมต่อระหว่างส่วนต่างๆของฐานข้อมูล (ในฐานข้อมูลเชิงสัมพันธ์นี่คือการเชื่อมต่อระหว่างเร็กคอร์ดตาราง)

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

พิจารณาสาขาวิชา: สำนักงานคณบดี (ผลงานนักศึกษา)
"สำนักงานคณบดี" DB ควรจัดเก็บข้อมูลเกี่ยวกับนักศึกษากลุ่มนักศึกษาผลการเรียนของนักศึกษาในสาขาวิชาต่างๆเกี่ยวกับอาจารย์เกี่ยวกับทุนการศึกษา ฯลฯ เราจะ จำกัด ตัวเองเฉพาะข้อมูลเกี่ยวกับนักเรียนกลุ่มนักเรียนและผลการเรียนของนักเรียนในสาขาวิชาต่างๆ เราจะกำหนดเอนทิตีแอททริบิวต์เอนทิตีและข้อกำหนดพื้นฐานสำหรับฟังก์ชันฐานข้อมูลที่มีข้อมูล จำกัด

หน่วยงานหลักที่สำคัญของสำนักงานคณบดี ได้แก่: นักเรียนกลุ่มนักเรียนวินัยความก้าวหน้า

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


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

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

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

จากข้อมูลข้างต้นเราได้จัดทำแบบจำลองความสัมพันธ์เอนทิตีสำหรับสำนักงานคณบดี

ลูกศรเป็นชวเลขสำหรับความสัมพันธ์แบบหนึ่งต่อกลุ่ม

ในการสร้างฐานข้อมูลคุณต้องใช้ DBMS ที่รู้จักกันดีเช่น Access DBMS