หนวยที่ 8   การออกแบบการจัดการขอมูล(Data Management Layer Design)OOAD 1/2551      ดร.สุขสถิต มีสถิตย   1
วัตถุประสงคเพื่อใหผูเรียน    เขาใจกระบวนการออกแบบการจัดการขอมูลแบบถาวรในระบบ    เชิงวัตถุ    เขาใจรูปแบบการจัดเก็บอ็...
การออกแบบการจัดการขอมูล1.   เลือกรูปแบบในการเก็บอ็อบเจกตแบบถาวร2.   แปลงอ็อบเจกตใหอยูในรูปแบบการจัดเก็บที่เลือก3.   เ...
การเลือกรูปแบบในการเก็บอ็อบเจกต                แบบถาวรOOAD 1/2551      ดร.สุขสถิต มีสถิตย   4
รูปแบบในการเก็บอ็อบเจกตถาวร    แฟมขอมูล (Files)          แบบลําดับ (Sequential access file)          แบบสุม (Random ac...
แฟมขอมูลการการสังซื้อของลูกคา                  ่OOAD 1/2551   ดร.สุขสถิต มีสถิตย   6
แฟมขอมูลแบบลําดับ(Sequential access file)    ใชการดําเนินการแบบลําดับ (อาน เขียน คนหา) ได    ใชไดดีกับการทํางานแบบ...
แฟมขอมูลแบบลําดับสุม(Random Access Files)    ใชการดําเนินการแบบสุมหรือแบบตรง (อาน เขียน                             ...
ชนิดแฟมขอมูลในแอพพลิเคชัน(Application File Types)    แฟมขอมูลหลัก (Master Files)    แฟมขอมูลอางอิง (Look-up files) ...
ฐานขอมูลแบบรีเลชันนอล(Relational databases)    ขอมูลเก็บในรูปกลุมตาราง                          ตารางประกอบดวยแถว    แ...
ฐานขอมูลการสั่งซื้อของลูกคาOOAD 1/2551    ดร.สุขสถิต มีสถิตย   11
ระบบจัดการฐานขอมูลแบบรีเลชันนอล(Relational Database Management System)     RDBMS = ซอฟตแวรสําหรับสรางและจัดการ     ฐาน...
ฐานขอมูลแบบอ็อบเจกตรีเลชันนอล(Object-relational databases)    พัฒนามาจากฐานขอมูลแบบรีเลชันนอล    ขอมูลเก็บในรูปกลุมตาร...
ฐานขอมูลเชิงวัตถุ(Object-Oriented Databases)    เก็บอ็อบเจกตโดยตรง    เอ็กซเทนต (Extent) = กลุมอ็อบเจกตของคลาสหนึง   ...
การเลือกรูปแบบสําหรับจัดเก็บอ็อบเจกต    พิจารณาจุดเดนจุดดอย    ชนิดขอมูลที่ตองจัดเก็บ                      ประเภทของร...
ขอดีและขอจํากัดของแฟมขอมูล    ขอดี          รองรับโดยภาษาโปรแกรมโดยตรง          เหมาะกับการจัดเก็บชั่วคราว หรือระยะสั...
ขอดีของระบบจัดการฐานขอมูล    รองรับการใชขอมูลรวมกันระหวางแอพพลิเคชัน                     สามารถจัดการขอมูลแบบมีโครง...
ขอดีและขอจํากัดของระบบจัดการฐานขอมูลแบบรีเลชันนอล    ขอดี          เทคโนโลยีเชิงพานิชยที่ไดรบการยอมรบแลว          ...
ขอดีและขอจํากัดของระบบจัดการฐานขอมูลแบบอ็อบเจกตรีเลชันนอล    ขอดี          รับขอดีสืบทอดจาก RDBMS          รองรับชนิ...
ขอดีและขอจํากัดของระบบจัดการฐานขอมูลเชิงวัตถุ    ขอดี          รองรับชนิดขอมูลที่ซับซอน          รองรับแนวคิดเชิงวัต...
แปลงอ็อบเจกตใหอยูในรูปแบบการ                                        จัดเก็บที่เลือกOOAD 1/2551       ดร.สุขสถิต มีสถิตย...
แปลงอ็อบเจกตเพื่อเก็บใน OODBMSOOAD 1/2551   ดร.สุขสถิต มีสถิตย   22
การแกปญหา multiple inheritance    มีซเปอรคลาสมากกวา 1       ู    กฎขอ 1a: เพิ่มแอททริบิวใน OODBMS คลาส เพื่อ    แสดงถ...
แปลงเปน Single I-B OODBMSOOAD 1/2551   ดร.สุขสถิต มีสถิตย   24
ใชกฎขอ 1a    เพิ่มแอททริบิวใน Class1-OODBMS เพื่อแสดงความสัมพันธ    กับ Super-Class2-OODBMS    เพิ่มแอททริบิวใน Class2-...
แปลงอ็อบเจกตเพื่อเก็บใน ORDBMS กฎ 1: กําหนดตารางสําหรับเอนทิตคอนกรีตคลาส ถาแอ็บสแตร็ก                                   ...
แปลงอ็อบเจกตเพื่อเก็บใน ORDBMS    กฎ 7: แปลง aggregation และ association แบบ many-to-    many เปนคอลัมนที่เก็บชุดของ Ob...
ตัวอยางOOAD 1/2551   ดร.สุขสถิต มีสถิตย   28
แปลงอ็อบเจกตเพื่อเก็บใน RDBMS    กฎ 1: กําหนดตารางสําหรับเอนทิตคอนกรีตคลาส ถาแอ็บสแตร็ก                                 ...
แปลงอ็อบเจกตเพื่อเก็บใน RDBMS    กฎ 6: แปลง aggregation และ association แบบ many-to-    many เปนตารางใหมที่เชื่อมสองตาร...
การแกปญหา inheritanceวิธีที่ 1 แอททริบิวที่ถายทอดมา คัดลอกไวในทุกตาราง   ของคลาสลูกหลาน ไมมีตารางสําหรับ abstract คลา...
ตัวอยางOOAD 1/2551   ดร.สุขสถิต มีสถิตย   32
เพิ่มประสิทธิภาพการจัดเก็บอ็อบ                   เจกตแบบถาวรOOAD 1/2551           ดร.สุขสถิต มีสถิตย   39
ประสิทธิภาพ RDB    การใชพื้นที่ในการจัดเก็บ          ไมมขอมูลซ้ําซอน              ี              ลดการเสียพื้นที่     ...
การทํานอมอลไลเซชัน(Normalization)    1NF          ทุกแถวในตารางมีจํานวนฟลด (คอลัมน) เทากัน และไมมีคา          null แ...
ตัวอยาง Non-normalized DataOOAD 1/2551   ดร.สุขสถิต มีสถิตย   42
ตัวอยาง Normalization              Original ModelOOAD 1/2551                    ดร.สุขสถิต มีสถิตย   43
ตัวอยาง 3NF Normalized ModelOOAD 1/2551   ดร.สุขสถิต มีสถิตย   44
การเพิ่มความเร็วในการเขาถึง    ดีนอมอลไลเซชัน (Denormalization)          เพิ่มขอมูลของตารางหนึ่งเขาไปในอีกตาราง เพื่อเพ...
ตัวอยางOOAD 1/2551   ดร.สุขสถิต มีสถิตย   46
การทําอินเด็กซ (Indexing)    อินเด็กซ (Index) = ตารางขนาดเล็กทีบรรจุคาจาก                                          ่   ...
Indexing ExampleOOAD 1/2551   ดร.สุขสถิต มีสถิตย   48
การจัด Cluster    การจัดคลัสเตอรระหวางไฟล (Inter-file clustering)          จัดเรคอรดในที่สื่อเก็บขอมูลเพื่อใหเรคอรด...
ประมาณการขนาดพื้นที่จัดเก็บขอมูล    ขนาดเรคอรด = ผลรวมของคาเฉลียของความกวางแต    ละคอลมน    บวกพื้นทีเพิ่มเติม (ผูผ...
ออกแบบคลาสสําหรับเขาถึงและ           จัดการขอมูลOOAD 1/2551     ดร.สุขสถิต มีสถิตย   51
ออกแบบคลาสสําหรับจัดการขอมูล    ออกแบบคลาสดําเนินการเขาถึงและจัดการขอมูล    (Data access and manipulation class)       ...
ออกแบบคลาสสําหรับจัดการขอมูลOOAD 1/2551   ดร.สุขสถิต มีสถิตย   53
ตัวอยางOOAD 1/2551   ดร.สุขสถิต มีสถิตย   54
กรณีศกษา                   ึOOAD 1/2551     ดร.สุขสถิต มีสถิตย   57
Class DiagramOOAD 1/2551     ดร.สุขสถิต มีสถิตย   58
ตัวอยางการออกแบบตาราง                                  Order Table                    OrderItem TableCustomer Table      ...
ตัวอยางOOAD 1/2551   ดร.สุขสถิต มีสถิตย   60
Upcoming SlideShare
Loading in …5
×

56785774

719 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
719
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

56785774

  1. 1. หนวยที่ 8 การออกแบบการจัดการขอมูล(Data Management Layer Design)OOAD 1/2551 ดร.สุขสถิต มีสถิตย 1
  2. 2. วัตถุประสงคเพื่อใหผูเรียน เขาใจกระบวนการออกแบบการจัดการขอมูลแบบถาวรในระบบ เชิงวัตถุ เขาใจรูปแบบการจัดเก็บอ็อบเจกตถาวร สามารถแปลงอ็อบเจกตใหเหมาะกับรูปแบบการจัดเก็บได สามารถออกแบบเพื่อปรับปรุงประสิทธิภาพแหลงจัดเก็บขอมูล ได สามารถออกแบบคลาสสําหรับเขาถึงและจัดการขอมูลไดOOAD 1/2551 ดร.สุขสถิต มีสถิตย 2
  3. 3. การออกแบบการจัดการขอมูล1. เลือกรูปแบบในการเก็บอ็อบเจกตแบบถาวร2. แปลงอ็อบเจกตใหอยูในรูปแบบการจัดเก็บที่เลือก3. เพิ่มประสิทธิภาพการจัดเก็บอ็อบเจกตแบบถาวร4. ออกแบบคลาสสําหรับเขาถึงและจัดการขอมูลOOAD 1/2551 ดร.สุขสถิต มีสถิตย 3
  4. 4. การเลือกรูปแบบในการเก็บอ็อบเจกต แบบถาวรOOAD 1/2551 ดร.สุขสถิต มีสถิตย 4
  5. 5. รูปแบบในการเก็บอ็อบเจกตถาวร แฟมขอมูล (Files) แบบลําดับ (Sequential access file) แบบสุม (Random access file) ฐานขอมูล (Databases) แบบรีเลชันนอล (Relational databases) แบบอ็อบเจกตรเลชันนอล (Object-relational databases) ี เชิงวัตถุ (Object-oriented databases)OOAD 1/2551 ดร.สุขสถิต มีสถิตย 5
  6. 6. แฟมขอมูลการการสังซื้อของลูกคา ่OOAD 1/2551 ดร.สุขสถิต มีสถิตย 6
  7. 7. แฟมขอมูลแบบลําดับ(Sequential access file) ใชการดําเนินการแบบลําดับ (อาน เขียน คนหา) ได ใชไดดีกับการทํางานแบบลําดับ เชน การสรางรายงาน การทํางานแบบสุม เชน การคนหา หรือปรับปรุง มี  ประสิทธิภาพต่ํา เพราะโดยเฉลี่ยในการหาอ็อบเจกตที่ ตองการ ตองเขาถึง 50% ของเรคอรดทั้งหมด มีสองแบบ เรียงลําดับ ไมเรียงลําดับOOAD 1/2551 ดร.สุขสถิต มีสถิตย 7
  8. 8. แฟมขอมูลแบบลําดับสุม(Random Access Files) ใชการดําเนินการแบบสุมหรือแบบตรง (อาน เขียน  คนหา) ได มีประสิทธิภาพสูงในการทํางานแบบสุม เชน การคนหา  หรือแกไขอ็อบเจกตตัวใดตัวหนึงโดยเฉพาะ ่ ทํางานแบบลําดับ เชน การสรางรายงาน มี ประสิทธิภาพนอยOOAD 1/2551 ดร.สุขสถิต มีสถิตย 8
  9. 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 1/2551 ดร.สุขสถิต มีสถิตย 9
  10. 10. ฐานขอมูลแบบรีเลชันนอล(Relational databases) ขอมูลเก็บในรูปกลุมตาราง  ตารางประกอบดวยแถว แตละแถว แบงเปนคอลัมนใชในการเก็บขอมูลชนิด พื้นฐาน แตละแถวมีไพรมารีคีย (Primary key) ตารางทีเกียวพันกันเชือมโยงผานฟอเรนคีย (Foreign ่ ่ ่ key) ฟอเรนคีย เก็บไพรมารีคียของเรคอรดที่เกี่ยวของซึ่งอยู ในอีกตารางOOAD 1/2551 ดร.สุขสถิต มีสถิตย 10
  11. 11. ฐานขอมูลการสั่งซื้อของลูกคาOOAD 1/2551 ดร.สุขสถิต มีสถิตย 11
  12. 12. ระบบจัดการฐานขอมูลแบบรีเลชันนอล(Relational Database Management System) RDBMS = ซอฟตแวรสําหรับสรางและจัดการ ฐานขอมูลแบบรีเลชันนอล มีความสามารถในการรักษาความถูกตองในการอางอิง (Referential Integrity) และอื่นๆ ใชภาษา Structured Query Language (SQL) เปน ภาษามาตรฐานในการเขาถึงขอมูลในตาราง OOAD 1/2551 ดร.สุขสถิต มีสถิตย 12
  13. 13. ฐานขอมูลแบบอ็อบเจกตรีเลชันนอล(Object-relational databases) พัฒนามาจากฐานขอมูลแบบรีเลชันนอล ขอมูลเก็บในรูปกลุมตาราง แตคอลัมนสามารถเก็บอ็อบ  เจกตได โดยใชชนิดขอมูลกําหนดโดยผูใช (user defined types) ใชระบบจัดการฐานขอมูลแบบอ็อบเจกตรีเลชันนอล (Object-Relational Database Management System, ORDBMS) ใชภาษา SQL ที่ขยายใหจัดการชนิดขอมูลกําหนดโดยผูใช ในตารางได ไมรองรับการสืบทอดคุณสมบัติOOAD 1/2551 ดร.สุขสถิต มีสถิตย 13
  14. 14. ฐานขอมูลเชิงวัตถุ(Object-Oriented Databases) เก็บอ็อบเจกตโดยตรง เอ็กซเทนต (Extent) = กลุมอ็อบเจกตของคลาสหนึง ่ แตละอ็อบเจกตมี object ID ซึ่งไมซ้ํากัน ใชระบบจัดการฐานขอมูลเชิงวัตถุ (Object-Oriented Database Management System, OODBMS) การรักษาความถูกตองในการอางอิง (Referential Integrity) สําคัญ รองรับการสืบทอดคุณสมบัติOOAD 1/2551 ดร.สุขสถิต มีสถิตย 14
  15. 15. การเลือกรูปแบบสําหรับจัดเก็บอ็อบเจกต พิจารณาจุดเดนจุดดอย ชนิดขอมูลที่ตองจัดเก็บ  ประเภทของระบบทีสราง ่ รูปแบบทีใชในปจจุบัน ่ ความตองการในอนาคต เงือนไขอืนๆ ่ ่OOAD 1/2551 ดร.สุขสถิต มีสถิตย 15
  16. 16. ขอดีและขอจํากัดของแฟมขอมูล ขอดี รองรับโดยภาษาโปรแกรมโดยตรง เหมาะกับการจัดเก็บชั่วคราว หรือระยะสั้น ออกแบบเพื่อใชงานเฉพาะดานไดดี ขอจํากัด การจัดการทุกอยางตองทําผานภาษาโปรแกรม การควบคุมการเขาถึงขึ้นกับระบบปฏิบัติการ มักมีขอมูลซ้าซอน ทําใหเกิดขอผิดพลาดในการปรับปรุง ํ ขอมูลOOAD 1/2551 ดร.สุขสถิต มีสถิตย 16
  17. 17. ขอดีของระบบจัดการฐานขอมูล รองรับการใชขอมูลรวมกันระหวางแอพพลิเคชัน  สามารถจัดการขอมูลแบบมีโครงสรางปริมาณมากได รองรับการคนหาขอมูลแบบซับซอนสําหรับขอมูลแบบมี โครงสราง สนุบสนุนการสรางรายงานแบบยากจากขอมูลทีเก็บ ่ สามารถจัดการทรานแซกชันไดOOAD 1/2551 ดร.สุขสถิต มีสถิตย 17
  18. 18. ขอดีและขอจํากัดของระบบจัดการฐานขอมูลแบบรีเลชันนอล ขอดี เทคโนโลยีเชิงพานิชยที่ไดรบการยอมรบแลว ั สามารถรองรับความตองการขอมูลที่หลากหลาย ขอจํากัด ไมรองรับแนวคิดเชิงวัตถุ ทําใหความขัดแยงดานชนิดขอมูล กับภาษาโปรแกรม และปญหาในการแปลงรูปแบบระหวางอ็ อบเจกตและตารางOOAD 1/2551 ดร.สุขสถิต มีสถิตย 18
  19. 19. ขอดีและขอจํากัดของระบบจัดการฐานขอมูลแบบอ็อบเจกตรีเลชันนอล ขอดี รับขอดีสืบทอดจาก RDBMS รองรับชนิดขอมูลที่ซับซอน ขอจํากัด การรองรับแนวคิดเชิงวัตถุมีจํากัด ขึ้นอยูกบผูผลิต  ั OOAD 1/2551 ดร.สุขสถิต มีสถิตย 19
  20. 20. ขอดีและขอจํากัดของระบบจัดการฐานขอมูลเชิงวัตถุ ขอดี รองรับชนิดขอมูลที่ซับซอน รองรับแนวคิดเชิงวัตถุโดยตรง ขอจํากัด ยังไมคงที่ ขาดบุคลากรที่เชียวชาญ และตองเรียนรูมาก OOAD 1/2551 ดร.สุขสถิต มีสถิตย 20
  21. 21. แปลงอ็อบเจกตใหอยูในรูปแบบการ  จัดเก็บที่เลือกOOAD 1/2551 ดร.สุขสถิต มีสถิตย 21
  22. 22. แปลงอ็อบเจกตเพื่อเก็บใน OODBMSOOAD 1/2551 ดร.สุขสถิต มีสถิตย 22
  23. 23. การแกปญหา multiple inheritance มีซเปอรคลาสมากกวา 1 ู กฎขอ 1a: เพิ่มแอททริบิวใน OODBMS คลาส เพื่อ แสดงถึงซูเปอรคลาสเพิ่มเติม กฎขอ 1b: ยุบลําดับชั้นการสืบทอดคุณสมบัติ และเอา ซูเปอรคลาสออกจากการออกแบบOOAD 1/2551 ดร.สุขสถิต มีสถิตย 23
  24. 24. แปลงเปน Single I-B OODBMSOOAD 1/2551 ดร.สุขสถิต มีสถิตย 24
  25. 25. ใชกฎขอ 1a เพิ่มแอททริบิวใน Class1-OODBMS เพื่อแสดงความสัมพันธ กับ Super-Class2-OODBMS เพิ่มแอททริบิวใน Class2-OODBMS เพื่อแสดงความสัมพันธ กับ Super-Class2-OODBMS เพิ่มแอททริบิวหนึงคูใน SuperClass2-OODBMS เพื่อแสดง ่ ความสัมพันธกับ Class1-OODBMS และ Class2-OODBMS ใสความสัมพันธ (associations) ระหวาง Class2-OODBMS กับ SuperClass2-OODBMS และ Class1-OODBMS กับ SuperClass2-OODBMS ที่กาหนดจํานวนถูกตอง (0..*, 0..1) ํ และขอบังคับแบบ XOROOAD 1/2551 ดร.สุขสถิต มีสถิตย 25
  26. 26. แปลงอ็อบเจกตเพื่อเก็บใน ORDBMS กฎ 1: กําหนดตารางสําหรับเอนทิตคอนกรีตคลาส ถาแอ็บสแตร็ก ี้ คลาสมีซับคลาสโดยตรงหลายคลาสใหกําหนดเปนตาราง กฎ 2: แปลงแอททริบิวที่เก็บคาเดี่ยวเปนคอลัมนในตาราง กฎ 3: แปลงโอเปอเรชันและแอททริบิวสืบตอ (derived attribute) กลายคาเปน stored procedures หรือ โปรแกรมโมดูล กฎ 4: แปลง aggregation และ association แบบ one-to-one เปนคอลัมนที่เก็บ Object ID (หรือ PK) ของอ็อบเจกตในตารางที่ เกี่ยวของ ทําทั้งสองดาน กฎ 5: แปลงแอททริบิวที่เก็บหลายคา เปนคอลัมนบรรจุคาเปนชุด  กฎ 6: แปลงกลุมแอททริบิวซ้ําเปนตารางใหม และสราง one-to- many association จากตารางเดิมไปตารางใหมOOAD 1/2551 ดร.สุขสถิต มีสถิตย 26
  27. 27. แปลงอ็อบเจกตเพื่อเก็บใน 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) ขอบังคับแบบ XOR b : ยุบ inheritance เอาแอททริบิวของซุปเปอรคลาสมาใสไวในซับ คลาส แลวตัดซุปเปอรคลาสออกOOAD 1/2551 ดร.สุขสถิต มีสถิตย 27
  28. 28. ตัวอยางOOAD 1/2551 ดร.สุขสถิต มีสถิตย 28
  29. 29. แปลงอ็อบเจกตเพื่อเก็บใน RDBMS กฎ 1: กําหนดตารางสําหรับเอนทิตคอนกรีตคลาส ถาแอ็บสแตร็ก ี้ คลาสมีซับคลาสโดยตรงหลายคลาสใหกําหนดเปนตาราง กฎ 2: แปลงแอททริบิวที่เก็บคาเดี่ยวเปนคอลัมนในตาราง กฎ 3: แปลงโอเปอเรชันเปน stored procedures หรือ โปรแกรม โมดูล กฎ 4: แปลง aggregation และ association แบบ one-to-one เปนคอลัมนที่เก็บ PK ของตารางที่เกี่ยวของ (ใช FK) ทําทังสอง ้ ดาน กฎ 5: แปลงแอททริบิวที่เก็บหลายคา และกลุมแอท-  ทริบิวซ้ําเปนตารางใหม และสราง association แบบ one-to- many จากตารางเดิมไปตารางใหมOOAD 1/2551 ดร.สุขสถิต มีสถิตย 29
  30. 30. แปลงอ็อบเจกตเพื่อเก็บใน RDBMS กฎ 6: แปลง aggregation และ association แบบ many-to- many เปนตารางใหมที่เชื่อมสองตารางเดิมเขาดวยกัน ตาราง ใหมมีคอลัมนบรรจุ PK จากสองตารางเดิม กฎ 7: แปลง aggregation และ association แบบผสม (one- to-many หรือmany-to-one) เอา PK จากดาน 0..1, 1..1 ไป ใสในคอลัมนใหมในตารางของดาน 0..*, 1..* กฎ 8: generalization/inheritance relationship a : ให PK ของอ็อบเจกตในตารางซุปเปอรคลาส (0..*, 1..1) และซับคลาส (1..1) ตรงกัน b : ยุบ inheritance เอาแอททริบิวของซุปเปอรคลาสมาใส ไวในซับคลาส แลวตัดซุปเปอรคลาสออกOOAD 1/2551 ดร.สุขสถิต มีสถิตย 30
  31. 31. การแกปญหา inheritanceวิธีที่ 1 แอททริบิวที่ถายทอดมา คัดลอกไวในทุกตาราง ของคลาสลูกหลาน ไมมีตารางสําหรับ abstract คลาส ขอดี – เร็วเพราะไมมีการ join ขอเสีย – ขนาดฐานขอมูลเพิ่มขึ้น ถามีการแกไข superclass ทุกคลาสลูกหลาน ตองแกตามวิธีที่ 2 abstract คลาสมีตารางของตัวเอง ซึงตารางของ ่ คลาสลูกหลานอางอิง ขอดี – ลดความซ้ําซอน ขอเสีย – ถาคียรวมเปลี่ยนตองแกไขทั้งในตาราง abstract   คลาส และซับคลาสOOAD 1/2551 ดร.สุขสถิต มีสถิตย 31
  32. 32. ตัวอยางOOAD 1/2551 ดร.สุขสถิต มีสถิตย 32
  33. 33. เพิ่มประสิทธิภาพการจัดเก็บอ็อบ เจกตแบบถาวรOOAD 1/2551 ดร.สุขสถิต มีสถิตย 39
  34. 34. ประสิทธิภาพ RDB การใชพื้นที่ในการจัดเก็บ ไมมขอมูลซ้ําซอน ี ลดการเสียพื้นที่ ลดขอความขัดแยงระหวางขอมูล มีคาวางในตารางนอย ลดปญหาในการแปลความหมาย ความเร็วในการเขาถึง ลดเวลาการเขาถึงทีขอมูล ซึงอาจแยกอยูในหลาย ่ ่ ตาราง ลดการ join ตารางOOAD 1/2551 ดร.สุขสถิต มีสถิตย 40
  35. 35. การทํานอมอลไลเซชัน(Normalization) 1NF ทุกแถวในตารางมีจํานวนฟลด (คอลัมน) เทากัน และไมมีคา null และแตละฟลดเก็บคาเดี่ยว 2NF ทุกคอลัมนทไมใชคียขึ้นกับทุกคียทรวมเปน PK ี่ ี่ 3NF ไมมีคอลัมนที่ขื้นกับคาในคอลัมนที่ไมใช PKOOAD 1/2551 ดร.สุขสถิต มีสถิตย 41
  36. 36. ตัวอยาง Non-normalized DataOOAD 1/2551 ดร.สุขสถิต มีสถิตย 42
  37. 37. ตัวอยาง Normalization Original ModelOOAD 1/2551 ดร.สุขสถิต มีสถิตย 43
  38. 38. ตัวอยาง 3NF Normalized ModelOOAD 1/2551 ดร.สุขสถิต มีสถิตย 44
  39. 39. การเพิ่มความเร็วในการเขาถึง ดีนอมอลไลเซชัน (Denormalization) เพิ่มขอมูลของตารางหนึ่งเขาไปในอีกตาราง เพื่อเพิ่ม ความเร็ว และลดการ join ควรทําดีนอมอลไลเซชัน ตารางอางอิง (Lookup Tables) ความสัมพันธแบบ one-to-one รวม attribute ของตารางแม (parent) ไวในตารางลูก (child)OOAD 1/2551 ดร.สุขสถิต มีสถิตย 45
  40. 40. ตัวอยางOOAD 1/2551 ดร.สุขสถิต มีสถิตย 46
  41. 41. การทําอินเด็กซ (Indexing) อินเด็กซ (Index) = ตารางขนาดเล็กทีบรรจุคาจาก ่ คอลัมนในตารางและตําแหนงของคานั้นในตาราง การคนหาสามารถใชอินเด็กซเพื่อหาตําแหนงของเร คอรดตัวที่ตองการได ตารางหนึงมีอนเด็กซไดไมจากัด แตถามากไปจะทําให ่ ิ ํ เสียเวลาและทรัพยากรในดานอืน ่OOAD 1/2551 ดร.สุขสถิต มีสถิตย 47
  42. 42. Indexing ExampleOOAD 1/2551 ดร.สุขสถิต มีสถิตย 48
  43. 43. การจัด Cluster การจัดคลัสเตอรระหวางไฟล (Inter-file clustering) จัดเรคอรดในที่สื่อเก็บขอมูลเพื่อใหเรคอรดที่เหมือนกันถูก เก็บไวติดกัน การจัดคลัสเตอรระหวางไฟล คลายกับการวางแยม เนย และ ขนมปงไวชั้นใกลกนในรานคา เนืองจากสินคาเหลานีมักถูก ั ่ ้ ซื้อไปดวยกันOOAD 1/2551 ดร.สุขสถิต มีสถิตย 49
  44. 44. ประมาณการขนาดพื้นที่จัดเก็บขอมูล ขนาดเรคอรด = ผลรวมของคาเฉลียของความกวางแต ละคอลมน บวกพื้นทีเพิ่มเติม (ผูผลิตอาจประเมินไวแลว) ่ ประมาณการจํานวนเรคอรดในปจจุบัน และอัตราการ เพิ่มOOAD 1/2551 ดร.สุขสถิต มีสถิตย 50
  45. 45. ออกแบบคลาสสําหรับเขาถึงและ จัดการขอมูลOOAD 1/2551 ดร.สุขสถิต มีสถิตย 51
  46. 46. ออกแบบคลาสสําหรับจัดการขอมูล ออกแบบคลาสดําเนินการเขาถึงและจัดการขอมูล (Data access and manipulation class) เปนตัวกลางในการแปลงระหวางอ็อบเจกตในแหลงเก็บ ขอมูล และอ็อบเจกตในระบบ แยกฟงกชนจัดการขอมูลจากคลาสของอ็อบเจกตใน ั ระบบ สําหรับแตละคลาสในระบบมีคลาส DAM สําหรับติดตอ กับตารางที่เกียวของในฐานขอมูล (เพิ่ม ลบแกไข) ่OOAD 1/2551 ดร.สุขสถิต มีสถิตย 52
  47. 47. ออกแบบคลาสสําหรับจัดการขอมูลOOAD 1/2551 ดร.สุขสถิต มีสถิตย 53
  48. 48. ตัวอยางOOAD 1/2551 ดร.สุขสถิต มีสถิตย 54
  49. 49. กรณีศกษา ึOOAD 1/2551 ดร.สุขสถิต มีสถิตย 57
  50. 50. Class DiagramOOAD 1/2551 ดร.สุขสถิต มีสถิตย 58
  51. 51. ตัวอยางการออกแบบตาราง Order Table OrderItem TableCustomer Table -OrderPrimaryKey -OrderPrimaryKey-CustPrimaryKey -CustPrimaryKey -CDPrimaryKey 1..1 0..* 1..1 1..* 1..1 0..* 0..1 Review Table 1..1 OverseasOrder Table 0..* -CDPrimaryKey -OrderPrimaryKey CD Table MktInfo Table -CDPrimaryKey -CDPrimaryKey 1..1 1..1 1..1 1..1 1..1 0..* ArtistInfo Table 0..* -CDPrimaryKey Tracks Table -CDPrimaryKey -TracksPrimaryKey OOAD 1/2551 ดร.สุขสถิต มีสถิตย 59
  52. 52. ตัวอยางOOAD 1/2551 ดร.สุขสถิต มีสถิตย 60

×