บทที่ 1 ความรู้ทั่วไปเกี่ย

Download Report

Transcript บทที่ 1 ความรู้ทั่วไปเกี่ย

ฐานขอมู
้ ล
1
ฐานข้ อมูลคืออะไร?

ฐานข้ อมูล(Database) คือ กลุ่มของข้ อมูลแบบต่ างๆที่
รวบรวมไว้ และนามาจัดเรียงให้ เป็ นระบบเพื่อใช้ ตาม
วัตถุประสงค์ ทต่ี ้ องการ เช่ น สมุดรายชื่อผู้ใช้ โทรศัพท์
ทะเบียนรายชื่อนักศึกษา เป็ นต้ น
2
คุณสมบัติฐานข้อมูล


การนาข้อมูลทีส่ มั พันธ์กนั ทัง้ หมดมาไว้รวมกัน
 ข้อมูลทีม
่ ีลกั ษณะเป็ นมาตรฐาน
 มีชุดเดียว
 ใช้ได้ทงั ้ หน่ วยงาน
 มีระบบตรวจสอบป้ องกัน
 เป็ นอิสระจากโปรแกรม
 มีภาษาสอบถาม (QUERY LANGUAGE)
ต้องมีระบบจัดการฐานข้อมูล (DATABASE
MANAGEMENT SYSTEM)
3
ข้ อดีของฐานข้ อมูล




ลดความซา้ ซ้ อนของข้ อมูล
ใช้ ข้อมูลร่ วมกันได้
มีระบบจัดการความปลอดภัยของข้ อมูล
หลีกเลี่ยงความขัดแย้ งของข้ อมูล
4
ระบบจัดการฐานข้อมูล(DBMS)


นิยมเรียกว่า ดีบีเอ็มเอส(DBMS)
คือชุดของโปรแกรมคอมพิวเตอร์ซึง่ ทาหน้ าที ่
สร้าง ดูแลรักษา และใช้งานส่วนต่าง ๆของ
ฐานข้อมูล
5
ระบบจัดการฐานข้อมูล
(DBMS)






ต้องมีการใช้งานทรัพยากรของคอมพิวเตอร์
อย่างมีประสิทธิภาพ
ทาหน้ าทีต่ ิ ดต่อกับตัวจัดการระบบไฟล์
การควบคุมการคงสภาพ
การควบคุมระบบความปลอดภัย
การสร้างระบบสารองและการฟื้ นสภาพ
การควบคุมภาวะพร้อมกัน
6
Database System
Application
#1
Application
#2
DBMS
Database
containing
centralized
shared data
Application
#3
7
ฐานข้ อมูลเชิงสัมพันธ์ (Relational Database)


การจัดเก็บข้ อมูลจะอยู่ในรูปของตาราง มีคอลัมน์ และแถว
ในแต่ ละตารางจะเก็บข้ อมูลเกี่ยวกับเรื่องใดเรื่องหนึ่ง โดย
ข้ อมูลในตารางหนึ่งอาจมีความสัมพันธ์ กับตารางอื่นๆได้
เช่ น ตารางทีเ่ ก็บข้ อมูลการขาย กับตารางทีเ่ ก็บข้ อมูลลูกค้ า
และตารางทีเ่ ก็บข้ อมูลสินค้ า เมื่อต้ องการพิมพ์ ใบสั่งซื้อ จะ
เห็นว่ ามีข้อมูลจากทัง้ สามตาราง คือ มีรายการขาย ชื่อ ทีอ่ ยู่
ลูกค้ า ชื่อ ราคาสินค้ า ปริมาณการสั่งซื้อ ทั้งนี้ต้องมีการ
กาหนดความสัมพันธ์ ระหว่ างตารางต่ างๆไว้ ก่อน
8
ฐานข้ อมูลเชิงสัมพันธ์

เก็บข้อมูลในรูปตาราง กลุ่มของข้อมูลทีจ่ ดั มี
ความสัมพันธ์กนั ในรูปแนวนอนและแนวตัง้ ซึง่ เรียก
ข้อมูลทีเ่ รียงกันในรูปแนวนอนว่า เรคอร์ด(record) และ
จะเรียกข้อมูลทีว่ างในแนวตัง้ ว่า เขตข้อมูล(Field)
9
ระบบจัดการฐานข้ อมูลเชิงสัมพันธ์




หรื อทีเ่ รี ยกว่ า RDBMS(Relational Data Base System) เป็ นเครื่ องมือ
ในการจัดเก็บข้ อมูล เพื่อให้ ค้นหาข้ อมูลแบบต่ างๆได้ ตามต้ องการ
นอกจากนี้ยังช่ วยในการดูแลรั กษาข้ อมูล เช่ นการแก้ ไข เพิม่ ลบข้ อมูล
ตลอดจนการออกรายงานได้ ง่ายขึน้
ความสามารถของระบบจัดการ
ฐานข้ อมูลมี 3 ประการคือ
การกาหนดนิยามข้ อมูล(Data Definition Language :DDL)
การจัดการกับข้ อมูล(Data Manipulation Language :DML)
การควบคุมข้ อมูล(Data Control Language :DCL)
10
การกาหนดนิยามข้ อมูล

