เซอโรเกตคีย์ และ เนเชอรัลคีย์ (Surrogate key vs Natural key)
องค์ประกอบการสำคัญของการทำเอสซีจีคือเซอโรเกตคีย์และเนเชอรัลคีย์ โดยทั้งสองมีความหมายแตกต่างตามหัวข้อข้างล่าง
เซอโรเกตคีย์
เซอโรเกตคีย์ คือ ข้อมูลที่ใช้เชื่อมกับเทเบิ้ลอื่น ไม่ได้เป็นส่วนหนึ่งของข้อมูลในเอนติตี้หรือข้อมูลในโลกแห่งความเป็นจริง เป็นข้อมูลเทียมที่ถูกสร้างขึ้นมาเพื่อเชี่ยมกับเทเบิ้ลอื่นเพียงเท่านั้น ลักษณะสำคัญอีกอย่างของเซอโรเกตคีย์คือ ข้อมูลจะไม่มีการซ้ำ
เนเชอรัลคีย์
เนเชอรัลคีย์ คือ ข้อมูลที่ใช้เป็นตัวแทนของเอนติตี้ เป็นข้อมูลในโลกแห่งความจริง ลักษณะสำคัญคือ ข้อมูลจะไม่มีการเปลี่ยนแปลง
ตัวอย่าง
| ข้อมูลการขาย | ||||
|---|---|---|---|---|
| รหัสการขาย | วันเวลาซื้อขาย | เลขข้อมูลลูกค้า | เลขข้อมูลสินค้า | จำนวนสินค้าที่ซื้อ |
| O001 | 20220701 | 1 | 1 | 2 |
| O002 | 20220702 | 2 | 2 | 5 |
| O003 | 20220703 | 1 | 2 | 3 |
| O004 | 20230105 | 3 | 1 | 3 |
| ลูกค้า | |||
|---|---|---|---|
| เลขข้อมูลลูกค้า | รหัสลูกค้า | ชื่อลูกค้า | จังหวัดที่อยู่อาศัย |
| 1 | C001 | ทองดี แน่นะ | กรุงเทพ |
| 2 | C002 | เงินทอง ของจริง | กรุงเทพ |
| 3 | C001 | ทองดี แน่นะ | เชียงราย |
| สินค้า | |||
|---|---|---|---|
| เลขข้อมูลสินค้า | รหัสสินค้า | ชื่อสินค้า | ประเภทสินค้า |
| 1 | P001 | นมวัวตราเสียแน่นอน | เครื่องดื่ม |
| 2 | P002 | ขนมขบเคี้ยวตราเลย | อาหาร |
สังเกตเทเบิ้ลลูกค้า เลขข้อมูลลูกค้า 1 และ 3 เป็นคนเดียวกัน สังเกตจากรหัสลูกค้า C001 เหมือนกัน ความต่างคือ จังหวัดที่อยู่อาศัยที่เปลี่ยนไปจากกรุงเทพเป็นเชียงราย ข้อดีของการทำแบบนี้คือ เมื่อดูเทเบิ้ลข้อมูลการขาย เมื่อนำมาวิเคราะห์ ผู้ใช้จะรู้ว่ารหัสการขาย O001 O003 O004 มาจากลูกค้าคนเดียวกัน แต่ O004 ลูกค้าได้เปลี่ยนจังหวัดไปแล้ว ด้วยวิธีนี้ผู้ใช้จะเห็นการเปลี่ยนแปลงของลูกค้า ในขณะเดียวกัน ข้อมูลการขายเดิมก่อนการเปลี่ยนจังหวัดก็จะไม่โดยผลกระทบด้วย
เลขข้อมูลลูกค้าและเลขข้อมูลสินค้าเป็นเลขที่ถูกสร้างขึ้นมา ในโลกแห่งความเป็นจริงจะไม่เห็นเลขพวกนี้ มันถูกสร้างขึ้นมาเพื่อเชื่อมข้อมูลต่างเทเบิ้ลเท่านั้น ด้วยเหตุนี้เลขข้อมูลลูกค้าและเลขข้อมูลสินค้าจึงจัดเป็นเซอโรเกตคีย์
รหัสลูกค้าและรหัสสินค้าเป็นข้อมูลที่ใช้อ้างอิงเอนติตี้ ในที่นี้คือลูกค้่าและสินค้าตามลำดับ เพื่อให้แน่ใจว่ามันคือเอนติตี้ตัวเดียวกัน เพียงแต่มีการเปลี่ยนแปลงบางอย่างเกิดขึ้น เช่นเปลี่ยนชื่อหรือจังหวัดเป็นต้น ด้วยเหตุนี้รหัสลูกค้าและรหัสสินค้าจึงจัดเป็นเนเชอรัลคีย์
