บทที่ 13 การสร้างแบบจำลองข้อมูล


บทที่ 13
การสร้างแบบจำลองข้อมูล
ความหมาย
          แบบจำลองข้อมูลในความหมายของฐานข้อมูล ก็คือการรวมกันของไฟล์ข้อมูลที่มีความสัมพันธ์กัน โดยแต่ละความสัมพันธ์จะเชื่อมโยงกันอย่างมีระบบ ทำให้สามารถเข้าถึงข้อมูลต่างๆภายในระบบได้ ซึ่งเทคโนโลยีฐานข้อมูลแต่ละชนิดก็จะมีการเชื่อมโยงเพื่อการเข้าถึงข้อมูลที่แตกต่างกัน ดังนั้นก็ต้องเลือกใช้แบบจำลองข้อมูลให้เหมาะสมกับฐานข้อมูลนั้นๆเพื่อให้ง่ายต่อการเข้าถึงข้อมูล โดยสามารถแบ่งแยกออกเป็น 5 แบบด้วยกัน คือ
          1.แบบจำลองข้อมูลฐานลำดับขั้น (Hierarchical Database Model) ข้อมูลจะถูกจัดเก็บไว้เป็นโครงสร้างแบบนล่าง ลักษณะคล้ายๆโครงสร้างต้นไม้ (Tree Structure) มีการสืบทอดเป็นลำดับชั้น โหนดสูงสุดจะเรียกว่าราก (Root) โหนดระดับล่างลงมาจะเรียกว่า (Leaves) เรียกฐานข้อมูลในระดับนี้อีกชื่อหนึ่งว่าซิกเมนต์ (Segment) เปรียบได้กับเรคอร์ดในระบบแฟ้มข้อมูล เซกเมนต์ที่อยู่ระดับล่างลงไปก็คือเซกเมนต์ก่อนหน้า ความสัมพันธ์เป็นแบบ 1:กล่าวคือ โหนดบนจะแตกโหนดลูกได้หลายๆโหนด ในขณะที่โหนดลูกจะมีโหนดบนเพียงโหนดเดียวเท่านั้น

รูปภาพแบบจำลองข้อมูลฐานลำดับขั้น
                 ข้อดี
                  - รูปแบบโครงสร้างเข้าใจง่าย 
                  - โครงสร้างซับซ้อนน้อยที่สุด เหมาะกับข้อมูลที่มีความสัมพันธ์แบบ 1:M
                  - ป้องกันความปลอดภัยในข้อมูลที่ดี เนื่องจากต้องอ่านข้อมูลที่เป็นต้นกำเนิดก่อนทำให้ข้อมูลมีความคงสภาพที่ดี
                  - เหมาะกับข้อมูลที่เรียงลำดับต่อเนื่อง
               ข้อเสีย
                  - ยากต่อการพัฒนา ผู้พัฒนาต้องมีความเข้าใจโครงสร้างทางกายภาพของข้อมูลที่จัดเก็บอยู่ภายในฐานข้อมูล
                  - มีข้อจำกัดด้านการนำไปใช้ เช่น ไม่รองรับความสัมพันธ์แบบ M:N   
                  - กรณีโครงสร้างเปลี่ยน แอปพลิเคชั่นโปรแกรมทั้งหมดก็ต้องเปลี่ยนตามด้วย เนื่องจากขาดอิสระในโครงสร้าง
                  - การเรียกใช้ข้อมูลต้องผ่าน Root เสมอ เวลาค้นหาข้อมูลก็ต้องค้นหาทั้งแฟ้ม
                  - ไม่มีภาษที่ใช้สำหรับจัดการข้อมูลใน DBMS
                  - ขาดมาตรฐานการรองรับที่ชัดเจน
           2.แบบจำลองข้อมูลเครือข่าย (Network Database Model) เป็นโครงสร้างคล้ายกับโครงสร้างแบบลำดับขั้น รองรับความสัมพันธ์ของข้อมูลที่ซับซ้อนขึ้น มีประสิทธิภาพสูงกว่าลำดับขั้น โหนดลูกแต่ละโหนดสามารถมีโหนด root ได้หลายโหนด
               ข้อดี
                 - มีหลักการที่ง่าย ใกล้เคียงกับแบบลำดับขั้น
                 - สนับสนุนความสัมพันธ์แบบ M:N
                 - การเข้าถึงข้อมูลมีความยืดหยุ่นสูงกว่าแบบลำดับขั้นและแฟ้มข้อมูล
                 - ความซ้ำซ้อนในข้อมูลเกิดขึ้นน้อยกว่าแบบลำดับขั้น
              ข้อเสีย
                 - การป้องกันความปลอดภัยของข้อมูลมีน้อย เนื่องจากสามารถเข้าถึงเรคอร์ดได้โดยตรง
                 - ใช้ตัวชี้วัดตำแหน่งแบบพอยต์เตอร์ทำให้สิ้นเปลืองในหน่วยความจำ
                 - การเปลี่ยนแปลงโครงสร้างมีความยุ่งยาก
           3.แบบจำลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) เป็นแบบจำลองข้อมูลที่ใช้กันอย่างแพร่หลายมากที่สุด ข้อมูลจะจัดเก็บในรูปแบบตาราง 2 มิติ คือ แถว(Row) คอลัมน์(Column) มีการเชื่อมโยงความสัมพันธ์ต่างๆ โดยอาศัยคีย์ในคอลัมน์ที่เหมือนกันของตารางต่างๆ เป็นตัวเชื่อมโยง สามารถกำหนดดัชนีเพื่อเข้าถึงข้อมูลได้อย่างรวดเร็ว
