Upload
sushike
View
251
Download
0
Embed Size (px)
Citation preview
OOAD 2/2550 ดร.สขสถต มสถตย1
หนวยท 10: การออกแบบการจดการขอมล (Data Management Layer Design)
ดร.สขสถต มสถตยการวเคราะหและออกแบบเชงวตถ2/2550
OOAD 2/2550 ดร.สขสถต มสถตย2
วตถประสงค
เพอใหนกศกษาเขาใจกระบวนการออกแบบการจดการขอมลแบบถาวรในระบบเชงวตถได
เพอใหนกศกษาเขาใจรปแบบการจดเกบออบเจคถาวร
เพอใหนกศกษาสามารถแปลงออบเจคใหเหมาะกบรปแบบการจดเกบ
เพอใหนกศกษาสามารถออกแบบเพอปรบปรงประสทธภาพแหลงจดเกบขอมล
เพอใหนกศกษาสามารถออกแบบคลาสสาหรบเขาถงและจดการขอมล
OOAD 2/2550 ดร.สขสถต มสถตย3
การออกแบบการจดการขอมล
1. เลอกรปแบบในการเกบออบเจคแบบถาวร2. แปลงออบเจคใหอยในรปแบบการจดเกบทเลอก3. เพมประสทธภาพการจดเกบออบเจคแบบถาวร4. ออกแบบคลาสสาหรบเขาถงและจดการขอมล
OOAD 2/2550 ดร.สขสถต มสถตย4
การเลอกรปแบบในการเกบออบเจคแบบถาวร
OOAD 2/2550 ดร.สขสถต มสถตย5
รปแบบในการเกบออบเจคถาวร
แฟมขอมล (Files) – แบบลาดบ (Sequential access file)– แบบสม (Random access file)
ฐานขอมล (Databases)– แบบรเลชนนอล (Relational databases)– แบบออบเจครเลชนนอล (Object-relational
databases)– เชงวตถ (Object-oriented databases)
OOAD 2/2550 ดร.สขสถต มสถตย6
แฟมขอมลการการสงซอของลกคา
OOAD 2/2550 ดร.สขสถต มสถตย7
แฟมขอมลแบบลาดบ (Sequential access file)
ใชการดาเนนการแบบลาดบ (อาน เขยน คนหา) ไดใชไดดกบการทางานแบบลาดบ เชน การสรางรายงานการทางานแบบสม เชน การคนหา หรอปรบปรง มประสทธภาพตา เพราะโดยเฉลยในการหาออบเจคทตองการ ตองเขาถง 50% ของเรคอรดทงหมด มสองแบบ– เรยงลาดบ– ไมเรยงลาดบ
OOAD 2/2550 ดร.สขสถต มสถตย8
แฟมขอมลแบบลาดบสม (Random Access Files)
ใชการดาเนนการแบบสมหรอแบบตรง (อาน เขยน คนหา) ไดมประสทธภาพสงในการทางานแบบสม เชน การคนหา หรอแกไขออบเจคตวใดตวหนงโดยเฉพาะทางานแบบลาดบ เชน การสรางรายงาน มประสทธภาพนอย
OOAD 2/2550 ดร.สขสถต มสถตย9
ชนดแฟมขอมลในแอพพลเคชน (Application File Types)
แฟมขอมลหลก (Master Files)แฟมขอมลอางอง (Look-up files)แฟมขอมลทรานแซกชน (Transaction files)แฟมขอมลการแกไข (Audit file)แฟมขอมลเกา (History file or archive file)แฟมขอมลดชน (Index file)แฟมขอมลชวคราว (Temporary file or work file)แฟมขอมลสารอง (Backup file)แฟมขอมลพารามเตอร (Parameter file)
OOAD 2/2550 ดร.สขสถต มสถตย10
ฐานขอมลแบบรเลชนนอล (Relational databases)
ขอมลเกบในรปกลมตารางตารางประกอบดวยแถวแตละแถว แบงเปนคอลมนใชในการเกบขอมลชนดพนฐานแตละแถวมไพรมารคย (Primary key)ตารางทเกยวพนกนเชอมโยงผานฟอเรนคย (Foreign key)ฟอเรนคย เกบไพรมารคยของเรคอรดทเกยวของซงอยในอกตาราง
OOAD 2/2550 ดร.สขสถต มสถตย11
ฐานขอมลการสงซอของลกคา
OOAD 2/2550 ดร.สขสถต มสถตย12
ระบบจดการฐานขอมลแบบรเลชนนอล (Relational Database Management System)
RDBMS = ซอฟตแวรสาหรบสรางและจดการฐานขอมลแบบรเลชนนอลมความสามารถในการรกษาความถกตองในการอางอง (Referential Integrity) และอนๆใชภาษา Structured Query Language (SQL) เปนภาษามาตรฐานในการเขาถงขอมลในตาราง
OOAD 2/2550 ดร.สขสถต มสถตย13
ฐานขอมลแบบออบเจครเลชนนอล (Object-relational databases)
พฒนามาจากฐานขอมลแบบรเลชนนอลขอมลเกบในรปกลมตาราง แตคอลมนสามารถเกบออบเจคไดโดยใชชนดขอมลกาหนดโดยผใช (user defined types)ใชระบบจดการฐานขอมลแบบออบเจครเลชนนอล (Object-Relational Database Management System, ORDBMS) – ใชภาษา SQL ทขยายใหจดการชนดขอมลกาหนดโดยผใชในตารางได
– ไมรองรบการสบทอดคณสมบต
OOAD 2/2550 ดร.สขสถต มสถตย14
ฐานขอมลเชงวตถ (Object-Oriented Databases)
เกบออบเจคโดยตรงเอกซเทนต (Extent) = กลมออบเจคของคลาสหนง– แตละออบเจคม object ID ซงไมซากน
ใชระบบจดการฐานขอมลเชงวตถ (Object-OrientedDatabase Management System, OODBMS)– การรกษาความถกตองในการอางอง (Referential Integrity) สาคญ
– รองรบการสบทอดคณสมบต
OOAD 2/2550 ดร.สขสถต มสถตย15
การเลอกรปแบบสาหรบจดเกบออบเจค
พจารณาจดเดนจดดอยชนดขอมลทตองจดเกบประเภทของระบบทสรางรปแบบทใชในปจจบนความตองการในอนาคตเงอนไขอนๆ
OOAD 2/2550 ดร.สขสถต มสถตย16
ขอดและขอจากดของแฟมขอมล
ขอด– รองรบโดยภาษาโปรแกรมโดยตรง– เหมาะกบการจดเกบชวคราว หรอระยะสน– ออกแบบเพอใชงานเฉพาะดานไดดขอจากด– การจดการทกอยางตองทาผานภาษาโปรแกรม– การควบคมการเขาถงขนกบระบบปฏบตการ– มกมขอมลซาซอน ทาใหเกดขอผดพลาดในการปรบปรงขอมล
OOAD 2/2550 ดร.สขสถต มสถตย17
ขอดของระบบจดการฐานขอมล
รองรบการใชขอมลรวมกนระหวางแอพพลเคชนสามารถจดการขอมลแบบมโครงสรางปรมาณมากไดรองรบการคนหาขอมลแบบซบซอนสาหรบขอมลแบบมโครงสรางสนบสนนการสรางรายงานแบบยากจากขอมลทเกบสามารถจดการทรานแซกชนได
OOAD 2/2550 ดร.สขสถต มสถตย18
ขอดและขอจากดของระบบจดการฐานขอมลแบบรเลชนนอล
ขอด– เทคโนโลยเชงพานชยทไดรบการยอมรบแลว– สามารถรองรบความตองการขอมลทหลากหลาย
ขอจากด – ไมรองรบแนวคดเชงวตถ ทาใหความขดแยงดานชนดขอมลกบภาษาโปรแกรม และปญหาในการแปลงรปแบบระหวางออบเจคและตาราง
OOAD 2/2550 ดร.สขสถต มสถตย19
ขอดและขอจากดของระบบจดการฐานขอมลแบบออบเจครเลชนนอล
ขอด– รบขอดสบทอดจาก RDBMS– รองรบชนดขอมลทซบซอนขอจากด – การรองรบแนวคดเชงวตถมจากด ขนอยกบผผลต
OOAD 2/2550 ดร.สขสถต มสถตย20
ขอดและขอจากดของระบบจดการฐานขอมลเชงวตถ
ขอด– รองรบชนดขอมลทซบซอน – รองรบแนวคดเชงวตถโดยตรง
• ขอจากด – ยงไมคงท– ขาดบคลากรทเชยวชาญ และตองเรยนรมาก
OOAD 2/2550 ดร.สขสถต มสถตย21
แปลงออบเจคใหอยในรปแบบการจดเกบทเลอก
OOAD 2/2550 ดร.สขสถต มสถตย22
แปลงออบเจคเพอเกบใน OODBMS
เทยบออบเจคเปนออบเจคในตารางโดยตรงโอเปอเรชนอมพลเมนตโดยภาษาโปรแกรม
OOAD 2/2550 ดร.สขสถต มสถตย23
แปลงออบเจคเพอเกบใน ORDBMS
กฎ 1: แปลงเอนทตคอนกรต คลาส เปนตารางกฎ 2: แปลงแอททรบวทเกบคาเดยวเปนคอลมนในตารางกฎ 3: แปลงโอเปอเรชนเปน stored procedures หรอ โปรแกรมโมดลกฎ 4: แปลง aggregation และ association แบบ one-to-one เปนคอลมนทเกบ Object ID (หรอ PK) ของออบเจคในตารางทเกยวของ ทาทงสองดานกฎ 5: แปลงแอททรบวทเกบหลายคา เปนคอลมนบรรจคาเปนชดกฎ 6: แปลงกลมแอททรบวซาเปนตารางใหม และสราง one-to-many association จากตารางเดมไปตารางใหม
OOAD 2/2550 ดร.สขสถต มสถตย24
แปลงออบเจคเพอเกบใน ORDBMS
กฎ 7: แปลง aggregation และ association แบบ many-to-many เปนคอลมนทเกบชดของ Object ID (หรอ PK) ของออบเจคในตารางทเกยวของ ทาทงสองดานกฎ 8: แปลง aggregation และ association แบบผสม (one-to-many หรอmany-to-one) ดาน 0..1, 1..1 เพมคอลมนเกบชดของ Object ID (หรอ PK) ดาน 0..*, 1..* เพมคอลมนเกบ Object ID (หรอ PK)กฎ 9: generalization/inheritance relationship– a : เพมคอลมนเกบ Object ID (หรอ PK) ในตารางซปเปอรคลาส
(0..1, 1..1) และซบคลาส (1..1)– b : ยบ inheritance เอาแอททรบวของซปเปอรคลาสมาใสไวในซบคลาส แลวตดซปเปอรคลาสออก
OOAD 2/2550 ดร.สขสถต มสถตย25
ตวอยาง
OOAD 2/2550 ดร.สขสถต มสถตย26
แปลงออบเจคเพอเกบใน RDBMS
กฎ 1: แปลงเอนทตคอนกรต คลาส เปนตารางกฎ 2: แปลงแอททรบวทเกบคาเดยวเปนคอลมนในตารางกฎ 3: แปลงโอเปอเรชนเปน stored procedures หรอ โปรแกรมโมดลกฎ 4: กาหนด PK สาหรบแตละออบเจคกฎ 5: แปลง aggregation และ association แบบ one-to-one เปนคอลมนทเกบ PK ของตารางทเกยวของ (ใช FK) ทาทงสองดานกฎ 6: แปลงแอททรบวทเกบหลายคา และกลมแอททรบวซาเปนตารางใหม และสราง association แบบ one-to-many จากตารางเดมไปตารางใหม
OOAD 2/2550 ดร.สขสถต มสถตย27
แปลงออบเจคเพอเกบใน RDBMS
กฎ 7: แปลง aggregation และ association แบบ many-to-many เปนตารางใหมทเชอมสองตารางเดมเขาดวยกน ตารางใหม โดยใชคอลมนบรรจ PK จากสองตารางเดมกฎ 8: แปลง aggregation และ association แบบผสม (one-to-many หรอmany-to-one) เอา PK จากดาน 0..1, 1..1 ไปใสในคอลมนใหมในตารางของดาน 0..*, 1..* กฎ 9: สรางตารางสาหรบคอลเลคชนคลาส มสองคอลมน คอลมนสาหรบเกบ identifier ของออบเจคทบรรจคอลเลคชนและสาหรบออบเจคในคอลเลคชนกฎ 10: generalization/inheritance relationship– a : ให PK ของออบเจคในตารางซปเปอรคลาส (0..1, 1..1) และซบคลาส (1..1) ตรงกน
– b : ยบ inheritance เอาแอททรบวของซปเปอรคลาสมาใสไวในซบคลาส แลวตดซปเปอรคลาสออก
OOAD 2/2550 ดร.สขสถต มสถตย28
การแกปญหา inheritance
2 วธ1. แอททรบวทถายทอดมา คดลอกไวในทกตารางของคลาสลกหลาน ไมมตารางสาหรบ abstract คลาส
ขอด – เรวเพราะไมมการ joinขอเสย – ขนาดฐานขอมลเพมขน ถามการแกไข superclass ทกคลาสลกหลาน ตองแกตาม
2. abstract คลาสมตารางของตวเอง ซงตารางของคลาสลกหลานอางอง
ขอด – ลดความซาซอนขอเสย – ถาคยรวมเปลยนตองแกไขทงในตาราง abstract คลาส และซบคลาส
OOAD 2/2550 ดร.สขสถต มสถตย29
ตวอยาง
OOAD 2/2550 ดร.สขสถต มสถตย30
แกปญหา inheritance
3 วธ1. สรางตารางสาหรบ super คลาสเทานน แอททรบวของซบคลาส
กลายเปนแอททรบวของ super คลาส และมคา null เมอไมไดใชเหมาะ กรณซบคลาสตางจากsuper คลาสในดานพฤตกรรมมากกวาแอททรบว ตองมtype แอททรบวสาหรบแยกแยะซบคลาส
2. สรางตารางสาหรบ ซบคลาสเทานน แอททรบวของ super คลาสไวทซบคลาส
เหมาะ กรณ abstract super คลาส เพราะไมมออบเจคของ super คลาส
3. สรางตารางใหทง super คลาส และซบคลาส แยกกน ในการดงขอมลตองเขาถงทง ตารางsuper คลาส และซบคลาส อาจตองมtype แอททรบว
OOAD 2/2550 ดร.สขสถต มสถตย31
Relational Databases
ขอมลเกบในกลมตารางเกบชนดขอมลพนฐานเกบไดเฉพาะขอมล เกบพฤตกรรมไมได
OOAD 2/2550 ดร.สขสถต มสถตย32
ปญหา Object to RDB
ขอมลในระบบทเกบในออบเจคตองแปลงจากโครงสรางขอมลออบเจคเปนโครงสรางเชงตารางCoupling ระหวาง application และ RDBMS ตองใหสวนนอยทสดของระบบร interface ของระบบแสดง inheritance ในฐานขอมล ขอมลในฐานขอมล ความสามารถในการอยถาวรในภาษาโปรแกรมการเกบโอเปอเรชน
OOAD 2/2550 ดร.สขสถต มสถตย33
ODBMS
Object DBMS– เกบออบเจคตามทเปน– ตดตอโดยใชภาษาโปรแกรมโดยตรง ฉะนน interface เฉพาะจงไมจาเปน
ขอด– เกบออบเจคไดในฐานขอมล ( ไมเกบโอเปอเรชน)– ไมตองแปลง– ภาษา ODBMS ถกรวมไวการ OOPL
OOAD 2/2550 ดร.สขสถต มสถตย34
OODBMS Support
Allow repeating groups or multivaluedattributesSupports multimedia or other complex data applications– CAD/CAM– Financial services– Geographic information systems– Health care
OOAD 2/2550 ดร.สขสถต มสถตย35
เพมประสทธภาพการจดเกบออบเจคแบบถาวร
OOAD 2/2550 ดร.สขสถต มสถตย36
ประสทธภาพ RDB
การใชพนทในการจดเกบ– ไมมขอมลซาซอน
ลดการเสยพนท ลดขอความขดแยงระหวางขอมล
– มคาวางในตารางนอยลดปญหาในการแปลความหมาย
ความเรวในการเขาถง– ลดเวลาการเขาถงทขอมล ซงอาจแยกอยในหลายตาราง – ลดการ join ตาราง
OOAD 2/2550 ดร.สขสถต มสถตย37
การทานอมอลไลเซชน (Normalization)
1NF– คอลมนในแตละแถวเกบคาเดยว
2NF– ทกคอลมนทไมใชคยขนกบทกคยทรวมเปน PK
3NF– ไมมคอลมนทขนกบคาในคอลมนทไมใช PK
OOAD 2/2550 ดร.สขสถต มสถตย38
การเพมความเรวในการเขาถง
ดนอมอลไลเซชน (Denormalization)– เพมขอมลของตารางหนงเขาไปในอกตาราง เพอเพมความเรว และลดการ join
– ควรทาดนอมอลไลเซชน ตารางอางอง (Lookup Tables)ความสมพนธแบบ one-to-oneรวม attribute ของตารางแม (parent) ไวในตารางลก (child)
OOAD 2/2550 ดร.สขสถต มสถตย39
ตวอยาง
OOAD 2/2550 ดร.สขสถต มสถตย40
การทาอนเดกซ (Indexing)
อนเดกซ (Index) = ตารางขนาดเลกทบรรจคาจากคอลมนในตารางและตาแหนงของคานนในตารางการคนหาสามารถใชอนเดกซเพอหาตาแหนงของเรคอรดตวทตองการไดa table can have an unlimited number of indexes but too many can add overhead
OOAD 2/2550 ดร.สขสถต มสถตย41
Indexing Example
OOAD 2/2550 ดร.สขสถต มสถตย42
ประมาณการขนาดพนทจดเกบขอมล
ขนาดเรคอรด = ผลรวมของคาเฉลยของความกวางแตละคอลมนบวกพนทเพมเตม (ผผลตอาจประเมนไวแลว)ประมาณการจานวนเรคอรดในปจจบน และอตราการเพม
OOAD 2/2550 ดร.สขสถต มสถตย43
ออกแบบคลาสสาหรบเขาถงและจดการขอมล
OOAD 2/2550 ดร.สขสถต มสถตย44
ออกแบบคลาสสาหรบจดการขอมล
ออกแบบคลาสดาเนนการเขาถงและจดการขอมล (Data access and manipulation class)– เปนตวกลางในการแปลงระหวางออบเจคในแหลงเกบขอมล และออบเจคในระบบ
แยกฟงกชนจดการขอมลจากคลาสของออบเจคในระบบสาหรบแตละคลาสในระบบมคลาส DAM สาหรบตดตอกบตารางทเกยวของในฐานขอมล (เพม ลบแกไข)
OOAD 2/2550 ดร.สขสถต มสถตย45
ออกแบบคลาสสาหรบจดการขอมล
OOAD 2/2550 ดร.สขสถต มสถตย46
ตวอยาง
OOAD 2/2550 ดร.สขสถต มสถตย47
Data Sizing Example
OOAD 2/2550 ดร.สขสถต มสถตย48
สรป
Choose an object-persistent format– Files (sequential or Random Access)– Databases (RDBMS, ORDBMS, OODBMS)
Map problem domain objects to DataOptimizing object storage
– Normalization– Denormalization, clustering, Indexes
Design Data Access and Manipulation Classes
OOAD 2/2550 ดร.สขสถต มสถตย49
กรณศกษา
OOAD 2/2550 ดร.สขสถต มสถตย50
Class Diagram
OOAD 2/2550 ดร.สขสถต มสถตย51
-CustPrimaryKeyCustomer Table
-OrderPrimaryKey-CustPrimaryKey
Order Table-OrderPrimaryKey-CDPrimaryKey
OrderItem Table
-CDPrimaryKeyCD Table
-CDPrimaryKeyMktInfo Table
-CDPrimaryKeyReview Table
-CDPrimaryKeyArtistInfo Table
1..1 0..* 1..1 1..*
0..*
1..1
1..1
0..*
1..1
0..*
1..1 1..1
-CDPrimaryKey-TracksPrimaryKey
Tracks Table
1..1
0..*
-OrderPrimaryKeyOverseasOrder Table
1..10..1
OOAD 2/2550 ดร.สขสถต มสถตย52