8

Click here to load reader

chapter05 the relational data model and relational database constraints

Embed Size (px)

Citation preview

Page 1: chapter05 the relational data model and relational database constraints

2110422 การออกแบบระบบการจัดการฐานขอมูล 5-1 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

บทที่ 5* รูปแบบขอมูลเชิงสัมพันธและขอบังคับของฐานขอมูลเชิงสัมพันธ

The Relational Data Model and Relational Database Constraints

วัตถุประสงค 1. เพื่อศึกษาแนวคิดรูปแบบเชิงสัมพันธ 2. เพื่อใหสามารถกําหนดรูปแบบเชิงสัมพันธและเคารางฐานขอมูลเชิงสัมพันธ 3. เพื่อใหสามารถสรางขอกําหนดการใชงานในการแทรกขอมูล การลบขอมูลและการเปลี่ยนแปลงขอมูล

5.1 แนวคิดรูปแบบเชิงสัมพันธ รูปแบบเชิงสัมพันธน้ีถูกคิดคนโดย ดร. อี เอฟ คอดด (Dr. E. F. Codd) จากบริษัทไอบีเอ็มในปค.ศ 1970 ซ่ึง

กลาวไววา “รูปแบบเชิงสัมพันธน้ีถือไดวาเปนการเก็บขอมูลรวมกันที่มีขนาดใหญ” โดยฐานขอมูลเชิงสัมพันธจะ

ประกอบดวยกลุมขอมูลที่มีความสัมพันธซ่ึงกันและกัน มาเชื่อมโยงกันโดยอาศัยหลักทฤษฎีความสัมพันธเชิง

คณิตศาสตร มาใชในการจัดการขอมูลไดเปนอยางดี

5.2 นิยามของความสัมพันธ (Relation)

5.2.1 นิยามอยางไมเปนทางการ ความสัมพันธ (Relation) หรือเรียกทับศัพทวารีเลชัน มีคําเรียกทั่วไปวาตาราง (Table) ซ่ึงประกอบไปดวยกลุมของแถว (Row) หรือเรคคอรด (Record) โดยเรคคอรดจะแทนกลุมของขอมูลที่มีความสัมพันธกัน ในแบบจําลอง

เชิงสัมพันธน้ันขอมูลในแตละแถวจะแทนเอนทิตีจริง ซ่ึงชื่อของตารางและคอลัมน (Column) จะถูกใชชวยในการแปลงความหมายคาในแตละแถว ซ่ึงขอมูลที่อยูในแตละแถวนั้นจะตองไมซํ้ากัน บางครั้งขอมูลในแตละแถวที่กําหนด

ไวเปนหมายเลขรหัสหรือหมายเลขที่เรียงกัน จะถูกใชในการอางถึงในแตละตาราง โดยคอลัมนที่ถูกอางถึงน้ันจะเปน

คอลัมนที่สําคัญ เราจะเรียกชื่อในแตละคอลัมนวาแอทตริบิวต (Attribute)

5.2.2 นิยามอยางเปนทางการ รีเลชั่นสามารถกําหนดรูปแบบไดหลายแบบ ถาเคารางของรีเลชั่นเปน R(A1,A2,A3,…,An) สัญกรณ R เปนชื่อของความสัมพันธหรือตาราง และ Ai คือชื่อแอทตริบิวตตัวที ่i โดย i มีคาตั้งแต 1 จนถึง n ซ่ึงแตละแอทตริบิวตจะมี

คาทั้งหมดที่เปนไปได จะถูกเรียกวาโดเมน (Domain) ของแอทตริบิวต ซ่ึงสามารถเขียนไดวา Dom(Ai) ตัวอยาง

