Contenu connexe
Similaire à 56785774 (20)
Plus de TaiMe Sakdisri (18)
56785774
- 1. หนวยที่ 8
การออกแบบการจัดการขอมูล
(Data Management Layer Design)
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 1
- 2. วัตถุประสงค
เพื่อใหผูเรียน
เขาใจกระบวนการออกแบบการจัดการขอมูลแบบถาวรในระบบ
เชิงวัตถุ
เขาใจรูปแบบการจัดเก็บอ็อบเจกตถาวร
สามารถแปลงอ็อบเจกตใหเหมาะกับรูปแบบการจัดเก็บได
สามารถออกแบบเพื่อปรับปรุงประสิทธิภาพแหลงจัดเก็บขอมูล
ได
สามารถออกแบบคลาสสําหรับเขาถึงและจัดการขอมูลได
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 2
- 3. การออกแบบการจัดการขอมูล
1. เลือกรูปแบบในการเก็บอ็อบเจกตแบบถาวร
2. แปลงอ็อบเจกตใหอยูในรูปแบบการจัดเก็บที่เลือก
3. เพิ่มประสิทธิภาพการจัดเก็บอ็อบเจกตแบบถาวร
4. ออกแบบคลาสสําหรับเขาถึงและจัดการขอมูล
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 3
- 5. รูปแบบในการเก็บอ็อบเจกตถาวร
แฟมขอมูล (Files)
แบบลําดับ (Sequential access file)
แบบสุม (Random access file)
ฐานขอมูล (Databases)
แบบรีเลชันนอล (Relational databases)
แบบอ็อบเจกตรเลชันนอล (Object-relational databases)
ี
เชิงวัตถุ (Object-oriented databases)
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 5
- 7. แฟมขอมูลแบบลําดับ
(Sequential access file)
ใชการดําเนินการแบบลําดับ (อาน เขียน คนหา) ได
ใชไดดีกับการทํางานแบบลําดับ เชน การสรางรายงาน
การทํางานแบบสุม เชน การคนหา หรือปรับปรุง มี
ประสิทธิภาพต่ํา เพราะโดยเฉลี่ยในการหาอ็อบเจกตที่
ตองการ ตองเขาถึง 50% ของเรคอรดทั้งหมด
มีสองแบบ
เรียงลําดับ
ไมเรียงลําดับ
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 7
- 8. แฟมขอมูลแบบลําดับสุม
(Random Access Files)
ใชการดําเนินการแบบสุมหรือแบบตรง (อาน เขียน
คนหา) ได
มีประสิทธิภาพสูงในการทํางานแบบสุม เชน การคนหา
หรือแกไขอ็อบเจกตตัวใดตัวหนึงโดยเฉพาะ
่
ทํางานแบบลําดับ เชน การสรางรายงาน มี
ประสิทธิภาพนอย
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 8
- 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. ฐานขอมูลแบบรีเลชันนอล
(Relational databases)
ขอมูลเก็บในรูปกลุมตาราง
ตารางประกอบดวยแถว
แตละแถว แบงเปนคอลัมนใชในการเก็บขอมูลชนิด
พื้นฐาน
แตละแถวมีไพรมารีคีย (Primary key)
ตารางทีเกียวพันกันเชือมโยงผานฟอเรนคีย (Foreign
่ ่ ่
key)
ฟอเรนคีย เก็บไพรมารีคียของเรคอรดที่เกี่ยวของซึ่งอยู
ในอีกตาราง
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 10
- 12. ระบบจัดการฐานขอมูลแบบรีเลชันนอล
(Relational Database Management System)
RDBMS = ซอฟตแวรสําหรับสรางและจัดการ
ฐานขอมูลแบบรีเลชันนอล
มีความสามารถในการรักษาความถูกตองในการอางอิง
(Referential Integrity) และอื่นๆ
ใชภาษา Structured Query Language (SQL) เปน
ภาษามาตรฐานในการเขาถึงขอมูลในตาราง
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 12
- 13. ฐานขอมูลแบบอ็อบเจกตรีเลชันนอล
(Object-relational databases)
พัฒนามาจากฐานขอมูลแบบรีเลชันนอล
ขอมูลเก็บในรูปกลุมตาราง แตคอลัมนสามารถเก็บอ็อบ
เจกตได
โดยใชชนิดขอมูลกําหนดโดยผูใช (user defined
types)
ใชระบบจัดการฐานขอมูลแบบอ็อบเจกตรีเลชันนอล
(Object-Relational Database Management
System, ORDBMS)
ใชภาษา SQL ที่ขยายใหจัดการชนิดขอมูลกําหนดโดยผูใช
ในตารางได
ไมรองรับการสืบทอดคุณสมบัติ
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 13
- 14. ฐานขอมูลเชิงวัตถุ
(Object-Oriented Databases)
เก็บอ็อบเจกตโดยตรง
เอ็กซเทนต (Extent) = กลุมอ็อบเจกตของคลาสหนึง
่
แตละอ็อบเจกตมี object ID ซึ่งไมซ้ํากัน
ใชระบบจัดการฐานขอมูลเชิงวัตถุ (Object-Oriented
Database Management System, OODBMS)
การรักษาความถูกตองในการอางอิง (Referential Integrity)
สําคัญ
รองรับการสืบทอดคุณสมบัติ
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 14
- 15. การเลือกรูปแบบสําหรับจัดเก็บอ็อบ
เจกต
พิจารณาจุดเดนจุดดอย
ชนิดขอมูลที่ตองจัดเก็บ
ประเภทของระบบทีสราง
่
รูปแบบทีใชในปจจุบัน
่
ความตองการในอนาคต
เงือนไขอืนๆ
่ ่
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 15
- 16. ขอดีและขอจํากัดของแฟมขอมูล
ขอดี
รองรับโดยภาษาโปรแกรมโดยตรง
เหมาะกับการจัดเก็บชั่วคราว หรือระยะสั้น
ออกแบบเพื่อใชงานเฉพาะดานไดดี
ขอจํากัด
การจัดการทุกอยางตองทําผานภาษาโปรแกรม
การควบคุมการเขาถึงขึ้นกับระบบปฏิบัติการ
มักมีขอมูลซ้าซอน ทําใหเกิดขอผิดพลาดในการปรับปรุง
ํ
ขอมูล
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 16
- 17. ขอดีของระบบจัดการฐานขอมูล
รองรับการใชขอมูลรวมกันระหวางแอพพลิเคชัน
สามารถจัดการขอมูลแบบมีโครงสรางปริมาณมากได
รองรับการคนหาขอมูลแบบซับซอนสําหรับขอมูลแบบมี
โครงสราง
สนุบสนุนการสรางรายงานแบบยากจากขอมูลทีเก็บ
่
สามารถจัดการทรานแซกชันได
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 17
- 18. ขอดีและขอจํากัดของระบบจัดการ
ฐานขอมูลแบบรีเลชันนอล
ขอดี
เทคโนโลยีเชิงพานิชยที่ไดรบการยอมรบแลว
ั
สามารถรองรับความตองการขอมูลที่หลากหลาย
ขอจํากัด
ไมรองรับแนวคิดเชิงวัตถุ ทําใหความขัดแยงดานชนิดขอมูล
กับภาษาโปรแกรม และปญหาในการแปลงรูปแบบระหวางอ็
อบเจกตและตาราง
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 18
- 23. การแกปญหา multiple inheritance
มีซเปอรคลาสมากกวา 1
ู
กฎขอ 1a: เพิ่มแอททริบิวใน OODBMS คลาส เพื่อ
แสดงถึงซูเปอรคลาสเพิ่มเติม
กฎขอ 1b: ยุบลําดับชั้นการสืบทอดคุณสมบัติ และเอา
ซูเปอรคลาสออกจากการออกแบบ
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 23
- 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)
ํ
และขอบังคับแบบ XOR
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 25
- 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. แปลงอ็อบเจกตเพื่อเก็บใน 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
- 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. แปลงอ็อบเจกตเพื่อเก็บใน 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. การแกปญหา inheritance
วิธีที่ 1 แอททริบิวที่ถายทอดมา คัดลอกไวในทุกตาราง
ของคลาสลูกหลาน ไมมีตารางสําหรับ abstract คลาส
ขอดี – เร็วเพราะไมมีการ join
ขอเสีย – ขนาดฐานขอมูลเพิ่มขึ้น ถามีการแกไข
superclass ทุกคลาสลูกหลาน ตองแกตาม
วิธีที่ 2 abstract คลาสมีตารางของตัวเอง ซึงตารางของ
่
คลาสลูกหลานอางอิง
ขอดี – ลดความซ้ําซอน
ขอเสีย – ถาคียรวมเปลี่ยนตองแกไขทั้งในตาราง abstract
คลาส และซับคลาส
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 31
- 34. ประสิทธิภาพ RDB
การใชพื้นที่ในการจัดเก็บ
ไมมขอมูลซ้ําซอน
ี
ลดการเสียพื้นที่
ลดขอความขัดแยงระหวางขอมูล
มีคาวางในตารางนอย
ลดปญหาในการแปลความหมาย
ความเร็วในการเขาถึง
ลดเวลาการเขาถึงทีขอมูล ซึงอาจแยกอยูในหลาย
่ ่
ตาราง
ลดการ join ตาราง
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 40
- 35. การทํานอมอลไลเซชัน
(Normalization)
1NF
ทุกแถวในตารางมีจํานวนฟลด (คอลัมน) เทากัน และไมมีคา
null และแตละฟลดเก็บคาเดี่ยว
2NF
ทุกคอลัมนทไมใชคียขึ้นกับทุกคียทรวมเปน PK
ี่ ี่
3NF
ไมมีคอลัมนที่ขื้นกับคาในคอลัมนที่ไมใช PK
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 41
- 39. การเพิ่มความเร็วในการเขาถึง
ดีนอมอลไลเซชัน (Denormalization)
เพิ่มขอมูลของตารางหนึ่งเขาไปในอีกตาราง เพื่อเพิ่ม
ความเร็ว และลดการ join
ควรทําดีนอมอลไลเซชัน
ตารางอางอิง (Lookup Tables)
ความสัมพันธแบบ one-to-one
รวม attribute ของตารางแม (parent) ไวในตารางลูก (child)
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 45
- 41. การทําอินเด็กซ (Indexing)
อินเด็กซ (Index) = ตารางขนาดเล็กทีบรรจุคาจาก
่
คอลัมนในตารางและตําแหนงของคานั้นในตาราง
การคนหาสามารถใชอินเด็กซเพื่อหาตําแหนงของเร
คอรดตัวที่ตองการได
ตารางหนึงมีอนเด็กซไดไมจากัด แตถามากไปจะทําให
่ ิ ํ
เสียเวลาและทรัพยากรในดานอืน ่
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 47
- 43. การจัด Cluster
การจัดคลัสเตอรระหวางไฟล (Inter-file clustering)
จัดเรคอรดในที่สื่อเก็บขอมูลเพื่อใหเรคอรดที่เหมือนกันถูก
เก็บไวติดกัน
การจัดคลัสเตอรระหวางไฟล คลายกับการวางแยม เนย และ
ขนมปงไวชั้นใกลกนในรานคา เนืองจากสินคาเหลานีมักถูก
ั ่ ้
ซื้อไปดวยกัน
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 49
- 44. ประมาณการขนาดพื้นที่จัดเก็บขอมูล
ขนาดเรคอรด = ผลรวมของคาเฉลียของความกวางแต
ละคอลมน
บวกพื้นทีเพิ่มเติม (ผูผลิตอาจประเมินไวแลว)
่
ประมาณการจํานวนเรคอรดในปจจุบัน และอัตราการ
เพิ่ม
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 50
- 46. ออกแบบคลาสสําหรับจัดการขอมูล
ออกแบบคลาสดําเนินการเขาถึงและจัดการขอมูล
(Data access and manipulation class)
เปนตัวกลางในการแปลงระหวางอ็อบเจกตในแหลงเก็บ
ขอมูล และอ็อบเจกตในระบบ
แยกฟงกชนจัดการขอมูลจากคลาสของอ็อบเจกตใน
ั
ระบบ
สําหรับแตละคลาสในระบบมีคลาส DAM สําหรับติดตอ
กับตารางที่เกียวของในฐานขอมูล (เพิ่ม ลบแกไข)
่
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 52
- 49. กรณีศกษา
ึ
OOAD 1/2551 ดร.สุขสถิต มีสถิตย 57
- 51. ตัวอยางการออกแบบตาราง
Order Table OrderItem Table
Customer 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