7 ประเภทของคีย์ใน DBMS อธิบาย

เผยแพร่แล้ว: 2021-03-12

สารบัญ

คีย์ใน DBMS คืออะไร

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

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

ทำไมจึงต้องมีคีย์

คีย์ถูกใช้ในคำจำกัดความของข้อจำกัดความสมบูรณ์ประเภทต่างๆ ตารางในฐานข้อมูลแสดงถึงชุดของเรกคอร์ดหรือเหตุการณ์สำหรับความสัมพันธ์เฉพาะ ขณะนี้อาจมีบันทึกดังกล่าวเป็นพันๆ รายการ ซึ่งบางรายการอาจทำซ้ำได้

ควรมีวิธีระบุแต่ละระเบียนแยกจากกันและไม่ซ้ำกัน กล่าวคือ ห้ามทำซ้ำ กุญแจช่วยให้เราเป็นอิสระจากความยุ่งยากนี้

ให้เรายกตัวอย่างฐานข้อมูลของนักเรียนแต่ละคนที่กำลังเรียนอยู่ในวิทยาลัยวิศวกรรมศาสตร์

คุณคิดว่าคุณลักษณะใดของนักเรียนที่จะระบุแต่ละคนได้โดยไม่ซ้ำกัน คุณสามารถอ้างอิงถึงนักเรียนโดยใช้ชื่อ แผนก ปี และส่วนงาน หรือคุณสามารถพูดถึงเฉพาะหมายเลขม้วนของมหาวิทยาลัยของนักเรียน และคุณสามารถดูรายละเอียดอื่นๆ ทั้งหมดจากนั้นได้

คีย์อาจเป็นการรวมกันของแอตทริบิวต์มากกว่าหนึ่งรายการ (หรือคอลัมน์) หรือแอตทริบิวต์เดียว แรงจูงใจหลักของเรื่องนี้คือการทำให้แต่ละบันทึกมี เอกลักษณ์ เฉพาะตัว

อ่านเพิ่มเติม: DBMS กับ RDBMS

ประเภทของคีย์ใน DBMS

คีย์ใน DBMS มีเจ็ดประเภทกว้างๆ:

  1. คีย์หลัก
  2. รหัสผู้สมัคร
  3. ซุปเปอร์คีย์
  4. กุญแจต่างประเทศ
  5. คอมโพสิตคีย์
  6. คีย์สำรอง
  7. คีย์เฉพาะ

ลองดูที่แต่ละรายการแยกกัน

1. คีย์หลัก

คีย์หลักคือคอลัมน์ของตารางหรือชุดของคอลัมน์ที่ช่วยระบุทุกระเบียนที่มีอยู่ในตารางนั้นโดยไม่ซ้ำกัน สามารถมีคีย์หลักได้เพียงคีย์เดียวในตาราง นอกจากนี้ คีย์หลักไม่สามารถมีค่าเดียวกันที่ซ้ำกันสำหรับแถวใดๆ ทุกค่าของคีย์หลักจะต้องแตกต่างกันโดยไม่มีการซ้ำซ้อน

ข้อจำกัด PRIMARY KEY (PK) ที่วางไว้บนคอลัมน์หรือชุดของคอลัมน์จะไม่อนุญาตให้มีค่าว่างหรือค่าที่ซ้ำกัน ตารางหนึ่งสามารถมีข้อจำกัดของคีย์หลักได้เพียงรายการเดียวเท่านั้น ค่าใดๆ ในคีย์หลักไม่สามารถเปลี่ยนแปลงได้ด้วยคีย์นอกใดๆ (อธิบายไว้ด้านล่าง) ซึ่งอ้างอิงถึงค่าดังกล่าว

2. ซุปเปอร์คีย์

Super Key คือชุดของปุ่มทั้งหมดที่ช่วยระบุแถวในตารางอย่างเฉพาะเจาะจง ซึ่งหมายความว่าคอลัมน์ทั้งหมดของตารางที่มีความสามารถในการระบุคอลัมน์อื่นๆ ของตารางนั้นไม่ซ้ำกันจะถือเป็นซูเปอร์คีย์ทั้งหมด

