ฐานข้อมูล ( database)paijit.lpru.ac.th/cgi-bin/s5672301/datacentric3.pdf · 2019....

31
Data Centric Programming 3 / LPRU 1 ฐานข้อมูล (Database) ? คือ แหล่งจัดเก็บและรวบรวมกลุ่มข้อมูลที ่เกี่ยวข้องกัน สัมพันธ์ กัน เป็นส่วนของข้อมูลที ่อยู ่ในองค์กรในระบบเดียวกัน คุณสมบัติของฐานข้อมูล แหล่งเก็บข้อมูลขนาดใหญ่ โดยปกติมักจะมีกลุ่มเดียว มักกาหนดเพียงครั ้งเดียวเท่านั ้น ข้อมูลจะถูกรวบรวมไว้ด้วยกัน เพื่อให้เกิดความซ้าซ้อนน้อยที่สุด ข้อมูลทรัพยากรสามารถร่วมกันได้หลายหน่วยงานภายใต้องค์กร เดียวกัน ไม่เป็นของหน่วยงานใดหน่วยงานหนึ่ง

Upload: others

Post on 03-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 1

ฐานขอมล (Database) ?

คอ แหลงจดเกบและรวบรวมกลมขอมลทเกยวของกน สมพนธ

กน เปนสวนของขอมลทอยในองคกรในระบบเดยวกน

คณสมบตของฐานขอมล

แหลงเกบขอมลขนาดใหญ โดยปกตมกจะมกลมเดยว

มกก าหนดเพยงคร งเดยวเทานน

ขอมลจะถกรวบรวมไวดวยกน เพอใหเกดความซ าซอนนอยทสด

ขอมลทรพยากรสามารถรวมกนไดหลายหนวยงานภายใตองคกร

เดยวกน ไมเปนของหนวยงานใดหนวยงานหนง

Page 2: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 2

ฐานขอมล บรรจ?

ฐานขอมลของ

มหาวทยาลยราชภฏล าปาง

กลมขอมล

นกศกษา

กลมขอมล

อาจารย/จนท.

กลมขอมล

หลกสตรการเรยน กลมขอมล

อาคาร/สถานท

กลมขอมล

ตารางสอน/เรยน

กลมขอมล

การลงทะเบยน

กลมขอมล

งบประมาณ

อน ๆ

Page 3: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 3

ตารางขอมล

นกศกษา

แฟมขอมล/ตารางขอมล (Table) ?

คอ กลมขอมลทเกบรายการทเกยวของกน อางองเรองเดยวกนน ารวมกน อาทเชน ตารางขอมลนกศกษา, ตารางขอมลอาจารย/เจาหนาท,

ตารางขอมลอาคาร/สถานท, ตารางขอมลการจดตารางการสอน, ฯลฯ

ขนอยกบการออกแบบของผออกแบบระบบ

แฟมขอมล/ตารางขอมล บรรจ ?

นศ. คนท 1

นศ. คนท 2 นศ. คนท 3 นศ. คนท 4

…..

นศ. คนท N

Page 4: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 4

ระเบยนของ

นกศกษา

ระเบยนขอมล (Record/ Tuple/ Row) ?

คอ ชดขอมลทเกบรายละเอยดทเกยวของกนของสงเดยว กน อาทเชน นกศกษา 10 คนในตาราง คอ เกบชดนกศกษา 10 ระเบยน

,อาจารย 200 คนในตารางคอเกบชดขอมลอาจารยไว 200 ระเบยน

เปนตน

ระเบยน บรรจ ?

รหส นศ.

ชอนศ. สกลนศ. เพศ

ว/ด/ป

เกด

อนๆ

Page 5: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 5

เขตขอมล (Field/ Attribute/ Column) ?

คอ รายละเอยดทเกดจากกลมอกขระทรวมกนแลวกอใหเกดความ หมายเชน ชอคน สตว สงของ อาย ทอย ฯลฯ

รหสนกศกษา 47231440138

ชอนกศกษา กาญจนา

นามสกลนกศกษา น าใจงาม

เพศ หญง

วนเดอนปเกด 21 มถนายน 2529

ทอยตดตอได 119 ถ.ล าปาง- แมทะ ...

อน ๆ