รูปภาพแบบจำลองฐานข้อมูลเชิงสัมพันธ์
              ข้อดี
                 - มีความเป็นอิสระในโครงสร้าง โดยถ้ามีการเปลี่ยนแปลงโครงสร้างตารางจะไม่ส่งผลกระทบต่อแอปพลิเคชั่นโปรแกรมที่ใช้งาน
                 - การนำเสนอข้อมูลในรูปแบบตาราง ทำให้ง่ายต่อการออกแบบฐานข้อมูล การนำไปใช้ และการจัดการ
                 - การเรียกใช้ข้อมูลสามารถเรียกใช้ได้ด้วยคำสั่ง SQL
                 - มีระบบความปลอดภัยที่ดี เนื่องจากไม่ทราบโครงสร้างของข้อมูลจริงๆในการจัดเก็บ
                 - DBMS ที่พัฒนาล้วนรองรับ
              ข้อเสีย
                 - มีค่าใช้จ่ายในระบบค่อนข้างสูง เนื่องจากอุปกรณ์ ฮาร์ดแวร์/ซอฟต์แวร์ ต้องมีประสิทธิภาพ
                 - การแก้ไขปรับปรุงแฟ้มข้อมูลทำได้ยากเนื่องจากไม่ทราบถึงกระบวนการจัดเก็บข้อมูลภายในฐานข้อมูล
           4.แบบจำลองข้อมูลเชิงวัตถุ (Object-Oriented Database Model) เกิดจากแนวคิดการเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Programming :  OOP) สามารถจัดการกับข้อมูลชนิดต่างๆที่ซับซ้อนได้ดี เช่น ภาพ เสียง วิดีโอ เป็นต้น มักนำไปใช้กับหน่วยงานขนาดใหญ่และต้องมีผู้เชี่ยวชาญในการจัดการกับข้อมูลที่ซับซ้อน
              ข้อดี
                 - คุณสมบัติด้านการสืบทอดทำให้ข้อมูลมีความคงสภาพสูง
                 - สามารถนำกลับมาใช้ใหม่ได้
                 - การนำเสนอเป็นรูปแบบ Visual ทำให้อธิบายหัวข้อความหมายได้ดี
              ข้อเสีย
                 - ต้องพึ่งพาผู้เชียวชาญโดยเฉพาะ และมีค่าใช้จ่ายเกี่ยวกับระบบค่อนข้างสูง
                 - ยังไม่มีมาตรฐานรองรับที่ชัดเจนเมื่อเทียบกับแบบจำลองข้อมูลเชิงสัมพันธ์
                 - ผู้เชียวชาญส่วนใหญ่จะคุ้นกับเทคโนโลยีฐานข้อมูลเชิงสัมพันธ์มากกว่า
           5.แบบจำลองข้อมูลแบบมัลติไดแมนซั่น (Multidimensional Database Model) เป็นแบบจำลองข้อมูลที่ใช้งานกับคลังข้อมูล นำเสนอข้อมูลในรูปแบบหลายมิติ เพื่อทำให้สามารถนำข้อมูลมาวิเคราะห์เพื่อหาปัญหาและสร้างวิธีการ ในการแก้ปัญหาดังกล่าว เช่น การนำเสนอข้อมูลการขายผลิตภัณฑ์ในช่วงเวลาต่างๆของพนักงานแต่ละคน และข้อมูลพื้นที่การขายมาวิเคราะห์ 
          ส่วนประกอบของแบบจำลองข้อมูล
           ส่วนที่ 1 ส่วนโครงสร้าง (Structural) เป็นกลุ่มที่ประอบไปด้วยสัญลักษณ์รวมทั้งกฎระเบียบให้เข้าใจตรงกันในการสร้างฐานข้อมูล เช่น การจัดเก็บข้อมูลในรูปแบบของตาราง ที่จะต้องประอบไปด้วยไปด้วย แถวและคอลัมน์
          ส่วนที่ 2 ส่วนปรับปรุง (Manipulative) เป็นส่วนที่ใช้ในการกำหนดชนิดของการดำเนินงานต่างๆ ที่เกี่ยวข้องกับข้อมูล โดยจะประกอบไปด้วย การอัปเดตข้อมูล ปัจจุบันจะใช้คำสั่ง SQL ในการจัดการข้อมูล
          ส่วนที่ 3 ส่วนกฎความคงสภาพ (a set of integrity rules) เป็นส่วนของกฎที่ใช้ในการควบคุมความถูกต้องของข้อมูล เพื่อให้เกิดความมั่นใจในความถูกต้องและความแน่นอนของข้อมูลที่บันทึกลงในฐานข้อมูล
         ประเภทของแบบจำลองข้อมูล
         แบบจำลองข้อมูล คือ เทคนิคที่นำมาใช้จัดการโครงสร้างและความสัมพันธ์ระหว่างข้อมูลในระบบ แบ่งออกเป็น 2 รูปแบบ คือ
         1. แบบจำลองเชิงแนวคิด (Conceptual Data Models) สำหรับแสดงลักษณะโดยรวมของข้อมูลทั้งหมดในระบบ นำเสนอข้อมูลในรูปแบบของแผนภาพหรือไดอะแกรม (เอ็นติตี้,ความสัมพันธ์) จุดประสงค์เพื่อนำเสนอให้ผู้ใช้กับผู้ออกแบบมีความเข้าใจตรงกัน แบบจำลองจะไม่ขึ้นกับ DBMS สามารถนำไปดัดแปลงให้เข้ากับ DBMS ได้ในภายหลัง เช่น E-R Diagram
         2.แบบจำลองเพื่อการนำไปใช้ (Implementation Data Models) ใช้อธิบายโครงสร้างข้อมูลของฐานข้อมูล จะอิงกับระบบจัดการฐานข้อมูลที่ใช้ เทียบได้กับชนิดของภาษาโปรแกรมซึ่งสามารถสร้างด้วยภาษาระดับสูง ภาษาระดับต่ำ หรือ ภาษาเครื่อง แบ่งออกเป็น 5 ประเภทตารูปแบบของแต่ละโครงสร้างของฐานข้อมูล
         คุณสมบัติของแบบจำลองข้อมูล
          1.แบบจำลองข้อมูลที่ดีต้องง่ายต่อความเข้าใจ ควรใช้กฎทั่วๆไป โดยมีข้อมูลแอตตริบิวต์ที่อธิบายในรายละเอียดของแต่ละเอ็นติตี้ 
          2.ต้องมีสาระสำคัญและไม่ซ้ำซ้อน หมายถึงแอตตริบิวต์ในแต่ละเอ็นติตี้ไม่ควรมีข้อมูลซ้ำซ้อน ซึ่งอาจจะใช้วิธีการสร้างเป็นคีย์นอก (foreign key) เพื่อใช้ในการอ้างอิงข้อมูลแทน
          3.ต้องมีความยืดหยุ่นและง่ายต่อการปรับปรุงในอนาคต แบบจำลองไม่ควนขึ้นกับตัวแอปพลิเคชั่น โปรแกรม และสนับสนุนการเปลี่ยนแปลงในโครงสร้างซึ่งจะไม่ส่งผลกระทบต่อโปรแกรมที่ใช้งานอยู่ หรืออาจกล่าวได้ว่าข้อมูลมีความเป็นอิสระ ไม่ยึดติดกับแอปพลิเคชั่น
                 พื้นฐานการสร้างแบบจำลองข้อมูล (Data Model Basic Building Blocks)
                 เอ็นติตี้ (Entities) องค์ประกอบต่างๆที่เกี่ยวข้องกับข้อมูล เช่น บุคคล สถานที่ สิ่งของ หรือ เหตุการณ์ต่างๆ โดยจะถูกเก็บรวบรวมไว้เพื่อการจัดเก็บในฐานข้อมูล เอ็นติตี้ ตัวอย่างเช่น เอ็นติตี้ลูกค้า เอ็นติตี้สินค้า เอ็นติตี้เที่ยวบิน เป็นต้น
                 แอตตริบิวต์ (Attributes) คือ คุณลักษณะของเอ็นติตี้ เช่น เอ็นติตี้ลูกค้า ที่ประกอบไปด้วยแอตตริบิวต์ รหัสลูกค้า ชื่อ-นามสกุล ที่อยู่ เบอร์โทรศัพท์ วงเงินเครดิต หรือเป็น ฟิลด์ในระบบไฟล์นั้นเอง
                 ความสัมพันธ์ (Relationships) คือ ความสัมพันธ์ระหว่างเอ็นติตี้ โดยแบบจำลองข้อมูลจะแบ่งความสัมพันธ์ออกเป็น 3 ชนิดด้วยกัน คือ
                       1.ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (one-to-one) เป็นความสัมพันธ์ที่แต่ละเอ็นติตี้มีความสัมพันธ์กับข้อมูล B เพียงรายการเดียว จะใช้สัญลักษณ์ 1:เช่น นักศึกษาจะมีรหัสนักศึกษาได้เพียงรหัสเดียว ในทางกลับกันรหัสนักศึกษาก็จะเป็นของนักศึกษา ได้เพียงคนเดียวเท่านั้น



                       2.ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (one-to many) เป็นความสัมพันธืที่แต่ละเอ็นติตี้ A มีความสัมพันธ์กับอีกเอ็นติตี้ B มากกว่าหนึ่งรายการและในทางกลับกัน เอ็นติตี้ B มีความสัมพันธ์กับเอ็นติตี้ A เพียงหนึ่งรายการ จะใช้สัญลักษณ์ 1:M เช่น อาจรย์หนึ่งคนมีนักศึกษาที่ปรึกษาได้หลายคน แต่นักศึกษาในแต่ละคนจะมีอาจารย์ที่ปรึกษาได้เพียงคนเดียว 


