บทที่ 3 แบบจำลองข้อมูล Data Models
แบบจำลองข้อมูล Data Models เป็นแนวทางในการอธิบายแบบร่างเชิงตรรกะของข้อมูลและความสัมพันธ์ในส่วนต่าง ๆ ที่เกี่ยวข้องกัน เป็นแหล่งรวมของแนวคิดที่นำเสนอความเป็นจริงของวัตถุ ข้อมูล และเหตุการณ์ รวมถึงความสัมพันธ์ระหว่างข้อมูลที่มีความสอดคล้องตรงกัน วัตถุประสงค์ของแบบจำลองข้อมูล คือ การนำแนวคิดต่างๆ มานำเสนอให้เกิดเป็นรูปแบบจำลองขึ้นมา เพื่อใช้ในการสื่อสารระหว่างผุ้ออกแบบฐานข้อมูลกับผู้ใช้ให้เกิดความเข้าใจตรงกัน
ประเภทของแบบจำลองข้อมูล แบบจำลองเชิงแนวคิด แบบจำลองเพื่อการนำไปใช้งาน
1. แบบจำลองเชิงแนวคิด (Conceptual Data Models) ใช้สำหรับแสดงลักษณะโดยรวมของข้อมูลทั้งหมดในระบบ โดยนำเสนอในลักษณะแผนภาพหรือไดอะแกรมที่ประกอบไปด้วยเอ็นติตี้ต่าง ๆ และความสัมพันธ์ระหว่างเอ็นติตี้ในระบบ จุดประสงค์ของแบบจำลองเชิงแนวคิด คือ ต้องนำเสนอให้เกิดความเข้าใจตรงกันระหว่างผู้ออกแบบและผู้ใช้งาน กล่าวคือ เมื่อเห็นแผนภาพแบบจำลองดังกล่าว ก็จะทำให้เข้าใจถึงความสัมพันธ์ของข้อมูลต่างๆ ในระบบ ตัวอย่างแบบจำลองเชิงแนวคิด เช่น แผนภาพ E-R (Entity Relationship model
2. แบบจำลองเพื่อการนำไปใช้งาน Implementation Data Models เป็นแบบจำลองที่ใช้อธิบายถึงโครงสร้างข้อมูลและฐานข้อมูล ด้วยการแสดงถึงรูปแบบที่อิงกับระบบจัดการฐานข้อมูลที่ใช้
พื้นฐานการสร้างแบบจำลองข้อมูล เอนติตี้ แอตตริบิวต์ ความสัมพันธ์ ข้อบังคับ
1. เอ็นติตี้ (Entity) สิ่งต่าง ๆ ที่มีเอกลักษณ์สามารถชี้เฉพาะเจาะจงได้ เป็นสิ่งที่สามารถนำไปเก็บในฐานข้อมูลได้ อาจเป็นสิ่งที่เป็นรูปธรรม หรือนามธรรมก็ได้ เช่น บุคคล สัตว์ สิ่งของ สถานที่ ความคิด เหตุการณ์ เป็นต้น บุคคล พนักงาน นักศึกษา นักฟุตบอล แพทย์ สิ่งของ สินค้า รถยนต์ หนังสือ สถานที่ สนามบิน ร้านอาหาร โกดังสินค้า ความคิด หลักสูตร แผนประกันชีวิต เหตุการณ์ การแข่งขันฟุตบอล ข่าว การรักษาโรค
2. แอทตริบิวท์ (Attribute) คุณสมบัติ ลักษณะหรือรายละเอียดของเอ็นติตี้ พนักงาน วันเดือนปีเกิด ชื่อ - นามสกุล ที่อยู่ ส่วนสูง ประวัติการศึกษา น้ำหนัก หมายเลขบัตรประจำตัวประชาชน กรุ๊ปเลือด
ร้านอาหาร สาขา จำนวนบริกร ที่ตั้ง ผู้จัดการร้าน เบอร์โทรศัพท์ จำนวนโต๊ะ
2. แอทตริบิวท์ (Attribute) แอทตริบิวต์ คือ คุณสมบัติของรีเลชั่น หรือคอลัมน์ของตารางนั่นเอง หรืออาจเทียบได้กับฟิลด์ในแฟ้มข้อมูล นักศึกษา (รหัสนักศึกษา, ชื่อ-นามสกุล, เพศ, เบอร์ติดต่อ)
3. ความสัมพันธ์ (Relationship) ความสัมพันธ์ระหว่างเอ็นติตี้ในฐานข้อมูล นักศึกษา กับ แผนการเรียน ความสัมพันธ์ คือ ลงทะเบียน ลูกค้า กับ สินค้า ความสัมพันธ์ คือ สั่งซื้อ อาจารย์ กับ คณะ ความสัมพันธ์ คือ สังกัด
ความสัมพันธ์แบบวัน-ทู-วัน (1:1) ความสัมพันธ์แบบวัน-ทู-เมนนี (1:M) ชนิดของความสัมพันธ์ ความสัมพันธ์แบบวัน-ทู-วัน (1:1) ความสัมพันธ์แบบวัน-ทู-เมนนี (1:M) ความสัมพันธ์แบบเมนนี-ทู-เมนนี (M:N)
ความสัมพันธ์ (Relationship) ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (1:1) เป็นความสัมพันธ์ที่แต่ละรายการของเอนติตี้ X มีความสัมพันธ์กับข้อมูล Y เพียงหนึ่งรายการ นักศึกษามีรหัสประจำตัวเพียงหนึ่งรหัส ผู้นำประเทศ – ประเทศ
ความสัมพันธ์ (Relationship) ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (1:M) เป็นความสัมพันธ์ที่แต่ละรายการของเอ็นติตี้ x มีความสัมพันธ์กับเอ็นติตี้ y มากกว่าหนึ่งรายการ โดยแต่ละรายการของเอ็นติตี้ y มีความสัมพันธ์กับเอ็นติตี้ x ได้เพียงหนึ่งรายการเท่านั้น แม่ – ลูก อาจารย์ที่ปรึกษา – นักศึกษา คณะ-โปรแกรมวิชา
ความสัมพันธ์ (Relationship) ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (M:N) เป็นความสัมพันธ์ที่แต่ละรายการของเอ็นติตี้ x มีความสัมพันธ์กับเอ็นติตี้ y มากกว่าหนึ่งรายการ โดยแต่ละรายการของเอ็นติตี้ y มีความสัมพันธ์กับเอ็นติตี้ x ได้มากกว่าหนึ่งรายการ นักศึกษา-รายวิชา ลูกค้า – สินค้า
4. ข้อบังคับ (Constraints) กฏเกณฑ์เพื่อการบรรจุข้อมูล ซึ่งมีความสำคัญมาก เพราะจะช่วยให้เกิดความมั่นใจในความเป็นอันหนึ่งอันเดียวกัน เพื่อให้เกิดความสอดคล้องตรงกันของข้อมูล ตัวอย่าง เงินเดือนพนักงานจะต้องมีความระหว่าง 6000-15,000 นักศึกษาสามารถลงทะเบียนเรียนได้หลายหน่วยแต่รวมแล้วต้องไม่เกิน 21 หน่วยกิต
แบบจำลองฐานข้อมูล (Database Model) 1. แบบจำลองฐานข้อมูลแบบลำดับชั้น (Hierarchical Database Model) 2. แบบจำลองฐานข้อมูลแบบเครือข่าย (Network Database Model) 3. แบบจำลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 4. แบบจำลองฐานข้อมูลเชิงวัตถุ (Object-Oriented database Model) 5. แบบจำลองฐานข้อมูลแบบมัลติไดแมนชั่น (Multidimensional Database Model)
1. แบบจำลองฐานข้อมูลแบบลำดับชั้น (Hierarchical database model) - เป็นการจัดโครงสร้างแบบบนลงล่าง (Top-down) - มีลักษณะคล้ายโครงสร้างต้นไม้ (Tree Structure) เป็นลำดับชั้น - ข้อมูลจะมีความสัมพันธ์แบบ one-to-many ระดับสูงสุดเรียกว่า Root - มีความสัมพันธ์แบบ Parent / Child (พ่อ/ลูก) - เป็นสถาปัตยกรรมฐานข้อมูลที่เก่าแก่ที่สุด ปัจจุบันไม่นิยมใช้งานแล้ว - ยากต่อการพัฒนา Application - การปรับปรุงโครงสร้างมีความยืดหยุ่นน้อย - ไม่สามารถกำหนดความสัมพันธ์แบบ many-to-many
Hierarchical Database Customers Customer Order Items Ordered Orders To retrieve data, you must start at the top (customer). Items Item Description Quantity 998 Dog Food 12 764 Cat Food 11
Hierarchical database model ข้อดี มีรูปแบบโครงสร้างที่เข้าใจง่าย ซึ่งเป็นในลักษณะต้นไม้ มีโครงสร้างที่ซับซ้อนน้อยที่สุด เหมาะกับข้อมูลที่มีความสัมพันธ์แบบ one-to-many ป้องกันความปลอดภัยในข้อมูลที่ดี เนื่องจากต้องอ่านข้อมูลที่เป็นต้นกำเนิดก่อนทำให้ข้อมูลมีความคงสภาพ เหมาะกับข้อมูลที่มีการเรียงลำดับแบบต่อเนื่อง
Hierarchical database model ข้อเสีย ยากต่อการพัฒนา เพราะต้องมีความรู้ความเข้าใจถึงโครงสร้างทางกายภาพของข้อมูลที่จัดเก็บอยู่ภายในฐานข้อมูล มีข้อจำกัดด้านการนำไปใช้ โดยเฉพาะไม่รองรับความสัมพันธ์แบบ many-to-many เมื่อมีการปรับโครงสร้าง แอปพลิเคชั่นโปรแกรมทั้งหมดต้องเปลี่ยนแปลงตาม เนื่องจากขาดอิสระในโครงสร้าง ในการเรียกใช้งานจำเป็นต้องผ่าน Root เสมอ ดังนั้นหากต้องการค้นหาข้อมูลซึ่งอยู่ในระดับล่าง ๆ ก็ต้องค้นหาทั้งแฟ้ม ไม่มีภาษาที่ใช้สำหรับการจัดการข้อมูล ใน DBMS ขาดมาตรฐานการรองรับที่ชัดเจน
2. แบบจำลองข้อมูลเครือข่าย (Network Database Model) มีลักษณะโครงสร้างที่คล้ายกับโครงสร้างแบบลำดับชั้น แต่แตกต่างกันที่ข้อมูลมีความสัมพันธ์ได้ทั้งแบบ one-to-one , one-to-many และmany-to-many อีกทั้งยังสามารถนำเอาอัลกอริทึมของการ Hashing มาใช้ในการค้นหาข้อมูล
สินค้า ลูกค้า แบบจำลองข้อมูลเครือข่าย (Network Database Model)
Network Database Customer Items Order Ordered Items Entry point
แบบจำลองข้อมูลเครือข่าย (Network Database Model) ข้อดี มีหลักการที่ง่าย ซึ่งใกล้เคียงกับแบบจำลองฐานข้อมูลลำดับชั้น สนับสนุนความสัมพันธ์แบบ many-to-many การเข้าถึงข้อมูลมีความยืดหยุ่นสูงกว่าแบบลำดับชั้นและระบบแฟ้มข้อมูล ความสัมพันธ์แบบ Owner/Member Relationship ทำให้ข้อมูลมีความคงสภาพที่ดี มีภาษานิยามข้อมูล ภาษาจัดการข้อมูลใน DBMS มีมาตรฐานเพื่อการนำไปปฏิบัติชัดเจน
แบบจำลองข้อมูลเครือข่าย (Network Database Model) ข้อเสีย ระบบโดยรวมยังมีความซับซ้อน อีกทั้งยังมีข้อจำกัดและประสิทธิภาพ ยากต่อการนำไปใช้ ทั้งในด้านการพัฒนาแอปพลิเคชั่นและการจัดการ หากโครงสร้างมีการเปลี่ยนแปลง แอปพลิเคชั่นโปรแกรมทั้งหมดต้องเปลี่ยนตาม เนื่องจากขาดอิสระในโครงสร้าง
3. แบบจำลองข้อมูลเชิงสัมพันธ์ (Relation Database Model) เป็นแบบที่คนใช้มากที่สุดในปัจจุบัน เป็นผลงานของ E.F.Codd (ค.ศ. 1970) นำเสนอข้อมูลในรูปแบบตาราง ทำให้สามารถเข้าใจได้ง่าย ประกอบด้วย Row และ Column สามารถแสดงความสัมพันธ์ได้ทั้งแบบ one-to-one , one-to-many และ many-to-many และใช้ Key ในการอ้างอิงกับตารางอื่น (Primary key , Secondary Key) สามารถใช้คำสั่ง SQLในการจัดการกับฐานข้อมูลชนิดนี้
Attribute Employee Cardinality Relation Degree Primary Key Foreign Key E-ID NAME ADDRESS PHONE 001 Somchai Bangkok 02-2322212 002 Somsak Chonburi 053-34251 003 Somsri Ranong 041-45632 004 Somjai Nonthaburi Cardinality Relation Degree Primary Key Foreign Key Payroll TAX-ID Salary E-ID Tax - Type 0012345 10,000 004 1 1234566 8,900 002 2 แบบจำลองข้อมูลเชิงสัมพันธ์ (Relation Database Model)
แบบจำลองข้อมูลเชิงสัมพันธ์ (Relation Database Model) ข้อดี มีความเป็นอิสระในโครงสร้าง โดยหากมีการเปลี่ยนแปลงโครงสร้างตาราง จะไม่ส่งผลต่อแอปพลิเคชั่นโปรแกรมใช้งาน การนำเสนอข้อมูลในรูปแบบของตาราง ก่อให้เกิดมโนภาพถึงข้อมูลที่จัดเก็บ ทำให้ง่ายต่อการออกแบบฐานข้อมูล การนำไปใช้ และการจัดการ การเรียกดูข้อมูล สามารถเรียกได้ด้วยชุดคำสั่ง SQL มีระบบความปลอดภัยที่ดี เนื่องจากโครงสร้างนี้ผู้ใช้งานจะไม่ทราบถึงกระบวนการจัดเก็บข้อมูลภายในฐานข้อมูลแท้จริงว่าเป็นอย่างไร DBMS ที่พัฒนาในปัจจุบันล้วนรองรับเทคโนโลยีฐานข้อมูลเชิงสัมพันธ์
แบบจำลองข้อมูลเชิงสัมพันธ์ (Relation Database Model) ข้อเสีย ต้องมีการลงทุนสูงเนื่องจากต้องใช้ Hardware และ Software ที่มีความสามารถสูง แนวคิดฐานข้อมูลเชิงสัมพันธ์ในภาพรวมนั้นง่ายต่อการนำไปใช้งาน ดังนั้นบุคลากรที่ไม่ได้รับการฝึกอบรมหรือผู้ที่มีความรู้ไม่ดีพอ ได้นำเครื่องมือไปใช้งานที่ผิด ทำให้ระบบที่ดีต้องแย่ลง และหากไม่ได้รับการตรวจสอบ อาจทำให้เกิดข้อมูลซ้ำซ้อนได้เช่นเดียวกับระบบแฟ้ม
4. แบบจำลองฐานข้อมูลเชิงวัตถุ (Object Oriented Database Model) 1. เกิดจากแนวคิดของการเขียนโปรแกรมเชิงวัตถุ (OOP Object Oriented Program)โดยการมองของทุกสิ่งเป็นวัตถุ โดยแต่ละวัตถุจะเป็นแหล่งรวมของข้อมูลและการปฎิบัติงาน (Data & Procedure) 2. มีคลาสเป็นตัวกำหนดคุณสมบัติหรือรายละเอียดของวัตถุ รวมทั้งคุณสมบัติการปกปิดความลับของวัตถุ (Encapsulation) การ (Encapsulation) คือ การเข้าถึงข้อมูลต้องมีการตอบรับจาก Method ในวัตถุนั้นว่าจะอนุญาต ในการส่งMessage เพื่อการติดต่อหรือไม่
Object Class 1 Attributes Methods Object Class 2 Object Class 3 แบบจำลองฐานข้อมูลเชิงวัตถุ (Object Oriented Database Model)
Object-Oriented DBMS Order Customer Government Customer Commercial OrderID CustomerID … CustomerID Name … Government Customer ContactName ContactPhone Discount, … NewContact Commercial Customer ContactName ContactPhone … NewContact NewOrder DeleteOrder … Add Customer Drop Customer Change Address OrderItem Item OrderID ItemID … ItemID Description … OrderItem DropOrderItem … New Item Sell Item Buy Item …
แบบจำลองฐานข้อมูลเชิงวัตถุ (Object Oriented Database Model) ข้อดี คุณสมบัติการสืบทอด Inheritance ทำให้ข้อมูลมีความคงสภาพสูง มีคุณสมบัติในการกลับมาใช้ใหม่ การนำเสนอเป็นรูปแบบ Visual ทำให้อธิบายหัวข้อความหมายได้ดี
แบบจำลองฐานข้อมูลเชิงวัตถุ (Object Oriented Database Model) ข้อเสีย ต้องพึ่งพาผู้เชี่ยวชาญโดยเฉพาะ และมีค่าใช้จ่ายระบบค่อนข้างสูง ยังไม่มีมาตรฐานรองรับที่ชัดเจนเมื่อเทียบกับแบบจำลองฐานข้อมูลเชิงสัมพันธ์ อีกทั้งผลิตภัณฑ์ DBMS ที่ใช้งานบนแบบจำลองฐานข้อมูลสัมพันธ์ได้พัฒนาขีดความสามารถด้วยการรวมเทคโนโลยีเชิงวัตถุเข้าไป ที่เรียกว่า Obiect-Relational Database ผู้เชี่ยวชาญส่วนใหญ่คุ้นเคยกับเทคโนโลยีเชิงฐานข้อมูลสัมพันธ์
แบบจำลองฐานข้อมูลแบบมัลติไดแมนชั่น (Multidimensional Database Model) แบบจำลองชนิดนี้ใช้งานกับคลังข้อมูล โดยนำเสนอข้อมูลในลักษณะไดแมนชั่นทำให้ให้วิวข้อมูลได้ 2 ทาง เพื่อให้สามารถมองเห็นปัญหาทางธุรกิจและสร้างวิธีการแก้ไขปัญหาได้ดียิ่งขึ้น
แบบจำลองฐานข้อมูลแบบมัลติไดแมนชั่น (Multidimensional Database Model) ข้อดี สามารถนำมาประยุกต์ใช้เพื่อวางแผนกลยุทธ์และสร้างวิธีแก้ไขปัญหาทางธุรกิจได้ ข้อมูลที่นำเสนอสามารถนำเสนอมุมองได้หลายมิติ
แบบจำลองฐานข้อมูลแบบมัลติไดแมนชั่น (Multidimensional Database Model) ข้อเสีย ใช้เงินลงทุนสูง ทั้งฮาร์แวร์และซอฟแวร์ที่นำมาใช้เพื่อการวิเคราะห์ คลังข้อมูลต้องได้รับการออกแบบที่ดี มิฉะนั้นอาจไม่สามารถนำมาใช้ประโยชน์คุ้มค่า ผู้เชี่ยวชาญในปัจจุบันยังมีไม่มาก เหมาะกับธุรกิจขนาดใหญ่
โครงสร้างข้อมูลเชิงสัมพันธ์ (Relational Database Structure) ระบบจัดการฐานข้อมูลเชิงสัมพันธ์ Relational Database Management System : RDBMS จะนำไปใช้บนฐานข้อมูลด้วยการให้ผุ้ใช้เห็นภาพของข้อมูลในรูปแบบของตาราง โดยข้อมูลและโครงสร้างข้อมูลมีความอิสระจากตัวโปรแกรม
โครงสร้างข้อมูลเชิงสัมพันธ์ (Relational Database Structure) แอตตริบิวต์ (Attribute) ในแบบจำลองเชิงสัมพันธ์ รีเลชั่นใช้คือตาราง 2 มิติที่ประกอบไปด้วยแถว ซึ่งก็คือเรคอร์ด คอลัมน์ในตารางก็คือ แอตตริบิวต์
โครงสร้างข้อมูลเชิงสัมพันธ์ (Relational Database Structure) โดเมน (Domain) เป็นการนิยามขอบเขตของค่าที่เป็นไปได้ให้กับข้อมูลในแต่ละ Attribute เพื่อป้องกันไม่ให้เกิดการป้อนข้อมูลที่เกินขอบเขตที่กำหนด เช่น การกำหนดให้อายุพนักงานมากกว่า 18 ปี, การกำหนดให้จำนวนเงินเดือนของพนักงานมากกว่า 0, การกำหนดให้เพศของพนักงานแต่ละคนต้องมีค่าเป็นชาย(M)หรือหญิง(F)
โดเมน (Domain) Example M,F > 18 > 0 EmpID Name Sex Age Salary DeptID E001 Peter M 24 55,000 D01 E002 Nicole F 30 12,000 D02 DeptID DName D01 Sale D02 Marketing
โครงสร้างข้อมูลเชิงสัมพันธ์ (Relational Database Structure) ทัพเพิล (Tuple) คือ แถว หรือระเบียน ในตาราง หรือ รีเลชั่น
โครงสร้างข้อมูลเชิงสัมพันธ์ (Relational Database Structure) ดีกรี (Degree) คือ จำนวนแอทตริบิวต์ในรีเลชั่น ดีกรีอาจชี้ให้เห็นถึงความละเอียดของรายการข้อมูลก็ได้
โครงสร้างข้อมูลเชิงสัมพันธ์ (Relational Database Structure) คาร์ดินัลลิตี้ (Cardinality) คือจำนวนแถว หรือจำนวนทัพเพิล ภายในตารางหนึ่ง ๆ คาร์ดินัลลิตี้ชี้ให้เห็นถึงจำนวนรายการข้อมูลในตารางหนึ่ง ๆ
โครงสร้างข้อมูลเชิงสัมพันธ์ (Relational Database Structure) คือ การรวมกลุ่มของรีเลชั่นที่ผ่านการนอร์มัลไลเซซั่น โดยแต่ละรีเลชั่นจะมีการกำหนดชื่อแตกต่างกัน
ศัพท์เทคนิคในฐานข้อมูล Relation Table File Tuple Row Record Attribute Column Field
แบบจำลองข้อมูลเชิงสัมพันธ์ (Relational Database Model) 2030 2519 3007 รหัสเจ้าหน้าที่ ชื่อ-สกุล แผนก เงินเดือน ความชำนาญ จิตใส ใจดี องอาจ สุภาพ ใหม่ รักหมู่ คอมพิวเตอร์ บุคคล 34000 38000 35000 ภาษา C กฏหมายแรงงาน Unix Tuples ทัพเปิล Cardinality คาร์ดินอลลิตี้ Relation รีเลชัน Attribute แอททรบิวท์ Degree ดีกรี รูปที่ 6.1 แสดงองค์ประกอบของรีเลชัน
กฎ 12 ข้อบนฐานข้อมูลเชิงสัมพันธ์ของคอดด์ กฎข้อที่ 1 กฎข่าวสาร (The Information Rule) ข้อมูลต่าง ๆ ในระบบฐานข้อมูลจะถูก นำ เสนอและจัดการ ในรูปแบบตาราง โดยที่อย่างน้อยจะ ต้องประกอบด้วย ชื่อตาราง ชื่อคอลัมน์ คอลัมน์ใดเป็น index หรือ key ชนิดของข้อมูลในแต่ละคอลัมน์ ขอบเขตของค่าข้อมูล ในแต่ละคอลัมน์ (domain)
กฎ 12 ข้อบนฐานข้อมูลเชิงสัมพันธ์ของคอดด์ กฎข้อที่ 2 กฎการการันตีการเข้าถึงข้อมูล (Guaranteed Access Rule) ผู้ใช้จะต้องสามารถเข้าถึงข้อมูลทุกตัว ในตารางได้ด้วยการระบุชื่อตารางค่าของ primary key และ ชื่อคอลัมน์ (Column) ที่ต้องการ และถ้าไม่ได้มีการเปลี่ยนแปลง ข้อมูลในตารางแล้ว การเข้าถึง และเรียกใช้ ข้อมูลจะได้ผลออกมาเพียงค่าเดียว และเหมือนเดิมทุกครั้ง
กฎ 12 ข้อบนฐานข้อมูลเชิงสัมพันธ์ของคอดด์ กฎข้อที่ 3 วิธีแสดงว่าข้อมูลบางรายการยังไม่พร้อมหรือยังไม่มีค่า ให้ใช้ค่า null เพื่อแสดงว่าระบบนี้ไม่มีข้อมูลในส่วนนั้น ในหลายกรณีที่ ข้อมูลในส่วนนั้นยังไม่มีทันที เราสามารถแทนค่านั้นด้วยค่า null ตัวอย่างเช่น ใน ตาราง Employee ถ้าเรารับพนักงานเข้ามาใหม่ โดยยังไม่ได้กำหนดว่าพนักงานคนนี้จะให้สังกัด แผนกใด ค่าของข้อมูลในคอลัมน์ Manager และ Dept ของเรคอร์ดจะมีค่า null
กฎ 12 ข้อบนฐานข้อมูลเชิงสัมพันธ์ของคอดด์ กฎข้อที่ 4 โครงสร้าง จะต้องมีสภาพ โมเดลแบบรีเลชั่นนอล กฎข้อนี้สามารถให้ผู้ใช้เรียกดู และแก้ไขโครงสร้างข้อมูลต่าง ๆ ของระบบได้ด้วยภาษาและวิธีเดียวกับการเรียกดูข้อมูลของระบบ
กฎ 12 ข้อบนฐานข้อมูลเชิงสัมพันธ์ของคอดด์ กฎข้อที่ 5 กฎของภาษา (Comprehensive data sublanguage rule) ระบบ DBMS แบบรีเลชั่น ควร มีภาษาอย่างอย่างน้อย 1 ภาษา ที่สามารถกระทำ การต่อไปนี้ได้ 1. นิยามโครงสร้างระบบข้อมูล 2. นิยามวิว 3. เปลี่ยนแปลงแก้ไขข้อมูล ทั้งด้วยวิธีการใช้คำ สั่งแบบ interactive และ ด้วยการเขียนโปรแกรม 4. ควบคุม integrity ทั้ง integrity ของข้อมูล (entity integrity) ของการอ้างอิงด้วย (referential integrity)
กฎ 12 ข้อบนฐานข้อมูลเชิงสัมพันธ์ของคอดด์ กฎข้อที่ 6 กฎการแก้ไขข้อมูลผ่านทางวิว (View update rule) ผู้ใช้แต่ละคน เห็นระบบข้อมูลในมุมมอง หรือ วิว ที่แตกต่างกัน ระบบฐานข้อมูลต้อง สามารถเปลี่ยนแปลงแก้ไขข้อมูล ตาม มุมมอง หรือ วิวที่แต่ต่างกันได้ ระบบฐานข้อมูล ( DBMS ) จะต้อง สามารถ ตัดสินได้ว่าผู้ใช้สามารถเพิ่มเติมทัพเพิล (tuple หมายถึง แถว หรือ เรคอร์ดในตาราง) ลบทัพเพิล หรือแก้ไขข้อมูลในคอลัมน์ใด ๆ โดยกระทำ ผ่านวิวได้
กฎ 12 ข้อบนฐานข้อมูลเชิงสัมพันธ์ของคอดด์ กฎข้อที่ 7 ความสามารถในการเพิ่ม ลด และแก้ไขข้อมูล ระบบฐานข้อมูล ( DBMS ) ควรจะมีภาษาที่สามารถให้ผู้ใช้ เพิ่ม ลด หรือแก้ไข ข้อมูลในหลายๆ แถว หรือหลาย ๆ คอลัมน์ ได้ด้วยการออกคำ สั่ง เพียงคำ สั่งเดียว ซึ่งในปัจจุบัน ส่วนใหญ่ระบบฐานข้อมูล (DBMS) จะมีภาษาที่ชื่อ SQL เป็นมาตรฐาน
กฎ 12 ข้อบนฐานข้อมูลเชิงสัมพันธ์ของคอดด์ กฎข้อที่ 8 ความเป็นอิสระของข้อมูลในระดับกายภาพ (Physical data independence) ผู้ใช้งาน ระบบฐานข้อมูล ( DBMS ) ไม่จำเป็นจะต้องรับรู้เกี่ยวกับการจัดเก็บข้อมูลจริง รวมทั้ง การเปลี่ยนแปลงวิธีการจัดเก็บเหล่านี้ และการเข้าถึงข้อมูล ด้วยการระบุค่าเช่นเดิมนี้ก็จะได้คำ ตอบเหมือนเดิมเสมอ ไม่ว่าระบบจะได้มีการเปลี่ยนแปลง ทางด้านกายภาพอย่างไร
กฎ 12 ข้อบนฐานข้อมูลเชิงสัมพันธ์ของคอดด์ กฎข้อที่ 9 ความเป็นอิสระของข้อมูลในระดับตรรก (Logical data independence) การเปลี่ยนแปลงข้อมูล ในระดับตรรก รวมถึงการเปลี่ยนแปลงโครงสร้างข้อมูล เช่น เพิ่มเติมคอลัมน์ เข้าไปในตาราง หรือการสร้างตารางใหม่ เป็นต้น การเปลี่ยนแปลง ในระดับตรรก มีผลต่อคำสั่ง และโปรแกรมที่เขียนไว้ก่อนได้มากกว่าการเปลี่ยนแปลงทางกายภาพ เช่น ซอฟต์แวร์ ส่วนใหญ่ยอมให้เราแก้ไขโครงสร้าง (schema) ได้โดยไม่ต้องพิมพ์ข้อมูลลงในตารางใหม่ก็จริง
กฎ 12 ข้อบนฐานข้อมูลเชิงสัมพันธ์ของคอดด์ กฎข้อ 10 ความเป็นอิสระของระบบฐานข้อมูล ( DBMS ) ระบบฐานข้อมูล ( DBMS ) ควรจะสามารถจัดเก็บข้อมูลเกี่ยวกับการควบคุมความคงสภาพ( integrity ) ในทุกรีเลชั่น จะถูกกำหนดด้วยภาษาเชิงสัมพันธ์และจัดเก็บในแคตาล็อกของระบบ
กฎ 12 ข้อบนฐานข้อมูลเชิงสัมพันธ์ของคอดด์ กฎข้อ 11 ความเป็นอิสระของการกระจาย ผู้ใช้ระบบไม่ต้องให้ความสนใจว่า ข้อมูลจะถูก จัดเก็บอย่างไร แม้แต่จะถูกโยกย้าย ไปยังเครื่องคอมพิวเตอร์ เครื่องอื่นที่เชื่อมโยงไว้ก็ตาม
กฎ 12 ข้อบนฐานข้อมูลเชิงสัมพันธ์ของคอดด์ กฎข้อ 12 การไม่ยอมให้ภาษาอื่นทำ ลายกฎ กฎเกณฑ์ต่าง ๆ โดยเฉพาะกฎเกี่ยวกับ integrity จะต้องสามารถใช้ควบคุมความ ถูกต้องของข้อมูลในระบบได้ตลอดเวลา ไม่ว่าผู้ใช้จะเข้าถึงข้อมูลด้วยเครื่องมือใด ๆ (เช่น) ระบบ 4th GL หรือ 3nd GL) ก็ตาม
คุณสมบัติของรีเลชั่น (Properties of Relation) รีเลชั่นต้องมีชื่อกำกับ แตกต่างกัน ห้ามซ้ำกัน แต่ละ Attributeของรีเลชั่นบรรจุได้เพียงค่าเดียว ชื่อในแต่ละ Attribute ต้องแตกต่างกัน ห้ามซ้ำกัน ค่าของข้อมูลใน Attribute เป็นไปตาม Domain การเรียงลำดับของแต่ละ Attribute ไม่มีความสำคัญ แต่ละ Tuple ต้องแตกต่างกัน ห้ามให้ Tuple ซ้ำกัน การเรียงลำดับของแต่ละ Tuple ไม่มีความสำคัญ
คีย์ (Key) Key คือ สิ่งที่ใช้ในการกำหนดความเป็นเอกลักษณ์ของแถวในความสัมพันธ์ ทำให้การเข้าถึงข้อมูลบนฐานข้อมูลเป็นไปได้อย่างรวดเร็ว ทำให้สามารถแยกแยะข้อมูลในฐานข้อมูลให้เป็นไปอย่างถูกต้อง
ประเภทของ Key Superkey คือ attribute หรือเซตของ attribute ซึ่งทำให้สามารถแยกความแตกต่างของ tuples ใน relation ได้ Candidate Key (CK) Attribute หรือกลุ่มของ Attribute ที่ทำให้ข้อมูลในแต่ละแถวไม่ถูกเก็บซ้ำซ้อนกัน การพิจารณาว่า Attribute ใดเป็น CK ต้องมีคุณสมบัติดังนี้ Uniqueness ค่าของ CKไม่ซ้ำกันเลยในแต่ละแถว Minimally จำนวน Attribute ที่รวมกันเป็น CK มีน้อยที่สุด แต่เพียงพอที่จะทำให้ CK นั้นมีค่าไม่ซ้ำกันในแต่ละแถว
3. Primary Key (PK) ประเภทของ Key(ต่อ) แอตทริบิวหรือกลุ่มของแอตทริบิวที่มีค่าไม่ซ้ำกัน ในรีเลชั่นนั้น คุณสมบัติของ primary key ต้องมีค่าเสมอ ค่าซ้ำกันไม่ได้ ในแต่ละรีเลชั่นมี primary key ตัวเดียวเท่านั้น ค่าของ primary key เป็น Null ไม่ได้
Null Value ค่า Null คือ ค่าที่เท่ากับ Null นิยมใส่ให้ข้อมูลที่ยังไม่ทราบค่าหรือไม่รู้ค่าแน่ชัด Null ไม่ใช่ 0 , ไม่ใช่ space สามารถกำหนดให้ค่าของคอลัมน์ใดๆ เป็น Null ได้ ยกเว้น Primary Key
ประเภทของ Key(ต่อ) 4. Secondary Key , Alternate Key เมื่อเลือก candidate key ตัวหนึ่งไปเป็น primary key แล้ว candidate key ตัวที่เหลือจะเรียกว่า Alternate key 5. Foreign Key (FK) เป็นคีย์เพื่อสร้างความสัมพันธ์ระหว่างรีเลชั่น เพื่อกำหนดให้ข้อมูลในรีเลชั่นมีค่าตรงกับ primary key ของอีกรีเลชั่นหนึ่งหรือรีเลชั่นเดิมได้ คุณสมบัติของ Foreign key - รีเลชั่นหนึ่งๆ จะมี Foreign key หรือไม่ก็ได้และถ้ามีจะมีกี่ตัวก็ได้ - Foreign key จะจับคู่กับข้อมูลของ primary key ในอีกรีเลชั่นหนึ่งหรือภายในรีเลชั่นเดียวกันก็ได้ - FK สามารถมีค่าเป็น Null ได้ หรือ ต้องมาจากค่าของคอลัมน์ที่เป็น PK ซึ่ง FK อ้างถึง
ในตารางหนึ่งๆ อาจมี CK ได้มากกว่า 1 ตัว Candidate Key รหัส ชื่อ สกุล บัตรประชาชน โปรแกรมวิชา คณะ 4700001 มณีจันทร์ เฉยพ่วง 1252534581111 คอมธุรกิจ วิทยาการจัดการ 4700002 วายุ รักดี 5552223334444 การจัดการทั่วไป 4700003 แสง ร่ำรวย 8889996665555 จิตวิทยา ครุศาสตร์ Alternate Key Primary Key ในตารางหนึ่งๆ อาจมี CK ได้มากกว่า 1 ตัว
ตัวอย่าง CK ที่มาจาก Attribute เพียงตัวเดียว รหัส ชื่อ สกุล บัตรประชาชน โปรแกรมวิชา คณะ 4700001 มณีจันทร์ เฉยพ่วง 1252534581111 คอมธุรกิจ วิทยาการจัดการ 4700002 วายุ รักดี 5552223334444 การจัดการทั่วไป 4700003 ร่ำรวย 8889996665555 จิตวิทยา ครุศาสตร์ Primary Key แบบที่เป็น Simple Key โดย CK แบบนี้มีชื่อเรียกว่า Simple Key
ตัวอย่าง CK ที่มาจาก Attribute หลายตัว รหัส รหัสวิชา เกรด คะแนน ภาคเรียน 4700001 412001 B 60 1/2547 4700002 412008 C+ 45 A 82 Primary Key แบบที่เป็น Composite Key โดย CK แบบนี้มีชื่อเรียกว่า Composite Key
ตารางพนักงาน Primary Key รหัสพนักงาน ชื่อ แผนก รหัสของหัวหน้างาน 001 Foreign Key + Null รหัสพนักงาน ชื่อ แผนก รหัสของหัวหน้างาน 001 สมบัติ หวังดี บัญชี 002 วีระชาติ งามผิว NULL 003 ปฐมพร สุขสี ตลาด 007 สมฤทัย ใจดี Primary Key