หน้าเว็บ

วันอาทิตย์ที่ 9 พฤศจิกายน พ.ศ. 2557

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

ฐานข้อมูลเชิงสัมพันธ์
ความหมายของศัพท์เทคนิคที่เกี่ยวข้อง
ความหมายของ  รีเลชั่น  (Relation)  มีคำเรียกทั่ว ๆ ไปว่า ตาราง  (  Table  )  เป็นคำนามที่แทนข้อมูลเรื่องใดเรื่องหนึ่ง
ความหมายของ  ทูเพิล  (  Tuple )  คือค่าของข้อมูลในแต่ละแถว  (Row) หรือ  เรคคอร์ด (Record)
ความหมายของ   คาร์ดินาลลิตี้   (Cardinality)  คือ  จำนวนแถวแต่ละข้อมูลในแต่ละรีเลชั่น
ความหมายของ   แอทริบิวต์  (Attribute)  คือรายละเอียดของข้อมูลในแต่ละคอลัมน์ ซึ่งแสดงให้รู้ว่าประกอบด้วยอะไรบ้าง  หรือรู้จักในรูปของคอลัมน์  (Column)  หรือ  ฟิลด์  (File)
 ความหมายของ   คีย์หลัก   (Primary  key)  คือแอทริบิวต์ที่มีค่าของข้อมูลเป็นเอกลักษณ์หรือเฉพาะเจาะจงและจะเป็นค่าที่ไม่ซ้ำกันในแต่ละทูเพิล
ความหมายของ   โดเมน (Domain) คือขอบเขตของค่าของข้อมูลที่ควรจะเป็นในแต่ละแอทริบิวต์
ความหมายของฐานข้อมูลเชิงสัมพันธ์
ความหมายของฐานข้อมูลเชิงสัมพันธ์เป็นฐานข้อมูลในระดับภายนอก  และระดับแนวคิดแก่ผู้ใช้ข้อมูลได้เป็นอย่างดี  รีเลชั่ต่าง ๆ ในฐานข้อมูลจะประกอบด้วย  แอทริบิวต์ต่าง ๆ ที่ถูกออกแบบมาเพื่อลดความซ้ำซ้อนของการเก็บข้อมูล  และสามารถเรียกใช้ข้อมูลได้อย่างมีประสิทธิภาพ
ข้อดีของฐานข้อมูลเชิงสัมพันธ์
1. ฐานข้อมูลเชิงสัมพันธ์เป็นกลุ่มข้อมูลของรีเลชั่นหรือตารางที่ข้อมูลถูกจัดเก็บเป็นแถวหรือคอลัมน์  ซึ่ง
    ทำให้ผู้ใช้เห็นภาพของข้อมูลได้ง่าย
