กลับไปหน้าบทความ

อ่าน 4 นาที

คีย์ตัวแทน

คีย์ ตัวแทน (หรือ คีย์สังเคราะห์ , คีย์เทียม , ตัวระบุเอนทิตี , คีย์ที่ไม่มีข้อเท็จจริง หรือ คีย์ทางเทคนิค ) ใน ฐานข้อมูล เป็นตัวระบุที่ไม่ซ้ำกันสำหรับเอน ทิตี ในโลกจำลองหรือ...

คีย์ตัวแทน

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

คำนิยาม

อย่างน้อยที่สุดมีคำจำกัดความของคำว่า "ตัวแทน" อยู่สองแบบ:

ตัวแทน (1) – ฮอลล์, โอว์เล็ตต์ และท็อดด์ (1976)
ตัวแทนแสดงถึงเอนทิตีในโลกภายนอก ตัวแทนถูกสร้างขึ้นภายในระบบ แต่ยังคงมองเห็นได้โดยผู้ใช้หรือแอปพลิเคชัน[ 2 ]
ตัวแทน (2) – เวียริงก้า และ เดอ ยองเก้ (1991)
ตัวแทน (Surrogate) คือตัวแทนของวัตถุในฐานข้อมูล ตัวแทนนี้ถูกสร้างขึ้นภายในโดยระบบและผู้ใช้หรือแอปพลิเคชันไม่สามารถมองเห็นได้

คำจำกัดความ ของSurrogate (1)เกี่ยวข้องกับแบบจำลองข้อมูลมากกว่าแบบจำลองการจัดเก็บและถูกใช้ตลอดทั้งบทความนี้ ดู Date (1998)

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

แม้ว่า Hall et al. (1976) จะไม่ได้กล่าวถึงเรื่องนี้ แต่ผู้อื่นได้โต้แย้งว่าตัวแทนควรมีลักษณะดังต่อไปนี้:

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

ตัวแทนในทางปฏิบัติ

ในฐานข้อมูลปัจจุบันคีย์สำรอง (surrogate key) อาจเป็นคีย์หลัก (primary key ) ซึ่งสร้างขึ้นโดยระบบจัดการฐานข้อมูลและไม่ได้มาจากข้อมูลแอปพลิเคชันใดๆ ในฐานข้อมูล ความสำคัญเพียงอย่างเดียวของคีย์สำรองคือการทำหน้าที่เป็นคีย์หลัก นอกจากนี้ คีย์สำรองอาจมีอยู่เพิ่มเติมจากUUID ที่สร้างโดยฐานข้อมูล (ตัวอย่างเช่น หมายเลขฝ่ายทรัพยากรบุคคลสำหรับพนักงานแต่ละคน นอกเหนือจาก UUID ของพนักงานแต่ละคน)

คีย์ตัวแทนมักจะเป็นหมายเลขลำดับ (เช่น"คอลัมน์ระบุตัวตน" ของ SybaseหรือSQL Server , PostgreSQLหรือInformixserial , Oracleหรือ SQL Server SEQUENCEหรือคอลัมน์ที่กำหนดไว้AUTO_INCREMENTในMySQL ) ฐานข้อมูลบางแห่งมีUUID / GUIDเป็นประเภทข้อมูลที่เป็นไปได้สำหรับคีย์ตัวแทน (เช่น PostgreSQL UUID[ 3 ]หรือ SQL Server UNIQUEIDENTIFIER[ 4 ] )

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

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

คีย์สำรองบิสซิเนสคีย์ชื่อพนักงานชั่วโมงทำงานต่อสัปดาห์แถวที่ถูกต้องจากแถวที่ถูกต้องถึง
1บOS0120จอห์น สมิธ401 มกราคม 254331 ธันวาคม 2543
56พี0000123บ็อบ บราวน์251 มกราคม 199931 ธันวาคม 2011
234บOS0120จอห์น สมิธ351 มกราคม 254431 ธันวาคม 2552

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

