unit 10 - system analysis uml

Post on 18-Nov-2014

251 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related