Page 33 - วิศวกรรมซอฟต์แวร์
P. 33

กรณีตัวอย่างโครงการพัฒนาซอฟต์แวร์เช่ารถยนต์ 15-23

เรือ่ งที่ 15.2.2
กรณตี วั อยา่ งการออกแบบฐานข้อมลู

       การจัดเก็บข้อมูลสามารถกระท�ำได้หลากหลายวิธี เช่น การจัดเก็บข้อมูลลงบนไฟล์ (flat-file database)
หรือการจัดเก็บข้อมูลลงในระบบจัดการฐานข้อมูล (DBMS) การออกแบบฐานข้อมูลจะเกี่ยวข้องกับการก�ำหนด
ฟอรแ์ มตของขอ้ มลู ทจ่ี ะถกู จดั เกบ็ ในระบบฐานขอ้ มลู และการเสรมิ ประสทิ ธภิ าพฐานขอ้ มลู (database optimization)
โดยปกติแล้วนักออกแบบจะออกแบบฐานข้อมูลให้อยู่ในรูปแบบบรรทัดฐาน (normalization) คือการออกแบบ
ฐานข้อมูลเพ่ือลดปัญหาข้อมูลขัดแย้ง ปัญหาการเพ่ิม ปรับปรุง และลบข้อมูล รวมถึงการประหยัดเน้ือที่จัดเก็บข้อมูล
เพ่ือให้การท�ำงานเป็นไปอย่างมีประสิทธิภาพ ในระบบซอฟต์แวร์ขนาดใหญ่อาจมีความจ�ำเป็นต้องมีการจัดการท�ำให้
ข้อมูลไม่อยู่ในรูปแบบบรรทัดฐาน (denormalization) เนื่องจากการมีจ�ำนวนรีเลชั่นมาก ๆ อาจใช้เวลาในการค้นหา
มากจนเกนิ ไป เป็นต้น

       ในการพัฒนาซอฟต์แวร์ระบบเช่ารถยนต์นี้ผู้พัฒนาระบบเลือกจัดเก็บข้อมูลลงในระบบจัดการฐานข้อมูลช่ือ
มายเอสคิวแอล (MySQL) ซึ่งเป็นระบบจัดการฐานข้อมูลที่ได้รับความนิยมในการจัดเก็บข้อมูลที่ถูกใช้โดยโปรแกรม
ประยุกต์บนเว็บ ข้อพิจารณาท่ีส�ำคัญในการออกแบบฐานข้อมูลมีความเก่ียวข้องกับชนิดของข้อมูลท่ีจะถูกจัดเก็บ
ลงบนระบบจัดการฐานข้อมูล รีเลช่ัน การก�ำหนดคีย์ แสดงในตารางท่ี 15.6

ตารางท่ี 15.6 โครงสร้างฐานข้อมูลสำ� หรบั ระบบจัดการฐานขอ้ มูล MySQL

           ช่อื รีเลชนั่                      ชื่อข้อมูล          ชนดิ ของขอ้ มลู
TBL_Client
ส�ำหรับเก็บข้อมูลของลูกค้า         ClientID (PK)          AUTO_INCREMENT
                                   Security-ID (PK)       VARCHAR(10)
TBL_Car                            Name                   VARCHAR(10)
ส�ำหรับเก็บข้อมูลรถยนต์ที่ให้เช่า  Lastname               VARCHAR(20)
บริการ                             Cellphone              VARCHAR(12)

                                   CarID (PK)             AUTO_INCREMENT
                                   Type                   VARCHAR(3)
                                   GpsID                  VARCHAR(3)
                                   Brand                  VARCHAR(10)
                                   Register-Plate         VARCHAR(7)
                                   Status                 VARCHAR(1)
   28   29   30   31   32   33   34   35   36   37   38