บทที่ 4 โครงสร้างฐานข้อมูลแบบ Relational (Relational Database Model)

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
BC421 File and Database Lab
Advertisements

กลุ่มคำสั่ง SQL สามารถแบ่งได้ดังนี้
File System Example of File System Employee Department
ฐานข้อมูลและการออกแบบฐานข้อมูล
MySQL.
ส่วนที่ 4 System Design การออกแบบระบบ.
– Web Programming and Web Database
Structured Query Language (SQL) (2)
Structured Query Language (SQL)
บทที่ 3 แบบจำลองข้อมูล Data Models Calculus
Chapter 3 แบบจำลองข้อมูล : Data Models
Database Programming Exceed Camp #2 24 October 2005.
ฐานข้อมูลเชิงสัมพันธ์
Charter 8 1 Chapter 8 การจัดการฐานข้อมูล Database Management.
การจัดการข้อมูลกับฐานข้อมูล [ การแก้ไขข้อมูล ] Teerapong Sangraksawong.
SQL Structured Query Language.
โปรแกรม Microsoft Access
1. ศัพท์พื้นฐานของฐานข้อมูล
SQL Structured Query Language.
โมเดลเชิงสัมพันธ์ The relational model.
แบบจำลองข้อมูล (Data Model)
Database & DBMS Architecture วรวิทย์ พูลสวัสดิ์. 2 2 ฐานข้อมูล (Database) - Data and its relation - Databases are designed to offer an organized mechanism.
DATABASE RELATIONAL MODEL ER DIAGRAM.
ระบบ ฐานข้อมูล (Database). ระบบฐานข้อมูล หมายถึง โครงสร้างสารสนเทศที่ประกอบด้วย รายละเอียดของข้อมูลที่เกี่ยวข้องกันที่ จะนำมาใช้ในระบบต่าง ๆ ร่วมกัน ระบบฐานข้อมูล.
ข้อมูล (data) หมายถึง ข้อเท็จจริงหรือ เหตุการณ์ ที่เกี่ยวข้องกับสิ่งต่าง ๆที่ เป็นตัวเลข ข้อความหรือ รายละเอียดซึ่งอาจอยู่ใน รูปแบบต่าง ๆ เช่น ภาพ เสียง.
Chapter 2 Relational Database
ประเภทของคำสั่งของภาษา SQL
Microsoft Access การใช้งานโปรแกรมระบบจัดการฐานข้อมูล
Database Design & Development
"วิธีวิเคราะห์แบบสอบถาม หรือแบบประเมิน ด้วยโปรแกรม SPSS"
ภาษา SQL (Structured Query Language)
ฐานข้อมูล (DATABASE) ผู้ช่วยศาสตราจารย์ ดร. เรวัต แสงสุริยงค์
SQL Structured Query Language.
Chapter 3 : แบบจำลองฐานข้อมูล (Data Model)
SQL (Structured Query Language)
Integrity Constraints
บทที่ 4 แบบจำลองฐานข้อมูลเชิงสัมพันธ์ Relational Database
สถาปัตยกรรมของระบบฐานข้อมูล
การเปลี่ยนจาก E-R Diagram เป็นโมเดลเชิงสัมพันธ์ (ตารางข้อมูล)
Chapter 6 : แบบจำลอง E-R (Entity-Relationship Model)
บทที่ 5 การควบคุมความถูกต้องให้กับข้อมูล (Data Integrity)
โดย อ.พัฒนพงษ์ โพธิปัสสา
Chapter 9 : ภาษาทางด้านฐานข้อมูลคำสั่ง SQL (SQL Command)
บทที่ 3 แบบจำลองข้อมูล Data Models
การจัดการฐานข้อมูลด้วยโปรแกรม MS Access 2013
SQL – Web Programming and Web Database
7 Entity-Relationship Modeling แผนภาพความสัมพันธ์ ORACLE MS SQL SERVER
บทที่ 3 แบบจำลองของฐานข้อมูล (Database Model)
E-R Diagram (Entity Relationship Diagram)
บทที่ 4 ฐานข้อมูล.
เพศสัมพันธ์ในวัยเรียน
CIT2205 โปรแกรมประยุกต์ด้านการจัดการฐานข้อมูล
ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
การออกแบบโครงสร้างฐานข้อมูลด้วย E-R Model และการแปลงเป็นรีเลชัน
Application of Software Package in Office
เรื่อง การวิเคราะห์และออกแบบฐานข้อมูล MySQL Database
โครงสร้างข้อมูล( Data Structure)
กฎการ Normalization 1. จะต้องไม่มีเซลล์ใดในตารางที่มีค่าเกิน 1 ค่า ดังนั้นเราสามารถทำให้ตารางผ่านกฎข้อที่ 1 ได้ด้วยการแยกเซลล์ที่มีค่าเกินหนึ่งออกเป็นเรคคอร์ดใหม่
การออกแบบฐานข้อมูล.
บทที่ 4 รูปแบบฐานข้อมูลเชิงสัมพันธ์ The Relational model
บทที่ 2 รูปแบบของฐานข้อมูล
ฐานข้อมูลเชิงสัมพันธ์ Relational Database
ตัวแบบข้อมูล (Data Modeling)
제 10장 데이터베이스.
[ บทที่ 5 ] การออกแบบฐานข้อมูล
CIT2205 โปรแกรมประยุกต์ด้านการจัดการฐานข้อมูล
Database Design & Development
การสรุปผลข้อมูล และ Action Query
Data resource management
[ บทที่ 2 ] กรอกแนวคิดและทฤษฎีเกี่ยวกับฐานข้อมูล
ใบสำเนางานนำเสนอ:

