Normalization – Special Problem (DB) Choopan Rattanapoka

Slides:



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

UPDATING DATA By SQL (SA&D-9)
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยสงขลานครินทร์
HO Session 14: Database Design Principles
การออกแบบฐานข้อมูลในระดับ Conceptual
ระบบทรัพย์สินถาวร KKUF MIS
ทำความรู้จักและใช้งาน
จัดการฐานข้อมูลด้วย Microsoft Access 2007
File System Example of File System Employee Department
บทที่ 2 รูปแบบของฐานข้อมูล.
หน้าจอแรกให้ระบุ user name และ password ( กรณีสมัคร ทุน Window I) ถ้าสมัครทุน Window II คลิกลงทะเบียน เพื่อดูว่ามีต้นสังกัดระดับมหาวิทยาลัย / คณะ / ภาควิชาร่วม.
ระบบบริหารครุภัณฑ์ทางการแพทย์ (MES)
บทที่ 5 รูปแบบที่เป็นบรรทัดฐาน (Normal Form)
ความรู้ทั่วไปเกี่ยวกับโปรแกรม Microsoft Office Access 2003
Normalization.
บทที่ 13 การผลิตแบบทันเวลาพอดี
ฐานข้อมูลเชิงสัมพันธ์
บทที่ 8 การออกแบบข้อมูล (Data Design) โครงสร้างข้อมูล (Data Structure)
SCC : Suthida Chaichomchuen
– Web Programming and Web Database
การออกแบบแบบจำลองข้อมูล
ซอฟต์แวร์พัฒนาระบบฐานข้อมูล Normalization
แบบฝึกหัด 1. จงวาดรูป ER Diagram ของระบบร้านเช่าวีดีโอแห่งหนึ่ง ประกอบด้วย แฟ้มสมาชิก(member) ข้อมูลที่เก็บ รหัสลูกค้า , ชื่อ , ที่อยู่,เบอร์โทร แฟ้มชื่อเรื่อง(title)
ทบทวน การออกแบบฐานข้อมูล
การสร้างตาราง (Table)
WEB OPAC.
การออกแบบฐานข้อมูลเชิงสัมพันธ์
Proposal : Teaching & Media Evaluation  Login Page [1] & Main Page [2] o Grade Report Page [3] o Teaching Evaluation [subject] o Media Evaluation [university]
อ.อารียา ศรีประเสริฐ สาขาวิชาเทคโนโลยีสารสนเทศธุรกิจ
ความปลอดภัยของฐานข้อมูล
ข้อสังเกตและข้อผิดพลาด ในการวิเคราะห์และออกแบบระบบ
ตัวแปรกับชนิดของข้อมูล
1. ชื่อสถาบัน ให้ระบุชื่อ สถาบันการศึกษา คณะวิชา และภาควิชาที่เปิดสอน หลักสูตร 2. ชื่อหลักสูตร ให้ระบุชื่อ หลักสูตรและสาขาวิชาให้ ชัดเจน แบบรายงานข้อมูลการ.
ประวัติความเป็นมาของฐานข้อมูลและยกตัวอย่างโปรแกรมในการจัดการฐานข้อมูล
Charter 8 1 Chapter 8 การจัดการฐานข้อมูล Database Management.
ความสัมพันธ์ระหว่างคลาส (Class Relationship)
การสอบถามข้อมูลด้วยฟังก์ชั่นสำหรับ
CHARPTER 9 การเชื่อมเทเบิล JOIN…. TABLE.
ที่ใช้ใน Object-Oriented Design
Data Modeling Chapter 6.
การทำ Normalization อ. นุชรัตน์ นุชประยูร.
ตัวแปรกับชนิดของข้อมูล
ฐานข้อมูลเชิงสัมพันธ์ (Relational Database)
(การลดความซ้ำซ้อนของข้อมูล)
บทที่ 5 การทำงานกับหลาย Table
โปรแกรม Microsoft Access
บทที่ 5 การทำงานกับหลาย Table
Object-Oriented Programming
ง การงานอาชีพและเทคโนโลยี 1 ครูสหรัฐ บัวทอง
Introduction to PHP, MySQL – Special Problem (Database)
ข้อมูลแบบโครงสร้างและยูเนียน
School of Information Communication Technology,
ความรู้เบื้องต้นเกี่ยวกับระบบ Introduction to the System
การออกแบบฐานข้อมูลในระดับตรรกะ
โมเดลเชิงสัมพันธ์ The relational model.
งานกลุ่ม กลุ่มที่ 3 เรื่อง ฐานข้อมูลเชิงสัมพันธ์
Introduction TO Discrete mathematics
หลักการเขียนโปรแกรมเบื้องต้น
แบบจำลองข้อมูล (Data Model)
การออกแบบฐานข้อมูล ด้วย E-R Model
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Introduction to SQL (MySQL) – Special Problem (Database)
บทที่ 7 การสร้างและการใช้งาน ฟังก์ชัน อาจารย์ชนิดา คำเพ็ง สาขาวิชาเทคโนโลยีสารสนเทศ คณะวิทยาศาสตร์ และเทคโนโลยี
การเตรียมข้อมูล (Data preparation)
Normalization Lecture 9.
การทำ Normalization 14/11/61.
Chapter 5 Part 3.
ห้องแลปการคิดสร้างสรรค์
Chapter 6 Information System Development
กระบวนการปรับบรรทัดฐาน Normalization Process
ใบสำเนางานนำเสนอ:

