คีย์หลักในฐานข้อมูล SQL: อะไรคือข้อดี & วิธีเลือก

เผยแพร่แล้ว: 2021-05-25

สารบัญ

คีย์หลักคืออะไร

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

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

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

อ่าน: การทำให้เป็นมาตรฐานในSQL

ข้อดีของคีย์หลักคืออะไร

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

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

รายการด้านล่างสรุปข้อดีหลักของคีย์หลัก:

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

วิธีการเลือกคีย์หลัก?

ตารางประกอบด้วยอ็อบเจ็กต์หลักในฐานข้อมูล SQL ตารางเหล่านี้จัดเก็บข้อมูลเป็นระเบียนหรือแถว ดังนั้น ในการระบุแต่ละแถวของตาราง เราจำเป็นต้องค้นหาคอลัมน์ในตารางเดียวกันโดยมีค่าอินพุตต่างกันสำหรับแต่ละแถว ตัวอย่างเช่น สมมติว่าเรามีตารางที่มีข้อมูลเกี่ยวกับพลเมืองสหรัฐฯ ทุกคน คอลัมน์ชื่อ 'social_security_number' จะช่วยแยกแยะระหว่างแถวหนึ่งกับอีกแถวในตารางดังกล่าว

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

ในทั้งสองตัวอย่างนี้ เมื่อคุณระบุคอลัมน์ที่มีค่าต่างกันสำหรับแต่ละแถวในตารางแล้ว นั่นคือ 'social_security_number' และ 'account_number' คุณสามารถสร้างคีย์หลักได้ คีย์หลักนี้จะเป็นตัวระบุหลักของคุณสำหรับทุกแถวในตาราง โดยยึดตามคอลัมน์เฉพาะที่คุณระบุ

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

ลักษณะของคีย์หลักที่แข็งแกร่งมีดังนี้:

  1. คีย์หลักที่รัดกุมมักจะมีความยาวสั้น กะทัดรัด และมีแอตทริบิวต์ที่น้อยที่สุด ชนิดข้อมูลแบบยาวและคีย์ผสมช่วยเพิ่มความซับซ้อนให้กับ SQL ความยาวคีย์หลักไม่ควรเกิน 900 ไบต์
  2. คีย์หลักที่เป็นตัวเลขทั้งหมดช่วยในการเพิ่มประสิทธิภาพของคิวรี
  3. หลีกเลี่ยงการใช้อักขระพิเศษหรือตัวพิมพ์ใหญ่และตัวพิมพ์เล็กผสมกัน หลีกเลี่ยงการใช้ประเภทข้อมูลข้อความ เนื่องจาก SQL ใช้เวลานานกว่ามากในการเปรียบเทียบค่าสตริงมากกว่าค่าตัวเลข
  4. หลีกเลี่ยงข้อมูลที่สามารถระบุตัวตนได้จากคอลัมน์ที่ไม่ใช่คีย์ในแถวเดียวกัน เช่น รหัสไปรษณีย์ ที่อยู่อีเมล และหมายเลขประกันสังคม หากคีย์หลักอิงตามข้อมูลจริง อาจต้องมีการเปลี่ยนแปลงในอนาคต ซึ่งเป็นแนวทางปฏิบัติในการสร้างแบบจำลองที่ไม่เหมาะสม หากคีย์หลักเป็นตัวระบุโดยอำเภอใจ ข้อมูลที่แสดงต่อผู้ใช้อาจเปลี่ยนแปลงในภายหลัง แต่ตัวระบุไม่จำเป็นต้องทำ
  5. ค่าคีย์หลักต้องคงที่และไม่แก้ไข

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

ชำระเงิน: แนวคิดและหัวข้อโครงการ SQL

คีย์หลักที่มีมากกว่าหนึ่งคอลัมน์

ในบางกรณี ไม่มีคีย์หลักแบบคอลัมน์เดียวแบบธรรมชาติ เมื่อใช้หลายคอลัมน์เพื่อกำหนดคีย์หลัก จะเรียกว่าคีย์หลักแบบหลายคอลัมน์หรือแบบผสม ตัวอย่างเช่น สมมติว่าเรามีตาราง 'การจอง' ที่มีคอลัมน์ 'customer_name', 'reservation_day', 'reservation_time' และ 'number_of_people'

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

การพิจารณานี้ไม่ควรเกิน 32 คอลัมน์ ยิ่งจำนวนคอลัมน์มากเท่าไร ความต้องการพื้นที่จัดเก็บก็จะยิ่งมากขึ้นเท่านั้น ไวยากรณ์เพื่อเพิ่มคีย์หลักแบบหลายคอลัมน์จะแตกต่างจากการเพิ่มคีย์หลักแบบคอลัมน์เดียว

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

สรุป

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

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

หากคุณอยากเรียนรู้เกี่ยวกับ SQL, การพัฒนาฟูลสแตก, ลองดู IIIT-B & upGrad's Executive PG Program ในการพัฒนาซอฟต์แวร์ฟูลสแตก ซึ่งสร้างขึ้นสำหรับมืออาชีพที่ทำงานและมีกรณีศึกษาและโครงการมากกว่า 10+ เวิร์กช็อปเชิงปฏิบัติ การให้คำปรึกษากับผู้เชี่ยวชาญในอุตสาหกรรม ตัวต่อตัวกับที่ปรึกษาในอุตสาหกรรม การเรียนรู้มากกว่า 400 ชั่วโมงและความช่วยเหลือด้านงานกับบริษัทชั้นนำ

คีย์หลักใน SQL คืออะไร?

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

คุณสมบัติของคีย์หลักใน SQL คืออะไร?

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

จะเลือกคีย์หลักใน SQL ได้อย่างไร?

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