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

Slides:



Advertisements
Similar presentations
Chapter3 : Data Model Class on 23 and 24 Nov 10
Advertisements

การเสริมสร้างประสิทธิภาพในการใช้โปรแกรมสำนักงานของผู้เรียนอาชีวศึกษา
แบบจำลองฐานข้อมูล คือ เครื่องมือในเชิงแนวคิดที่ใช้ในการอธิบาย ข้อมูล
ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
เป็นหลักสำคัญในการนำเสนอเนื้อหา ของบทเรียนคอมพิวเตอร์ช่วยสอนก็คือ ควร นำเสนอภาพที่เกี่ยวข้องกับเนื้อหา ประกอบ กับคำอธิบายสั้นๆ ง่ายๆ แต่ได้ใจความ การใช้ภาพประกอบจะทำให้ผู้เรียน.
จัดทำโดย น. ส. ดวงกมล งามอยู่เจริญ เลขที่ 8 น. ส. ณัชชา เชื้อตา เลขที่ 6 เตรียมบริหารธุรกิจปี 1.
System Database Semester 1, 2009 Worrakit Sanpote 1.
การใช้งานโปรแกรม SPSS
Entity-Relationship Model E-R Model
ซอฟต์แวร์ระบบที่รู้จักกันดี คือซอฟต์แวร์ควบคุมการปฏิบัติการ ของคอมพิวเตอร์ที่เรียกว่า ระบบปฏิบัติการ ระบบปฏิบัติการเป็นชุดคำสั่งที่ใช้ควบคุมระบบฮาร์ดแวร์และ.
วิทยาลัยเทคโนโลยีบริหารธุรกิจอยุธยา
หลักการออกแบบฐานข้อมูล
1. Select query ใช้สำหรับดึงข้อมูลที่ต้องการ
Database Management System
โปรแกรมคำนวณคะแนน สหกรณ์ ตามเกณฑ์ดีเด่นแห่งชาติ กรมส่งเสริม สหกรณ์ กองพัฒนาสหกรณ์ด้านการเงิน และร้านค้า วิธีการใ ช้
นาย สรวิศ เตธัญญวรากูล ปวช.3/2 นาย ศิวกร มาลี ปวช.3/2.
การพัฒนาผลสัมฤทธิ์ทางการเรียน วิชาการใช้โปรแกรมนำเสนอข้อมูล เรื่องการเชื่อมโยง ภาพนิ่ง ด้วยโปรแกรม Powerpoint2007 โดยใช้ สื่อคอมพิวเตอร์ช่วยสอน CAI ของนักเรียนระดับชั้น.
จัดทำโดย นางสาวพิจิตรา ปันเต เลขที่ 18 นางสาวปิยธิดา อุตมา เลขที่ 19 ใบงานที่ 2 เรื่อง ความหมายและความสำคัญของโครงงาน.
การจัดเก็บข้อมูลในแฟ้มข้อมูลธรรมดา นั้น อาจจำเป็นที่ใช้แต่ละคน จะต้องมีแฟ้มข้อมูลของตนไว้เป็นส่วนตัว จึง อาจเป็นเหตุให้มีการเก็บข้อมูล ชนิดเดียวกันไว้หลาย.
วิธีการใ ช้ โปรแกรมคำนวณคะแนน กลุ่มเกษตรกรดีเด่น กองพัฒนาสหกรณ์ด้าน การเงินและร้านค้า กรมส่งเสริม สหกรณ์
Microsoft Access 2007 ทำความรู้จักและใช้งาน. รู้จักกับฐานข้อมูล (Database) ฐานข้อมูล (Data base) คือ ? Bit Byte Field/Word Record Table/File.
CHAPTER 11 Database Design. 2 PHP ภาควิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่ Agenda Data Organization Relational Database Entity,
การออกแบบโครงสร้างข้อมูล การออกแบบโครงสร้างข้อมูล หมายถึง กรณีสร้างตารางใหม่ด้วย ออกแบบตาราง (Table Design) เพื่อต้องการกำหนด โครงสร้างด้วยตนเอง โดยมีขั้นตอนการ.
การจัดกิจกรรมการ เรียนรู้แบบการทำ โครงงานคอมพิวเตอร์ การจัดกิจกรรมการ เรียนรู้แบบการทำ โครงงานคอมพิวเตอร์ ครูชาญณรงค์ ปานเลิศ โรงเรียนพระบางวิทยา ครูชาญณรงค์
ง21101 การงานอาชีพและเทคโนโลยี ม. 1 เจตคติต่อการประกอบอาชีพ
ระบบมาตรฐานการพัฒนาชุมชน ผอ.กลุ่มงานมาตรฐานการพัฒนาชุมชน
ฐานข้อมูล.
การสร้างแผนปฏิบัติการระดับตำบลหรือท้องถิ่น
บทที่ 2 นอร์มัลไลเซชัน normalization
การทำ Normalization 14/11/61.
IP-Addressing and Subneting
IP-Addressing and Subneting
บทสรุป ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
บทที่ 11 การเขียนแผนผังข้อมูลแบบสัมพัทธ์.
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
ห้องแลปการคิดสร้างสรรค์
The Comptroller General's Department ล้างบัญชีพักงานระหว่างก่อสร้าง
กลุ่มคำและประโยค ภาษาไทย ม. ๓
คำสั่ง Create , Insert, Delete, Update
การสร้างฟอร์มย่อย การสร้างฟอร์มย่อยและรายงานย่อย
กรณีศึกษา : นักเรียน ระดับ ปวช.2 สาขาวิชาการบัญชี
CIT2205 โปรแกรมประยุกต์ด้านการจัดการฐานข้อมูล
กลุ่มสาระการเรียนรู้วิทยาศาสตร์
การสร้างโมเดลจำลองความสัมพันธ์ ระหว่างข้อมูล E-R Model
หน่วยที่ 3 การประมวลผลข้อมูลให้เป็นสารสนเทศ
บริษัท พัฒนาวิชาการ (2535) จำกัด
Application of Software Package in Office
โดย นางสาวนิรมล บุรกรณ์
SMS News Distribute Service
บทที่7 ทฤษฎีกราฟเบื้องต้น
ทำความรู้จักและใช้งาน
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
วัสดุและเทคนิค ทางการออกแบบ อ.สุวิธธ์ สาดสังข์ ( Material and
บรรยายครั้งที่ 8 - กราฟฟิกวิศวกรรม 1
การแก้ไขข้อมูล ความสัมพันธ์ระหว่างตาราง
สาขาวิชาคอมพิวเตอร์ธุรกิจ โดย อาจารย์กิตติพงษ์ ภู่พัฒน์วิบูลย์
สถาปัตยกรรมของฐานข้อมูล
Introduction to Database System
สรุปขั้นตอนการสร้าง E-R Diagram
ฐานข้อมูลเชิงสัมพันธ์
บทที่ 2 โครงสร้างข้อมูลแบบแถวลำดับหรืออาร์เรย์ (Array)
ตัวแบบข้อมูล (Data Modeling)
งานสังคมครั้งที 1 เรื่อง การเก็บข้อมูลประวัติหมู่บ้าน ชุมชน วิถีชุมชน โดย น.ส.อธิชา ฤทธิ์เจริญ ม.4 MEP-A เลขที่ 21.
บทที่ 4 การจำลองข้อมูลและกระบวนการ (Data and Process Modeling)
Chapter 7 : ขั้นตอนการแปลงแผนภาพ ER มาเป็นรีเลชั่น ( ER-to-Relational Mapping Algorithm ) อ.คเชนทร์ ซ่อนกลิ่น.
ทายสิอะไรเอ่ย ? กลม เขียวเปรี้ยว เฉลย ทายสิอะไรเอ่ย ? ขาว มันจืด เฉลย.
Database Design & Development
กิจกรรมที่ 12 รวบรวมข้อมูลอย่างไรกันดี
Class Diagram.
กระดาษทำการ (หลักการและภาคปฏิบัติ)
Presentation transcript:

Chapter 4 : ฐานข้อมูลเชิงสัมพันธ์ (Relational Database) อ.คเชนทร์ ซ่อนกลิ่น

หัวข้อ ความหมายฐานข้อมูลเชิงสัมพันธ์ โครงสร้างฐานข้อมูลเชิงสัมพันธ์ รีเลชั่น (Relation) ดีกรี (Degree) คาร์ดินัลริตี้ (Cardinality) โดเมน (Domain)

หัวข้อ (ต่อ) โครงสร้างฐานข้อมูลเชิงสัมพันธ์ (ต่อ) คีย์ (Key) คีย์หลัก (Primary Key : PK) คีย์นอก (Foreign Key : FK) คีย์ร่วม (Composite Key) คีย์คู่แข่ง (Candidate Key) คีย์สำรอง (Alternate Key) ค่าว่าง (Null Values)

หัวข้อ (ต่อ) ความสัมพันธ์ (Relationship) กฎควบคุมความคงสภาพของข้อมูล (Integrity Constraint) กฎความคงสภาพของ Entity (Entity Integrity Rule) กฎความคงสภาพของการอ้างอิง (Referential Integrity Rule) ความสัมพันธ์ (Relationship)

ความหมายของฐานข้อมูลเชิงสัมพันธ์ โมเดลฐานข้อมูลเชิงสัมพันธ์ถูกพัฒนาขึ้นมาครั้งแรกในปี ค.ศ.1970 โดย E.F.Codd จาก บริษัท IBM โดยมีการเก็บข้อมูลในรูปแบบของ ตาราง (Table) หรือ รีเลชั่น (Relation) ที่ประกอบด้วย 1. Attribute : คอลัมน์ ที่ใช้แทน เขตข้อมูล (Field) 2.Tuple : แถว ที่ใช้แทน ระเบียน (Record) โดย Relation ต่างๆ ได้ผ่านกระบวนการทำให้ Relation เป็นบรรทัดฐาน (Normalized) ในระหว่างการออกแบบเพื่อลดความซ้ำซ้อน และเพื่อให้การ จัดการฐานข้อมูลเป็นไปอย่างมีประสิทธิภาพ

โครงสร้างของฐานข้อมูลเชิงสัมพันธ์ Relation Relation เป็นหน่วยเก็บข้อมูลในรูปแบบของตาราง(Table) โดยเป็นคำศัพท์ที่ถูกนำมาจากวิชาคณิตศาสตร์ที่แสดงถึงรูปแบบของตาราง 2 มิติ ที่ประกอบด้วยคอลัมน์และแถวของข้อมูล คอลัมน์ แสดงคุณสมบัติของ Relation หมายถึง Attribute ของ Relation แถว ข้อมูลตามคอลัมน์ที่เป็นคุณสมบัติของ Relation หมายถึง Tuple หรือ Record

คุณสมบัติของ Relation 1. ช่อง(Cell) แต่ละช่องของตารางเก็บข้อมูลได้เพียงค่าเดียว 2. ชนิดข้อมูล ข้อมูลที่อยู่ในคอลัมน์เดียวกันจะต้องมีชนิดข้อมูล(Data Type) เป็นแบบเดียวกัน เช่น คอลัมน์รหัสประจำตัวของทุกแถวจะต้องมีข้อมูล ที่เป็นตัวเลขเท่านั้น 3. ชื่อคอลัมน์ แต่ละคอลัมน์ของ Relation หนึ่งๆ จะต้องมีชื่อคอลัมน์ที่แตกต่างกัน ส่วนลำดับของคอลัมน์ก่อนและหลังไม่ถือว่าสำคัญ 4. แถว ข้อมูลแต่ละแถวของ Relation หนึ่งๆ จะต้องแตกต่างกัน ส่วนการเรียงลำดับ ของแถวไม่ถือว่าสำคัญ

รูปแสดงโครงสร้างของ Relation Attribute นักศึกษา รหัสประจำตัว ชื่อ คณะ ที่อยู่ 54652235 มานิด สุขใจ วิทยาศาสตร์ อุตรดิตถ์ 54652236 สว่าง นาการ 54652237 ระฟ้า ดีพร้อม วิทยาการจัดการ Tuple หรือ Record ช่องใส่ข้อมูล (Cell) รูปแสดงโครงสร้างของ Relation

รูปแบบที่ใช้แทน Relation สามารถเขียนแทนได้ดังนี้ นักศึกษา รหัสประจำตัว ชื่อ คณะ ที่อยู่ หรือ Relation Schema นักศึกษา(รหัสประจำตัว,ชื่อ,คณะ,ที่อยู่)

โครงสร้างของฐานข้อมูลเชิงสัมพันธ์ (ต่อ) ดีกรี (Degree) จำนวนของ Attribute ใน Relation Binary Unary ID POSITION 1 MANAGER 2 SALE VAT 7 Degree = 1 Degree = 2 Ternary n-ary ID PRODUCT … 1 RAM 2 PRINTER ID ROOM PRICE 1 BIG MEETNG 1000 2 SMALL MEETNG 50 Degree = 3 Degree = n

ตัวอย่าง 4 3 นักศึกษา รหัสประจำตัว ชื่อ-สกุล คณะ ที่อยู่ 54652235 มานิด สุขใจ วิทยาศาสตร์ อุตรดิตถ์ 54652236 สว่าง นาการ 4 Degree = สินค้า รหัสสินค้า ชนิดสินค้า ราคา / หน่วย P01 กระดาษ A4 70 g. 70 P02 กระดาษ A4 80 g. 80 P03 กระดาษ F4 80 g. 100 P04 กระดาษยาวพิเศษ (F14) 80 g. 120 3 Degree =

โครงสร้างของฐานข้อมูลเชิงสัมพันธ์ (ต่อ) คาร์ดินัลริตี้ (Cardinality) จำนวนของ Tuple ใน Relation ROOM POSITION ID ROOM PRICE 1 BIG MEETNG 1000 2 SMALL MEETNG 50 ID POSITION 1 MANAGER 2 SALE 3 PR 4 Cardinality = 2 Cardinality = 4

ตัวอย่าง สารสนเทศ (Information) Degree = 5 Cardinality = 7 จำนวน Attribute ที่มีในตาราง Entity หรือ Relation (ตาราง) Degree = Cardinality = 5 Attribute (Field ) 7 จำนวน Tuple ที่มีในตาราง ตารางนักศึกษา สารสนเทศ (Information) Tuple (Record)

โครงสร้างของฐานข้อมูลเชิงสัมพันธ์ (ต่อ) โดเมน(Domain) ขอบเขตของค่าที่เป็นไปได้ของข้อมูลแต่ละ Attribute เพื่อป้องกันไม่ให้ เกิดการป้อนข้อมูลที่เกินขอบเขตที่กำหนด เช่น กำหนดให้ค่าเงินเดือนของพนักงานจะต้องมีค่ามากกว่า 0 เพื่อป้องกันไม่ให้ผู้ใช้ป้อนจำนวนเงินที่เป็น 0 หรือ มีค่าติดลบให้กับข้อมูลในส่วนของเงินเดือนของพนักงาน, กำหนดเพศ ให้กับพนักงานจะต้องมีค่าเป็นชาย หรือ หญิง เท่านั้น

ตัวอย่าง กำหนดเพศให้กับพนักงานจะต้องมีค่าเป็น ชาย หรือ หญิง เท่านั้น รหัส ชื่อ เงินเดือน เพศ 1 โดม 20000 ชาย 2 ญาญ่า 30000 หญิง ค่าเงินเดือนต้องมีค่ากว่า 0

โครงสร้างของฐานข้อมูลเชิงสัมพันธ์ (ต่อ) คีย์(Key) Attribute หรือ กลุ่มของ Attribute ที่อยู่ใน Relation ที่ถูกกำหนดขึ้นมาเพื่อ ให้แต่ละ Tuple (แถว) มีความแตกต่าง และเพื่อสามารถระบุความเป็น เอกลักษณ์ (Uniquely) ในแต่ละแถว สามารถบอกได้ว่าข้อใดสัมพันธ์ กับข้อมูลใด มีอยู่ 5 ประเภท คีย์หลัก (Primary Key : PK) คีย์นอก (Foreign Key : FK) คีย์ร่วม (Composite Key) คีย์คู่แข่ง (Candidate Key) คีย์สำรอง (Alternate Key)

ประเภทของคีย์ คีย์หลัก (Primary Key : PK) เป็น Attribute ที่มีคุณสมบัติของข้อมูลที่มีค่าเป็นเอกลักษณ์โดยคุณสมบัตินั้นจะสามารถระบุว่าข้อมูลนั้นเป็นของ Tuple ใด นักศึกษา(รหัสประจำตัว,ชื่อ,คณะ,ที่อยู่) คนงาน(รหัสคนงาน,ชื่อคนงาน,อัตราค่าต่อชั่วโมง,ประเภทความชำนาญ,รหัสผู้ควบคุม)

ตัวอย่าง

ประเภทของคีย์ (ต่อ) คีย์นอก (Foreign Key : FK) คีย์ซึ่งประกอบด้วย Attribute หรือกลุ่มของ Attributeใน Relation ซึ่งมีคุณสมบัติเป็นคีย์หลัก และไปปรากฏอีก Relation หนึ่ง เพื่อประโยชน์ในการเชื่อมโยงข้อมูลซึ่งกันและกัน

ตัวอย่าง FK PK

ประเภทของคีย์ (ต่อ) คีย์ร่วม (Composite Key) คีย์หลักที่ประกอบด้วย Attribute มากกว่า 1 Attribute เนื่องจากถ้าใช้ Attribute เดียวอาจจะมีปัญหาข้อมูลแต่ละแถวซ้ำกันได้ ซ้ำ PROJWORK(PROJNO,EMPNUM,HOURS)

ประเภทของคีย์ (ต่อ) คีย์คู่แข่ง (Candidate Key) ในแต่ละ Relation อาจมี Attribute ที่ทำหน้าที่เป็นคีย์หลักได้มากกว่าหนึ่ง Attribute โดยเรียก Attribute เหล่านี้ว่า คีย์คู่แข่ง (Candidate Key) เช่น นักศึกษาแต่ละคน มี - รหัสประจำตัวนักศึกษา - รหัสประจำตัวบัตรประชาชน โดยปกติแล้วจะเลือก Candidates Key ที่สั้นที่สุดเป็น Primary Key

คีย์คู่แข่ง Candidate Key คีย์หลัก (Primary Key) ตัวอย่าง คีย์คู่แข่ง Candidate Key รหัสนักศึกษา ชื่อ สกุล บัตรประชาชน ชั้นเรียน สาขา คีย์หลัก (Primary Key)

ประเภทของคีย์ (ต่อ) คีย์สำรอง (Alternate Key) คือ คีย์คู่แข่ง (Candidate Key) ที่ไม่ได้ถูกเลือกให้เป็นคีย์หลัก

ตัวอย่าง คีย์หลัก (Primary Key) คีย์คู่แข่ง Candidate Key รหัสนักศึกษา ชื่อ สกุล บัตรประชาชน ชั้นเรียน สาขา คีย์หลัก (Primary Key) คีย์สำรอง (Alternate Key)

เพิ่มเติม คีย์คู่แข่ง Candidate Key คีย์หลัก (Primary Key) คีย์สำรอง (Alternate Key) Candidate Key สามารถเป็น Primary Key และ Alternate Key ได้

ค่าว่าง (Null Value) ถ้า Attribute ใดไม่มีค่าข้อมูลเก็บอยู่ จะเรียกค่าใน Attribute นั้นว่า ค่าว่าง (Null Value) ซึ่งค่าว่างนี้ไม่ได้หมายความว่าข้อมูลที่เก็บอยู่ใน Attribute นั้นมีค่าเป็นช่องว่าง (blank) หรือ เลข 0 แต่เป็นเพียงการบอกว่ายังไม่รู้ หรือ ว่ายังไม่พร้อมที่จะใส่ข้อมูลลงไป ซึ่งตอนหลังอาจมีการกลับมาใส่ข้อมูลลงไปใหม่ได้ รหัสนักศึกษา รหัสวิชา เกรด 50000001 โดม 50000002 ญาญ่า A ค่าว่าง

กฎควบคุมความคงสภาพของข้อมูล (Integrity Constraint) กฎความคงสภาพของ Entity (Entity Integrity Rule) “ค่าข้อมูลของคีย์หลักจะต้องไม่เป็นค่าว่าง(Null Value)” เพราะจะไม่สามารถนำ Primary Key มาใช้เข้าถึงข้อมูลในแต่ละแถวได้

ตัวอย่าง ค่าว่าง ค่าว่าง รหัสนักศึกษา รหัสวิชา เกรด โดม B 50000002 ญาญ่า A ค่าว่าง รหัสนักศึกษา รหัสวิชา เกรด 50000001 โดม 50000002 ญาญ่า A

กฎควบคุมความคงสภาพของข้อมูล (Integrity Constraint) กฎความคงสภาพของการอ้างอิง (Referential Integrity Rule) “ถ้า Relation ใดมี Attribute ที่เป็นคีย์นอกอยู่ ข้อมูลที่เป็นคีย์นอกนั้นจะต้องเป็นข้อมูลที่มีอยู่ในคีย์หลักอีก Relation หนึ่ง” เนื่องจากจะต้องมีการอ้างถึงค่าในตารางที่เป็นคีย์นอก

ตัวอย่าง รหัสสินค้า ชื่อสินค้า จำนวน bk00198 เสื้อยืด 100 cd00034 คีย์หลัก ตารางสินค้า รหัสสินค้า ชื่อสินค้า จำนวน bk00198 เสื้อยืด 100 cd00034 กางเกงขายาง 250 คีย์หลัก คีย์นอก ตารางยอดขาย รหัสพนักงาน รหัสสินค้า ยอดขาย HY001 bk00198 80 HY002 cd00034 200

กฎการควบคุมความถูกต้องของข้อมูล (Data Integrity) ตัวอย่างงานระบบทะเบียนนักศึกษาจะมี Integrity Rule ดังต่อไปนี้ นักศึกษาทุกคนต้องสังกัดคณะที่มีอยู่เท่านั้น วิชาที่ลงทะเบียนต้องเป็นวิชาที่เปิดสอนเท่านั้น เกรดเฉลี่ยแต่ละเทอมจะอยู่ระหว่าง 0.00-4.00 เท่านั้น เกรดที่ได้จะต้องเป็น A,B+,B,C+,C,D+,D หรือ F เท่านั้น เป็นต้น

ความสัมพันธ์ (Relationship) แบ่งออกเป็น 3 ประเภท คือ 1. ความสัมพันธ์แบบหนึ่งต่อหนึ่ง One to One Relationship (1 – 1 or 1:1) 2. ความสัมพันธ์แบบหนึ่งต่อกลุ่ม One to Many Relationship (1 – M or 1:M) 3. ความสัมพันธ์แบบกลุ่มต่อกลุ่ม Many to Many Relationship (M – N or M:N)

ความสัมพันธ์ (Relationship) (ต่อ) ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (1 – 1 or 1:1) เป็นความสัมพันธ์ที่เข้าใจง่ายที่สุด เป็นความสัมพันธ์ของข้อมูลใน 1 เรคคอร์ดในตารางหนึ่งมีความสัมพันธ์กับข้อมูลอย่างมากหนึ่งข้อมูลกับอีกเรคคอร์ดในอีกตารางหนึ่งเท่านั้นในลักษณะที่เป็นหนึ่งต่อหนึ่ง

ความสัมพันธ์ (Relationship) (ต่อ) ตัวอย่างความสัมพันธ์แบบ One-to-One Relationship (1:1) พนักงานแต่ละคนจะมีที่จอดรถยนต์เพียงหนึ่งช่องเท่านั้น ที่จอดรถยนต์แต่ละช่องต้องเป็นที่จอดของพนักงานเพียงหนึ่งคนเท่านั้น พนักงาน จอดรถ ที่จอดรถ 1 E-R Diagram แสดงความสัมพันธ์ “จอดรถ” ระหว่างเอ็นทิตี้พนักงานและเอ็นทิตี้ที่จอดรถ พนักงาน ที่จอดรถยนต์ แผนภาพแสดงความสัมพันธ์ระหว่าง สมาชิกเอ็นทิตี้พนักงานกับเอ็นทิตี้ที่จอดรถ

ความสัมพันธ์ (Relationship) (ต่อ) ตัวอย่างความสัมพันธ์แบบ One-to-One Relationship (1:1) นักศึกษา สัญญาเงินกู้ 1 ทำ นักศึกษาหนึ่งคนทำสัญญาเงินกู้ได้เพียงครั้งเดียว สัญญาการกู้เงินแต่ละฉบับถูกลงชื่อกู้ได้จากนักศึกษาเพียงคนเดียวเท่านั้น

ความสัมพันธ์แบบ1:1 ระหว่างตาราง PROFESSOR และ DEPARTMENT

ความสัมพันธ์ (Relationship) (ต่อ) ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (1 – M or 1:M) เป็นความสัมพันธ์ที่พบบ่อยที่สุดในฐานข้อมูล เป็นความสัมพันธ์ของข้อมูลใน 1 เรคคอร์ดในตารางหนึ่งมีความสัมพันธ์กับข้อมูลมากกว่าหนึ่งข้อมูลกับอีกเรคคอร์ดในอีกตารางหนึ่งเท่านั้นในลักษณะที่เป็นหนึ่งต่อกลุ่ม วิศวกรรมไฟฟ้า วิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ วิศวกรรมอุตสาหการ วิศวกรรมเครื่องกล

ความสัมพันธ์ (Relationship) (ต่อ) ตัวอย่างความสัมพันธ์แบบ One-to-Many Relationship (1:M) อาจารย์หนึ่งคนจะสอนได้หลายกลุ่มเรียน แต่ละกลุ่มเรียนจะมีอาจารย์สอนได้เพียงคนเดียว DBMS Sec.01 DBMS Sec.02 อาจารย์ สอน กลุ่มเรียน 1 M DBMS Sec.03 DBMS Sec.04 DBMS Sec.05 E-R Diagram แสดงความสัมพันธ์ “สอน” ระหว่างเอ็นทิตี้อาจารย์และเอ็นทิตี้กลุ่มเรียน อาจารย์ กลุ่มเรียน แผนภาพแสดงความสัมพันธ์ระหว่าง สมาชิกเอ็นทิตี้อาจารย์กับเอ็นทิตี้กลุ่มเรียน

ความสัมพันธ์ (Relationship) (ต่อ) ตัวอย่างความสัมพันธ์แบบ One-to-Many Relationship (1:M) อาจารย์ นักศึกษา 1 M เป็นที่ปรึกษา อาจารย์แต่ละคนสามารถเป็นที่ปรึกษาให้กับนักศึกษาได้หลายคน นักศึกษาแต่ละคนจะมีอาจารย์ที่ปรึกษาเพียงคนเดียวเท่านั้น

ความสัมพันธ์ (Relationship) (ต่อ) ตัวอย่างความสัมพันธ์แบบ One-to-Many Relationship (1:M) ความสัมพันธ์แบบ 1:M ระหว่างตาราง PAINTER และ ตาราง PAINTING

ความสัมพันธ์ (Relationship) (ต่อ) ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (M – N or M:N) เป็นความสัมพันธ์ของข้อมูลในเรคคอร์ดใดๆ ของตารางหนึ่งมีค่าตรงกับข้อมูลของหลายๆ เรคคอร์ดในตารางอื่นๆ เช่น Database Systems พัชราภา Computer Networks เขมนิจ Computer Architecture สุวนันท์ Data Structures

ความสัมพันธ์ (Relationship) (ต่อ) ตัวอย่างความสัมพันธ์แบบ Many-to-Many Relationship (M:N) นักศึกษาแต่ละคนลงทะเบียนเรียนวิชาได้มากกว่า 1 วิชา แต่ละวิชามีนักศึกษาได้มากกว่า 1 คน วิชา DBMS นักศึกษา วิชา M N ลงทะเบียนเรียน วิชา Network วิชา OOP E-R Diagram แสดงความสัมพันธ์ “ลงทะเบียนเรียน” ระหว่างเอ็นทิตี้นักศึกษาและเอ็นทิตี้วิชา นักศึกษา วิชา แผนภาพแสดงความสัมพันธ์ระหว่าง สมาชิกเอ็นทิตี้นักศึกษากับเอ็นทิตี้วิชา

เกิดความซับซ้อน !!! ความสัมพันธ์แบบ M:N ระหว่างตาราง STUDENT และ CLASS CLASS_CODE ความสัมพันธ์แบบ M:N ระหว่างตาราง STUDENT และ CLASS

แก้ปัญหาโดย ความสัมพันธ์ เป็น Composite Entity และ STUDENT has CLASS ความสัมพันธ์ เป็น Composite Entity และ เปลี่ยนคำกริยาเป็นคำนาม STUDENT CLASS ENROLL M 1 N จาก 2 ตาราง คือ ตาราง STUDENT และ ตาราง CLASS แยกออกได้เป็น 3 ตาราง คือ ตาราง STUDENT , ตาราง CLASS , ตาราง ENROLL

สร้างตารางเพิ่มขึ้นมาอีก 1 อัน เป็น Composite Entity นำ PK ของตารางที่นำมาเชื่อม เป็น Composite key สร้างตารางเพิ่มขึ้นมาอีก 1 อัน เป็น Composite Entity none แปลงความสัมพันธ์แบบ M:N เป็น 2 ความสัมพันธ์แบบ 1:M

แบบฝึกหัด 1. จงเขียนโครงสร้างของ Relation (ห้ามซ้ำกับสไลด์ประกอบการเรียน) 2. คุณสมบัติในการจัดเก็บข้อมูลของ Relation มีอะไรบ้าง 3. Relation ประกอบด้วยคีย์ประเภทต่างๆ อะไรบ้าง จงอธิบายพร้อมยกตัวอย่าง ประกอบประเภทคีย์ดังกล่าว 4. Null หมายถึงอะไรใน Relational Database 5. เหตุใดจึงต้องมีการนำ Integrity rule มาใช้ในฐานข้อมูล 6. ความสัมพันธ์ระหว่าง Relation มีกี่ประเภท อะไรบ้าง จงยกตัวอย่างประกอบ (ห้ามยกตัวอย่างซ้ำกับสไลด์ประกอบการเรียน)