Normalization 353352 – Special Problem (DB) Choopan Rattanapoka choopanr@kmutnb.ac.th

การออกแบบฐานข้อมูล InfoFilm(type, title, airtime, year, studioName, studioLocation) ออกแบบโดยนำทุกอย่างรวมกันในตารางเดียว

ปัญหา : redundancy and anomalies Data Redundancy รายละเอียดของฟิลม์ถูกเก็บหลายครั้ง ถ้าฟิลม์นั้นอยู่ในหลายประเภทของฟิลม์ ที่อยู่ของผู้ผลิตฟิลม์อยู่เก็บหลายครั้ง ถ้าผู้ผลิตนั้นผลิตหลายฟิลม์ Modification/insertion anomalies การแก้ไขต่างๆ เช่น ที่อยู่ของผู้ผลิตฟิลม์จะต้องแก้ไขหลายที่ซึ่งอาจจะทำให้มีปัญหาเกี่ยวกับความถูกต้องของข้อมูล Deletion anomalies การลบข้อมูลบางแถวอาจทำให้สูญเสียข้อมูลบางอย่างเช่น อาจจะทำให้ที่อยู่ของผู้ผลิตฟิลม์หาย

Decomposition เป้าหมาย : ต้องการจะแยกความสัมพันธ์ RA เป็นความสัมพันธ์ย่อย R1, R2, ... RN ซึ่งเมื่อนำความสัมพันธ์ย่อยนี้มารวมกันจะต้องเท่ากับความสัมพันธ์เดิมคือ RA จะใช้ natural join ระหว่างความสัมพันธ์ย่อย เพื่อนำค่าต่างๆของความสัมพันธ์หลักคืนมา R1 R2 ….. RN = RA

ปัญหาของการ decomposition

Functional Dependencies กำหนดให้ X และ Y, เป็น 2 attributes (หรือ กลุ่มของ attribute) ที่อยู่ในความสัมพันธ์เดียวกัน เราใช้ X → Y, ถ้าค่าของ X เป็นตัวกำหนดค่าของ Y

Example : Functional Dependencies InfoFilm(type, title, airtime, year, studioName, studioLocation) สมมุติให้ชื่อหนัง (title) และชื่อผู้ผลิตหนัง (studioName) ไม่มีชื่อซ้ำกัน title → type title → airtime title → year title → studioName title → studioLocation studioName → studioLocation

Functional Dependancy Properties

Canonical Cover Fc Canonical Cover (Fc) คือ subset ย่อยที่สามารถใช้กฎ transitivity เพื่อจะสร้าง functional dependancy อื่นๆ ได้ ใน set ของ functional dependancy จะต้องมี canonical cover เสมอ

Example : Canonical Cover กำหนด Functional Dependency (F) ต่อไปนี้ จงหา Fc F = numFilm → title numFilm → airtime numFilm → numStudio numStudio → studioName numFilm → studioName numFilm → studioLocation numStudio → studioLocation ซ้ำ

Example : Canonical Cover F= numFilm → title numFilm → airtime numFilm → numStudio numStudio → studioName numFilm → studioName numFilm → studioLocation numStudio → studioLocation Canonical Conver คือ : numFilm → title numFilm → airtime numFilm → numStudio numStudio → studioName numStudio → studioLocation

Normal forms 1NF 2NF 3NF BCNF 4NF 5NF แต่ละ normal form ที่ตำแหน่ง I จะมีกฎเข้มงวดกว่า normal form ที่ตำแหน่ง I - 1 จุดประสงค์: การกำหนดมาตรฐานและทำให้การสร้าง schema ง่ายขึ้น โดยไม่มีข้อมูลซ้ำ และ ปัญหาในการ update ข้อมูล

