Chapter 5 Part 3.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
E-R Model บรรยายโดย สุรางคนา ธรรมลิขิต.
Advertisements

File System Example of File System Employee Department
– Web Programming and Web Database
ประวัติความเป็นมาของฐานข้อมูลและยกตัวอย่างโปรแกรมในการจัดการฐานข้อมูล
การสร้าง WebPage ด้วย Java Script Wachirawut Thamviset.
Normalization – Special Problem (DB) Choopan Rattanapoka
รูปแบบที่เป็นบรรทัดฐาน (Normal Form)
ว เคมีพื้นฐาน พันธะเคมี
การแก้ปัญหาการใช้งาน ADO กับ Database อุทัย เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
CHAPTER 14 Database Management
ANSI/ASQ Z1.4 Acceptance Sampling Plans
Entity-Relationship Model E-R Model
หลักการออกแบบฐานข้อมูล
Click when ready Wang991.wordpress.com © All rights reserved Stand SW 100.
Database Management System
1. Select query ใช้สำหรับดึงข้อมูลที่ต้องการ
Database & DBMS Architecture วรวิทย์ พูลสวัสดิ์. 2 2 ฐานข้อมูล (Database) - Data and its relation - Databases are designed to offer an organized mechanism.
Self-access materials By Self-access Learning Centre, KMUTT Copyright © 2011 Self-access Learning Centre, KMUTT Synonym.
 The nonconformities chart controls the count of nonconformities ( ข้อบกพร่อง หรือตำหนิ ) within the product or service.  An item is classified as a.
TEST FOR 3RD GRADERS IN THAILAND: COMPARATIVE STUDY Pimlak Moonpo Valaya Alongkorn Rajabhat University under the Patronage Assoc. Prof. Dr. Maitree Inprasitha.
Timed Math Quiz. โปรแกรมสุ่มคำนวณเลขแข่งกับ เวลา.
1 exit() and break C++ provides a way to leave a program early (before its natural finish) with the exit() function. The format of exit() is as follows:
Microsoft Access 2007 ทำความรู้จักและใช้งาน. รู้จักกับฐานข้อมูล (Database) ฐานข้อมูล (Data base) คือ ? Bit Byte Field/Word Record Table/File.
Page : Stability and Statdy-State Error Chapter 3 Design of Discrete-Time control systems Stability and Steady-State Error.
Chapter 2 Relational Database
D 2 E 1 S E M N G ม. I G I T Grammar A L 4.0.
Normalization Lecture 9.
SQL Structured Query Language.
บทที่ 2 นอร์มัลไลเซชัน normalization
การทำ Normalization 14/11/61.
Integrity Constraints
บทที่ 4 แบบจำลองฐานข้อมูลเชิงสัมพันธ์ Relational Database
บทสรุป ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
บทที่ 11 การเขียนแผนผังข้อมูลแบบสัมพัทธ์.
ห้องแลปการคิดสร้างสรรค์
Chapter 4 : ฐานข้อมูลเชิงสัมพันธ์ (Relational Database)
Trees (2) University of Phayao Sanchai Yeewiyom
หน่วยที่ 2 ข้อมูลและสารสนเทศ
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
โดย อ.อภิพงศ์ ปิงยศ รายวิชา สธ312 ระบบการจัดการฐานข้อมูลทางธุรกิจ
Chapter 6 Information System Development
ระเบียบวิธีวิจัยพื้นฐานทางการเงิน
กระบวนการปรับบรรทัดฐาน Normalization Process
คำสั่ง Create , Insert, Delete, Update
Chapter 8 : นอร์มัลไลเซชัน (Normalization)
CIT2205 โปรแกรมประยุกต์ด้านการจัดการฐานข้อมูล
คำเทศนาชุด: ท่านมีของประทาน
Application of Software Package in Office
JavaScript&CSS&DOM.
ระเบียบวิธีวิจัยพื้นฐานทาง การตลาด
โครงสร้างข้อมูล( Data Structure)
การแก้ไขข้อมูล ความสัมพันธ์ระหว่างตาราง
สาขาวิชาคอมพิวเตอร์ธุรกิจ โดย อาจารย์กิตติพงษ์ ภู่พัฒน์วิบูลย์
แล้วไงเกี่ยวกับความจริง What About Truth?
“เคลื่อนไปสู่ชีวิตใหม่ ตอนที่ 2” Moving Into the Newness of Life
บทที่ 7 การประมวลผลอาร์เรย์
สถาปัตยกรรมของฐานข้อมูล
Control Charts for Count of Non-conformities
Introduction to Database System
4.7. B-Trees โครงสร้าง tree ที่กล่าวถึงมาแล้วนั้น อยู่บนสมมติฐานที่ว่าโครงสร้างทั้งหมดสามารถจัดเก็บอยู่ในหน่วยความจำของเครื่องคอมพิวเตอร์ได้ ถ้า จำนวนข้อมูลมีปริมาณมากเกินกว่าที่จะเก็บไว้ใน.
สรุปขั้นตอนการสร้าง E-R Diagram
ฐานข้อมูลเชิงสัมพันธ์
Integrated Mathematics
ฐานข้อมูลเชิงสัมพันธ์ Relational Database
ระเบียบวิธีวิจัยพื้นฐานทางธุรกิจ
ตัวแบบข้อมูล (Data Modeling)
Chapter 7 : ขั้นตอนการแปลงแผนภาพ ER มาเป็นรีเลชั่น ( ER-to-Relational Mapping Algorithm ) อ.คเชนทร์ ซ่อนกลิ่น.
Database Design & Development
การวิเคราะห์และออกแบบขั้นตอนวิธี
Color Standards A pixel color is represented as a point in 3-D space. Axis may be labeled as independent colors such as R, G, B or may use other independent.
ใบสำเนางานนำเสนอ:

