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

          ฐานข้อมูลเชิงสัมพันธ์ เกิดขึ้นในปี ค.ศ.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 หรือไม่ต้องเป็นค่าที่ตรงกับค่าที่มีอยู่ในคีย์หลักของรีเลชันที่อ้างอิงอยู่





ที่มา : http://203.172.182.81/wbidatabase/unit4/unit4.php

ไม่มีความคิดเห็น:

แสดงความคิดเห็น