Professional Documents
Culture Documents
ดร.สุขสถิต มีสถิตย
การวิเคราะหและออกแบบเชิงวัตถุ
2/2550
z เพื่อใหนักศึกษาเขาใจกระบวนการออกแบบการจัดการขอมูล
แบบถาวรในระบบเชิงวัตถุได
z เพื่อใหนักศึกษาเขาใจรูปแบบการจัดเก็บออบเจ็คถาวร
z เพื่อใหนักศึกษาสามารถแปลงออบเจ็คใหเหมาะกับรูปแบบ
การจัดเก็บ
z เพื่อใหนักศึกษาสามารถออกแบบเพื่อปรับปรุงประสิทธิภาพ
แหลงจัดเก็บขอมูล
z เพื่อใหนักศึกษาสามารถออกแบบคลาสสําหรับเขาถึงและ
จัดการขอมูล
1. เลือกรูปแบบในการเก็บออบเจ็คแบบถาวร
2. แปลงออบเจ็คใหอยูในรูปแบบการจัดเก็บทีเ่ ลือก
3. เพิ่มประสิทธิภาพการจัดเก็บออบเจ็คแบบถาวร
4. ออกแบบคลาสสําหรับเขาถึงและจัดการขอมูล
z แฟมขอมูล (Files)
– แบบลําดับ (Sequential access file)
– แบบสุม (Random access file)
z ฐานขอมูล (Databases)
– แบบรีเลชันนอล (Relational databases)
– แบบออบเจ็ครีเลชันนอล (Object-relational
databases)
– เชิงวัตถุ (Object-oriented databases)
z ใชการดําเนินการแบบสุม
หรือแบบตรง (อาน เขียน
คนหา) ได
z มีประสิทธิภาพสูงในการทํางานแบบสุม เชน การ
คนหา หรือแกไขออบเจ็คตัวใดตัวหนึง่ โดยเฉพาะ
z ทํางานแบบลําดับ เชน การสรางรายงาน มี
ประสิทธิภาพนอย
z ขอมูลเก็บในรูปกลุมตาราง
z ตารางประกอบดวยแถว
z แตละแถว แบงเปนคอลัมนใชในการเก็บขอมูลชนิดพืน ้ ฐาน
z แตละแถวมีไพรมารีคีย (Primary key)
z ตารางที่เกี่ยวพันกันเชื่อมโยงผานฟอเรนคีย (Foreign key)
z ฟอเรนคีย เก็บไพรมารีคย ี ของเรคอรดที่เกีย
่ วของซึ่งอยูใน
อีกตาราง
z RDBMS = ซอฟตแวรสําหรับสรางและจัดการ
ฐานขอมูลแบบรีเลชันนอล
z มีความสามารถในการรักษาความถูกตองในการ
อางอิง (Referential Integrity) และอืน
่ ๆ
z ใชภาษา Structured Query Language (SQL)
เปนภาษามาตรฐานในการเขาถึงขอมูลในตาราง
z พัฒนามาจากฐานขอมูลแบบรีเลชันนอล
z ขอมูลเก็บในรูปกลุมตาราง แตคอลัมนสามารถเก็บออบเจ็ค
ได
z โดยใชชนิดขอมูลกําหนดโดยผูใช (user defined types)
z ใชระบบจัดการฐานขอมูลแบบออบเจ็ครีเลชันนอล (Object-
Relational Database Management System, ORDBMS)
– ใชภาษา SQL ที่ขยายใหจัดการชนิดขอมูลกําหนดโดยผูใชใน
ตารางได
– ไมรองรับการสืบทอดคุณสมบัติ
z เก็บออบเจ็คโดยตรง
z เอ็กซเทนต (Extent) = กลุมออบเจ็คของคลาสหนึ่ง
– แตละออบเจ็คมี object ID ซึ่งไมซ้ํากัน
z ใชระบบจัดการฐานขอมูลเชิงวัตถุ (Object-Oriented
Database Management System, OODBMS)
– การรักษาความถูกตองในการอางอิง (Referential Integrity)
สําคัญ
– รองรับการสืบทอดคุณสมบัติ
z พิจารณาจุดเดนจุดดอย
z ชนิดขอมูลที่ตอ งจัดเก็บ
z ประเภทของระบบทีส ่ ราง
z รูปแบบทีใ่ ชในปจจุบัน
z ความตองการในอนาคต
z เงือ
่ นไขอืน
่ ๆ
z ขอดี
– รองรับโดยภาษาโปรแกรมโดยตรง
– เหมาะกับการจัดเก็บชั่วคราว หรือระยะสั้น
– ออกแบบเพื่อใชงานเฉพาะดานไดดี
z ขอจํากัด
– การจัดการทุกอยางตองทําผานภาษาโปรแกรม
– การควบคุมการเขาถึงขึ้นกับระบบปฏิบัติการ
– มักมีขอมูลซ้าํ ซอน ทําใหเกิดขอผิดพลาดในการปรับปรุง
ขอมูล
z รองรับการใชขอ
มูลรวมกันระหวางแอพพลิเคชัน
z สามารถจัดการขอมูลแบบมีโครงสรางปริมาณมาก
ได
z รองรับการคนหาขอมูลแบบซับซอนสําหรับขอมูล
แบบมีโครงสราง
z สนุบสนุนการสรางรายงานแบบยากจากขอมูลทีเ่ ก็บ
z สามารถจัดการทรานแซกชันได
z ขอดี
– เทคโนโลยีเชิงพานิชยที่ไดรบ
ั การยอมรบแลว
– สามารถรองรับความตองการขอมูลที่หลากหลาย
z ขอจํากัด
– ไมรองรับแนวคิดเชิงวัตถุ ทําใหความขัดแยงดานชนิด
ขอมูลกับภาษาโปรแกรม และปญหาในการแปลงรูปแบบ
ระหวางออบเจ็คและตาราง
z ขอดี
– รับขอดีสืบทอดจาก RDBMS
– รองรับชนิดขอมูลที่ซับซอน
z ขอจํากัด
– การรองรับแนวคิดเชิงวัตถุมีจํากัด ขึ้นอยูก
บ
ั ผูผ
ลิต
z ขอดี
– รองรับชนิดขอมูลที่ซับซอน
– รองรับแนวคิดเชิงวัตถุโดยตรง
• ขอจํากัด
– ยังไมคงที่
– ขาดบุคลากรที่เชียวชาญ และตองเรียนรูม
าก
z เทียบออบเจ็คเปนออบเจ็คในตารางโดยตรง
z โอเปอเรชันอิมพลิเมนตโดยภาษาโปรแกรม
2 วิธี
1. แอททริบิวที่ถายทอดมา คัดลอกไวในทุกตารางของคลาส
ลูกหลาน ไมมีตารางสําหรับ abstract คลาส
z ขอดี – เร็วเพราะไมมีการ join
z ขอเสีย – ขนาดฐานขอมูลเพิ่มขึ้น ถามีการแกไข superclass ทุก
คลาสลูกหลาน ตองแกตาม
2. abstract คลาสมีตารางของตัวเอง ซึ่งตารางของคลาส
ลูกหลานอางอิง
z ขอดี – ลดความซ้ําซอน
z ขอเสีย – ถาคียรวมเปลี่ยนตองแกไขทั้งในตาราง abstract คลาส
และซับคลาส
3 วิธี
1. สรางตารางสําหรับ super คลาสเทานั้น แอททริบิวของซับคลาส
กลายเปนแอททริบิวของ super คลาส และมีคา null เมื่อไมไดใช
z เหมาะ กรณีซับคลาสตางจากsuper คลาสในดานพฤติกรรมมากกวาแอ
ททริบิว ตองมีtype แอททริบิวสําหรับแยกแยะซับคลาส
2. สรางตารางสําหรับ ซับคลาสเทานั้น แอททริบิวของ super คลาสไวที่
ซับคลาส
z เหมาะ กรณี abstract super คลาส เพราะไมมีออบเจ็คของ super
คลาส
3. สรางตารางใหทั้ง super คลาส และซับคลาส แยกกัน ในการดึง
ขอมูลตองเขาถึงทั้ง ตารางsuper คลาส และซับคลาส อาจตองมี
type แอททริบิว
z ขอมูลเก็บในกลุมตาราง
z เก็บชนิดขอมูลพื้นฐาน
z เก็บไดเฉพาะขอมูล เก็บพฤติกรรมไมได
z ขอมูลในระบบที่เก็บในออบเจ็คตองแปลงจาก
โครงสรางขอมูลออบเจ็คเปนโครงสรางเชิงตาราง
z Coupling ระหวาง application และ RDBMS ตอง
ใหสว นนอยทีส
่ ุดของระบบรู interface ของระบบ
z แสดง inheritance ในฐานขอมูล ขอมูลใน
ฐานขอมูล ความสามารถในการอยูถาวรในภาษา
โปรแกรม
z การเก็บโอเปอเรชัน
z Object DBMS
– เก็บออบเจ็คตามที่เปน
– ติดตอโดยใชภาษาโปรแกรมโดยตรง ฉะนัน
้ interface
เฉพาะจึงไมจําเปน
z ขอดี
– เก็บออบเจ็คไดในฐานขอมูล ( ไมเก็บโอเปอเรชัน)
– ไมตองแปลง
– ภาษา ODBMS ถูกรวมไวการ OOPL
z การใชพน
ื้ ที่ในการจัดเก็บ
– ไมมีขอมูลซ้ําซอน
z ลดการเสียพื้นที่
z ลดขอความขัดแยงระหวางขอมูล
– มีคาวางในตารางนอย
z ลดปญหาในการแปลความหมาย
z ความเร็วในการเขาถึง
– ลดเวลาการเขาถึงที่ขอมูล ซึ่งอาจแยกอยูในหลายตาราง
– ลดการ join ตาราง
z 1NF
– คอลัมนในแตละแถวเก็บคาเดียว
z 2NF
– ทุกคอลัมนทไ
ี่ มใชคียขึ้นกับทุกคียทรี่ วมเปน PK
z 3NF
– ไมมีคอลัมนที่ขื้นกับคาในคอลัมนที่ไมใช PK
z ดีนอมอลไลเซชัน (Denormalization)
– เพิ่มขอมูลของตารางหนึ่งเขาไปในอีกตาราง เพื่อเพิ่ม
ความเร็ว และลดการ join
– ควรทําดีนอมอลไลเซชัน
z ตารางอางอิง (Lookup Tables)
z ความสัมพันธแบบ one-to-one
z รวม attribute ของตารางแม (parent) ไวในตารางลูก (child)
z ขนาดเรคอรด = ผลรวมของคาเฉลียของความ
กวางแตละคอลมน
z บวกพื้นทีเ่ พิ่มเติม (ผูผลิตอาจประเมินไวแลว)
z ประมาณการจํานวนเรคอรดในปจจุบัน และอัตรา
การเพิ่ม
z ออกแบบคลาสดําเนินการเขาถึงและจัดการขอมูล
(Data access and manipulation class)
– เปนตัวกลางในการแปลงระหวางออบเจ็คในแหลงเก็บ
ขอมูล และออบเจ็คในระบบ
z แยกฟงกชนั จัดการขอมูลจากคลาสของออบเจ็คใน
ระบบ
z สําหรับแตละคลาสในระบบมีคลาส DAM สําหรับ
ติดตอกับตารางทีเ่ กีย
่ วของในฐานขอมูล (เพิ่ม ลบ
แกไข)
44 OOAD 2/2550 ดร.สุขสถิต มีสถิตย
ออกแบบคลาสสําหรับจัดการขอมูล
1..1 0..*
0..1
Review Table
1..1
OverseasOrder Table 0..* -CDPrimaryKey
0..* -CDPrimaryKey
Tracks Table
-CDPrimaryKey
-TracksPrimaryKey