ฐานข้อมูลเชิงสัมพันธ์ Relational Database
description
Transcript of ฐานข้อมูลเชิงสัมพันธ์ Relational Database
1
ฐานข้�อมู�ลเชิ�งสั�มูพั�นธ์� Relational Database
4122206A ระบบจั�ดการฐานข้�อมู�ล 3(2-2)
อ.ชิน�ดา คำ�าเพั�ง
Today Topic•ความรู้� �เบื้�องต้�นเกี่��ยวกี่�บื้ฐานข้�อม�ลเชิ�ง
สั�มพั�นธ์�•กี่ารู้สัรู้�างฐานข้�อม�ลด้�วย MS Access•กี่ารู้สัรู้�างต้ารู้าง•กี่ารู้สัรู้�างความสั�มพั�นธ์�รู้ะหว"างต้ารู้าง
ศั�พัท์�เท์คำน�คำ ศั�พัท์�เท์คำน�คำ ศั�พัท์�ท์��วไป
• รู้�เลชิ��น (Relation) ต้ารู้าง (Table)• ทู�เพั�ล (Tuple) แถว (Row) หรู้อ Reccord• แอทูทูรู้�บื้�วต้� (Attribute) คอล�มน�
(Column), Field• คารู้�ด้�นาล�ต้�� (Cardinality) จำ'านวนแถว
(Number of Rows)• ค�ย�หล�กี่ (Primary Key) ค"าเอกี่ล�กี่ษณ์�
(Unique Identifier)
คำวามูหมูายข้องฐานข้�อมู�ลเชิ�งสั�มูพั�นธ์�
เป็+นกี่ารู้จำ�ด้เกี่,บื้รู้วบื้รู้วมข้�อม�ลเป็+นแถวและคอล�มน�ในล�กี่ษณ์ะต้ารู้างสัองม�ต้� ทู��ป็รู้ะกี่อบื้ไป็ด้�วย Attribute ทู��แสัด้งค/ณ์สัมบื้�ต้�ข้อง Relation หน0�งๆ
โด้ย Relation ต้"างๆ ได้�ผ่"านกี่รู้ะบื้วนกี่ารู้ทู'าให� Relation เป็+นบื้รู้รู้ทู�ด้ฐาน (Normalized) ในรู้ะหว"างกี่ารู้ออกี่แบื้บื้เพั�อลด้ความซ้ำ'�าซ้ำ�อน และเพั�อให�กี่ารู้จำ�ด้กี่ารู้ฐานข้�อม�ลเป็+นไป็อย"างม�ป็รู้ะสั�ทูธ์�ภาพั
แนวค�ด้เรู้�องโมเด้ลเชิ�งสั�มพั�นธ์�– ความสั�มพั�นธ์�ข้องฐานข้�อม�ลจำะอย�"ในรู้�ป็แบื้บื้ข้อง
ต้ารู้าง– ชิ�อข้องต้ารู้างคอ ชิ�อข้องความสั�มพั�นธ์�– แต้"ละคอล�มน�ข้องต้ารู้างความสั�มพั�นธ์� เรู้�ยกี่ว"า แอทู
ทูรู้�บื้�ว(attribute) ข้องความสั�มพั�นธ์�– ค"าและข้อบื้เข้ต้ข้องข้�อม�ลข้องแอทูทูรู้�บื้�วเรู้�ยกี่ว"า
โด้เมน(Domain)– แต้"ละแถวข้องต้ารู้างความสั�มพั�นธ์� เรู้�ยกี่ว"า แถว หรู้อ
ทู�เพั�ล(tuple) ข้องความสั�มพั�นธ์�
ฐานข้�อมู�ลเชิ�งสั�มูพั�นธ์� (Relational Database
• ด้�กี่รู้� ข้องความสั�มพั�นธ์� คอ จำ'านวนแอทูทูรู้�บื้�วทู��ม�ในต้ารู้างน��น
• Cardinality ข้องความสั�มพั�นธ์�คอ จำ'านวนแถวในต้ารู้าง
คำ%ณสัมูบ�ติ�ข้องคำวามูสั�มูพั�นธ์�
A Sample Relation
EmployeeNumber
FirstName LastName
100 Mary Abermany
700 Jerry Caldera
300 Alea Copley
40 Murugan Jacksoni• Deegree = • Cardinality = • Deegree = • Cardinality =
AttributesAttributes
34
คำ%ณล�กษณะในการจั�ดเก�บข้�อมู�ลข้องร*เลชิ��น
1. ข้�อม�ลในแต้"ละแถวจำะไม"ซ้ำ'�ากี่�น
คำ%ณล�กษณะในการจั�ดเก�บข้�อมู�ลข้องร*เลชิ��น
2. กี่ารู้เรู้�ยงล'าด้�บื้ข้องข้�อม�ลในแต้"ละแถวไม"เป็+นสัารู้ะสั'าค�ญ
3. กี่ารู้เรู้�ยงล'าด้�บื้ข้อง Attribute จำะเรู้�ยงล'าด้�บื้กี่"อนหล�งอย"างไรู้กี่,ได้�
คำ%ณล�กษณะในการจั�ดเก�บข้�อมู�ลข้องร*เลชิ��น
คำ%ณล�กษณะในการจั�ดเก�บข้�อมู�ลข้องร*เลชิ��น
4. ค"าข้องข้�อม�ลในแต้"ละ Attribute ข้อง Tuple หน0�งๆ จำะบื้รู้รู้จำ/
ข้�อม�ลได้�เพั�ยงค"าเด้�ยว (Single Value)
5. ค"าข้องข้�อม�ลในแต้"ละ Attribute จำะบื้รู้รู้จำ/ค"าข้องข้�อม�ล ป็รู้ะเภทูเด้�ยวกี่�น
คำ%ณล�กษณะในการจั�ดเก�บข้�อมู�ลข้องร*เลชิ��น
ประเภท์ข้องคำ*ย�
1. คำ*ย�หล�ก (Primary Key)เป็+น Attribute ทู��ม�ค/ณ์สัมบื้�ต้�
ข้องข้�อม�ลทู��ม�ค"าเป็+นเอกี่ล�กี่ษณ์� หรู้อไม"ม�ค"าซ้ำ'�ากี่�น
โด้ยค/ณ์สัมบื้�ต้�น��นจำะสัามารู้ถรู้ะบื้/ว"าข้�อม�ลน��นเป็+นข้อง Tuple ใด้
ประเภท์ข้องคำ*ย�2. คำ*ย�ผสัมู (Composite Key)
• กี่ารู้น'าฟิ8ลด้�ต้��งแต้" 2 ฟิ8ลด้�ข้0�นไป็ มารู้วมกี่�น• เพั�อให�ม�ค/ณ์สัมบื้�ต้�เป็+น Primary Key • เน�องจำากี่หากี่ใชิ�ฟิ8ลด้�ใด้ฟิ8ลด้�หน0�งเป็+น PK จำะสั"งผ่ล
ให�ข้�อม�ลในแต้"ละเรู้คอรู้�ด้ซ้ำ'�าซ้ำ�อนได้�
3001
3. คำ*ย�คำ�-แข้-ง (Candidates Key) ในแต้"ละ Relation อาจำม� Attribute ทู��ทู'าหน�าทู��
เป็+นค�ย�หล�กี่ได้�มากี่กี่ว"าหน0�ง Attribute โด้ยเรู้�ยกี่ Attribute เหล"าน��ว"า คำ*ย�คำ�-แข้-ง (Candidate Key)
• เชิ"น น�กี่ศึ0กี่ษาแต้"ละคน ม�– รู้ห�สัป็รู้ะจำ'าต้�วน�กี่ศึ0กี่ษา– รู้ห�สัป็รู้ะจำ'าต้�วบื้�ต้รู้ป็รู้ะชิาชิน
• โด้ยป็กี่ต้�แล�วจำะเลอกี่ Candidates Key ทู��สั� �นทู��สั/ด้เป็+นPrimary Key
ประเภท์ข้องคำ*ย�
โด้ยเรู้าจำะเรู้�ยกี่ Candidate Key ทู��ถ�กี่เลอกี่มาใชิ�เป็+นค�ย�หล�กี่ในต้ารู้างว"า “Primary Key” และเรู้�ยกี่ Candidate Key ทู��ไม"ถ�กี่เลอกี่เป็+นค�ย�หล�กี่ว"า “คำ*ย�สั�ารอง (Alternate Key)”
ประเภท์ข้องคำ*ย�
Key Rule (Continued)
รู้ห�สั ชิ�อ สักี่/ล บื้�ต้รู้ป็รู้ะชิา
ชิน
ชิ��นเรู้�ยน
สัาข้า
ค�ย�ค�"แข้"ง Candidate Keyค�ย�ค�"แข้"ง Candidate Key
ค�ย�หล�กี่ (Primary Key)ค�ย�หล�กี่ (Primary Key)ค�ย�สั'ารู้อง Alternate Keyค�ย�สั'ารู้อง Alternate Key
Key Rule (Continued)
• Candidate Key สัามารู้ถเป็+น Primary Key และ Alternate Key ได้�
ประเภท์ข้องคำ*ย�
2. คำ*ย�นอก (Foreign Key)คอค�ย�ซ้ำ0�งป็รู้ะกี่อบื้ด้�วยแอทูรู้�บื้�วต้�
หรู้อกี่ล/"มข้องแอต้ทูรู้�บื้�วต้�ในรู้�เลชิ�นหน0�งซ้ำ0�งม�ค/ณ์สัมบื้�ต้�เป็+นค�ย�หล�กี่ และไป็ป็รู้ากี่ฏอ�กี่รู้�เลชิ�นหน0�ง เพั�อป็รู้ะโยชิน�ในกี่ารู้เชิ�อมโยงข้�อม�ลซ้ำ0�งกี่�นและกี่�น
2. คำ*ย�นอก (Foreign Key)• เป็+น Key ทู��ใชิ�ในกี่ารู้เชิ�อมโยงข้�อม�ลรู้ะหว"างต้ารู้างเข้�าด้�วยกี่�น• เชิ"น ฐานข้�อม�ลข้องธ์นาคารู้แห"งหน0�งป็รู้ะกี่อบื้ด้�วย 2 ต้ารู้าง
คอ– ต้ารู้างบื้�ญชิ�ทู��ล�กี่ค�าเป็8ด้ (เลข้ป็รู้ะจำ'าต้�วล�กี่ค�า, ชิ�อ- นามสักี่/ล
และป็รู้ะเภทูข้องบื้�ญชิ� ) – ต้ารู้างล�กี่ค�า (เลข้ป็รู้ะจำ'าต้�วล�กี่ค�า, ชิ�อ- นามสักี่/ล และทู��อย�")
หากี่ต้�องกี่ารู้ทูรู้าบื้ว"าล�กี่ค�ารู้ายหน0�งเป็8ด้บื้�ญชิ�ใด้บื้�าง กี่,เชิ�อมโยง ข้�อม�ล 2 ต้ารู้างเข้�าด้�วยกี่�น โด้ยใชิ� เลข้ประจั�าติ�วล�กคำ�าเป/น
Foreign Key
ประเภท์ข้องคำ*ย�
เลข้ป็รู้ะจำ'าต้�วป็รู้ะชิาชิน ชิ�อ นามสักี่/ล อาย/
3501552150054 สัมชิาย แซ้ำ"ต้��ง 25
3210077565107 สัมศึรู้� แซ้ำ"อ0�ง 42
4110597520235 สัมฤทู�ย แซ้ำ"ต้��ง 23
2156800512473 สัมป็อง แซ้ำ"แต้� 16
7812350453784 สัมชิ�ย แซ้ำ"เอง 50
Primary Key ?
ชิ�อ นามสักี่/ล อาย/ เพัศึ
สัมชิาย แซ้ำ"ต้��ง 25 ชิาย
สัมศึรู้� แซ้ำ"อ0�ง 42 หญ�ง
สัมฤทู�ย แซ้ำ"ต้��ง 23 ชิาย
สัมป็อง แซ้ำ"แต้� 16 ชิาย
สัมชิ�ย แซ้ำ"เล�ง 50 ชิาย
Primary Key?
ID ชิ�อ นามสักี่/ล อาย/ เพัศึ
1 สัมชิาย แซ้ำ"ต้��ง 25 ชิาย
2 สัมศึรู้� แซ้ำ"อ0�ง 42 หญ�ง
3 สัมฤทู�ย แซ้ำ"ต้��ง 2
3
ชิาย
4 สัมป็อง แซ้ำ"แต้� 16 ชิาย
5 สัมชิ�ย แซ้ำ"เล�ง 50 ชิาย
Primary Key ?
ID เพัศึ
รู้ห�สัสั�นค�า ชิ�อสั�นค�า จำ'านวน
รู้ห�สัพัน�กี่งาน รู้ห�สัสั�นค�า ยอด้ข้าย
Foreign Key ?ต้ารู้างสั�นค�า
ต้ารู้างยอด้ข้าย
กฎเก*�ยวข้�องก�บคำ*ย�ในฐานข้�อมู�ลเชิ�งสั�มูพั�นธ์�
• คอข้�อบื้�งค�บื้หรู้อเง�อนไข้ในกี่ารู้อน/ญาต้ให�เกี่,บื้เฉพัาะข้�อม�ลทู��เหมาะสัมลงในฐานข้�อม�ล
• เพั�อให�กี่ารู้เลอกี่ข้�อม�ลจำากี่ฐานข้�อม�ลม�ความถ�กี่ต้�องป็รู้ะเภทูข้องเง�อนไข้•Key constraint ม� 2 รู้�ป็แบื้บื้ คอ
– ค�ย�หล�กี่ ค"าจำะไม"เป็+น NULL– Null ไม"ใชิ"ค"าทู��เป็+น 0 (กี่รู้ณ์�เป็+นต้�วเลข้ )
และไม"ใชิ" space (ในกี่รู้ณ์�เป็+นข้�อความ)– Null หมายถ0งไม"ทูรู้าบื้ค"าหรู้อไม"รู้� �ค"าแน"ชิ�ด้
มู*คำ-าเป/น Null หมูายถึ2งอะไร ?• Null เป็+นศึ�พัทู�เฉพัาะใน Relational
Database หมายถ0ง ไม"ทูรู้าบื้ค"าข้�อม�ลทู��รู้� �แน"ชิ�ด้ เรู้าสัามารู้ถกี่'าหนด้ให�ค"าข้องคอล�มน�ใด้ๆ เป็+น Null ได้� (ถ�าเป็+นไป็ได้�ควรู้ใสั"ให�ครู้บื้จำะด้�ทู��สั/ด้ )ยกี่เว�นคอล�มน�ทู��เป็+น Primary Key เพัรู้าะจำะไม"สัามารู้ถน'า Primary Key มาใชิ�เข้�าถ0งข้�อม�ลในแต้"ละแถวได้�
ติ�วอย-างติารางท์*�แสัดงคำ-า Null
รู้ห�สัน�กี่ศึ0กี่ษา รู้ห�สัว�ชิา เกี่รู้ด้ทู��ได้�4900222 E182
4900123 M117 C
4900125 P210 B+
4900236 E182 A
Referential Integrity
เป็+นกี่ารู้อ�างอ�งข้�อม�ลจำากี่ความสั�มพั�นธ์�อ�น ค"าข้อง Foreign Key ต้�องมาจำากี่ค"าข้อง Primary Key จำากี่ต้ารู้างทู��เกี่��ยวข้�องเทู"าน��น
กฎเก*�ยวข้�องก�บคำ*ย�ในฐานข้�อมู�ลเชิ�งสั�มูพั�นธ์�กฎเก*�ยวข้�องก�บคำ*ย�ในฐานข้�อมู�ลเชิ�งสั�มูพั�นธ์�
รู้ห�สัสั�นค�า ชิ�อสั�นค�า จำ'านวนิ�bk00198 เสั�อยด้ 100
cd00034 กี่างเกี่งข้ายาง
250
รู้ห�สัพัน�กี่งาน รู้ห�สัสั�นค�า ยอด้ข้ายHY001 bk00198 80
HY002 cd00034 200
ต้ารู้างยอด้ข้าย
ต้ารู้างสั�นค�า
กฎการคำวบคำ%มูคำวามูถึ�กติ�องข้องข้�อมู�ล (Data Integrity)
ฐานข้�อม�ลไม"สัามารู้ถรู้� �ได้�เองว"าข้�อม�ลทู��เกี่,บื้อย�"น� �นสัอด้คล�องกี่�บื้ความเป็+นจำรู้�งหรู้อไม" เรู้าจำ0งต้�องบื้อกี่ให�ฐานข้�อม�ลรู้� �ด้�วยสั��งทู��เรู้�ยกี่ว"า กี่ฎกี่ารู้ควบื้ค/มความถ�กี่ต้�องข้องข้�อม�ล หรู้อ Data Integrity
ต้�วอย"างงานรู้ะบื้บื้ทูะเบื้�ยนน�กี่ศึ0กี่ษาจำะม� Integrity Rule ด้�งต้"อไป็น��• น�กี่ศึ0กี่ษาทู/กี่คนต้�องสั�งกี่�ด้คณ์ะทู��ม�อย�"เทู"าน��น• ว�ชิาทู��ลงทูะเบื้�ยนต้�องเป็+นว�ชิาทู��เป็8ด้สัอนเทู"าน��น• เกี่รู้ด้เฉล��ยแต้"ละเทูอมจำะอย�"รู้ะหว"าง 0.00-4.00 เทู"าน��น• เกี่รู้ด้ทู��ได้�จำะต้�องเป็+น A,B+,B,C+,C,D+,D หรู้อ F เทู"าน��น
เป็+นต้�น
ประเภท์ข้องร*เลชิ��น
1. ร*เลชิ��นหล�ก (Base Relation)
Relation ทู��ถ�กี่กี่'าหนด้ข้0�นเพั�อเกี่,บื้ข้�อม�ลเพั�อน'าไป็ใชิ�
โด้ย Base Relation จำะเป็+น relation ทู��เกี่,บื้ข้�อม�ลอย�"จำรู้�ง
ประเภท์ข้องร*เลชิ��น
2. ว�ว (View)Relation ทู��ถ�กี่สัรู้�างข้0�นต้ามความ
ต้�องกี่ารู้ข้องผ่��ใชิ�งานแต้"ล"ะคน โด้ยจำะกี่'าหนด้ view ข้องต้นข้0�นมาจำากี่รู้�เลชิ��นหล�กี่
Virtual Table Or Derived Table
Relationship (คำวามูสั�มูพั�นธ์�)• แบื้"งออกี่เป็+น 3 ป็รู้ะเภทู คอ
– One to One Relationship 1( 1– )
– One to Many Relationship 1( – M)
– Many to Many Relationship (M – N)
คำวามูสั�มูพั�นธ์�แบบหน2�งติ-อหน2�ง(One to One Relationship)
• เป็+นความสั�มพั�นธ์�ทู��เข้�าใจำง"ายทู��สั/ด้• เป็+นความสั�มพั�นธ์�ข้องข้�อม�ลใน 1 เรู้คอรู้�ด้ใน
ต้ารู้างหน0�งม�ความสั�มพั�นธ์�กี่�บื้ข้�อม�ลอย"างมากี่หน0�งข้�อม�ลกี่�บื้อ�กี่เรู้คอรู้�ด้ในอ�กี่ต้ารู้างหน0�งเทู"าน��นในล�กี่ษณ์ะทู��เป็+นหน0�งต้"อหน0�ง– น�กี่ศึ0กี่ษา 1 คนเทู"าน��นทู��จำะเป็+นนายกี่องค�กี่ารู้
น�กี่ศึ0กี่ษา
น�กี่ศึ0กี่ษา องค�กี่ารู้น�กี่ศึ0กี่ษาเป็+นนายกี่ฯ1 1
คำวามูสั�มูพั�นธ์�แบบหน2�งติ-อกล%-มู(One to Many Relationship)
• เป็+นความสั�มพั�นธ์�ทู��พับื้บื้"อยทู��สั/ด้ในฐานข้�อม�ล• เป็+นความสั�มพั�นธ์�ข้องข้�อม�ลใน 1 เรู้คอรู้�ด้ในต้ารู้างหน0�ง
ม�ความสั�มพั�นธ์�กี่�บื้ข้�อม�ลมากี่กี่ว"าหน0�งข้�อม�ลกี่�บื้อ�กี่เรู้คอรู้�ด้ในอ�กี่ต้ารู้างหน0�งเทู"าน��นในล�กี่ษณ์ะทู��เป็+นหน0�งต้"อหน0�ง– น�กี่ศึ0กี่ษาแต้"ละคนสัามารู้ถลงทูะเบื้�ยนเรู้�ยนได้�มากี่กี่ว"า 1 ว�ชิา
น�กี่ศึ0กี่ษา รู้ายว�ชิาลงทูะเบื้�ยน1 M
คำวามูสั�มูพั�นธ์�แบบกล%-มูติ-อกล%-มู(Many to Many Relationship)
• เป็+นความสั�มพั�นธ์�ทู��พับื้ไม"บื้"อยน�กี่• เป็+นความสั�มพั�นธ์�ข้องข้�อม�ลในเรู้คอรู้�ด้ใด้ๆ ข้องต้ารู้าง
หน0�งม�ค"าต้รู้งกี่�บื้ข้�อม�ลข้องหลายๆ เรู้คอรู้�ด้ในต้ารู้างอ�นๆ – รู้ายว�ชิา 1 รู้ายว�ชิาม�อาจำารู้ย�สัอนได้�มากี่กี่ว"า 1 คน– กี่ารู้สั��งซ้ำ�อสั�นค�าในแต้"ละครู้��งสัามารู้ถสั��งซ้ำ�อสั�นค�าได้�มากี่กี่ว"า
1 ชิน�ด้
รู้ายว�ชิา อาจำารู้ย�สัอนโด้ยM N
ข้�อด*ข้องฐานข้�อมู�ลเชิ�งสั�มูพั�นธ์� 1. ผ่��ใชิ�งานเห,นภาพัข้องข้�อม�ลได้�ง"าย
2. ผ่��ใชิ�ไม"ต้�องรู้� �ว"าข้�อม�ลจำ�ด้เกี่,บื้จำรู้�งอย"างไรู้ รู้วมถ0งกี่ารู้เข้�าถ0ง ว�ธ์�กี่ารู้เรู้�ยกี่ใชิ�ข้�อม�ล
3. ภาษาทู��ใชิ�ในกี่ารู้เรู้�ยกี่ด้�ข้�อม�ล ม�ล�กี่ษณ์ะคล�ายภาษาอ�งกี่ฤษ และไม"จำ'าเป็+นต้�องเข้�ยนเป็+นล'าด้�บื้ข้��นต้อน
4. กี่ารู้เรู้�ยกี่ใชิ�หรู้อเชิ�อมโยงข้�อม�ลทู'าได้�ง"าย
คำ�าถึามูท์�ายบท์• 1.โครู้งสัรู้�างข้�อม�ลเชิ�งสั�มพั�นธ์�ป็รู้ะกี่อบื้ด้�วยอะไรู้บื้�าง จำง
อธ์�บื้าย• 2. ค/ณ์สัมบื้�ต้�ในกี่ารู้จำ�ด้เกี่,บื้ข้�อม�ลข้องรู้�เลชิ��นม�อะไรู้บื้�าง• 3. รู้�เลชิ�นป็รู้ะกี่อบื้ด้�วยค�ย�ป็รู้ะเภทูต้"างๆ อะไรู้บื้�าง จำง
อธ์�บื้ายพัรู้�อมยกี่ต้�วอย"างป็รู้ะกี่อบื้ป็รู้ะเภทูค�ย�ด้�งกี่ล"าว• 4. Null หมายถ0งอะไรู้ใน Relational Database• 5. เหต้/ใด้จำ0งต้�องม�กี่ารู้น'า Integrity rule มาใชิ�ในฐาน
ข้�อม�ล• 6. ความสั�มพั�นธ์�รู้ะหว"างรู้�เลชิ�นม�กี่��ป็รู้ะเภทู อะไรู้บื้�าง จำงยกี่
ต้�วอย"างป็รู้ะกี่อบื้ (ห�ามยกี่ต้�วอย"างซ้ำ'�ากี่�บื้สัไลด้�ป็รู้ะกี่อบื้กี่ารู้เรู้�ยน)