แสดงความสัมพันธ์แบบ 1:M

                          3.ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (many-to-many) เป็นความสัมพันธ์ที่แต่ละเอ็นติตี้มีความสัมพันธ์กับข้อมูล B มากกว่าหนึ่งรายการและในทางกลับกันเอ็นติตี้ B มีความสัมพันธ์กับเอ็นติตี้A  มากกว่าหนึ่งรายการเช่นกัน จะใช้สัญลักษณ์ M:เช่นนักศึกษาลงทะเบียนเรียนได้หลายวิชาและวิชาหนึ่งวิชาก็มีนักศึกษาลงทะเบียนเรียนได้หลายคน 

แสดงความสัมพันธ์แบบ M:N
                
               ข้อบังคับ (Constraints) คือกฎเกณฑ์เพื่อการบรรจุข้อมูล มีวัตถุประสงค์เพื่อที่จะให้การจัดเก็บข้อมูลมีความถูกต้องตรงกับความเป็นจริง ข้อมูลมีความสอดคล้องกัน เช่น นักศึกษาแต่ละคนสามารถลงทะเบียนเรียนได้หลายหน่วยกิต แต่การลงหน่วยกิตรวมต้องไม่เกิน 21 หน่วยกิต
ฐานข้อมูลเชิงสัมพันธ์
          ฐานข้อมูลเชิงสัมพันธ์ เกิดขึ้นในปี ค.ศ.1970 โดย E.F. Codd มีพื้นฐานจากทฤษฎีทางคณิตศาสตร์ของรีเลชั่น ในบทความวิชาการเรื่อง A Relation Model of Data for Large Shared Data Bank เป็นที่ยอมรับในวงการฐานข้อมูลจนถึงปัจจุบัน สามารถแก้ปัญหาที่เกิดข้นกับฐานข้อมูลแบบลำดับขั้นและแบบเครือข่าย โดยใช้โครงสร้างข้อมูลเชิงตรรกะ ข้อมูลทั้งหมดจะอยู่ในฐานข้อมูลเชิงสัมพันธ์และเป็นรูปแบบเดียวกันหมด คือ รีเลชั่น สนับสนุนการเข้าถึงข้อมูลโดยใช้ คิวรี จัดการเรื่องความสัมพันธ์ของข้อมูลระหว่างเอ็นติตี้โดยการใช้เนื้อหา หรือค่าของแอตตริบิวต์ในเอ็นติตี้นั้นๆ แทนที่จะใช้พอยเตอร์


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

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

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