2. ผู้ใช้ไม่ต้องรู้ว่าข้อมูลถูกจัดเก็บอย่างไร  รวมถึงวิธีการเรียกใช้ข้อมูล
3. ภาษาที่ใช้เป็นการเรียกใช้ข้อมูล  เป็นลักษณะคล้ายภาษาอังกฤษ  และไม่จำเป็นต้องเขียนเป็นลำดับขั้น
4. การเรียกใช้หรือเชื่อมโยงข้อมูลทำได้ง่าย โดยใช้โอเปอร์เรเตอร์ทางคณิตศาสตร์
คุณลักษณะในการจัดเก็บข้อมูล
ภาษาที่ใช้ในการควบคุมข้อมูล  ประกอบด้วยคำสั่งที่ใช้ในการควบคุมความถูกต้องของข้อมูล  หรือป้องกันการเกิดเหตุการณ์ที่ผู้ใช้หลายคนเรียกใช้ข้อมูลพร้อมกัน ในขณะที่ข้อมูลนั้นๆกำลังปรับปรุงแก้ไขอยู่ซึ่งเป็นเวลาเดียวกับผู้ใช้อีกคนหนึ่งก็เรียกใช้ข้อมูลนี้  และได้ค่าที่ไม่ถูกต้อง  เพราะผู้ใช้คนแรกยังปรับปรุงแก้ไขไม่เสร็จ
คีย์แบ่งออกเป็น 2 ประเภท คือ
1.              คีย์หลัก (Primary Key)
เป็นรีเลชั่นที่ถูกกำหนดขึ้นเพื่อเก็บข้อมูลเพื่อนำข้อมูลไปใช้ เมื่อมีการสร้างรีเลชั่นในภาษาสำหรับนิยามข้อมูล  (  DDL )  เช่น  SQL  คำสั่ง  CREATE  TABLE  เป็นการสร้างรีเลชั่นหลัก  หลังจากนั้นก็จะทำการเก็บข้อมูลเพื่อการเรียกใช้ข้อมูลในภายหลัง  รีเลชั่นหลักจะเป็นตารางที่มีการเก็บข้อมูลจริงไว้
2.              คีย์นอก (Foreign Key)
เป็นรีเลชั่นที่ถูกสร้างขึ้นตามความต้องการใช้ข้อมูลของผู้ใช้แต่ละคน  เพราะผู้ใช้แต่ละคนในฐานข้อมูลอาจต้องการใช้ข้อมูลในลักษณะที่แตกต่างกัน  จึงทำการกำหนดวิวของตนเองขึ้นจากรีเลชั่นหลักขึ้นมาต่างหาก  เพื่อความสะดวกในการเรียกใช้ข้อมูล  และช่วยในการรักษาความปลอดภัยของฐานข้อมูลทำได้ง่ายขึ้น
ประเภทของรีเลชั่น
อาจจำแนกออกเป็นหลายประเภท  แต่ประเภทที่มีในการจัดการฐานข้อมูลทั่ว ๆ ไป  ดังนี้  คือ  
1. รีเลชั่นหลัก   (Base  Relation)
เป็นรีเลชั่นที่ถูกกำหนดขึ้นเพื่อเก็บข้อมูลเพื่อนำข้อมูลไปใช้ เมื่อมีการสร้างรีเลชั่นในภาษาสำหรับนิยามข้อมูล  (  DDL )  เช่น  SQL  คำสั่ง  CREATE  TABLE  เป็นการสร้างรีเลชั่นหลัก  หลังจากนั้นก็จะทำการเก็บข้อมูลเพื่อการเรียกใช้ข้อมูลในภายหลัง  รีเลชั่นหลักจะเป็นตารางที่มีการเก็บข้อมูลจริงไว้
2. วิว (View)
เป็นรีเลชั่นที่ถูกสร้างขึ้นตามความต้องการใช้ข้อมูลของผู้ใช้แต่ละคน  เพราะผู้ใช้แต่ละคนในฐานข้อมูลอาจต้องการใช้ข้อมูลในลักษณะที่แตกต่างกัน  จึงทำการกำหนดวิวของตนเองขึ้นจากรีเลชั่นหลักขึ้นมาต่างหาก  เพื่อความสะดวกในการเรียกใช้ข้อมูล  และช่วยในการรักษาความปลอดภัยของฐานข้อมูลทำได้ง่ายขึ้น
กฎที่เกี่ยวข้องในฐานข้อมูล
กฎความบูรณภาพของเอนทิตี้
กฎนี้ระบุว่า  แอทริบิวต์ใดที่จะเป็นคีย์หลักในแอทริบิวต์นั้นจะเป็นค่าเอกลักษณ์ ( Unique )  และเป็นค่าว่าง  (Null)  ความหมายของการเป็นค่าว่างไม่ได้  (Not  full)  ในที่นี้จะหมายรวมถึงข้อมูลของแต่ละ
แอทริบิวต์ที่เป็นค่าหลักจะเป็นค่าว่างไม่ได้  และเป็นค่าเอกลักษณ์ในการที่จะระบุค่าของแอทริบิวต์อื่น ๆ ใน
ทูเพิลอื่นๆได้
กฎความบูรณภาพของการอ้างอิง
การอ้างอิงข้อมูลระหว่างรีเลชั่นในฐานข้อมูลเชิงสัมพันธ์จะใช้คีย์นอกของรีเลชั่นหนึ่งไปตรวจสอบกับค่าของแอทริบิวต์ที่เป็นคีย์หลักของรีเลชั่นหนึ่งเพื่อเรียกดูข้อมูลอื่นๆที่เกี่ยวข้อง คือ ค่าของคีย์นอกจะต้องสามารถอ้างอิงให้ตรงกันกับค่าขอแงคีย์หลักได้  จึงจะเชื่อมโยงหรืออ้างอิงข้อมูลข้อมูลระหว่างรีเลชั่นได้
ในกรณีที่มีการแก้ไขหรือลบข้อมูลจะทำได้หรือไม่ขึ้นกับการออกแบบฐานข้อมูลมี 4 ทางเลือก คือ
1. การลบหรือแก้ไขข้อมูลแบบมีข้อจำกัด (Restrict)
การลบหรือการแก้ไขข้อมูลจะกระทำได้เมื่อข้อมูลของคีย์หลักในรีเลชั่นหนึ่งไม่มีข้อมูลที่จะอ้างอิงโดยคีย์นอกำจากรีเลชั่นหนึ่ง  เช่น  รหัสแผนก  DEPNO  ในรีเลชั่น  DEP  จะถูกแก้ไขหรือลบทิ้งก็ต่อเมื่อไม่มี
พนักงานคนใดสังกัดอยู่
2. การลบหรือแก้ไขข้อมูลแบบต่อเรียง (Cascade)
การลบหรือการแก้ไขข้อมูลจะทำแบบลูกโซ่  คือ  หากมีการแก้ไขหรือลบข้อมูลของคีย์หลักในรีเลชั่น หนึ่ง  ระบบจะทำการลบหรือการแก้ไขข้อมูลของคีย์นอกในรีเลชั่นหนึ่ง  ที่อ้างอิงถึงข้อมูลของคีย์หลักที่ถูกลบให้ได้
3. การลบหรือแก้ไขข้อมูลโดยเปลี่ยนเป็นค่าว่าง (Nullify)
การลบหรือการแก้ไขข้อมูลจะทำได้เมื่อมีการเปลี่ยนค่าของคีย์นอกที่ถูกอ้างอิงให้เป็นค่าว่างเสียก่อน
4. แก้ไขข้อมูล โดยกำหนดค่าปริยาย (Default)
การแก้ไขข้อมูลของคีย์หลักสามารถทำได้  โดยถ้าหากมีคีย์นอกที่อ้างอิงถึงคีย์หลักที่ถูกแก้ไข  จะทำการปรับค่าของคีย์นอกนั้นเป็นค่าโดยนอกนั้นเป็นค่าโดยปริยาย  ที่ถูกกำหนดขึ้น


