/ / ฐานข้อมูลมีความสัมพันธ์กัน แนวคิดฐานข้อมูลเชิงสัมพันธ์

ฐานข้อมูลเชิงสัมพันธ์ แนวคิดฐานข้อมูลเชิงสัมพันธ์

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

โมเดลพื้นฐาน

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

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

โครงสร้างฐานข้อมูลเชิงสัมพันธ์

แนวคิดพื้นฐานของฐานข้อมูลเชิงสัมพันธ์

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

แนวคิดฐานข้อมูลเชิงสัมพันธ์

กระบวนการสร้างแบบจำลองและวาดองค์ประกอบหลัก

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

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

การออกแบบฐานข้อมูลเชิงสัมพันธ์

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

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

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

บันทึกฐานข้อมูลเชิงสัมพันธ์

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

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

ตารางฐานข้อมูลเชิงสัมพันธ์

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

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

ตามคุณสมบัติของ DBMS เชิงสัมพันธ์ เป็นที่ชัดเจนว่าค่าแอตทริบิวต์ต้องมีประเภทและความยาวเท่ากัน พิจารณาคุณสมบัติของค่าแอตทริบิวต์

ลักษณะสำคัญของเขตข้อมูลฐานข้อมูลเชิงสัมพันธ์

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

ประเภทฟิลด์ฐานข้อมูลเชิงสัมพันธ์

สคีมาตารางฐานข้อมูลเชิงสัมพันธ์ 2 มิติ

สคีมาฐานข้อมูลเชิงสัมพันธ์
ชื่อแอตทริบิวต์ 1ชื่อแอตทริบิวต์2ชื่อแอตทริบิวต์3ชื่อแอตทริบิวต์4ชื่อแอตทริบิวต์ 5
รายการ_1_1รายการ_1_2รายการ_1_3รายการ_1_4รายการ_1_5
รายการ_2_1รายการ_2_2รายการ_2_3รายการ_2_4รายการ_2_5
รายการ_3_1รายการ_3_2รายการ_3_3รายการ_3_4รายการ_3_5

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

กฎพื้นฐานสำหรับการทำให้เอนทิตีเชิงสัมพันธ์เป็นปกติ

1. ค่าของชื่อฟิลด์สำหรับตารางเชิงสัมพันธ์ต้องไม่ซ้ำกัน หนึ่งเดียว (รูปแบบปกติแรกคือ 1NF)

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

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

ฐานข้อมูล: ความสัมพันธ์เชิงสัมพันธ์ระหว่างตาราง

ความสัมพันธ์ของตารางเชิงสัมพันธ์มี 2 ประเภทหลัก:

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

ฐานข้อมูลเชิงสัมพันธ์

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

การมีอยู่ของคีย์ในฐานข้อมูลเชิงสัมพันธ์

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

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

ตัวอย่างแบบจำลองฐานข้อมูลเชิงสัมพันธ์

เพื่อความชัดเจน เราจะยกตัวอย่างง่ายๆ ของโมเดลฐานข้อมูลเชิงสัมพันธ์ที่ประกอบด้วยสองเอนทิตี มีโต๊ะชื่อว่า "ดีเนอรี"

สาระสำคัญ "ดีนเนอรี่"

รหัสนักศึกษา

ชื่อเต็ม

กลุ่ม

111

Ivanov Oleg Petrovich

IN-41

222

Ilya Lazarev

IN-72

333

Konoplev Petr Vasilievich

IN-41

444

Kushnereva Natalia Igorevna

IN-72

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

ตาราง "นักเรียน"

ชื่อเต็ม

กลุ่ม

เครื่องหมายเฉลี่ย

โทรศัพท์

Ivanov Oleg Petrovich

IN-41

3,0

2-27-36

Ilya Lazarev

IN-72

3,8

2-36-82

Konoplev Petr Vasilievich

IN-41

3,9

2-54-78

Kushnereva Natalia Igorevna

IN-72

4,7

2-65-25

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