ชื่อเรียกอื่นบางชื่อ ("คีย์ที่สร้างโดยระบบ") อธิบายถึงวิธีการสร้างค่าทดแทนใหม่มากกว่าลักษณะของแนวคิดเรื่องค่าทดแทน

แนวทางในการสร้างตัวแทนประกอบด้วย:

ข้อดี

ความเสถียร

โดยทั่วไปแล้ว คีย์ตัวแทนจะไม่เปลี่ยนแปลงตราบใดที่แถวนั้นยังคงอยู่ ซึ่งมีข้อดีดังต่อไปนี้:

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

การเปลี่ยนแปลงข้อกำหนด

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

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

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

โดเมนปัญหาบางโดเมนไม่ได้ระบุคีย์ธรรมชาติที่เหมาะสมไว้อย่างชัดเจน คีย์ทดแทนช่วยหลีกเลี่ยงการเลือกคีย์ธรรมชาติที่อาจไม่ถูกต้อง

ผลงาน

โดยทั่วไปแล้ว คีย์ตัวแทน (Surrogate key) มักเป็นชนิดข้อมูลขนาดกะทัดรัด เช่น จำนวนเต็มสี่ไบต์ ซึ่งช่วยให้ฐานข้อมูลสามารถค้นหาคอลัมน์คีย์เดียวได้เร็วกว่าการค้นหาหลายคอลัมน์ (ซึ่งมักเป็นข้อความ ซึ่งช้ากว่ามาก) นอกจากนี้ การกระจายคีย์ที่ไม่ซ้ำซ้อนยังทำให้ ดัชนีแบบบีทรี (b-tree index) ที่ได้มีความสมดุลอย่างสมบูรณ์ และคีย์ตัวแทนยังมีค่าใช้จ่ายในการเชื่อมต่อ (join) น้อยกว่า (มีคอลัมน์ที่ต้องเปรียบเทียบน้อยกว่า) คีย์ผสม (compound key ) อีกด้วย

ความเข้ากันได้

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

ความสม่ำเสมอ

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

การตรวจสอบความถูกต้อง

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

ความเรียบง่ายของความสัมพันธ์

คีย์ตัวแทน (Surrogate key) ช่วยให้การสร้างความสัมพันธ์คีย์ต่างประเทศ (Foreign key) ง่ายขึ้น เนื่องจากต้องการเพียงคอลัมน์เดียว (ต่างจากคีย์ผสม (Composite key) ซึ่งต้องการหลายคอลัมน์) เมื่อสร้างคำสั่งค้นหาในฐานข้อมูล การลืมใส่คอลัมน์ทั้งหมดในคีย์ต่างประเทศแบบผสมเมื่อเชื่อมตารางอาจนำไปสู่ผลลัพธ์ที่ไม่คาดคิดในรูปแบบของผลคูณคาร์ทีเซียน ที่ไม่ต้องการ ได้

ข้อเสีย

การแยกตัว

ค่าของคีย์ตัวแทนที่สร้างขึ้นไม่มีความสัมพันธ์กับความหมาย ในโลกแห่งความเป็นจริง ของข้อมูลที่อยู่ในแถว เมื่อตรวจสอบแถวที่มีการอ้างอิงคีย์ต่างประเทศไปยังตารางอื่นโดยใช้คีย์ตัวแทน ความหมายของแถวของคีย์ตัวแทนนั้นไม่สามารถแยกแยะได้จากตัวคีย์เอง คีย์ต่างประเทศทุกตัวจะต้องถูกเชื่อมโยงเพื่อดูรายการข้อมูลที่เกี่ยวข้อง หากไม่ได้ตั้งค่าข้อจำกัดของฐานข้อมูลที่เหมาะสม หรือนำเข้าข้อมูลจากระบบเดิมที่ ไม่ได้ใช้ ความสมบูรณ์ของการอ้างอิงอาจเป็นไปได้ที่จะมีค่าคีย์ต่างประเทศที่ไม่ตรงกับค่าคีย์หลักและจึงไม่ถูกต้อง (ในเรื่องนี้CJ Dateถือว่าการที่คีย์ตัวแทนไม่มีความหมายเป็นข้อดี[ 9 ] )