Super Key คือ superset ของคีย์ตัวเลือก (อธิบายด้านล่าง) คีย์หลักของตารางจะถูกเลือกจากชุดซุปเปอร์คีย์เพื่อสร้างแอตทริบิวต์เอกลักษณ์ของตาราง

3. รหัสผู้สมัคร

คีย์ผู้สมัครคือแอตทริบิวต์ที่ระบุแถวของตารางโดยไม่ซ้ำกัน คีย์หลักของตารางถูกเลือกจากหนึ่งในคีย์ตัวเลือก ดังนั้นคีย์ตัวเลือกจึงมีคุณสมบัติเหมือนกับคีย์หลักที่อธิบายข้างต้น สามารถมีคีย์ตัวเลือกได้มากกว่าหนึ่งคีย์ในตาราง

4. คีย์สำรอง

ตามที่ระบุไว้ข้างต้น ตารางสามารถมีได้หลายตัวเลือกสำหรับคีย์หลัก อย่างไรก็ตามสามารถเลือกได้เพียงอันเดียว ดังนั้น คีย์ทั้งหมดที่ไม่ได้เป็นคีย์หลักจะเรียกว่าคีย์สำรอง

5. กุญแจต่างประเทศ

Foreign Key ใช้เพื่อสร้างความสัมพันธ์ระหว่างสองตาราง คีย์ภายนอกจะต้องใช้แต่ละค่าในคอลัมน์หรือชุดของคอลัมน์เพื่อให้ตรงกับคีย์หลักของตารางอ้างอิง กุญแจต่างประเทศช่วยรักษาข้อมูลและความสมบูรณ์ของการอ้างอิง

6. คีย์คอมโพสิต

คีย์ผสมคือชุดของแอตทริบิวต์ตั้งแต่สองรายการขึ้นไปที่ช่วยระบุทูเพิลแต่ละตัวในตารางโดยไม่ซ้ำกัน คุณลักษณะในชุดอาจไม่ซ้ำกันเมื่อพิจารณาแยกกัน แต่เมื่อนำมารวมกันก็จะมีความเป็นเอกลักษณ์

7. คีย์เฉพาะ

คีย์ที่ไม่ซ้ำคือคอลัมน์หรือชุดของคอลัมน์ที่ระบุแต่ละระเบียนในตารางโดยไม่ซ้ำกัน ค่าทั้งหมดจะต้องไม่ซ้ำกันในคีย์นี้ คีย์เฉพาะแตกต่างจากคีย์หลักเนื่องจากสามารถมีค่า Null ได้เพียงค่าเดียว ในขณะที่คีย์หลักไม่สามารถมีค่า Null ใดๆ ได้

หน้าที่การพึ่งพา

ตอนนี้เรารู้ประเภทของคีย์ที่แตกต่างกันใน DBMS แล้ว เรามาดูวิธีการระบุคีย์เหล่านี้เมื่อได้รับตารางจากฐานข้อมูล สำหรับสิ่งนี้ เราใช้แนวคิดของการพึ่งพาฟังก์ชัน

การพึ่งพาฟังก์ชัน (FD) เป็นข้อจำกัดระหว่างแอตทริบิวต์สองชุด ข้อจำกัดนี้มีไว้สำหรับ tuples สองตัวใดๆ t1 และ t2 ใน r ถ้า t1[X] = t2[X] จากนั้นพวกมันจะมี t1[Y] = t2[Y] ซึ่งหมายความว่าค่าขององค์ประกอบ X ของทูเพิลจะกำหนดค่าขององค์ประกอบ Y โดยไม่ซ้ำกัน

FD แสดงเป็น X ? Y (อ่านว่า “Y ขึ้นอยู่กับหน้าที่ของ X”) ด้านซ้ายเรียกว่า ดีเทอร์มิแนนต์และด้านขวาเรียกว่าขึ้นอยู่กับ

การปิดชุดแอตทริบิวต์

