มัลติวาล์ยูดีเพนเดนซี (Multivalued dependency)
ก่อนเริ่มการทำนอมอลไลเซชัน (Normalization) ต้องมาทำความเข้าใจกับคำว่ามัลติวาล์ยูดีเพนเดนซีก่อน โดยสิ่งนี้จะถูกใช้ในการบ่งบอกลักษณะของคอลัมน์รวมถึงใช้กำหนดลักษณะของนอมอลไลเซชัน
มัลติวาล์ยูดีเพนเดนซีคืออะไร
มัลติวาล์ยูดีเพนเดนซีในความหมายของฐานข้อมูล เป็นการแสดงความสัมพันธ์ระหว่างคอลัมน์ในเทเบิล (Table) โดยจะมีคอลัมน์หรือชุดคอลัมน์ซึ่งใช้เป็นตัวแทนข้อมูลของคอลัมน์อื่นที่เรียกว่าตัวตั้ง (Determinant) และเรียกคอลัมน์หรือชุดคอลัมน์ในเทเบิลที่สามารถใช้ตัวตั้งเป็นตัวแทนได้ว่าตัวตาม (Dependent) ลักษณะสำคัญคือเมื่อหยิบสมาชิกของตัวตั้งตัวใดก็ได้มาหนึ่งตัว จะได้สมาชิกของตัวตามมากว่าหนึ่งตัว ถ้าให้ตัวตัั้งคือ X และตัวตามคือ Y จะเขียนสัญลักษณ์ได้ว่า X→→Y
ตัวอย่างที่ 1
| ชื่อจริง | นามสกุล | งานอดิเรก |
|---|---|---|
| สมชาย | จริงใจ | เล่นคอม |
| สมชาย | จริงใจ | นอน |
| สมหญิง | จริงจริงนะ | ว่ายน้ำ |
| สมหญิง | จริงจริงนะ | อ่านหนังสือ |
จากข้อมูลในตัวอย่างนี้ เคนดิเดทคีย์จะเป็น {ชื่อจริง, นามสกุล, งานอดิเรก} นั้นหมายความว่าไม่มีความสัมพันธ์แบบฟังก์ชันนอลดีเพนเดนซีไม่ธรรมดา (Non-trivial Functional Dependencies) แต่ถ้ามองด้วยตาและทำความเข้าใจข้อมูล ก็น่าจะพอคาดเดาได้ว่า งานอดิเรกเป็นคอลัมน์ที่ตามชุดคอลัมน์ {ชื่อจริง, นามสกุล} เพียงแต่ว่าคนหนึ่งคนมีหลายงานอดิเรก ก็เลยเกิดข้อมูลหน้าตาแบบนี้ ด้วยเหตุนี้ความสัมพันธ์ระหว่าง {ชื่อจริง, นามสกุล} และ งานอดิเรก จึงเป็น มัลติวาล์ยูเพนเดนซี ซึ่งเขียนได้ดังนี้ {ชื่อจริง, นามสกุล}→→งานอดิเรก
ตัวอย่างที่ 2
| ร้านค้า | สาขา | สินค้า |
|---|---|---|
| เซเว่นทเวล | ลาดพร้าว | บะหมี่กึ่งจิงจิง |
| เซเว่นทเวล | ห้วยขวาง | บะหมี่กึ่งจิงจิง |
| เซเว่นทเวล | ลาดพร้าว | เยลลี่แมว |
| เซเว่นทเวล | ห้วยขวาง | เยลลี่แมว |
| บอททอม | บางกะปิ | เยลลี่แมว |
| บอททอม | ลาดพร้าว | บะหมี่กึ่งจิงจิง |
จากข้อมูลตัวอย่าง เป็นข้อมูลสินค้่าที่มีขายบนร้านค้าและสาขา เช่นเดียวกับตัวอย่างแรก เคนดิเดทคีย์จะเป็น {ร้านค้า, สาขา, สินค้า} นั้นหมายความว่าไม่มีความสัมพันธ์แบบฟังก์ชันนอลดีเพนเดนซีไม่ธรรมดา (Non-trivial Functional Dependencies) แต่ถ้ามองด้วยตาและทำความเข้าใจข้อมูล สาขาเป็นคอลัมน์ที่ตามคอลัมน์ร้านค้า โดยหนึ่งร้านค้าอาจจะมีหลายสาขา ด้วยเหตุนี้ความสัมพันธ์ระหว่งร้านค้าและสาขาจึงเป็นมัลติวาล์ยูเพนเดนซี ซึ่งเขียนได้ดังนี้ ร้านค้า→→สาขา
ในส่วนของความสัมพันธ์ระหว่างคอลัมน์สินค้ากับคอลัมน์อื่น มีความเป็นไปได้สองอย่าง
ความเป็นไปได้ที่ 1
ถ้าข้อมูลในเทเบิ้ลนี้ถูกใช้เพื่อบ่งบอกว่าสินค้านี้ถูกขายในร้านค้าและสาขาใด แต่การบันทึกค่าใช้จ่ายในการซื้อสินค้าให้ลงบัญชีกับร้านค้าไม่ใช่กับสาขา ในกรณีนี้ สินค้าจะสัมพันธ์กับร้านค้า ไม่ใช่สาขา และจากข้อมูล หนึ่งร้านค้าอาจจะมีสินค้ามากกว่าหนึ่งตัว นั้นหมายความว่าความสัมพันธ์ระหว่างร้านค้าและสินค้าเป็นมัลติวาล์ยูเพนเดนซี ซึ่งเขียนไ้ด้ดังนี้ ร้านค้า→→สินค้า
ความเป็นไปได้ที่ 2
ถ้าข้อมูลในเทเบิ้ลนี้ถูกใช้เพื่อบ่งบอกว่าสินค้านี้ถูกขายในร้านค้าและสาขาใด แต่การบันทึกค่าใช้จ่ายในการซื้อสินค้าให้ลงบัญชีกับสาขา ในกรณี้ สินค้าจะสัมพันธ์กับสาขา และจากข้อมูล หนึ่งสาขาอาจจะมีสินค้ามากกว่าหนึ่งตัว นั้นหมายความว่าความสัมพันํ์ระหว่างสาขาและสินค้าเป็นมัลติวาล์ยูเพนเดนซี ซึ่งเขียนได้ดังนี้ สาขา→→สินค้า ซึ่งถ้ารวมความสัมพันธ์ระหว่างร้านค้าและสาขาเข้าไปด้วย ก็จะได้ความสัมพันธ์ ร้านค้า→→สาขา→→สินค้า
ข้อสังเกต
ความสัมพันธ์แบบมัลติวาล์ยูดีเพนเดนซี เป็นความสัมพันธ์ที่ไม่ได้ดูแค่ตัวข้อมูลอย่างเดียว แต่ยังต้องเข้าใจถึงที่มาและบริบทของข้อมูลในโลกแห่งความเป็นจริงด้วยถึงจะเขียนออกมาได้ ซึ่งแตกต่างจากฟังก์ชันนอลดีเพนเดนซีซึ่งอาศัยแค่ตัวข้อมูลเพียงอย่างเดียว