Chapter 5 Part 3

Agenda Normal form

The Seven Normal Forms Normal form Description First (1NF) The value stored at the intersection of each row and column must be a scalar value, and a table must not contain any repeating columns Second (2NF) Every non-key column must depend on the entire PK Third (3NF) Every non-key column must depend only on the PK Boyce-Codd(BCNF) A non-key column can’t be dependent on another non-key column. This prevents transitive dependencies, where column A depends on column C and column B depends on column C. Since both A and B depend on C, A and B should be moved into another table with C as the key.

The Seven Normal Forms Normal form Description Fourth (4NF) A table must not have more than one multivalued dependency, where the PK has a one-to-many relationship to non-key columns. This form gets rid of misleading many-to-many relationships. Fifth (5NF) The data structure is split into smaller and smaller tables until all redundancy has been criminated. If further splitting would result in tables that couldn’t be joined to recreate the original table, the structure is in fifth normal form. Domain-key (DKNF) or Sixth (6NF) Every constraint on the relationship is dependent only on key constraints and domain constraints, where a domain is the set of allowable values for a column. This form prevents the insertion of any unacceptable data by enforcing constraints at the level of relationship, rather than at the table or column level. DKNF is less a design model than an abstract “ultimate” normal form

The benefits of normalization Retrieval more efficient Insert, update, and delete operation more efficient Data redundancy is minimized Simplifies maintenance and reduces storage

Example 1:

ตารางที่มีลักษณะข้อมูลเป็น Repeating group รหัสวิชาที่ลงทะเบียน First Normal Form (1NF) ทุก Attribute ในแต่ละ record จะเป็น single value ไม่มี ค่าของกลุ่ม ข้อมูลที่ ซ้ำกัน (Repeating Group) ข้อมูลทุกแถว (Tuple) ต้องมีค่าไม่ซ้ำกัน ตารางที่มีลักษณะข้อมูลเป็น Repeating group รหัสนักศึกษา ชื่อ นามสกุล รหัสวิชาที่ลงทะเบียน 001 สมชาย สมใจนึก 204-101 204-204 204-205 002 ธีรชาย บุญมาศ 204-102 Repeating Group

Second Normal Form (2NF) 1. ต้องเป็น First Normal Form (1NF) มาก่อน 2. ต้องไม่มี Partial Dependency (การขึ้นต่อกัน บางส่วน) สรุปก็คือ นอร์มัลไลเซชันระดับที่ 2 (Second normal form : 2NF) เป็นการขจัดแอตตริบิวที่ ไม่ ขึ้นกับทั้งส่วนของคีย์หลัก ออกไป เพื่อให้ แอตตริบิวอื่นทั้งหมดขึ้นตรงกับส่วนที่เป็นคีย์ หลักทั้งหมดเท่านั้น

ตัวอย่างตารางที่ Partial Dependency (การขึ้นต่อกันบางส่วน) รหัสนักศึกษา รหัสวิชา เกรด ชื่อวิชา 534267001 F01 A การเขียนโปรแกรม F02 B การออกแบบฐานข้อมูล 534267002 D 534267003 C รหัสนักศึกษา รหัสวิชา เกรด ชื่อวิชา Partial Dependency รหัสนักศึกษา, รหัสวิชา เกรด ,ชื่อวิชา รหัสวิชา ชื่อวิชา