ภาษาที่ใช้ในฐานข้อมูล

ภาษาที่ใช้ในฐานข้อมูล
ภาษาที่ใช้ในฐานข้อมูลมี 3 ประเภท คือ
1.              ภาษาสำหรับนิยามข้อมูล ( Data Defintion : DDL )  
ภาษาสำหรับนิยามข้อมูล ประกอบด้วยคำสั่งที่ใช้ในการกำหนดโครงสร้างข้อมูลว่ามี  แอทริบิวต์อะไร  เก็บข้อมูลประเภทใด  การเพิ่มแอทริบิวต์  การกำหนดดัชนีที่ใช้ในการจัดเก็บข้อมูล  การกำหนดวิวของผู้ใช้จากเอนทิตี้พนักงาน  สามารถใช้ภาษาที่ใช้ในการจัดการฐานข้อมูล  กำหนดโครงสร้างของตารางพนักงานว่าประกอบด้วยอะไรบ้าง  ภาษาที่ใช้ คือ  SQL  
2.              ภาษาสำหรับจัดดำเนินการข้อมูล  ( Data Mainpopula Langquage )
ภาษาสำหรับจัดดำเนินการข้อมูล  ประกอบด้วยคำสั่งที่ใช้ในการเรียกใช้ข้อมูล  การเปลี่ยนแปลงข้อมูล การเพิ่มหรือลบข้อมูล  สามารถใช้ SQL ในการเรียกข้อมูลต่าง ๆ
3.              ภาษาที่ใช้ในการควบคุมข้อมูล ( Data Control Langquage )
ภาษาที่ใช้ในการควบคุมข้อมูล  ประกอบด้วยคำสั่งที่ใช้ในการควบคุมความถูกต้องของข้อมูล  หรือป้องกันการเกิดเหตุการณ์ที่ผู้ใช้หลายคสเรียกใช้ข้อมูลพร้อมกัน  ในขณะที่ข้อมูลนั้น ๆ กำลังปรับปรุงแก้ไขอยู่   ซึ่งเป็นเวลาเดียวกับผู้ใช้อีกคนหนึ่งก็เรียกใช้ข้อมูลนี้  และได้ค่าที่ไม่ถูกต้อง  เพราะผู้ใช้คนแรกยังปรับปรุงแก้ไขไม่เสร็จ