การ ปิด คือชุดของ FDs ที่เป็นไปได้ทั้งหมดซึ่งได้มาจากชุดของ FD ที่กำหนด มันถูกเรียกว่าเป็น ชุดที่ สมบูรณ์ ของ FDs หาก F ถูกใช้เพื่อบริจาคชุดของ FD สำหรับความสัมพันธ์ R ดังนั้นการปิดชุดของ FD ที่ระบุโดย F จะแสดงด้วย F +

ตอนนี้เราจะกำหนดการปิดชุดแอตทริบิวต์ที่เกี่ยวข้องกับชุด FD ที่กำหนด จะช่วย ระบุ super Key ของความสัมพันธ์และค้นหาว่า FD สามารถอนุมานได้จากชุดของ FD ที่กำหนดหรือ FD ซ้ำซ้อน หลังจากพบชุดของการพึ่งพาฟังก์ชันในความสัมพันธ์ ขั้นตอนต่อไปคือการหา Super Key สำหรับความสัมพันธ์นั้น (ตาราง)

จากนั้นเราจะหาชุดของการปิดแอตทริบิวต์เพื่อตัดสินใจว่าแอตทริบิวต์ (หรือชุดของแอตทริบิวต์) ของตารางใดเป็นคีย์สำหรับตารางนั้นหรือไม่ ชุด ของแอตทริบิวต์ ที่ทำงานขึ้นอยู่กับแอตทริบิวต์ X เรียกว่า Attribute Closure of X และสามารถแสดงเป็น X+ ได้

ด้านล่างนี้คือกฎเกณฑ์บางประการที่จำเป็นสำหรับการพิจารณา F+:

  1. การ สะท้อนกลับ: หาก X เป็นซูเปอร์เซตของ Y หรือ Y เป็นเซตย่อยของ X ดังนั้น X ? ย.
  2. เสริม: ถ้า X ? ใช่แล้ว XZ ? วายซี หรือถ้า Z ⊆W และ X ? ใช่แล้ว XW ? วายซี
  3. Transitivity: ถ้า X ? Y และ Y ? Z แล้ว X ? ซี.
  4. ยูเนี่ยน: ถ้า X ? Y และ X ? Z แล้ว X ? วายซี
  5. การสลายตัว: ถ้า X ? YZ แล้ว X ? Y และ X ? ซี.
  6. Pseudo-Transitivity: ถ้า X ? Y และ YW ? Z แล้ว XW ? ซี.

จะค้นหา Candidate Keys และ Super Keys โดยใช้ Attribute Closure ได้อย่างไร?

  • หากการปิดแอตทริบิวต์ของชุดแอตทริบิวต์ประกอบด้วยแอตทริบิวต์ทั้งหมดของความสัมพันธ์ ชุดแอตทริบิวต์จะเป็น super Key ของความสัมพันธ์
  • หากไม่มีเซ็ตย่อยของชุดแอททริบิวต์นี้สามารถกำหนดแอ็ตทริบิวต์ความสัมพันธ์ทั้งหมดตามหน้าที่ ชุดนั้นจะเป็นคีย์ตัวเลือก

มาพูดคุยกันเกี่ยวกับคำถามเกี่ยวกับ GATE ที่ถามมาก่อนหน้านี้สองสามข้อเพื่อดูการใช้งานการปิดแอตทริบิวต์

ประตู 2014

