04 the entities relationship model
TRANSCRIPT
The Relational Database Model
A Logical View of Data
Table And Their Characteristics
คุณสมบัติของรีเลชัน (Table)
• โครงสร้างตารางมีรูปแบบ 2 มิติ ประกอบไปด้วย คอลัม (Columns) และ แถว (Rows)
• แต่ละแถว (Row) แสดงหน่ึง Entity• แต่ละคอลัม (Column) แสดง attribute และแต่ละคอลัมจะต้องมี ชื่อที่
เฉพาะเจาะจง• ส่วนที่ซ้อนกันระหว่างแถวและคอลัมเป็นส่วนที่แสดงข้อมูล (data)
คุณสมบัติของรีเลขั่น (Table) (Cont.)
• ข้อมูลที่อยู่ภายใต้คอลัมเดียวกันจะต้องอยู่ในรูปแบบ (data format) เดียวกัน เช่น คอลัมที่เก็บข้อมูลรายได้ประจำวันเป็นตัวเลข ข้อมูลที่อยู่ภายใต้คอลัมน้ันของทุกๆ แถวจะต้องเป็นตัวเลขเช่นเดียวกัน
• แต่ละคอลัม (Column) มีขอบเขตข้อมูลหรือที่เรียกว่า attribute domain• ลำดับของแถว (Rows) และคอลัม (Column) ไม่มีความสำคัญต่อ DBMS• แต่ละ Table ต้องมี attribute หรือกลุ่มของ attribute ที่มีข้อมูลไม่ซ้ำกันใน
แต่ละแถว เพื่อใช้ในการจำแนกข้อมูลในแต่ละแถวได้
Example Table
Keys
• คีย์ (Keys) คือ attribute หรือกลุ่มของ attribute ที่สามารถบ่งบอกถึง attribute อื่นๆ ในแถวเดียวกันของข้อมูลได้
• เช่น ในตารางฐานข้อมูลทะเบียนนักศึกษา รหัสนักศึกษาถือเป็นคีย์ที่สำคัญในการแยกแยะข้อมูลของนักศึกษาแต่ละคนได้
• หรือเรียกอีกอย่างว่า รหัสนักศึกษาเป็นคีย์หลัก (Primary Key) ของตาราง (Table) ดังกล่าว
• ดังน้ันการคัดเลือก attribute เพื่อมาเป็นคีย์จึงมีความสำคัญมาก
Keys (Cont.)
• การเลือก attribute ใดๆ ใน ตารางความสัมพันธ์ (Table) มาเป็นคีย์ ต้องอาศัยหลักการที่เรียกว่า ดีเทอไมเนชั่น (determination) หรือ การกำหนดข้อมูลระหว่างกัน
• A determine B เขียนแทนด้วย A → B หมายถึง ข้อมูล A กำหนด ข้อมูล B กล่าวคือ เมื่อทราบข้อมูลที่ attribute A แล้วสามารถทราบข้อมูลของ attribute B ด้วย
• หรือหากรู้ข้อมูล attribute A แล้ว ทำให้ทราบข้อมูลของ attribute อื่นๆ นอกเหนือจาก B เช่น C, D, E, F ก็เขียนแทนด้วย A → B, C, D, E, F
Keys (Cont.)
• จาก A → B ที่เรียกว่า A กำหนด B เราอาจเรียกได้อีกอย่างว่า ข้อมูล B ขึ้นต่อ (Depend) ข้อมูล A
• คีย์ของตารางความสัมพันธ์มีหลายชนิดคือ– ซูปเปอร์คีย์ (Super Key)– คีย์คู่แข่ง (Candidate Key)– คีย์หลัก (Primary Key)– คีย์รอง (Secondary Key)– คีย์นอก (Foreign Key)
ซูปเปอร์คีย์ (Super Key)
• คือ attribute หรือกลุ่มของ attribute ที่ระบุความแตกต่างของข้อมูลแต่ละแถวของตารางความสัมพันธ์ (Table) ได้
• stdID• stdID, stdName• stdID, stdMojor• stdID, stdName, stdMojor
stdID stdName stdMajor5533470001 เยี่ยมยอด ยอดเยี่ยม วิทยาการคอมพิวเตอร์5533470002 กระเทียมดอง น้ำผึ้ง วิทยาการคอมพิวเตอร์5533470003 น้ำเหนือ ไหลแรง วิทยาการคอมพิวเตอร์
คีย์คู่แข่ง (Candidate Key)
• คือ ซูปเปอร์คีย์ที่เล็กที่สุด หรือมีจำนวน attribute น้อยที่สุด ที่สามารถระบุความแตกต่างของแต่ละแถวได้
• เราสามารถตรวจสอบเพื่อหาคีย์คู่แข่งได้โดยนำซูปเปอร์คีย์มาตัด attribute ออกทีละตัว หากตัด attribute ออกไปแล้ว attribute ที่เหลืออยู่สามารถบอกความแตกต่างของแถวได้ แสดงว่า attribute น้ันไม่ใช่คีย์คู่แข่ง (Candidate Key)
stdID stdName stdMajor stdSSN5533470001 เยี่ยมยอด ยอดเยี่ยม วิทยาการคอมพิวเตอร์ 12345678901325533470002 กระเทียมดอง น้ำผ้ึง วิทยาการคอมพิวเตอร์ 12345678901335533470003 น้ำเหนือ ไหลแรง วิทยาการคอมพิวเตอร์ 1234567890134
คีย์หลัก (Primary Key)
• คือคีย์คู่แข่งที่ถูกเลือกให้เป็นคีย์หลัก เพื่อใช้ในการระบุหรืออ้างถึงข้อมูลที่ต้องการ
stdID stdName stdMajor stdSSN5533470001 เยี่ยมยอด ยอดเยี่ยม วิทยาการคอมพิวเตอร์ 12345678901325533470002 กระเทียมดอง น้ำผ้ึง วิทยาการคอมพิวเตอร์ 12345678901335533470003 น้ำเหนือ ไหลแรง วิทยาการคอมพิวเตอร์ 1234567890134
คีย์รอง (Secondary Key)
• คือ คีย์คู่แข่งใดๆ ที่ไม่ได้ถูกเลือกเป็นคีย์หลัก
Quiz?คีย์หลักและคีย์รองของตารางความสัมพันธ์ในสไลด์ที่ผ่านมา
คือ attribute ใด ?
คีย์นอก (Foreign Key)
• คือ attribute ตัวใดตัวหน่ึงหรือหลายตัวรวมกันในตารางความสัมพันธ์ (relation) ซึ่งมีค่าตรงกับคีย์หลักในรีเลชั่นอื่นๆ
stdID stdName majorCode5533470001 เย่ียมยอด ยอดเย่ียม 15533470002 กระเทียมดอง น้ำผึ้ง 25533470003 น้ำเหนือ ไหลแรง 3
majorCode majorName1 วิทยาการคอมพิวเตอร์2 เทคโนโลยีสารสนเทศ3 เทคโนโลยีอาหาร
กฎความคงสภาพ (Integrity Rules)
• ตารางหรือรีเลชั่นต่างๆ ในฐานข้อมูลเชิงสัมพันธ์ มีการอ้างอิงความสัมพันธ์ของแต่ละรีเลชั่นโดยใช้คีย์ในการอ้างอิง หรือใช้คีย์เป็นตัวเชื่อมโยงระหว่างรีเลชั่น
• จึงจำเป็นต้องมีกฎความคงสภาพ เพื่อเป็นการควบคุมความถูกต้องในระบบฐานข้อมูล
• กฎความคงสภาพที่เกี่ยวกับคีย์มีดังต่อไปน้ี– Entity Integrity– Referential Integrity
Entity Integrity
• คีย์หลักของรีเลชั่นต้องมีค่าไม่ซ้ำกัน (Unique) และไม่มีค่าเป็น NULL (หมายถึงข้อมูลน้ันยังไม่สามารถกำหนดได้ ไม่ได้หมายถึงค่าว่าง) หรือ ศูนย์
• การมี Entity Integrity เพื่อให้เกิดความมั่นใจว่าข้อมูลแต่ละรายการจะสามารถถูกอ้างอิงถึงได้ และเมื่อรีเลชั่นอื่นต้องการเชื่อมโยงถึงข้อมูลในรีเลชั่นน้ีก็จะต้องสามารถทำได้
majorCode majorName1 วิทยาการคอมพิวเตอร์2 เทคโนโลยีสารสนเทศ2 เทคโนโลยีอาหาร
majorCode majorName1 วิทยาการคอมพิวเตอร์NULL เทคโนโลยีสารสนเทศNULL เทคโนโลยีอาหาร
Referential Integrity
• สำหรับรีเลชั่นที่มีคีย์นอก (Foreign Key) ค่าของคีย์นอกจะต้องตรงกันกับค่าของคีย์หลักในรีเลชั่นอื่น หรือมีค่าเป็น NULL
stdID stdName majorCode5533470001 เย่ียมยอด ยอดเย่ียม 15533470002 กระเทียมดอง น้ำผึ้ง 55533470003 น้ำเหนือ ไหลแรง NULL
majorCode majorName1 วิทยาการคอมพิวเตอร์2 เทคโนโลยีสารสนเทศ3 เทคโนโลยีอาหาร