สถาปัตยกรรมข้อมูล

สถาปัตยกรรมข้อมูล
สถาปัตยกรรมฐานข้อมูล มี 3 ระดับ คือ
ระดับภายนอก หรือ วิว (External หรือ view)  
ระดับภายนอกหรือวิว  เป็นระดับของข้อมูลที่ประกอบด้วยภาพที่ผู้ใช้แต่ละคนมองข้อมูล  (View)  เค้าร่างของฐานข้อมูลระดับนี้จะเกิดภาพและความต้องการของข้อมูลของผู้ใช้
 ระดับแนวคิด (Conceptual Level)
ประกอบด้วยเค้าร่างที่อธิบายถึงฐานข้อมูลรวมว่ามีเอนทิตี้     โครงสร้างของข้อมูล     ความสัมพันธ์ของข้อมูล  กฎเกณฑ์และข้อจำกัดต่าง ๆ อย่างไรบ้าง   ข้อมูลในระดับนี้เป็นข้อมูลที่ผ่านการวิเคราะห์   และออกแบบฐานข้อมูลต่าง ๆ ในระดับภายนอกสามารถเรียกใช้ข้อมูลได้  ซึ่งผู้ใช้ทั่วไปในระดับภายนอก  อาจจะต้องการใช้ข้อมูลที่แตกต่างกัน 
ระดับภายใน (Internal หรือ Physical Level)
ระดับภายใน  ประกอบด้วยเค้าร่างที่เกี่ยวข้องกับการจัดเก็บข้อมูลจริง ๆ  ว่ามีโครงสร้างการจัดเก็บรูปแบบใด  รวมถึงวิธีการเข้าถึงข้อมูลต่าง ๆ ในฐานข้อมูลเพื่อดึงข้อมูลที่ต้องการ  เช่น  การอินเด็กซ์  เป็นต้น  ความสัมพันธ์ระหว่างข้อมูลระดับต่าง ๆ จะถูกจัดการโดยระบบการจัดการฐานข้อมูล  ซึ่งเป็นการแปลความหมายของข้อมูลจากระดับหนึ่งไปยังอีกระดับหนึ่งนี้เรียกว่า  การแปลส่ง
ระดับของข้อมูลแบ่งออกเป็น  3 ระดับ ดังนั้นข้อมูลดังกล่าวจะประกอบด้วยเค้าร่าง
เค้าร่างของฐานข้อมูล
ในการออกแบบฐานข้อมูลใด  จะต้องระบุถึงเอนทิตี้ชื่ออะไรบ้าง และในแต่ละเอนทิตี้ประกอบด้วยแอทริบิวต์อะไร  รวมถึงความสัมพันธ์ของข้อมูลในเอนทิตี้   ที่มีอยู่ว่ามีความสัมพันธ์ในลักษณะใด รายละเอียดของโครงสร้างของฐานข้อมูลนี้เรียกว่า  เค้าร่างของฐานข้อมูล  (Database  Schema)  โดยทั่วไปเค้าร่างของฐานข้อมูลมักจะไม่เปลี่ยนแปลงบ่อยนัก แต่อาจมีการเปลี่ยนแปลงบ้างในบางครั้ง  ถ้าการเปลี่ยนแปลงทำให้ฐานข้อมูลเหมาะสมมากยิ่งขึ้น  ข้อมูลจะถูกบันทึกลงในฐานข้อมูลในขณะใดขณะหนึ่ง  เรียกว่า  อินสแตนซ์   คือ  เมื่อกำหนดเค้าร่างของฐานข้อมูลจะยังไม่มีข้อมูลอยู่คือ  อินสแตนซ์ว่าง  จนกว่าจะมีการบันทึกข้อมูลลง  
ซึ่งมี 3 ประเภท คือ
1.  เค้าร่างภายใน   (Internal  Schema)
เป็นเค้าร่างที่แสดงรายละเอียดถึงลักษณะการจัดเก็บโครงสร้างของฐานข้อมูลจริงๆ

