52
OOAD 2/2550 ดร.สุขสถิต มีสถิตย 1 หนวยที10: การออกแบบการจัดการขอมูล (Data Management Layer Design) ดร.สุขสถิต มีสถิตย การวิเคราะหและออกแบบเชิงวัตถุ 2/2550

Unit 10 - System Analysis UML

  • Upload
    sushike

  • View
    251

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย1

หนวยท 10: การออกแบบการจดการขอมล (Data Management Layer Design)

ดร.สขสถต มสถตยการวเคราะหและออกแบบเชงวตถ2/2550

Page 2: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย2

วตถประสงค

เพอใหนกศกษาเขาใจกระบวนการออกแบบการจดการขอมลแบบถาวรในระบบเชงวตถได

เพอใหนกศกษาเขาใจรปแบบการจดเกบออบเจคถาวร

เพอใหนกศกษาสามารถแปลงออบเจคใหเหมาะกบรปแบบการจดเกบ

เพอใหนกศกษาสามารถออกแบบเพอปรบปรงประสทธภาพแหลงจดเกบขอมล

เพอใหนกศกษาสามารถออกแบบคลาสสาหรบเขาถงและจดการขอมล

Page 3: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย3

การออกแบบการจดการขอมล

1. เลอกรปแบบในการเกบออบเจคแบบถาวร2. แปลงออบเจคใหอยในรปแบบการจดเกบทเลอก3. เพมประสทธภาพการจดเกบออบเจคแบบถาวร4. ออกแบบคลาสสาหรบเขาถงและจดการขอมล

Page 4: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย4

การเลอกรปแบบในการเกบออบเจคแบบถาวร

Page 5: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย5

รปแบบในการเกบออบเจคถาวร

แฟมขอมล (Files) – แบบลาดบ (Sequential access file)– แบบสม (Random access file)

ฐานขอมล (Databases)– แบบรเลชนนอล (Relational databases)– แบบออบเจครเลชนนอล (Object-relational

databases)– เชงวตถ (Object-oriented databases)

Page 6: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย6

แฟมขอมลการการสงซอของลกคา

Page 7: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย7

แฟมขอมลแบบลาดบ (Sequential access file)

ใชการดาเนนการแบบลาดบ (อาน เขยน คนหา) ไดใชไดดกบการทางานแบบลาดบ เชน การสรางรายงานการทางานแบบสม เชน การคนหา หรอปรบปรง มประสทธภาพตา เพราะโดยเฉลยในการหาออบเจคทตองการ ตองเขาถง 50% ของเรคอรดทงหมด มสองแบบ– เรยงลาดบ– ไมเรยงลาดบ

Page 8: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย8

แฟมขอมลแบบลาดบสม (Random Access Files)

ใชการดาเนนการแบบสมหรอแบบตรง (อาน เขยน คนหา) ไดมประสทธภาพสงในการทางานแบบสม เชน การคนหา หรอแกไขออบเจคตวใดตวหนงโดยเฉพาะทางานแบบลาดบ เชน การสรางรายงาน มประสทธภาพนอย

Page 9: Unit 10 - System Analysis UML

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)

Page 10: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย10

ฐานขอมลแบบรเลชนนอล (Relational databases)

ขอมลเกบในรปกลมตารางตารางประกอบดวยแถวแตละแถว แบงเปนคอลมนใชในการเกบขอมลชนดพนฐานแตละแถวมไพรมารคย (Primary key)ตารางทเกยวพนกนเชอมโยงผานฟอเรนคย (Foreign key)ฟอเรนคย เกบไพรมารคยของเรคอรดทเกยวของซงอยในอกตาราง

Page 11: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย11

ฐานขอมลการสงซอของลกคา

Page 12: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย12

ระบบจดการฐานขอมลแบบรเลชนนอล (Relational Database Management System)

RDBMS = ซอฟตแวรสาหรบสรางและจดการฐานขอมลแบบรเลชนนอลมความสามารถในการรกษาความถกตองในการอางอง (Referential Integrity) และอนๆใชภาษา Structured Query Language (SQL) เปนภาษามาตรฐานในการเขาถงขอมลในตาราง

Page 13: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย13

ฐานขอมลแบบออบเจครเลชนนอล (Object-relational databases)

พฒนามาจากฐานขอมลแบบรเลชนนอลขอมลเกบในรปกลมตาราง แตคอลมนสามารถเกบออบเจคไดโดยใชชนดขอมลกาหนดโดยผใช (user defined types)ใชระบบจดการฐานขอมลแบบออบเจครเลชนนอล (Object-Relational Database Management System, ORDBMS) – ใชภาษา SQL ทขยายใหจดการชนดขอมลกาหนดโดยผใชในตารางได

