ฐานข้อมูลและการออกแบบฐานข้อมูล
ฐานข้อมูลและการออกแบบฐานข้อมูล ระบบจัดการฐานข้อมูล (DBMS : DataBase Management System) เป็นระบบซอฟต์แวร์ ช่วยในการอำมวยความสะดวกและช่วยจัดการฐานข้อมูลให้เรา ภาษา SQL (Structure Query Language) เป็นภาษาหนึ่งที่ใช้ระบบจัดการฐานข้อมูล เป็นภาษาที่ง่ายและมีประสิทธิ์ภาพ ตัวอย่าง (DBMS) : - Oracle - Informix - DB2 - Progress - Ingress - Sybase - Magic - Mysql - SqlServer - FoxPro - Powerbuilder - Access - Foxbase ฯลฯ
แบบจำลองฐานข้อมูล (DataBase Models) แบบจำลองแบบแตกสาขา (Hierarchical Model) แบบจำลองแบบเครือข่าย (Network Model) แบบจำลองเชิงสัมพันธ์ (Relational Model) แบบจำลองแบบกระจาย (Distribute Model) แบบจำลองแบบเชิงวัตถุ (Object Oriented Model)
ฐานข้อมูลเชิงสัมพันธ์ (Relational DataBase) ตาราง Customer Id Cahr(5) Name char(28) Addr char(18) Tel Char(8) Credit Int(8) Curr_Bal int(8) C41351 Phongwut Chonburi 393335 300000 150000 - - - - - - - - - - - - - - - - - -
ศัพท์ที่ควรรู้ Table หรือ Entity หรือ Relation Attribute หรือ Field หรือ Column Tuple หรือ record หรือ Row Primary Key คีย์หลัก Alternative Key คีย์คู่แข่ง Secondary Key คีย์รอง Foreign Key คีย์นอก
ความสัมพันธ์ (Relation) แบบหนึ่งต่อหนึ่ง (One-to-One) เช่น รหัสนิสิต กับชื่อ-สกุลนิสิต แบบหนึ่งต่อกลุ่ม (One-to-Many) เช่น อาจารย์ ก. สอนนิสิตหลายคน แบบกลุ่มต่อหนึ่ง (Many-to-One) เช่น นิสิตหลายคนเรียนกับอาจารย์ ก. แบบกลุ่มต่อกลุ่ม (Many-to-Many) เช่น อาจารย์หลายคนสอนนิสิตหลายกลุ่ม
เงื่อนไขของความสัมพันธ์ การสร้างเงื่อนไขของความสัมพันธ์เพื่อข้อมูลยังคงมีสภาพที่ถูกต้อง (Integrity) สอดคล้องกัน (Consistency) และไม่เกิดการซ้ำซ้อน (Redundant) Cascade ยอมให้กระทำเป็นทอด ๆ เช่นในการลบ การแก้ไขข้อมูล เช่น * Cascade Update Related Fields * Cascade Delete Related Records Restricted ยอมให้ดำเนินการได้อย่างมีเงื่อนไข เช่นยอมให้ลบถ้าไม่มีข้อมูลอ้างอิง Nullity ยอมให้เปลี่ยนเป็นค่าว่างเช่นการลบคีย์นอก
การออกแบบฐานข้อมูล (DataBase Design) การออกแบบ โมเดลฐานข้อมูล (Data Modeling) การสร้างและกำหนดโครงสร้างในมุมมองของผู้ใช้ การกำหนดเอนทิตีหลัก (Identify major Entities) การกำหนด แอททรีบิวต์ (Identify Attribute) กำหนดความสัมพันธ์ระหว่างเอนทิตี (Determine relationships between Entities) กำหนดคีย์หลักและคีย์รอง (Determine Primary and Alternate Key) กำหนดคีย์นอก (Determine Foreign key) กำหนดคีย์กฎธุรกิจ (Determine key business rules)
การออกแบบฐานข้อมูล (DataBase Design) (ต่อ) การออกแบบ โมเดลฐานข้อมูล (Data Modeling) เพิ่มรายละเอียดในมุมมองของผู้ใช้ การเพิ่มแอททรีบิวต์ที่เหลือ (Add remaining Attributes) การตรวจสอบกฎนอร์นัลไลเซชัน (Validate normalization rules) กำหนดโดเมน (Determine domains)กำหนดกฎการจัดการกับข้อมูล (Trigger operations)
การออกแบบฐานข้อมูล (DataBase Design) (ต่อ) การออกแบบ โมเดลฐานข้อมูล (Data Modeling) การรวมมุมมองของผู้ใช้ การเชื่อมมุมมองของผู้ใช้เข้าด้วยกัน (Combine user views) การรวมเข้ากับโมเดลที่มีอยู่แล้ว (ถ้ามี) วิเคราะห์เสถียรภาพและการเติบโตในอนาคต