Second Normal Form (2NF) วิธีขจัดปัญหา ต้องสร้างตารางเพิ่ม นำคอลัมย์ที่มีปัญหาไปใส่ในตารางที่สร้างเพิ่ม กำหนดคีย์หลักให้กับตารางที่สร้างใหม่ แอททริบิวต์ใดในตารางเดิม เมื่อนำไปใส่ในตาราง ใหม่ ให้ตัดออกจากตารางเดิม ยกเว้น ส่วนของ คีย์หลัก คงไว้ในตารางเดิม

ตารางนี้เมื่อทำให้อยู่ในรูป 2 NF จะได้ 2 ตารางดังนี้ ตารางผลการเรียน รหัสนักศึกษา รหัสวิชา เกรด ชื่อวิชา 534267001 F01 A การเขียนโปรแกรม F02 B การออกแบบฐานข้อมูล 534267002 D 534267003 C ตารางนี้เมื่อทำให้อยู่ในรูป 2 NF จะได้ 2 ตารางดังนี้ ตารางผลการเรียน ตารางวิชา รหัสนักศึกษา รหัสวิชา เกรด 534267001 F01 A F02 B 534267002 D 534267003 C รหัสวิชา ชื่อวิชา F01 การเขียนโปรแกรม F02 การออกแบบฐานข้อมูล

ให้นักศึกษานอมัลไลซ์ตารางนี้ให้อยู่ในรูปแบบ 2NF ตารางผลการอบรม รหัสผู้เข้าอบรม รหัสครอสอบรม ชื่อผู้เข้าอบรม ชื่อครอสอบรม ผลการทดสอบ 0001 TR01 นายเอ ใจดี การซ่อมไฟฟ้า ผ่าน TR05 การซ่อมตู้เย็น 0002 TR03 นางบี ใจกล้า การทำอาหาร ไม่ผ่าน TR09 การเลี้ยงเด็ก 0003 นายรวย มีเงิน

Third Normal Form (3NF) 1.Relation นั้นจะต้องมีคุณสมบัติ 2NF 2.ต้องไม่มีความสัมพันธ์ระหว่าง Non-key Attribute หรือ ไม่มี Transitive Dependency สรุป : แอททริบิวต์ที่ไม่ใช่คีย์หลัก ต้องไม่ขึ้นต่อกันเอง

Third Normal Form (3NF) วิธีขจัดปัญหา สร้างตารางเพิ่ม นำแอททริบิวต์ที่มีปัญหามาใส่ในตารางใหม่ กำหนดคีย์หลัก แอททริบิวต์ที่ย้ายจากตารางเดิมไปใส่ในตารางใหม่ให้ ตัดออกจากตารางเดิม นำคีย์หลักในข้อ 3 ไปใส่ในตารางเดิม

รหัสพนักงาน ชื่อสกุล รหัสแผนก ชื่อแผนก เงินเดือน P001 นพเกศ แก้วใส A001 บัญชี 25000 P002 วารุณี รวดเร็ว F001 การเงิน 30000 คีย์หลักของตารางนี้คือ รหัสพนักงาน จากตารางยังมีฟังก์ชั่นการขึ้นต่อกันแบบ Transitive Dependency อยู่ คือ รหัสแผนก ซึ่งไม่ใช่คีย์หลักของตาราง แต่สามารถระบุ ค่า ชื่อแผนก ได้ คือ ถ้ารู้รหัสแผนก ก็จะรู้ชื่อแผนก จากตารางข้างบน ทำให้อยู่ในรูป 3 NF จะได้ 2 ตารางข้างล่างนี้ รหัสพนักงาน ชื่อสกุล เงินเดือน P001 นพเกศ แก้วใส 25000 P002 วารุณี รวดเร็ว 30000 รหัสแผนก A001 F001 รหัสแผนก ชื่อแผนก A001 บัญชี F001 การเงิน

สรุป Normalization 1NF ทุกแอททริบิวต์ในแต่ละแถวมีค่าของข้อมูล เพียงค่าเดียว 2NF รีเลชันนั้นต้องไม่มีความสัมพันธ์ระหว่างแอ ททริบิวต์แบบบางส่วน (แอททริบิวต์ทุกตัวต้อง ขึ้นกับคีย์หลักทุกตัว ไม่ขึ้นอยู่กับตัวใดตัวหนึ่ง) 3NF ทุกแอททริบิวต์ที่ไม่ใช่คีย์หลักไม่มีคุณสมบัติ ในการกำหนดค่าของ แอ ททริบิวต์อื่น

Example 2:

How to apply the first normal form A table in first normal form often has repeating values in its rows. This can be resolved by applying the second normal form.

How to apply the second normal form Every non-key column must depend on the entire primary key. To apply second normal form, you move columns that don’t depend on the entire primary key to another table and then establish a relationship between the two tables Second normal form helps remove redundant row data, which can save storage space, make maintenance easier, and reduce the chance of storing inconsistent data