หมายเหต : แตละเขตขอมลเมอมการจดเกบตองระบชนดตวแปรใหชดเจน

Page 6: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 6

ฐานขอมล

ตารางขอมล 1 ตารางขอมล 2 ตารางขอมล 3 ตารางขอมล N....

เขตขอมล 1

เขตขอมล 2

เขตขอมล M

....ระเบยน 1

ระเบยน 2

ระเบยน M

....

เขตขอมล 4

ระเบยน 1

ระเบยน 2

ระเบยน M

....

ระเบยน 1

ระเบยน 2

ระเบยน M

....เขตขอมล 3

โครงสรางในการจดเกบขอมล

Page 7: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 7

ฐานขอมลทเราตองการควรม ?

แฟมขอมล/ตารางขอมลอะไรบาง ?

มความสมพนธระหวางกนอยางไร ?

ระเบยน ควรจดเกบรายละเอยดอะไร ?

วธการออกแบบฐานขอมล

• ประสบการณ

• เทคนควธการ Normalization

รไดอยางไรวา

Page 8: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 8

เทคนคการออกแบบฐานขอมลดวย Normalization

เปนเทคนคในการสรางกลมตารางขอมล ทมคณสมบตตามความตองการ

และถกตองเหมาะสม เพอใหสามารถปฏบตงานขององคกรไดอยาง

สมบรณ แตคงคณสมบตของฐานขอมลเชงสมพนธ (Relational

Database)ไวอยางครบถวน

วตถประสงคของ Normalization เพอขจดปญหาทเกดจาก

Data Redundancy : ความซ าซอนของขอมล

Data Inconsistency : ความไมสอดคลองของขอมล

Data Anomalies : ความผดปกตของขอมล

พฒนาโดย E.F.Codd. (1972)

Page 9: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 9

เทคนค Normalization

Table Schema:

Staff_Branch (Staff_no, SName, SAddress, Position, Salary, Branch_no,

BAddress, Tel_no)

Staff_no SName ... Branch_no BAddress Tel_no

SL21 แดง สขใจ ... B5 22 ถ.ล าปาง เมอง ล าปาง 01-7188612

SG37 ด า สไมตก ... B3 16 ถ.เพชรเกษม กทม. 01-2246712

SG14 เขยว นารก ... B3

SA9 เหลอง สดใส ... B7 163 ถ.หนาเมอง ขอนแกน 01-4133921

SG5 ฟา จรงจง ... B3

SL41 สม สกด ... B5 22 ถ.ล าปาง เมอง ล าปาง 01-7188612

16 ถ.เพชรเกษม กทม.

16 ถ.เพชรเกษม กทม.

01-2246712

01-2246712

ตวอยางท 1 การเกดความซ าซอนของขอมล (Data Redundant)

Page 10: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 10

Table Schema:

Staff (Staff_no, SName, SAddress, Position, Salary, Branch_no)

Branch (Branch_no, BAddress, Tel_no)

Staff_no ... Branch_no

SL21 ... B5

SG37 ... B3

SG14 ... B3

SA9 ... B7

SG5 ... B3

SL41

SName

แดง สขใจ

ด า สไมตก

เขยว นารก

เหลอง สดใส

ฟา จรงจง

สม สกด ... B5

Branch_no BAddress Tel_no

B5 22 ถ.ล าปาง เมอง ล าปาง 01-7188612

B3 16 ถ.เพชรเกษม กทม. 01-2246712

B7 163 ถ.หนาเมอง ขอนแกน 01-4133921

ตวอยางท 2 การไมเกดความซ าซอนของขอมล (Data Redundant)

เทคนค Normalization

Page 11: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 11

o ปญหาทเกดจาก Data Anomaly แบงได 3 ประเภทคอ

Insertion, Deletion และ Modification Anomaly

o การแกปญหา Data Anomaly มกจะท าไดโดยวธ

decomposition Table ใหเลกลง

o การ Decompose Table ซงจะยงคงรกษา info. ตาง ๆไวได

เหมอนเดมจะตองมคณสมบต 2 อยางคอ

Lossless-join

จะท าใหเราสามารถจะหา instant ใน original Table จากตาราง

ท decompose ได

Dependency preservation

