ฐานข้อมูล ( database)paijit.lpru.ac.th/cgi-bin/s5672301/datacentric3.pdf · 2019....
Post on 03-Sep-2020
0 Views
Preview:
TRANSCRIPT
Data Centric Programming 3 / LPRU 1
ฐานขอมล (Database) ?
คอ แหลงจดเกบและรวบรวมกลมขอมลทเกยวของกน สมพนธ
กน เปนสวนของขอมลทอยในองคกรในระบบเดยวกน
คณสมบตของฐานขอมล
แหลงเกบขอมลขนาดใหญ โดยปกตมกจะมกลมเดยว
มกก าหนดเพยงคร งเดยวเทานน
ขอมลจะถกรวบรวมไวดวยกน เพอใหเกดความซ าซอนนอยทสด
ขอมลทรพยากรสามารถรวมกนไดหลายหนวยงานภายใตองคกร
เดยวกน ไมเปนของหนวยงานใดหนวยงานหนง
Data Centric Programming 3 / LPRU 2
ฐานขอมล บรรจ?
ฐานขอมลของ
มหาวทยาลยราชภฏล าปาง
กลมขอมล
นกศกษา
กลมขอมล
อาจารย/จนท.
กลมขอมล
หลกสตรการเรยน กลมขอมล
อาคาร/สถานท
กลมขอมล
ตารางสอน/เรยน
กลมขอมล
การลงทะเบยน
กลมขอมล
งบประมาณ
อน ๆ
Data Centric Programming 3 / LPRU 3
ตารางขอมล
นกศกษา
แฟมขอมล/ตารางขอมล (Table) ?
คอ กลมขอมลทเกบรายการทเกยวของกน อางองเรองเดยวกนน ารวมกน อาทเชน ตารางขอมลนกศกษา, ตารางขอมลอาจารย/เจาหนาท,
ตารางขอมลอาคาร/สถานท, ตารางขอมลการจดตารางการสอน, ฯลฯ
ขนอยกบการออกแบบของผออกแบบระบบ
แฟมขอมล/ตารางขอมล บรรจ ?
นศ. คนท 1
นศ. คนท 2 นศ. คนท 3 นศ. คนท 4
…..
นศ. คนท N
Data Centric Programming 3 / LPRU 4
ระเบยนของ
นกศกษา
ระเบยนขอมล (Record/ Tuple/ Row) ?
คอ ชดขอมลทเกบรายละเอยดทเกยวของกนของสงเดยว กน อาทเชน นกศกษา 10 คนในตาราง คอ เกบชดนกศกษา 10 ระเบยน
,อาจารย 200 คนในตารางคอเกบชดขอมลอาจารยไว 200 ระเบยน
เปนตน
ระเบยน บรรจ ?
รหส นศ.
ชอนศ. สกลนศ. เพศ
ว/ด/ป
เกด
อนๆ
Data Centric Programming 3 / LPRU 5
เขตขอมล (Field/ Attribute/ Column) ?
คอ รายละเอยดทเกดจากกลมอกขระทรวมกนแลวกอใหเกดความ หมายเชน ชอคน สตว สงของ อาย ทอย ฯลฯ
รหสนกศกษา 47231440138
ชอนกศกษา กาญจนา
นามสกลนกศกษา น าใจงาม
เพศ หญง
วนเดอนปเกด 21 มถนายน 2529
ทอยตดตอได 119 ถ.ล าปาง- แมทะ ...
อน ๆ
หมายเหต : แตละเขตขอมลเมอมการจดเกบตองระบชนดตวแปรใหชดเจน
Data Centric Programming 3 / LPRU 6
ฐานขอมล
ตารางขอมล 1 ตารางขอมล 2 ตารางขอมล 3 ตารางขอมล N....
เขตขอมล 1
เขตขอมล 2
เขตขอมล M
....ระเบยน 1
ระเบยน 2
ระเบยน M
....
เขตขอมล 4
ระเบยน 1
ระเบยน 2
ระเบยน M
....
ระเบยน 1
ระเบยน 2
ระเบยน M
....เขตขอมล 3
โครงสรางในการจดเกบขอมล
Data Centric Programming 3 / LPRU 7
ฐานขอมลทเราตองการควรม ?
แฟมขอมล/ตารางขอมลอะไรบาง ?
มความสมพนธระหวางกนอยางไร ?
ระเบยน ควรจดเกบรายละเอยดอะไร ?
วธการออกแบบฐานขอมล
• ประสบการณ
• เทคนควธการ Normalization
รไดอยางไรวา
Data Centric Programming 3 / LPRU 8
เทคนคการออกแบบฐานขอมลดวย Normalization
เปนเทคนคในการสรางกลมตารางขอมล ทมคณสมบตตามความตองการ
และถกตองเหมาะสม เพอใหสามารถปฏบตงานขององคกรไดอยาง
สมบรณ แตคงคณสมบตของฐานขอมลเชงสมพนธ (Relational
Database)ไวอยางครบถวน
วตถประสงคของ Normalization เพอขจดปญหาทเกดจาก
Data Redundancy : ความซ าซอนของขอมล
Data Inconsistency : ความไมสอดคลองของขอมล
Data Anomalies : ความผดปกตของขอมล
พฒนาโดย E.F.Codd. (1972)
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)
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
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
Data Centric Programming 3 / LPRU 12
สงทตองค านงถง
Key ตางๆ (คยหลกหรอเขตขอมลหลก และคยอางอง)
Functional Dependency (FD) หลกการขนตอกน
Repeating Group กลมขอมลทเกบมากกวา 1 รายการ
ตอชดขอมล
เทคนค Normalization
Data Centric Programming 3 / LPRU 13
Key Field
คยหลก (Primary key)
มขนาดเลกกะทดรด จ างาย
มจ านวนเขตขอมลรวมไมมากนก
เปนเอกเทศ (Unique) ท งปจจบนและอนาคต
คอ เขตขอมล/กลมเขตขอมลทถกเลอกเปนตวก าหนด /อางองระเบยนในตารางขอมลของตนได โดยมกม
คณสมบตดงน
เทคนค Normalization
Data Centric Programming 3 / LPRU 14
คยคแขง (Candidate key)
คอ เขตขอมล/กลมเขตขอมลทสามารถอางองขอมลในระเบยนของตารางขอมลหนง ๆ ไดเชนกน แตไมถก
เลอก
คยอางอง (Foreign key)
คอ เขตขอมล/กลมเขตขอมลทถกเลอกเปนตวอางองระเบยนในตารางขอมลอน ๆ
Key Field
เทคนค Normalization
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
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
คยหลก ควรเปนอะไรไดบาง
- เขตขอมลรหสนกศกษา
- เขตขอมลเลขทบตรประชาชน
- เขตขอมลชอ+นามสกล
รหสนกศกษา ชอนศ. สกล เพศ วนเดอนปเกด ... เลขทบตรปชช.
ควรเลอก
รหสนกศกษา เพราะ ?
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
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
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
Data Centric Programming 3 / LPRU 20
Repeating Group ?
“ หากพจารณาระเบยนหนง ๆ พบกลมเขตขอมลทปรากฏอยในระเบยน
เดยวกนมากกวา 1 คา ”
ตวอยางเชน
ใบเสรจรบเงนของสมศร ในการซอสนคา 5 รายการ
Repeating Group คอ สนคา 5 รายการในใบเสรจ
ประวตการท างานของสมชาย ทมประสบการณท างานถง 3 บรษท
Repeating Group คอ ประสบการณท างาน 3 บรษท
ประวตการศกษาของสมหญง จบปรญญาตร 3 ใบ
หลกสตรการอบรม โดยมผเขารบการอบรม 30 คน
นกศกษาเอกวทยาการคอมพวเตอร มจ านวน 45 คน
เทคนค Normalization
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
- ฯลฯ
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 ชอพนกงาน นส.แดง นามสกล พลอยสก
สหกรณรานคา มหาวทยาลยราชภฏล าปาง
Data Centric Programming 3 / LPRU 23
Un-Normalized Form (UNF)
- สรางตารางขอมลโดยการน ารายละเอยดจากแบบฟอรมทตองการออก
แบบมาใสเปนคอลมนของตาราง (ใหยกเวนรายละเอยดทเกดจากการ
ค านวณ)
- เตมขอมลลงในตารางเพอเปนตวอยางในการออกแบบ
- หากชองขอมลใดวางใหเตมขอมลเดมลงไปใหเตม
สรางตารางขอมล
ข นตอน Normalization
Data Centric Programming 3 / LPRU 24
First Normal Form (1NF)
คอ ตารางขอมลททกแถวและคอลมนในระเบยนเดยวกนจะตองมเพยง
คาเดยวเทานน (ไมม Repeating Group)
การ process จาก UNF -> 1 NF
พจารณาวาพบ Repeating group ในตารางระดบ UNF
หรอไม
ถาพบ ใหเคลอนยาย กลมเขตขอมลทเปน Repeating group
ดงกลาว แยกไปยงตารางใหม
ส าหรบตารางเดม ใหก าหนดเขตขอมลทจะใชเปน คยหลกของ
ตาราง จากนนให คดลอก คยหลกดงกลาวไปในตาราง ใหม
จากนน ใหก าหนดเขตขอมลทจะใชเปน คยหลก (key) ส าหรบ
ตารางใหมตอไป พรอมกบก าหนดชอตารางใหม
ตอ ข นตอน Normalization
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 ตอ
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 ตอ
Data Centric Programming 3 / LPRU
สรปข นตอนการออกแบบฐานขอมล
• ศกษาขอมลจากระบบงานเดม โดยรวมรวมแบบฟอรม วธการปฏบต
ความเคลอนไหวของขอมล ความคดเหน แนวทางทเปนไป ความ
บกพรองและความตองการในอนาคตของบคลากรต งแตระดบ
ปฏบตการ จนกระท ง ระดบผบรหาร
• น าแบบฟอรม ซงอาจมลกษณะเปนขอมลอนพต (Input) และ
เอาตพต (Output) มาออกแบบทละฟอรมจนครบถวน ดวยเทคนค
Normalization
27
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
Data Centric Programming 3 / LPRU 29
ขอควรค านงในการออกแบบ
ประหยดแลวไมคม : การออกแบบตารางโดยใหความส าคญกบความ
ซ าซอนมากเกนไปอาจไมใชเรองด เพราะอาจเสยประสทธภาพไมคม
กบเสยเนอท ซงปจจบนราคาฮารดดสกถกลงมาก
แยกยอยแลวยดยาด: การออกแบบทแยกเปนตารางเลกตารางนอย
จะท าใหควรยดยาวซ าซอนมาก ซงไมมประสทธภาพ ท าใหโปรแกรม
ประยกตไมมประสทธภาพตามไปดวย
ซอยมากจนซบซอน : การออกแบบทท าใหการเขาถงซบซอนเกนไป
โดยมองตารางและความสมพนธอยในโครงสรางเชงคณตศาสตร
มากกวาโครงสรางธรรมชาต ซงเปนปญหากบผใชระดบลาง
Data Centric Programming 3 / LPRU 30
ฐานขอมลทมประสทธภาพ
การออกแบบฐานขอมลใหบรรลเปาหมายท าใหเกดขอดตางๆ หลาย
อยางดงน
ท างานไดด : ฐานขอมลท างานตอบสนองความตองการไดทกหวขอ
กนทรพยากรนอย ผใชทกคนสามารถใชงานไดอยางไมตดขด
ควรงาย : เขยนควรแลวไมเกดปญหาตางๆ เชน บรณภาพของขอมล,
ความสมพนธระหวางตารางผด, ออกแบบตารางไมได ฯลฯ
สรา งแอปพล เ คช น ง า ย : การออกแบบฐานขอม ล ใหสรา ง
แอปพลเคช นไดงายเปนสงทด โดยเฉพาะอยางยงในงาน OLTP
เพราะผใชตองใชงานฐานขอมลทางออมผานแอปพลเคช นโปรแกรม
แตฐานขอมลในงานคลงขอมลอาจไมจ าเปน เพราะผใชมกควร
ฐานขอมลเองโดยตรงไมไดท างานผานแอปพลเคช น
มความยดหยน : การออกแบบฐานขอมลใหมความยดหยนจะชวย
บรรเทาผลกระทบหากมการเปลยนแปลงโครงสรางฐานขอมล
Data Centric Programming 3 / LPRU 31
แบบฟอรม
ใบลงทะเบยนนกศกษา
ทดลองออกแบบ
top related