หน้าเว็บ

วันศุกร์ที่ 16 ธันวาคม พ.ศ. 2554

ความหมายของคีย์(Keys)ชนิดต่างๆ ใน Database



Keys หมายถึง
  • คอลัมน์(column) [ฟิลด์(field)หรือแอตทริบิวต์(attribute)] 1 คอลัมน์ หรืออาจเป็นหลายๆคอลัมน์มาประกอบกันก็ได้
  • มีค่าไม่ซ้ำกันในแต่ละแถว [มีคุณสมบัติที่เป็นเอกลักษณ์ (unique)]
  • สามารถใช้คอลัมนั้นในการระบุคอลัมน์อื่นๆในแถว(row) [เรคอร์ด(record) หรือทูเพิล(tuple)]นั้นได้
  •  
Super Keys หมายถึง

  • คอลัมน์หรือกลุ่มของคอลัมน์  ที่สามารถใช้จำแนกความแตกต่างของแต่ละแถวได้
  • หากมีคอลัมน์หรือกลุ่มของคอลัมน์ใด  ที่ไม่มีโอกาสมีค่าซ้ำกันเลยในแต่ละแถว(unique)  ก็จัดได้ว่าคอลัมน์นั้นหรือกลุ่มของคอลัมน์นั้น  เป็น Super Key  เช่น
      Table : Employees


       
              เมื่อเราพิจารณาคำจำกัดความแล้ว  เราอาจพิจารณาได้ว่ามี Super Key ในเทเบิล  Employees ทั้งหมดดังนี้
      1. EmpID
      2. EmpID + FirstName
      3. EmpID+LastName
      4. EmpID+DepID
      5. EmpID+Position
      6. EmpID+FirstName+LastName
      7. EmpID+FirstName+DepID
      8. EmpID+FirsttName+Position
      9. EmpID+LastName+DepID
      10. EmpID+LastName+Position
      11. EmpID+DepID+Position
      12. FirstName+LastName+DepID+Position


      Composite Key หมายถึง

      Key ที่ประกอบกัน  หรือมีมากกว่า 1 Key   เช่น
      • EmpID + FirstName
      • EmpID+LastName
      • EmpID+FirstName+LastName
      • FirstName+LastName+DepID+Position
      แต่  EmpID  ไม่ใช่  Composite Key  เนื่องจากเป็นเพียงแค่ Key เดียว


      Candidate Keys  หมายถึง
      • Super Key ที่มีคอลัมน์เดียว หรือ  
      • Super Key ที่มีหลายคอลัมน์ แต่ไม่มีบางส่วนของ Key เป็น Unique Subset

      : Unique Subset คือ มีค่าไม่ซ้ำกันในแต่ละแถว


      จากเทเบิล  Employees เราจะได้ Candidate Key ทั้งหมดเป็นดังนี้

        1. EmpID    ตรงตามเงื่อนไขแรก  คือ  เป็น Super Key ที่มีคอลัมน์เดียว
        2. FirstName+LastName+DepID+Position   ตรงตามเงื่อนไขที่สอง  คือ  ไม่มีบางส่วนเป็น Unique Subset

            ส่วน Super Key อื่นๆ ถือว่าผิดเงื่อนไขที่สอง คือ มี Unique Subset เกิดขึ้น
            เช่น  Super Key ในข้อ 2 [EmpID + FirstName] มี Unique Subset เกิดขึ้น


            [EmpID + FirstName] ถือเป็น Composite Key คือเป็น Key ประกอบ  และหนึ่งใน Key ประกอบมีความเป็น Unique Subset เกิดขึ้น[นั่นคือ EmpID  เป็น Unique]  ทำให้ไม่เป็น Candidate Key




            Primary Keys  หมายถึง

            Key  ที่ถูกเลือกมาจาก  Candidate Key โดยมีหลักเกณฑ์ดังนี้

            • ต้องไม่มีค่าซ้ำกันในแต่ละแถว
            • ต้องไม่มีค่าเป็น NULL(ค่าว่าง)
            • Primary Key  จะถูกเปลี่ยนแปลงค่าไม่ได้
              พิจารณา Candidate Key ที่เรามีอยู่ 


            ฉะนั้นจึงเลือก EmpID เป็น Primary Key



            Alternate Keys  หมายถึง

            Key ที่ไม่ได้ถูกเลือกให้เป็น Primary Key  นั่นก็คือ  FirstName+LastName+DepID+Position 




            Foreign Keys  หมายถึง

            Key ที่อ้างไปยัง Primary Key ของอีกเทเบิลหนึ่ง  เช่น ในเทเบิล  Employees   DepID ถือเป็น Foreign Key  เพราะ  DepID ได้อ้างไปยัง Primary Key ของอีกเทเบิลหนึ่ง    
             


            หวังว่าคงจะพอเข้าใจเรื่องของ  Key  มากขึ้นน่ะครับ  ^^

            7 ความคิดเห็น:

            1. ไม่ระบุชื่อ5 มีนาคม 2558 01:19

              ขอบคุณมากค่ะ^^

              ตอบลบ
            2. ไม่ระบุชื่อ21 กันยายน 2558 00:59

              ขอบคุนค่าาา this saves my life

              ตอบลบ
            3. ประทับใจมาก อ่านมาหลายที่ งงมาก
              มาตายอันนี้ ขอบคุณจริงๆครับ

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

              ตอบลบ
            5. ขอบคุณครับ กำลังงงพอดี :D

              ตอบลบ