จะท าใหเราสามารถจะบงคบใช constraint บน original Table

โดยเพยงแตใช constraint บนตารางท decompose

เทคนค Normalization

Page 12: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 12

สงทตองค านงถง

Key ตางๆ (คยหลกหรอเขตขอมลหลก และคยอางอง)

Functional Dependency (FD) หลกการขนตอกน

Repeating Group กลมขอมลทเกบมากกวา 1 รายการ

ตอชดขอมล

เทคนค Normalization

Page 13: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 13

Key Field

คยหลก (Primary key)

มขนาดเลกกะทดรด จ างาย

มจ านวนเขตขอมลรวมไมมากนก

เปนเอกเทศ (Unique) ท งปจจบนและอนาคต

คอ เขตขอมล/กลมเขตขอมลทถกเลอกเปนตวก าหนด /อางองระเบยนในตารางขอมลของตนได โดยมกม

คณสมบตดงน

เทคนค Normalization

Page 14: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 14

คยคแขง (Candidate key)

คอ เขตขอมล/กลมเขตขอมลทสามารถอางองขอมลในระเบยนของตารางขอมลหนง ๆ ไดเชนกน แตไมถก

เลอก

คยอางอง (Foreign key)

คอ เขตขอมล/กลมเขตขอมลทถกเลอกเปนตวอางองระเบยนในตารางขอมลอน ๆ

Key Field

เทคนค Normalization

Page 15: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 15

ตวอยาง

เทคนค Normalization

Sno FName LName Address Tel_no position Sex DOB Salary Bno

SL21 ด ำ กลมกลน 19 เมอง ลำปำง 054-875400 ผจดกำร M 10-Oct-45 30000 B5

SG37 แดง สดใส 81 หม 5 อดร 048-125481 ผชวยผจดกำร F 10-Nov-60 8500 B3

SG14 สม น ำใจด 63 บำนดง อดร 048-254840 คณะกรรมกำร M 24-Mar-58 18000 B3

SA9 ขำว มำกเงน 2บำนใหม ขอบแกน 043-548700 ผชวยงำน F 19-Feb-70 9000 B7

SG5 เหลอง ทองค ำ 5 รมเหมอง อดร 048-583145 ผจดกำร F 3-Jun-40 24000 B3

SL41 เขยว ใบไมสด 28บญวำทย ลำปำง 054-770700 ผชวยงำน F 13-Jun-65 9000 B5

Bno Street Area City Pcode Tel_no Fax_no

B5 14 หม 8 อ.เมอง ล ำปำง 52100 054-548100 054-548001

B7 403 ถนนกม 5 อ.เมอง ขอนแกน 25400 043-244157 043-244156

B3 10 ถนนเรยบเมอง อ.เมอง อดร 35100 048-154710 048-154711

B4 97 ถนนทำพระ อ.เมอง รำชบร 70000 032-351448 032-351449

B2 211 ถนนรมนำ อ.เมอง สงขลำ 15780 075-578100 075-578101

Primary key Foreign key

Attribute

BRANCH

STAFF

Candinality

Page 16: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 16

ตารางจดเกบนกศกษา

47212470101 แดง สดใส หญง 26-Jun-29 …. 4-5099-00316094

47212470102 เขยว ชะอม ชาย 01-Jan-30 …. 4-8211-00568401

47212470103 ด า เมฆครม ชาย 30-Aug-29 …. 4-5001-00548002

47211440101 เขยว ใบไม ชาย 05-Oct-29 …. 4-3025-07316096

47211440102 แดง บวใย หญง 20-May-30 …. 4-8077-05218214

47211440103 สม สดใส หญง 26-Jun-30 …. 4-3125-10551587

คยหลก ควรเปนอะไรไดบาง

- เขตขอมลรหสนกศกษา

- เขตขอมลเลขทบตรประชาชน

- เขตขอมลชอ+นามสกล

รหสนกศกษา ชอนศ. สกล เพศ วนเดอนปเกด ... เลขทบตรปชช.

ควรเลอก

รหสนกศกษา เพราะ ?

Page 17: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 17

Functional Dependency (FD) หลกการขนตอกน

FD เปนหลกการส าคญทถกใชในเทคนค Normalization