How to apply the third normal form For a table to be in third normal form, every non-key column must depend only on the primary key. If a column doesn’t depend only on the primary key. It implies that the column is assigned to the wrong table or that it can be computed from other columns in the table.

Example 3:

1NF

2NF

3NF

Example 4:

First Normal Form (1NF) A database schema is in First Normal Form if all tables are flat Student Student Name GPA Alice 3.8 Bob 3.7 Carol 3.9 Name GPA Courses Alice 3.8 Bob 3.7 Carol 3.9 Math DB OS Takes Course Student Course Alice Math Carol DB Bob OS Course Math DB OS DB OS May need to add keys Math OS

Relational Schema Design Person buys Product name price ssn Conceptual Model: Relational Model: plus FD’s FD: Functional dependencies Normalization: Eliminates anomalies ขจัดความผิดปกติ

Data Anomalies When a database is poorly designed we get anomalies: Redundancy: data is repeated Update anomalies: need to change in several places Delete anomalies: may lose data when we don’t want

Relational Schema Design Recall set attributes (persons with several phones): Name SSN PhoneNumber City Fred 123-45-6789 206-555-1234 Seattle 206-555-6543 Joe 987-65-4321 908-555-2121 Westfield One person may have multiple phones, but lives in only one city Anomalies: ความผิดปกติ Redundancy = repeated data Update anomalies = Fred moves to “Bellevue” Deletion anomalies = Joe deletes his phone number: what is his city ?

Relation Decomposition Break the relation into two: Name SSN PhoneNumber City Fred 123-45-6789 206-555-1234 Seattle 206-555-6543 Joe 987-65-4321 908-555-2121 Westfield Name SSN City Fred 123-45-6789 Seattle Joe 987-65-4321 Westfield SSN PhoneNumber 123-45-6789 206-555-1234 206-555-6543 987-65-4321 908-555-2121 Anomalies are gone: No more repeated data Easy to move Fred to “Bellevue” (how?) Easy to delete all Joe’s phone numbers (how?)

Relational Schema Design (or Logical Design) Main idea: Start with some relational schema Find out its functional dependencies Use them to design a better relational schema

Functional Dependencies A form of constraint hence, part of the schema Finding them is part of the database design Also used in normalizing the relations

Examples An FD holds, or does not hold on an instance: ตัวอย่าง EmpID Name Phone Position E0045 Smith 1234 Clerk E3542 Mike 9876 Salesrep E1111 E9999 Mary Lawyer EmpID  Name, Phone, Position Position  Phone but not Phone  Position

Example EmpID Name Phone Position E0045 Smith 1234 Clerk E3542 Mike 9876  Salesrep E1111 E9999 Mary Lawyer Position  Phone

Example EmpID Name Phone Position E0045 Smith 1234  Clerk E3542 Mike 1234  Clerk E3542 Mike 9876 Salesrep E1111 E9999 Mary Lawyer but not Phone  Position

Example SSN  Name, City What the key? {SSN, PhoneNumber} Fred 123-45-6789 206-555-1234 Seattle 206-555-6543 Joe 987-65-4321 908-555-2121 Westfield 908-555-1234 SSN  Name, City What the key? {SSN, PhoneNumber} Hence SSN  Name, City is a “bad” dependency

BCNF (Boyce/Codd Normal Form) นิยาม ต้องเปน 3NF และไมมี attribute อื่นในรีเลชันที่ สามารถระบุคาของ attribute ที่เปนคีย หลักหรือสวนหนึ่งสวนใดของคียหลักในกรณีที่คีย หลักเปนคียผสม โดยทั่วไปรูปแบบ BCNF จะอยูในรูปแบบ 3NF แตไม จําเปนเสมอไปที่รูปแบบ 3NF จะอยูในรูป แบบ BCNF ทั้งนี้เนื่องจากรูปแบบนี้เปนการขยายขอบเขต ของรูปแบบ 3NF ใหเหมาะสมยิ่งขึ้น โดยรูป แบบที่ต องทําใหเปน BCNF มักจะมีคุณสมบัติ ดังนี้ เป็นรีเลชันที่มีคียคูแขงหลายคีย (Multiple Candidate Key) โดยที่คีย์คูแขงเปนคียผสม (Composite Key) และคียคูแขงนั้นมีบางสวนซํ้าซอนกัน (Overlapped) มี attribute บางตัวรวมกันอยู

Question & Answer

References รัฐสิทธิ์ สุขะหุต. (2555). ฐานข้อมูลเบื้องต้น Murach, J. (2015). Murach’s MySQL.