Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
ฐานข้ อมูลเชิงสั มพันธ์ Introduction to Relation Model 1 ประวัติความเป็ นมาฐานข้อมูลเชิงสัมพันธ์ รู ้จกั ดีในบทความชื่อ “A Relational Model of Data for Shared Data Banks” ของ Dr. Edgar Frank Codd (นักวิจยั ของ IBM ขณะนั้น) โดยมีทฤษฎีทางคณิ ตศาสตร์ (ทฤษฎีของ set) มารองรับ โดยสามารถแก้ปัญหา Data Redundancy และ Data Inconsistency แนวคิดของ Codd ถูกนามาพัฒนาเป็ นผลิตภัณฑ์ซอฟแวร์ระบบ ฐานข้อมูลในเวลาต่อมา ระบบฐานข้อมูลตัวแรกที่ออกสู่ ตลาดคือ ระบบฐานข้อมูล Oracle ของบริ ษทั Relational Software 2 ความหมายของระบบฐานข้อมูล ฐานข้ อมูล (database) หมายถึง กลุ่มของข้อมูลที่ถูกเก็บ รวบรวมไว้ โดยมีความสัมพันธ์ซ่ ึ งกันและกัน โดยไม่ได้บงั คับว่าข้อมูล ทั้งหมดจะต้องจัดเก็บไว้ในแฟ้มเดียวกันหรื อแยกเก็บหลาย ๆ แฟ้ม ระบบจัดการฐานข้ อมูล (Database Management System) หมายถึง ซอฟท์แวร์ที่เปรี ยบเสมือนสื่ อกลางระหว่าง ผูใ้ ช้และโปรแกรมต่าง ๆ ที่เกี่ยวข้องกับการใช้ฐานข้อมูล ความสาคัญของฐานข้อมูล ◦ ลดการเก็บข้อมูลที่ซ้ าซ้อน ◦ รักษาความถูกต้องของข้อมูล ◦ การป้องกันและรักษาความปลอดภัยให้กบั ข้อมูลได้อย่างสะดวก 3 ระบบบริ หารฐานข้อมูล (Database Management System :DBMS) ◦ ◦ ◦ ◦ สามารถใช้ขอ้ มูลร่ วมกันได้ มีความเป็ นอิสระของข้อมูล สามารถขยายงานได้ง่าย ทาให้ขอ้ มูลบูรณะกลับสู่ สภาพปกติได้เร็ วและมีมาตรฐาน 4 ระบบบริ หารฐานข้อมูล (Database Management System :DBMS) DBMS จะทาหน้าที่เป็ นตัวกลางระหว่างข้อมูลกับโปรแกรมที่มาใช้ งานฐานข้อมูลและผูใ้ ช้งานในการติดต่อไปยังฐานข้อมูลเพื่อทางานที่ ผูใ้ ช้งานสั่งมาให้เสร็ จ ระบบบริ หารฐานข้อมูล เป็ นโปรแกรมระบบที่สามารถให้ผใู ้ ช้กาหนด สร้าง และบารุ งรักษาฐานข้อมูล พร้อมกาหนดสิ ทธิ ในการควบคุมการ เข้าถึงข้อมูล โดยมีคุณสมบัติ ดังนี้ ◦ Data Definition Language : DDL ◦ Data Manipulation Language : DML ◦ ควบคุมการเข้าถึงฐานข้อมูล เช่น Security, Integrity และ Recovery Control System 5 ระบบบริ หารฐานข้อมูล (Database Management System :DBMS) ◦ สามารถนาข้อมูลเก่าเข้าสู่ ระบบฐานข้อมูล ได้อย่างอัติโนมัติ ◦ สนับสนุนการสารองข้อมูลเมื่อเกิดความผิดพลาด และสามารถนาเข้าสู่ ระบบ ใหม่ได้เมื่อเกิดเหตุฉุกเฉิ น ◦ สนับสนุนการปรับโครงสร้างของแฟ้มให้อยูใ่ นรู ปแบบที่เหมาะสม (File reorganization) ◦ สนับสนุนเครื่ องมือในการจัดทารายงาน Report generator เช่น Heading Report, Footing Report และ Data Summarization ◦ สนับสนุนการปฏิบตั ิการตรวจสอบดูแลประสิ ทธิภาพของระบบได้ (Performance Monitoring) ◦ ฯลฯ 6 กลุ่มผูใ้ ช้ (User Group) กลุ่มผูใ้ ช้ หมายถึง กลุ่มบุคคลที่เข้ามาเกี่ยวข้องกับฐานข้อมูล สามารถ แบ่งได้หลายประเภทตามหน้าที่และความรับชอบในระบบฐานข้อมูล ดังนี้ ◦ ผูใ้ ช้ทวั่ ไป (End users) ผูใ้ ช้งานสมัยใหม่ (Sophisticated user) ผูใ้ ช้งานปกติ (Naïve user) ◦ ผูอ้ อกแบบฐานข้อมูล (Database Design) ◦ นักเขียนโปรแกรม (Application Programmer) ◦ ผูบ้ ริ หารข้อมูล (Data Administrator : DA) 7 ผูบ้ ริ หารฐานข้อมูล (Database Administrator : DBA) ผูบ้ ริ หารฐานข้อมูล หมายถึง คนหรื อกลุ่มคนที่รับผิดชอบ ออกแบบ และบริ หารฐานข้อมูล โดยมีคุณสมบัติดงั นี้ ◦ เป็ นผูท้ ี่มีความรู ้ดา้ นเทคนิค ◦ เป็ นนักการฑูต ◦ เป็ นนักบริ หาร นอกจากจะต้องมีคุณสมบัติดงั กล่าวข้างต้นแล้ว ยังมีหน้าที่หลักต้อง รับผิดชอบ ดังนี้ ◦ วางแผนฐานข้อมูล (Planning the Database) วางแผนระบบข้อมูลในเบื้องต้น (Preliminary Database by Feasibility Study) กาหนดความต้องการของผูใ้ ช้ (Identifying User Requirement) 8 ผูบ้ ริ หารฐานข้อมูล (Database Administrator : DBA) กาหนดชื่อ แหล่งที่มา ความหมายและการใช้งานของข้อมูล (Developing and Maintaining the Data Dictionary) กาหนดแบบจาลองแนวความคิด (Designing the Logical Model) เลือกโปรแกรมบริ หารฐานข้อมูล (Choosing DBMS) พัฒนาแบบจาลองกายภาย (Developing the Physical Model) ◦ พัฒนาฐานข้อมูล (Developing the Database) สร้างฐานข้อมูลและนาข้อมูลเข้า (Creating and Loading the Database) พัฒนามุมมองของผูใ้ ช้งาน (Developing User View) กาหนดมาตรฐานของข้อมูล (Developing and Enforcing Data Standard) กาหนดมาตรฐานของโปรแกรม (Developing and Enforcing Application Program Standard) 9 ผูบ้ ริ หารฐานข้อมูล (Database Administrator : DBA) อบรมให้ความรู ้แก่ผใู ้ ช้งาน (Doing User Training) ดูแลให้ระบบฐานข้อมูลมีการดาเนินงานดีที่สุด (Ensuring Best Database Performance) ดูแลประสิ ทธิภาพ (Monitoring Performance) ปรับแต่ง และจัดโครงสร้างให้เหมาะสม (Turing and Reorganization) รักษาความทันสมัยและเป็ นปัจจุบนั ของฐานข้อมูล (Keeping Current On Database Improvements) 10 แบบจาลองข้อมูลเชิงสัมพันธ์ (Relational Database Model) แบบจาลองฐานข้อมูลแบบรี เลชันนัล หรื อแบบจาลองฐานข้อมูลเชิง สัมพันธ์ เป็ นแบบจาลองฐานข้อมูลที่อยูบ่ นพื้นฐานความคิดทาง คณิ ตศาสตร์เรื่ องความสัมของเซ็ต เป็ นงานวิจยั ซึ่ งถูกนาเสนอขึ้น ประมาณปี พ.ศ.2513 (ค.ศ.1970) โดย ดร.คอดด์ (Dr.Codd) แบบจาลองฐานข้อมูลแบบเชิงสัมพันธ์น้ ี ขอ้ มูลในฐานข้อมูลจะถูกเก็บ อยูใ่ นลักษณะของตาราง (Table) หลาย ๆ ตาราง ซึ่ งมีความสัมพันธ์ กัน ซึ่ งเรี ยกแต่ละตารางว่า รี เลชัน (Relation) รี เลชันมี องค์ประกอบ ดังนี้ 11 แบบจาลองข้อมูลเชิงสัมพันธ์ (Relational Database Model) Attribute แอททรบิวท์ Relation รีเลชัน รหัสเจ้ าหน้ าที่ ชื่ อ-สกุล แผนก เงินเดือน ความชานาญ 2030 2519 3007 จิตใส ใจดี องอาจ สุ ภาพ ใหม่ รักหมู่ คอมพิวเตอร์ บุคคล คอมพิวเตอร์ 34000 38000 35000 ภาษา C กฏหมายแรงงาน Unix Tuples Cardinality ทัพเปิ ล คาร์ ดนิ อลลิตี้ Degree ดีกรี รูปที่ 6.1 แสดงองค์ประกอบของรีเลชัน 12 แบบจาลองข้อมูลเชิงสัมพันธ์ (Relational Database Model) รี เลชันหรื อตาราง 2 มิติซ่ ึ งเปรี ยบเสมือนแฟ้มข้อมูล (File) แฟ้มข้อมูล (File) จะประกอบด้วยแถวในแนวนอนซึ่ งเรี ยกว่าทัพเปิ ล (Tuple) คอลัมน์ในแนวตั้งซึ่ งเรี ยกว่าแอททริ บิวท์ (Attribute) แต่ละแถวหรื อทัพเปิ ลคือข้อมูล 1 เรคอร์ด (Record) ซึ่ งแสดงค่า ของข้อมูลสาหรับเอนทิต้ ี 1 เอนทิต้ ีในรี เลชันนั้น แต่ละคอลัมน์หรื อแอททริ บิวท์คือข้อมูล 1 ฟิ ลด์ ซึ่ งแสดงคุณสมบัติต่าง ของรี เลชันนั้น กลุ่มของข้อมูลที่เป็ นไปได้ของแต่ละแอททริ บิวท์คือโดเมน (Domain) 13 แบบจาลองข้อมูลเชิงสัมพันธ์ (Relational Database Model) จานวนของทัพเปิ ลในหนึ่งรี เลชันซึ่ งก็คือจานวนแถวในหนึ่งตารางเรี ยกว่า คาร์ ดินอลลิต้ ี (Cardinality) จานวนของแอททริ บิวท์ในหนึ่งรี เลชันซึ่ งก็คือจานวนคอลัมน์ในตารางหนึ่ง ๆ เรี ยกว่าดีกรี (Degree) ดีกรี ของรี เลชัน (จานวนของคอลัมน์ในตาราง) ชื่อเรี ยก 1 ยูนารี รีเลชัน (Unary Relation) 2 ไบนารี รีเลชัน (Binary Relation) 3 เทอร์นารี รีเลชัน (Ternary Relation) N เอ็นนารี รีเลชัน (N-nary Relation) ตารางที่ 6.1 แสดงชื่อเรี ยกของรี เลชันตามดีกรี 14 แบบจาลองข้อมูลเชิงสัมพันธ์ (Relational Database Model) การแสดงโครงสร้างของรี เลชันด้วยข้อความประกอบด้วย ชื่อของรี เลชันตามด้วย รายชื่อของแอททริ บิวท์ท้งั หมดของรี เลชันนั้นในวงเล็บ โดยใช้เครื่ องหมาย จุลภาค (,) คัน่ ระหว่างแอททริ บิวท์แต่ละตัวซึ่ มีรูปแบบดังนี้ ชื่อรี เลชัน(ชื่อแอททริ บิวท์ตวั ที่ 1, ชื่อแอททริ บิวท์ตวั ที่ 2, ...., ชื่อแอททริ บิวท์ตวั สุดท้าย) ตัวอย่าง ผูป้ ่ วย(รหัสผูป้ ่ วย, ชื่อ-สกุล, หมายเลขห้อง-หมายเลขเตียง, ที่อยู)่ EMPLOYEE(EMP_ID,NAME,DEPT,SALARY) EMP_ID NAME DEPT SALARY 200103 จิตรใส ใจดี คอมพิวเตอร์ 34,000 200114 สะอาด เรี ยบร้อย คอมพิวเตอร์ 35,000 250519 องอาจ สุภาพ บุคคล 30,000 300107 ใหม่ รักหมู่ คอมพิวเตอร์ 32,000 300210 ขวัญตา น่ารัก บัญชี 28,000 รู ปที่ 6.2 แสดงตัวอย่าง ข้อมูลในรี เลชัน EMPLOYEE 15 คุณสมบัติของรี เลชัน (Relational Properties) แต่ละช่องในตารางจะบรรจุขอ้ มูลเพียง 1 ค่าเท่านั้น แต่ละคอลัมน์ในตารางหนึ่ ง ๆ จะต้องมีชื่อเรี ยกที่แตกต่างกัน ชื่อแต่ละ คอลัมน์จะเป็ นชื่อของแต่ละแอททริ บิวท์ ค่าของข้อมูลที่อยูใ่ นแต่ละคอลัมน์คือ ค่าของแต่ละแอททริ บิวท์ จะต้อง อยูใ่ นขอบเขตของโดเมนที่กาหนดไว้สาหรับคอลัมน์น้ นั ข้อมูลในแต่ละแถวของตารางจะต้องแตกต่างกัน การเรี ยงลาดับของคอลัมน์จากซ้ายไปขวาไม่มีความสาคัญ การเรี ยงลาดับก่อนหลังจากบนลงไปล่างของแถวในตารางไม่มี ความสาคัญ 16 คุณสมบัติของรี เลชัน (Relational Properties) คาศัพท์เฉพาะที่ใช้ในแบบจาลอง ฐานข้อมูลเชิงสัมพันธ์ คาศัพท์ที่ใช้ในฐานข้อมูลเชิงสัมพันธ์ คาศัพท์ที่ใช้ทวั่ ไป รี เลชัน (Relation) ตาราง(Table),ชนิดเรคคอร์ด(Record Tyep), ไฟล์(File ทัพเปิ ล (Tuple) แถว(Row),เรคคอร์ด(Record) แอททริ บิวท์ (Attribute) คอลัมน์(Column),ฟิ ลด์(Field) คาร์ ดินอลลิต้ ี (Cardinality) จานวนของแถวข้อมูลในตาราง ดีกรี (Degree) จานวนของคอลัมน์ในตาราง โดเมน (Domain of an Attribute) ค่าของข้อมูลที่เป็ นไปได้แต่ละแอททริ บิวท์ ตารางที่ 6.2 สรุ ปคาศัพท์เฉพาะที่ใช้ในแบบจาลองฐานข้อมูลเชิงสัมพันธ์ 17 คาศัพท์ที่ใช้ในแบบจาลองข้อมูลแบบรี เลชัน ค่านัล (Null Value) ◦ ค่านัลจะใช้แทนการไม่มีขอ้ มูลหรื อกรณี ยงั ไม่ทราบค่าข้อมูลที่แน่นอน ค่านัล ไม่ใช้ค่าศูนย์หรื อไม่ใช่ช่องว่าง แต่ใช้แสดงว่ายังไม่มีขอ้ มูลนั้นเก็บอยู่ รหัสนักศึกษา ภาควิชา วิชา เกรด 41071025 วิศวกรรมโยธา English II B 41071025 วิศวกรรมโยธา Programming Null Value 41071209 วิศวกรรมไฟฟ้า English II B 41090534 สถิติ Programming Null Value …………. …….. …….. ……. รู ปที่ 6.3 แสดงรี เลชันผลการเรี ยน 18 ไพร์มารี คียห์ รื อคียห์ ลัก (Primary Key: PK) ไพร์มารี คียห์ รื อคียห์ ลัก หมายถึงแอททริ บิวท์ที่สามารถใช้เพื่อชี้ เฉพาะเจาะจงว่าต้องการระบุถึงข้อมูลแถวใดในรี เลชันนั้น มี คุณสมบัติ 3 ประการ ดังนี้ ◦ ค่าของข้อมูลของแอททริ บิวท์ที่เป็ นคียห์ ลักในแต่ละแถวของรี เลชันหนึ่ง ๆ จะ ไม่ซ้ ากัน (Unique) ◦ ทุกรี เลชันจะต้องมีคียห์ ลัก โดยที่คียห์ ลักจะต้องประกอบด้วยแอททริ บิวท์ จานวนที่นอ้ ยที่สุดที่จะใช้ระบุถึงข้อมูลแถวหนึ่งแถวใดได้ คือจะต้องไม่ สามารถดึงเอาแอททริ บิวท์ใดออกไปแล้วส่ วนที่เหลือยังคงสามารถเป็ นคีย ์ หลักได้ ◦ ค่าแอททริ บิวท์คียห์ ลักจะต้องไม่เป็ นค่านัล (Not Null) Ex. ผูป้ ่ วย(รหัสผูป้ ่ วย, ชื่อ-สกุล, หมายเลขห้อง-หมายเลขเตียง, ที่ อยู)่ 19 ฟอร์เรนท์คียห์ รื อคียน์ อก (Foreign Key: FK) ฟอร์เรนท์คียห์ รื อคียน์ อกหรื อคียอ์ า้ งอิงคือแอททริ บิวท์หรื อกลุ่มของแอททริ บิวท์ ในรี เลชันหนึ่งซึ่งจะไปเป็ นคียห์ ลักในอีกรี เลชันหนึ่ง ดังนั้นค่าคียน์ อกจะมีค่า เท่ากับคียห์ ลักในแถวใดแถวหนึ่งของอีกรี เลชัน หรื อมีค่านัล (Null Value) คียน์ อกและคียห์ ลักของอีกรี เลชันที่มีความสัมพันธ์กนั ไม่จาเป็ นต้องมีชื่อเดียวกัน แต่ตอ้ งอยูใ่ นโดเมนเดียวกัน ใช้คียน ์ อกเป็ นการกาหนดความสัมพันธ์ระหว่างรี เลชัน และใช้ควบคุมความคง สภาพ (Integrity Rule) โดยคียน์ อกนี้อา้ งอิงไปยังที่มีค่าอยูจ่ ริ งในอีกรี เล ชัน การแสดงโครงสร้างของรี เลชันด้วยข้อความ จะใช้เส้นประเพื่อแสดงแอททริ บิวท์ ที่เป็ น คียน์ อก เช่นพิจารณารี เลชันเกี่ยวกับการอบรมซึ่งประกอบด้วยสองรี เลชัน คือ รี เลชันผูบ้ รรยายและ รี เลชันหลักสู ตร แอททริ บิวท์ “รหัสผูบ้ รรยาย” จะเป็ น คียน์ อกของรี เลชันหลักสู ตรและเป็ นคียห์ ลักของรี เลชันผูบ้ รรยาย ดังนี้ 20 ฟอร์เรนท์คียห์ รื อคียน์ อก (Foreign Key: FK) หลักสูตร(รหัสหลักสูตร, ชื่อหลักสูตร, รหัสผูบ้ รรยาย) ผูบ้ รรยาย(รหัสผูบ้ รรยาย, ชื่อผูบ้ รรยาย, หมายเลขโทรศัพท์) รหัสหลักสูตร ชื่อหลักสูตร รหัสผูบ้ รรยาย CS101 โครงสร้างข้อมูล A007 CS102 ระบบปฏิบตั ิงาน B050 CS201 ระบบจัดการฐานข้อมูล A010 CS202 เครื อข่ายคอมพิวเตอร์ B050 CS203 การบริ หารโครงงานสารสนเทศ A007 (ก) รี เลชันหลักสูตร รหัสผูบ้ รรยาย ชื่อผูบ้ รรยาย หมายเลขโทรศัพท์ A007 จันทร์สวย สดใส 425-9899 A010 คมคา เจริ ญดี 311-2590 B050 ภูเขา มัน่ คง 881-1780 B003 น้ าใส ใจดี 413-3526 C015 ข้ามฟ้า พาฝัน 881-5665 (ข) รี เลชันผูบ้ รรยาย รู ปที่ 6.4 แสดงรี เลชันหลักสูตรและรี เลชันผูบ้ รรยาย 21 คียค์ ู่แข่ง (Candidate Key) แคนดิเดทคียห์ รื อคียค์ ู่แข่งคือคียท์ ี่เป็ นคู่แข่งสาหรับคียห์ ลักในรี เลชันหนึ่ง ๆ เนื่องจากเป็ น แอททริ บิวท์หรื อกลุ่มของแอททรบิวส์ที่สามารถจะเป็ นคียห์ ลักได้ คียค์ ู่แข่งที่ไม่ได้รับเลือกเป็ นคียห์ ลักจะเรี ยกว่าออเทอร์เนทคียห์ รื อคียส์ ารอง (Alternate Key) ในรี เลชันพิจารณารี เลชันเกี่ยวกับพนักงานดังนี้ พนักงาน(รหัสพนักงาน,ชื่อ-สกุล,แผนก,เงินเดือน,เลขบัตรประชาชน) รหัสพนักงาน ชื่อ-สกุล แผนก เงินเดือน หมายเลขบัตรประชาชน 200103 จิตรใส ใจดี คอมพิวเตอร์ 34,000 4 1030 00099 12 0 200114 สะอาด เรี ยบร้อย คอมพิวเตอร์ 35,000 4 1004 00005 30 0 250519 องอาจ สุภาพ บุคคล 30,000 4 1025 00030 22 0 300107 ใหม่ รักหมู่ คอมพิวเตอร์ 32,000 4 1070 00015 67 0 300210 ขัวญตา น่ารัก บัญชี 28,000 4 1063 00077 88 0 รู ปที่ 6.5 แสดงรี เลชันพนักงาน 22 คียค์ ู่แข่ง (Candidate Key) แอททริ บิวท์ที่เป็ นคียค์ ู่แข่งในรี เลชัน “พนักงาน” ในรู ปที่ 6.5 คือแอ ททริ บิวท์ “รหัสพนักงาน” และ “หมายเลขบัตรประชาชน” เนื่องจาก “รหัสพนักงาน” ของพนักงานแต่ละคนจะไม่ซ้ ากันเลย และ “หมายเลขบัตรประชาชน” ของพนักงานแต่ละคนจะไม่ซ้ ากัน เช่นกัน ดังนั้นแอททริ บิวท์ “รหัสพนักงาน” หรื อ แอททริ บิวท์ “หมายเลขบัตรประชาชน” จึงสามารถเป็ นคียห์ ลักในรี เลชัน พนักงานได้ ดังนี้ -พนักงาน(รหัสพนักงาน,ชื่อ-สกุล,แผนก,เงินเดือน,หมายเลข บัตรประชาชน) -พนักงาน(รหัสพนักงาน,ชื่อ-สกุล,แผนก,เงินเดือน,หมายเลข บัตรประชาชน) 23 คอมโพสิ ทคียห์ รื อคียร์ วม (Candidate Key) คอมโพสิ ทคียห์ รื อคียร์ วมคือคียท์ ี่ประกอบด้วยแอททริ บิวท์มากกว่าหนึ่งแอททริ บิวท์ เช่น พิจารณารี เลชัน ผลการเรี ยน1 ดังนี้ ผลการเรี ยน1(รหัสนักศึกษา,ภาคการศึกษา,เกรดเฉลี่ย) รหัสนักศึกษา ภาคการศึกษา เครดเฉลี่ย 41071025 1/2541 2.77 41071025 2/2541 3.02 41071209 1/2541 2.98 41071209 2/2541 2.75 41090543 1/2541 2.22 41090543 2/2541 2.50 41030111 1/2541 3.00 .......... รู ปที่ 6.6 แสดงรี เลชัน ผลการเรี ยน1 24 นอลคียแ์ อททริ บิวท์ (Nonkey Attribute) นอลคียแ์ อททริ บิวท์คือแอททริ บิวท์อื่นๆ ในรี เลชันที่ไม่ได้ใช้ส่วนใดหนึ่งของ คียห์ ลักในรี เลชันนั้นพิจารณารี เลชัน ผลการเรี ยน2(รหัสนักศึกษา,ภาคการศึกษา,เกรดเฉลี่ย,เกรดเฉลี่ย) รหัสนักศึกษา ภาคการศึกษา ภาควิชา เกรดเฉลี่ย 41071025 1/2541 วิศวกรรมโยธา 2.77 41071025 2/2541 วิศวกรรมโยธา 3.02 41071209 1/2541 วิศวกรรมไฟฟ้า 2.98 41071209 2/2541 วิศวกรรมไฟฟ้า 2.75 41090534 1/2541 สถิติ 2.22 41090534 2/2541 สถิติ 2.50 41030111 1/2541 คณิ ตศาสตร์ 3.00 ........ รู ปที่ 6.7 แสดงรี เลชัน ผลการเรี ยน2 25 กฏของความคงสภาพ (Integrity Rule) กฏของความคงสภาพคือข้อกาหนดเพื่อใช้ควบคุมความถูกต้องของ ฐานข้อมูล ซึ่ งจะป้องกันฐานข้อมูลจากการมีขอ้ มูลที่ผิดจากความ เป็ นจริ ง กฏควบคุมความคงสภาพ มี 2 กฏ คือ ◦ กฏเพื่อความคงสภาพของเอนทิต้ ี (Entity Integrity Rule) ◦ กฏเพื่อความคงสภาพของการอ้างอิง (Referential Integrity Rule) 26 กฏเพื่อความคงสภาพของเอนทิต้ ี (Entity Integrity Rule) กฏเพื่อความคงสภาพของเอนทิตี้ (Entity Integrity Rule) กฏเพื่อความคงสภาพของเอนทิต้ ีกาหนดว่า “จะไม่อนุญาตให้แอททริ บิวท์ใดที่เป็ นส่ วนของคียห์ ลักของรี เลชันมีค่านัล (Null Value) สาเหตุที่ค่าของข้อมูลของคียห์ ลักในแต่ละแถวของรี เลชันจะต้องไม่ เป็ นนัล เพราะว่าค่าของข้อมูลของคียห์ ลักจะถูกใช้เพื่อเจาะจงว่าเรากาลังระบุ ถึงข้อมูลใดในรี เลชั้นนั้น ตัวอย่างเช่น ถ้ามีการกาหนดข้อมูลให้กบั รี เลชัน “การพักหอพัก” ดัง รู ปที่ 7.1 จะไม่สามารถแยกระหว่างข้อมูลแถวที่ 3 กับแถวที่ 5 ในรี เลชันได้ เนื่องจาก “รหัสนักศึกษา” เป็ นค่านัลและ “อาคารห้องพัก” มีค่าเดียวกันคือ กล้วยไม้ การพักหอพัก(รหัสนักศึกษา,อาคารห้องพัก) 27 กฏเพื่อความคงสภาพของเอนทิต้ ี (Entity Integrity Rule) รหัสนักศึกษา อาคารหอพัก 38100 สายหยุด 38122 ราชาวดี Null Value กล้วยไม้ 38179 สายหยุด Null Value กล้วยไม้ รู ปที่ 7.1 รี เลชันการพักหอพัก การควบคุมให้เป็ นไปตามกฏเพื่อความคงสภาพของเอนทิต้ ี ทาได้โดยใชคาสัง่ เพื่อกาหนดแอททริ บิวท์ที่เป็ นหรื อคียห์ ลักของรี เลชัน แล้วระบบจะคอยควบคุม ให้เป็ นไปตามกฏ 28 กฏเพื่อความคงสภาพของเอนทิต้ ี (Entity Integrity Rule) ตัวอย่าง คาสัง่ เพื่อควบคุมกฏเพือความคงสภาพของเอนทิต้ ีในรี เลชัน “FEE” ดังรู ปที่ 7.2 ACTIVITIES YEARLY-FEE เทนนิส 3,200 แอโลบิก 4,500 ว่ายน้ า 3,500 ปิ งปอง 1,500 แบดมินตัน 2,700 รู ปที่ 7.2 รี เลชัน FEE(ACITIVITIES,YERALY-FEE) CREATE TABLE FEE (ACTIVITIES CHAR (20) PRIMARY KEY NOT NULL, YERALY-FEE INTEGER) 29 กฏเพื่อความคงสภาพของการอ้างอิง (Referential Integrity Rule) กฏเพื่อความคงสภาพของการอ้างอิงกาหนดว่า “ในรี เลชันที่มีคียน์ อก” ค่า ของข้อมูลคียน์ อกจะต้องมีค่าเท่ากับค่าของคียห์ ลักในแถวใดแถวหนึ่งของอีกรี เล ชัน หรื อมิฉะนั้นมีค่าเป็ นค่านัล (Null Value) พิจารณารี เลชันสมาชิก และ รี เลชันค่าบริ การซึ่ งมีขอ้ มูลเก็บอยูด่ งั รู ปที่ 7.3 สมาชิก(รหัสสมาชิก,วันหมดอายุ,ประเภทกิจกรรม) ค่าบริ การ(ประเภทกิจกรรม,ค่าบริ การต่อปี ) รหัสสมาชิก วันหมดอายุ ประเภทกิจกรรม 39007 30/06/42 ว่ายน้ า 39098 30/09/42 แอโรบิก 40100 30/06/43 เทนนิส 40155 31/12/43 ว่ายน้ า (ก) รี เลชันสมาชิก 30 กฏเพื่อความคงสภาพของการอ้างอิง (Referential Integrity Rule) ประเภทกิจกรรม ค่าบริ การต่อปี เทนนิส 3,200 แอโรบิก 4,500 ว่ายน้ า 3,500 ปิ งปอง 1,500 แบดมินตัน 2,700 รู ปที่ 7.3 รี เลชันสมาชิก และรี เลชันค่าบริ การ ระบบจะไม่ให้มีการเปลี่ยนแปลงข้อมูลที่จะทาให้ผดิ กฏของความคง สภาพ โดยจะแจ้งให้ผใู ้ ช้ทราบว่าการกระทานั้นผิดกฏ หรื อระบบอาจจะให้ มีการเปลี่ยนแปลงได้โดยการควบคุมให้เป็ นไปตามกฏเพื่อความคงสภาพ ของการอ้างอิง ทาได้โดยการที่ผอู ้ อกแบบฐานข้อมูลกาหนดให้ ระบบ จัดการฐานข้อมูล จัดการการเปลี่ยนแปลงได้ 3 วิธี • การกระทาแบบมีขอ้ จากัด (RESTRICTED) • การกระทาต่อเนื่อง (CASCADES) • การใส่ ค่านัล (NULLIFIES) 31 กฏเพื่อความคงสภาพของการอ้างอิง (Referential Integrity Rule) การเพิม่ ข้ อมูล (Insertion) พิจารณาการเพิม่ ข้อมูลแถวใดๆ ลงในรี เลชันที่มีแอททริ บิวท์คียน์ อก โดยทัว่ ไปการใส่ ขอ้ มูลในแอททริ บิวท์คียน์ อกแถวใดๆ ให้มีค่าหนึ่งค่าใด จะ ทาได้เมื่อค่านั้นมีค่าเท่ากับค่าของคียห์ ลักในแถวใดแถวหนึ่งของ รี เลชันที่มี แอททริ บิวท์น้ นั เป็ นคียห์ ลัก การเพิ่มข้อมูล “41209 31/05/44 ยิงปื น” ลงในรี เลชัน “สมาชิก” ในรู ปที่ 7.3 จึงทาไม่ได้เนื่องจากในรเลชัน “ค่าบริ การ” ไม่มี กิจกรรมประเภทยิงปื น แต่ในบางกรณี อาจยอมให้มีการใส่ ค่านัลในแอททริ บิวท์คียน์ อกแถว ใดๆ ได้ ในกรณี ที่ยงั ๆ ไม่ได้กาหนดค่านั้นไว้ในคียห์ ลักดังนั้น การเพิ่มข้อมูล “41209 31/05/44 ค่านัล” ลงในรี เลชัน “สมาชิก” ในรู ปที่ 7.3 จึงทา ได้และทาให้เกิดผลดังรู ปที่ 7.4 32 กฏเพื่อความคงสภาพของการอ้างอิง (Referential Integrity Rule) รหัสสมาชิก วันหมดอายุ ประเภทกิจกรรม 39007 31/06/42 ว่ายน้ า 39098 31/09/42 แอโรบิก 40100 31/06/43 เทนนิส 40155 31/12/43 ว่ายน้ า 41209 31/05/44 Null Value (ก) รี เลชันสมาชิก หมายเหตุ Null Value ในตารางแทนค่านัล ประเภทกิจกรรม ค่าบริ การต่อปี เทนนิส 3,200 แอโรบิก 4,500 ว่ายน้ า 3,500 ปิ งปอง 1,500 แบดมินตัน 2,700 (ข) รี เลชันค่าบริ การ รู ปที่ 7.4 แสดงรี เลชันสมาชิกและรี เลชันค่าบริ การ 33 กฏเพื่อความคงสภาพของการอ้างอิง (Referential Integrity Rule) การเปลีย่ นแปลงแก้ ไขข้ อมูล (Update) พิจารณาการเปลี่ยนแปลงแก้ไขข้อมูลคียห์ ลักที่มีขอ้ มูลคียน์ อกอ้างอิงถึง ตัวอย่างเช่น ต้องการเปลี่ยนแปลง ชื่อประเภทกิจกรรม “แอโรบิก” ในรี เลชัน “ค่าบริ การ” เป็ น “กายบริ หาร การกระทาแบบมีข้อจากัด (RESTRICTE) ระบบจัดการฐานข้อมูล จะไม่อนุญาตให้ทาการเปลี่ยนแปลงแก้ไขข้อมูลนั้น เด็ดขาด ถ้าข้อมูลที่จะเปลี่ยนแปลงแก้ไขนั้นถูกอ้างอิงอยูใ่ นรี เลชันอื่น ตัง อย่างเช่นการเปลี่ยนแปลงชื่อประเภทกิจกรรมในรู ป 7.4 จึงยังทาไม่ได้ ระบบจัดการฐานข้อมูลจะอนุญาตให้ทาการเปลี่ยนแปลงแก้ไขข้อมูลที่ ไม่ถูกอ้างอิงอยูใ่ นรี เลชันอื่นได้ ตัวอย่างเช่นจะอนุญาตให้เปลี่ยนแปลง ชื่อ ประเภทกิจกรรม “ปิ งปอง” ในรี เลชันค่าบริ การ ในรู ปที่ 7.4 เป็ น “ยกน้ าหนัก” จะทาให้มีผลดังรู ปที่ 7.5 34 กฏเพื่อความคงสภาพของการอ้างอิง (Referential Integrity Rule) รหัสสมาชิก วันหมดอายุ ประเภทกิจกรรม 39007 31/06/42 ว่ายน้ า 39098 31/09/42 แอโรบิก 40100 31/06/43 เทนนิส 40155 31/12/43 ว่ายน้ า (ก) รี เลชันสมาชิก ประเภทกิจกรรม ค่าบริ การต่อปี เทนนิส 3,200 แอโรบิก 4,500 ว่ายน้ า 3,500 ยกนา้ หนัก 1,500 แบดมินตัน 2,700 (ข) รี เลชันค่าบริ การ รู ปที่ 7.5 แสดงรี เลชันสมาชิกและค่าบริ การหลังจากการเปลี่ยนแปลงข้อมูล แบบมีขอ้ จากัด 35 กฏเพื่อความคงสภาพของการอ้างอิง (Referential Integrity Rule) การกระทาต่ อเนื่อง (CASCADES) ระบบจัดการฐานข้อมูลจะอนุญาตให้ทาการเปลี่ยนแปลงแก้ไข ข้อมูลคียห์ ลักนั้นได้โดยจะไปเปลี่ยนแปลงแก้ไขแถวข้อมูลที่มีคีย ์ นอกอ้างอิงถึงค่าข้อมูลนั้นในอีกรี เลชันหนึ่ ง ตัวอย่าง เช่น การเปลี่ยนแปลงชื่อประเภทกิจกรรม “แอโรบิก” ในรี เลชัน “ค่าบริ การ” ในรู ปที่ 7.4 เป็ น “กายบริ หาร” จะมีผลดังรู ป 7.6 36 กฏเพื่อความคงสภาพของการอ้างอิง (Referential Integrity Rule) รหัสสมาชิก วันหมดอายุ ประเภทกิจกรรม 39007 31/06/42 ว่ายน้ า 39098 31/09/42 กายบริ หาร 40100 31/06/43 เทนนิส 40155 31/12/43 ว่ายน้ า (ก) รี เลชันสมาชิก ประเภทกิจกรรม ค่าบริ การต่อปี เทนนิส 3,200 กายบริ หาร 4,500 ว่ายน้ า 3,500 ยกนา้ หนัก 1,500 แบดมินตัน 2,700 (ข) รี เลชันค่าบริ การ รู ปที่ 7.6 แสดงรี เลชันสมาชิกและค่าบริ การหลังจากการเปลี่ยนแปลงข้อมูล แบบการกระทาต่อเนื่อง 37 กฏเพื่อความคงสภาพของการอ้างอิง (Referential Integrity Rule) การใส่ ค่านัล (NULLIFIES) ระบบจัดการฐานข้อมูลจะอนุญาตให้ทาการเปลี่ยนแปลงแก้ไข ข้อมูลคียห์ ลักนั้นได้โดยจะใส่ ค่านัลให้กบั ข้อมูลแอททริ บิวท์คียน์ อก ที่อา้ งอิงถึงค่าข้อมูลนั้น ตัวอย่าง เช่น การเปลี่ยนแปลงชื่อประเภทกิจกรรม “แอโรบิก” ในรี เลชัน “ค่าบริ การ” ในรู ปที่ 7.4 เป็ น “กายบริ หาร” จะมีผลดังรู ป 7.7 38 กฏเพื่อความคงสภาพของการอ้างอิง (Referential Integrity Rule) รหัสสมาชิก วันหมดอายุ ประเภทกิจกรรม 39007 31/06/42 ว่ายน้ า 39098 31/09/42 Null Value 40100 31/06/43 เทนนิส 40155 31/12/43 ว่ายน้ า (ก) รี เลชันสมาชิก ประเภทกิจกรรม ค่าบริ การต่อปี เทนนิส 3,200 Null Value 4,500 ว่ายน้ า 3,500 ยกนา้ หนัก 1,500 แบดมินตัน 2,700 (ข) รี เลชันค่าบริ การ รู ปที่ 7.7 แสดงรี เลชันสมาชิกและค่าบริ การหลังจากการเปลี่ยนแปลงข้อมูล แบบการใส่ค่านัล 39 กฏเพื่อความคงสภาพของการอ้างอิง (Referential Integrity Rule) การลบข้ อมูล (Deletion) พิจารณาการลบข้อมูลคียห์ ลักที่มีขอ้ มูลคียน์ อกอ้างอิงถึง โดยทัว่ ไปไม่ ควรลบข้อมูลแถวใดในรี เลชันที่บรรจุค่าคียห์ ลักออกไปถ้ายังมีแถวที่มีค่าคีย ์ นอกเท่ากันอยู่ ในการลบข้อมูลระบบจัดการฐานข้อมูลจัดการดังนี้ การกระทาแบบมีข้อจากัด (RESTRICTED) ระบบจัดการฐานข้อมูล จะไม่อนุญาตให้ทาการลบข้อมูลคียห์ ลักนั้นเด็ดขาด ถ้าข้อมูลที่จะลบนั้นถูกอ้างอิงอยูใ่ นรี เลชันอื่น และ ระบบจัดการฐานข้อมูล จะ อนุญาตให้ทาการลบข้อมูลคียห์ ลักถ้าข้อมูลที่จะลบนั้นไม่ถูกอ้างอิงในรี เลชัน อื่น ดังนั้นการลบแถวของประเภทกิจกรรม “ว่ายน้ า” ออกจากรี เลชัน “ค่าบริ การ” ในรู ปที่ 7.4 จะทาไม่ได้ แต่ระบบจะยอมให้ลบข้อมูลแถวของ ประเภทกิจกรรม “แบดมินตัน” หรื อ “ปิ งปอง” ออกจากรี เลชัน “ค่าบริ การ” ดังในรู ปที่ 7.4 ได้ 40 กฏเพื่อความคงสภาพของการอ้างอิง (Referential Integrity Rule) การกระทาต่ อเนื่อง (CASCADES) ระบบจัดการฐานข้อมูลจะอนุญาตให้ทาการลบแถวข้อมูลคีย ์ หลักนั้นได้ โดยระบบจะไปลบแถวข้อมูลที่มีคียน์ อกอ้างอิงถึงค่า ข้อมูลนั้นในอีกรี เลชันหนึ่งออกไปด้วย ตัวอย่าง เช่น การลบข้อมูลแถวของประเภทกิจกรรม “ว่ายน้ า” ออกจากรี เลชัน “ค่าบริ การ” ในรู ปที่ 7.8 จะทาให้ผลดังนี้ 41 กฏเพื่อความคงสภาพของการอ้างอิง (Referential Integrity Rule) รหัสสมาชิก วันหมดอายุ ประเภทกิจกรรม 39007 31/06/42 ว่ายน้ า 39098 31/09/42 Null Value (ก) รี เลชันสมาชิก ประเภทกิจกรรม ค่าบริ การต่อปี เทนนิส 3,200 แอโรบิก 4,500 ปิ งปอง 3,500 แบดมินตัน 1,500 (ข) รี เลชันค่าบริ การ รู ปที่ 7.8 แสดงรี เลชันสมาชิกและค่าบริ การหลังจากการเปลี่ยนแปลงข้อมูล แบบการกระทาต่อเนื่อง 42 กฏเพื่อความคงสภาพของการอ้างอิง (Referential Integrity Rule) การใส่ ค่านัล (NULLIFIES) ระบบจัดการฐานข้อมูล จะอนุญาตให้ทาการลบแถวข้อมูลคีย ์ หลักนั้นได้ โดยจะใส่ ค่านัลให้กบั ข้อมูลแอททริ บิวท์คียน์ อกที่อา้ งอิง ถึงค่าข้อมูลที่ถูกลบไปนั้น คือจะทาให้ค่าของแอททริ บิวท์คียน์ อกที่ ไปตรงกับค่าคียห์ ลักที่จะถูกลบออกไปนั้นมีค่าเป็ นค่านัล ตัวอย่าง เช่น การลบข้อมูลแถวของประเภทกิจกรรม ว่ายน้ า ออกจากรี เลชัน “ค่าบริ การ” ในรู ปที่ 7.4 จะทาให้เกิดผลดังนี้ 43 กฏเพื่อความคงสภาพของการอ้างอิง (Referential Integrity Rule) รหัสสมาชิก วันหมดอายุ ประเภทกิจกรรม 39007 31/06/42 ว่ายน้ า 39098 31/09/42 แอโรบิก 40100 31/06/43 เทนนิส 40155 31/12/43 Null Value (ก) รี เลชันสมาชิก ประเภทกิจกรรม ค่าบริ การต่อปี เทนนิส 3,200 แอโรบิก 4,500 ปิ งปอง 1,500 แบดมินตัน 2,700 (ข) รี เลชันค่าบริ การ รู ปที่ 7.9 แสดงรี เลชันสมาชิกและค่าบริ การหลังจากการลบข้อมูลแบบใส่นลั 44 Relation Language Relational Database นั้นมีภาษาที่ใช้สาหรับจัดการกับข้อมูล ที่เก็บอยู่ 2 ภาษานัน่ คือ 1. Relational Algebra 2. Relational Calculus ข้อแตกต่างระหว่าง 2 ภาษา คือ Relational Calculus นั้นเป็ น ภาษาที่ใช้เพื่อกาหนดว่าต้องการอะไร (What?) มีลกั ษณะของภาษาที่ เข้าใจง่ายว่าภาษา Relation Algebra และถูกใช้โดยผูใ้ ช้งานฐานข้อมูล เพื่อกาหนดสิ่ งที่ตอ้ งการ เช่น การหาค่าของคอลัมน์ StudentID คอลัมน์ SubjectID จากตาราง Grade โดยเลือกมาเฉพาะแถวที่ค่าในคอลัมน์ Student_Grade เท่ากับ “A” เป็ นต้น (Grade.StudentID, Grade.SubjectID) WHERE Grade.Student_Grade = “A”) 45 Relational Language ส่ วน Relational Algebra เป็ นภาษาที่ DBMS ใช้อยูภ่ ายใน ฐานข้อมูลเพื่อให้ได้มาซึ่งสิ่ งที่ผใู ้ ช้ตอ้ งการ ภาษา Relational Algebra จะกาหนดเป็ นขั้นตอนเลยว่าวิธีการที่จะได้ขอ้ มูลนั้นต้องทาอย่างไรบ้าง (How?) โดยมีคาสัง่ พื้นฐานใน Relation Algebra อยู่ 8 ตัว คือ Restrict, Project, Product, Union, Intersect, Difference, Join และ Divide ตัวอย่าง เช่น (Grade WHERE Student_Grade = “A” [StudentID, StudentID] 46 Relational Language SQL(Structured Query Language) ก็คือ Relational Calculus ที่ถูกพัฒนาต่อมาเรื่ อยๆ จนกระทัง่ ได้เป็ นภาษา SQL ซึ่งมีความง่ายในการ ใช้งานเป็ นอย่างมาก ไม่วา่ ใครก็สามารถหัดเขียนคาสัง่ SQL ได้เนื่องจากใกล้เคียงกับ ภาษาอังกฤษมากนัน่ เอง Relational Calculus จะถูก DBMS เปลี่ยนให้เป็ น Relational Algebra ที่มีรายละเอียดว่าต้องทาอะไรบ้างจึงจะได้ขอ้ มูลที่ตอ้ งการมา ด้วยวิธีการเข้าถึงข้อมูลที่ง่ายกว่าจึงทาให้ Relational Database ได้รับความนิยม เพิ่มขึ้นไปอีก นอกเหนือจากการมีระบบจัดข้อมูลที่ประสิ ทธิภาพ และมีวิธีลดความซ้ าซ้อน ในการเก็บข้อมูลอย่างเป็ นขั้นตอน ประเภทของคาสัง่ SQL แบ่งตามลักษณะการใช้งานได้ 3 กลุ่ม คือ 1. Data Definition Language 2. Data Manipulation Language 3. Data Control Language 47 คาสัง่ ที่ใช้กาหนดโครงสร้างข้อมูล (Data Definition Language) คาสั่ งทีใ่ ช้ กาหนดโครงสร้ างข้ อมูล (Data Definition Language) คาสั่งในนี้ใช้สาหรับสร้าง ลบ หรื อเปลี่ยนแปลงโครงสร้างของ ตาราง วิว และ Index คาสัง่ DDL มีคาสัง่ 3 คาสัง่ คาสัง่ CREATE เป็ นคาสัง่ ที่ใช้สร้างตารางขึ้นมาโดยกาหนดชื่อของตารางกาหนด โครงสร้างของตารางว่ามีคอลัมน์อะไรบ้าง และกาหนดว่าแต่ละคอลัมน์น้ นั ใช้เก็บข้อมูล ชนิดใด การสร้างตารางด้วยคาสัง่ นี้จะได้ตารางเปล่าๆ ที่พร้อมจะเก็บข้อมูลต่อไป คาสัง่ ALTER หลังจากสร้างตารางขึ้นมาแล้วถ้าเราต้องการเปลี่ยนแปลงโครงสร้าง ตาราง เช่น คาสัง่ DROP ใช้ลบตารางที่ไม่ตอ้ งการออกจากระบบฐานข้อมูล 48 คาสัง่ ที่ใช้จดั การข้อมูล (Data Manipulation Language) คาสั่ งทีใ่ ช้ จัดการข้ อมูล (Data Manipulation Language) DML เป็ นกลุ่มคาสั่งที่มีการใช้งานมากที่สุด คาสั่งนี้แยกออกเป็ น 2 กลุ่ม 1. Retrieval Operation (คาสั่งที่ใช้เรี ยกดูขอ้ มูล) 2. Update Operation (คาสั่งที่ใช้ปรับปรุ งข้อมูล) 49 คาสัง่ ที่ใช้จดั การข้อมูล (Data Manipulation Language) Retrieval Operation คาสัง่ Select ใช้ในการค้นข้อมูลที่ตอ้ งการขึ้นมาใช้งาน เป็ นคาสัง่ ที่มี ความสาคัญมากถ้าเราต้องการนาข้อมูลที่เก็บอยูใ่ นฐานข้อมูลมาใช้ เรี ยกได้วา่ แค่ รู ้คาสัง่ เดียวก็สามารถทางานกับ Relational Database ได้เป็ นอย่างดี Update Operation คาสัง่ INSERT คาสัง่ นี้ใช้สาหรับเก็บข้อมูลลงไปในตาราง โดยจะมี การสร้างแถวขึ้นมาใหม่เพื่อเก็บข้อมูลเข้าไปในคอลัมน์ต่างๆ ที่เหมาะสม ดังนั้น หลังจากใช้คาสัง่ นี้จานวนแถวในตารางจึงเพิม่ ขึ้น คาสัง่ UPDATE เป็ นคาสัง่ ที่ใช้แก้ไขค่าของข้อมูลที่เก็บอยูใ่ นตาราง คาสัง่ DELETE เป็ นคาสัง่ ที่ใช้ลบแถวในตารางที่เราไม่ตอ้ งการใช้ งานข้อมูลในแถวนั้นๆ นั้น 50 คาสัง่ ที่ใช้ควบคุมระบบฐานข้อมูล (Data Control Language) คาสั่ งทีใ่ ช้ ควบคุมระบบฐานข้ อมูล (Data Control Language) DDL เป็ นคาสั่งที่เกี่ยวข้องกับการกาหนดสิ ทธิ ของผูใ้ ช้ในการ เข้าถึงทรัพยากรของระบบฐานข้อมูล โดยผูด้ ูแลระบบฐานข้อมูล จะใช้คาสัง่ ในกลุ่มนี้กาหนดสิ ทธิ ให้กบั ผูใ้ ช้แต่ละคน หรื อผูใ้ ช้จะ กาหนดสิ ทธิ เพื่ออนุญาตให้ผอู ้ ื่นมาใช้ทรัพยากรที่ตนเองเป็ น เจ้าของได้ 51 คาสัง่ ที่ใช้จดั การข้อมูล (Data Manipulation Language) คาสั่ งทีใ่ ช้ กาหนดสิ ทธิในการใช้ งานมี 2 คาสั่ ง คาสัง่ GRANT เป็ นคาสัง่ ที่ใช้กาหนดสิ ทธิให้กบั ผูใ้ ช้คนอื่นเพื่อให้ สามารถใช้งานทรัพยากรที่จาเป็ นได้ คาสัง่ REVOKE เป็ นคาสัง่ ที่ใช้ยกเลิกหรื อเรี ยกคืนสิ ทธิที่เคยให้ไว้ ทาให้ผใู ้ ช้ที่ถูกยกเลิกสิ ทธิไม่สามารถใช้งานทรัพยากรเดิมได้อีกต่อไป คาสั่ งทีใ่ ช้ ควบคุมการทางาน Transaction 2 คาสั่ ง คาสัง่ COMMIT เป็ นคาสัง่ ที่ใช้ยนื ยันการทางานหลังจากที่ Transaction หนึ่งๆ ทางานสาเร็จแล้ว มีผลให้เกิดการเปลี่ยนแปลงขึ้น จริ งๆ ในฐานข้อมูล คาสัง่ ROLLBACK ใช้ในกรณี ตรงข้ามกับคาสัง่ COMMIT โดยถ้า Transaction ใดทางานไม่สาเร็จสาเร็จก็ใช้คาสัง่ ROLLBACK เพื่อยกเลิกการกระทาทั้งหมดที่เกิดขึ้นแทน 52 พจนานุกรมข้อมูล (Data Dictionary) พจนานุกรม หมายถึง แฟ้มที่เก็บบันทึกรายละเอียดต่างๆ เกี่ยวกับ ข้อมูลที่จดั เก็บอยูภ่ ายในฐานข้อมูล ตัวอย่าง เช่น -โครงสร้างข้อมูล -โครงสร้างตาราง -โครงสร้างดรรชนี -กฏที่ใช้เพื่อควบคุมความบูรณภาพของข้อมูล (integrity rule) -กฏที่ใช้เพื่อรักษาความปลอดภัยของข้อมูล (security rule) ฯลฯ 53