Customer(Cust-id,Cust-name,Address,Phone#)

หมายถึงตารางความสัมพันธชื่อ Customer ประกอบดวย 4 แอทตริบิวต ไดแก Cust-id Cust-name Address และ Phone# โดยแตละแอทตริบิวตน้ัน จะมีกลุมขอมูลหรือโดเมนเปนของตัวเอง ซ่ึงจะขึ้นอยูกับชนิด

ขอมูลตามที่ไดกําหนดไว เชนแอทตริบิวต Cust-id สามารถกําหนดใหเปนชนิด Text หรือ Character โดยมี 6

ตัวอักษร (Digit) หมายถึงแอทตริบิวต Cust-id จะมีขอมูลเปนตัวอักษร (ไมสามารถคํานวณได) ที่ไมเกิน 6

ตัวอักษร

* อางอิงจากบทที่ 5 ของเอกสารอางอิง [1]

Page 2: chapter05 the relational data model and relational database constraints

2110422 การออกแบบระบบการจัดการฐานขอมูล 5-2 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

กลุมขอมูลในแตละแถวจะถูกเรียกวา ทูเพิล (Tuple) โดยขอมูลน้ันจะประกอบดวยขอมูลในโดเมนของแตละแอทตริบิวต เชน ทูเพิล < “243658”, “Wiwat”, “235 Pomprakarn Bangkok” , “0815648523” > ซ่ึงจะประกอบดวยขอมูล 4 กลุม โดยขอมูลแตละกลุมน้ันจะเปนสมาชิกของโดเมนในแตละแอทตริบิวต เชน Wiwat เปนสมาชิกของโดเมนในแอทตริบิวต Cust-name ของตารางความสัมพันธ Customer โดเมนนั้นจะถูกกําหนดตามชนิดของขอมูล (data-type) หรือรูปแบบของขอมูล (format) ซ่ึงอาจจะอยูในรูปของเลขหมายโทรศัพท เชน (xxx)-xxx-xxxx หรือกําหนดใหอยูในรูปของวัน (Date) ก็สามารถกําหนดไดเปน dd-mmm-yyyy ซ่ึง แอทตริบิวตที่เก่ียวกับวันที่น้ันจะถูกนําไปใชในการกําหนดขอมูลอยางเชน วันที่อยูในใบแจงยอด

สินคา หรือวันที่อยูในใบเสร็จรับเงิน

ถา R(A1,A2,A3,…..,An) แลว r(R) หมายถึง เซตของทูเพิลที่อยูในรีเลชั่นน้ัน โดยแตละทูเพิลน้ันจะ

ประกอบดวยคาของโดเมนในแตละแอทตริบิวต ซ่ึงรวมไปถึงคาวาง (null) ดวย ดังน้ัน ถา R เปนเคารางของรีเลชัน

(schema) แลว r จะเปนขอมูลของกลุมสมาชิกทั้งหมดที่อยูใน R หรือ R ถูกนับไดวาเปนรีเลชันโดยตรง

(intension) แลวเรียก r เปนสวนขยายของรีเลชั่น (extension) ตัวอยาง

กําหนดตารางรีเลชั่น X(A,B,C) แลว Dom(A)={1,2,3} Dom(B)={M,N} Dom(C)={0,1} เราจะไดผลผลิตของจํานวนทูเพิลทั้งหมดเปนผลคูณคารทีเซียน (Cartesian product) ของจํานวน

แอทตริบิวตของทุกโดเมน ดังน้ัน จํานวน Dom(A) x จํานวนDom(B )x จํานวนDom(C)

= 3x2x2 = 12 ทูเพิล เพราะฉะนั้น ตารางรีเลชั่น X มีทูเพิลสูงสุดได 12 ทูเพิล ในที่น้ี r(X) = {<1,M,1>,<2,M,0>,<3,N,0>,<2<N,1>}

สรุปนิยามศัพทที่เกี่ยวของ

ศัพททั่วไป ศัพทเทคนิค

ตาราง (Table) รีเลชัน (Relation)

คอลัมน (Column) แอทตริบิวต (Attribute)/ โดเมน (Domain)

แถว (Row) ทูเพิล (Tuple)

ขอบเขตคาของขอมูล (Values in a column) โดเมน (Domain)

ขอบเขตตาราง (Table Definition) เคารางของรีเลชัน (Schema of a Relation) ตารางที่ 5.1

สรุปนิยามศัพท

ที่เก่ียวของ ตารางที่มีขอมูลแลว (Populated Table) สวนขยาย (Extension)

Page 3: chapter05 the relational data model and relational database constraints

2110422 การออกแบบระบบการจัดการฐานขอมูล 5-3 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

รูปที่ 5.1 ตัวอยางรีเลชัน

รูปที่ 5.1 แสดงถึงชื่อรีเลชัน คือ Student มีแอทตริบิวต 7 แอทตริบิวต ประกอบดวย Name, SSN, HomePhone, Address, OfficePhone, Age และ GPA โดยมีจํานวน 5 ทูเพิล

5.3 ลักษณะของรีเลชัน • ทูเพิลที่อยูในรีเลชันจะแสดงอยูในรูปตาราง • แอทตริบิวตที่อยูในเคารางรีเลชันน้ันจะพิจารณาจาก R(A1,A2,A3,….,An) โดยมีขอบเขตขอมูลอยูในแตละ

ทูเพิล t=<V1,V2,V3,…,Vn> • ขอบเขตขอมูลในทูเพิลจะไมสามารถแยกขอมูลยอยออกไปไดอีก (Atomic) • R(A1,A2,A3,…An) หมายถึง เคารางของรีเลชัน R ในระดับที่ n • t = <V1,V2,V3,…,Vn> หมายถึง ทูเพิลที่อยูในเคารางรีเลชัน r(R) ซ่ึง Vi จะเปนคาขอมูลที่อยูภายใต

แอทตริบิวต Ai • เราจะอางถึงคาขอมูลของแตละทูเพิลไดเปน t[Ai] =Vi หรือ t.Ai = Vi (คาขอมูลของแอทตริบิวต Ai

สําหรับทูเพิลที่ t) • ซ่ึงในทํานองเดียวกัน t(Au,Av,…….,Aw) จะเปนการอางถึง ซับทูเพิลของ t โดยมีคาขอมูลของแอทตริบิวต

เปน Au,Av,….,Aw ตามลําดับ

รูปที่ 5.2 แสดงถึงลักษณะของ

รีเลชัน

5.4 เงื่อนไขบังคับ 5.4.1 เงื่อนไขบงัคบัของฐานขอมูลเชิงสัมพันธ (Relational Database Constraints) • เง่ือนไขบังคับที่ขึ้นอยูกับภายในโมเดล : จะไมมีทูเพิลที่ซํ้ากัน • เง่ือนไขบังคับที่ขึ้นอยูกับเคาราง : จะตองมีการกําหนดขอบเขตขอมูลตามเคาราง ที่ไดมีการกําหนดไวอยูใน

ภาษาสําหรับนิยามขอมูล (Data Definition Language หรือ DDL) • เง่ือนไขบังคับที่ขึ้นอยูกับโปรแกรมประยุกต : จะถูกแสดงและนําไปใชโดยโปรแกรมประยุกต

5.4.2 เงื่อนไขบงัคบัของรีเลชัน (Relation Constraints)

Page 4: chapter05 the relational data model and relational database constraints

2110422 การออกแบบระบบการจัดการฐานขอมูล 5-4 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

จะพิจารณาจากความสัมพันธที่เปนไปไดทั้งหมด ซ่ึงแบงเปนชนิดตางๆดังน้ี • เง่ือนไขบังคับของโดเมน (Domain constraints) • เง่ือนไขบังคับของ Key (Key constraints) • เง่ือนไขบังคับของ Entity (Entity integrity constraints) • เง่ือนไขบังคับของการอางอิง (Referential integrity constraints) • เง่ือนไขบังคับของชนิดอื่นๆ (Other types of constraints)

5.4.3 เงื่อนไขบงัคบัของโดเมน (Domain Constraints) • ภายในแตละทูเพิลจะประกอบไปดวยคาขอมูลของแตละแอทตริบิวต (attribute A) ซ่ึงจะตองเปนคาที่ไม

สามารถแตกยอยไปไดอีกโดยเปนคาขอมูลที่สัมพันธกับโดเมน Dom(A) • ชนิดขอมูลในแตละแอทตริบิวตน้ัน สามารถกําหนดไดเปน เลขจํานวนเต็ม (Integers), เลขจํานวนจริง (real

number) , ตัวอักษร (Characters) , บูลีน (Booleans) , วัน (Date) , เวลา (Time) เปนตน • ขนาดของขอมูลจะขึ้นอยูกับชนิดขอมูลแตละประเภท

5.4.4 เงื่อนไขบงัคบัของคยี (Key constraints) • รีเลชันจะเปนตัวกําหนดเซตของทูเพิล (Key constraints) • องคประกอบทั้งหมดที่อยูในเซตของทูเพิลมีความแตกตางกันอยางชัดเจน ซ่ึงไมมี 2 ทูเพิลใดๆ จะมีคาของ

ขอมูลเหมือนกันในแตละแอทตริบิวต • ซับเซตของแอทตริบิวตในรีเลชันจะมีคุณสมบัติวา ไมมี 2 ทูเพิลในรีเลชันใดๆ ที่มีคาของขอมูลเหมือนกันในแต

ละแอทตริบิวต ซ่ึงซับเซตของแอทตริบิวตน้ันจะถูกเรียกวาซูเปอรคีย (Superkey หรือ SK) • คาของ t1[SK] จะไมเทากันกับ คาของ t2[SK] • ในแตละรีเลชันจะมีซูเปอรคียอยางนอยหนึ่งคา ซ่ึงก็คือเซตของแอทตริบิวตทั้งหมด • ซูเปอรคียสามารถมีแอทตริบิวตที่ซํ้ากันได • ถา คีย K เปนซูเปอรคีย ของเคารางรีเลชัน R แลวถาไดมีการดึงแอทตริบิวตใดๆก็ตามจาก K จะทําให คีย K

น้ันไมไดเปนซูเปอรคียของเคารางรีเลชัน R อีกตอไป • เง่ือนไขบังคับ 2 ประการ ที่เปนคียอยางเดนชัด

- ถามี 2 ทูเพิลที่มีความแตกตางกันทุกประการในรีเลชัน คาของขอมูลสําหรับแอทตริบิวตทั้งหมดที่เปนคีย

จะไมสามารถมีคาเหมือนกัน - เราไมสามารถดึงแอทตริบิวตจากซูเปอรคียที่เล็กที่สุด (minimal superkey) เพราะวาตามเงื่อนไข

บังคับน้ันจะตองมีคาขอมูลอยางนอย 1 คา • ซูเปอรคียที่เล็กที่สุดจะเกิดจาก ซูเปอรคียใดๆก็ตามถูกดึงแอทตริบิวตออกแลว เซตของแอทตริบิวตไมเปนซูเปอร

คีย - ตัวอยาง Car(State,Reg#,SerialNo,Make,Model,year) จะพบวามีคีย 2 ตัวคือ {State,Reg#}

กับ {SerialNO} ซ่ึง {SerialNO,Make} จะเปนซูเปอรคีย แตไมไดเปนคีย • ถาในรีเลชันน้ันมีคียคูแขง (Candidate Keys) ตองเลือกคียที่เหมาะสม 1 ตัว ใหเปนคียหลัก (Primary

Key) แลวทําการขีดเสนใตใตชื่อแอทตริบิวตที่เปนคียหลัก

รูปที่ 5.3 แสดงถึงรีเลชันของ

CAR ที่มี 2 คีย

คูแขง

Page 5: chapter05 the relational data model and relational database constraints

2110422 การออกแบบระบบการจัดการฐานขอมูล 5-5 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

5.4.5 เงื่อนไขบงัคบัความบูรณภาพของเอนทิตี (Entity Integrity) • เคารางฐานขอมูลเชิงสัมพันธ จะเปนเซตของรีเลชัน จะไดเปน

S={R1,R2,R3,…Rn} โดยที่ S เปนชื่อฐานขอมูล • แอทตริบิวตที่เปนคียหลักในแตละรีเลชันของฐานขอมูล ไมสามารถเปนคาวางในทูเพิลใดๆ เพราะวาคาขอมูล

ของคียหลักน้ัน จะถูกใชในการระบุกับทูเพิลที่สัมพันธกัน • t[PK] จะไมเปนคาวางสําหรับทูเพิลใดๆก็ตามที่อยูใน r(R) • แอทตริบิวตที่ไมไดเปนคียหลัก บางครั้งก็ไมอนุญาต ใหเปนคาวางได

รูปที่ 5.4แสดงถึง เคาราง

ฐานขอมูลเชิงสัมพันธ

ชื่อ Company

Page 6: chapter05 the relational data model and relational database constraints

2110422 การออกแบบระบบการจัดการฐานขอมูล 5-6 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

รูปที่ 5.5 แสดงถึงขอมูลใน

เคารางฐานขอมูล

Company

5.4.6 เงื่อนไขบงัคบัความบูรณภาพในการอางอิง (Referential integrity constraints) • เง่ือนไขบังคับน้ีจะใชก็ตอเมื่อมีตั้งแต 2 รีเลชันขึ้นไป • กําหนดความสัมพันธของทูเพิลทั้ง 2 รีเลชัน โดยการอางอิงรีเลชันซ่ึงกันและกัน • ทูเพิลที่อยูในรีเลชัน R1 จะมีแอทตริบิวตที่เปนคียนอก (Foreign Key หรือ FK) จะมีการอางอิงกับแอทตริ

บิวตที่เปนคียหลักที่อยูในรีเลชัน R2 • ถาจะกลาววาทูเพิล t1 ในรีเลชัน R1 จะไปอางอิงกับ t2 ในรีเลชัน R2 จะสามารถเขียนไดเปน t1[FK] =

t2[PK] • รายการของเงื่อนไขบังคับ

- คาของขอมูลในคียนอก (FK) ในรีเลชัน R1 จะมีการอางอิงไดก็ตอเมื่อเปนอยางใดอยางหนึ่งดังตอไปนี้คือ 1. คาขอมูลน้ันจะตองเปนคาที่มีอยูแลวในคียหลักของรีเลชัน R2 หรือ 2. เปนคาวาง (null)

- ถาเปนขอ (2) คียนอกที่อยูในรีเลชัน R1 ไมควรเปนสวนใดสวนหนึ่งของคียหลัก

Page 7: chapter05 the relational data model and relational database constraints

2110422 การออกแบบระบบการจัดการฐานขอมูล 5-7 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

รูปที่ 5.6 แสดงถึงการ

เชื่อมโยงกันของเคา

รางฐานขอมูลเชิง

สัมพันธ

Company

5.4.7 เงื่อนไขบงัคบัของชนิดอืน่ๆ • เง่ือนไขบังคับของความหมาย

- ขึ้นอยูกับการใชงานโปรแกรมประยุกต แตไมสามารถกําหนดชัดเจนโดยใชโมเดล - เง่ือนไขบังคับน้ันจะกําหนดเฉพาะสําหรับผูใชงาน - SQL-99 จะเปนตัวกระตุน(trigger) และ ม่ันคง(assertion) ที่สามารถใชงานได

• เง่ือนไขบังคับของการขึ้นอยูกับหนาที่การทํางาน - ถามีการสราง เซตของแอทตริบิวต 2 กลุม คือ แอทตริบิวต X กับแอทตริบิวต Y แลวใหมีความสัมพันธ

ตามหนาที่ โดยใหคาของขอมูลใน X ขึ้นอยูกับคาของขอมูลใน Y จะสามารถเขียนไดเปน X Y

5.5 การจัดการขอมูลของรีเลชัน

ในการจัดการขอมูลของรีเลชันน้ันจะมีการดําเนินการอยู 3 อยางคือ 1) การแทรกขอมูล (Insert) ซ่ึงเปนคําส่ังที่ใชในการเพิ่มทูเพิลใหมลงในรีเลชัน 2) การลบขอมูล (Delete) จะเปนคําส่ังที่ใชในการลบทูเพิลที่อยูในรีเลชัน และ 3) การปรับปรุงขอมูล (Update/Modify) จะเปนคําส่ังที่ใชในการเปลี่ยนแปลงขอมูลของทูเพิลที่อยูในรีเลชัน ทั้งน้ีเง่ือนไขบังคับของการบูรณาภาพไมควรไดรับผลกระทบจากการจัดดําเนินการขอมูล