FD ใชในการอธบายความสมพนธ (relationship) ระหวางเขตขอมล โดยท

- ถาเขตขอมล A, B เปนเขตขอมลของตาราง R. B จะเปน FD ของ A

ถาแตละคาของ A จะระบคาของ B ได ซงสามารถเขยนเปนสมการไดดงน

A -> B

เรยกเขตขอมล A หรอกลมเขตขอมลทอยดานซายของ FD วา Determinant

เรยกเขตขอมล B หรอกลมเขตขอมลทอยดานขวาของ FD วา Dependency

รหสนกศกษา -> ชอ, สกล,เพศ, ว/ด/ปเกด,...

ชอ,สกล -> รหสนศ.,เพศ, ว/ด/ปเกด,...

เลขทบตรปชช. -> รหสนศ.,เพศ, ว/ด/ปเกด,...

เทคนค Normalization

Page 18: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 18

ประเภท ของ Functional Dependency (FD)

Full Functional Dependency (Primary Dependency)

คอ การขนตอกนแบบสมบรณ ซงหมายถง ทก non-key attribute

ขนอยกบ key ของตน

Partially Functional Dependency

คอ การขนตอกนแบบ non-key attribute เกดขนตอ บางสวนของ

key (มกเกดในกรณท key ม 2 attribute ขนไป)

Transitive Functional Dependency คอ การขนตอกนแบบ non-key attribute ไมขนอยกบ key ของ

ตนอยางเดยว แตสามารถขนอยกบตวอนทไมใช key ได

เทคนค Normalization

Page 19: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 19

ประเภท ของ Functional Dependency (FD) ตอ.

Multi-valued Functional Dependency

คอ การขนตอกนเชงกลม โดยเกดขนภายใน key attribute ทม

จ านวนมากกวา 3 ขนไป โดยหากก าหนด A,B,C เปน key

attribute ของตาราง R แลวพบวา A -> B ได

Candidate Dependency

คอ การขนตอกนโดยพจารณาของตารางมกม candidate key

มากกวา 1 เสมอ ดงนน หากก าหนด candidate key หนง ๆ

แลว ทก attribute ทเหลอในตารางตองขนกบ candidate key

นน ๆ

เทคนค Normalization

Page 20: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 20

Repeating Group ?

“ หากพจารณาระเบยนหนง ๆ พบกลมเขตขอมลทปรากฏอยในระเบยน

เดยวกนมากกวา 1 คา ”

ตวอยางเชน

ใบเสรจรบเงนของสมศร ในการซอสนคา 5 รายการ

Repeating Group คอ สนคา 5 รายการในใบเสรจ

ประวตการท างานของสมชาย ทมประสบการณท างานถง 3 บรษท

Repeating Group คอ ประสบการณท างาน 3 บรษท

ประวตการศกษาของสมหญง จบปรญญาตร 3 ใบ

หลกสตรการอบรม โดยมผเขารบการอบรม 30 คน

นกศกษาเอกวทยาการคอมพวเตอร มจ านวน 45 คน

เทคนค Normalization

Page 21: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 21

ข นตอน Normalization

ระดบเรมตน : Un-normalization From (UNF)

ระดบท 1: First Normal Form (1NF)

ระดบท 2: Second Normal Form (2NF)

ระดบท 3: Third Normal Form (3NF)

ระดบท 4-5: พฒนาเพมเตม

- ตารางขอมลทยงไมผาน

การจดรปแบบ

- ตารางขอมลทไมม

Repeating Group

- ตารางขอมลทไมมการ

ขนตอกนแบบ Partial

FD

- ตารางขอมลทไมมการ

ขนตอกนแบบ

Transitive FD

- ฯลฯ

Page 22: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 22

ตวอยางแบบฟอรม

ใบเสรจเลขท 0001/47

วนท 9 มนาคม พ.ศ.2547

รหสลกคา C01 ชอลกคา นส.รงฟา นามสกล เพชรเทยนชย ทอย 488 หม 5 บางบวทอง กรงเทพฯ 10260 เบอรโทรตดตอ 01-0010011

ล าดบ รหส สนคา

ชอสนคา รหส

ประเภท ประเภท

ราคาตอ หนวย

จ านวน ซอ

รวมเงน