– ไมรองรบการสบทอดคณสมบต

Page 14: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย14

ฐานขอมลเชงวตถ (Object-Oriented Databases)

เกบออบเจคโดยตรงเอกซเทนต (Extent) = กลมออบเจคของคลาสหนง– แตละออบเจคม object ID ซงไมซากน

ใชระบบจดการฐานขอมลเชงวตถ (Object-OrientedDatabase Management System, OODBMS)– การรกษาความถกตองในการอางอง (Referential Integrity) สาคญ

– รองรบการสบทอดคณสมบต

Page 15: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย15

การเลอกรปแบบสาหรบจดเกบออบเจค

พจารณาจดเดนจดดอยชนดขอมลทตองจดเกบประเภทของระบบทสรางรปแบบทใชในปจจบนความตองการในอนาคตเงอนไขอนๆ

Page 16: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย16

ขอดและขอจากดของแฟมขอมล

ขอด– รองรบโดยภาษาโปรแกรมโดยตรง– เหมาะกบการจดเกบชวคราว หรอระยะสน– ออกแบบเพอใชงานเฉพาะดานไดดขอจากด– การจดการทกอยางตองทาผานภาษาโปรแกรม– การควบคมการเขาถงขนกบระบบปฏบตการ– มกมขอมลซาซอน ทาใหเกดขอผดพลาดในการปรบปรงขอมล

Page 17: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย17

ขอดของระบบจดการฐานขอมล

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

Page 18: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย18

ขอดและขอจากดของระบบจดการฐานขอมลแบบรเลชนนอล

ขอด– เทคโนโลยเชงพานชยทไดรบการยอมรบแลว– สามารถรองรบความตองการขอมลทหลากหลาย

ขอจากด – ไมรองรบแนวคดเชงวตถ ทาใหความขดแยงดานชนดขอมลกบภาษาโปรแกรม และปญหาในการแปลงรปแบบระหวางออบเจคและตาราง

Page 19: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย19

ขอดและขอจากดของระบบจดการฐานขอมลแบบออบเจครเลชนนอล

ขอด– รบขอดสบทอดจาก RDBMS– รองรบชนดขอมลทซบซอนขอจากด – การรองรบแนวคดเชงวตถมจากด ขนอยกบผผลต

Page 20: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย20

ขอดและขอจากดของระบบจดการฐานขอมลเชงวตถ

ขอด– รองรบชนดขอมลทซบซอน – รองรบแนวคดเชงวตถโดยตรง

• ขอจากด – ยงไมคงท– ขาดบคลากรทเชยวชาญ และตองเรยนรมาก

Page 21: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย21

แปลงออบเจคใหอยในรปแบบการจดเกบทเลอก

Page 22: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย22

แปลงออบเจคเพอเกบใน OODBMS

เทยบออบเจคเปนออบเจคในตารางโดยตรงโอเปอเรชนอมพลเมนตโดยภาษาโปรแกรม

Page 23: Unit 10 - System Analysis UML

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 จากตารางเดมไปตารางใหม

Page 24: Unit 10 - System Analysis UML

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 เอาแอททรบวของซปเปอรคลาสมาใสไวในซบคลาส แลวตดซปเปอรคลาสออก

Page 25: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย25

ตวอยาง

Page 26: Unit 10 - System Analysis UML

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 จากตารางเดมไปตารางใหม

Page 27: Unit 10 - System Analysis UML

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 เอาแอททรบวของซปเปอรคลาสมาใสไวในซบคลาส แลวตดซปเปอรคลาสออก

Page 28: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย28

การแกปญหา inheritance

2 วธ1. แอททรบวทถายทอดมา คดลอกไวในทกตารางของคลาสลกหลาน ไมมตารางสาหรบ abstract คลาส

ขอด – เรวเพราะไมมการ joinขอเสย – ขนาดฐานขอมลเพมขน ถามการแกไข superclass ทกคลาสลกหลาน ตองแกตาม

2. abstract คลาสมตารางของตวเอง ซงตารางของคลาสลกหลานอางอง

ขอด – ลดความซาซอนขอเสย – ถาคยรวมเปลยนตองแกไขทงในตาราง abstract คลาส และซบคลาส

Page 29: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย29

ตวอยาง

Page 30: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย30

แกปญหา inheritance

3 วธ1. สรางตารางสาหรบ super คลาสเทานน แอททรบวของซบคลาส

กลายเปนแอททรบวของ super คลาส และมคา null เมอไมไดใชเหมาะ กรณซบคลาสตางจากsuper คลาสในดานพฤตกรรมมากกวาแอททรบว ตองมtype แอททรบวสาหรบแยกแยะซบคลาส

