7 ประเภทของคีย์ใน DBMS อธิบาย
เผยแพร่แล้ว: 2021-03-12สารบัญ
คีย์ใน DBMS คืออะไร
คีย์ใน DBMS คือแอตทริบิวต์หรือชุดของแอตทริบิวต์ที่ช่วยระบุทูเพิล (หรือแถว) ในความสัมพันธ์ (หรือตาราง) โดยไม่ซ้ำกัน คีย์ยังใช้เพื่อสร้างความสัมพันธ์ระหว่างตารางและคอลัมน์ต่างๆ ของฐานข้อมูลเชิงสัมพันธ์ ค่าแต่ละค่าในคีย์เรียกว่าค่าคีย์
บล็อกนี้จะครอบคลุมทุกสิ่งที่คุณจำเป็นต้องรู้เกี่ยวกับ คีย์ใน DBMS และ การปิดแอตทริบิวต์ไปยัง ค้นหาคีย์ ของความสัมพันธ์ใด ๆ (ตาราง) อ่านจนจบบทความสำหรับ คำถามสำคัญของ GATE เกี่ยวกับคีย์ใน DBMS
ทำไมจึงต้องมีคีย์
คีย์ถูกใช้ในคำจำกัดความของข้อจำกัดความสมบูรณ์ประเภทต่างๆ ตารางในฐานข้อมูลแสดงถึงชุดของเรกคอร์ดหรือเหตุการณ์สำหรับความสัมพันธ์เฉพาะ ขณะนี้อาจมีบันทึกดังกล่าวเป็นพันๆ รายการ ซึ่งบางรายการอาจทำซ้ำได้
ควรมีวิธีระบุแต่ละระเบียนแยกจากกันและไม่ซ้ำกัน กล่าวคือ ห้ามทำซ้ำ กุญแจช่วยให้เราเป็นอิสระจากความยุ่งยากนี้
ให้เรายกตัวอย่างฐานข้อมูลของนักเรียนแต่ละคนที่กำลังเรียนอยู่ในวิทยาลัยวิศวกรรมศาสตร์
คุณคิดว่าคุณลักษณะใดของนักเรียนที่จะระบุแต่ละคนได้โดยไม่ซ้ำกัน คุณสามารถอ้างอิงถึงนักเรียนโดยใช้ชื่อ แผนก ปี และส่วนงาน หรือคุณสามารถพูดถึงเฉพาะหมายเลขม้วนของมหาวิทยาลัยของนักเรียน และคุณสามารถดูรายละเอียดอื่นๆ ทั้งหมดจากนั้นได้
คีย์อาจเป็นการรวมกันของแอตทริบิวต์มากกว่าหนึ่งรายการ (หรือคอลัมน์) หรือแอตทริบิวต์เดียว แรงจูงใจหลักของเรื่องนี้คือการทำให้แต่ละบันทึกมี เอกลักษณ์ เฉพาะตัว
อ่านเพิ่มเติม: DBMS กับ RDBMS
ประเภทของคีย์ใน DBMS
คีย์ใน DBMS มีเจ็ดประเภทกว้างๆ:
- คีย์หลัก
- รหัสผู้สมัคร
- ซุปเปอร์คีย์
- กุญแจต่างประเทศ
- คอมโพสิตคีย์
- คีย์สำรอง
- คีย์เฉพาะ
ลองดูที่แต่ละรายการแยกกัน
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+:
- การ สะท้อนกลับ: หาก X เป็นซูเปอร์เซตของ Y หรือ Y เป็นเซตย่อยของ X ดังนั้น X ? ย.
- เสริม: ถ้า X ? ใช่แล้ว XZ ? วายซี หรือถ้า Z ⊆W และ X ? ใช่แล้ว XW ? วายซี
- Transitivity: ถ้า X ? Y และ Y ? Z แล้ว X ? ซี.
- ยูเนี่ยน: ถ้า X ? Y และ X ? Z แล้ว X ? วายซี
- การสลายตัว: ถ้า X ? YZ แล้ว X ? Y และ X ? ซี.
- 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 คืออะไร
คีย์ผสมเป็นซุปเปอร์คีย์ เป็นการรวมคอลัมน์ตั้งแต่หนึ่งคอลัมน์ขึ้นไป อนุญาตให้สร้างคีย์เดียวจากการรวมกันของคอลัมน์ต่างๆ เรียกอีกอย่างว่าตัวระบุคอมโพสิต คีย์ผสม หรือคีย์ผสม กล่าวโดยย่อ คุณสามารถใช้ชุดคอลัมน์เพื่อระบุแถวที่ไม่ซ้ำในตารางของคุณ ในกรณีที่คุณไม่มีคอลัมน์เดียวที่สามารถระบุแถวที่ไม่ซ้ำได้ ในกรณีเช่นนี้ ชุดของคอลัมน์ทั้งหมดที่คุณจะใช้จะถูกพิจารณาเป็นคีย์ผสม ดังนั้นจึงสามารถกล่าวได้อย่างถูกต้องว่าคีย์หลักมีมากกว่าหนึ่งคอลัมน์ มันถูกเปลี่ยนชื่อเป็นคีย์ผสม