1 S01 มามาหมสบกลองใหญ T1 ส าเรจรป 105.00 2 210.00

2 S02 ปลากระปองอะยม T1 ส าเรจรป 36.00 1 36.00

3 S09 น าปลาตราคนแบกกง T 2 เครองปรง 20.00 2 40.00

4 S04 คนอรรสหม T2 เครองปรง 15.00 2 30.00

5 S11 สปายไวนคเลอร 4 ขวด T3 เครองดม 85.00 1 85.00

372.93

รวมเงนสทธ (ตวหนงสอ) รวมเงนท งสน

VAT 7% 28.07

( สรอยหนงบาทถวน ) เงนสทธ 401.00

รหสพนกงาน G01 ชอพนกงาน นส.แดง นามสกล พลอยสก

สหกรณรานคา มหาวทยาลยราชภฏล าปาง

Page 23: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 23

Un-Normalized Form (UNF)

- สรางตารางขอมลโดยการน ารายละเอยดจากแบบฟอรมทตองการออก

แบบมาใสเปนคอลมนของตาราง (ใหยกเวนรายละเอยดทเกดจากการ

ค านวณ)

- เตมขอมลลงในตารางเพอเปนตวอยางในการออกแบบ

- หากชองขอมลใดวางใหเตมขอมลเดมลงไปใหเตม

สรางตารางขอมล

ข นตอน Normalization

Page 24: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 24

First Normal Form (1NF)

คอ ตารางขอมลททกแถวและคอลมนในระเบยนเดยวกนจะตองมเพยง

คาเดยวเทานน (ไมม Repeating Group)

การ process จาก UNF -> 1 NF

พจารณาวาพบ Repeating group ในตารางระดบ UNF

หรอไม

ถาพบ ใหเคลอนยาย กลมเขตขอมลทเปน Repeating group

ดงกลาว แยกไปยงตารางใหม

ส าหรบตารางเดม ใหก าหนดเขตขอมลทจะใชเปน คยหลกของ

ตาราง จากนนให คดลอก คยหลกดงกลาวไปในตาราง ใหม

จากนน ใหก าหนดเขตขอมลทจะใชเปน คยหลก (key) ส าหรบ

ตารางใหมตอไป พรอมกบก าหนดชอตารางใหม

ตอ ข นตอน Normalization

Page 25: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 25

Second Normal Form (2NF)

2 NF คอ ตารางขอมลจะเปน 2NF ได ถาตารางขอมลดงกลาวเปน

1NF และทกเขตขอมลปกตจะตองขนตอกนแบบ Full FD

กบคยหลกของตนเทานน ไมขนอยกบบางสวนของคย

(Partial FD)

การ process จาก 1NF -> 2NF

พจารณาเขตขอมลปกต วามการขนตอกนแบบ Partial FD ?

ถาพบใหเคลอนยาย กลมเขตขอมลทเกด Partial FD ไปไวใน

ตารางใหม และ คดลอก ของ determinant ของตารางเดมไป

ดวยโดยต ง Determinant ดงกลาวเปนเขตขอมลหลก

(key)ในตารางใหม

จากนน ก าหนดชอตารางใหม

ข นตอน Normalization ตอ

Page 26: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 26

Third Normal Form (3NF)

พจารณา Transitive FD : ถา A,B,C ซงถา A -> B และ B -> C

แลว C จะเปน transitive FD บน A และ B

(หมายถงเขตขอมลทขนอยกบเขตขอมลอนทไมใชคยหลกของตน) 3 NF คอ ตารางขอมลทเปน 2NF และตองไมเกด Transitive FD

การ process จาก 2NF -> 3NF

พจารณาการเกด Transitive FD จากทกเขตขอมลของตาราง

ถาพบให เคลอนยาย กลมเขตขอมลทเกด Transitive FD ไป

ไวในตารางใหม และ คดลอก ของ determinant จากตาราง

เดมไปดวยโดยต งเปน คยหลก ของตารางใหมนน ๆ

จากนนใหก าหนดชอและ key ของตารางใหม

ข นตอน Normalization ตอ

Page 27: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU

สรปข นตอนการออกแบบฐานขอมล

• ศกษาขอมลจากระบบงานเดม โดยรวมรวมแบบฟอรม วธการปฏบต

