ความแตกต่างระหว่างคีย์หลักและรหัสผู้สมัคร

ผู้เขียน: Laura McKinney
วันที่สร้าง: 1 เมษายน 2021
วันที่อัปเดต: 3 กรกฎาคม 2024
Anonim
Candidate Key vs Primary Key: Definition and Differences
วิดีโอ: Candidate Key vs Primary Key: Definition and Differences

เนื้อหา


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

มีความแตกต่างเพิ่มเติมระหว่างคีย์หลักและคีย์ผู้สมัครซึ่งฉันจะหารือด้วยความช่วยเหลือของแผนภูมิเปรียบเทียบที่แสดงด้านล่าง

  1. แผนภูมิเปรียบเทียบ
  2. คำนิยาม
  3. ความแตกต่างที่สำคัญ
  4. ข้อสรุป

แผนภูมิเปรียบเทียบ

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


นิยามของคีย์หลัก

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

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

หากความสัมพันธ์มีแอตทริบิวต์ที่เป็นคีย์หลักของความสัมพันธ์อื่น ๆ ดังนั้นแอตทริบิวต์นั้นจะถูกเรียก foreign key.

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


ตอนนี้ให้เราดูตัวอย่างของคีย์หลัก

นักเรียน {ID, First_name, Last_name, อายุ, ที่อยู่}

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

คำจำกัดความของรหัสผู้สมัคร

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

แม้ว่าคีย์ตัวเลือกแต่ละตัวจะมีคุณสมบัติเป็นคีย์หลัก แต่ก็สามารถเลือกได้เพียงคีย์เดียวเท่านั้นเป็นคีย์หลัก กฎที่คีย์ตัวเลือกต้องกลายเป็นคีย์หลักคือค่าของคีย์นั้นไม่สามารถเป็นได้ โมฆะ ในโดเมนใด ๆ ของคีย์จะต้องเป็น เป็นเอกลักษณ์ และ คงที่.

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

ให้เราเข้าใจรหัสผู้สมัครพร้อมตัวอย่าง หากเราเพิ่มคุณสมบัติเพิ่มเติมให้กับความสัมพันธ์ของนักเรียนฉันพูดถึงข้างต้น

นักเรียน {ID, First_name, Last_name, อายุ, ที่อยู่, DOB, Department_name}

ที่นี่ฉันสามารถคิดออก สอง ปุ่มตัวเลือกที่มี {ID}, {First_name, Last_name, DOB}. ดังนั้นคุณจึงสามารถเข้าใจได้ว่าปุ่มตัวเลือกเป็นสิ่งที่ระบุทูเปิลในความสัมพันธ์โดยเฉพาะ

  1. จุดพื้นฐานที่แตกต่างคีย์หลักจากคีย์ผู้สมัครคือว่าสามารถมีเพียงหนึ่งหลักสำหรับความสัมพันธ์ใด ๆ ในสคีมา อย่างไรก็ตามอาจมีปุ่มผู้สมัครหลายคนสำหรับความสัมพันธ์เดียว
  2. แอ็ตทริบิวต์ภายใต้คีย์หลักไม่สามารถมีค่า NULL ได้เนื่องจากฟังก์ชั่นหลักของคีย์หลักคือการระบุระเบียนที่เกี่ยวข้องโดยเฉพาะ แม้แต่คีย์หลักอาจถูกใช้เป็น foreign key ในความสัมพันธ์อื่นและดังนั้นจึงต้องไม่เป็น NULL เพื่อให้การอ้างอิงความสัมพันธ์สามารถค้นหา tuples ในความสัมพันธ์ที่อ้างอิง คีย์ตัวเลือกสามารถเป็น NULL ยกเว้นว่ามีการระบุข้อ จำกัด ของแอตทริบิวต์ไม่เป็นโมฆะ
  3. มันเป็นตัวเลือกในการระบุคีย์หลัก แต่ไม่สามารถมีความสัมพันธ์โดยไม่ต้องใช้คีย์ตัวเลือก
  4. คีย์หลักอธิบายคุณลักษณะเฉพาะและสำคัญที่สุดของความสัมพันธ์ในขณะที่คีย์ตัวเลือกให้ผู้สมัครที่สามารถเลือกเป็นคีย์หลักได้
  5. ทุกคีย์หลักคือคีย์ตัวเลือก แต่ในทางกลับกันไม่เป็นความจริง

สรุป:

เป็นทางเลือกสำหรับความสัมพันธ์เพื่อระบุคีย์หลัก ในทางกลับกันหากคุณกำลังประกาศความสัมพันธ์จะต้องมีคีย์ผู้สมัครในความสัมพันธ์นั้นเพื่อสร้างความสัมพันธ์ที่ดี