ในการค้นหาข้อผิดพลาดดังกล่าว จำเป็นต้องทำการค้นหาโดยใช้การเชื่อมต่อภายนอกด้าน ซ้าย (left outer join ) ระหว่างตารางที่มีคีย์ต่างประเทศและตารางที่มีคีย์หลัก โดยแสดงฟิลด์คีย์ทั้งสอง รวมถึงฟิลด์ใดๆ ที่จำเป็นในการแยกแยะระเบียนนั้นๆ ค่าคีย์ต่างประเทศที่ไม่ถูกต้องทั้งหมดจะมีคอลัมน์คีย์หลักเป็น NULL ความจำเป็นในการตรวจสอบเช่นนี้เป็นเรื่องปกติมากจน Microsoft Access มีตัวช่วยสร้าง "ค้นหาแบบสอบถามที่ไม่ตรงกัน" (Find Unmatched Query wizard) ที่สร้าง SQL ที่เหมาะสมหลังจากแนะนำผู้ใช้ผ่านกล่องโต้ตอบ (อย่างไรก็ตาม การสร้างแบบสอบถามดังกล่าวด้วยตนเองก็ไม่ใช่เรื่องยากเกินไป) แบบสอบถาม "ค้นหาแบบสอบถามที่ไม่ตรงกัน" มักใช้เป็นส่วนหนึ่งของ กระบวนการ ทำความสะอาดข้อมูลเมื่อรับช่วงต่อข้อมูลจากระบบเก่า

คีย์ตัวแทน (Surrogate key) ไม่เหมาะสมสำหรับข้อมูลที่ส่งออกและแบ่งปัน ปัญหาที่สำคัญอย่างหนึ่งคือ ตารางจากสองสคีมาที่เหมือนกันทุกประการ (เช่น สคีมาทดสอบและสคีมาสำหรับการพัฒนา) อาจมีเรคอร์ดที่เทียบเท่ากันในเชิงธุรกิจ แต่มีคีย์ที่แตกต่างกัน ปัญหานี้สามารถแก้ไขได้โดยการไม่ส่งออกคีย์ตัวแทน ยกเว้นในรูปแบบข้อมูลชั่วคราว (โดยเฉพาะอย่างยิ่งในการใช้งานแอปพลิเคชันที่มีการเชื่อมต่อกับฐานข้อมูลแบบ "สด")

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

การเพิ่มประสิทธิภาพการค้นหา

ฐานข้อมูลเชิงสัมพันธ์นั้นถือว่า มีการใช้ ดัชนี เฉพาะ (unique index ) กับคีย์หลักของตาราง ดัชนีเฉพาะนี้มีวัตถุประสงค์สองประการคือ (i) เพื่อบังคับใช้ความสมบูรณ์ของเอนทิตี เนื่องจากข้อมูลคีย์หลักต้องไม่ซ้ำกันในแต่ละแถว และ (ii) เพื่อค้นหาแถวได้อย่างรวดเร็วเมื่อมีการสอบถามข้อมูล เนื่องจากคีย์ทดแทน (surrogate key) เข้ามาแทนที่แอตทริบิวต์ที่ใช้ระบุตัวตนของตาราง ซึ่งก็คือคีย์ธรรมชาติ (natural key ) และเนื่องจากแอตทริบิวต์ที่ใช้ระบุตัวตนมักจะเป็นแอตทริบิวต์ที่ถูกสอบถาม ดังนั้นตัวเพิ่มประสิทธิภาพการสอบถาม (query optimizer) จึงถูกบังคับให้ทำการสแกนตารางทั้งหมดเมื่อทำการสอบถามข้อมูลที่อาจเกิดขึ้น วิธีแก้ไขการสแกนตารางทั้งหมดคือการใช้ดัชนีกับแอตทริบิวต์ที่ใช้ระบุตัวตน หรือชุดของแอตทริบิวต์เหล่านั้น ในกรณีที่ชุดของแอตทริบิวต์เหล่านั้นเป็นคีย์ที่ต้องการ ( candidate key ) ดัชนีนั้นสามารถเป็นดัชนีเฉพาะได้

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