5.5.1 การแทรกขอมูล (The Insert Operation) • จัดเตรียมรายการชองขอมูลสําหรับทูเพิลใหมซ่ึงจะเขาไปแทรกอยูในรีเลชัน • การแทรกจะทําใหเกิดปญหาไดดังตอไปนี้

- ทางดานโดเมน : ถาคาของขอมูลในแอทตริบิวตไมถูกตองตามเงื่อนไขที่กําหนด - ทางดานคีย : ถาคาขอมูลของคียในทูเพิลใหมมีอยูแลวในทูเพิลของฐานขอมูล - ทางดานเอนทิตี : ถาคียหลักของทูเพิลใหมเปนคาวาง - ทางดานการอางอิง : ถาคาของขอมูลในคียนอกไมตรงกับคาขอมูลกับคียหลักที่อยูในรีเลชันที่ใชในการ

อางอิง

Page 8: chapter05 the relational data model and relational database constraints

2110422 การออกแบบระบบการจัดการฐานขอมูล 5-8 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

5.5.2 การลบขอมูล (The Delete Operation) • การลบขอมูลจะเกิดปญหาเฉพาะการอางอิงเทาน้ัน

- ถาทูเพิลถูกลบแลวยังมีการอางอิงคียนอกจากทูเพิลอื่นๆที่อยูในฐานขอมูล • ถาเกิดเหตุการณที่ไมสามารลบขอมูลได