ได้ แก่ การกาหนดโครงสร้ างของข้ อมูลทีเ่ ก็บในฐานข้ อมูล
การกาหนดชนิดของข้ อมูลและลักษณะการจัดเก็บข้ อมูล
เช่ น
– สามารถจะกาหนดกฎในการตรวจสอบข้ อมูล
– สามารถกาหนดความสัมพันธ์ (Relation)ระหว่ างกลุ่มของข้ อมูล
หรื อทีเ่ รี ยกว่ าตาราง(Table) เพื่อให้ สามารถตรวจสอบว่ าข้ อมูลมี
ความถูกต้ องตรงกันอยู่เสมอหรื อไม่
– เช่ น CREATE TABLE
11
การจัดการกับข้ อมูล

ได้ แก่ การทางานกับข้ อมูล เช่ นการเรียกค้ นข้ อมูล(Select)
การเพิ่ม (Insert), ปรั บปรุ ง(Update), และลบข้ อมูล(Delete)
ฟิ ลด์ ใดฟิ ลด์ หนึ่ง หรือพร้ อมกันหลายฟิ ลด์ หลายเรคอร์ ดได้
12
การควบคุมข้ อมูล

ได้ แก่ การรักษาความปลอดภัยของข้ อมูล เพื่อให้ แน่ ใจว่ าผู้
ทีจ่ ะอ่ านหรือแก้ ไขข้ อมูลได้ นั้น
จะต้ องเป็ นผู้ทไี่ ด้ รับ
อนุญาตเท่ านั้น และสามารถป้องกันไม่ ให้ มีการแก้ ไขข้ อมูล
เดียวกันพร้ อมๆกันได้ เช่ นGRANT เป็ นคาสั่งสาหรั บ
กาหนดสิทธิของผู้ทสี่ ามารถเข้ าใช้ งานในฐานข้ อมูลทีส่ ร้ าง
ขึ้นมาได้ , revoke เป็ นคาสั่งทีท่ างานในลักษณะตรงกันข้ าม
กับคาสั่ง grant
13
ศัพท์ เบือ้ งต้ นของฐานข้ อมูล
Table
Field
Record
14
เอนติตี(้ Entity)และแอตทริบวิ ต์ (Attribute)

เอนติตี ้ หมายถึงบุคคล สิ่งของ เหตุการณ์ หรืออะไรก็ได้ ท่ี
เราสนใจ ต้ องการจะเก็บข้ อมูล

แอตทริบวิ ต์ คือคุณลักษณะหรือรายละเอียดของแต่ ละเอน
ติต้ี โดยแต่ ละเอนติตจ้ี ะมีได้ หลายแอตทริบวิ ต
15
ความสัมพันธ์ (Relationship)

เป็ นสิ่งทีเ่ ชื่อมโยงระหว่ างข้ อมูลในตารางต่ างๆเข้ าด้ วยกัน
แบ่ งได้ เป็ น 3 ลักษณะ ดังนี้
– แบบหนึ่งต่ อกลุ่ม(One-to-Many)
– แบบหนึ่งต่ อหนึ่ง(One-to-One)
– แบบกลุ่มต่ อกลุ่ม(Many –to-Many)
16
ความสัมพันธ์ (Relation)

หมายถึงสิง่ ทีเ่ กีย่ วข้องกันของสิง่ ของตัง้ แต่สองสิง่
–

คนกับบ้าน
ความสัมพันธทาง Relational Database จะหมายถึง
ตาราง 2 ตารางมีความสัมพันธ์กนั ซึง่ แบ่งเป็ น 3 แบบ
ดังนี้
– One-To-One เช่น ความสัมพันธ์ระหว่างทะเบียนรถยนต์กบ
ั
รถยนต์
กับชัำน้ เรียน
ครูประจ
ำชัน้ , ครูประจาชัน้ ประจ
ชันเรี
้ ยน
17
ความสัมพันธ์ (Relation)
– One-To-Many
เช่นคนเป็ นเจ้าของรถ
เป็ นเจ้ ำของ
คน
รถ
เช่นนิสิต 1 คนเลือกเรียนหลายวิชา
แต่ละวิชามีผนู้ ิ สิตหลายคนลงทะเบียน, ใบสังซื
่ ้ อกับ
สินค้า
เลือกเรี ยน
– Many-To-Many
นิสิต
วิชำ
18
คีย(์ Key)