บทที่ 4 โครงสร้างฐานข้อมูลแบบ Relational (Relational Database Model) โดย อ.อภิพงศ์ ปิงยศ รายวิชา สธ312 ระบบการจัดการฐานข้อมูลทางธุรกิจ

Overview Relation Domain คุณสมบัติของ Relation ประเภทของ Relation Degree Cardinality Catalog ของ Relational Model

บทนำ แบบจำลองข้อมูลเชิงสัมพันธ์เป็นแบบจำลองข้อมูลที่ มีการใช้งานแพร่หลายมากที่สุดในปัจจุบัน จึงมี ความจำเป็นอย่างยิ่งที่จะต้องศึกษาให้เข้าใจอย่าง ถ่องแท้ แบบจำลองข้อมูลเชิงสัมพันธ์ถูกคิดค้นโดยชาว อังกฤษชื่อ Dr. Edgar F. Codd ในปี 1968 ซึ่ง ขณะนั้นเขาเป็นนักวิจัยของบริษัท IBM ในบทนี้จะนำเสนอส่วนประกอบหลักที่สำคัญของ แบบจำลองข้อมูลเชิงสัมพันธ์

Relation Relation มักเรียกว่า “Table” เป็นหน่วยที่จัดเก็บข้อมูลใน รูปแบบตาราง 2 มิติ ที่ประกอบไปด้วยแถว (Row) และ คอลัมน์ (Column) Row ใน Relation จะเรียกว่า Tuple Column ใน Relation จะเรียกว่า Attribute

ตัวอย่างที่ 1 ตัวอย่าง Relation ของ Employee EmpID Name Surname Sex Salary DeptID 00001 สมบูรณ์ สุขมาก M 10,000 01 00002 สมเกียรติ เจริญพร 8,000 02 00003 จันจิรา แจ้งเกิด F 12,000 03 00004 น้ำฝน ม่วงทอง 9,500 ใน Relation “EMPLOYEE” ประกอบไปด้วย 4 Tuple ซึ่งเป็นข้อมูลของพนักงานที่มีเลขประจำตัวตั้งแต่ 00001 – 00004 แต่ละ Tuple จะประกอบด้วย 6 Attribute ได้แก่ “EmpID”, “Name”, “Surname”, “Sex”, “Salary” และ “DeptID”

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

คุณสมบัติของ Domain 1) จะต้องเป็นค่าที่มีความหมายในหน่วยที่เล็กที่สุด (Atomicity) เช่น “จังหวัด” สามารถนำมาเป็นโดเมนได้ แต่ “ที่อยู่” ไม่สามารถเป็นโดเมนได้เพราะสามารถแยกย่อย ได้อีกเป็นบ้านเลขที่ ถนน ตำบล อำเภอ จังหวัด 2) ข้อมูลที่สามารถนำมากำหนด Domain ได้ จะต้องเป็น อิสระจากข้อมูลอื่น เช่น รหัสพนักงานของแต่ละคน ชื่อ จังหวัด รหัสแผนก เป็นต้น 3) ข้อมูลที่นำมากำหนดโดเมนจะต้องเป็นข้อมูลประเภท เดียวกัน เช่น เพศ ควรจะมีแค่ F หรือ M ไม่ควร กำหนดเป็น 0 หรือ 1 ด้วย

คุณสมบัติของ Domain [cont.] 4) โดเมนที่กำหนดให้กับ Attribute อื่นที่อ้างถึง สามารถ ถ่ายทอดโดเมนของตนเองให้กับ Attribute ในอีก Relation หนึ่งที่อ้างถึงด้วย ดังตัวอย่างต่อไปนี้ EMPLOYEE DEPARTMENT EmpID Name Surname Sex Salary DeptID 00001 สมบูรณ์ สุขมาก M 10,000 01 00002 สมเกียรติ เจริญพร 8,000 02 00003 จันจิรา แจ้งเกิด F 12,000 03 00004 น้ำฝน ม่วงทอง 9,500 DeptID DeptName 01 ฝ่ายบุคคล 02 ฝ่ายไอที 03 ฝ่ายการตลาด