ความเคลอนไหวของขอมล ความคดเหน แนวทางทเปนไป ความ

บกพรองและความตองการในอนาคตของบคลากรต งแตระดบ

ปฏบตการ จนกระท ง ระดบผบรหาร

• น าแบบฟอรม ซงอาจมลกษณะเปนขอมลอนพต (Input) และ

เอาตพต (Output) มาออกแบบทละฟอรมจนครบถวน ดวยเทคนค

Normalization

27

Page 28: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU

สรปข นตอนการออกแบบฐานขอมล

• ตารางผลลพธทไดจากการออกแบบทกตารางมาพจารณาเพอหากลม

ตารางทมการจดเกบเหมอนกน น ามารวมกนได โดยเกบสารสนเทศ

ใหครอบคลมเชน

o แบบฟอรม 1 ไดตาราง A,B,C

o แบบฟอรม 2 ไดตาราง B,D,F

o แบบฟอรม 3 ไดตาราง A,C,E

สรปตารางผลลพธทไดจากการออกแบบจาก 3 ฟอรม มจ านวน 6

ตารางคอ A,B,C,D,E,F

• พจารณาความส มพ นธของแตละตาราง เพอน ามาเขยนเปน

แบบจ าลอง ส าหรบวเคราะหกลมขอมลโดยรวมขององคกร วาถกตอง

ครบถวน และตรงตามความตองการหรอไม เพอสามารถน ามาแกไข

ปรบปรงโครงสรางตอไป

28

Page 29: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 29

ขอควรค านงในการออกแบบ

ประหยดแลวไมคม : การออกแบบตารางโดยใหความส าคญกบความ

ซ าซอนมากเกนไปอาจไมใชเรองด เพราะอาจเสยประสทธภาพไมคม

กบเสยเนอท ซงปจจบนราคาฮารดดสกถกลงมาก

แยกยอยแลวยดยาด: การออกแบบทแยกเปนตารางเลกตารางนอย

จะท าใหควรยดยาวซ าซอนมาก ซงไมมประสทธภาพ ท าใหโปรแกรม

ประยกตไมมประสทธภาพตามไปดวย

ซอยมากจนซบซอน : การออกแบบทท าใหการเขาถงซบซอนเกนไป

โดยมองตารางและความสมพนธอยในโครงสรางเชงคณตศาสตร

มากกวาโครงสรางธรรมชาต ซงเปนปญหากบผใชระดบลาง

Page 30: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 30

ฐานขอมลทมประสทธภาพ

การออกแบบฐานขอมลใหบรรลเปาหมายท าใหเกดขอดตางๆ หลาย

อยางดงน

ท างานไดด : ฐานขอมลท างานตอบสนองความตองการไดทกหวขอ

กนทรพยากรนอย ผใชทกคนสามารถใชงานไดอยางไมตดขด

ควรงาย : เขยนควรแลวไมเกดปญหาตางๆ เชน บรณภาพของขอมล,

ความสมพนธระหวางตารางผด, ออกแบบตารางไมได ฯลฯ

สรา งแอปพล เ คช น ง า ย : การออกแบบฐานขอม ล ใหสรา ง

แอปพลเคช นไดงายเปนสงทด โดยเฉพาะอยางยงในงาน OLTP

เพราะผใชตองใชงานฐานขอมลทางออมผานแอปพลเคช นโปรแกรม

แตฐานขอมลในงานคลงขอมลอาจไมจ าเปน เพราะผใชมกควร

ฐานขอมลเองโดยตรงไมไดท างานผานแอปพลเคช น

มความยดหยน : การออกแบบฐานขอมลใหมความยดหยนจะชวย

บรรเทาผลกระทบหากมการเปลยนแปลงโครงสรางฐานขอมล

Page 31: ฐานข้อมูล ( Database)paijit.lpru.ac.th/cgi-bin/S5672301/DataCentric3.pdf · 2019. 11. 10. · Data Centric Programming 3 / 8 LPRU เทคนิคการออกแบบฐานข้อมูลด้วย

Data Centric Programming 3 / LPRU 31

แบบฟอรม

ใบลงทะเบยนนกศกษา

ทดลองออกแบบ