2. สรางตารางสาหรบ ซบคลาสเทานน แอททรบวของ super คลาสไวทซบคลาส

เหมาะ กรณ abstract super คลาส เพราะไมมออบเจคของ super คลาส

3. สรางตารางใหทง super คลาส และซบคลาส แยกกน ในการดงขอมลตองเขาถงทง ตารางsuper คลาส และซบคลาส อาจตองมtype แอททรบว

Page 31: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย31

Relational Databases

ขอมลเกบในกลมตารางเกบชนดขอมลพนฐานเกบไดเฉพาะขอมล เกบพฤตกรรมไมได

Page 32: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย32

ปญหา Object to RDB

ขอมลในระบบทเกบในออบเจคตองแปลงจากโครงสรางขอมลออบเจคเปนโครงสรางเชงตารางCoupling ระหวาง application และ RDBMS ตองใหสวนนอยทสดของระบบร interface ของระบบแสดง inheritance ในฐานขอมล ขอมลในฐานขอมล ความสามารถในการอยถาวรในภาษาโปรแกรมการเกบโอเปอเรชน

Page 33: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย33

ODBMS

Object DBMS– เกบออบเจคตามทเปน– ตดตอโดยใชภาษาโปรแกรมโดยตรง ฉะนน interface เฉพาะจงไมจาเปน

ขอด– เกบออบเจคไดในฐานขอมล ( ไมเกบโอเปอเรชน)– ไมตองแปลง– ภาษา ODBMS ถกรวมไวการ OOPL

Page 34: Unit 10 - System Analysis UML

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

Page 35: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย35

เพมประสทธภาพการจดเกบออบเจคแบบถาวร

Page 36: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย36

ประสทธภาพ RDB

การใชพนทในการจดเกบ– ไมมขอมลซาซอน

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

– มคาวางในตารางนอยลดปญหาในการแปลความหมาย

ความเรวในการเขาถง– ลดเวลาการเขาถงทขอมล ซงอาจแยกอยในหลายตาราง – ลดการ join ตาราง

Page 37: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย37

การทานอมอลไลเซชน (Normalization)

1NF– คอลมนในแตละแถวเกบคาเดยว

2NF– ทกคอลมนทไมใชคยขนกบทกคยทรวมเปน PK

3NF– ไมมคอลมนทขนกบคาในคอลมนทไมใช PK

Page 38: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย38

การเพมความเรวในการเขาถง

ดนอมอลไลเซชน (Denormalization)– เพมขอมลของตารางหนงเขาไปในอกตาราง เพอเพมความเรว และลดการ join

– ควรทาดนอมอลไลเซชน ตารางอางอง (Lookup Tables)ความสมพนธแบบ one-to-oneรวม attribute ของตารางแม (parent) ไวในตารางลก (child)

Page 39: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย39

ตวอยาง

Page 40: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย40

การทาอนเดกซ (Indexing)

อนเดกซ (Index) = ตารางขนาดเลกทบรรจคาจากคอลมนในตารางและตาแหนงของคานนในตารางการคนหาสามารถใชอนเดกซเพอหาตาแหนงของเรคอรดตวทตองการไดa table can have an unlimited number of indexes but too many can add overhead

Page 41: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย41

Indexing Example

Page 42: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย42

ประมาณการขนาดพนทจดเกบขอมล

ขนาดเรคอรด = ผลรวมของคาเฉลยของความกวางแตละคอลมนบวกพนทเพมเตม (ผผลตอาจประเมนไวแลว)ประมาณการจานวนเรคอรดในปจจบน และอตราการเพม

Page 43: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย43

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

Page 44: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย44

ออกแบบคลาสสาหรบจดการขอมล

ออกแบบคลาสดาเนนการเขาถงและจดการขอมล (Data access and manipulation class)– เปนตวกลางในการแปลงระหวางออบเจคในแหลงเกบขอมล และออบเจคในระบบ

แยกฟงกชนจดการขอมลจากคลาสของออบเจคในระบบสาหรบแตละคลาสในระบบมคลาส DAM สาหรบตดตอกบตารางทเกยวของในฐานขอมล (เพม ลบแกไข)

Page 45: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย45

ออกแบบคลาสสาหรบจดการขอมล

Page 46: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย46

ตวอยาง

Page 47: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย47

Data Sizing Example

Page 48: Unit 10 - System Analysis UML

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

Page 49: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย49

กรณศกษา

Page 50: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย50

Class Diagram

Page 51: Unit 10 - System Analysis UML

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

Page 52: Unit 10 - System Analysis UML

OOAD 2/2550 ดร.สขสถต มสถตย52