คุณสมบัติของ Domain [cont.] 5) ค่าของโดเมนที่กำหนดให้กับข้อมูล ไม่จำเป็นต้อง ปรากฏในข้อมูลนั้นๆ เช่น กรณีที่กำหนดให้โดเมนของ เงินเดือนพนักงานมากกว่า 0 ไม่ได้หมายความว่าทุก จำนวนที่มาค่ามากกว่า 0 จะต้องเป็นข้อมูลใน attribute เงินเดือนพนักงาน

คุณสมบัติของ Relation POPULAR ID Name Surname Sex 00001 สมบูรณ์ สุขมาก M 00002 สมเกียรติ เจริญพร 00003 00004 น้ำฝน ม่วงทอง F

คุณสมบัติของ Relation [cont.] 2) ลำดับที่ของสมาชิกใดๆ จะไม่มีผลต่อ Relation ดังนั้น ภายใน Relation จึงไม่มีการกำหนดลำดับที่ให้กับแต่ละ Tuple 3) ลำดับที่ของ Attribute จะไม่มีผลต่อ Relation เพราะ การอ้างถึง Attribute จะใช้ชื่อของ Attribute ในการอ้าง ถึงโดยตรง 4) ค่าในทุก Attribute จะต้องมีความหมายเพียง ความหมายเดียว และจะต้องไม่เป็นข้อมูลที่ซ้ำกัน เช่น ตัวอย่างในหน้าถัดไป

จะต้องแยกเป็น Tuple ใหม่ EMPLOYEE EmpID Name Surname Sex Salary DeptID 00001 สมบูรณ์ สุขมาก M 10,000 01, 03 00002 สมเกียรติ เจริญพร 8,000 02 00003 จันจิรา แจ้งเกิด F 12,000 03 00004 น้ำฝน ม่วงทอง 9,500 01 จะต้องแยกเป็น Tuple ใหม่ EmpID Name Surname Sex Salary DeptID 00001 สมบูรณ์ สุขมาก M 10,000 01 03 00002 สมเกียรติ เจริญพร 8,000 02 00003 จันจิรา แจ้งเกิด F 12,000 00004 น้ำฝน ม่วงทอง 9,500

คุณสมบัติของ Relation [cont.] 5) ชื่อของ Attribute ใน Relation เดียวกัน จะต้องมีชื่อ ที่ไม่ซ้ำกัน 6) ค่าที่ปรากฏในแต่ละ Attribute ใน Relation เดียวกัน จะต้องใช้แทนข้อมูลที่มีความหมายเดียวกัน เช่น “EmpID” จะต้องเก็บข้อมูลรหัสพนักงานเท่านั้น ไม่ สามารถเก็บข้อมูลอื่น ๆ ได้ เช่น เพศ หรือเงินเดือน เป็นต้น EmpID Name Surname Sex Salary DeptID 00001 สมบูรณ์ สุขมาก M 10,000 สมเกียรติ เจริญพร 00002 8,000 02 00003 จันจิรา แจ้งเกิด 12,000 F 03 00004 น้ำฝน ม่วงทอง 9,500 01

ประเภทของ Relation 1) Named Relation เป็น Relation ที่สร้างขึ้นด้วยคำสั่ง SQL อาจเป็น Relation จริง หรือ Relation ที่สร้าง ขึ้นมาด้วยการ Query ก็ได้ 2) Base Relation เป็น Named Relation ที่เป็น Relation จริงที่อยู่ในฐานข้อมูล 3) Derived Relation เป็น Named Relation ที่ได้มาจาก การใช้คำสั่ง Query เรียกข้อมูลมาจาก Base Relation เช่น อาจใช้การ Query “เฉพาะพนักงานชาย” ก็จะได้ Relation ด้านล่าง EmpID Name Surname Sex Salary DeptID 00001 สมบูรณ์ สุขมาก M 10,000 01 00002 สมเกียรติ เจริญพร 8,000 02

ประเภทของ Relation [cont.] 4) View เป็น Derived Relation ประเภทหนึ่ง แต่จะเป็น Relation เสมือน (Virtual Relation) 5) Snapshot คล้ายกับ View แต่จะแตกต่างกันที่ Snapshot ที่สามารถอ่านข้อมูลได้อย่างเดียว และสามารถ กำหนดเวลาในการ Snapshot ได้ เช่น รายวัน ราย สัปดาห์ เป็นต้น 6) Query Result เป็น Relation ชั่วคราว ที่เกิดจาก คำสั่ง Query Language โดย Relation จะเกิดขึ้นเมื่อ เรียกใช้เท่านั้น และจะหายไปเมื่อเลิกใช้งาน 7) Intermediate Result เป็น Relation ชั่วคราวที่ เกิดขึ้นขณะประมวลผลคำสั่ง Query Language

