53
ฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐ (Relational Database) ฐฐฐฐฐฐฐฐฐ E.F. Codd ฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐ ฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐ ฐฐฐฐฐฐ ฐฐฐฐ ฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐ ฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐ ฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐ ฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐฐ บบบบบบ4บบบบบบบบบบบบบบบบบบบบบบบ Relational Database)

บทที่ 4 ฐานข้อมูลเชิงสัมพันธ์ ( Relational Database)

Embed Size (px)

DESCRIPTION

บทที่ 4 ฐานข้อมูลเชิงสัมพันธ์ ( Relational Database). ฐานข้อมูลเชิงสัมพันธ์ (Relational Database) คิดค้นโดย E.F. Codd เนื่องจากเป็นรูปแบบของฐานข้อมูลที่เข้าใจง่าย ไม่ซับซ้อน และระบบฐานข้อมูลมีเครื่องมือที่ช่วยให้ผู้ใช้สามารถค้นหาปัญหาที่เกิดขึ้นจากการออกแบบได้โดยง่าย - PowerPoint PPT Presentation

Citation preview

Page 1: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

ฐานข้�อมู�ลเชิ�งสั�มูพั�นธ์� (Relational Database) คิ�ดคิ�นโดย E.F. Codd เน��องจากเป็�นรู�ป็แบบข้องฐานข้�อมู�ลที่"�เข้�าใจง$าย ไมู$ซั�บซั�อน และรูะบบฐานข้�อมู�ลมู"เคิรู��องมู�อที่"�ชิ$วยให้�ผู้��ใชิ�สัามูารูถคิ�นห้าป็,ญห้าที่"�เก�ดข้./นจากการูออกแบบได�โดยง$าย

รูะบบฐานข้�อมู�ลในป็,จจ0บ�นเป็�นรูะบบฐานข้�อมู�ลเชิ�งสั�มูพั�นธ์�เป็�นสั$วนให้ญ$ เชิ$น Oracle, Foxpro, Access, Ingress เป็�นต้�น

ฐานข้�อมู�ลเชิ�งสั�มูพั�นธ์� (Relational Database) คิ�ดคิ�นโดย E.F. Codd เน��องจากเป็�นรู�ป็แบบข้องฐานข้�อมู�ลที่"�เข้�าใจง$าย ไมู$ซั�บซั�อน และรูะบบฐานข้�อมู�ลมู"เคิรู��องมู�อที่"�ชิ$วยให้�ผู้��ใชิ�สัามูารูถคิ�นห้าป็,ญห้าที่"�เก�ดข้./นจากการูออกแบบได�โดยง$าย

รูะบบฐานข้�อมู�ลในป็,จจ0บ�นเป็�นรูะบบฐานข้�อมู�ลเชิ�งสั�มูพั�นธ์�เป็�นสั$วนให้ญ$ เชิ$น Oracle, Foxpro, Access, Ingress เป็�นต้�น

บบบบบบ4บบบบบบบบบบบบบบบบบบบบบบบบRelational Database)

Page 2: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

ศั�พัที่�เที่คิน�คิที่"�เก"�ยวข้�องศั�พัที่�เที่คิน�คิในฐานข้�อมู�ลเชิ�ง

สั�มูพั�นธ์�

ศั�พัที่�เที่คิน�คิในรูะบบแฟ้4มูข้�อมู�ล

ศั�พัที่�ที่��วไป็

รี�เลชั่��น (Relation)

แฟ้�มข้�อม�ล (File)

ตารีาง (Table)

ทั�พเพ�ล (Tuple)

รีะเบี�ยน (Record)

แถว (Row)

แอทัทัรี�บี�วต� (Attribute)

เข้ตข้�อม�ล (Field)

คอล�มน� (Column)

คารี�ดิ�น�ลล�ต� (Cardinality)

จำ!านวนรีะเบี�ยน จำ!านวนแถว

ดิ�กรี� (Degree) จำ!านวนเข้ตข้�อม�ล จำ!านวนคอล�มน�ค�ย�หล�ก (Primary Key)

ค�ย�หล�ก ค$าเอกล�กษณ์� (Unique)

โดิเมน (Domain)

ข้อบีเข้ตข้องค$าข้�อม�ล

ข้อบีเข้ตข้องค$าข้�อม�ล

Page 3: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

รี�เลชั่�น หมายถ(ง การีรีวบีรีวมข้�อม�ลจำ�ดิเก)บีในรี�ปข้องตารีาง 2 ม�ต� ปรีะกอบีดิ�วยแอทัทัรี�บี�วต� ซึ่(�งแสดิงค.ณ์สมบี�ต�ข้องรี�เลชั่�นน�/นๆ โดิยม�ค.ณ์สมบี�ต�ดิ�งน�/

1. แต$ละแถวใชั่�แทันทั�พเพ�ล (Tuple) หรี1อเรีคคอรี�ดิในรี�เลชั่�น

2. ล!าดิ�บีข้องทั�พเพ�ลไม$ม�ความส!าค�ญ3. ล!าดิ�บีข้องแอทัทัรี�บี�วต� หรี1อคอล�มน�ไม$ม�

ความส!าค�ญ4. ทั.กทั�พเพ�ลต�องม�ความแตกต$างก�นโดิย

เน1/อหาหรี1อข้�อเทั)จำจำรี�ง หรี1อ ข้�อม�ลในแต$ละทั�พเพ�ลต�องไม$ซึ่!/าก�น