แสดงแอตทริบิวต์

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

แสดงดีกรีและคาร์นัลลิตี้

          เงื่อนไข (constraints)
เงื่อนไขในฐานข้อมูล หมายถึง การกำหนดคุณสมบัติเพื่อจำกัดว่าข้อมูลชนิดใดบ้างที่จะสามารถนำมาจัดเก็บไว้ได้ในแต่ละคอลัมน์ของฐานข้อมูล
แบบจำลองข้อมูลเชิงสัมพันธ์ มีการกำหนดเงื่อนไขไว้โดยธรรมชาติน้อยมาก แต่ผู้ใช้สามารถกำหนดเงื่อนไขต่างๆ ได้ตามที่ต้องการโดยใช้กลุ่มคำสั่ง DDL
เงื่อนไขโดยทั่วไปของรีเลชันในระบบฐานข้อมูลเชิงสัมพันธ์ คือ 
1.ลำดับของคอลัมน์ไม่มีความสำคัญ
2.ลำดับของแถวหรือทับเพิลไม่มีความสำคัญ
3.รีเลชั่นต้องประกอบด้วยทับเพิลที่ไม่ซ้ำกัน
          คีย์ (key)
           คีย์ หมายถึง .แอตทริบิวต์ที่สามารถใช้ในการบ่งบอกความแตกต่างของแต่ละทับเพิลในรีเลชันได้ แอตทริบิวส์ที่เป็นส่วนหนึ่งของคีย์เรียกว่า คีย์แอตทริบิวต์ และคีย์แอตทริบิวต์ที่เกิดจากการนำเอาหลายแอตทริบิวต์มารวมกัน เรียกว่า คอมโพสิตคีย์ (composite key) คีย์ต่างๆที่ใช้ในฐานข้อมูลมีด้วยกันหลายชนิดด้วยกัน คือ
                ซุปเปอร์คีย์ (super key) คือ แอตทริบิวต์หรือกลุ่มของแอทตริบิวต์ที่สามารถบ่งบอกความแตกต่างของแต่ละทับเพิลในรีเลชัน ดังนั้นในหนึ่งรีเลชันจะมีซุปเปอร์คีย์ได้หลายตัว เช่น รีเลชันนักศึกษา

