Lecture5 ฐานข้อมูลเชิงสัมพันธ์
- 2. ิ ั
ฐานข ้อมูลเชงสมพันธ์
(Relational Database)
• คือ การรวบรวมเอนทิต ี้ หรือตารางทีอยูในระบบ
่ ่
ั
ทีมความสมพันธ์ระหว่างกันเข ้าด ้วยกัน
่ ี
- 3. ั
ศพท์ตางๆในระบบฐานข ้อมูล
่
• เอนทิต ี้ ( Entity ) เป็ นคาทีอ ้างถึงบุคคล สถานที่ และ
่
ิ่ ่ ิ ั่ ้ื
สงของต่างๆ เชน สนค ้า ใบสงซอ และลูกค ้า เป็ นต ้น
ั่ ื้ ิ
ถ ้าเราสนใจในการสร ้างระบบฐานข ้อมูลการสงซอสนค ้า
เอนทิต ี้ เอนทิตของระบบนีจะประกอบด ้วยเอนทิต ี้
ี้ ้
ั่ ื้ ิ ิ
ลูกค ้า ใบสงซอสนค ้ากับสนค ้า ดังรูป
ลูกค ้า (Customer) ิ
สนค ้า (Product)
ั่ ื้
ใบสงซอ (Order)
- 4. แอตทริบวต์ (Attribute)
ิ ิ
สนค้า
• เป็ นข ้อมูลทีแสดงลักษณะของเอนทิต ี้ เชน
่ ่ ิ
รหัสสนค ้า
แอตทริบวต์ของเอนทิตลกค ้า จะมีชอ ทีอยู่
ิ ี้ ู ื่ ่ ื่ ิ
ชอสนค ้า
่
และรหัสไปรษณีย ์ สวนแอตทริบวต์ของ ิ ราคาต่อหน่วย
ั่ ื้ ิ
เอนทิตใบสงซอสนค ้า จะมีรหัสใบสซอ วันที่
ี้ ั่ ื้ รามภาษี ด ้วยหรือไม่
ั่ ื้ ื่ ิ
สงซอ ชอ สนค ้า จานวนสนค ้าทีสง และ ิ ่ ่ ิ
จานวนสนค ้าในคลัง
ิ ึ่
ราคาสนค ้า เป็ นต ้น ซงเราสามารถแสดง รหัสชนิดสนค ้า ิ
เอนทิต ี้ รวมทังแอตทริบวต์ได ้ ดังรูป
้ ิ ื่
ชอชนิดสนค ้า ิ
ื่
ชอเอนทิต ี้ ลูกค้า ่ ั ้ื
ใบสงซอ
ิ
รหัสสนค ้า รหัสใบสงซอ ั่ ื้
ื่
ชอลูกค ้า ่ ั่ ิ
วันทีสงสนค ้า
แอตทริบวต์ทงหมด
ิ ั้ ทีอยูลกค ้า
่ ่ ู ่ ่ ิ
วันทีสงสนค ้า
รหัสไปรษณีย ์ รหัสลูกค ้าทีสง ่ ั่
หมายเลขโทรศพท์ ั ิ
รหัสสนค ้าทีสง ่ ั่
ิ
จานวนสนค ้าทีสง ่ ่ั
่
สวนลด
- 5. ั
ความสมพันธ์ (Relationships)
ั
• จะหมายถึง ความสมพันธ์ระหว่างเอนทิตตางๆในระบบ
ี้ ่
่ ั่ ิ
เชน ในระบบการสงสนค ้า จะประกอบด ้วยเอนทิตใบสงซอ
ี้ ั่ ื้
ิ ึ่ ั
สนค ้าและเอนทิตลกค ้า ซงมีความสมพันธ์จากลูกค ้าไปยัง
ี้ ู
ั่ ื้ ิ
ใบสงซอสนค ้า
One-to-Many
ลูกค้า ่ ั ื้
ใบสงซอ
ิ
รหัสสนค ้า รหัสใบสงซอ ั่ ื้
ื่
ชอลูกค ้า ่ ั่ ิ
วันทีสงสนค ้า
ทีอยูลกค ้า
่ ่ ู ่ ่ ิ
วันทีสงสนค ้า
รหัสไปรษณีย ์ รหัสลูกค ้าทีสง ่ ั่
หมายเลขโทรศพท์ ั ิ
รหัสสนค ้าทีสง ่ ั่
ิ
จานวนสนค ้าทีสง ่ ั่
่
สวนลด
- 6. ั
ชนิดของความสมพันธ์
ั
• ความสมพันธ์หนึงต่อหนึง
่ ่
(One-to-One Relationships)
ั
• ความสมพันธ์แบบหนึงต่อกลุม
่ ่
(One-to-Many Relationships)
ั
• ความสมพันธ์แบบกลุมต่อกลุม
่ ่
(Many-to-Many Relationships)
- 7. ั
ความสมพันธ์หนึงต่อหนึง
่ ่
(One-to-One Relationships)
• 1 เรคอร์ดในตารางหนึงจะมีความสมพันธ์
่ ั
กับอีกเรคอร์ด 1 เรคอร์ดในอีกตารางหนึง ่
่
เท่านั น ไม่สามารถมีเกิน 1 ได ้ เชน
้
ิ
ตารางราคาสนค ้า และตารางจานวน
ิ ั
สนค ้า จะมีความสมพันธ์แบบ One-to-
One
- 8. One-to-One
ิ
ตารางราคาสนค ้า
ราคาต่อหน่วย
ิ
รหัสสนค ้า ื่ ิ
ชอสนค ้า ภาษี
(บาท)
0005 คูมอสาหรับผู ้นาในยุค 90
่ ื 219.63 yes
0100 พูดอย่างมีวาทะ 219.63 yes
0051 SECRETS OF STARGATE 1842.99 yes
เรคอร์ดของตารางทัง 2 มี
้
ั
ความสมพันธ์แบบ 1 ต่อ 1
ิ
ตารางจานวนสนค ้าในคลัง
ราคาต่อหน่วย
ิ
รหัสสนค ้า ื่ ิ
ชอสนค ้า ภาษี
(บาท)
0005 คูมอสาหรับผู ้นาในยุค 90
่ ื 219.63 yes
0100 พูดอย่างมีวาทะ 219.63 yes
0051 SECRETS OF STARGATE 1842.99 yes
- 9. • ั
เป็ นความสมพันธ์ทเรคอร์ด 1 เรคอร์ดในตารางหนึง
ี่ ่
ั
จะสมพันธ์กบจานวนเรคอร์ด 2 เรคอร์ดหรือมากกว่า
ั
่ ั่
ในอีกตารางหนึง ตัวอย่างเชน ลูกค ้าสามารถสง
่
ิ ั่ ิ ั่ ิ
สนค ้าได ้หลายใบสงสนค ้า แต่ใบสงสนค ้าใบหนึงจะ
่
ู ั่
มีลกค ้าสงเพียงรายเดียวเท่านั น
้
ั
ความสมพันธ์แบบหนึงต่อกลุม
่ ่
(One-to-Many Relationships)
- 10. One-to-Many Relationships ั่ ื้
ตารางใบสงซอ
ั่ ื้
รหัสการสงซอ รหัสลูกค ้า ่ ั่ ิ
วันทีสงสนค ้า ่ ่ ิ
วันทีสงสนค ้า ิ
รหัสสนค ้า ิ ่ ั่ ื้
จานวนสนค ้าทีสงซอ ่
สวนลด (%)
10258 015 21/10/94 28/10/06 0005 8 25.00%
10265 181 21/10/94 27/10/06 0005 31 0.00%
10258 015 24/10/06 3/11/06 007 16 0.00%
ั่ ิ
ลูกค ้า 1 ราย สามารถสงสนค ้าได ้หลายครัง
้
หมายเลข
รหัสลูกค ้า ื่
ชอลูกค ้า ทีอยูลกค ้า
่ ่ ู รหัสไปรษณีย ์
ั
โทรศพท์
015 Hope Shop สมาคมฝรั่งเศส 29 ถ.สาธรใต ้ ทุง
่ 10330 267-8850-5
มหาชน ยานนาวา กรุงเทพฯ
181 The book Shop Asia Hotel 296 ถ.พญาไท 10330 267-8850-5
กรุงเทพฯ
ตารางลูกค ้า
- 11. ั
• ความสมพันธ์ทสมาชกมากกว่าหนึง ี่ ิ ่
ิ
สมาชกใน เอนทิตหนึงมี ี้ ่
ั
ความสมพันธ์กบสมาชกในอีกหนึง
ั ิ ่
เอนทิตมากกว่าหนึงสมาชก หรือ
ี้ ่ ิ
กล่าวได ้ว่า ความสมพันธ์ ดังกล่าว ั
เป็ นแบบกลุมต่อกลุม เชน เอนทิต ี
่ ่ ่
ึ
นักศกษาและเอนทิตชดวิชามี ี ุ
ั
ความสมพันธ์กนแบบกลุมต่อกลุมั ่ ่
ึ
กล่าวคือ นักศกษาแต่ละคนสามารถ
ลงทะเบียนเรียนได ้หลายชุดวิชา
และแต่ละชุดวิชาสามารถมี
ึ
นักศกษาลงทะเบียนเรียนได ้หลาย
คน
ั
ความสมพันธ์แบบกลุมต่อกลุม
่ ่
(Many-to-Many Relationships)
- 12. Many-to-Many Relationships
ั่ ื้
รหัสการสงซอ รหัสลูกค ้า ่ ั่ ิ
วันทีสงสนค ้า ่ ่ ิ
วันทีสงสนค ้า
10258 015 21/10/06 28/10/06
10265 181 21/10/06 27/10/06
ั่ ื้
รหัสการสงซอ ิ
รหัสสนค ้า ิ ่ ั่ ื้
จานวนสนค ้าทีสงซอ ่
สวนลด (%)
10258 0005 8 25.00%
10258 0008 8 0.00%
ิ
รหัสชนิดสนค ้า ิ
รหัสสนค ้า ื่ ิ
ชอสนค ้า ราคาต่อหน่วย(บาท) ภาษี จานวนในคลัง
01 0005 คูมอสาหรับผู ้นาในยุค 90
่ ื 219.63 Yes 409
01 0100 พูดอย่างมีวาทะ 219.63 Yes 155
- 14. Primary Key (คียหลัก)
์
• ่ ้
คียหลัก คือ Key หลักทีใชในการอ ้างถึง Entity ในฐานข ้อมูล
์
การเลือกคียหลักสามารถเลือกได ้จากRecord ใดๆ ก็ได ้ทีไม่ม ี
์ ่
โอกาสซ้าซอนกันบนฐานข ้อมูลนั น
้ ้
- 15. • คียรอง คือ คียเดียวหรือคีย ์
์ ์ ่
ผสม (Single or Composite
ึ่ ่ ้
key) ซงเมือใชในการค ้นหา
ั
ข ้อมูลจากความสมพันธ์จะได ้
มากกว่าหนึงเรคคอร์ด ต่างจาก
่
คียหลักทีทาให ้ข ้อมูลในตาราง
์ ่
ไม่ซ้ากัน
Secondary Key (คียรอง)
์
- 16. Foreign Key (คียนอก)
์
• ่ ่ ี ั
เป็ นฟิ ลด์ในตารางหนึง (ฝั่ ง Many) ทีมความสมพันธ์กบฟิ ลด์ท ี่
ั
เป็ น Primary Key ในอีกตารางหนึง (ฝั่ ง One) โดยทีตารางทัง
่ ่ ้
ั
สองมีความสมพันธ์แบบ One-to-Many ต่อกัน
ั่ ื้
รหัสการสงซอ รหัสลูกค ้า ่ ั่ ิ
วันทีสงสนค ้า ่ ่ ิ
วันทีสงสนค ้า
10258 015 21/10/06 28/10/06
10265 181 21/10/06 27/10/06
Primary Key
Foreign Key
ั่ ื้
รหัสการสงซอ ิ
รหัสสนค ้า ิ ่ ั่ ื้
จานวนสนค ้าทีสงซอ ่
สวนลด (%)
10258 0005 8 25.00%
10258 0008 8 0.00%
- 17. Candidate Key (คียคแข่ง)
์ ู่
• เป็ นฟิ ลด์หนึง หรือหลายฟิ ลด์ทมคณสมบัตทเป็ น Primary Key
่ ี่ ี ุ ิ ี่
่ ื่
ได ้ แต่ไม่ได ้เป็ นคียหลัก เชน ชอและนามสกุล สามารถรวมกัน
์
เป็ นคียคแข่งได ้ เป็ นต ้น
์ ู่
Candidate Key
หมายเลข
รหัสลูกค ้า ื่
ชอลูกค ้า นามสกุล รหัสไปรษณีย ์
ั
โทรศพท์
001 ศราวุธ หมูโยธา
่ 10330 267-8850-5
002 ิ
เตชสทธิ์ ั
คลองชนนันทื 10330 267-8850-5
Primary Key