2.  เค้าร่างแนวคิด  (Conceptual  Schema)
เค้าร่างแนวคิดเป็นเค้าร่างที่แสดงรายละเอียดของฐานข้อมูลทั้งหมด  ไม่ว่าจะเป็นชื่อของเอนทิตี้  โครงสร้างของฐานข้อมูล  ความสัมพันธ์  และข้อจำกัดต่าง ๆ  

3.  เค้าร่างภายนอก  (External  Schema  หรือ  Subschema  หรือ  View)
เค้าร่างภายนอกเป็นเค้าร่างในระดับภายนอกที่แสดงถึงรายละเอียดของข้อมูลที่ผู้ใช้ต่าง ๆ ต้องการ 
การแบ่งระดับของข้อมูลรวมถึงการเชื่อมโยงของข้อมูล  ล้วนแต่เป็นจุดเด่นของฐานข้อมูล  ในด้านความเป็นอิสระของข้อมูล  ซึ่งแบ่งออกได้เป็น  2  ประเภท  คือ
1. ความเป็นอิสระของข้อมูลเชิงตรรกะ  (Logical  Data  Independence)
2. ความเป็นอิสระในเชิงกายภาพ  (Physical Data  Independence) 


รูปแบบของฐานข้อมูล

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

เค้าร่างของฐานข้อมูลเชิงลำดับขั้น  (Hierarchical  Database  Schema)  
1. ประกอบด้วย  3  เรคคอร์ด  คือ  แผนก  พนักงาน  และโครงการ
2. ประกอบด้วยความสัมพันธ์แบบ PCR 2 ประเภท คือ ความสัมพันธ์ของข้อมูลแผนกกับพนักงาน และความสัมพันธ์ของข้อมูลแผนกกับโครงการ โดยที่มีแผนกเป็นเรคคอร์ด พ่อ – แม่ และพนักงานกับโครงการเป็นเรคคอร์ดประเภทลูก 
ฐานข้อมูลแบบเครือข่ายงาน
โครงสร้างของข่ายงานประกอบด้วยประเภทของเรคคอร์ด  และกลุ่มของข้อมูลของเรคคอร์ดนั้น ๆ เช่นเดียวกับโครงสร้างของฐานข้อมูลเชิงสัมพันธ์และเชิงลำดับชั้น ความสัมพันธ์ระหว่างประเภทของเรคคอร์ดในฐานข้อมูล  เรียกว่า Set  Type  ซึ่งสามารถแสดงในแผนภูมิที่เรียกว่า  Bachman  diagram  อันมีองค์ประกอบดังนี้
1. ชื่อของ  Set  Type
2. ชื่อของประเภทของเรคคอร์ดหลัก
3. ชื่อของเรคคอร์ดที่เป็นสมาชิก

จากรูปประกอบด้วย  Set  type  ที่ชื่อว่า  วิชาเอก  โดยมีแผนกเป็นเรคคอร์ดหลัก  และมีนักศึกษาเป็นเรคคอร์ดสมาชิก  โดยมีความสัมพันะแบบ  1  :  N

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

ความสัมพันธ์ระหว่างเอนทิตี
ความสัมพันธ์แบบหนึ่งต่อหนึ่ง
ความสัมพันธ์แบบหนึ่งต่อหนึ่งเป็นการแสดงความสัมพันธ์ของข้อมูลของเอนทิตี้หนึ่งว่า  มีความสัมพันธ์กับข้อมูลอย่างมาก  หรือข้อมูลกับอีกเอนทิตี้หนึ่งในลักษณะที่เป็นหนึ่งต่อหนึ่ง
กำหนดให้  A มีสมาชิก  entity  6  entity  ตามความสัมพันธ์ ( a1, a2, a3, a4, a5, a6) และ B มี entity 6 entity ตามความสัมพันธ์  ( b1, b2, b3, b4, b5 )


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

ความสัมพันธ์แบบหนึ่งต่อกลุ่ม เช่น นักศึกษากับอาจารย์ที่ปรึกษา เป็นต้น หมายความว่า  entity ใน A มีความสัมพันธ์กับสมาชิก entity B แบบหนึ่งต่อกลุ่ม เช่น กำหนดให้ entityอาจารย์ที่ปรึกษา มีความสัมพันธ์กับ entity นักศึกษา แบบหนึ่งต่อกลุ่ม  แสดงว่า  อาจารย์หนึ่งคน  สามารถมีนักศึกษาในสังกัดได้มากกว่าหนึ่งคน  แต่นักศึกษาจะมีอาจารย์ที่ปรึกษาได้เพียงหนึ่งคนเท่านั้น