นักศึกษา(รหัสนักศึกษา,ชื่อ,ที่อยู่,วันเดือนปีเกิด,เลขที่บัตรประชาชน)
                     ซุปเปอร์คีย์ที่ได้
                        - รหัสนักศึกษา
                        - รหัสนักศึกษา,ชื่อ
                        - รหัสนักศึกษา,ชื่อ,ที่อยู่ 
                        - เลขที่บัตรประชาชน
                 แคนดิเดดคีย์ (candidate key)  คือซุปเปอร์คีย์ที่น้อยที่สุดที่สามารถบ่งบอกความแตกต่างของแต่ละทับเพิลในรีเลชันได้ กล่าวคือซุปเปอร์คีย์ที่ไม่มีสับเซต ซึ่งก็อาจมีได้หลายตัวเช่นกัน จากตัวอย่างรีเลชันนักศึกษา
                            นักศึกษา(รหัสนักศึกษา,ชื่อ,ที่อยู่,วันเดือนปีเกิด,เลขที่บัตรประชาชน)
                      แคนดิเดดคีย์
                          - รหัสนักศึกษา
                          - เลขที่บัตรประชาชน
                  ส่วนกลุ่มของแอตทริบิวต์  (รหัสนักศึกษา,ชื่อ) และ (รหัสนักศึกษา,ชื่อ,ที่อยู่) ไม่สามารถนำมาเป็นแคนดิเดดคีย์ได้ เนื่องจากมี รหัสนักศึกษา เป็นสับเซตของซุปเปอร์คีย์
                  คีย์หลัก (primary key) คือ แคนดิเดดคีย์ที่ถูกเลือกเพื่อใช้บอกความแตกต่างของแต่ละทับเพิลในรีเลชัน แต่ต้องไม่เป็นค่าว่าง จากตัวอย่างรีเลชันนักศึกษา มีแอตทริบิวต์ที่เป็นแคนดิเดดคีย์อยู่ 2 ตัว คือ รหัสนักศึกษา และ รหัสบัตรประชาชน แต่ใน1รีเลชันจะมีคีย์หลักได้เพียงหนึ่งตัวเท่านั้น เนื่องจากในรีเลชันจำเป็นต้องมีคีย์หลัก ดังนั้นในการออกแบบ ผู้ออกแบบจะต้องเลือกแคนดิเดดคีย์ 1ตัว เพื่อกำหนดให้เป็นคีย์หลัก คีย์หลักอาจเกิดจากแอตทริบิวต์เดียวหรือหลายแอตทริบิวต์รวมกันได้ ซึ่งถ้าในกรณีที่คีย์หลักเกิด จากหลายแอตทริบิวต์ ถ้ามีการยกเลิกไม่ใช่แอตทริบิวต์หนึ่งไป จะทำให้คุณสมบัติของการไม่ซ้ำกันของแต่ละทับเพิลเสียไปด้วย
                   คีย์นอก (secondary key) คือ แอตทริบิวต์หรือกลุ่มของแอตทริบิวต์ ที่ใช้ในการเข้าถึงหรือค้นคืนข้อมูลในฐานข้อมูล ซึ่งไม่จำเป็นต้องเป็นเอกลักษณ์ สามารถมีค่าซ้ำกันได้ เช่น ในการเข้าถึงข้อมูลของพนักงานโดยต้องการเลือกเฉพาะพนักงานที่มีรหัสไปรษณีย์ตามที่กำหนดเท่านั้น ดังนั้นสามารถใช้รหัสไปรษณีย์เป็นคีย์รองในการเข้าถึงข้อมูลได้
          อินทิกรีตี้ (Integrity)
          อินทิกรีตี้ หมายถึง การควบคุมความถูกต้องต่างๆในระบบฐานข้อมูล ซึ่งในระบบฐานข้อมูลเชิงสัมพันธ์สามารถแบ่งการควบคุมได้ต่างๆ ดังนี้
               เอนติตี้อินทกรีตี้ (entity integrity) เป็นการกำหนดว่าแต่ละเอ็นติตี้ในแต่ละรีเลชั่นต้องมีค่าไม่ซ้ำกัน สามารถทำได้โดยการกำหนดให้ทุกรีเลชันต้องมีคีย์หลัก และคีย์หลักต้องไม่เป็นค่าว่าง
               เรเฟอเรนเชียลเอ็นติกรีตี้ (referential integrity) เป็นกระบวนการตรวจสอบเพื่อหลีกเลี่ยงการป้อนข้อมูลที่ผิดพลาด หรือป้องกันการลบทัปเพิลใดๆทิ้งไปทั้งที่มีคีย์นอกจากรีเลชันอื่นมาอ้างอิงถึงอยู่สามารถกำหนดคีย์นอกจะต้องมีค่าเป็น NULL หรือไม่ต้องเป็นค่าที่ตรงกับค่าที่มีอยู่ในคีย์หลักของรีเลชันที่อ้างอิงอยู่



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

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

