제이의 블로그

การสร้างแบบจำลองข้อมูลเชิงตรรกะ

สร้าง: 2024-04-09

สร้าง: 2024-04-09 12:21

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

กระบวนการนี้ส่วนใหญ่จะเน้นไปที่การแปลง ERD ซึ่งเป็นผลลัพธ์จากการสร้างแบบจำลองข้อมูลเชิงแนวคิด ให้เป็นไปตามรูปแบบของฐานข้อมูลเชิงสัมพันธ์ โดยยึดตามกฎการแมป (Mapping Rule)

กฎการแมป

  • เอนทิตีรูปสี่เหลี่ยมจะถูกแปลงเป็นตาราง
  • แอตทริบิวต์รูปวงกลมจะถูกแปลงเป็นคอลัมน์
  • ความสัมพันธ์จะถูกแปลงเป็น PK หรือ FK

ตารางที่ไม่มี FK ควรเป็นตารางแรกที่แสดง เนื่องจากแสดงได้ง่ายกว่า

ความสัมพันธ์

  • แสดงความสัมพันธ์ระหว่างตารางโดยพิจารณาจากความสัมพันธ์ (Cardinality) และความสมัครใจ (Optionality)
  • แสดงความสัมพันธ์ที่ง่ายที่สุดก่อน ได้แก่ ความสัมพันธ์แบบ 1:1 ตามด้วยความสัมพันธ์แบบ 1:N และความสัมพันธ์แบบ N:M

การจัดการความสัมพันธ์แบบ 1:1

ในความสัมพันธ์แบบ 1:1 จะต้องพิจารณาถึงความสัมพันธ์แบบพึ่งพาอาศัยกันระหว่างสองตาราง และกำหนด FK

สามารถมองเป็นตารางหลัก (Parent) และตารางรอง (Child) ได้

การจัดการความสัมพันธ์แบบ 1:N

ในความสัมพันธ์แบบ 1:N เนื่องจาก 1 ถูกอ้างอิงโดย N ดังนั้น N จึงควรตั้งค่า FK

การจัดการความสัมพันธ์แบบ N:M

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

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

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

การสร้างแบบจำลองข้อมูลเชิงตรรกะ

Wikipedia - การทำให้เป็นปกติของฐานข้อมูล

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

กระบวนการทำให้เป็นปกติที่ใช้ในอุตสาหกรรมคือกระบวนการทำให้เป็นปกติระดับที่ 3 (3NF) และกระบวนการทำให้เป็นปกติในระดับที่สูงกว่านั้นใช้ในทางวิชาการเป็นหลัก

การทำให้เป็นปกติต้องดำเนินการทีละขั้นตอนตามลำดับ

การทำให้เป็นปกติระดับที่ 1 (1st Normal Form, 1NF)

  • คอลัมน์ในตารางต้องมีค่าที่เป็นอะตอม (Atomic) เท่านั้น

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

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

การทำให้เป็นปกติระดับที่ 2 (2nd Normal Form, 2NF)

  • ต้องเป็นไปตามการทำให้เป็นปกติระดับที่ 1
  • ต้องกำจัดการพึ่งพาบางส่วน

หากมีค่าซ้ำกันในแถวของตาราง ให้หาคอลัมน์ที่แถวดังกล่าวพึ่งพาอยู่ แล้วแยกคอลัมน์นั้นออก

การทำให้เป็นปกติระดับที่ 3 (3rd Normal Form, 3NF)

  • ต้องเป็นไปตามการทำให้เป็นปกติระดับที่ 1
  • ต้องเป็นไปตามการทำให้เป็นปกติระดับที่ 2
  • ต้องกำจัดการพึ่งพาแบบถ่ายทอด

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

ความคิดเห็น0

[สำหรับผู้ไม่ใช่ผู้เชี่ยวชาญ ด้านการพัฒนาซอฟต์แวร์ เพื่อความอยู่รอด] 14. สรุปเนื้อหาสัมภาษณ์ทางเทคนิคที่ผู้พัฒนาซอฟต์แวร์มือใหม่ถามบ่อยสรุปคำถามทางเทคนิคที่มักถามในการสัมภาษณ์งานผู้พัฒนาซอฟต์แวร์มือใหม่ (พื้นที่หน่วยความจำ โครงสร้างข้อมูล ฐานข้อมูล ฯลฯ) หวังว่าจะเป็นประโยชน์ในการเตรียมตัวสัมภาษณ์งานด้านการพัฒนา
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

April 3, 2024

การติดฉลากข้อมูลคืออะไร? ประเภท ข้อดี ข้อเสียการติดฉลากข้อมูลเป็นกระบวนการที่ติดแท็กให้กับข้อมูลเพื่อให้อัลกอริทึมของปัญญาประดิษฐ์สามารถทำความเข้าใจข้อมูลได้ เช่น การแยกแยะระหว่างสุนัขกับแมว ซึ่งสามารถนำไปใช้ได้ในหลายๆ ด้านและช่วยปรับปรุงประสิทธิภาพของแบบจำลอง
세상 모든 정보
세상 모든 정보
세상 모든 정보
세상 모든 정보

March 29, 2024

[Effective Java] รายการที่ 6: หลีกเลี่ยงการสร้างออบเจ็กต์ที่ไม่จำเป็นการสร้างออบเจ็กต์ที่ไม่จำเป็นนั้นนำไปสู่การสิ้นเปลืองหน่วยความจำ ดังนั้น สำหรับออบเจ็กต์ เช่น สตริง หรือบูลีน ควรใช้ลิเทอรัลหรือเมธอดจากโรงงานแบบคงที่แทน
제이온
제이온
제이온
제이온

April 28, 2024

12 เครื่องมือสร้างไดอะแกรม ER ที่ดีที่สุดสำหรับปี 2024แนะนำ 12 เครื่องมือสร้างไดอะแกรม ER ที่ดีที่สุดสำหรับปี 2024 รวมถึง Lucidchart, DeZign for Databases, Gleek.io และอื่นๆ เปรียบเทียบฟีเจอร์และราคาของเครื่องมือต่างๆ เพื่อเลือกเครื่องมือที่เหมาะสมกับคุณ
Meursyphus
Meursyphus
Meursyphus
Meursyphus

July 17, 2024

[บันทึกการสร้างเว็บไซต์หลายภาษา - วันที่ 41] การตั้งค่า Schema คืออะไร?นี่คือบันทึกวันที่ 41 ของการสร้างเว็บไซต์หลายภาษาโดยใช้ RankMath อธิบายวิธีการตั้งค่า Schema เพื่อจัดโครงสร้างข้อมูลเว็บไซต์และช่วยในการเพิ่มประสิทธิภาพการค้นหา (SEO) อย่างละเอียด
aghkuh1
aghkuh1
aghkuh1
aghkuh1

February 6, 2025

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

March 18, 2024