พิจารณาโครงร่างความสัมพันธ์ R = {E, F, G, H, I, J, K, L, M, N} และชุดของการพึ่งพาฟังก์ชัน {{E, F} ? {G}, {F} ? {ฉัน J} {E, H} ? {K,L},K ? {M} ล ? {N} บน R. กุญแจสำหรับ R คืออะไร?

(A) {E, F}

(ข) {E, F, H}

(ค) {E, F, H, K, L}

(ง) {E}

วิธีการ: เราจะตรวจสอบการปิดแอตทริบิวต์ของตัวเลือกทั้งหมดที่มีให้ ชุดที่การปิดจะให้ความสัมพันธ์ทั้งหมดแก่เรา R จะเป็นคำตอบที่ถูกต้อง

A: {E, F} + = {EFGIJ} ≠ R

B: {E, F, H} + = {EFGHIJKLMN} = R

C: {E, F, H, K, L} + = {EFGHIJKLMN} = R

D: {E} + = {E} ≠ R

ทั้งสองตัวเลือก B และ C ให้โครงร่างความสัมพันธ์ทั้งหมดแก่เรา อย่างไรก็ตาม เราเลือกตัวเลือกขั้นต่ำสุดเพื่อให้เป็นคำตอบที่ถูกต้อง เนื่องจาก Candidate Key ควรเป็น Super Key ขั้นต่ำ

ตอบ: บี

GATE 2013

ความสัมพันธ์ R มีแปดคุณลักษณะ ABCDEFGH เขตข้อมูลของ R มีค่าอะตอมเท่านั้น F = {CH ? จี เอ ? พ.ศ. , ข ? CFH อี ? เอ เอฟ ? EG} คือชุดของการพึ่งพาฟังก์ชัน (FDs) ดังนั้น F+ จึงเป็นชุดของ FD ที่ถือไว้สำหรับ R

ความสัมพันธ์ R มีผู้สมัครกี่คีย์?

(A) 3

(B) 4

(C) 5

(D) 6

แนวทาง: เราจะนำ LHS ของการพึ่งพาการทำงานแต่ละรายการที่ระบุในคำถามและค้นหาการปิดแอตทริบิวต์

CH+ = G

A+ = ABCEFGH

B+ = ABCEFGH

E+ = ABCEFGH

F+ = ABCEFGH

ดังนั้นเราจึงเห็นว่าการปิด A, B, E, F มีความสัมพันธ์ทั้งหมดยกเว้นแอตทริบิวต์ D ดังนั้นจึงมีคีย์ตัวเลือกทั้งหมด 4 คีย์ AD, BD, ED และ FD

คำตอบ: B

เรียนรู้ หลักสูตรซอฟต์แวร์ออนไลน์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

บทสรุป

คีย์และการพึ่งพาฟังก์ชันมีบทบาทสำคัญในการออกแบบฐานข้อมูล แนวคิดเหล่านี้ยังช่วยในการค้นหาความแตกต่างระหว่างการออกแบบฐานข้อมูลที่ดีและไม่ดี ขั้นตอนสุดท้ายของการลบความซ้ำซ้อนและทำให้ฐานข้อมูลมีประสิทธิภาพคือ การทำให้เป็น มาตรฐาน ซึ่งใช้แนวคิดทั้งหมดที่กล่าวถึงในบทความนี้

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับการพัฒนาแบบฟูลสแตก โปรดดูโปรแกรม Executive PG ของ upGrad & IIIT-B ในการพัฒนาซอฟต์แวร์ฟูลสแตก ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 500 ชั่วโมง โครงการมากกว่า 9 โครงการ และการมอบหมายงาน สถานะศิษย์เก่า IIIT-B โครงการหลักและความช่วยเหลือด้านงานกับบริษัทชั้นนำ

คีย์ประเภทต่าง ๆ ใน DBMS มีอะไรบ้าง

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

คีย์ต่างประเทศใน DBMS คืออะไร

Foreign key คือคอลัมน์หรือชุดของคอลัมน์ที่ใช้เชื่อมโยงแถวของตารางหนึ่งกับแถวของอีกตารางหนึ่ง ใช้เพื่อป้องกันไม่ให้ข้อมูลไม่สอดคล้องกัน ใน DBMS มีการใช้คีย์นอกโดยใช้คอลัมน์เดียวหรือชุดของคอลัมน์ (คอลัมน์ลอจิคัล) และ DBMS จะตรวจสอบว่าค่าในคอลัมน์เหล่านี้ตรงกับค่าในคอลัมน์ที่อ้างอิง (คีย์หลัก) หรือไม่ ตัวอย่างเช่น สมมติว่าตาราง A และตาราง B มีคอลัมน์ที่เรียกว่าคอลัมน์ A คุณสามารถพูดได้ว่าคอลัมน์ A ในตาราง A อ้างอิงถึงคอลัมน์ A ในตาราง B ซึ่งสามารถจินตนาการได้ว่าเป็นลูกศรที่มีค่าคีย์ต่างประเทศชี้ไปที่ ตารางเป้าหมาย

คีย์ผสมใน DBMS คืออะไร

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