ชนิดของ Attribute สามารถแบ่งออกได้หลายลักษณะดังนี้
         Simple และ Composite
       Simple Attribute คือ Attribute ที่ไม่สามารถแยกออกเป็นส่วนย่อยได้เช่น รหัส
       Composite Attribute คือ Attribute ที่สามารถแยกออกเป็นส่วนย่อยได้เช่น ชื่อ อาจจะประกอบด้วยชื่อต้นและชื่อสกุล เป็นต้น โดยยกตัวอย่างเช่น


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


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


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


ระดับชั้นของความสัมพันธ์ (Relationships Degree) จะบอกถึงความสัมพันธ์ระหว่างเอนทิตี้ มีดังนี้
      ความสัมพันธ์เอนทิตี้เดียว (Unary Relationships) หมายถึง เอนทิตี้หนึ่ง ๆ จะมีความสัมพันธ์กับตัวมันเอง
      ความสัมพันธ์สองเอนทิตี้ (Binary Relationships) หมายถึง เอนทิตี้สองเอนทิตี้จะมีความสัมพันธ์กัน
      ความสัมพันธ์สามเอนทิตี้(Ternary Relationships) หมายถึง เอนทิตี้สามเอนทิตี้มีความสัมพันธ์กัน




แสดงตัวอย่างของระดับชั้นของข้อความ
          
การระบุตำแหน่งความสัมพันธ์ระหว่างเอนทิตี้ (Connectivity)
การระบุตำแหน่งความสัมพันธ์ระหว่างเอนทิตี้ (Connectivity) ว่าเป็นแบบหนึ่งต่อหนึ่ง (One to One Relationships) แบบหนึ่งต่อกลุ่ม (One to Many Relationships) หรือ แบบกลุ่มต่อกลุ่ม (Many to Many Relationships) นั้นจะใช้ Connectivity เพื่อระบุตำแหน่ง 1, M หรือ N ไว้ข้างใดของเอนทิตี้

แสดงความสัมพันธ์แบบ One to One Relationships

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

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

แสดงความสัมพันธ์แบบ Many to Many Relationships

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

แสดงความสัมพันธ์แบบกลุ่มต่อหนึ่ง

