เอสซีดีประเภทที่ 1
เอสซีดีประเภททที่ 1 มีชื่อเรียกอีกอย่างว่า “เขียนทับ” หรือ “Overwrite” หลักการคือ เมื่อเอนติตี้มีการเปลี่ยนแปลงข้อมูล ก็ให้เขียนข้อมูลทับไปเลย ข้อมูลที่ผู้ใช้เห็น เป็นข้อมูลปัจจุบันเพียงเท่านั้น
ตัวอย่าง
ข้อมูลก่อนการเปลี่ยนแปลง
ถ้าให้ข้อมูลดั้งเดิมเป็นดังข้อมูลข้างล่าง ให้เลขข้อมูลลูกค้า และ รหัสลูกค้า ในเทเบิ้ลลูกค้าเป็นเซอโรเกตคีย์และเนเชอรัลคีย์ตามลำดับ และให้เทเบิ้ลลูกค้าใช้หลักเอสซีดีประเภทที่ 1
| ข้อมูลการขาย (ข้อมูลก่อน1) | ||||
|---|---|---|---|---|
| รหัสการขาย | วันเวลาซื้อขาย | เลขข้อมูลลูกค้า | เลขข้อมูลสินค้า | จำนวนสินค้าที่ซื้อ |
| O001 | 20220701 | 1 | 1 | 2 |
| O002 | 20220702 | 2 | 2 | 5 |
| O003 | 20220703 | 1 | 2 | 3 |
| ลูกค้า (ข้อมูลก่อน2) | |||
|---|---|---|---|
| เลขข้อมูลลูกค้า SK | รหัสลูกค้า NK | ชื่อลูกค้า | จังหวัดที่อยู่อาศัย |
| 1 | C001 | ทองดี แน่นะ | กรุงเทพ |
| 2 | C002 | เงินทอง ของจริง | กรุงเทพ |
รายงานของข้อมูลก่อนการเปลี่ยนแปลง
สมมติว่าต้องออกรายงานสองรายงาน ได้แก่ ยอดรวมจำนวนสินค้าต่อจังหวัดของลูกค้า และยอดรวมจำนวนสินค้าต่อชื่อลูกค้า ได้รายงานดังด้านล่าง
| รายงานยอดรวมจำนวนสินค้าต่อจังหวัดของลูกค้า (รายงานก่อน1) | |
|---|---|
| จังหวัดลูกค้า | ยอดรวมจำนวนสินค้า |
| กรุงเทพ | 10 |
| รายงานยอดรวมจำนวนสินค้าต่อชื่อลูกค้า (รายงานก่อน2) | |
|---|---|
| ชื่อลูกค้า | ยอดรวมจำนวนสินค้า |
| ทองดี แน่นะ | 5 |
| เงินทอง ของจริง | 5 |
ข้อมูลหลังการเปลี่ยนแปลง
วันที่ 1 มกราคม 2023 นายทองดี แน่นะ ย้ายจังหวัดจากกรุงเทพไปเชียงราย และเปลี่ยนชื่อเป็น ทองดี แน่นอน ผลที่ได้จะเป็นดังข้างล่าง แถบสีน้ำเงินแสดงการเปลี่ยนแปลงเกิดขึ้น
| ข้อมูลการขาย (ข้อมูลหลัง1) | ||||
|---|---|---|---|---|
| รหัสการขาย | วันเวลาซื้อขาย | เลขข้อมูลลูกค้า | เลขข้อมูลสินค้า | จำนวนสินค้าที่ซื้อ |
| O001 | 20220701 | 1 | 1 | 2 |
| O002 | 20220702 | 2 | 2 | 5 |
| O003 | 20220703 | 1 | 2 | 3 |
| ลูกค้า (ข้อมูลหลัง2) | |||
|---|---|---|---|
| เลขข้อมูลลูกค้า SK | รหัสลูกค้า NK | ชื่อลูกค้า | จังหวัดที่อยู่อาศัย |
| 1 | C001 | ทองดี แน่นอน | เชียงราย |
| 2 | C002 | เงินทอง ของจริง | กรุงเทพ |
รายงานของข้อมูลหลังการเปลี่ยนแปลง
สมมติว่าต้องออกรายงานสองรายงาน ได้แก่ ยอดรวมจำนวนสินค้าต่อจังหวัดของลูกค้า และยอดรวมจำนวนสินค้าต่อชื่อลูกค้า ได้รายงานดังด้านล่าง
เมื่อเปรียบเทียบรายงานก่อน1และรายงานหลัง1 จะเห็นว่ารายงานมีการเปลี่ยนแปลงไปโดยเฉพาะยอดตัวเลข ซึ่งไม่ควรเป็นแบบนั้น เพราะยอดที่เปลี่ยนแปลงมันควรเกิดจากแฟกท์ (ข้อมูลก่อน1และข้อมูลหลัง1) แต่แฟกท์ของทั้งสองยังเหมือนเดิม แสดงว่าผลรายงานที่แตกต่างกันเกิดจากไดเมนชันที่เปลี่ยนแปลง (ข้อมูลก่อน2และข้อมูลหลัง2) ซึ่งธรรมชาติของไดเมนชัน ไม่ควรทำให้ยอดของรายงานก่อนหลังเปลี่ยนแปลงได้
แตกต่างจากรายงานก่อน2และรายงานหลัง2 ชื่อลูกค้าอาจเปลี่ยนไปแต่ยอดไม่มีการเปลี่ยนแปลง ซึ่งควรเป็นแบบนั้น เพราะแฟกท์ไม่ได้มีการเปลีย่นแปลง
ข้อน่าสังเกตคือเอสซีดีประเภทที่ 1 ส่งผลให้รายงานเกิดการเปลี่ยนแปลงและไม่เปลี่ยนแปลง ขึ้นอยู่กับคอลัมน์ที่เกิดการเปลี่ยนแปลงนั้น ผู้เขียนสังเกตว่า ถ้าคอลัมน์ที่มีการเปลี่ยนแปลงนั้นเป็นคอลัมน์ที่ข้อมูลในคอลัมน์นั้นห้ามซ้ำกัน ซึ่งในตัวอย่างคือชื่อลูกค้า รายงานจะไม่มีการเปลี่ยนแปลงยอด ในทางตรงข้ามถ้าคอลัมน์ที่มีการเปลี่ยนแปลงเป็นคอลัมมน์ที่อนุญาติให้ข้อมูลในคอลัมน์นั้นซ้ำกันได้ ซึ่งในตัวอย่างคือจังหวัดลูกค้า จะส่งผลให้รายงานมีการเปลี่ยนแปลงยอดตามไปด้วย
| รายงานยอดรวมจำนวนสินค้าต่อจังหวัดของลูกค้า (รายงานหลัง1) | |
|---|---|
| จังหวัดลูกค้า | ยอดรวมจำนวนสินค้า |
| เชียงราย | 5 |
| กรุงเทพ | 5 |
| รายงานยอดรวมจำนวนสินค้าต่อชื่อลูกค้า (รายงานหลัง2) | |
|---|---|
| ชื่อลูกค้า | ยอดรวมจำนวนสินค้า |
| ทองดี แน่นอน | 5 |
| เงินทอง ของจริง | 5 |
การซื้อขายหลังการเปลี่ยนแปลง
วันที่ 5 มกราคม 2023 นายทองดี ได้เข้าไปซื้อของ ผลที่ได้จะเป็นไปดังข้อมูลด้านล่าง ในเทเบิ้ลข้อมูลการขาย แถวใหม่จะเกิดขึ้นมาจากการซื้อของของทองดี และเลขข้อมูลลูกค้ายังเป็น 1 เช่นเดิม
| ข้อมูลการขาย (ข้อมูลหลังการซื้อขาย1) | ||||
|---|---|---|---|---|
| รหัสการขาย | วันเวลาซื้อขาย | เลขข้อมูลลูกค้า | เลขข้อมูลสินค้า | จำนวนสินค้าที่ซื้อ |
| O001 | 20220701 | 1 | 1 | 2 |
| O002 | 20220702 | 2 | 2 | 5 |
| O003 | 20220703 | 1 | 2 | 3 |
| O004 | 20230105 | 1 | 1 | 2 |
| ลูกค้า (ข้อมูลหลังการซื้อขาย2) | |||
|---|---|---|---|
| เลขข้อมูลลูกค้า SK | รหัสลูกค้า NK | ชื่อลูกค้า | จังหวัดที่อยู่อาศัย |
| 1 | C001 | ทองดี แน่นอน | เชียงราย |
| 2 | C002 | เงินทอง ของจริง | กรุงเทพ |
รายงานของข้อมูลหลังการซื้อขาย
สมมติว่าต้องออกรายงานสองรายงาน ได้แก่ ยอดรวมจำนวนสินค้าต่อจังหวัดของลูกค้า และยอดรวมจำนวนสินค้าต่อชื่อลูกค้า ได้รายงานดังด้านล่าง รายงานจะคล้าย รายงานหลัง1 และ รายงานหลัง2 แต่ยอดตัวเลขมีการเปลี่ยนแปลงเพราะมีการซื้อขายเกิดขึ้นมาใหม่
| รายงานยอดรวมจำนวนสินค้าต่อจังหวัดของลูกค้า (รายงานหลังการซื้อขาย1) | |
|---|---|
| จังหวัดลูกค้า | ยอดรวมจำนวนสินค้า |
| เชียงราย | 7 |
| กรุงเทพ | 5 |
| รายงานยอดรวมจำนวนสินค้าต่อชื่อลูกค้า (รายงานหลังการซื้อขาย2) | |
|---|---|
| ชื่อลูกค้า | ยอดรวมจำนวนสินค้า |
| ทองดี แน่นอน | 7 |
| เงินทอง ของจริง | 5 |
ข้อดี
1. การเปลี่ยนแปลงข้อมูลในบางคอลัมน์ของไดเมนชัน ไม่ส่งผลให้ยอดของรายงานเปลี่ยนไป จากการสังเกตของผู้เขียน จะได้แก่คอลัมน์ที่ข้อมูลข้างในไม่ซ้ำกัน ถ้าดูจากตัวอย่าง ชื่อลูกค้าไม่ซ้ำกัน
2. ข้อมูลที่ผู้ใช้เห็น เป็นข้อมูลปัจจุบันแน่นอน
ข้อเสีย
1. การเปลี่ยนแปลงข้อมูลในบางคอลัมน์ของไดเมนชัน ส่งผลให้ยอดของรายงานเปลี่ยนไป จากการสังเกตของผู้เขียน จะได้แก่คอลัมน์ที่ข้อมูลข้างในมีโอกาสซ้ำกันได้ ถ้าดูจากตัวอย่าง จังหวัดมีโอกาสซ้ำกันได้
2. ไม่สามารถตามรอยการเปลี่ยนแปลงที่เกิดขึ้นในไดเมนชันได้
3.ข้อมูลปัจจุบันจะไปเปลี่ยนแปลงอดีตจนยอดรายงานผิดเพี้ยนไป
เหมาะกับไดเมนชันแบบใด
จาการสังเกตของผู้เขียน ต้องเป็นไดเมนชันที่ทุกคอลัมน์เป็นข้อมูลที่ใช้อ้างอิงเอนติตี้โดยตรง ซึ่งถ้าถูกเปลี่ยนมันจะยังคงใช้อ้างอิงเอนติตี้ตัวเดิม โดยไม่ส่งผลกระทบกับรายงาน