คีย์หลัก(Primary Key)
– เป็ นคีย์หลักทีใ่ ช้ ในการจัดเรี ยงและแยกแยะข้ อมูลแต่ ละเรคอร์ ดในตาราง
นั้นออกจากกัน คีย์หลักนี้จะต้ องมีค่าในทุกเรคอร์ ด และต้ องไม่ มีค่าซา้ กัน
เลย

คีย์แข่ งขัน(Candidate Key)
– ได้ แก่ ฟิลด์ ซงึ่ มีคุณสมบัตคิ รบถ้ วนจนสามารถนามาใช้ เป็ นคีย์หลักได้

คีย์ประกอบ(Composite Key หรื อ Compound Key)
– เป็ นการนาเอาฟิ ลด์ หลายๆฟิ ลด์ มารวมกันเป็ นคีย์เพื่อให้ มีคุณสมบัติ
ครบถ้ วน คือไม่ ซา้ และไม่ เป็ นค่ าว่ าง
19
คีย์

คีย์นอก(Foreign Key)
– เป็ นฟิ ลด์ ที่ใช้ เป็ นคีย์ในการเชื่อมโยงข้ อมูลระหว่ างหลายตาราง
เข้ าด้ วยกัน

คีย์รอง(Secondary Key หรือ Index)
– เป็ นคีย์ที่ใช้ ในการแยกแยะข้ อมูล คีย์รองนี้สามารถมีค่าที่ซา้ กัน
ได้ คีย์รองจะใช้ เพื่อช่ วยให้ การค้ นหาทาได้ เร็วขึน้
20
ขั้นตอนการออกแบบฐานข้ อมูล





เก็บรวมรวบรายละเอียดของงาน
กาหนดโครงสร้ างของตาราง
กาหนดคีย์ให้ กับตาราง
กาหนดความสัมพันธ์ ระหว่ างตาราง โดยอาศัยคีย์ต่างๆทีต่ ั้ง
ไว้ เป็ นตัวเชื่อม
ปรั บรูปแบบข้ อมูล
21
ขัน
้ ตอนการออกแบบฐานขอมู
้ ล

แบงออกเป็
น 3 ระดับ คือ
่
– Conceptual Design
– Logical Design
– Physical Design
22
ขัน
้ ตอนการออกแบบฐานขอมู
้ ล



Conceptual Design : การอธิบายถึงขอมู
้ ลและความสั มพันธกั
์ นของ
ขอมู
โดยกาหนดวาจากความต
องการของผู
้ ลในระบบทีเ่ ราวิเคราะหมา
์
่
้
้ใช้
จะตองมี
ขอมู
และขอมู
วมีความสั มพันธกั
และ
้
้ ลอะไรบาง
้
้ ลแตละตั
่
์ นอยางไร
่
มีขอจ
้ ากัดอะไรบ้าง แสดงโดยใช้ High-level conceptual data model
ในทีน
่ ี้เราใช้ E-R Model
Logical Design : จากโครงสร้างของฐานขอมู
้ ลทีไ่ ดจากการออกแบบ
้
ฐานขอมู
้นมาอิงกับ Data
้ ลในระดับ Conceptual แลวน
้ าโครงสรางนั
้
Model เพือ
่ แปลงเป็ นตาราง (Relational Data Model) หรือความสั มพันธ ์
ตามแนวคิดของ Data Model จากนั้นตองมี
การปรับปรุงโครงสรางของ
้
้
ฐานขอมู
่ ด
ุ โดยใช้ทฤษฎีการทา
้ ลให้มีความซา้ ซ้อนกันน้อยทีส
Normalization
Physical Design : จากนั้นเป็ นขัน
้ ตอนการ implement โดยนา DBMS
มาใช้ implement ผลลัพธที
้ ตอน
์ ไ่ ด้ คือ database schema และขัน
สุดท้าย คือการออกแบบการจัดเก็บขอมู
่ งของ
้ ลลงใน disk เป็ นเรือ
internal storage structure การเขาถึ
้ งขอมู
้ ลจะทาอยางไร
่
23
การออกแบบฐานข้อมูล
สมมติว่า ได้รบั มอบหมายให้ออกแบบโปรแกรมเพือ่ ใช้เก็บ
ข้อมูลข้อมูลเกีย่ วกับการจัดเก็บใบสังซื
่ ้ อขององค์กร โดย
โปรแกรมทีอ่ อกแบบต้องมีคณ
ุ สมบัติดงั นี้
 สามารถจัดเก็บรายละเอี ยดของลูกค้าได้
 สามารถเก็บรายการสินค้าที จ
่ าหน่ ายได้
 สามารถเก็บรายการสังซื
่ ้ อของลูกค้าแต่ละคนได้
 สามารถค้นหาใบสังซื
่ ้ อของแต่ละใบได้
 สามารถค้นหาลูกค้าแต่ ละคนว่าได้ซ้ ี ออะไรบ้าง
 สามารพิมพ์ใบสังส
่ ิ นค้าออกทางเครือ่ งพิมพ์ได้
24
ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์
ในแต่ละรี เลชัน่ (Dependency)

แบ่งออกเป็ น 4 ประเภท คือ
- ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์แบบฟังก์ชนั
Functional Dependency
- ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์แบบบางส่ วน
Partial Dependency
- ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์แบบทรานซิทีฟ
Transitive Dependency
- ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์แบบหลายค่า
Multivalued Dependency
25
ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์
ในแต่ละรี เลชัน่ (Dependency)

ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์แบบฟังก์ชนั
Functional Dependency
- การที่แอททริ บิวต์หนึ่งหรื ออาจมากกว่าหนึ่งแอททริ บิวต์
ประกอบกัน แล้วสามารถระบุค่าของแอททริ บิวต์อื่น ๆ ในทูเพิล
หนึ่งได้ชดั เจน
26
ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์
ในแต่ละรี เลชัน่ (Dependency)

ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์แบบฟังก์ชนั
Functional Dependency
SNO
SNAME
CITY
SUPPLIER
SNO
SNAME
CITY
S1
Seri
Bangkok
S2
Wanida
Rayong
S3
Somchai
Rayong
S4
Orapin
Bangkok
S5
Tanachote
Patumtani
SUPPLER.SNO -> SUPPLIER.SNAME
SUPPLER.SNO -> SUPPLIER.CITY หรื อ
SUPPLER.SNO -> SUPPLIER.(SNAME,CITY) หรื อ
SNO -> (SNAME,CITY)
27
ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์
ในแต่ละรี เลชัน่ (Dependency)

ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์แบบบางส่ วน
Partial Dependency
- การที่แอททริ บิวต์บางส่ วนของคียห์ ลักสามารถระบุค่าของ
แอททริ บิวต์อื่น ๆ ที่ไม่ใช่คียห์ ลักของรี เลชัน่ ได้
(Non-Key Attribute)
- เกิดขึ้นเมื่อรี เลชัน่ หนึ่ง ๆ มีคียห์ ลักเป็ นคียผ์ สม
28
ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์
ในแต่ละรี เลชัน่ (Dependency)

ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์แบบบางส่ วน
Partial Dependency
ORDER
SNO PNO PNAME
SNO PNO
PNAME
QTY
(SNO,PNO) -> (PNAME,QTY)
PNO -> PNAME
QTY
S1
P1
Pen
100
S1
P2
Table
200
S1
P3
Desk
300
S2
P1
Pen
300
S2
P3
Desk
400
S3
P4
Bag
100
29
ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์
ในแต่ละรี เลชัน่ (Dependency)

ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์แบบทรานซิทีฟ
Transitive Dependency
- การที่แอททริ บิวต์อื่น ๆ ที่ไม่ใช่คียห์ ลักของรี เลชัน่
(Non-Key Attribute) สามารถระบุค่าของแอททริ บิวต์อื่นใน
ทูเพิลได้
30
ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์
ในแต่ละรี เลชัน่ (Dependency)

ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์แบบบางส่ วน
Transitive Dependency
SNO
SNAME
CITY
RATE
SUPPLIER
SNO SNAME
SNO -> (SNAME, CITY, RATE)
CITY -> RATE
CITY
RATE
S1
Seri
Bangkok
2
S2
Wanida
Rayong
3
S3
Somchai
Rayong
3
S4
Orapin
Bangkok
2
S5
Tanachote
Patumtani 1
31
ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์
ในแต่ละรี เลชัน่ (Dependency)

ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์แบบหลายค่า
Multivalued Dependency
- จะเกิดขึ้นกับรี เลชัน่ ที่มีแอททริ บิวต์อย่างน้อย 3 แอททริ บิวต์
และเป็ นรี เลชัน่ ที่แอททริ บิวต์หนึ่ง สามารถระบุค่าของ
แอททริ บิวต์อื่น ๆ ในรี เลชัน่ ได้มากกว่า 1 ค่า
32
ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์
ในแต่ละรี เลชัน่ (Dependency)

ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์แบบหลายค่า
Multivalued Dependency
สมมุติฐาน
1. ผูผ้ ลิตหนึ่ ง ๆ รับงานได้หลายโครงการ
่ ลายแห่ง
2. ผูผ้ ลิตหนึ่ ง ๆ มีโรงงานอยูห
SNO ระบุ PJNO ได้หลายค่า
SNO ->> PJNO
SNO ระบุ CITY ได้หลายค่า
SNO ->> CITY
SPJC
SNO
PJNO
CITY
S1
PJ01
Bangkok
S1
PJ01
Samuthprakarn
S1
PJ02
Bangkok
S1
PJ02
Samuthprakarn
S2
PJ03
Rayong
S2
PJ03
Chonburi
S2
PJ04
Rayong
S2
PJ04
Chonburi
33
การทารี เลชัน่ ให้อยูใ่ นรู ปแบบบรรทัดฐาน
(Normalization)
ถูกคิดค้นโดย E.F. Codd
 เป็ นกระบวนการที่นาเค้าร่ างของรี เลชัน
่ มาทาให้อยูใ่ นแบบที่เป็ น
บรรทัดฐาน (Normal Form) เพื่อให้แน่ใจว่าการออกแบบเค้าร่ าง
ของรี เลชัน่ เป็ นการออกแบบที่เหมาะสม
 วัตถุประสงค์ของการทาให้เป็ นบรรทัดฐาน
- ลดเนื้อที่ในการจัดเก็บข้อมูล
- ลดปัญหาข้อมูลไม่ถูกต้อง (Inconsistency)
- ลดปัญหาที่เกิดจากการเพิ่ม ปรับปรุ งและลบข้อมูล

(Insert, Update and Delete Anomalies)
34
รู ปแบบบรรทัดฐาน
รู ปแบบบรรทัดฐานขั้นที่ 1 (First Normal Form : 1NF)
 รู ปแบบบรรทัดฐานขั้นที่ 2 (Second Normal Form : 2NF)
 รู ปแบบบรรทัดฐานขั้นที่ 3 (Third Normal Form : 3NF)
 รู ปแบบบรรทัดฐานของบอยส์และคอดด์

(Boyce/Codd Normal Form : BCNF)
รู ปแบบบรรทัดฐานขั้นที่ 4 (Fourth Normal Form : 4NF)
 รู ปแบบบรรทัดฐานขั้นที่ 5 (Fifth Normal Form : 5NF)

35
รู ปแบบบรรทัดฐาน (1NF)
รี เลชัน่ หนึ่ง ๆ จะอยูใ่ นรู ปแบบบรรทัดฐานขั้นที่ 1 ก็ต่อเมื่อ
ค่าของแอททริ บิวต์ต่าง ๆ ในแต่ละทูเพิล
จะมีค่าของข้อมูลเพียงค่าเดียว
36
รู ปแบบบรรทัดฐาน (1NF)
SNO
SNAME
CITY
PNO
QTY
S1
Seri
Bangkok
P1
300
P2
200
P3
400
P4
200
P5
100
P6
100
P1
300
P2
400
S2
Wanida
Rayong
S3
Somchai
Rayong
P2
200
S4
Orapin
Bangkok
P2
200
P4
300
P5
400
37
รู ปแบบบรรทัดฐาน (1NF)
SNO
SNAME
CITY
PNO
QTY
S1
Seri
Bangkok
P1
300
S1
Seri
Bangkok
P2
200
S1
Seri
Bangkok
P3
400
S1
Seri
Bangkok
P4
200
S1
Seri
Bangkok
P5
100
S1
Seri
Bangkok
P6
100
S2
Wanida
Rayong
P1
300
S2
Wanida
Rayong
P2
400
S3
Somchai
Rayong
P2
200
S4
Orapin
Bangkok
P2
200
S4
Orapin
Bangkok
P4
300
S4
Orapin
Bangkok
P5
400
38
รู ปแบบบรรทัดฐาน (1NF)
ความผิดพลาดที่เกิดจากการเพิ่มข้อมูล (Insert Anomaly)
- จะเพิม่ ข้อมูลผูผ้ ลิตได้ ก็ต่อเมื่อ ผูผ้ ลิตสิ นค้าได้ส่งสิ นค้าให้ผซู ้ ้ือ
- เช่น ข้อมูล S5 ที่อยูป่ ทุมจะไม่มีในรี เลชัน่
 ความผิดพลาดที่เกิดจากการลบข้อมูล (Delete Anomaly)
- ในการลบข้อมูลบางทูเพิลทิ้งไปจะลบทั้งข้อมูลผูผ้ ลิตและข้อมูล
การส่ งสิ นค้า
- เช่น ถ้าลบข้อมูลของทูเพิลที่ผผู ้ ลิตเป็ น S3 และสิ นค้า P2
จะทาให้ผผู ้ ลิต S3 หายไปจากระบบ

39
รู ปแบบบรรทัดฐาน (1NF)

ความผิดพลาดที่เกิดจากการปรับปรุ งข้อมูล (Update Anomaly)
- การปรับปรุ งข้อมูลทาให้เกิดความยุง่ ยากและเสี ยเวลา และอาจ
ทาให้ขอ้ มูลไม่เหมือนกัน
- เช่น การปรับปรุ งที่อยูข่ องผูผ้ ลิต S1 จาก Bangkok เป็ น
Ayudtaya

แก้ไขโดยแตกรี เลชัน่ เป็ น 2 รี เลชัน่ คือ
- SUPPLIER(SNO, SNAME, CITY)
- ORDER(SNO, PNO, QTY)
40
รู ปแบบบรรทัดฐาน (2NF)
รี เลชัน่ หนึ่ง ๆ จะอยูใ่ นรู ปแบบบรรทัดฐานขั้นที่ 2 ก็ต่อเมื่อ
รี เลชัน่ นั้น ๆ อยูใ่ นรู ปแบบบรรทัดฐานที่ 1 และมีคุณสมบัติอีก
ประการหนึ่งคือ แอททริ บิวต์ที่ไม่ได้เป็ นคียห์ ลักทุกตัว จะสามารถ
ระบุค่าโดยแอททริ บิวต์ที่เป็ นคียห์ ลักหรื อโดยแอททริ บิวต์ท้ งั หมดที่
ประกอบกันเป็ นคียห์ ลักในกรณี ที่คียห์ ลักเป็ นคียผ์ สม
(ไม่มี Partial Dependency เกิดขึ้น)
41
รู ปแบบบรรทัดฐาน (2NF)
ORDER1
SNO PNO

PNAME
QTY
SNO
PNO
PNAME
QTY
S1
P1
PEN
100
S1
P2
TABLE
200
S1
P3
DESK
300
S2
P1
PEN
300
S2
P3
DESK
400
S2
P4
BAG
100
แก้ไขโดยแตกรี เลชัน่ เป็ น 2 รี เลชัน่ คือ
- ORDER1(SNO, PNO, QTY)
- PRODUCT(PNO, PNAME)
42
รู ปแบบบรรทัดฐาน (3NF)
รี เลชัน่ หนึ่ง ๆ จะอยูใ่ นรู ปแบบบรรทัดฐานขั้นที่ 3 ก็ต่อเมื่อ
รี เลชัน่ นั้น ๆ อยูใ่ นรู ปแบบบรรทัดฐานที่ 2 และมีคุณสมบัติอีก
ประการหนึ่งคือ แอททริ บิวต์ที่ไม่ได้เป็ นคียห์ ลักจะไม่มีคุณสมบัติ
ในการระบุค่าของแอททริ บิวต์อื่นที่ไม่ใช่คียห์ ลัก
(ไม่มี Transitive Dependency เกิดขึ้น)
43
รู ปแบบบรรทัดฐาน (3NF)
SNO
SNAME
CITY
RATE
SUPPLIER1
SNO SNAME
CITY
RATE
S1
Seri
Bangkok
2
S2
Wanida
Rayong
3
S3
Somchai
Rayong
3
S4
Orapin
Bangkok
2
S5
Tanachote
Patumtani 1
44
รู ปแบบบรรทัดฐาน (3NF)
ความผิดพลาดที่เกิดจากการปรับปรุ งข้อมูล (Update Anomaly)
- เช่น หากมีการแก้ไขการจัดอันดับของจังหวัดผูผ้ ลิต จะต้องทาการ
แก้ไขข้อมูลหลายทูเพิล อาจก่อให้เกิดปัญหาแก้ไขไม่ครบถ้วน
ทาให้เกิดความไม่ตรงกันของข้อมูล
 ความผิดพลาดที่เกิดจากการลบข้อมูล (Delete Anomaly)
- เช่น หากมีการลบข้อมูลการจัดอันดับของจังหวัดผูผ้ ลิต จะทาให้
ข้อมูลการจัดอันดับของจังหวัดนั้นหายไปจากฐานข้อมูล
 แก้ไขโดยแตกรี เลชัน
่ เป็ น 2 รี เลชัน่ คือ

- SUPPLIER(SNO, SNAME, CITY) และ
CITY(CITY, RATING)
45
รู ปแบบบรรทัดฐาน (BCNF)
รี เลชัน่ หนึ่ง ๆ จะอยูใ่ นรู ปแบบบรรทัดฐานขั้นที่ BC ก็ต่อเมื่อ
รี เลชัน่ นั้น ๆ อยูใ่ นรู ปแบบบรรทัดฐานที่ 3 และไม่มีแอททริ บิวต์
อื่นในรี เลชัน่ ที่สามารถระบุค่าของแอททริ บิวต์ที่เป็ นคียห์ ลักใน
กรณี ที่คียห์ ลักในกรณี ที่คียห์ ลักเป็ นคียผ์ สม
46
รู ปแบบบรรทัดฐาน (BCNF)

คุณสมบัติของรี เลชัน่ ที่ตอ้ งผ่านการทาให้เป็ น BCNF
- มีคียค์ ู่แข่งหลายคีย ์
- คียค์ ู่แข่งเป็ นคียผ์ สมและคียค์ ู่แข่งนั้นมีบา้ งส่ วนซ้ าซ้อนกัน
(Overlapped)
แอททริ บิวต์ที่เป็ นคียห์ ลัก
A
แอททริ บิวต์อื่น ๆ
C
D
B
E
47
รู ปแบบบรรทัดฐาน (BCNF)
SUPPLIER3
SNO SNAME
PN
O
QTY
S1
SERI
P1
300
S1
SERI
P2
200
S1
SERI
P3
400
S1
SERI
P4
200
S1
SERI
P5
100
S1
SERI
P6
100
S2
WANIDA
P1
300
S2
WANIDA
P2
400
S3
SOMCHAI
P2
200
S4
ORAPIN
P2
200
S4
ORAPIN
P4
300
S4
ORAPIN
P5
400
SNO
SNAME
PNO
QTY
ข้ อสมมติฐาน
1. SNAME เป็ นค่าที่ไม่ซ้ ากันและ
มีคุณสมบัติเป็ นคียห์ ลัก
2. มี 2 Candidate Key คือ
(SNO,PNO) และ (SNAME,PNO)
48
รู ปแบบบรรทัดฐาน (BCNF)

แก้ไขโดยแตกรี เลชัน่ เป็ น 2 รี เลชัน่ ซึ่งสามารถทาได้ 2 กรณี ได้แก่
กรณี ที่ 1
- SUPPILER4(SNO, SNAME)
- ORDER2(SNO,PNO, QTY)
กรณี ที่ 2
- SUPPILER4(SNO, SNAME, QTY)
- ORDER2(SNAME,PNO, QTY)
49
รู ปแบบบรรทัดฐาน (4NF)
รี เลชัน่ หนึ่ง ๆ จะอยูใ่ นรู ปแบบบรรทัดฐานขั้นที่ 4 ก็ต่อเมื่อ
รี เลชัน่ นั้น ๆ อยูใ่ นรู ปแบบ BCNF และเป็ นรี เลชัน่ ที่ไม่มี
ความสัมพันธ์ในการระบุค่าของแอททริ บิวต์แบบหลายค่า โดยที่แอ
ททริ บิวต์ที่ถูกระบุค่าหลายค่าเหล่านี้ไม่มีความสัมพันธ์กนั
(Independently Multivalued Dependency)
50
รู ปแบบบรรทัดฐาน (4NF)

คุณสมบัติของรี เลชัน่ ที่ตอ้ งผ่านการทาให้เป็ น 4NF
- มีแอททริ บิวต์อย่างน้อย 3 แอททริ บิวต์
- ความสัมพันธ์ระหว่างค่าของแอททริ บิวต์เป็ นแบบหลายค่า
51
รู ปแบบบรรทัดฐาน (4NF)
SPJ
SNO
PJNO CITY
S1
PJ01
BANGKOK
SAMUTHPRAKARN
S2
PJ03
ทาให้เป็ น BCNF โดยให้ทุก
แอททริ บิวต์เป็ นคียห์ ลัก
SPJ
BANGKOK
SNO
PJNO CITY
SAMUTHPRAKARN
S1
PJ01
BANGKOK
RAYONG
S1
PJ01
SAMUTHPRAKARN
CHONBURE
S1
PJ02
BANGKOK
RAYONG
S1
PJ02
SAMUTHPRAKARN
CHONBURE
S2
PJ03
RAYONG
RAYONG
S2
PJ03
CHONBURE
CHONBURE
S2
PJ04
RAYONG
S2
PJ04
CHONBURE
S2
PJ05
RAYONG
S2
PJ05
CHONBURE
SNO ->> PJNO
SNO ->> CITY
52
รู ปแบบบรรทัดฐาน (4NF)
เกิดปัญหาการเพิ่ม ลบ ปรับปรุ งข้อมูล
- เช่น ถ้าผูผ้ ลิต S2 ย้ายโรงงานจาก Rayong ไปที่อื่น ต้องแก้ไข
ข้อมูลหลายทูเพิล
- อาจเพิ่มข้อมูลไม่ได้ เช่น ไม่สามารถเก็บข้อมูลชื่อจังหวัดของผู ้
ผลิตคนใหม่ได้ถา้ ผูผ้ ลิตนั้น ไม่มีโครงการทา
 แก้ไขโดยแตกรี เลชัน
่ เป็ น 2 รี เลชัน่

- SPJ(SNO, PJNO)
- SC(SNO,CITY)
53
รู ปแบบบรรทัดฐาน (5NF)
รี เลชัน่ หนึ่ง ๆ จะอยูใ่ นรู ปแบบบรรทัดฐานขั้นที่ 5 ก็ต่อเมื่อ
รี เลชัน่ นั้น ๆ อยูใ่ นรู ปแบบบรรทัดฐานขั้นที่ 4 และไม่มี
Symmetric Constraint กล่าวคือ หากมีการแตกรี เลชัน
่ ออกเป็ น
รี เลชัน่ ย่อย (Projection) และเมื่อทาการเชื่อมโยงรี เลชัน่ ย่อย
ทั้งหมด (Join) จะไม่ก่อให้เกิดข้อมูลใหม่ที่ไม่เหมือนรี เลชัน่ เดิม
(Spurious Tuple)
54
รู ปแบบบรรทัดฐาน (5NF)

เกิดปัญหาการปรับปรุ งข้อมูล
- เช่น ถ้าลบผูผ้ ลิต WANIDA ผูผ้ ลิตดังกล่าวก็จะหายไปจาก
ฐานข้อมูล หรื อ
- หากมีการเปลี่ยนชื่อสิ นค้าใดต้องแก้ไขหลายทูเพิล
SPP
SNAME
PNAME
PJNAME
SERI
PEN
PROJ2
SERI
TABLE
PROJ1
WANIDA
PEN
PROJ1
SERI
PEN
PROJ1
55
รู ปแบบบรรทัดฐาน (5NF)

แก้ไขโดยแตกรี เลชัน่ เป็ น 3 รี เลชัน่ ได้แก่ SP(SNAME, PNAME) ,
PPJ(PNAME, PJNAME) และ PJS(PJNAME, SNAME)
PPJ
SP
PJS
SNAME
PNAME
PNAME
PJNAME
PJNAME
SNAME
SERI
PEN
PEN
PROJ2
PROJ2
SERI
SERI
TABLE
TABLE
PROJ1
PROJ1
SERI
WANIDA
PEN
PEN
PROJ1
PROJ1
WANIDA
SPP SNAME
PNAME
PJNAME
SERI
PEN
PROJ2
SERI
TABLE
PROJ1
WANIDA
PEN
PROJ1
SERI
PEN
PROJ1
56
รู ปแบบบรรทัดฐาน (5NF)
SCPJ SNO
CITY
PJNO
S1
BANGKOK
PJ01
S1
RAYONG
PJ02
S3
RAYONG
PJ01
CPJ
SC
PJS
SNO
CITY
CITY
PJNO
SNO
PJNO
S1
BANGKOK
BANGKOK
PJ01
S1
PJ01
S1
RAYONG
RAYONG
PJ02
S1
PJ02
S3
RAYONG
RAYONG
PJ01
S3
PJ01
SCPJ SNO
CITY
PJNO
S1
BANGKOK
PJ01
S1
RAYONG
PJ02
S1
RAYONG
PJ01
S3
RAYONG
PJ01
Spurious Tuple
57
ประเด็นที่ควรคานึงถึงในการทาให้เป็ นรู ปแบบ
บรรทัดฐาน

การแตกรี เลชัน่ มากเกินไป (Overnormalization)
- โดยปกติแล้วผูอ้ อกแบบฐานข้อมูลจะพยายามวิเคราะห์ให้
รี เลชัน่ อยูใ่ นรู ปแบบขั้นที่ 3
- อาจมีบางกรณี ที่วิเคราะห์ไปถึงขั้นBCNF, 4NF หรื อ 5NF
- การแตกรี เลชัน่ มากเกินไป จะมีผลต่อประสิ ทธิภาพในการทางาน
ของฐานข้อมูล เช่น การค้นหาข้อมูลจะใช้เวลามาก
58
ประเด็นที่ควรคานึงถึงในการทาให้เป็ นรู ปแบบ
บรรทัดฐาน

การแตกรี เลชัน่ มากเกินไป (Overnormalization)
SNO
SNAME
CITY
SNO
SNO
SNAME
CITY
59
ประเด็นที่ควรคานึงถึงในการทาให้เป็ นรู ปแบบ
บรรทัดฐาน

การดีนอร์มอลไลเซชัน่ (Denormalization)
- ในบางครั้งอาจมีบางรี เลชัน่ ถูกออกแบบให้อยูใ่ นรู ปแบบ
บรรทัดฐานที่ไม่เป็ นไปตามกฎเกณฑ์ เนื่องจากเหตุผลในเรื่ องของ
ประสิ ทธิภาพในการเรี ยกดูหรื อค้นหาข้อมูล
- ส่ วนใหญ่จะใช้กบั ข้อมูลที่ถูกเรี ยกดูมากกว่าการเพิ่ม แก้ไข หรื อ
ลบข้อมูล
60
ประเด็นที่ควรคานึงถึงในการทาให้เป็ นรู ปแบบ
บรรทัดฐาน

การดีนอร์มอลไลเซชัน่ (Denormalization)
EMPLOYEE
EMPNUM
EMPNAME
HIREDATE
SALARY
EMPLOYEE
EMPNUM
EMPNAME
POSITION
DEPNO
POSITION_DATA
POSITION_CODE
POSITION
HIREDATE
SALARY
DEPNO
61