1NF : the first normal form Definition : ความสัมพันธ์จะอยู่ในรูป 1NF ถ้าทุก attribute จะมีค่าแค่ค่าเดียว ความสัมพันธ์นี้ไม่เป็น 1NF เพราะ attribute acteur มีมากกว่า 1 ค่า

การทำความสัมพันธ์ให้เป็น 1NF สร้าง attribute เพิ่มขึ้น : รอบหนัง(numFilm, numClient, period) รอบหนัง(numFilm, numClient, startTime, endTime)

การทำความสัมพันธ์ให้เป็น 1NF 2. สร้างความสัมพันธ์ใหม่ : Studio(name, filmTitle) Studio(name) Film(name, filmTitle)

2NF : the second normal form Definition : ความสัมพันธ์จะเป็น 2NF ก็ต่อเมื่อ ความสัมพันธ์นี้เป็น 1NF ทุก attribute ที่ไม่มีขึ้นอยู่กับ key ห้ามไปขึ้นอยู่กับส่วนหนึ่งของ key Objectif รับประกันไม่มีข้อมูลซ้ำ รับประกันว่า attribute จะขึ้นอยู่กับ key เท่านั้นและไม่ขึ้นอยู่กับบางส่วนของ key

Example : 2NF numFilm → title Actor (numFilm, numArtist, title, salary) Canonical Cover : numFilm, numArtist → salary numFilm → title

Example : 2NF numFilm → title ผิดกฎ Actor (numFilm, numArtist, title, salary) Canonical Cover : numFilm, numArtist → salary numFilm → title ผิดกฎ

การทำ 2NF สร้างความสัมพันธ์ใหม่ : Actor (numFilm, numArtist, title, salary) Actor (numFilm, numArtist, salary) Film (numFilm, title)

3NF : the third normal form Definition : ความสัมพันธ์จะเป็น 3NF ก็ต่อเมื่อ ความสัมพันธ์นี้เป็น 2NF ทุก attribute ที่ไม่ได้ขึ้นอยู่กับ key ห้ามไปขึ้นอยู่กับ attribute ที่ไม่ใช่ key เป้าหมาย รับประกันไม่มีการซ้ำกันของข้อมูล มั่นใจได้ว่าค่าต่างๆ จะขึ้นกับ key เท่านั้น

Example : 3NF Film (numFilm, title, numStudio, studioName) Canonical Cover: numFilm → title numFilm → numStudio numStudio → studioName

Example : 3NF Film (numFilm, title, numStudio, studioName) Canonical Cover: numFilm → title numFilm → numStudio numStudio → studioName (ผิดกฎ)

การทำความสัมพันธ์ให้เป็น 3NF สร้างความสัมพันธ์ใหม่ : Film (numFilm, title, numStudio, studioName) Film (numFilm, title, numStudio) Studio (numStudio, studioName)

BCNF : Boyce-Codd normal form Definition : ความสัมพันธ์จะเป็น BCNF ก็ต่อเมื่อด้านซ้ายของ functional dependency เป็น candidate key

Example : BCNF Localisation (cru, pays, region, quality) Cru : ที่ปลูก Canonical Cover : cru, pays → region cru, pays → quality region → pays

BCNF : exemple Localisation (cru, pays, region, quality) Canonical Cover: cru, pays → region cru, pays → quality region → pays (ผิดกฎ) Crus (cru, pays, quality) Region(region, pays)

Exercise 1 Student(ID, name, age, address, foodCost, subject, lecturer, grade) ID : รหัสประจำตัวนักศึกษา foodCost : ราคาอาหารกลางวัน {T1, T2, T3} แล้วแต่อายุของนักศึกษา subject : วิชาที่ลงทะเบียนเรียน lecturer : อาจารย์ที่สอนวิชานั้น จงหา Caninocal Cover ของความสัมพันธ์ Student

จงทำให้ความสัมพันธ์นี้อยู่ในรูป BCNF จาก Exercise 1 จาก Canonical Cover ที่ได้ถามว่าอยู่ในรูป 1NF 2NF 3NF BCNF หรือไม่ จงทำให้ความสัมพันธ์นี้อยู่ในรูป BCNF

Exercise 2 จงทำให้ความสัมพันธ์ต่อไปนี้ ให้อยู่ในรูป 3NF InfoFilm(type, title, airtime, year, studioName, studioLocation) กำหนดให้ : title ของฟิลม์ไม่มีชื่อซ้ำกัน studioName ก็ไม่มีการซ้ำกัน