ความสัมพันธ์แบบกลุ่มต่อกลุ่ม  เช่นนักศึกษากับวิชาที่ลงทะเบียนเรียน หมายความว่า  สมาชิกใน  entily A  มีความสัมพันธ์กับสมาชิกใน entily B  แบบกลุ่มต่อกลุ่ม  ตัวอย่างเช่น  กำหนดให้  entily  นักศึกษา  มีความสัมพันธ์กับ  entily  วิชาที่ลงทะเบียน  แบบกลุ่มต่อกลุ่มแสดงว่านักศึกษาหนึ่งคนสามารถลงทะเบียนเรียนได้มากกว่า  1  วิชา  และในทำนองเดียวกัน  วิชาหนึ่งวิชาสามารถมีนักศึกษาลงทะเบียนเรียนได้หลายคน

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


ความสัมพันธ์แบบกลุ่มต่อกลุ่ม  เช่นนักศึกษากับวิชาที่ลงทะเบียนเรียน หมายความว่า  สมาชิกใน  entily A  มีความสัมพันธ์กับสมาชิกใน entily B  แบบกลุ่มต่อกลุ่ม  ตัวอย่างเช่น  กำหนดให้  entily  นักศึกษา  มีความสัมพันธ์กับ  entily  วิชาที่ลงทะเบียน  แบบกลุ่มต่อกลุ่มแสดงว่านักศึกษาหนึ่งคนสามารถลงทะเบียนเรียนได้มากกว่า  1  วิชา  และในทำนองเดียวกัน  วิชาหนึ่งวิชาสามารถมีนักศึกษาลงทะเบียนเรียนได้หลายคน

ความสัมพันธ์ Supertype  กับ  Supertype
Subtype     เป็นเซ็ทย่อยของเอนทิตี้หนึ่งๆ หรือที่เรียกว่า Supertype โดยที่  Subtype  ประกอบด้วยแอททริบิวต์ทุกแอททริบิวต์ที่มีอยู่ในSupertype  นอกจากนี้  Subtype  ยังประกอบด้วยแอททริบิวต์เพิ่มเติม เช่น เอนทิตี้พนักงานเป็น Supertype  ที่ประกอบด้วยพนักงาน  2  ประเภท  คือ  พนักงานที่มีเงินเดือนประจำ  (Emp - salary)  และพนักงานที่คิดค่าแรงต่อชั่วโมง  (Emp - wage)  ความสัมพันธ์ระหว่าง Supertype  และ  Subtype เป็นความสัมพันธ์ที่บอกถึงสถานภาพของพนักงานเป็นความสัมพันธ์แบบหนึ่งต่อหนึ่ง

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


ความหมายของศัพท์ที่ใช้

ความหมายของศัพท์ที่ใช้
บิต (Bit)  หมายถึง หน่วยของข้อมูลที่เล็กที่สุด
ไบท์  (Byte)  หมายถึง หน่วยของข้อมูลที่เกิดจากการนำบิตมารวมกันเป็นตัวอักษร
ฟิลด์  (Field) หมายถึง หน่วยของข้อมูลที่ประกอบด้วยหลาย ๆ ตัวอักษร เพื่อแทนความหมายของสิ่งหนึ่ง  เช่น  รหัสพนักงาน  ชื่อ  เป็นต้น
เรคคอร์ด (Record) หมายถึง หน่วยของข้อมูลที่เกิดจากการนำเอาฟิลด์หลาย ๆ ฟิลด์ มารวมกันเพื่อแสดง
รายละเอียดข้อมูลในเรื่องใดเรื่องหนึ่ง เช่น  เรคคอร์ดหนึ่ง ๆ ของพนักงานประกอบด้วย  ฟิลด์ ต่าง ๆ เช่น  
รหัสพนักงาน  ชื่อ  แผนก  เงินเดือน  เป็นต้น
แฟ้มข้อมูล (File) หมายถึง หน่วยของข้อมูลที่เกิดจากการนำเอาเรคคอร์ดหลาย ๆ เรคคอร์ดมารวมกัน


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