การทำให้เป็นมาตรฐาน

คีย์ตัวแทนอาจทำให้เกิดค่าซ้ำในคีย์ธรรมชาติ ใดๆ ก็ได้ เพื่อป้องกันการซ้ำซ้อน เราต้องรักษาสภาพของคีย์ธรรมชาติให้เป็นข้อจำกัดที่ไม่ซ้ำกันเมื่อกำหนดตารางโดยใช้CREATE TABLEคำสั่ง SQL หรือALTER TABLE ... ADD CONSTRAINTคำสั่ง หากข้อจำกัดเหล่านั้นถูกเพิ่มเข้ามาในภายหลัง

การสร้างแบบจำลองกระบวนการทางธุรกิจ

เนื่องจากคีย์ตัวแทน (surrogate key) นั้นไม่เป็นธรรมชาติ จึงอาจเกิดข้อผิดพลาดขึ้นได้เมื่อทำการสร้างแบบจำลองความต้องการทางธุรกิจ ความต้องการทางธุรกิจซึ่งอาศัยคีย์ธรรมชาติ (natural key) จำเป็นต้องถูกแปลงเป็นคีย์ตัวแทนเสียก่อน กลยุทธ์หนึ่งคือการแยกความแตกต่างอย่างชัดเจนระหว่างแบบจำลองเชิงตรรกะ (ซึ่งไม่มีคีย์ตัวแทนปรากฏอยู่) และการนำไปใช้งานจริงของแบบจำลองนั้น เพื่อให้แน่ใจว่าแบบจำลองเชิงตรรกะถูกต้องและมีการทำให้เป็นมาตรฐาน (normalized) อย่างเหมาะสม และเพื่อให้แน่ใจว่าแบบจำลองทางกายภาพเป็นการนำไปใช้งานที่ถูกต้องของแบบจำลองเชิงตรรกะ

การเปิดเผยโดยไม่ได้ตั้งใจ

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

มีหลายวิธีที่จะแก้ไขปัญหานี้ได้:

  • เพิ่มหมายเลขลำดับด้วยจำนวนสุ่ม
  • สร้างคีย์แบบสุ่ม เช่นUUID

ข้อสันนิษฐานโดยไม่ได้ตั้งใจ

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

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Surrogate_key&oldid=1329765471 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ คีย์ตัวแทน

คีย์ ตัวแทน (หรือ คีย์สังเคราะห์ , คีย์เทียม , ตัวระบุเอนทิตี , คีย์ที่ไม่มีข้อเท็จจริง หรือ คีย์ทางเทคนิค ) ใน ฐานข้อมูล เป็นตัวระบุที่ไม่ซ้ำกันสำหรับเอน ทิตี ในโลกจำลองหรือ...

คำนิยาม

อย่างน้อยที่สุดมีคำจำกัดความของคำว่า "ตัวแทน" อยู่สองแบบ:

ตัวแทนในทางปฏิบัติ

ใน ฐานข้อมูลปัจจุบัน คีย์สำรอง (surrogate key) อาจเป็น คีย์หลัก (primary key ) ซึ่งสร้างขึ้นโดย ระบบจัดการฐานข้อมูล และ ไม่ ได้มาจากข้อมูลแอปพลิเคชันใดๆ ในฐานข้อมูล ความสำคัญเพียงอย่างเดียวของคีย์สำรองคือการทำหน้าที่เป็นคีย์หลัก นอกจากนี้...

ความเสถียร

โดยทั่วไปแล้ว คีย์ตัวแทนจะไม่เปลี่ยนแปลงตราบใดที่แถวนั้นยังคงอยู่ ซึ่งมีข้อดีดังต่อไปนี้: