30
ผศ.ดร.ไพศาล สันติธรรมนนท์ 1 Database Design and Analysis ดร. ไพศาล สันติธรรมนนท์ คณะวิศวกรรมศาสตร์ จุฬาลงกรณ์มหาวิทยาลัย Email: [email protected]

Spat Db 4 Db Design Analysis

Embed Size (px)

Citation preview

Page 1: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 1

Database Design and Analysis

ดร. ไพศาล สนัติธรรมนนท์คณะวิศวกรรมศาสตร์

จุฬาลงกรณ์มหาวทิยาลัยEmail: [email protected]

Page 2: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 2

การทำานอร์มัลไลเซชั่น(Normalization)

Page 3: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 3

การทำานอร์มัลไลเซชั่น (Normalization)

• การวิเคราะห์และออกแบบโครงสร้างฐานข้อมูล

• ลดความซำำาซ้อนในการจัดเก็บ• การแก้ใข การลบข้อมูล มีความเป็นเอกภาพ

(integrity)

• การบริหารจัดการข้อมูลมีประสทิธภิาพ• การบำารุงรักษาระบบ การพัฒนาต่อเนื่อง

และการรืำอปรับระบบงา่ย

การทำานอร์มัลฟอร์ม (normal form)

Page 4: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 4

ระดับนอรมัลฟอร์ม

• นอร์มัลฟอร์มทีห่นึ่ง (First Normalization Form หรือ 1-NF)

– การจัดโครงสร้างฐานขอ้มูลให้เป็นตารางที่ไม่มีขอ้มูลซำำากันภายในกลุ่ม (no reapeating group)

• นอร์มัลฟอร์มทีส่อง (Second Normalization Form หรือ 2-NF

– การจัดโครงสร้างฐานขอ้มูลให้แต่ละคอลัมน์ในทุกตารางขึำนต่อคีย์หลักเพียงอย่างเดียว (column must depend on the entire primary key)

• นอร์มัลฟอร์มทีส่าม (Third Normalization Form หรือ 3-NF)

– การจัดโครงสร้างฐานขอ้มูลให้แต่ละคอลัมน์ในทุกตารางให้ขึำนตรงต่อคีย์หลักเพียงโดยตรง (column must depend on directly on the primary key)

Page 5: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 5

การทำานอร์มัลฟอร์มขัำนสูง

• หาอ่านได้จากตำารา ฐานข้อมูล ระบบฐานข้อมูล การวิเคราะห์ระบบ

• Google Search database normalization

Page 6: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 6

ตัวอย่างการทำานอร์มัลไลเซชั่น

Page 7: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 7

ตัวอย่างการทำานอร์มัลไลเซชั่น

• ตวัอย่างของการพัฒนาฐานข้อมูลปริมาณนำำาฝนรายสถานี

• โดยสมมุติให้มีการรายงานและบันทึกปริมาณนำำาฝนจากสถานีต่าง

• การบันทึกทำาเป็นค่าเฉลี่ยเปน็รายเดอืน • การรายงานทำาได้อย่างไม่สมำ่าเสมอ

Page 8: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 8

ตัวอย่าง การบันทึกค่าปริมาณนำำาฝนเฉลี่ยรา

ยเดือน

110ก.ย.

จันทบุรีโป่งนำำาร้อน

70ก.

ค.

5ก.พ.

ขอนแก่นพระธาตุ

90พ.

ย.

20ม.

ค.

กาญจนบุรีท่าเสา

150

ต.ค.

60มิ.ย

.10

ม.ค.

กาญจนบุรีลาดหญา้

ระดับ

เดือน

ระดับ

เดือน

ระดับ

เดือน

ที่ตัำงสถานีวัด

Page 9: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 9

ตัวอย่างการทำานอร์มัลไลซฟ์อร์มที่หนึ่ง (1-NF)

110ก.ย.จันทบุรีโป่งนำำาร้อน70ก.ค.ขอนแก่นพระธาตุ5ก.พ.ขอนแก่นพระธาตุ90พ.ย.กาญจนบุรีท่าเสา20ม.ค.กาญจนบุรีท่าเสา150ต.ค.กาญจนบุรีลาดหญ้า60มิ.ย.กาญจนบุรีลาดหญ้า10ม.ค.กาญจนบุรีลาดหญ้า

ระดบัเดือนจังหวัดที่ตัำงสถานวีัด

Page 10: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 10

ตัวอยา่งการทำานอร์มัลไลซ์ฟอร์มทีส่อง

ค่าระดับแต่ละค่า ขึำนอยูก่ับคีย์หลักเพียงอย่างเดียว

จันทบุรีโป่งนำำารอ้

น4

ขอนแก่นพระธาตุ3

กาญจนบุรี

ทา่เสา2

กาญจนบุรีลาดหญ้า1

ทีต่ัำงสถานวีดัรหัสสถานวีั

110ก.ย.4

70ก.ค.3

5ก.พ.3

90พ.ย.2

20ม.ค.

2

150ต.ค.1

60มิ.ย.1

10ม.ค.

1

ระดับเดือน

รหัสสถานีวดั

Page 11: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 11

ตัวอยา่งการทำานอรม์ัลไลซ์ฟอร์มทีส่าม

ทุกตารางขึำนตรงต่อคีย์หลักโดยตรง คีย์หลักทัำงหมด

จันทบุรี3

ขอนแกน่2

กาญจนบุรี1

ชือ่จังหวดัรหัสจงัหวัด 110ก.ย.4

70ก.ค.3

5ก.พ.3

90พ.ย.2

20ม.ค.2

150ต.ค.1

60มิ.ย.1

10ม.ค.1

ระดับเดือน

รหัสสถานีวดั

3โป่งนำำาร้อน4

2พระธาตุ3

1ทา่เสา2

1ลาดหญ้

า1

รหัสจงัหวดัสถานวีดัรหสั

สถานีวดั

Page 12: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 12

ข้อคำานึงการทำานอร์มัลไลเซชั่น

• ไม่จำาเปน็ทำานอร์มัลไลเซชั่นให้ครบไปจนถึงระดบัที่สาม (3-NF)

• ขึำนอยู่กับคุณลักษณะของข้อมูล ลักษณะของการใชง้าน

• ท้ายที่สดุระบบฐานข้อมูลจะประกอบขึำนด้วยตารางย่อยเป็นจำานวนมาก (overnormalization)

• ผลที่ตามมาจะทำาให้การสบืค้นคืนจะซับซ้อนและยุ่งยากมากขึำน ไม่สามารถทำาให้เบด็เสร็จด้วยข้อมูลในตารางเดยีวได้

Page 13: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 13

ข้อคำานึงการทำาดีนอร์มัลไลเซชั่น

• ในบางกรณีอาจจำาเปน็ต้องปล่อยให้เกิดความซำำาซ้อนเกิดขึำนภายในตาราง เพือ่ให้การสบืค้นค้นโดยผู้ใช้ง่ายขึำน การทำานอร์มัลไลเซชัน่ให้อยู่ในระดับเพียง 2 NF เท่านัำน

• ในทางปฏิบัติอาจเปน็การสร้าง view จากตารางที่อยู่ในระดับ 3 NF เพือ่ให้ผู้ใชส้ามารถสร้าง ad-hoc query ใดๆ สำาหรับการประยุกต์ใชข้ัำนสูงสำาหรับผู้ใช้

• การทำาเชน่นีำอาจเรียกได้ว่าเป็นการทำา denormalization

Page 14: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 14

แบบจำาลองของฐานข้อมูลDatabase Model

Page 15: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 15

แบบจำาลองฐานข้อมูล

• เพือ่ใชใ้นการออกแบบและวเิคราะห์ระบบสารสนเทศ

• แสดงความสัมพันธ์ระหวา่งตารางต่างๆ • ความสัมพันธ์แต่ละคีย์หลัก Primary Key

จะขีดเสน้ลูกศรชีำถึงกัน• อาจมีการระบจุำานวนนับของความสัมพันธ์

(cardinality) 0,1,2,3,…,

Page 16: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 16

ตัวอย่าง ER-Diagram (ERD)

1

Page 17: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 17

ตัวอย่าง ER-Diagram (ERD)

0… 1..

Page 18: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 18

ตัวอย่าง ERD

Page 19: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 19

Unified Modeling Language(UML)

Page 20: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 20

Page 21: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 21

Page 22: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 22

Optimization

Page 23: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 23

การเพิ่มประสิทธภิาพในการสืบค้นคืน

• การทำานอร์มัลไลเซชัน่ ชว่ยให้การสบืค้นคืนเร็วขึำน เชน่ การค้นหารหัสจังหวัดที่เป็น “จำานวนเตม็” แทนที่จะเป็นการคน้หา ชื่อจังหวัด ที่เปน็ varchar หรือ string

• การทำา index ที่เป็นการเรียงลำาดับ attribute ในคอลัมนเ์สยีก่อนล่วงหน้า ก่อนให้ผู้ใชเ้ข้าสูร่ะบบ เมือ่ผู้ใชส้ืบค้นคืน

Page 24: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 24

B-tree

• ใช้สำาหรับการเรียงข้อมลูที่เป็น strings

• เมือ่สืบค้นคืนจะเร็วขึำนมาก

Page 25: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 25

GiST Index

• สร้างพืำนที่ครอบคลุม Geometry Object เปน็สี่เหลี่ยม อย่างงา่ย เตรียมไวก้่อน แล้ว สร้าง balance-tree

• เมือ่จะทำาการ spatial operation ใดๆ ที่ต้องใช้การคำานวณ ซับซ้อนและยาวนาน ก็จะไดป้ระหยัดเวลา

Page 26: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 26

Page 27: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 27

GiST Index

• CREATE INDEX name ON table USING gist(column);

• ตวัอย่างข้อมูลสนามบนิ โดยจะทำาการสร้าง Spatial index ด้วย GIST ให้กับข้อมูล Geometry ของชัำนข้อมูลสนามบิน เพือ่เพิ่มประสิทธ์ภาพในการเข้าถึงข้อมูล

• CREATE INDEX airport_idx ON airport USING gist (the_geom)

Page 28: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 28

ขัำนตอนการทำา spatial indexing

• เตรียม spagtial indexing ดว้ยคำาสั่ง CREATE INDEX ชนิด GIST

• คำานวณ “สถิติของข้อมูลปริภูมิ” VACUUM เพือ่ให้เป็นประโยชน์ ในกระบวนการค้นหา และการวิเคราะห์

Page 29: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 29

การเพิ่มความเร็วในการคำานวณ โดยคัดกรองวตัถุที่ไม่เกี่ยวข้องออกเสี

ยกอ่น• พจิารณาพืำนที่ทับซ้อนกัน

วา่วัตถุเรขาคณิตเกี่ยวข้องกัน โดยการทดสอบฟังก์ชัน Overlap “&&” ก่อนที่จะลงมือทำาการคำานวณที่ซับซ้อนและใชเ้วลา

• SELECT id, the_geom FROM the_table WHERE the_geom && ’POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))’ AND _ST_Contains(the_geom,’POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))’);

Page 30: Spat Db 4 Db Design Analysis

ผศ.ดร.ไพศาล สันติธรรมนนท์ 30

การทดสอบ overlap (&&) ของ Minimum Bounding Region (MBR) ทำาให้หลีกเลี่ยงการคำานวณจำานวนมา

กทีไ่ม่จำาเป็นขอบเขตจังหวัด

พืำนที่นำำาท่วม