ข้อดี-ข้อเสียของฐานข้อมูล

ข้อดี-ข้อเสียของฐานข้อมูล
ข้อดี
การจัดเก็บข้อมูลเป็นฐานข้อมูลได้เปรียบกว่าการจัดเก็บข้อมูลแบบแฟ้มข้อมูล  ดังนี้
1.              หลีกเลี่ยงความขัดแย้งของข้อมูล
การจัดเก็บข้อมูลแบบแฟ้มข้อมูล โดยข้อมูลเรื่องเดียวกันอาจมีอยู่หลายแฟ้มข้อมูล ซึ่งก่อให้เกิดความขัดแย้งของข้อมูลได้ (Inconsistency)  
2.              สามารถใช้ข้อมูลร่วมกันได้  
ฐานข้อมูลเป็นการจัดเก็บข้อมูลรวมไว้ด้วยกัน เมื่อผู้ใช้ต้องการข้อมูลจากฐานข้อมูล ซึ่งเป็นข้อมูลที่มาจากแฟ้มข้อมูลที่แตกต่างกันจะทำได้ง่าย
3.              สามารถลดความซ้ำซ้อนของข้อมูล  
การจัดเก็บข้อมูลในลักษณะแฟ้มข้อมูล อาจทำให้ข้อมูลประเภทเดียวกันถูกเก็บไว้หลาย ๆ แห่ง  ทำให้เกิดความซ้ำซ้อน  (Reclundancy)  การนำข้อมูลมารวมเก็บไว้ในฐานข้อมูล จะช่วยลดปัญหาความซ้ำซ้อนได้
4.              รักษาความถูกต้อง
ฐานข้อมูลบางครั้งอาจมีข้อผิดพลาดขึ้น เช่น การป้อนข้อมูลผิด ซึ่งระบบการจัดการฐานข้อมูลสามารถระบุกฎเกณฑ์เพื่อควบคุมความผิดพลาดที่อาจเกิดขึ้นได้
5.              สามารถกำหนดความเป็นมาตรฐานเดียวกันได้
เพราะในระบบฐานข้อมูลจะมีกลุ่มบุคคลที่คอยบริหารฐานข้อมูล กำหนดมาตรฐานต่างๆในการจัดเก็บข้อมูลในลักษณะเดียวกัน
6.              สามารถกำหนดระบบความปลอดภัยของข้อมูลได้
ผู้บริหารระบบฐานข้อมูลสามารถกำหนดการเรียกใช้ข้อมูลของผู้ใช้แต่ละคนให้แตกต่างกันตามหน้าที่ ความรับผิดชอบได้ง่าย
7.              ความเป็นอิสระของข้อมูลและโปรแกรม  
โปรแกรมที่ใช้ในแต่ละแฟ้มข้อมูลจะมีความสัมพันธ์กับแฟ้มข้อมูลโดยตรง  ถ้าหากมีการแก้ไขเปลี่ยนแปลงโครงสร้างข้อมูลก็ทำการแก้ไขโปรแกรมนั้น ๆ 
ข้อเสีย
การเก็บข้อมูลรวมเป็นฐานข้อมูลมีข้อเสีย  ดังนี้คือ
1.              มีต้นทุนสูง
ระบบฐานข้อมูลก่อให้เกิดต้นทุนสูง เช่น ซอฟท์แวร์ที่ใช้ในการจัดการระบบฐานข้อมูล บุคลากร ต้นทุนในการปฏิบัติงาน และฮาร์ดแวร์ เป็นต้น
2.              มีความซับซ้อน  
การเริ่มใช้ระบบฐานข้อมูลอาจก่อให้เกิดความซับซ้อนได้ เช่น การจัดเก็บข้อมูล การออกแบบฐานข้อมูล การเขียนโปรแกรม เป็นต้น
3.              การเสี่ยงต่อการหยุดชะงักของระบบ
เนื่องจากข้อมูลถูกจัดเก็บไว้ในลักษณะเป็นศูนย์รวม(Centralized Database System) ความล้มเหลวของการทำงานบางส่วนในระบบอาจทำให้ระบบฐานข้อมูลทั้งระบบหยุดชะงักได้