Degree ดีกรี คือจำนวนของ Attribute ของ Relation เช่น Relation “EMPLOYEE” มีดีกรีเท่ากับ 6 Relation ที่มีดีกรีเท่ากับ 1 เรียกว่า “Unary” ถ้าดีกรี 2 เรียกว่า “Binary” EMPLOYEE EmpID Name Surname Sex Salary DeptID 00001 สมบูรณ์ สุขมาก M 10,000 01, 03 00002 สมเกียรติ เจริญพร 8,000 02 00003 จันจิรา แจ้งเกิด F 12,000 03 00004 น้ำฝน ม่วงทอง 9,500 01

Cardinality คาร์ดินัลลิตี้ คือจำนวนของ Tuple ใน Relation หนึ่งที่ มีความสัมพันธ์กับ Tuple อีก Relation หนึ่ง ใช้ในการกำหนดประเภทของความสัมพันธ์ระหว่างข้อมูลใน Relation ทั้งสอง จากตัวอย่างนี้ ความสัมพันธ์ระหว่างสอง Relation นี้ มี Cardinality คือ (1, M) EMPLOYEE DEPARTMENT EmpID Name Surname Sex Salary DeptID 00001 สมบูรณ์ สุขมาก M 10,000 01 00002 สมเกียรติ เจริญพร 8,000 02 00003 จันจิรา แจ้งเกิด F 12,000 03 00004 น้ำฝน ม่วงทอง 9,500 DeptID DeptName 01 ฝ่ายบุคคล 02 ฝ่ายไอที 03 ฝ่ายการตลาด

Catalog ของ Relational Model โครงสร้างข้อมูลของ Catalog จะมีลักษณะเหมือนกับ Relation แต่ข้อมูลที่ถูกจัดเก็บใน Catalog จะไม่ใช่ข้อมูล ทั่วไป แต่จะเป็น Metadata สมมุติให้ Catalog ประกอบไปด้วย 2 Relation มีชื่อว่า “TABLES” และ “COLUMNS” เพื่อใช้เก็บ Metadata ของ Relation “DEPARTMENT” และ “EMPLOYEE” TABLES TabName ColName … DEPARTMENT DeptID DeptName EMPLOYEE EmpID Name Surname COLUMN TabName ColCount RowCount … DEPARTMENT 2 3 EMPLOYEE 6 4

Catalog ของ Relational Model [cont.] จากตัวอย่างข้างต้น เมื่อผู้ใช้ต้องการทราบถึงโครงสร้าง ของ Relation “DEPARTMENT” โปรแกรม DBMS จะเข้ามาค้นหารายละเอียดของ Relation “DEPARTMENT” ใน Relation “TABLES” เพื่อแสดงจำนวนของ Tuple กับ Attribute ส่วนชื่อของ Attribute ต่าง ๆ ของ Relation “DEPARTMENT” โปรแกรม DBMS จะเข้าไปค้นหาใน Relation “COLUMNS” ผลที่ได้ต่อมาคือ Attribute “DeptID” และ “DeptName”

สรุป โครงสร้างของหน่วยในการจัดเก็บข้อมูลของฐานข้อมูลเชิง สัมพันธ์ จะเก็บในรูปตาราง 2 มิติ ที่เรียกว่า Relation ที่ประกอบไปด้วย Tuple และ Attribute แต่ละ Attribute สามารถกำหนดขอบเขตของค่าที่เป็นไป ได้ เรียกว่า Domain จำนวนของ Attribute ใน Relation จะเรียกว่า Degree รูปแบบความสัมพันธ์ของ Tuple ระหว่าง Relation จะ เรียกว่า Cardinality

EmpID Name Surname Sex Salary DeptID DeptID DeptName EmpID Site EMPLOYEE EmpID Name Surname Sex Salary DeptID 00001 สมบูรณ์ สุขมาก M 10,000 01 00002 สมเกียรติ เจริญพร 8,000 02 00003 จันจิรา แจ้งเกิด F 12,000 03 00004 น้ำฝน ม่วงทอง 9,500 00005 คฤเดช ป้อกันทัง 15,000 00006 เพทาย ละดาดก 50,000 DEPARTMENT DeptID DeptName 01 ฝ่ายบุคคล 02 ฝ่ายไอที 03 ฝ่ายการตลาด 04 ฝ่ายการเงิน 21 SITE EmpID Site 00001 BKK 00004 CNX 00005 PHK 00006

COLUMN TabName ColName DEPARTMENT DeptID DeptName EMPLOYEE EmpID Name Surname Sex Salary SITE Site TABLES TabName ColCount RowCount DEPARTMENT 2 4 EMPLOYEE 6 SITE