Back to Home

DataBase System

Lesson123456791011121315

Lesson 14 : Object-Oriented Database



Lesson Plan
Section No.
Section 1
Section 2
Test
PDF file
PPT File


<<Prev pageCourse MapNext page>>

Print content of this page
Save content of this page

 

ความสัมพันธ์เชิงกลุ่ม

    1. Nested Relations

ลักษณะของรีเลชันที่ 1NF นั้น ค่าของข้อมูลของแต่ละแอตทริบิวต์ในหนึ่งทูเปิลต้องมีค่าเดียวจากโดเมนของแอตทริบิวต์นั้น และโดเมนของแอตทริบิวต์นั้นไม่สามารถแบ่งย่อยได้อีก โดยโมเดลความสัมพันธ์เชิงกลุ่มนี้เป็นส่วนขยายของโมเดลเชิงสัมพันธ์ ซึ่งโดเมนอาจจะเป็นได้ทั้ง atomic หรือเป็นรีเลชันก็ได้ ดังนั้นภายในทูเปิลหนึ่ง ค่าข้อมูลของแอตทริบิวต์หนึ่งอาจมีได้หลายค่า และอาจะเป็นรีเลชันซ้อนอยู่ในทูเปิลได้ พิจารณา รีเลชัน R(a, b) มีค่าข้อมูลของ b เป็น รีเลชัน(x, y, z) ดังรูป ที่ 1

a

b

-

x

y

z

-

-

-

-

-

-

-

-

-

-

x

y

z

-

-

-

-

x

y

z

-

-

-

-

-

-

รูปที่ 1 แสดงลักษณะของความสัมพันธ์เชิงกลุ่ม

 ยกตัวอย่างความสัมพันธ์เชิงกลุ่มของข้อมูลพนักงาน โดยมีการเก็บข้อมูลดังนี้

    • employee no รหัสพนักงาน
    • employee name ชื่อพนักงาน
    • child name ชื่อบุตรของพนักงาน(มีได้หลายคน)
    • training list ประวัติการอบรม(มีได้หลายครั้ง)

ถ้าเรากำหนดให้รีเลชันเพียงรีเลชันเดียวเก็บข้อมูลดังกล่าวข้างต้น จะพบว่าข้อมูล 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 ระหว่างรีเลชันมากกว่า

 

 

Last Updated: 12/13/2001 11:29:03 AM
© โครงการเครือข่ายสารสนเทศเพื่อพัฒนาการศึกษา ทบวงมหาวิทยาลัย