การแปลง E-R MODEL ให้อยู่ในรูปแบบโครงสร้างฐานข้อมูล
การแปลง E-R MODEL ให้อยู่ในรูปแบบโครงสร้างฐานข้อมูลหรือตารางของข้อมูลมีกฎดังนี้
       1.แปลงเอนทิตี้ที่มีความสัมพันธ์แบบหนึ่งต่อหนึ่ง  (One to One Relationships) ไปเป็นตาราง โดยแทนที่หนึ่งเอนทิตี้เป็นหนึ่งตาราง Attribute แต่ละเอนทิตี้เป็นฟิลด์หรือคอลัมน์แต่ละตาราง
       2.แปลงเอนทิตี้ที่มีความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One to Many Relationships) ไปเป็นตาราง โดยด้านเอนทิตี้ที่เป็นตัวเลข 1 นั้นสามารถแปลงเป็นตารางได้ทันที Attribute ของเอนทิตี้นั้นจะเป็นฟิลด์ของตารางทันที ส่วนด้านเอนทิตี้ที่เป็นตัวอักษร M ให้แผลงเอนทิตี้เป็นตารางโดยมี Attribute ของเอนทิตี้ตัวมันเอง และนำคีย์หลักของเอนทิตี้ที่เป็นเลข 1 มาใส่ฟิลด์ของตารางนั้นด้วย
       3.แปลงเอนทิตี้ที่มีความสัมพันธ์แบบกลุ่มต่อกลุ่ม  (Many to Many Relationships) ไปเป็นตารางโดยสร้างเอนทิตี้กลาง (Composite Entity) เอนทิตี้กลางจะนำคีย์หลักของทั้งสองตารางมาเป็นคีย์หลักของเอนทิตี้กลางด้วย ส่วนเอนทิตี้ทั้งสองที่อยู่ระหว่างเอนทิตี้กลางก็แปลงเป็นตารางได้ โดยนำเอา Attribute ของแต่ละเอนทิตี้ไปเป็นฟิลด์ (ทำตามกฎของความสัมพันธ์แบบหนึ่งต่อหนึ่ง

 ตัวอย่างของระบบซื้อขายรถยนต์

สัญลักษณ์
ความหมาย
สัญลักษณ์
ความหมาย
http://learningsystem.6te.net/assets/images/clip_image001_0001.gif
Entity set
http://learningsystem.6te.net/assets/images/clip_image002_0001.gif
Discriminator key attribute
http://learningsystem.6te.net/assets/images/clip_image003_0001.gif
Weak entity set
http://learningsystem.6te.net/assets/images/clip_image004_0001.gif
Composite attribute
http://learningsystem.6te.net/assets/images/clip_image005_0008.gif
Relationship set
http://learningsystem.6te.net/assets/images/clip_image006_0002.gif
Derived attribute
http://learningsystem.6te.net/assets/images/clip_image007_0004.gif
Identifying relationship set
http://learningsystem.6te.net/assets/images/clip_image008_0002.gif
Key attribute
http://learningsystem.6te.net/assets/images/clip_image009_0003.gif
Attribute
http://learningsystem.6te.net/assets/images/clip_image010_0003.gif
Multi valued attribute
แสดงสัญลักษณ์ของ E-RMODEL

สรุป
การสร้างแบบจำลองฐานข้อมูล (Data Modeling)
แบบจำลองฐานข้อมูลแบ่งออกเป็น 4 แบบ คือ
1. ฐานข้อมูลแบบลำดับชั้น (Hierarchical Model) เป็นฐานข้อมูลที่นำเสนอข้อมูลและความสัมพันธ์ระหว่างข้อมูลในรูปแบบของ โครงสร้างต้นไม้ (tree structure) เป็นโครงสร้างลักษณะคล้ายต้นไม้เป็นลำดับชั้น ซึ่งแตกออกเป็นกิ่งก้านสาขา หรือที่เรียกว่า เป็นการจัดเก็บข้อมูลในลักษณะความสัมพันธ์แบบ พ่อ-ลูก (Parent-Child Relationship Type : PCR Type)
คุณสมบัติของฐานข้อมูลแบบลำดับขั้น
1. Record ที่อยู่ด้านบนของโครงสร้างหรือพ่อ(Parent Record) นั้นสามารถมีลูกได้มากกว่าหนึ่งคน แต่ลูก (Child Record) จะไม่สามารถมีพ่อได้มากกว่า 1 คนได้
2. ทุก Record สามารถมีคุณสมบัติเป็น Parent Record(พ่อ) ได้
3. ถ้า Record หนึ่งมีลูกมากกว่าหนึ่ง Record แล้ว การลำดับความสัมพันธ์
ของ Child Record จะลำดับจากซ้ายไปขวา
ลักษณะเด่น
• เป็นระบบฐานข้อมูลที่มีระบบโครงสร้างซับซ้อนน้อยที่สุด
• มีค่าใช้จ่ายในการจัดสร้างฐานข้อมูลน้อย
• ลักษณะโครงสร้างเข้าใจง่าย
• เหมาะสำหรับงานที่ต้องการค้นหาข้อมูลแบบมีเงื่อนไขเป็นระดับและออกงานแบบเรียงลำดับต่อเนื่อง
• ป้องกันระบบความลับของข้อมูลได้ดี เนื่องจากต้องอ่านแฟ้มข้อมูลที่เป็นต้นกำเนิดก่อน
ข้อเสีย
Record ลูก ไม่สามารถมี record พ่อหลายคนได้ เช่น นักศึกษาสามารถลงทะเบียนได้มากกว่า 1 วิชา
• มีความยืดหยุ่นน้อย เพราะการปรับโครงสร้างของ Tree ค่อนข้างยุ่งยาก
• มีโอกาสเกิดความซ้ำซ้อนมากที่สุดเมื่อเทียบกับระบบฐานข้อมูลแบบโครงสร้างอื่น
• หากข้อมูลมีจำนวนมาก การเข้าถึงข้อมูลจะใช้เวลานานในการค้นหา เนื่องจากจะต้องเข้าถึงที่ต้นกำเนิดของข้อมูล

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

3. ฐานข้อมูลเชิงสัมพันธ์ (Relational Model) เป็นการจัดข้อมูลในรูปแบบของตาราง 2 มิติ คือมี แถว (Row) และ คอลัมน์ (Column) โดยการเชื่อมโยงข้อมูลระหว่างตาราง จะใช้ Attribute ที่มีอยู่ทั้งสองตารางเป็นตัวเชื่อมโยงข้อมูล
ข้อดี
• เหมาะกับงานที่เลือกดูข้อมูลแบบมีเงื่อนไขหลายคีย์ฟิลด์ข้อมูล
• ป้องกันข้อมูลถูกทำลายหรือแก้ไขได้ดี เนื่องจากโครงสร้างแบบสัมพันธ์นี้ผู้ใช้จะไม่ทราบว่าการเก็บข้อมูลในฐานข้อมูลอย่างแท้จริงเป็นอย่างไร จึงสามารถป้องกันข้อมูลถูกทำลายหรือถูกแก้ไขได้ดี
• การเลือกดูข้อมูลทำได้ง่าย มีความซับซ้อนของข้อมูลระหว่างแฟ้มต่าง ๆ น้อยมาก อาจมีการฝึกฝนเพียงเล็กน้อยก็สามารถใช้ทำงานได้
ข้อเสีย
• มีการแก้ไขปรับปรุงแฟ้มข้อมูลได้ยากเพราะผู้ใช้จะไม่ทราบการเก็บข้อมูลในฐานข้อมูลอย่างแท้จริงเป็นอย่างไร
• มีค่าใช้จ่ายของระบบสูงมากเพราะเมื่อมีการประมวลผลคือ การอ่าน เพิ่มเติม ปรับปรุงหรือยกเลิกระบบจะต้องทำการสร้างตารางขึ้นมาใหม่ ทั้งที่ในแฟ้มข้อมูลที่แท้จริงอาจจะมีการเปลี่ยนแปลงเพียงเล็กน้อย

4. ฐานข้อมูลเชิงวัตถุ (Object Oriented Model)
• ใช้ในการประมวลผลข้อมูลทางด้านมัลติมีเดีย คือ มีข้อมูลภาพ และเสียง หรือข้อมูลแบบมีการเชื่อมโยงแบบเว็บเพจ ซึ่งไม่เหมาะสำหรับ Relation Model
• มองสิ่งต่างๆ เป็น วัตถุ (Object)
วัตถุประสงค์ของแบบจำลองข้อมูล
• เพื่อนำแนวคิดต่างๆ มาเสนอให้เกิดเป็นแบบจำลอง
• เพื่อนำเสนอข้อมูลและความสัมพันธ์ระหว่างข้อมูลในรูปแบบที่เข้าใจง่าย เช่นเดียวกันการดูแปลนบ้านที่จะทำให้เราเข้าใจโครงสร้างบ้านได้เร็ว
• เพื่อใช้ในการสื่อสารระหว่างผู้ออกแบบฐานข้อมูลกับผู้ใช้ให้ตรงกัน
ประเภทของแบบจำลองข้อมูล
• ประเภทของแบบจำลองข้อมูล แบ่งออกเป็น 2 ประเภท คือ
1. Conceptual Models คือ แบบจำลองแนวคิดที่ใช้พรรณนาลักษณะโดยรวมของข้อมูลทั้งหมดในระบบ โดยนำเสนอในลักษณะของแผนภาพ ซึ่งประกอบด้วยเอนทีตีต่างๆ และความสัมพันธ์ โดยแบบจำลองเชิงแนวคิดนี้ต้องการนำเสนอให้เกิดความเข้าใจระหว่างผู้ออกแบบและผู้ใช้งาน คือเมื่อเห็นภาพแบบจำลองดังกล่าวก็จะทำให้เข้าถึงข้อมูลชนิดต่างๆ
2. Implementation Models เป็นแบบจำลองที่อธิบายถึงโครงสร้างของฐานข้อมูล
คุณสมบัติของแบบจำลองข้อมูลที่ดี
• 1. ง่ายต่อความเข้าใจ
• 2. มีสาระสำคัญและไม่ซ้ำซ้อน หมายถึง แอตทริบิวต์ในแต่ละเอนทีตี้ไม่ควรมีข้อมูลซ้ำซ้อน
• 3. มีความยืดหยุ่นและง่ายต่อการปรับปรุงในอนาคต กล่าวคือแบบจำลองข้อมูลที่ดีไม่ควรขึ้นอยู่กับแอปพลิเคชันโปรแกรม และสนับสนุนการเปลี่ยนแปลงในโครงสร้าง ซึ่งจะไม่ส่งผลกระทบต่อโปรแกรมที่ใช้งานอยู่ นั่นคือความเป็นอิสระในข้อมูล

5.แบบจำลองข้อมูลแบบมัลติไดแมนซั่น (Multidimensional Database Model) เป็นแบบจำลองข้อมูลที่ใช้งานกับคลังข้อมูล นำเสนอข้อมูลในรูปแบบหลายมิติ เพื่อทำให้สามารถนำข้อมูลมาวิเคราะห์เพื่อหาปัญหาและสร้างวิธีการ ในการแก้ปัญหาดังกล่าว เช่น การนำเสนอข้อมูลการขายผลิตภัณฑ์ในช่วงเวลาต่างๆของพนักงานแต่ละคน และข้อมูลพื้นที่การขายมาวิเคราะห์
บรรณานุกรม
นางสาวสุวิมล  ฟองแก้ว  2541. แบบจำลองฐานข้อมูล.  สืบค้นเมื่อวันที่ 3 กุมภาพันธ์  พ.ศ.2563  (ออนไลน์). แหล่งที่มา :https://sites.google.com/site/rabbthankhxmul778/
Unknown. แบบจำลองข้อมูล.  สืบค้นเมื่อวันที่ 3 กุมภาพันธ์  พ.ศ.2563  (ออนไลน์). แหล่งที่มา :
http://introduction-database.blogspot.com/p/blog-page_45.html