คิวามูห้มูายข้องรู"เลชิ�น

Page 4: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

5. แต$ละทั�พเพ�ล(แถว ) จำะบีรีรีจำ.ข้�อม�ลเพ�ยงค$าเดิ�ยว6. ค$าทั��อย�$ในแต$ละแอตทัรี�บี�วต�(คอล�มน�) จำะเป4นค$าข้อง แอตทัรี�บี�วต�ทั��รีะบี.ในห�วแอตทัรี�บี�วต�น�/นๆ7. ชั่1�อข้องแต$ละคอล�มน� ค1อ ชั่1�อข้องแอตทัรี�บี�วต�ซึ่(�งจำะต�อง แตกต$างก�น

คิวามูห้มูายข้องรู"เลชิ�น (ต้$อ)

Page 5: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

ต้�วอย$างรู"เลชิ�นในฐานข้�อมู�ลเชิ�งสั�มูพั�นธ์�

Dept_no Dept_name Location

10 การูเง�น กรู0งเที่พัฯ20 ว�จ�ย เชิ"ยงให้มู$30 ข้าย ชิลบ0รู"40 ป็ฏิ�บ�ต้�การู กรู0งเที่พัฯ

Departmentรู"เลชิ�น แอต้ที่รู�บ�

วต้�

ที่�พัเพั�ล

ภาพั 4.1 รู"เลชิ�นในฐานข้�อมู�ลเชิ�งสั�มูพั�นธ์�

Page 6: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

ฐานข้�อมู�ลเชิ�งสั�มูพั�นธ์� หมายถ(ง การีรีวบีรีวมรี�เลชั่�นต$างๆ ทั��ม�ความส�มพ�นธ์�รีะหว$างก�นเข้�าดิ�วยก�น โดิยรี�เลชั่�นต$างๆ ไดิ�ผ่$านกรีะบีวนการีทั!ารี�เลชั่�นให�เป4นบีรีรีทั�ดิฐาน (Normalized) แล�ว เพ1�อให�การีจำ�ดิการีฐานข้�อม�ลเป4นไปอย$างม�ปรีะส�ทัธ์�ภาพ

คิวามูห้มูายข้องฐานข้�อมู�ลเชิ�งสั�มูพั�นธ์�

Page 7: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

เอนทั�ต� (Entity) ห้มูายถ.ง ชิ��อข้องสั��งใดสั��งห้น.�ง อย�$ในรู�ป็ข้องคิ8านามู อาจได�แก$ คิน สัถานที่"� สั��งข้อง การูกรูะที่8า ที่"�ต้�องการูจ�ดเก9บไว� เชิ$น เอนที่�ต้"ล�กคิ�า เอนที่�ต้"พัน�กงาน เอนที่�ต้"น�กศั.กษา ซึ่(�งจำะถ�กสรี�างข้(/นโดิยชั่.ดิข้องแอตทัรี�บี�วต� รี�เลชั่�นชั่�พ (Relationship) หมายถ(ง ความส�มพ�นธ์�รีะหว$างเอนทั�ต�

เอนที่�ที่"และรู"เลชิ�นชิ�พั (entity and relationship)

Page 8: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

แอตทัรี�บี�วต� หมายถ(ง ค.ณ์ล�กษณ์ะเฉพาะข้องแต$ละเอนทั�ต� และค$าในแต$ละแอตทัรี�บี�วต�เป4นค$าทั��น!ามาจำากโดิเมนใดิโดิเมนหน(�งเทั$าน�/นโดิเมนความหมายทั�� 1 ค1อ ข้อบีเข้ตข้องค$าข้องข้�อม�ลในแอตทัรี�บี�วต�หน(�งๆ เชั่$น ว�นทั��เรี��มเข้�ารี�บีการีศึ(กษา จำะเป4นค$าว�นทั��ในปฏิ�ทั�น หรี1อน�กศึ(กษาแต$ละคนอาจำสม�ครีเป4นสมาชั่�กชั่มรีมใดิก)ไดิ�ทั��ตนสนใจำหรี1ออาจำไม$เป4นสมาชั่�กชั่มรีมใดิเลยก)ไดิ�

แอต้ที่รู�บ�วต้� (Attributes) และโดเมูน (Domains)

Page 9: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

ความหมายทั�� 2 โดิเมนค1อ เซึ่ตข้องค$าทั��เป4นไปไดิ�ในแอตทัรี�-บี�วต�น�/นเชั่$น โดิเมนข้องแอตทัรี�บี�วต� Location ค1อค$าทั��เป4นไปไดิ�ใน แอตทัรี�บี�วต� Location ดิ�งแสดิงในภาพ 4.2 ซึ่(�งจำะไม$สามารีถน!าค$าอ1�นทั��ไม$อย�$ในโดิเมนทั��ก!าหนดิ เชั่$น ข้อนแก$น มาใส$ไว�ในแอตทัรี�บี�วต�น�/ไดิ�

โดเมูน

Page 10: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

ต้�วอย$างโดเมูนข้องแอต้ที่รู�บ�วต้�

กรู0งเที่พัฯชิลบ0รู"เชิ"ยงให้มู$สังข้ลา

Location

ค$าทั��เป4นไปไดิ�ในแอตทัรี�บี�วต� Location

ภาพั 4.2 ต้�วอย$างโดเมูนข้องแอต้ที่รู�บ�วต้�

Page 11: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

ค$าข้องแอตทัรี�บี�วต�ทั��จำะใส$ลงไปในรี�เลชั่�นต�องม�ค.ณ์สมบี�ต�ดิ�งน�/

1 . เป4นค$าทั��เป4นอะตอมม�ค (atomic) หมายถ(ง ค$าทั��ไม$สามารีถแบี$งย$อยต$อไปอ�ก

2. ไม$อน.ญาตให�ม�แอตทัรี�บี�วต�ทั��ม�หลายค$า (multivalued attribute) ซึ่(�งเป4นค.ณ์สมบี�ต�ทั��เรี�ยกว$า First Narmal Form)

คิ0ณสัมูบ�ต้�ข้องคิ$าแอต้ที่รู�บ�วต้�

Page 12: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

แต$ละโดิเมนจำะถ�กก!าหนดิดิ�วยชั่1�อ , ชั่น�ดิข้�อม�ล (Data type) และรี�ปแบีบี (Format) ดิ�งต�วอย$างภาพทั�� 4.3

คิ0ณสัมูบ�ต้�ข้องโดเมูน

ชั่1�อ ชั่น�ดิข้�อม�ล รี�ปแบีบีDept_nam

eString 15 chars

Salary Integer 8 digits

ภาพั 4.3 คิ0ณสัมูบ�ต้�ข้องโดเมูน

Page 13: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

การีหาความส�มพ�นธ์�ในแบีบีจำ!าลองข้�อม�ลเชั่�งส�มพ�นธ์� ทั!าไดิ�โดิยการีเปรี�ยบีเทั�ยบีค$าข้องแอตทัรี�บี�วต�ทั��ใชั่�รี$วมก�น โดิยทั��ค�$ข้องค$าเหล$าน�/จำะม�ความหมายก)ต$อเม1�อเป4นค$าทั��มาจำากโดิเมนเดิ�ยวก�น ดิ�งต�วอย$างในภาพ 4.4

การูใชิ�งานโดเมูน

Page 14: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

Flight

การูใชิ�งานโดเมูน (ต้$อ)

Flight_no

Dep_time

Arr_time

Origination

Destination

TG042

0900 1000

BKK KK

TG092

1200 1350

BKK CM

TG053

1400 1530

CM BKK

โดิเมน time

โดเมูน Airport

ภาพั 4.4 ต้�วอย$างการูใชิ�งานโดเมูน

Page 15: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

Airport

การูใชิ�งานโดเมูน (ต้$อ)

Airport_code City

BKK Bangkok

KK Khon Kaen

CM Chiangmai

ภาพั 4.4 ต้�วอย$างการูใชิ�งานโดเมูน (ต้$อ)

Page 16: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

ดิ�กรี�ข้องรี�เลชั่�น หมายถ(ง จำ!านวนข้องแอตทัรี�บี�วต� (คอล�มน� ) ในรี�เลชั่�นน�/นคารี�ดิ�น�ลล�ต�ข้องรี�เลชั่�น หมายถ(ง จำ!านวนข้องทั�พเพ�ล(แถว ) ในรี�เลชั่�นน�/น ดิ�งภาพทั�� 4.5

ด"กรู" (Degree) และคิารู�ด�น�ลล�ต้" (Cardinality) ข้องรู"เลชิ�น

Page 17: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

Department

ต�วอย$างดิ�กรี�และคารี�ดิ�น�ลล�ต�

Dept_no Dept_name Location

10 การีเง�น กรี.งเทัพฯ20 ว�จำ�ย เชั่�ยงใหม$30 ข้าย ชั่ลบี.รี�40 ปฏิ�บี�ต�การี กรี.งเทัพฯ

ดิ�กรี� =3

คารี�ดิ�น�ลล�ต� =4

Page 18: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

เง��อนไข้ในฐานข้�อมู�ล หมายถ(ง การีก!าหนดิค.ณ์สมบี�ต�เพ1�อจำ!าก�ดิว$าข้�อม�ลชั่น�ดิใดิบี�างทั��จำะสามารีถน!ามาจำ�ดิเก)บีไว�ไดิ�ในแต$ละคอล�มน�(แอตทัรี�บี�วต� ) ข้องฐานข้�อม�ล

เง1�อนไข้ทั��ม�มาโดิยธ์รีรีมชั่าต�ข้องรี�เลชั่�นในรีะบีบีฐานข้�อม�ลเชั่�งส�มพ�นธ์�ค1อ

1 . ล!าดิ�บีข้องคอล�มน�(แอตทัรี�บี�วต� ) ไม$ม�ความส!าค�ญ

2. ล!าดิ�บีข้องแถว(ทั�พเพ�ล ) ไม$ม�ความส!าค�ญ3. รี�เลชั่�นต�องปรีะกอบีดิ�วยทั�พเพ�ลทั��ไม$ซึ่!/าก�น

เง��อนไข้ (Constrains)

Page 19: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

คิ"ย� หมายถ(ง แอตทัรี�บี�วต�ทั��สามารีถบี$งบีอกความแตกต$างข้องแต$ละทั�พเพ�ลในรี�เลชั่�นไดิ� แอตทัรี�บี�วต�ทั��เป4นส$วนหน(�งข้องค�ย�เรี�ยกว$า คิ"ย�แอต้ที่รู�บ�วต้� และค�ย�แอตทัรี�บี�วต�ทั��เก�ดิจำากการีน!าเอาหลายแอตทัรี�บี�วต�มารีวมก�นเรี�ยกว$า คิอมูโพัสั�ต้คิ"ย� (Composite key)

คิ"ย� (key)

Page 20: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

ค1อ แอตทัรี�บี�วต�หรี1อกล.$มข้องแอตทัรี�บี�วต� ทั��สามารีถบี$งบีอกความแตกต$างข้องแต$ละทั�พเพ�ลในรี�เลชั่�นไดิ� ในหน(�งรี�เลชั่�นจำะม�ซึ่�เปอรี�ค�ย�ไดิ�หลายต�วเชั่$น จำากรี�เลชั่�นน�กศึ(กษา ปรีะกอบีดิ�วยน�กศึ(กษา(รีห�สน�กศึ(กษา,ชั่1�อ,ทั��อย�$,ว�นเดิ1อนป>เก�ดิ,เลข้ทั��บี�ตรีปรีะชั่าชั่น)

ซั�เป็อรู�คิ"ย� (Superkey)

Page 21: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

รี�เลชั่�นน�กศึ(กษา ม�ซึ่�เปอรี�ค�ย�ไดิ�หลายต�ว เชั่$นรีห�สน�กศึ(กษารีห�สน�กศึ(กษา , ชั่1�อรีห�สน�กศึ(กษา , ชั่1�อ , ทั��อย�$เลข้ทั��บี�ตรีปรีะชั่าชั่น

ซั�เป็อรู�คิ"ย� (Superkey) (ต้$อ)

Page 22: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

ค1อ ซึ่�เปอรี�ค�ย�ทั��น�อยทั��ส.ดิทั��สามารีถบี$งบีอกความแตกต$างข้องแต$ละทั�พเพ�ลในรี�เลชั่�นไดิ� ในหน(�งรี�เลชั่�นอาจำจำะม�แคนดิ�เดิตค�ย�หลายต�ว จำากต�วอย$างรี�เลชั่�นน�กศึ(กษา ม�แคนดิ�เดิตค�ย� 2 ต�ว ค1อ

รีห�สน�กศึ(กษา และเลข้ทั��บี�ตรีปรีะชั่าชั่น

แคินด�เดต้คิ"ย� (Candidate key)

Page 23: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

ค1อ แคนดิ�เดิตค�ย�ทั��ถ�กเล1อกเพ1�อใชั่�บีอกความแตกต$างข้องแต$ละทั�พเพ�ลในรี�เลชั่�น และต�องไม$ม�ค$าเป4น nullค�ย�หล�กอาจำเก�ดิจำากแอตทัรี�บี�วต�เดิ�ยวหรี1อหลายแอตทัรี�บี�วต�รีวมก�นไดิ�

คิ"ย�ห้ล�ก (Primary key)

Page 24: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

ค1อแอตทัรี�บี�วต�ทั��ใชั่�ในการีเชั่1�อมต$อก�บีรี�เลชั่�นอ1�นหรี1อก�บีต�วม�นเอง เพ1�อแสดิงความส�มพ�นธ์�รีะหว$างรี�เลชั่�น โดิยค�ย�นอกสามารีถม�ค$าซึ่!/าก�นหรี1อเป4น null ไดิ� และถ�าไม$เป4น null จำะเป4นค$าทั��ชั่�/ไปทั��ค�ย�หล�กข้องรี�เลชั่�นทั��ม�ความส�มพ�นธ์�อย�$

คิ"ย�นอก (Foreign key)

Page 25: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

ต้�วอย$างคิ"ย�นอก

รีห�สน�กศึ(กษา ชั่1�อ รีห�สทั��

ปรี(กษา หน$วยก�ต GPA

10001 สม ใจำดิ� 200 20 2.53

12345 เก$ง รี�กเรี�ยน

205 60 3.62

น�กศึ(กษา

รีห�สทั��ปรี(กษา ชั่1�อ เลข้ทั��บี�ตรีปรีะชั่าชั่น200 ดิรี.สมชั่าย 1234567890123

205 ดิรี.ว�เชั่�ยรี 3456789012345

ทั��ปรี(กษา

คิ"ย�นอกคิ"ย�รูอง

แคินด�เดต้คิ"ย�

Page 26: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

ค1อ แอตทัรี�บี�วต�หรี1อกล.$มข้องแอตทัรี�บี�วต�ทั��ใชั่�ในการีเข้�าถ(งหรี1อค�นค1นข้�อม�ลในฐานข้�อม�ล ค�ย�รีองไม$ม�ความจำ!าเป4นต�องเป4นเอกล�กษณ์� ค1อสามารีถม�ค$าซึ่!/าไดิ� เชั่$น การีค�นข้�อม�ลพน�กงานทั��ต�องการีเฉพาะพน�กงานทั��ม�ไปรีษณ์�ย�ตามทั��ก!าหนดิเทั$าน�/น

คิ"ย�รูอง (Secondary key)

Page 27: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

หมายถ(ง การีควบีค.มความถ�กต�องต$างๆ ในรีะบีบีฐานข้�อม�ล โดิยในรีะบีบีฐานข้�อม�ลเชั่�งส�มพ�นธ์�ม�การีควบีค.มดิ�งต$อไปน�/1. เอนที่�ที่"อ�นที่�กรู�ต้" (Entity integrity) เป4นการีก!าหนดิว$า แต$ละเอนทั�ทั�ในแต$ละรี�เลชั่�นต�องม�ค$าไม$ซึ่!/าก�น สามารีถทั!าไดิ�โดิยการีก!าหนดิให�ที่0กรู"เลชิ�นต้�องมู"คิ"ย�ห้ล�ก และค�ย�หล�กต�องม�ค$าไม$เป4น null

อ�นที่�กรู�ต้" (Integrity)

Page 28: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

2. เรีเฟ้อเรีนเชั่�ยลอ�นทั�กรี�ต� (referential integrity) เป4นกรีะบีวนการีตรีวจำสอบีเพ1�อหล�กเล��ยงการีป�อนข้�อม�ลเข้�าทั��ผ่�ดิพลาดิ หรี1อป�องก�นการีลบีทั�พเพ�ลใดิๆ ทั�/งไปทั�/งทั��ม�ค�ย�นอก จำากรี�เลชั่�นอ1�นมาอ�างอ�งถ(งอย�$ ทั!าไดิ�โดิยการีก!าหนดิให�ค�ย�นอกม�ค$าเป4น null

อ�นที่�กรู�ต้" (Integrity) (ต้$อ)

Page 29: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

R1 : Supplier(S#,..)R2 : Parts(P#,…)R3 : Supply(S#,P#,…)R4 : Order(S#,P#,Date)

ถ�าบีรี�ษ�ทั A ต�องการีใชั่�รี�เลชั่�น R4 เพ1�อควบีค.มสารีสนเทัศึทั��ม�การีส��งซึ่1/อ ทั.กรีายการีในใบีส��งซึ่1/อ (order) ต�องม�ส�นค�า (parts) และผ่��ข้าย (supplier) ดิ�วย จำ(งต�องก!าหนดิเรีเฟ้อเรีนเชั่�ยลอ�นทั�กรี�ต�ซึ่(�งเป4นการีก!าหนดิตามความต�องการีข้องผ่��ใชั่�

ต�วอย$างเรีเฟ้อเรีนเชั่�ยลอ�นทั�กรี�ต�

Page 30: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

ชั่น�ดิข้องโอเปอเรีเตอรี�แบี$งเป4น 2 กล.$ม ดิ�งน�/

1 .โอเป็อเรูเต้อรู�ในการูจ�ดการูฐานข้�อมู�ล (Manipulative Operators) ไดิ�แก$ INSERT, DELETE, UPDATE

2. โอเป็อเรูเต้อรู�พั�/นฐาน (Basic Operators) ไดิ�แก$ SELECTION, PROJECTION, JOIN, DIVISION, UNION, INTERSECTION, DIFFERENCE, CARTESIAN, PRODUCT

โอเป็อเรูเต้อรู�ในแบบจ8าลองเชิ�งสั�มูพั�นธ์�

Page 31: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

INSERT เป4นโอเปอเรีเตอรี�ทั��ใชั่�ในการีเพ��มข้�อม�ลเข้�าไปในรี�เลชั่�น

1. โอเป็อเรูเต้อรู�ในการูจ�ดการูฐานข้�อมู�ล

Dept_no Dept_name Location

10 ว�จำ�ย กรี.งเทัพฯ20 ข้าย ภ�เก)ต30 การีเง�น เชั่�ยงใหม$40 วางแผ่น ล!าปาง

INSERT(40,’วางแผ่น’,’ล!าปาง’) into Department

Page 32: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

จากภาพั ถ�าต�องการีเพ��มค$าค�ย�หล�ก (Dept_no) ม�ค$า

= 10 ซึ่(�งไปซึ่!/าก�บีค$าทั��ม�ในรี�เลชั่�น ไม$สามารีถกรีะทั!าไดิ� ต�องแก�ป?ญหาโดิยกรีะทั!าดิ�งน�/1. ยกเล�กการีเพ��มข้�อม�ล2. แก�ไข้สาเหต.ข้องความผ่�ดิพลาดิให�ถ�กต�อง เชั่$น

เปล��ยนค$าข้องค�ย�หล�กไม$ให�ซึ่!/าก�บีค$าทั��ม�อย�$ใน

ฐานข้�อม�ล

Page 33: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

DELETE เป4นโอเปอเรีเตอรี�ทั��ใชั่�ในการีลบีทั�พเพ�ลออกจำากรี�เลชั่�น

1. โอเป็อเรูเต้อรู�ในการูจ�ดการูฐานข้�อมู�ล (ต้$อ)

Dept_no Dept_name

10 ว�จำ�ย20 ข้าย

Emp_no Emp_name Dept_no

2001 สมชั่าย 10

2002 กรีรีณ์�กา 20

DELETE ละเม�ดิเง1�อนไข้เรีเฟ้อเรีนเชั่�ยลอ�นทั�กรี�ต�

Page 34: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

ถ�าต�องการีลบีทั�พเพ�ลทั��ม� Dept_no = 20 ซึ่(�งทั!าไม$ไดิ� ม�แนวทัางในการีแก�ไข้ป?ญหาค1อ

1 .ยกเล�กการี DELETE2 .ทั!าการีลบีข้�อม�ลแบีบีทั��ม�ผ่ลกรีะทับีต$อ

เน1�อง (Cascading) ค1อ ไปลบีทั.กทั�พเพ�ลทั��อ�างอ�งมาทั��ข้�อม�ลน�/ดิ�วย

3. แก�ไข้ค$าในแอตทัรี�บี�วต�ทั��อ�างอ�งมา

จากภาพั

Page 35: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

UPDATE เป4นโอเปอเรีเตอรี�ทั��ใชั่�ในการีเปล��ยนแปลงแก�ไข้ข้�อม�ลในทั�พเพ�ลข้องรี�เลชั่�น อาจำเก�ดิป?ญหาไดิ�ถ�าม�การีแก�ไข้แอตทัรี�บี�วต�ทั��เป4นค�ย�หล�กหรี1อค�ย�นอกการีใชั่� UPDATE โอเปอเรีเตอรี�เพ1�อแก�ไข้ค�ย�นอกจำะถ�กต�องเม1�อค$าใหม$ทั��ใส$ลงไปม�ความสอดิคล�องก�นก�บีค$าทั��ม�อย�$ในรี�เลชั่�นทั��ม�นอ�างอ�งไป

1. โอเป็อเรูเต้อรู�ในการูจ�ดการูฐานข้�อมู�ล (ต้$อ)

Page 36: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

1. ơ (SELECT) เป4นโอเปอเรีเตอรี�ทั��ใชั่�ในการีเล1อกชั่.ดิข้องทั�พเพ�ลในรี�เลชั่�นทั��ม�ค$าเป4นไปตามเง1�อนไข้ทั��ก!าหนดิให� ơ โอเปอเรีเตอรี�ม�รี�ปภาพแบีบีดิ�งน�/

เง1�อนไข้ทั��ใชั่�จำะเป4นน�พจำน�ทัางบี�ล�น โดิยอาจำปรีะกอบีดิ�วยโอเปอเรีเตอรี�ดิ�งน�/

1 . โอเปอเรีเตอรี�ทั��ใชั่�ในการีเปรี�ยบีเทั�ยบี ไดิ�แก$ =, <>, >, >=, <, <=

2 . บี�ล�นโอเปอเรีเตอรี� ไดิ�แก$ AND, OR, NOT

โอเป็อเรูเต้อรู�พั�/นฐาน (Basic Operators)

ơ<เง1�อนไข้>(<ชั่1�อรี�เลชั่�น>)

Page 37: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

ผ่ลทั��ไดิ�จำากการีใชั่� ơ ค1อ รี�เลชั่�นทั��ม�จำ!านวนแอตทัรี�บี�วต�เชั่$นเดิ�ยวก�นก�บีรี�เลชั่�นทั��ก!าหนดิ เชั่$น ต�อการีเล1อกทั.กทั�พเพ�ลในรี�เลชั่�น EMPLOYEE ทั��ม� Salary มากกว$า 10,000 บีาทั

โอเป็อเรูเต้อรู�พั�/นฐาน (Basic Operators) (ต้$อ)

Page 38: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

Emp_no Emp_name Job Manager Salary

3001 สมชั่าย ผ่��จำ�ดิการี 3456 15000

3456 มรีกต กรีรีมการีผ่��จำ�ดิการี

30000

4000 เป4นหน(�ง พน�กงานข้าย

3001 8500

Emp_no Emp_name Job Manager Salary

3001 สมชั่าย ผ่��จำ�ดิการี 3456 15000

3456 มรีกต กรีรีมการีผ่��จำ�ดิการี

30000

ơSalary

>10000(Employee)

Employee

Employee

Page 39: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

2. π (PROJECT) เป4นโอเปอเรีเตอรี�ทั��ใชั่�ในการีเล�อกชิ0ดข้องคิอล�มูน�ที่"�ต้�องการู π โอเปอเรีเตอรี�ม�รี�ปแบีบีดิ�งน�/

โอเป็อเรูเต้อรู�พั�/นฐาน (Basic Operators) (ต้$อ)

π<ชั่.ดิข้องแอตทัรี�บี�วต�>(<ชั่1�อรี�เลชั่�น>)ผ่ลล�พธ์�ทั��ไดิ�จำากการีใชั่� π ค1อ รี�เลชั่�นทั��ม�

จำ!านวนแอตทัรี�บี�วต�ตามก!าหนดิในชั่.ดิข้องแอตทัรี�บี�วต� เชั่$น ต�องการีเล1อกเฉพาะคอล�มน� Job และ Salary น!ามาแสดิงผ่ล

Page 40: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

Emp_no Emp_name Job Manager Salary

3001 สมชั่าย ผ่��จำ�ดิการี 3456 15000

3456 มรีกต กรีรีมการีผ่��จำ�ดิการี

30000

4000 เป4นหน(�ง พน�กงานข้าย

3001 8500

Employee

Job Salary

ผ่��จำ�ดิการี 15000กรีรีมการีผ่��

จำ�ดิการี30000

พน�กงานข้าย 8500

πJob,

Salary(Employee)

Employee

Page 41: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

3. U(UNION) การีใชั่� UNION, INTERSECT และ DIFFERENCE เป4นโอเปอเรีเตอรี�ทั��ใชั่�ในการีทั!างานตามทัฤษฎี�ข้องเซึ่ต การีใชั่�โอเปอเรีเตอรี�เหล$าน�/ โอเปอแรีนดิ�จำะต�องเข้�าก�นไดิ�

ผ่ลล�พธ์�ทั��ไดิ�จำากการี UNION รีะหว$างรี�เลชั่�น R1 และ R2 (R1 U R2) ค1อรี�เลชั่�นทั��ปรีะกอบีดิ�วยทั.กทั�พเพ�ลใน R1 และ R2 แต$ไม$ม�ค$าทั��ซึ่!/าก�น และม�จำ!านวนแอตทัรี�บี�วต�เทั$าก�บีจำ!านวนแอตทัรี�บี�วต�ข้อง R1 หรี1อ R2

โอเป็อเรูเต้อรู�พั�/นฐาน (Basic Operators) (ต้$อ)

Page 42: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

Emp_no

Emp_name

Salary

3001 สมชั่าย 15000

3456 มรีกต 30000

Emp_no Emp_name

Salary

4001 วรีพจำน� 16000

5001 บี.ญมาก 17000U

Emp_no Emp_name Salary

3001 สมชั่าย 15000

3456 มรีกต 30000

4001 วรีพจำน� 16000

5001 บี.ญมาก 17000

Employee Manager

Staff

Page 43: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

4. ∩ (INTERSECTION) ผ่ลล�พธ์�ทั��ไดิ�จำากการี INTERSECTION รีะหว$างรี�เลชั่�น R1 และ R2 (R1 ∩ R2) ค1อ รี�เลชั่�นทั��ปรีะกอบีดิ�วยเฉพาะทั�พเพ�ลทั��ม�อย�$ทั� /งใน R1 และ R2 และม�จำ!านวนแอตทัรี�บี�วต�เทั$าก�บีจำ!านวนแอตทัรี�บี�วต�ข้อง R1 และ R2

โอเป็อเรูเต้อรู�พั�/นฐาน (Basic Operators) (ต้$อ)

Page 44: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

Emp_no Emp_name Salary

4001 วรีพจำน� 16000

5001 บี.ญมาก 17000

Emp_no

Emp_name

Salary

4001 วรีพจำน� 16000

5001 บี.ญมาก 17000

U

Emp_no Emp_name Salary

3001 สมชั่าย 15000

3456 มรีกต 30000

4001 วรีพจำน� 16000

5001 บี.ญมาก 17000

Employee Manager

Manager-Employee

Page 45: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

5. – (DIFFERENCE) ผ่ลล�พธ์�ทั��ไดิ�จำากการี DIFFERENCE รีะหว$างรี�เลชั่�น R1 และ R2 (R1-R2) ค1อ รี�เลชั่�นทั��ปรีะกอบีดิ�วยเฉพาะทั�พเพ�ลทั��ม�อย�$ใน R1 แต$ไม$ม�อย�$ใน R2 และม�จำ!านวน แอตทัรี�บี�วต�เทั$าก�บีจำ!านวนแอตทัรี�บี�วต�ข้อง R1 หรี1อ R2

โอเป็อเรูเต้อรู�พั�/นฐาน (Basic Operators) (ต้$อ)

Page 46: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

Emp_no Emp_name Salary

3001 สมชั่าย 15000

3456 มรีกต 30000

Emp_no Emp_name

Salary

4001 วรีพจำน� 16000

5001 บี.ญมาก 17000

-

Emp_no Emp_name Salary

3001 สมชั่าย 15000

3456 มรีกต 30000

4001 วรีพจำน� 16000

5001 บี.ญมาก 17000

Employee Manager

Non-Manager-Employee

Page 47: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

6. X (CARTESIAN PRODUCT) ผ่ลล�พธ์�ทั��ไดิ�จำากการี CARTESIAN PRODUCT รีะหว$างรี�เลชั่�น R1 และ R2 (R1xR2) ค1อ รี�เลชั่�นทั��เก�ดิจำากการีน!าเอาทั.กทั�พเพ�ลทั��อย�$ใน R1 และ R2 มาเรี�ยงต$อก�นในทั.กโอกาสทั��เป4นไปไดิ� และม�จำ!านวนแอตทัรี�บี�วต�เทั$าก�บีผ่ลบีวกข้องจำ!านวนแอตทัรี�บี�วต�ข้อง R1 ก�บี R2 และจำ!านวนทั�พเพ�ลทั�/งหมดิเทั$าก�บีผ่ลค�ณ์ข้องจำ!านวนทั�พเพ�ลใน R1 ก�บี R2

โอเป็อเรูเต้อรู�พั�/นฐาน (Basic Operators) (ต้$อ)

Page 48: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

Dept_no

10

20

30

DEPARTMENT

Emp_no

2345

3000

4000

EMPLOYEE

Dept_no Emp_no

10 2345

10 3000

10 4000

20 2345

20 3000

20 4000

30 2345

30 3000

30 4000

DEPARTMENT X EMPLOYEE

Page 49: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

7. JOIN ผ่ลล�พธ์�ข้องการี JOIN สองรี�เลชั่�น ค1อ R1(A1,A2,..An) และ R2(B1,B2,..Bm) จำะไดิ�รี�เลชั่�น R3 ทั��ม�ดิ�กรี� k= n+m และแอตทัรี�บี�วต� (A1,A2,..An, B1,B2,..Bm) ทั��เป4นไปตามเง1�อนไข้ข้อง JOIN

โอเป็อเรูเต้อรู�พั�/นฐาน (Basic Operators) (ต้$อ)

R1 X <เง1�อนไข้การี JOIN>R2

Page 50: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

Emp_no Emp_name Emp_loc

5001 บี.ญเสรี�ม กรี.งเทัพฯ5200 วรีากรี เชั่�ยงใหม$5234 ส.ชั่าต� กรี.งเทัพฯ5326 สมรี�กษ� เชั่�ยงใหม$5400 มารีวย ภ�เก)ต5556 ม�ชั่�ย เชั่�ยงใหม$

Dept_no Dept_loc

10 ภ�เก)ต20 กรี.งเทัพฯ30 เชั่�ยงใหม$40 สงข้ลา

Employee Department

SAME-LOCATION = EMPLOYEE X (Emp_loc = Dept_loc) DEPARTMENT

Page 51: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

Emp_no Emp_name Emp_loc Dept_no Dept_loc

5001 บี.ญเสรี�ม กรี.งเทัพฯ 20 กรี.งเทัพฯ

5200 วรีากรี เชั่�ยงใหม$ 30 เชั่�ยงใหม$

5234 ส.ชั่าต� กรี.งเทัพฯ 20 กรี.งเทัพฯ

5326 สมรี�กษ� เชั่�ยงใหม$ 30 เชั่�ยงใหม$

5400 มารีวย ภ�เก)ต 10 ภ�เก)ต

5556 ม�ชั่�ย เชั่�ยงใหม$ 30 เชั่�ยงใหม$

SAME-LOCATION

Page 52: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

8. ÷ (DIVISION) ผ่ลล�พธ์�ข้องการี DIVISION สองรี�เลชั่�น ไดิ�แก$ R1(A1,A2,..An) ทั��ม�คารี�ดิ�น�ลล�ต�เทั$าก�บี i และ R2(B1,B2,..Bm) ทั��ม�คารี�ดิ�น�ลล�ต�เทั$าก�บี j ค1อ รี�เลชั่�น R3 ทั��ม�ดิ�กรี� k= n-m และคารี�ดิ�น�ลล�ต�ทั��เป4นไปตามเง1�อนไข้การี DIVISION

โอเป็อเรูเต้อรู�พั�/นฐาน (Basic Operators) (ต้$อ)

Page 53: บทที่  4  ฐานข้อมูลเชิงสัมพันธ์  ( Relational Database)

A# B#

A1 B1

A1 B2

A1 B4

A1 B5

A2 B2

A2 B4

A2 B6

A3 B3

A4 B1

A4 B2

A4 B3

AB

B#

B1

A#

A1

A4

C

B#

B2

B4

C

A#

A1

A2

A4

AB ÷ C