ความสัมพันธ์เชิงกลุ่ม
ลักษณะของรีเลชันที่ 1NF นั้น ค่าของข้อมูลของแต่ละแอตทริบิวต์ในหนึ่งทูเปิลต้องมีค่าเดียวจากโดเมนของแอตทริบิวต์นั้น และโดเมนของแอตทริบิวต์นั้นไม่สามารถแบ่งย่อยได้อีก โดยโมเดลความสัมพันธ์เชิงกลุ่มนี้เป็นส่วนขยายของโมเดลเชิงสัมพันธ์ ซึ่งโดเมนอาจจะเป็นได้ทั้ง atomic หรือเป็นรีเลชันก็ได้ ดังนั้นภายในทูเปิลหนึ่ง ค่าข้อมูลของแอตทริบิวต์หนึ่งอาจมีได้หลายค่า และอาจะเป็นรีเลชันซ้อนอยู่ในทูเปิลได้ พิจารณา รีเลชัน R(a, b) มีค่าข้อมูลของ b เป็น รีเลชัน(x, y, z) ดังรูป ที่ 1
a |
b |
||
- |
x |
y |
z |
- |
- |
- |
|
- |
- |
- |
|
- |
- |
- |
|
- |
x |
y |
z |
- |
- |
- |
|
- |
x |
y |
z |
- |
- |
- |
|
- |
- |
- |
รูปที่ 1 แสดงลักษณะของความสัมพันธ์เชิงกลุ่ม
ยกตัวอย่างความสัมพันธ์เชิงกลุ่มของข้อมูลพนักงาน โดยมีการเก็บข้อมูลดังนี้
ถ้าเรากำหนดให้รีเลชันเพียงรีเลชันเดียวเก็บข้อมูลดังกล่าวข้างต้น จะพบว่าข้อมูล children และ training จะมีลักษณะของโดเมนที่ nonatomic ดังรูปที่ 2 และรูปที่ 3 แสดงรีเลชัน employee ที่มีลักษณะของโดเมนที่ atomic ซึ่งมีคุณสมบัติ 1NF
empno |
name |
childname |
training(tno, tdate) |
105 |
John |
(Jane, Eric) |
(125, 02/05/80) (168, 07/06/81) (198, 03/04/83) |
123 |
Anna |
(Maria) |
(132, 10/04/80) (145, 06/10/81) |
รูปที่ 2 แสดงรีเลชัน Employee ที่ไม่มีคุณสมบัติ 1NF
empno |
name |
childname |
tno |
tdate |
105 105 105 105 105 105 |
John John John John John John |
Jane Jane Jane Eric Eric Eric |
125 168 198 125 168 198 |
02/05/80 07/06/81 03/04/83 02/05/80 07/06/81 03/04/83 |
123 123 |
Anna Anna |
Maria Maria |
132 145 |
10/04/80 06/10/81 |
รูปที่ 3 แสดงรีเลชัน Employee ที่มีคุณสมบัติ 1NF
จะพบว่ารีเลชัน employee ในรูปที่ 3 มีลักษณะของฟังก์ชันการขึ้นต่อกันเชิงกลุ่ม(Multivalued dependencies) ดังนี้
empno
name
empno
childname
empno
tno, tdate
ดังนั้นเราสามารถแยกรีเลชันให้อยู่ใน 4NF ดังนี้
(empno, name)
(empno, childname)
(empno, tno, tdate)
รูปที่ 4 แสดงรีเลชันที่ได้จากการแตกรีเลชัน employee
empno |
Name |
105 |
John |
123 |
Anna |
empno |
childname |
105 105 |
Jane Eric |
123 |
Maria |
empno |
tno |
Tdate |
105 105 105 |
125 168 198 |
02/05/80 07/06/81 03/04/83 |
123 123 |
132 145 |
10/04/80 06/10/81 |
รูปที่ 4 แสดงรีเลชันที่ 4 NF
รีเลชันที่มีคุณสมบัติ 1 NF ในรูปที่ 3 สามารถแสดงให้เราเห็นถึงลักษณะของข้อมูลที่มีการจัดเก็บในฐานข้อมูล แต่ ถ้าพิจารณารีเลชันในรูปที่ 2 จะพบว่าสามารถที่จะทำความเข้าใจในข้อมูลได้ง่ายกว่า เนื่องจากการสืบค้นข้อมูลโดยทั่วไป จะไม่ได้ สนใจว่าข้อมูลที่ต้องจะต้องอยู่ในรูปของ 1 NF(ค่าข้อมูลเพียงค่าเดียว) แต่จะสนใจกับข้อมูลเป็นกลุ่มมากกว่า ซึ่งจะพบว่ารีเลชันที่มีคุณสมบัติ 4 NF ในรูปที่ 4 จะมีผลทำให้การสืบค้นข้อมูลมีความซับซ้อนมากกว่าเนื่องจากต้องมีการ join ระหว่างรีเลชันมากกว่า