การออกแบบระบบฐานข้อมูล
The System Development Life Cycle : SDLC วัฏจักรการพัฒนาระบบ (The System Development Life Cycle : SDLC) การพัฒนาระบบมาจากระบบสารสนเทศ จะมีขั้นตอนเป็นไปตาม วัฎจักรการพัฒนาระบบสารสนเทศ ประกอบไปด้วย 5 ระยะ (Phase) ดังนี้ การวางแผน (planning) การวิเคราะห์ (analysis) การออกแบบรายละเอียดของระบบ (detailed systems design) การดำเนินการ (implementation) การบำรุงรักษา (maintenance)
The Database Life Cycle : DBLC ฐานข้อมูลมีวงจรชีวิตคล้ายกับวัฏจักรการพัฒนาระบบสารสนเทศ โดยที่วัฏจักรฐานข้อมูล (DBLC) ประกอบด้วย 6 ขั้นตอนดังนี้ การศึกษาเบื้องต้น การออกแบบฐานข้อมูล การติดตั้งระบบ การทดสอบและประเมินผล การดำเนินการ การบำรุงรักษาและการปรับปรุง
1. การศึกษาเบื้องต้น การศึกษาเบื้องต้นมีวัตถุประสงค์ ดังนี้ 1.1 การวิเคราะห์สถานการณ์ขององค์กร 1.2 กำหนดปัญหาและข้อจำกัด 1.3 กำหนดจุดมุ่งหมาย 1.4 กำหนดขอบเขตของงาน
2. การออกแบบฐานข้อมูล 2.1 ออกแบบเชิงแนวคิด จะทำโดยการพัฒนาแบบจำลองข้อมูลให้มีความถูกต้อง ผู้ออกแบบจะต้องมีความละเอียดและความเข้าใจถึงข้อมูลของบริษัทเป็นอย่างดี - การกำหนดชนิดของ Entity - การกำหนดชนิดของความสัมพันธ์ - กำหนดแอตตริบิวต์ให้กับเอ็นติตี้ - จัดทำแอตตริบิวต์โดเมน - กำหนดคีย์คู่แข่งและคียหลัก - อาจใช้หลักการของ specialize/generalize กับ Entity (ถ้าจำเป็น) - เขียน Entity-Relationship Diagram - ทบทวนและตรวจสอบร่วมกันกับยูสเซอร์ว่าตรงกันที่คุยหรือไม่ อย่างไร
2. การออกแบบฐานข้อมูล 2.2 การเลือกโปรแกรมจัดการฐานข้อมูล ผู้ออกแบบต้องทราบถึงข้อจำกัดของระบบฐานข้อมูลเพื่อหลีกเลี่ยงความล้มเหลวในอนาคต 2.3 การออกแบบทางตรรกะ จะเกี่ยวข้องกับการตัดสินใจใช้รูปแบบเฉพาะของฐานข้อมูล การออกแบบเชิงตรรกะ จึงหมายถึง การแปลงการออกแบบระดับเชิงแนวคิด ให้เป็นแบบจำลองฐานข้อมูลในระดับภายใน ตามระบบการจัดการฐานข้อมูล 2.4 การออกแบบทางกายภาพ คือ กระบวนการในการเลือกหน่วยจัดเก็บข้อมูล และลักษณะการเข้าถึงข้อมูลของฐานข้อมูล
3. การติดตั้งระบบ การติดตั้งระบบฐานข้อมูลตามที่ได้ออกแบบมาแล้วขึ้นอยู่กับ ระบบจัดการฐานข้อมูลที่ใช้ด้วย โดยเริ่มต้นจากการสร้าฐานข้อมูล กำหนดผู้จัดการฐานข้อมูล กำหนดพื้นที่ที่ต้องการใช้ สร้างตาราง ต่าง ๆ ที่ต้องใช้ในระบบ
4. การทดสอบและการประเมินผล เป็นกระบวนการในการตรวจสอบดูว่าระบบที่พัฒนามาสามารถ ทำงานได้ตามที่ต้องการหรือไม่ ควรมีการเตรียมข้อมูลทดสอบไว้ ล่วงหน้า
5. การดำเนินการ ดำเนินการ เป็นระบบที่สมบูรณ์พร้อมให้ผู้ใช้ได้ใช้งาน เมื่อฐานข้อมูลผ่านขั้นตอนการประเมินผล ต่อไปก็เป็นขั้นการ ดำเนินการ เป็นระบบที่สมบูรณ์พร้อมให้ผู้ใช้ได้ใช้งาน
6. การบำรุงรักษาและการปรับปรุง หลักจากระบบได้เริ่มดำเนินการ ผู้จัดการฐานข้อมูลจะต้อง เตรียมการบำรุงรักษาฐานข้อมูล ดังนี้ 1. การป้องกันระบบ โดยการสำรองข้อมูลไว้ 2. การแก้ไขระบบให้ถูกต้อง โดยการกู้คืน 3. การปรับปรุงระบบ โดยเพิ่ม Entity และ Attribute และอื่น ๆ
การแปลงรูป ER-Diagram ไปเป็นรีเลชัน Entity Customer and Relation Customer Cus_ID Cus_Name Cus_Address Customer Customer Cus_ID Cus_Name Cus_Address Customer(Cus_ID, Cus_Name, Cus_Address)
การแปลงรูป ER-Diagram ไปเป็นรีเลชัน Entity Customer and Composite attribute and relation Customer City Street Cus_ID Cus_Name State Cus_Address Customer Zipcode Customer Cus_ID Cus_Name Street City State Zipcode Customer (Cus_id, Cus_name, street,city,state,zipcode)
การแปลงรูป ER-Diagram ไปเป็นรีเลชัน Entity Employee and Multivalued Attribure และการแปลงเป็น Relation Emp_Name Emp_Address Emp_ID Skill Employee Employee Employee_Skill Emp_ID Emp_Name Emp_Address Emp_ID Skill Employee(Emp_ID, Emp_Name, Emp_Address) Employee_Skill(Emp_ID, Skill)
การแปลงรูป ER-Diagram ไปเป็นรีเลชัน Weak Entity กับผลการแปลงรีเลชัน First_Name Last_Name Emp_Name Dep_Name Date_of_Birth Emp_ID Gender Employee Has Dependent Employee Dependent Emp_ID Emp_Name First_Name Last_Name Emp_ID Date_of_Birth Gender Employee(Emp_ID, Emp_Name) Dependent(First_Name, Last_Name, Emp_Id, Date_of_Birth, Gender)
การแปลงรูป ER-Diagram ไปเป็นรีเลชัน ความสัมพันธ์ระหว่าง Customer and Order กับการแปลงเป็นความสัมพันธ์แบบรีเลชัน Cus_Name Cus_ID Cus_Address Customer Submits Order_ID Order_Date Order Customer Order Cus_ID Cus_Name Cus_Address Order_ID Order_Date Cus_ID Customer(Cus_ID, Cus_Name, Cus_Address) Order(Order_ID, Order_Date, Cus_ID)
การแปลงรูป ER-Diagram ไปเป็นรีเลชัน ความสัมพันธ์แบบ (M:N) กับการแปลงเป็นรีเลชันทั้งสาม Order_Date Unit_Price Order_ID Quantity Product_ID Order Requests Product Order Order_Line Order_ID Order_Date Order_ID Product_ID Quantity Product Product_ID Unit_Price (Other Attribute) Order(Order_ID, Order_Date) Order_Line(Order_ID, Product_ID, Quantity) Product(Product_ID, unit_price,…)
การแปลงรูป ER-Diagram ไปเป็นรีเลชัน การแปลง Associative Entity เป็นรีเลชันทั้งสาม Order_Date Unit_Price Order_ID Quantity Product_ID Order Order Line Product Product_Desc Product_Finish Order Order_Line Order_ID Order_Date Product_ID Order_ID Quantity Product Product_ID Product_Desc Product_Finish Unit_Price
การแปลงรูป ER-Diagram ไปเป็นรีเลชัน การแปลง Associative Entity เป็นรีเลชันทั้งสาม (ต่อ) Order(Order_ID, Order_Date) Order_Line(Product_ID, Order_ID, Quantity) Product(Product_ID, Product_Desc, Product_Finish, Unit_Price)
การแปลงรูป ER-Diagram ไปเป็นรีเลชัน การแปลงความสัมพันธ์แบบ Unary (1:M) เป็นรีเลชันด้วยการรีเคอร์ชีพจาก FK Name Emp_ID Birthdate Employee Manages Employee Emp_ID Name Birthdate Manager_ID Employee(Emp_ID, Name, Birthdate, Manager_ID)
การแปลงรูป ER-Diagram ไปเป็นรีเลชัน การแปลงความสัมพันธ์จาก Supertype/Suptype เป็น Relation Address Emp_Name Emp_Type Employee Date_Hired Emp_No d H C S Hourly Employee Salaried Employee Consultant Hourly_Rate Annual_Salary Stock_Option Contract_No Billing_Rate
การแปลงรูป ER-Diagram ไปเป็นรีเลชัน การแปลงความสัมพันธ์จาก Supertype/Suptype เป็น Relation Employee Emp_No Emp_Name Address Emp_Type Date_Hired Hourly_Employee H_Emp_No Hourly_Rate Salaried_Employee S_Emp_No Annual_Salary Stock_Options Consultant C_Emp_No Contract_No Billing_Rate Employee(Emp_No, Emp_Name, Address, Emp_type, Date_Hired) Hourly_Employee(H_Emp_no, Hourly_Rate) Salaried_Employee(S_Emp_No, Annual_Salary, Stock_Options) Consultant(C_Emp_No, Contract_No, Billing_Rate)