- ยกเลิกการลบขอมูล - พยายามลบทูเพิลที่มีการอางอิงกับทูเพิลที่ไดถูกลบไปแลว - ปรับคาของขอมูลในแอทตริบิวตที่มีการใชอางอิง อาจจะปรับเปนคาวางหรือเปนคาอื่นที่มีอยูในทูเพิล - ดําเนินการกับผูใชอยางเฉพาะเจาะจง - ถาแอทตริบิวตที่ถูกใชอางอิงเปนสวนหนึ่งของคียหลัก จะไมสามารถทําใหเปนคาวางได

5.5.3 การปรับปรุงขอมูล (The Update Operation) • การปรับปรุงสามารถกอใหเกิดปญหากับโดเมน คียหลัก เอนทิตี และการอางอิงได

แบบฝกหัด 1. จงพิจารณารีเลชันน้ี แลวทําใหอยูในรูปแบบการเชื่อมโยงของรีเลชัน

Student(SSN,Name,Major,Bdate) Course(Course#,Cname,Dept) Enroll(SSN,Course#,Quarter,Grade) Book_Adoption(Course#,Quarter,Book_ISBN) Text(Book_ISBN,Book_Title,Publisher,Author)

2. รีเลชัน Car_Rent ประกอบดวยแอทตริบิวต Gear, Seat และ Fuel จงหาจํานวนทูเพิลสูงสุดของรีเลชั่น

Car_Rent ถา โดเมน(Gear) = {Manual, Auto} โดเมน (Seat) = {5, 7, 12} โดเมน (Fuel) = {Diesel, Benzine , LPG, NGV}

3. จงพิจารณาฐานขอมูล Companyในรูป เพื่อตอบคําถามตอไปนี้ • แอทตริบิวสใดในรีเลชั่น WORKS_ON ใน ไมสามารถเปนคา NULL ได เพราะเหตุใด