1 / 46

บทที่ 12

บทที่ 12. Start. การออกแบบฐานข้อมูลในระดับกายภาพ ( Physical Database Design ). Next. การออกแบบฐานข้อมูลในระดับกายภาพ. Back. วัตถุประสงค์ 1. เพื่อให้ผู้เรียนสามารถเข้าใจและอธิบายการออกแบบฐานข้อมูลในระดับกายภาพ (Physical Database Design)

Télécharger la présentation

บทที่ 12

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. บทที่ 12 Start การออกแบบฐานข้อมูลในระดับกายภาพ (Physical Database Design) Next

  2. การออกแบบฐานข้อมูลในระดับกายภาพการออกแบบฐานข้อมูลในระดับกายภาพ Back วัตถุประสงค์ 1. เพื่อให้ผู้เรียนสามารถเข้าใจและอธิบายการออกแบบฐานข้อมูลในระดับกายภาพ (Physical Database Design) 2. เพื่อให้ผู้เรียนเข้าใจโครงสร้างทางกายภาพของฐานข้อมูล 3. เพื่อให้ผู้เรียนสามารถออกแบบฐานข้อมูลในระดับกายภาพ โดยแปลง Logical Schema ให้เป็น Table 4. เพื่อให้ผู้เรียนออกแบบและสร้างฐานข้อมูลในระดับกายภาพ โดยใช้ Microsoft Access Next

  3. เนื้อหาในบทที่ 12 ประกอบด้วย Back ส่วนที่ 1 รู้จักกับการออกแบบฐานข้อมูลในระดับกายภาพ (Physical Database Design) ส่วนที่ 2 โครงสร้างทางกายภาพของฐานข้อมูล ส่วนที่ 3 การออกแบบฐานข้อมูลในระดับกายภาพ โดยแปลง Logical Schema ให้เป็น Table ส่วนที่ 4การออกแบบและสร้างฐานข้อมูลในระดับกายภาพ โดยใช้ Microsoft Access Next

  4. เนื้อหาในบทที่ 12 ประกอบด้วย Project Identification and Selection Back Project Initiation and Planning 1. การออกแบบฐานข้อมูลในระดับกายภาพ 2. การออกแบบ Application Analysis Logical Design Physical Design Next Implementation Maintenance

  5. ส่วนที่ 1 รู้จักกับการออกแบบฐานข้อมูลในระดับกายภาพ(Physical Database Design) • การออกแบบฐานข้อมูลในระดับ Conceptual และ Logical เป็นการวางโครงสร้างของฐานข้อมูลที่ยังไม่มีการกำหนดหรือระบุรายละเอียดลงไปว่า ข้อมูลต่าง ๆ จะจัดเก็บลงในหน่วยความจำสำรองด้วยวิธีใด ใช้ซอฟต์แวร์อะไร • การออกแบบฐานข้อมูลในระดับกายภาพ จึงเป็นการออกแบบเพื่อกำหนดโครงสร้างทางกายภาพของฐานข้อมูล จากโครงสร้างที่ได้รับการออกแบบมาแล้วในระดับตรรกะ • ด้วยการนำ Relation ที่ได้มาสร้างเป็น Table • และกำหนดโครงสร้างทางกายภาพให้กับ Table นั้น • กำหนดกฎของความถูกต้อง (integrity Rules) • การกำหนดโครงสร้างแฟ้มข้อมูล (File Organization) Back Next

  6. ส่วนที่ 2 โครงสร้างทางกายภาพของฐานข้อมูล • โครงสร้างแฟ้มข้อมูล • โครงสร้างแฟ้มข้อมูลจะประกอบด้วยโครงสร้างพื้นฐานที่ลำดับจากหน่วยที่เล็กที่สุดไปยังหน่วยที่ใหญ่ที่สุด ตามลำดับต่อไปนี้ • 1. บิต (Bit) • 2.ไบต์ (Byte) • 3. ฟิลด์ (Field) • 4. เรคอร์ด (Record) • 5. ไฟล์ (File) Back Next

  7. โครงสร้างทางกายภาพของฐานข้อมูลโครงสร้างทางกายภาพของฐานข้อมูล • บิต (Bit) จะประกอบด้วยเลขฐานสอง (Binary digit) ที่ใช้แทนค่าหน่วยที่เล็กที่สุดของข้อมูลในระบบคอมพิวเตอร์ โดยบิตจะมีอยู่เพียงหนึ่งในสองสถานะเท่านั้นคือ 0 หรือ 1 • ไบต์ (Byte) จะประกอบด้วยจำนวนบิต (Bit) หลาย ๆ บิตมาเรียงต่อกัน เนื่องจากว่าเพียงบิตเดียวจะสามารถใช้แทนรหัสได้เพียงหนึ่งในสองสถานะเท่านั้น คือ 0 กับ 1 ดังนั้นจึงจำเป็นต้องนำบิตหลาย ๆ บิตมารวมกันเป็นไบต์ เช่น 1 ไบต์ มี 8 บิต ก็คือการนำเลข 0 กับ 1 มาเรียงต่อกันจนคร บ 1 ไบต์จึงทำให้สามารถสร้างรหัสแทนข้อมูลขึ้นมาเพื่อใช้สำหรับแทนตัวอักษรหรืออักขระที่แตกต่างกันได้ถึง 256 ตัวด้วยกัน

  8. โครงสร้างทางกายภาพของฐานข้อมูลโครงสร้างทางกายภาพของฐานข้อมูล • ฟิลด์ (Field) คือการนำอักขระตั้งแต่หนึ่งตัวขึ้นไปมารวมกันเพื่อให้เกิดความหมาย เช่น ฟิลด์ Cust_Id เป็นฟิลด์ที่ใช้เก็บข้อมูลรหัสลูกค้า ,ฟิลด์ Cust_name เป็นฟิลด์ที่ใช้เก็บข้อมูลชื่อลูกค้า เป็นต้น • เรคอร์ด (Record) คือของฟิลด์ที่สัมพันธ์กัน เช่นในหนึ่งเรคอร์ดประกอบฟิลด์ต่างๆ ที่ข้องเกี่ยวกันรวมกันเป็นชุด เรคอร์ดของลูกค้า ประกอบด้วยฟิลด์ รหัสลูกค้า ชื่อ-สกุล ที่อยู่ เบอร์โทรศัพท์ เป็นต้น ดังนั้นในหนึ่งเรคอร์ดก็จะต้องมีอย่างน้อยหนึ่งฟิลด์เพื่อใช้ในการอ้างอิงข้อมูลในเรคอร์ด นั้น ๆ • ไฟล์ (File) คือกลุ่มของเรคอร์ดสัมพันธ์กัน เช่นในแฟ้มข้อมูลลูกค้าประกอบด้วยเรคอร์ดของลูกค้าทั้งหมดของบริษัท ดังนั้นในหนึ่งไฟล์ก็จะต้องมีอย่างน้อยหนึ่งเรคอร์ดเพื่อใช้ในการอ่านข้อมูลขึ้นมาใช้งาน

  9. FILE RECORD RECORD RECORD ... RECORD FILED FILED FILED BYTE BYTE BIT BIT

  10. การกำหนดชนิดของข้อมูลการกำหนดชนิดของข้อมูล • การเลือกชนิดของข้อมูลต้องคำนึงถึงสิ่งต่อไปนี้ • ประหยัดเนื้อที่ในการจัดเก็บมากที่สุด • สามารถแทนค่าที่เป็นไปได้ทั้งหมดของ fields • คงคุณสมบัติความถูกต้องของข้อมูล • รองรับความเติบโตในอนาคตของข้อมูล

  11. Create Table factory ( fac_id int not null, fac_name varchar(25) not null, zone varchar(10) , Constraint pk_fac_id primary key (fac_id)); Create table car ( car_id int not null, car_name varchar(25) not null, series varchar(25) not null, color varchar(10), price real, car_date datetime, fac_id int, Constraint pk_car_id primary key (car_id), Constraint ak_car_name unique(car_name), Constraint ak_series unique(series), Constraint ch_color check(color in('red','black','blue','green')), Constraint ch_price check(price between 100000 and 500000), Constraint ch_date check(car_date < getdate()), Constraint fk_fac_id foreign key (fac_id) references factory);

  12. ส่วนที่ 3 การออกแบบฐานข้อมูลในระดับกายภาพ โดยแปลง Logical Schema ให้เป็น Table • การแปลง Logical Schema ให้อยู่ในรูปแบบของ Table • กำหนดโครงสร้างทางกายภาพให้กับฐานข้อมูล • กำหนดวิธีการรักษาความปลอดภัยให้กับฐานข้อมูล • ตรวจสอบและปรับเปลี่ยนระบบ Back Next

  13. การแปลง Logical Schema ให้อยู่ในรูปแบบของ Table • สำหรับการดำเนินงานของขั้นตอนนี้จะแบ่งเป็น 2 ส่วนดังนี้ • การออกแบบโครงสร้างทางกายภาพให้กับ Table • การกำหนด Integrity Rules

  14. การออกแบบโครงสร้างทางกายภาพให้กับ Table • การออกแบบโครงสร้างทางกายภาพให้กับ Table ได้แก่การนำ Relation ต่างๆ ที่กำหนดอยู่ใน Relational Schema ที่ได้จากการออกแบบฐานข้อมูลในระดับ Logical มาสร้างเป็น Table ซึ่งจะต้องมีการกำหนดรายละเอียดให้กับ Table ก่อนดังนี้ • ชื่อของ Table • รายชื่อ Attribute ต่างๆ ของแต่ละ Table • ประเภทของข้อมูล (Data type) ของแต่ละ Attribute • ขนาดของแต่ละ Attribute • รายชื่อของ Attribute ที่ทำหน้าที่เป็น Primary Key ,Foreign Key หรือ Alternate Key • Integrity Rule ที่ใช้ควบคุม Primary Key และ Foreign Key

  15. การออกแบบโครงสร้างทางกายภาพให้กับ Table Employee(Emp-No,Name,Address,Sex,Salary,DeptNo) • จากโครงสร้างต่อไปนี้สามารถนำมากำหนดโครงสร้างทางกายภาพได้ดังนี้

  16. การออกแบบโครงสร้างทางกายภาพให้กับ Table • อาจใช้ภาษา SQL ในการสร้าง Table ขึ้นใช้งานแทนเช่น CREATE TABLE Employee (EmpNo Char(5), Name VARCHAR (25), Address VARCHAR (30), Sex CHAR(1), Salary CURRENCY, DeptNo CHAR(3)) PRIMARY KEY (EmpNo);

  17. การกำหนด Integrity Rules • สามารถแบ่งเป็น 2 ส่วน ดังนี้ • การกำหนด Entity Integrity Rule เป็นการกำหนด IntegrityRule ขึ้นเพื่อควบคุมค่าของ Attribute ต่างๆ ให้มีค่าเป็นไปตามที่กำหนดดังเช่น ตัวอย่างคำสั่ง SQL • การกำหนด Referential Integrity Rule เป็นการกำหนด Integrity Rule ขึ้นเพื่อควบคุมความถูกต้องในการอ้างถึงข้อมูลระหว่าง Table ต่างๆ ดังเช่น ตัวอย่างคำสั่ง SQL

  18. การกำหนด Entity Integrity Rule CREATE DOMAIN Sex as CHAR(1) CHECK (VALUE IN (“M”, “F”)): CREATE TABLE Employee (EmpNo CHAR(5) Not Null, Name VARCHR(25) Not Null, Address VARCHAR(30) Not Null, Sex CHAR(1) Not Null, Salary CURRENCY Not Null, DeptNo CHAR(3) Not Null, PRIMARY KEY (EmpNo);

  19. การกำหนด Referential Integrity Rule CREATE DOMAIN Sex as CHAR(1) CHECK (VALUE IN (“M”, “F”)): CREATE TABLE Employee (EmpNo CHAR(5) Not Null, Name VARCHR(25) Not Null, Address VARCHAR(30) Not Null, Sex CHAR(1) Not Null, Salary CURRENCY Not Null, DeptNo CHAR(3) Not Null, PRIMARY KEY (EmpNo); FOREIGN KEY (DeptNo) REFERENCES Department ON DELETE NO ACTION ON UPDATE CASCADE;

  20. กำหนดโครงสร้างทางกายภาพให้กับฐานข้อมูลกำหนดโครงสร้างทางกายภาพให้กับฐานข้อมูล • จุดประสงค์ในการกำหนดโครงสร้างทางกายภาพให้กับฐานข้อมูล เพื่อให้สามารถใช้เนื้อที่ในการจัดเก็บข้อมูลได้อย่างมีประสิทธิภาพ และส่งถ่ายข้อมูลได้อย่างรวดเร็ว

  21. ขั้นตอนการกำหนดโครงสร้างทางกายภาพให้กับฐานข้อมูลขั้นตอนการกำหนดโครงสร้างทางกายภาพให้กับฐานข้อมูล • วิเคราะห์ปริมาณข้อมูล • กำหนดโครงสร้างของแฟ้มข้อมูล (File organization) • กำหนด Index ให้กับ Table • กำหนดโครงสร้างให้กับ Table เพื่อลดความซ้ำซ้อนของข้อมูล • คำนวณเนื้อที่ในการจัดเก็บข้อมูล

  22. วิเคราะห์ปริมาณข้อมูลวิเคราะห์ปริมาณข้อมูล • เป็นการวิเคราะห์ข้อมูลว่าเกี่ยวข้องกับงานต่าง ๆ อย่างไร เช่นความถี่ในการเพิ่ม ลบ แก้ไข หรือเรียกใช้งาน เป็นต้น เพื่อใช้ตัดสินใจเลือกโครงสร้างของแฟ้มข้อมูลที่เหมาะสมกับฐานข้อมูลต่อไป

  23. การกำหนดโครงสร้างแฟ้มข้อมูล (File Organization) • Unordered File : record ใหม่ถูกใส่เข้าไปต่อท้ายไฟล์ ไม่เรียงลำดับข้อมูล • Sequential File Organization : หรือจัดเก็บข้อมูลลงในไฟล์ โดยจัดเรียงลำดับ record ในไฟล์ตามฟิลด์ ๆ หนึ่งเรียกว่า Order field หรือ key field (ค่าของฟิลด์ต่อไปซ้ำ ส่วนใหญ่ใช้ Primary Key)

  24. Sequential File

  25. การกำหนดโครงสร้างแฟ้มข้อมูล (File Organization) • Index File Organization : • สร้างไฟล์ เป็น Index file ประกอบด้วยฟิลด์ 2 ฟิลด์ คือ • Field ที่เลือกมาทำ Index • Pointer เก็บตำแหน่งที่อยู่ของ Block ที่ data อยู่ • Index File แบ่งเป็น • Single level Index • Primary Index : index บนฟิลด์ที่เป็น Key field • Clustering Index : index บนฟิลด์ที่ไม่ Unique บน Order File • Secondary Index : index บน Unordered File บน Key field หรือไม่ใช่ก็ได้ • Multilevel Index • สร้าง Index file บน Primary Index

  26. Primary Index

  27. ClusteringIndex

  28. Secondary Index

  29. การกำหนดโครงสร้างแฟ้มข้อมูล (File Organization) • Hash File : สร้าง Hash File ประกอบด้วย ฟิลด์ 2 ฟิลด์ คือ • Bucket เก็บค่าที่เป็นไปได้เมื่อผ่าน Hash Function (เช่น h(x)=key mod 10) • Address ตำแหน่ง address ของข้อมูล

  30. ข้อพิจารณาในการเลือก Index fields • เลือก Primary key มาสร้างเป็น Primaryindex • Index ควรสร้างขึ้นบน Table ที่มีจำนวนข้อมูลอยู่มาก • หลีกเลี่ยงการใช้ Attribute ที่มีการเปลี่ยนแปลงค่าบ่อย • หลีกเลี่ยงการใช้ Attribute ที่มีขนาดใหญ่มาสร้างเป็น Index

  31. Index Definition in SQL • To create an index • CREATE INDEX <index-name> ON <relation-name>(<attribute-list>) • เช่น CREATE INDEX b-index ON branch(branch_name) • To delete an index • Dropindex <index-name> • เช่น Drop index b-index

  32. กำหนดวิธีการรักษาความปลอดภัยให้กับฐานข้อมูลกำหนดวิธีการรักษาความปลอดภัยให้กับฐานข้อมูล • ในการกำหนดความปลอดภัยให้กับฐานข้อมูล จะแบ่งออกเป็น 2 ส่วนดังนี้ • การกำหนดขอบเขตของข้อมูล (View) ให้กับผู้ใช้ • การกำหนดสิทธิ์การใช้งานให้กับผู้ใช้

  33. กำหนดวิธีการรักษาความปลอดภัยให้กับฐานข้อมูลกำหนดวิธีการรักษาความปลอดภัยให้กับฐานข้อมูล การกำหนดขอบเขตของข้อมูล (View) ให้กับผู้ใช้ การรักษาความปลอดภัยให้กับข้อมูลภายในฐานข้อมูลวิธีหนึ่งได้แก่ การกำหนดขอบเขตของข้อมูล ที่เรียกว่า View เพื่อกำหนดขอบเขตของข้อมูล ที่สามารถถูกกระทำโดยผู้ใช้ที่เรียกใช้ View เช่น CREATE VIEW Staff3 AS SELECT sno,fname,address,tel_no,position,sex FORM staff WHERE bno = “B3”;

  34. กำหนดวิธีการรักษาความปลอดภัยให้กับฐานข้อมูลกำหนดวิธีการรักษาความปลอดภัยให้กับฐานข้อมูล การกำหนดสิทธิ์การใช้งานให้กับผู้ใช้ จะส่งผลให้แต่ละคน สามารถเข้าถึงข้อมูลเฉพาะที่ตนเองมีสิทธิ์เท่านั้น เช่น GRANT SELECT, UPDATE,DELETE ON staff TO manager; เป็นคำสั่งที่ใช้กำหนดสิทธิ์การใช้งาน Table “staff” ซึ่งประกอบด้วย การเรียก ดูข้อมูล (SELECT) การแก้ไขข้อมูล (UPDATE) และการลบข้อมูล (DELETE) ให้กับผู้ใช้ที่ชื่อ “manager”

  35. การตรวจสอบและปรับเปลี่ยนระบบการตรวจสอบและปรับเปลี่ยนระบบ • ขั้นตอนสุดท้ายของการออกแบบฐานข้อมูลในระดับกายภาพ ได้แก่ • การตรวจสอบ • การปรับเปลี่ยนระบบ ซึ่งขั้นตอนที่เกิดขึ้น เมื่อฐานข้อมูลถูกใช้งานไปแล้ว เนื่องจากฐานข้อมูลที่ออกแบบไว้ อาจมีข้อผิดพลาดหรือ มีการเพิ่มเติม หรือเปลี่ยนแปลงความต้องการของผู้ใช้

  36. ส่วนที่ 4 การออกแบบและสร้างฐานข้อมูลในระดับกายภาพ โดยใช้ Microsoft Access • พื้นฐานการใช้งาน Microsoft Access Back Next

  37. ส่วนที่ 4 การออกแบบและสร้างฐานข้อมูลในระดับกายภาพ โดยใช้ Microsoft Access • การสร้างฐานข้อมูล • เปิดฐานข้อมูล Save ชื่อ Student.mdbและ Save Table ชื่อ • Student • สร้างโดยมี Field ดังนี้ • StudentCode Text 9 (Primary Key) • Prefix Num • StudentName Text 30 • StudentSurname Text 30 • Gender Num • Faculty Num • โดยถ้าเป็น Primary Key ให้ไปที่ Toolbar แล้วคลิกที่ปุ่มที่มีรูปคล้ายกุญแจ • ป้อนข้อมูลประมาณ 6 Record

  38. ส่วนที่ 4 การออกแบบและสร้างฐานข้อมูลในระดับกายภาพ โดยใช้ Microsoft Access

  39. ส่วนที่ 4 การออกแบบและสร้างฐานข้อมูลในระดับกายภาพ โดยใช้ Microsoft Access • คลิก Queries เพื่อ Create Query in Design View • คลิกขวาเลือก SQL View • ให้พิมพ์ • คลิก เพื่อ Run • ทดลองเขียนคำสั่งเพิ่ม • คลิก เพื่อ Run Select * FROM STUDENT Select * FROM STUDENTWHERE FACULTY = 2 Select StudentCode, StudentName, StudentSurname FROM Student WHERE Faculty=2

  40. ส่วนที่ 4 การออกแบบและสร้างฐานข้อมูลในระดับกายภาพ โดยใช้ Microsoft Access • การสร้าง Table เพิ่มดังนี้ • Save Table ชื่อ Faculty • สร้างโดยมี Field ดังนี้ • FacID Num (Primary Key) • FacultyName Text 30 • โดยถ้าเป็น Primary Key ให้ไปที่ Toolbar แล้วคลิกที่ปุ่มที่มีรูปคล้ายกุญแจ • ให้ทดลองป้อนข้อมูล • คณะวิศวกรรมศาสตร์ • คณะบริหารธุรกิจ • คณะนิติศาสตร์ • คณะศิลปะศาสตร์

  41. ส่วนที่ 4 การออกแบบและสร้างฐานข้อมูลในระดับกายภาพ โดยใช้ Microsoft Access • การสร้าง Table เพิ่มดังนี้ • Save Table ชื่อ PreFix • สร้างโดยมี Field ดังนี้ • PrefixID Num (Primary Key) • PrefixName Text 10 • โดยถ้าเป็น Primary Key ให้ไปที่ Toolbar แล้วคลิกที่ปุ่มที่มีรูปคล้ายกุญแจ • ให้ทดลองป้อนข้อมูล • นาย • นางสาว • นาง

  42. ส่วนที่ 4 การออกแบบและสร้างฐานข้อมูลในระดับกายภาพ โดยใช้ Microsoft Access • การสร้าง Queries • คลิกสร้างที่ Create Query in Design View • เพิ่ม Table ลงไปใน Query ทั้ง 3 Table • ลาก PrefixID ไปที่ Table Student ตรง Prefix • ลาก FacID ไปที่ Table Student ตรง Faculty • ลาก StudentCode มาวางตรงเขตข้อมูล • ลาก PrefixName มาวางตรงเขตข้อมูล • ลาก StudentName และ StudentSurname มาวางตรงเขตข้อมูล • ลาก FacultyName มาวางตรงเขตข้อมูล • คลิกเปิด(Open) • คลิกดู SQLจะได้คำสั่งต่อไปนี้

  43. ส่วนที่ 4 การออกแบบและสร้างฐานข้อมูลในระดับกายภาพ โดยใช้ Microsoft Access • SELECT Student.StudentCode, Prefix.PreFixName, Student.StudentName, Faculty.FacultyName • FROM Prefix INNER JOIN (Faculty INNER JOIN Student ON Faculty.FacID = Student.Faculty) ON Prefix.PreFixId = Student.Prefix;

More Related