SlideShare a Scribd company logo
ระบบฐานข้อมูล (Database System)
MDT 311 (2-2-6) ว่าที่ ร.ต. ดร.องอาจ อุ่นอนันต์
ว่าที่ ร.ต. ดร.องอาจ อุ่นอนันต์ (อ.อาท)
การศึกษา :
Ph.D. in Information Technology, King Mongkut's University of
Technology North Bangkok
Master's degree in Information Technology, King Mongkut’s
University of Technology North Bangkok
Bachelor's degree in Computer Science, Chandrakasem Rajabhat University
Contact : Tel & Line 089-687-5859
อธิบายรายวิชา
พื้นฐานการจัดเก็บข้อมูลอย่างมีแบบแผน ความสัมพันธ์กันของข้อมูล โครงสร้างการจัดเก็บ
ข้อมูล วิธีการจัดเก็บข้อมูลอย่างเป็นระบบ วิธีสืบค้นข้อมูล การทาแผงผังข้อมูลที่เหมาะสมกับ
ข้อมูลมีเดีย
ผลลัพธ์การเรียนรู้ระดับรายวิชา
1. นักศึกษาสามารถอธิบายพื้นฐานและโครงสร้างการจัดเก็บข้อมูล
2. นักศึกษาสามารถอธิบายความสัมพันธ์ของข้อมูล
3. นักศึกษาสามารถสืบค้นข้อมูลจากฐานข้อมูลได้
4. นักศึกษาสามารถออกแบบระบบฐานข้อมูลสาหรับงานมีเดียได้
เกณฑ์การให้คะแนน
รายละเอียด เปอเซ็น
สอบกลางภาค 25%
สอบปลายภาค 25%
การบ้าน+เข้าเรียน 20%
การปฏิบัติ 15%
Mini Project 15%
รวม 100%
เนื้อหารายวิชา
ความรู้เบื้องต้นเกี่ยวกับฐานข้อมูล
1. ข้อมูล (Data) และสารสนเทศ (Information)
2. ระบบแฟ้มข้อมูล (File System)
3. ระบบฐานข้อมูล (Database System)
ข้อมูลและสารสนเทศ
ข้อมูล (Data)
ข้อเท็จจริงที่ยังไม่ผ่านการประมวลผลนั่นเองซึ่งข้อมูลสามารถหาได้จาก
แหล่งข้อมูลต่าง ๆ เช่น โทรทัศน์ หนังสือพิมพ์ วิทยุ คอมพิวเตอร์
หรือรอบ ๆ ตัวก็ได้
สารสนเทศ (Information)
ข้อมูลข่าวสาร ความรู้ต่างๆ ที่ได้รับการสรุป คานวณ จัดเรียง หรือประมวลแล้วจากข้อมูล
ต่างๆ ที่เกี่ยวข้องอย่างเป็นระบบตามหลักวิชาการ จนได้เป็นข้อความรู้
เพื่อนามาเผยแพร่และใช้ประโยชน์ในงานด้านต่าง ๆ
ความรู้ (Knowledge)
การนาสารสนเทศที่ได้มานามาศึกษาจนเกิดความเข้าใจในสารสนเทศนั้น จนสามารถนา
สารสนเทศสิ่งนั้นไปใช้เพื่อเป้าหมายบางประการได้อย่างเข้าใจ
ปัญญา (Wisdom)
นาความรู้ที่มีมาประยุกต์ใช้ ตัดสินใจ และพัฒนาให้เกิดประโยชน์ในด้านต่างๆได้อย่างมี
ประสิทธิภาพ
ประเภทของข้อมูล
จาแนกตามลักษณะการเก็บข้อมูล
จาแนกตามลักษณะข้อมูล
จาแนกตามแหล่งที่มาของข้อมูล
จาแนกตามเวลาของการเก็บรวบรวมข้อมูล
ประเภทของข้อมูล: จาแนกตามลักษณะการเก็บข้อมูล
1) ข้อมูลจากการนับ (Counting Data) เช่น จานวนนักเรียนที่เข้าชมนิทรรศการงาน
สัปดาห์วิทยาศาสตร์ ข้อมูลที่ได้จะเป็นเลขจานวนเต็ม
2) ข้อมูลจากการวัด (Measurement Data) เช่น น้าหนัก ความสูงของนิสิตแต่ละคน
ข้อมูลที่ได้จะมีลักษณะเป็นเศษส่วนหรือจุดทศนิยม
3) ข้อมูลจากการสังเกต (Observation Data) เป็นข้อมูลที่ได้จากการสังเกต หรือการ
ติดตาม
4) ข้อมูลจากการสัมภาษณ์ (Interview Data) เป็นข้อมูลที่ได้จากการ ถามตอบโดยตรง
ระหว่างผู้สัมภาษณ์ และผู้ถูกสัมภาษณ์
ประเภทของข้อมูล: จาแนกตามลักษณะข้อมูล
1) ข้อมูลเชิงปริมาณ (Quantitative Data) เป็นข้อมูลที่แสดงความแตกต่างในเรื่องของ
ปริมาณหรือขนาด สามารถวัดออกมาเป็น ตัวเลข บอกได้ว่ามีค่ามาก
หรือมีค่าน้อย แบ่งได้เป็น 2 ประเภท คือ
- ข้อมูลแบบไม่ต่อเนื่อง (Discrete Data)
- ข้อมูลแบบต่อเนื่อง (Continuous Data)
2) ข้อมูลเชิงคุณภาพ (Qualitative Data) เป็นข้อมูลที่ไม่ได้อยู่ในรูปของตัวเลขโดยตรง
แต่อยู่ในรูปแสดงคุณลักษณะที่แตกต่างกันของสิ่งนั้น เช่น เพศ (เพศ
ชาย เพศหญิง) ศาสนา (พุทธ คริสต์ อิสลาม ฯลฯ)
ประเภทของข้อมูล: จาแนกตามแหล่งที่มาของข้อมูล
1) ข้อมูลปฐมภูมิ (Primary Data) เป็นข้อมูลที่ได้มาจากการที่ผู้ใช้ข้อมูลเป็นผู้ทาการเก็บ
ข้อมูลโดยตรง ข้อมูลประเภทนี้จะเป็นข้อมูลที่มีความน่าเชื่อถือมากที่สุด เพราะมีรายละเอียด
ตรงตามที่ผู้ใช้ต้องการ แต่จะเสียเวลาและค่าใช้จ่ายในการเก็บ
2) ข้อมูลทุติภูมิ (Secondary Data) เป็นข้อมูลที่ได้มาจากแหล่งข้อมูลที่มีผู้เก็บรวบรวมไว้
แล้วอย่างเป็นระบบ แล้วนามาเป็นข้อมูลโดยไม่ต้องลงมือในการดาเนินการเก็บรวบรวมเอง
มักจะเป็นข้อมูลที่ผ่านการวิเคราะห์เบื้องต้นมาแล้ว
ประเภทของข้อมูล: จาแนกตามเวลาของการเก็บรวบรวมข้อมูล
1) ข้อมูลอนุกรมเวลา (Time - series Data) เป็นข้อมูลที่ถูกเก็บรวบรวมตามลาดับเวลาที่
เกิดขึ้นต่อเนื่องไปเรื่อย ๆ ทาให้มองเห็นแนวโน้มของเรื่องต่าง ๆ นั้นได้ ข้อมูลประเภทนี้จะมี
บทบาทช่วยในการตัดสินใจ การพยากรณ์ หรือการวางแผนความต้องการในอนาคตได้
2) ข้อมูลภาคตัดขวาง (Cross-Sectional Data) เป็นข้อมูลที่เก็บรวบรวม ณ เวลาใดเวลา
หนึ่งเท่านั้น เพื่อประโยชน์ในการศึกษาวิจัย
ระบบแฟ้มข้อมูล (File System)
แนวคิดในการจัดการข้อมูลได้เกิดขึ้นมานานแล้ว
ซึ่งเป็นไปตามเทคโนโลยีที่ พัฒนาขึ้นในแต่ละยุคแต่
ละสมัย การจัดการข้อมูลได้เริ่มจากการบันทึกข้อมูล
ซึ่งอาจเป็นการบันทึกลงในสมุดหรือในกระดาษเพื่อ
บันทึกข้อมูลช่วยในการจดจา เมื่อต้องการเรียกดู
ข้อมูลที่เคยบันทึกไว้ก็จะพลิกหน้าสมุดไปยังเลข
หน้าที่ต้องการเพื่อดูรายละเอียด
ประเภทของแฟ้มข้อมูล
1) แฟ้มข้อมูลที่จัดทาด้วยมือ
เมื่อมีข้อมูลเพิ่มขึ้น ก็มีการพัฒนารูปแบบการจัดเก็บข้อมูลให้มีระบบ
มากขึ้นตามไปด้วย มีการบันทึกลงในแฟ้มเอกสารต่างๆ ที่จัดไว้เป็นหมวด
เป็นหมู่มีการจัดสารบัญ และจาเป็นต้อง มีอุปกรณ์หรือเครื่องมือที่ใช้
จัดเก็บแฟ้มเอกสารเหล่านั้น เพื่อให้เกิดความปลอดภัยยิ่งขึ้นเช่นมีตู้เก็บ
เอกสาร
ประเภทของแฟ้มข้อมูล
2) แฟ้มข้อมูลคอมพิวเตอร์
การนาคอมพิวเตอร์มาใช้ในการจัดเก็บข้อมูลจะช่วยได้มากใน
กรณีที่หน่วยงานมีข้อมูลเป็นจานวนมาก เพราะจะทาให้สามารถ
จัดเก็บข้อมูลได้เป็นปริมาณมาก เพียงแค่ทาการบันทึกข้อมูลที่
ต้องการเก็บลงในสื่อบันทึกข้อมูลต่าง ๆ ซึ่งมีอยู่หลายชนิด
โครงสร้างแฟ้มข้อมูล (Data Structure)
โครงสร้างแฟ้มข้อมูลประกอบด้วย
โครงสร้างเรียงลาดับจากหน่วยที่เล็กที่สุด
ไปยังหน่วยที่ใหญ่ขึ้น ดังนี้
วัตถุประสงค์การจัดสร้างโครงสร้างแฟ้มข้อมูล
1. เพื่อทาให้การค้นหา และการเข้าถึงข้อมูลมีความรวดเร็วขึ้น
2. เป็นการใช้อุปกรณ์จัดเก็บข้อมูลได้อย่างมีประสิทธิภาพ
3. เป็นการป้องกันข้อมูลที่อาจสูญเสีย
4. เพื่อรองรับการเติบโตของข้อมูล
5. เพื่อความปลอดภัยจากผู้ใช้ที่ไม่มีสิทธิใช้งาน
ปัญหาที่เกิดขึ้นในการใช้แฟ้มข้อมูล
1. ความซ้าซ้อนของข้อมูล (Data Redundancy)
การที่มีข้อมูลเดียวกัน ถูกจัดเก็บไว้มากกว่าหนึ่งแห่ง เนื่องจากความยุ่งยากในการรวบรวม
ข้อมูลมาไว้ที่เดียวกัน อาจจะทาให้เกิดความผิดพลาดของข้อมูล (Data Anomalies)
2. มีรูปแบบที่ไม่ตรงกัน (Incompatible File Formats)
เมื่อโครงสร้างข้อมูลถูกฝังตัว (Embedded) ด้วยโปรแกรมประยุกต์ โครงสร้างข้อมูลก็จะ
ขึ้นอยู่กับภาษาของโปรแกรมประยุกต์นั้น
ปัญหาที่เกิดขึ้นในการใช้แฟ้มข้อมูล
3. ความยุ่งยากในการเข้าถึงข้อมูล
ถ้าแต่ละหน่วยงาน มีการจัดเก็บข้อมูลแยกกัน คือ จัดเก็บข้อมูลของตนเอง จะเป็นการยาก
สาหรับการเข้าถึงข้อมูลได้โดยตรง โปรแกรมเมอร์จาเป็นต้องเขียนโปรแกรมด้วยการนาข้อมูลที่
เก็บแยกกัน แล้วนามาประมวลผลร่วมกัน
ระบบฐานข้อมูล (Database System)
ฐานข้อมูล (Database) เป็นการจัดเก็บข้อมูล
ที่มีความสัมพันธ์กัน นามาเก็บรวบรวมให้อยู่ในที่
เดียวกันอย่างเป็นระบบ ทาให้ผู้ใช้สามารถใช้ข้อมูลที่
เกี่ยวข้องร่วมกันได้ เป็นการลดความซ้าซ้อนของ
ข้อมูล ข้อมูลมีความถูกต้อง น่าเชื่อถือ และเป็น
มาตรฐานเดียวกัน
ระบบฐานข้อมูล (Database System)
ระบบฐานข้อมูล หรือนิยมเรียกกันว่า
Database Management Systems (DBMS)
เป็นการจัดเก็บฐานข้อมูลที่มีความสัมพันธ์กัน
ตั้งแต่สองฐานข้อมูลขึ้นไปรวมเข้าไว้ด้วย กันอย่าง
เป็นระบบ และใช้ในการบริหารจัดการสิทธิ์ในการ
เข้าถึงฐานข้อมูล
คุณลักษณะของฐานข้อมูล (Characteristics of Database)
คุณลักษณะที่ดีของฐานข้อมูลจะต้องมีความสามารถในการจัดการที่หลากหลายและที่สาคัญ
จะต้องมีคุณลักษณะ ดังนี้
1. ความสามารถในการจัดเก็บข้อมูล (Data Storage) การเรียกค้น (Retrieve) การแก้ไข
เปลี่ยนแปลงข้อมูล (Update) การลบข้อมูล (Delete) และการสร้างข้อมูลเพิ่มเติม (Add)
2. การมีข้อมูลซ้าซ้อนกันน้อยที่สุด (Minimum Redundancy) เป็นคุณลักษณะ ที่สาคัญ
ประการหนึ่งของฐานข้อมูล การนาข้อมูลทั้งหมดมารวมกันตัดส่วนที่ซ้ากันทิ้งไปให้เหลืออยู่เพียง
แห่งเดียว จะทาให้ปัญหาข้อมูลไม่ตรงกันลดน้อยลงหรือหมดไปได้
คุณลักษณะของฐานข้อมูล (Characteristics of Database)
3. ใช้ข้อมูลร่วมกัน (Data Sharing) การนาข้อมูลทั้งหมดมารวมกันอยู่เพียงแห่งเดียว สามารถ
แบ่งข้อมูลใช้ร่วมกันได้ระหว่างผู้ใช้หลาย ๆ คน รวมทั้งการใช้ข้อมูลเดียวกันในเวลาพร้อม ๆ กันได้
อีกด้วย
4. ความถูกต้องของข้อมูล (Data Integrity) รักษาความสัมพันธ์ (Relationship) ของข้อมูล
ภายในฐานข้อมูลให้มีความถูกต้องอยู่เสมอ ฐานข้อมูลมีระบบคอยตรวจสอบกฎเกณฑ์หรือเงื่อนไข
ต่าง ๆ (Integrity Rules) ทุกครั้งที่มีการแก้ไขข้อมูลหรือเพิ่มเติมข้อมูลเข้าไปในระบบฐานข้อมูลนั้น
คุณลักษณะของฐานข้อมูล (Characteristics of Database)
5. ความปลอดภัยของข้อมูล (Data Security) ฐานข้อมูลจะมีระบบรักษาความปลอดภัยของ
ข้อมูลสูง โดยระบบบริหารจัดการฐานข้อมูลจะกาหนดสิทธิ์ในการใช้งานของผู้ใช้ เช่น ตรวจสอบ
รหัสผ่าน (Password) ของผู้ใช้ก่อนที่จะเข้าสู่ระบบหลังจากนั้นจะตรวจสอบว่าผู้ใช้มีสิทธิใช้ข้อมูล
ได้มากน้อยเพียงใด
6. การสารองข้อมูลและการกู้คืนข้อมูล (Data Backup and Recovery) การสารองข้อมูลและ
การกู้คืนข้อมูล เป็นสิ่งจาเป็นอย่างยิ่งของระบบฐานข้อมูล เพื่อให้ผู้ใช้ระบบฐานข้อมูลมั่นใจว่า
ข้อมูลที่จัดเก็บอยู่ในเครื่องคอมพิวเตอร์ไม่ได้เสียหาย ยังมีความสมบูรณ์อยู่ตลอดเวลา
ประโยชน์ของระบบฐานข้อมูล
1. ลดความซ้าซ้อนของข้อมูล เนื่องจากข้อมูลมีการจัดเก็บเป็นฐานข้อมูลไว้ที่ส่วนกลางทาให้ลด
ความซ้าซ้อน และช่วยแก้ปัญหาความขัดแย้งกันของข้อมูลได้
2. การบริหารจัดการฐานข้อมูลทาได้ง่าย เนื่องจากมีการจัดเก็บข้อมูลไว้ที่ส่วนกลาง มีผู้บริหาร
ฐานข้อมูล (Database Administrator: DBA) ทาให้การจัดการข้อมูลทาได้ง่าย รวมทั้งสามารถ
กาหนดมาตรฐานของข้อมูลได้
3. สามารถใช้ฐานข้อมูลร่วมกันได้ เนื่องจากโครงสร้างการจัดเก็บข้อมูลในฮาร์ดดิสก์ถูกกาหนด
ด้วย DBMS และผู้ใช้แต่ละคนจะต้องใช้งานผ่าน DBMS
ประโยชน์ของระบบฐานข้อมูล
4. มีความปลอดภัยของข้อมูลสูง เนื่องจากข้อมูลแต่ละข้อมูลจะมีความสาคัญไม่เท่ากัน ดังนั้น
จึงต้องมีการกาหนดสิทธิในการใช้งาน โดยผู้บริหารฐานข้อมูล เป็นผู้กาหนดผู้มีสิทธิใช้งานข้อมูล
เช่น รหัสผู้ใช้ และรหัสผ่าน
ใบงานที่ 1
• ให้นักศึกษาหาความหมายของ ฐานข้อมูล (Database) คลังข้อมูล (Data Warehouse) และ
เหมืองข้อมูล (Data Mining) รวมทั้งหาความแตกต่างของทั้ง 3 คาข้างต้น
• ให้นักศึกษาหาโปรแกรม DBMS ที่เป็นที่นิยมใช้งานกันในปัจจุบัน จานวน 5 โปรแกรม พร้อม
อธิบายรายละเอียดโดยสังเขป
THANK YOU
ระบบฐานข้อมูล (Database System)
MDT 311 (2-2-6) ว่าที่ ร.ต. ดร.องอาจ อุ่นอนันต์
เนื้อหารายวิชา
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
1. ความหมายของระบบบริหารจัดการฐานข้อมูล
2. สถาปัตยกรรมฐานข้อมูล (Database Architecture)
3. ภาษาคอมพิวเตอร์ที่ใช้ทางานกับฐานข้อมูล (Database Language)
4. แนวคิดฐานข้อมูลรูปแบบต่าง ๆ
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
1. ความหมายของระบบบริหารจัดการฐานข้อมูล
ระบบบริหารจัดการฐานข้อมูล คือ ชุดคาสั่ง หรือ โปรแกรม หรือ ซอฟท์แวร์ที่สร้าง
ขึ้นมาเพื่อทาหน้าที่บริหารจัดการฐานข้อมูล จะทาหน้าที่เป็นเครื่องมือ หรือเป็นตัวกลางระหว่าง
ผู้ใช้ชุดคาสั่งต่าง ๆ ที่เกี่ยวข้องกับฐานข้อมูล เพื่อจัดการและควบคุมความถูกต้อง ความซ้าซ้อน
และความสัมพันธ์ระหว่างข้อมูลที่อยู่ภายในฐานข้อมูล รวมถึงการรักษาความมั่นคง ความ
ปลอดภัยของข้อมูล การสารองข้อมูล และการเรียกคืนข้อมูลในกรณีที่ข้อมูลเกิดความเสียหาย
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
1. ความหมายของระบบบริหารจัดการฐานข้อมูล
Database DBMS Application
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
Ranking
of the most popular
database management
systems worldwide,
as of February 2023
https://www.statista.com/statistics/809750/worldwide-popularity-ranking-database-management-systems/
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
Relational Database Nosql Database
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
1.1 ข้อดีของการมีระบบจัดการฐานข้อมูล
การทางานแบบฐานข้อมูล
การทางานแบบแฟ้มข้อมูล
แฟ้มฐานข้อมูลพนักงาน
แฟ้มฐานข้อมูลเงินเดือน
แฟ้มฐานข้อมูลการอบรม
เมื่อข้อมูล
พนักงาน
เปลี่ยนแปลงจะ
เกิดการขัดแย้งกัน
ฐานข้อมูลพนักงาน
ระบบอบรม
ระบบเงินเดือน
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
1.1 ข้อดีของการมีระบบจัดการฐานข้อมูล
1.1.1 หลีกเลี่ยงความขัดแย้งของข้อมูล และลดความซ้าซ้อนของข้อมูลได้
1.1.2 ใช้ข้อมูลร่วมกันได้
1.1.3 กาหนดมาตราฐานข้อมูลได้
1.1.4 ทาให้มีความปลอดภัยของข้อมูลสูงขึ้น
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
1.2 ข้อเสียของการมีระบบจัดการฐานข้อมูล
1.2.1 มีต้นทุนสูงขึ้น
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
1.2 ข้อเสียของการมีระบบจัดการฐานข้อมูล
1.2.2 มีความซับซ้อน
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
1.2 ข้อเสียของการมีระบบจัดการฐานข้อมูล
1.2.3 เสี่ยงต่อการหยุดชะงักของระบบ
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
2. สถาปัตยกรรมฐานข้อมูล (Database Architecture)
สถาปัตยกรรมฐานข้อมูล หมายถึง การอธิบายเกี่ยวกับโครงสร้างและส่วนประกอบ
หลักที่นามาประกอบเป็นระบบฐานข้อมูล ซึ่งระบบฐานข้อมูลได้ถูกออกแบบมาเพื่อรองรับ
โครงสร้างของข้อมูลที่มีผู้ใช้หลาย ๆ คน สถาบันมาตรฐานแห่งชาติอเมริกัน (American
National Standards Institute: ANSI) จึงได้กาหนดมาตรฐานสถาปัตยกรรมฐานข้อมูล
เรียกว่า สถาปัตยกรรมสามระดับ (Three-level Architecture)
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
2.1 สถาปัตยกรรมฐานข้อมูล
แบ่งออกเป็น 3 ระดับ คือ
• ระดับภายนอกหรือวิว (External/View Level)
• ระดับแนวคิด (Conceptual Level)
• ระดับภายใน (Internal/Physical Level)
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
2.1.1 สถาปัตยกรรมฐานข้อมูลระดับภายนอกหรือวิว
เป็นระดับฐานข้อมูลที่อยู่ใกล้กับโปรแกรมประยุกต์
และใกล้กับผู้ใช้มากที่สุด เป็นระดับที่อธิบายเกี่ยวกับ
ฐานข้อมูลที่ใช้งานร่วมกับโปรแกรมประยุกต์ โดยผู้ใช้แต่
ละคนจะมองเห็นข้อมูลตามสิทธิ์ที่กาหนดไว้เท่านั้น ซึ่ง
จะเป็นการรักษาความปลอดภัยและความมั่นคงให้กับ
ฐานข้อมูล
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
2.1.1 สถาปัตยกรรมฐานข้อมูลระดับภายนอกหรือวิว
EmpNum EmpName HireDate Salary Position DepNo
Table: Employee
DepNo DepName Location
Table: Department
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
2.1.1 สถาปัตยกรรมฐานข้อมูลระดับภายนอกหรือวิว
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
2.1.2 สถาปัตยกรรมฐานข้อมูลระดับแนวคิด
เป็นระดับที่มีการนาข้อมูลจากฐานข้อมูลไปใช้งาน
เป็นระดับของฐานข้อมูลที่เกี่ยวกับ โครงสร้างฐานข้อมูล
ชนิดของข้อมูล ข้อกาหนดเกี่ยวกับข้อมูลและ
ความสัมพันธ์ของข้อมูล เป็นข้อมูลที่ผ่านการวิเคราะห์
และออกแบบโดยผู้บริหารฐานข้อมูล หรือนักวิเคราะห์
และผู้ออกแบบฐานข้อมูล (SA)
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
2.1.2 สถาปัตยกรรมฐานข้อมูลระดับแนวคิด
ความสัมพันธ์ของข้อมูล
โครงสร้างฐานข้อมูล ชนิดของข้อมูล
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
2.1.3 สถาปัตยกรรมฐานข้อมูลระดับภายใน
เป็นระดับที่อธิบายเกี่ยวกับการจัดเก็บข้อมูลในเชิง
กายภาพของฐานข้อมูลว่ามีรูปแบบ และโครงสร้างการ
จัดเก็บข้อมูลเป็นอย่างไร ซึ่งข้อมูลจะถูกเก็บอยู่จริงใน
สื่อบันทึกข้อมูล มีโครงสร้างการจัดเก็บข้อมูล รวมถึง
การเข้าถึงข้อมูลต่าง ๆ ในฐานข้อมูล ผู้ที่เกี่ยวข้องส่วน
ใหญ่ คือ ผู้เขียนโปรแกรม และผู้บริหารฐานข้อมูล
(Database Administrator, DBA)
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
2.1.3 สถาปัตยกรรมฐานข้อมูลระดับภายใน
โครงสร้างการจัดเก็บข้อมูล
สื่อบันทึกข้อมูล
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
2.1 สถาปัตยกรรมฐานข้อมูล (Database Architecture)
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
2. สถาปัตยกรรมฐานข้อมูล (Database Architecture)
จากแนวคิดสถาปัตยกรรมฐานข้อมูล ทาให้เกิดความเป็นอิสระของข้อมูล (Data Independence) คือ
ความสามารถในการเปลี่ยนแปลงเค้าร่าง (Schema) ในระดับหนึ่งของฐานข้อมูลแล้วไม่ส่งผลกระทบต่อ Schema
ในระดับสูงขึ้น
เป็นแนวคิดที่ทาให้การพัฒนาโปรแกรมเป็นอิสระต่อการเปลี่ยนแปลงโครงสร้างของฐานข้อมูล
2.2 ความเป็นอิสระของข้อมูล (Data Independence)
• ความเป็นอิสระของข้อมูลในเชิงตรรกะ (Logical Data Independence)
• ความเป็นอิสระของข้อมูลในเชิงกายภาพ (Physical Data Independence)
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
2.2 ความเป็นอิสระของข้อมูล (Data Independence)
ความเป็นอิสของข้อมูลในเชิงตรรกะ
(Logical Data Independence)
ความเป็นอิสระของข้อมูลในเชิงกายภาพ
(Physical Data Independence)
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
3. ภาษาคอมพิวเตอร์ที่ใช้ทางานกับฐานข้อมูล (Database Language)
ภาษา SQL (Structured Query Language) เป็นภาษาที่ได้รับความนิยมสาหรับใช้ในการจัดการ
หรือใช้ในการติดต่อกับฐานข้อมูล เป็นภาษามาตรฐานบนระบบฐานข้อมูลที่ใช้ในการสั่งให้ฐานข้อมูลกระทาการ
ใด ๆ ตามคาสั่ง ANSI ได้กาหนดมาตรฐานของภาษา SQL ขึ้น โดยแบ่งออกเป็น 3 ประเภท ได้แก่
• ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL)
• ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML)
• ภาษาสาหรับการควบคุมข้อมูล (Data Control Language: DCL)
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
3.1 ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL)
• เป็นภาษาที่ใช้กาหนด Database Schema
• เป็นภาษาที่ใช้ในการกาหนดโครงสร้างการออกแบบฐานข้อมูล
• ตัวอย่าง คาสั่ง
• CREATE TABLE
• ALTER TABLE
• RENAME TABLE
• DROP TABLE
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
3.2 ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML)
• เป็นภาษาที่ใช้ในการจัดการข้อมูล เช่น การค้นหา การเพิ่ม การแก้ไข การลบ
• ตัวอย่าง คาสั่ง
• SELECT
• INSERT INTO
• UPDATE
• DELETE
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
3.3 ภาษาสาหรับการควบคุมข้อมูล (Data Control Language: DCL)
• เป็นภาษาที่ใช้ในการควบคุมความถูกต้องข้อมูล
• ควบคุมภาวะการใช้งานพร้อมกันจากผู้ใช้งานหลายคนในเวลาเดียวกัน และคาสั่งควบคุมความปลอดภัยของ
ข้อมูล
• การให้สิทธิอานาจแก่ผู้ใช้แต่ละคนในการเรียกดูหรือปรับปรุงข้อมูล
• ตัวอย่าง คาสั่ง
• GRANT
• REVORK
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
4. แนวคิดฐานข้อมูลรูปแบต่าง ๆ
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
4.1 แบบจาลองแบบลาดับชั้นและแบบจาลองแบบเครือข่าย
ลักษณะแบบจาลองฐานข้อมูลแบบเครือข่ายนี้
โครงสร้างของข้อมูลแต่ละแฟ้ม ข้อมูลมีความสัมพันธ์
คล้ายร่างแห สามารถเชื่อมโยงข้อมูลแบบไป-กลับ ได้ทา
ให้สะดวกในการค้นหามากกว่าแบบจาลองแบบลาดับ
ชั้น เพราะไม่ต้องไปเริ่มค้นหาตั้งแต่ข้อมูลต้นกาเนิดโดย
ทางเดียว
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
4.2 แบบจาลองข้อมูลเชิงสัมพันธ์
เป็นการจัดข้อมูลในรูปแบบของตาราง 2 มิติ คือมี
แถว (Row) และคอลัมน์ (Column) ทาให้เข้าใจได้ง่าย
การเชื่อมโยงข้อมูลระหว่างตารางจะใช้แอททริบิวท์ ที่มี
อยู่ทั้งสองตารางเป็นตัวเชื่อมโยงข้อมูล การเลือกดูข้อมูล
ทาได้ง่าย
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
4.2 แบบจาลองข้อมูลเชิงสัมพันธ์
• โครงสร้างของฐานข้อมูลอยู่ในรูปของรีเลชัน หรือ ตาราง ประกอบด้วย
• แถว (Tuple)
• คอลัมน์ (Attribute)
• การควบคุมความถูกต้อง
• Tuple มีข้อมูลไม่ซ้ากัน
• ค่าของ Attribute ทุกค่าต้องเป็น Atomicity
ระบบบริหารจัดการฐานข้อมูล (Database Management System)
4.2 แบบจาลองข้อมูลเชิงสัมพันธ์
SID Name GPA Major
41001 สมชาย มุ่งมั่น 2.5 1
41002 มานะ บากบั่น 2.8 2
41003 สมศรี อ่อนน้อม 3.2 2
41004 องอาจ อุ่นอนันต์ 3.4 1
Relation
Tuple
Attribute
3
1
2
PK
ระบบบริหารจัดการฐานข้อมูล
4.2 แบบจาลองข้อมูลเชิงสัมพันธ์
• รายการซื้อ Attribute ลูกค้า สามารถเอาชื่อ
ลูกค้ามาใส่เลยได้ไหม ??
• รายละเอียดการซื้อ Attribute สินค้า สามารถ
เอาชื่อสินค้ามาใส่ได้ไหม ??
ใบงานที่ 2
• สถาปัตยกรรมฐานข้อมูล (Database Architecture) แบ่งออกเป็นกี่ระดับ อะไรบ้าง
• ภาษา SQL แบ่งออกเป็นกี่ประเภท อะไรบ้าง
THANK YOU
ระบบฐานข้อมูล (Database System)
MDT 311 (2-2-6) ว่าที่ ร.ต. ดร.องอาจ อุ่นอนันต์
เนื้อหารายวิชา
แบบจำลองฐำนข้อมูลเชิงสัมพันธ์ (Relational Database Model)
1. มุมมองเชิงตรรกะของข้อมูล
2. คีย์ต่ำง ๆ ในฐำนข้อมูลเชิงสัมพันธ์
3. ตัวดำเนินกำรเชิงสัมพันธ์
4. รูปแบบควำมสัมพันธ์ภำยในฐำนข้อมูลเชิงสัมพันธ์
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
1. มุมมองเชิงตรรกะของข้อมูล
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
เป็นกำรจัดข้อมูลในรูปแบบของตำรำง 2 มิติ คือมี
แถว (Row) และคอลัมน์ (Column) ทำให้เข้ำใจได้ง่ำย
กำรเชื่อมโยงข้อมูลระหว่ำงตำรำงจะใช้แอททริบิวท์ ที่มี
อยู่ทั้งสองตำรำงเป็นตัวเชื่อมโยงข้อมูล กำรเลือกดูข้อมูล
ทำได้ง่ำย
1. มุมมองเชิงตรรกะของข้อมูล
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
SID Name GPA Major
41001 สมชำย มุ่งมั่น 2.5 1
41002 มำนะ บำกบั่น 2.8 2
41003 สมศรี อ่อนน้อม 3.2 2
41004 องอำจ อุ่นอนันต์ 3.4 1
Table,
Entity,
Relation
Row,
Record,
Tuple
Attribute, Column,
Property, Filed
3
1
2
1. มุมมองเชิงตรรกะของข้อมูล
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
1. มุมมองเชิงตรรกะของข้อมูล
1.1 ลักษณะของตำรำง
• ตำรำงข้อมูลจะอยู่ในรูปแบบ 2 มิติ ประกอบไปด้วยแถวและคอลัมน์
• แต่ละแถวจะเป็นตัวแทนของข้อมูลแต่ละชุดข้อมูลที่ปรำกฏขึ้น
• แต่ละคอลัมน์เป็นคุณสมบัติหนึ่ง ๆ ของข้อมูลโดยจะต้องไม่ซ้ำกัน
• ค่ำที่ปรำกฏในคอลัมน์ จะสอดคล้องกับรูปแบบข้อมูลของคุณสมบัตินั้น ๆ
• ข้อมูลที่อยู่ในฐำนข้อมูลไม่ควรซ้ำซ้อนกัน
• ลำดับของแถวและคอลัมน์ ไม่มีควำมสำคัญในระบบกำรจัดกำรฐำนข้อมูล
• แต่ละตำรำง จะมีคอลัมน์หรือกลุ่มของคอลัมน์ (Key) ที่สำมำรถระบุได้ถึงข้อมูลแถวนั้น
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
1. มุมมองเชิงตรรกะของข้อมูล
1.1 ลักษณะของตำรำง
USERS(id, username, password, phone, status, createdate, …, subuser_position)
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
2. คีย์ต่าง ๆ ในฐานข้อมูลเชิงสัมพันธ์
คีย์ คือ สิ่งที่ใช้ในกำรกำหนดควำมเป็นเอกลักษณ์ของแถวในควำมสัมพันธ์ ทำให้กำรเข้ำถึง
ข้อมูลเป็นไปได้อย่ำงรวดเร็ว ทำให้สำมำรถแยกแยะข้อมูลในฐำนข้อมูลให้เป็นไปอย่ำงถูกต้อง
2.1 Primary Key (PK)
2.2 Composite Key
2.3 Candidate Key
2.4 Foreign Key (FK)
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
2. คีย์ต่าง ๆ ในฐานข้อมูลเชิงสัมพันธ์
2.1 Primary Key (PK)
คีย์หลักที่กำหนดจำกฟิลด์ที่ไม่มีข้อมูลซ้ำซ้อน (Unique) ใน Table เดียวกันโดยเด็ดขำด และ
จะต้องมีค่ำเสมอ จะเป็นค่ำว่ำง (Null) ไม่ได้ สำมำรถนำมำจัดเรียงลำดับและแยกแยะข้อมูลแต่ละรำยกำร
ออกจำกกันได้เป็นอย่ำงดี
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
2. คีย์ต่าง ๆ ในฐานข้อมูลเชิงสัมพันธ์
2.2 Composite Key
คีย์ที่เกิดจำกกำรรวมข้อมูลหลำยฟิลด์ให้มีคุณสมบัติเหมือนคีย์หลัก (มีค่ำไม่ซ้ำกันและไม่มีค่ำว่ำง
หรือ null value) เช่น กำรนำฟิลด์ชื่อพนักงำน มำรวมกับฟิลด์สกุลของพนักงำน ทำให้เกิดเป็นฟิลด์ข้อมูลที่มี
ค่ำไม่ซ้ำซ้อนกัน เรียกคีย์ที่เกิดจำกกำรรวมชื่อพนักงำนและสกุลว่ำ Composite Key หรือ คีย์รวม
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
2. คีย์ต่าง ๆ ในฐานข้อมูลเชิงสัมพันธ์
2.3 Candidate Key
คีย์ที่มีคุณสมบัติใกล้เคียงกับคีย์หลัก (Primary Key) หรือสำมำรถแทนคีย์หลักได้ เช่น ในตำรำง
พนักงำน กำหนดให้รหัสพนักงำนเป็นคีย์หลัก ซึ่งมีค่ำไม่ซ้ำกันแต่พบว่ำหมำยเลขบัตรประชำชนของพนักงำนก็
มีค่ำไม่ซ้ำกัน ดังนั้น หมำยเลขบัตรประชำชนมีลักษณะเป็น Candidate Key ซื่งสำมำรถนำมำเป็นคีย์สำรอง
แทนคีย์หลักได้
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
2. คีย์ต่าง ๆ ในฐานข้อมูลเชิงสัมพันธ์
2.4 Foreign Key (FK)
คีย์ที่เชื่อม Table ที่เกี่ยวข้องหรือมี
ควำมสัมพันธ์กัน เช่น ใน Table หลักสูตร กำหนดให้
รหัสวิชำเป็น Primary Key และทำกำรเชื่อมโยงไปยัง
Table ลงทะเบียนเพื่อต้องกำรทรำบชื่อวิชำและหน่วย
กิตที่นักเรียนลงทะเบียน โดยกำหนดฟิลด์ รหัสวิชำ ใน
Table ลงทะเบียนเป็น Foreign Key
Database
Digital
Programming
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
3. ตัวดาเนินการเชิงสัมพันธ์
กำรจัดกำรขั้นพื้นฐำนของแบบจำลองข้อมูลเชิงสัมพันธ์ จะอยู่ภำยใต้แนวคิดเกี่ยวกับ
Relational Algebra เป็นนิยำมเกี่ยวกับวิธีในกำรจัดกำรกับข้อมูลโดยกำรประยุกต์ใช้ 8 ตัว
ดำเนินกำรเชิงสัมพันธ์ คือ
3.1 SELECT (σ : sigma) 3.2 PROJECT (π : pi)
3.3 PRODUCT (X) 3.4 JOIN (⋈ : Natural join)
3.5 DIFFERENCE (-) 3.6 INTERSECT (∩)
3.7 UNION (U) 3.8 DIVIDE
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
3. ตัวดาเนินการเชิงสัมพันธ์
3.1 SELECT (σ : sigma)
เป็นกำรเรียกดูข้อมูล สำมำรถทำได้ 2 กรณี คือ
3.1.1 เรียกดูแถวข้อมูลทั้งหมด
3.1.2 เรียกดูแถวข้อมูลที่มีข้อมูลบำงส่วนสอดคล้องกับเงื่อนไข
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
3. ตัวดาเนินการเชิงสัมพันธ์
ItemCode Name Price
123456 Lamp 25.15
123212 Box Fan 10.99
123458 100W bulb 1.47
123477 9v Battery 1.92
ItemCode Name Price
123456 Lamp 25.15
123212 Box Fan 10.99
123458 100W bulb 1.47
123477 9v Battery 1.92
Original table New table
SELECT ALL items
ItemCode Name Price
123458 100W bulb 1.47
123477 9v Battery 1.92
SELECT only PRICE less than 10 items
ItemCode Name Price
123456 Lamp 25.15
SELECT only ItemCode = 123456 items
σ(items)
σPrice<10(items)
σItemCode=123456(items)
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
3. ตัวดาเนินการเชิงสัมพันธ์
3.2 PROJECT (π : pi)
เป็นกำรเรียกดูข้อมูลที่จะอ้ำงอิงกับคอลัมน์ที่สนใจ โดยผลลัพธ์ที่ได้จะเป็นข้อมูลทุกแถวใน
ตำรำงข้อมูล
ItemCode Name Price
123456 Lamp 25.15
123212 Box Fan 10.99
123458 100W bulb 1.47
123477 9v Battery 1.92
Price
25.15
10.99
1.47
1.92
Original table
New table
PROJECT PRICE items
PROJECT NAME and PRICE items
Name Price
Lamp 25.15
Box Fan 10.99
100W bulb 1.47
9v Battery 1.92
πPrice(items)
πName,Price(items)
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
3. ตัวดาเนินการเชิงสัมพันธ์
ItemCode Name Price
123456 Lamp 25.15
123212 Box Fan 10.99
123458 100W bulb 1.47
123477 9v Battery 1.92
Original table
πItemCode,Name(σPrice<10(items))
ItemCode Name
123458 100W bulb
123477 9v Battery
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
3. ตัวดาเนินการเชิงสัมพันธ์
3.3 PRODUCT (X)
เป็นกำรนำค่ำจำกตำรำงที่ 1 มำต่อกับแถว
จำกตำรำงที่ 2 ซึ่งจำนวนแถวของควำมสัมพันธ์ผลลัพธ์
จะเท่ำกับ จำนวนตำรำงที่ 1 X จำนวนตำรำงที่ 2
product or cartesian product or cross product
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
3. ตัวดาเนินการเชิงสัมพันธ์
3.3 PRODUCT (X)
(items) X (store)
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
3. ตัวดาเนินการเชิงสัมพันธ์
3.4 JOIN (⋈)
เป็นกำรรวมข้อมูลจำกสองตำรำงหรือมำกกว่ำสองตำรำงเข้ำด้วยกัน ซึ่งจะทำกำรเชื่อมโยง
ควำมสัมพันธ์ระหว่ำงตำรำงผ่ำนแอทริบิวที่เหมือนกัน โดยที่ R และ S เป็นตำรำง C เป็นเงื่อนไข R⋈cS
ItemCode Name Price
123456 Lamp 25.15
123212 Box Fan 10.99
123458 100W bulb 1.47
123477 9v Battery 1.92
Table: Item
RunId OrderNum OrderDate CusCode ItemCode Qty
5 OR123456 2023-01-05 MEM101 123456 2
4 OR123456 2023-01-05 MEM101 123212 2
3 OR123456 2023-01-05 MEM101 123477 10
2 OR123455 2023-01-05 MEM125 123212 1
1 OR123454 2023-01-04 MEM089 123477 5
Table: Sale_detail
(Sale_detail)⋈itemCode=ItemCode(items)
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
3. ตัวดาเนินการเชิงสัมพันธ์
3.4 JOIN (⋈)
โดยมี 3 ประเภท คือ
• Theta join (X) ใช้กับควำมสัมพันธ์แบบ Cartesian Product
• Natural join (⋈) ใช้กับเครื่องหมำยเงื่อนไขเท่ำกับ (=)
• Inner join (⟕, ⟖, ⟗) ใช้กับกำรเชื่อมโยงในรูปแบบของ SET
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
3. ตัวดาเนินการเชิงสัมพันธ์
3.4.1 Natural join
จะทำกำรเชื่อมโยงควำมสัมพันธ์ระหว่ำงตำรำงโดยทำกำรเลือกเฉพำะแถวข้อมูลที่มีค่ำในแอท
ริบิวเหมือนกันในแอทริบิวที่มีกำรเชื่อมโยงกัน (แอทริบิวที่เหมือนกัน)
RunId OrderNum OrderDate CusCode ItemCode Qty ItemCode Name Price
5 OR123456 2023-01-05 MEM101 123456 2 123456 Lamp 25.15
4 OR123456 2023-01-05 MEM101 123212 2 123212 Box Fan 10.99
3 OR123456 2023-01-05 MEM101 123477 10 123477 9v Battery 1.92
2 OR123455 2023-01-05 MEM125 123212 1 123212 Box Fan 10.99
1 OR123454 2023-01-04 MEM089 123477 5 123477 9v Battery 1.92
Table: Sale_detail Table: Item
(Sale_detail)⋈itemCode=ItemCode(items)
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
3. ตัวดาเนินการเชิงสัมพันธ์
3.4.2 Inner join
จะเป็นกำรเชื่อมโยง
ควำมสัมพันธ์ที่ซึ่งจะทำกำรคืนค่ำผลลัพธ์
เฉพำะเรคคอร์ดของข้อมูลที่มีกำรเชื่อมโยง
กันระหว่ำงตำรำงเท่ำนั้น
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
4. รูปแบบความสัมพันธ์ภายในฐานข้อมูลเชิงสัมพันธ์
ควำมสัมพันธ์ที่เกิดกับทุกสิ่งบนโลกจะสำมำรถแบ่งเป็นหมวดหมู่ได้เป็น 3 รูปแบบ
one-to-one (1:1) one-to-many (1:M) many-to-many (M:N หรือ M:M)
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
4. รูปแบบความสัมพันธ์ภายในฐานข้อมูลเชิงสัมพันธ์
4.1 one-to-one (1:1)
เอนทิตี้หนึ่งว่ำมีควำมสัมพันธ์กับข้อมูลในอีกเอนทิตี้หนึ่ง ในลักษณะ หนึ่งต่อหนึ่ง หรือเขียนได้เป็น
1:1 แสดงว่ำข้อมูลเพียงหนึ่งข้อมูลของเอนทิตี้แรกมีควำมสัมพันธ์กับข้อมูลในเอนทิตี้ที่สองเพียงข้อมูลเดียว
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
4. รูปแบบความสัมพันธ์ภายในฐานข้อมูลเชิงสัมพันธ์
4.1 one-to-one (1:1)
เมื่อเกิดควำมสัมพันธ์ 1:1 แล้วกำรใช้งำน PK:FK จะสำมำรถนำ PK ของตำรำงใดตำรำง
หนึ่ง ไปใส่ในอีกตำรำงหนึ่งได้ทันที
รหัสอาจารย์ ชื่อ-นามสกุลอาจารย์
A1001 องอำจ อุ่นอนันต์
A1002 ปิติ ภูมิใจมั่น
A1003 อำนำจ สว่ำงจิตร
รหัสสาขา ชื่อสาขา
D01 วิทยำกำรคอมพิวเตอร์
D02 เทคโลยีสำรสนเทศ
D03 มัลติมีเดีย
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
4. รูปแบบความสัมพันธ์ภายในฐานข้อมูลเชิงสัมพันธ์
4.2 one-to-many (1:M)
เอนทิตี้หนึ่งว่ำมีควำมสัมพันธ์กับข้อมูลในอีกเอนทิตี้หนึ่ง ในลักษณะ หนึ่งต่อกลุ่ม หรือเขียนได้เป็น
1:N แสดงว่ำข้อมูลเพียงหนึ่งข้อมูลของเอนทิตี้แรกมีควำมสัมพันธ์กับข้อมูลในเอนทิตี้ที่สองหลำยข้อมูล
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
4. รูปแบบความสัมพันธ์ภายในฐานข้อมูลเชิงสัมพันธ์
4.2 one-to-many (1:M)
เมื่อเกิดควำมสัมพันธ์ 1:M แล้วกำรใช้งำน PK:FK จะนำ PK ของตำรำงใดตำรำงหนึ่ง
ไปใส่ในอีกตำรำงใดตำรำงหนึ่งได้
รหัสจังหวัด ชื่อจังหวัด
10 กรุงเทพมหำนคร
11 นนทบุรี
12 สมุทรปรำกำร
รหัสอาเภอ ชื่ออาเภอ
1001 เขตดุสิต
1002 เขตลำดกระบัง
1003 เขตพระนคร
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
4. รูปแบบความสัมพันธ์ภายในฐานข้อมูลเชิงสัมพันธ์
4.3 many-to-many (M:N หรือ M:M)
เอนทิตี้หนึ่งว่ำมีควำมสัมพันธ์กับข้อมูลในอีกเอนทิตี้หนึ่ง ในลักษณะ กลุ่มต่อกลุ่ม หรือเขียนได้เป็น
N:M แสดงว่ำข้อมูลเพียงหนึ่งข้อมูลของเอนทิตี้แรก มีควำมสัมพันธ์กับข้อมูลในเอนทิตี้ที่สองหลำยข้อมูล
แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model)
4. รูปแบบความสัมพันธ์ภายในฐานข้อมูลเชิงสัมพันธ์
4.3 many-to-many (M:N หรือ M:M)
เมื่อเกิดควำมสัมพันธ์ M:N แล้วกำรใช้งำน PK:FK จะเกิดตำรำงใหม่ขึ้นมำระหว่ำง
ควำมสัมพันธ์ โดยนำ PK ของแต่ละตำรำงมำเก็บไว้ในตำรำงใหม่
รหัสลูกค้า ชื่อลูกค้า
U67001 องอำจ อุ่นอนันต์
U67002 ณพงษ์ สุวรรณวงศ์
U67003 กิติพงษ์ จงเจริญ
รหัสสินค้า ชื่อสินค้า
P101 ลำเต้
P102 มอคค่ำ
P103 คำปูชิโน่
ใบงานที่ 3
• กฎ 12 ข้อ ของ E.F Codd (Codd’s 12 Rules) คืออะไร ประกอบด้วยอะไรบ้ำง
• จงเขียนรูปแบบควำมสัมพันธ์ของจังหวัด อำเภอ และตำบล
• จงเขียน Algebra เพื่อหำ
Employee(Sid, Name, Sex, Address, Salary, DeptNumber)
Department(DeptNumber, DeptName, ManagerId)
1. แสดงรำยละเอียดของพนักงำนหญิงทั้งหมด
2. แสดง Id และชื่อ ของพนักงำนทั้งหมด
3. แสดงรำยกำรพนักงำนที่มีเงินเดือนตั้งแต่ 30000 บำทขึ้นไป
4. หำรำยชื่อพนักงำนที่มีเงินเดือนต่ำกว่ำ 15000 บำท
5. หำชื่อและที่อยู่ของพนักงำน แผนกโปรแกรมเมอร์
THANK YOU
ระบบฐานข้อมูล (Database System)
MDT 311 (2-2-6) ว่าที่ ร.ต. ดร.องอาจ อุ่นอนันต์
เนื้อหารายวิชา
แบบจำลองเชิงสัมพันธ์ระหว่ำงข้อมูล (Entity Relational Diagram: ER-Diagram)
1. Entity
2. Attribute
3. Relation
4. กำรสร้ำง Entity ใหม่สำหรับรูปแบบควำมสัมพันธ์ M:N
5. พจนำนุกรมข้อมูล (Data Dictionary: DD)
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
1. ความหมาย
Entity-Relationship Diagram (ER-Diagram) ถูกคิดค้นโดย
เชน (Chen) ในปี ค.ศ. 1976 ถือว่ำเป็นแบบจำลองที่ใช้ในกำรแสดง
กำรออกแบบฐำนข้อมูลในระดับแนวคิด (Conceptual Level) ซึ่ง
ถือว่ำเป็นเครื่องมือที่ใช้อธิบำยองค์ประกอบและข้อกำหนดของ
ฐำนข้อมูล ที่นักวิเครำะห์และออกแบบระบบใช้เป็นสื่อกลำงในกำร
สื่อสำรระหว่ำงผู้ใช้และนักพัฒนำโปรแกรมเนื่องจำกมีสัญลักษณ์ที่
สื่อควำมหมำยให้เข้ำใจได้ง่ำย
Perter Chen
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
1. ความหมาย
Crow Foot Model, 1976
Chen Model, 1976
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
2. สัญลักษณ์ที่ใช้ใน ER-Diagram
สัญลักษณ์ Entity สัญลักษณ์ Attribute
พนักงำน ตำแหน่ง
มี
รหัสพนักงำน
ชื่อพนักงำน
รหัสตำแหน่ง
ชื่อตำแหน่ง
1 M
สัญลักษณ์ Relationship
Chen Model
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
2.1 Entity
สัญลักษณ์ Entity
• สัญลักษณ์จะแทนด้วยรูปสี่เหลี่ยมและมีชื่อ Entity อยู่ภำยใน
• เป็นส่วนที่ใช้สำหรับเก็บข้อมูลแต่ละรำยกำรภำยในระบบที่กำลังจัดทำอยู่ เช่น
• บุคคล (พนักงำน, ผู้ป่วย, บุคลำกร, นักศึกษำ,ลูกค้ำ)
• สถำนที่ (จังหวัด, อำเภอ, ภำค, ที่อยู่)
• วัตถุ (รถยนต์, อำคำร, เครื่องจักร,สินค้ำ)
• เหตุกำรณ์ (ประวัติ, กำรลงทะเบียน, กำรรักษำโรค,ซื้อ,ขำย)
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
2.1 Entity สัญลักษณ์ Entity
ประเภทของ ของ Entity มี 3 ประเภท
• Regular Entity หรือ Strong Entity
เป็น Entity ที่อยู่ได้โดยไม่ต้องอำศัย Entity อื่นในกำรคงอยู่ ซึ่งมีคุณสมบัติ Identity ได้ด้วยตัวเอง ไม่
ต้องพึ่ง Entity อื่น
• Week Entity
เป็น Entity ที่อยู่ได้โดยต้องอำศัย Entity อื่นในกำรคงอยู่
Customer
Order Detail
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
2.1 Entity สัญลักษณ์ Entity
• Composite Entity
เป็น Entity ที่ถูกสร้ำงขึ้นเพื่อแปลงควำมสัมพันธ์แบบ M:M ให้เป็น แบบ 1:M
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
2.1 Entity สัญลักษณ์ Entity
รหัส ชื่อ คณะ
45001 เดชา บริหารธุรกิจ
45002 สมชาย เกษตร
รหัส ปีการศึกษา รหัสวิชา
45001 1/45 01
45002 1/45 01
45001 1/45 02
รหัสวิชา ชื่อวิชา
01 ฐานข้อมูล
02 โครงสร้าง
Student Subject
Regis_Detail
Student
Subject
Regis_Detail
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
2.2 Attribute
• สัญลักษณ์จะแทนด้วยวงรี โดยมีชื่อของ Attributes กำกับอยู่ภำยใน และมีเส้นเชื่อมต่อกับ Entity
• เป็นคุณสมบัติหรือลักษณะของ Entity เช่น
Attributes ของ พนักงาน ประกอบด้วย
• เลขที่พนักงำน
• ชื่อ-นำมสกุล
• เพศ
• เงินเดือน
สัญลักษณ์ Attribute
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
2.2 Attribute
Attributes ของ พนักงำน (Employee) ประกอบด้วย
 เลขที่พนักงำน (Emp_ID)
 ชื่อ-นำมสกุล (Name)
 เพศ (Sex)
 เงินเดือน (Salary) Employee
Name
Emp_ID
Sex
Salary
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
2.2 Attribute
Attributes สำมำรถจำแนกได้เป็น 5 ประเภท
• Simple Attributes/Single-Valued Attributes
Attributes ที่ไม่สำมำรถแบ่งแยกย่อยได้อีกแล้ว เช่น เพศ, เงินเดือน
• Composite Attributes
Attributes ที่สำมำรถแบ่งแยกย่อยไปได้อีก เช่น ชื่อ-สกุล ที่สำมำรถแบ่งออกได้เป็น Attributes
ชื่อ และ สกุล
• Key Attributes
เป็น Attributes ที่สำมำรถบ่งบอกถึงเอกลักษณ์ของ Entity นั้นได้ (มีค่ำไม่ซ้ำกัน) เวลำเขียน ER
Diagram ต้องขีดเส้นใต้ Attributes ที่เป็น Key ด้วย
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
2.2 Attribute
• Multi-Valued Attributes
Property ที่สำมำรถมีค่ำของข้อมูลได้หลำยค่ำ เช่น เบอร์โทรที่ประกอบด้วยรหัสพื้นที่และตำมด้วยหมำยเลข
โทรศัพท์ สัญลักษณ์เป็นวงรีสองเส้น
• Derived Attributes
เป็น Property ที่ได้มำจำกกำรคำนวณ โดยอำศัยค่ำใน Property อื่น ๆ เช่น ค่ำของอำยุ ที่ได้มำจำก Property
วันเกิด สัญลักษณ์เป็นวงรีเส้นประ
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
2.2 Attribute
Student
ID Age
Name_Surname Birthday
Sex
Name
Surname
Tel
Composite
key
Derived
Multi -Valued
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
2.3 Relationship
• สัญลักษณ์สี่เหลี่ยมข้ำวหลำมตัด (Diamond) และคำที่อธิบำยถึงควำมสัมพันธ์นั้น ๆ
• หมำยถึง Entity ที่แสดงควำมสัมพันธ์ระหว่ำง 2 Entity ขึ้นไป
• พร้อมทั้งระบุชนิดของควำมสัมพันธ์ระหว่ำง Entity นั้น ๆ ด้วย
สัญลักษณ์ Relationship
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
2.3 Relationship
Employee Work_in Department
Order Of Order_detail
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
2.3 Relationship
One-to-One Relationship
เป็นควำมสัมพันธ์ของสมำชิกของใน Entity หนึ่งไปสัมพันธ์กับ กับสมำชิกของใน Entity อีกอันหนึ่ง
เพียงหนึ่งเดียวเท่ำนั้น
Employee has
1 1 Card number
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
2.3 Relationship
One-to-Many Relationship
เป็นควำมสัมพันธ์ของสมำชิกของใน Entity หนึ่งไปสัมพันธ์กับ กับสมำชิกของใน Entity อีกอันหนึ่ง
มำกกว่ำ 1 สมำชิก
Employee in
1 M Department
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
2.3 Relationship
Many-to-Many Relationship
เป็นควำมสัมพันธ์ของสมำชิกมำกกว่ำ 1 สมำชิก ของใน Entity หนึ่งไปสัมพันธ์กับ กับสมำชิกของใน
Entity อีกอันหนึ่ง มำกกว่ำ 1 สมำชิก
Student Learn
M N Subject
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
2.3 Relationship
Dependency Relationship
เป็นควำมสัมพันธ์ระหว่ำง Entity ที่แข็งแรงเชื่อมโยงกับ Entity อ่อนแอ
Recursive Relationship
เป็นควำมสัมพันธ์ที่เกิดจำก Entity เพียง Entity เดียว
อำจำรย์ สอน
1 M ตำรำงสอน
สอน
นักศึกษำ
มีหัวหน้ำ
1 M
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
2.3 Relationship
Recursive Relationship
เป็นควำมสัมพันธ์ที่เกิดจำก Entity เพียง Entity เดียว
นักศึกษำ
มีหัวหน้ำ
1 M
Std_ID Std_Name Std_Lead
1001 Art 1004
1002 Tong 1004
1003 O 1004
1004 Toffy
1005 May 1004
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
3. การสร้าง Entity ใหม่สาหรับรูปแบบความสัมพันธ์ M:N
ในกำรใช้งำนจริงถ้ำเกิดควำมสัมพันธ์แบบ M:N จะไม่สำมำรถนำมำสร้ำงฐำนข้อมูลได้ เนื่องจำก Key จะ
เยอะและไม่สำมำรถหำที่ใส่ได้ จึงต้องมีกำรแตกเป็นตำรำงใหม่โดยใช้งำน Composite Entity
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
3. การสร้าง Entity ใหม่สาหรับรูปแบบความสัมพันธ์ M:N
• ซึ่ง Composite Entity จะกลำยเป็น Entity ใหม่ที่รวมเอำไว้ด้วย Key Property ของทั้ง 2 Entity หลัก
และส่วนสนใจอื่น ๆ
• ซึ่ง Key Property ของ Composite Entity ก็คือ Key Property ของทั้ง 2 Entity หลักนั้นเอง
• สัญลักษณ์ของ Composite Entity คือ สี่เหลี่ยมผืนผ้ำซ้อนด้วยสี่เหลี่ยมรูปข้ำวหลำมตัด
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
3. การสร้าง Entity ใหม่สาหรับรูปแบบความสัมพันธ์ M:N
ภำพแสดงกำรเปลี่ยนแปลงจำก M:M มำเป็น 1:M
Studen Subject
M
Learning
M
Studen Subject
M M
1 1
Learning
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
4. ขั้นตอนการออกแบบฐานข้อมูลด้วย ER Diagram
• ศึกษำรำยละเอียดและลักษณะหน้ำที่งำนของระบบ
• กำหนด Entity ที่ควรมีในระบบฐำนข้อมูล
• โดยคำนึงถึงข้อมูลทั้งหมดที่จะจัดเก็บลงไปในฐำนข้อมูล ว่ำสำมำรถแบ่งออกได้เป็นกี่ Entity
• ภำยในฐำนข้อมูลหนึ่ง ๆ อำจจะมีจำนวน Entity เป็นจำนวนมำก ซึ่งก็ขึ้นอยู่ที่ผู้ใช้ว่ำต้องกำรจัดเก็บข้อมูลมำกเพียงใด
• โดยกำรกำหนด Entity จะต้องคำนึงถึง Entity ทั้งแบบอ่อนแอและแบบแข็งแรงด้วย
• กำรกำหนดควำมสัมพันธ์ระหว่ำง Entity
• กำรกำหนดคุณลักษณะของ Entity
• กำรกำหนด Primary Key ของแต่ละ Entity
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
4. ขั้นตอนการออกแบบฐานข้อมูลด้วย ER Diagram
กรณีที่ 1 สถำบันกำรศึกษำแห่งหนึ่งมีกำรสอนอยู่ 3 คณะ คือ เกษตร, วิทยำศำสตร์, ศึกษำศำสตร์
ให้เวลา 10 นาที
• ซึ่งในแต่ละคณะจะประกอบไปด้วยภำควิชำต่ำง ๆ
• แต่ละภำควิชำก็จะประกอบไปด้วยอำจำรย์หลำย ๆ คน
• อำจำรย์แต่ละคนสอนได้หลำยวิชำ แต่สำมำรถสังกัดได้เพียงแค่ภำควิชำเดียว
• อำจำรย์แต่ละภำคก็จะมีอำจำรย์เป็นหัวหน้ำภำค
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
4. ขั้นตอนการออกแบบฐานข้อมูลด้วย ER Diagram
กาหนด Entity ที่ควรมีในระบบฐานข้อมูล
• Entity Faculty แสดงรำยละเอียดของคณะ
• Entity Department แสดงรำยละเอียดของแผนก
• Entity Teacher แสดงรำยละเอียดของอำจำรย์
• Entity Subject แสดงรำยละเอียดของวิชำ
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
4. ขั้นตอนการออกแบบฐานข้อมูลด้วย ER Diagram
กาหนดความสัมพันธ์ระหว่าง Entity
Faculty Department
Under
Department Teacher
Under
Department Subject
Under
1 M
1
1
M
M
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
4. ขั้นตอนการออกแบบฐานข้อมูลด้วย ER Diagram
กาหนดความสัมพันธ์ระหว่าง Entity
Teacher
Leader
Subject Teacher
M
Teaching
M
Subject Teacher
Teaching
1
M
M
M
1 1
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
4. ขั้นตอนการออกแบบฐานข้อมูลด้วย ER Diagram
กาหนดคุณลักษณะของ Entity
Department
Dep_ID Dep_Name
Teacher
Teacher_ID
Teacher_Name
Salary
Faculty
Faculty_ID Faculty_Name
Subject
Subject_ID
Subject_Name
Unit
แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM)
4. ขั้นตอนการออกแบบฐานข้อมูลด้วย ER Diagram
การประยุกต์ใช้งานฐานข้อมูล (Database Desing And Apply)
กรณีที่ 2
ต้องกำรพัฒนำเกมออนไลน์ 1 เกมเพื่อเปิดตัวในประเทศไทย โดยมีรำยละเอียดของเกมดังนี้ โดยที่ลูกค้ำแต่ละคน
สำมำรถสมัครเข้ำเล่นเกมได้ และสำมำรถเลือกสร้ำงตัวละครได้ Account ละ 3 ตัวละคร โดยที่แต่ละตัวละครเมื่อ
พัฒนำถึงระดับหนึ่งจะสำมำรถเปลี่ยนอำชีพได้ 1 ครั้ง โดยที่แต่ละอำชีพจะมีสกิล (Skill) ที่ไม่เหมือนกัน โดยแต่ละตัว
ละครจะมีจำนวนช่องกระเป๋ำเก็บของจำนวน 30 ช่อง เก็บ Item ได้ช่องละ 1 รำยกำรเท่ำนั้น Item แต่ละ Item มี
หมวดหมู่ของ Item เอำไว้
โดยในเกมมีกำรตั้ง Clan เพื่อรับสมำชิกเข้ำ Clan ในกำรสร้ำงชุมชนในกำรเล่นเกม และตัวละครสำมำรถแต่งงำน
กับตัวละครภำยในเกมได้ 1 ครั้ง
พจนานุกรมข้อมูล (DATA DICTIONARY: DD)
พจนานุกรมข้อมูล (Data Dictionary: DD)
เป็นกำรทำเอกสำรอ้ำงอิง ช่วยอธิบำย
ส่วนประกอบของข้อมูลในระบบที่พัฒนำ ซึ่ง
เป็นสิ่งที่ใช้แสดงรำยละเอียดต่ำงๆ ใน
ฐำนข้อมูล หรือ Database เช่น Relation
Name, รำยละเอียดข้ำงในตัวข้อมูล หรือ
Data Description, ประเภทของข้อมูล,
ขนำดของข้อมูล หรือแม้กระทั่งตัวอย่ำงของ
ข้อมูลนั้นๆ
การประยุกต์ใช้งานฐานข้อมูล (Database Desing And Apply)
สาเหตุที่ต้องมีพจนานุกรมข้อมูลมีดังนี้
• เพื่อจัดเก็บรำยละเอียดในระบบฐำนข้อมูล
• เพื่อแสดงควำมหมำยพื้นฐำนของส่วนประกอบในระบบระบบฐำนข้อมูล
• เพื่อให้ผู้ที่มำศึกษำระบบ หรือพัฒนำระบบภำยหลังเข้ำใจโครงสร้ำงฐำนข้อมูล
Tb_Us
UsNa
U_ID
UsSe D_ID
การประยุกต์ใช้งานฐานข้อมูล (Database Desing And Apply)
ส่วนประกอบของพจนานุกรมข้อมูล
• ข้อมูลย่อย (Data Element)
• โครงสร้ำงข้อมูล (Data Structure) Tb_Us
UsNa
U_ID
UsSe
ชื่อข้อมูล ประเภท/ขนาดของข้อมูล รายละเอียดข้อมูล Key Structure
U_ID Varchar(13) รหัสผู้ใช้งำน PK
UsNa Varchar(100) ชื่อผู้ใช้งำน
UsSe Varchar(1) เพศผู้ใช้งำน 1 = ชำย | 2 = หญิง
D_ID Varchar(3) รหัสแผนก FK(Tb_De.D_ID)
D_ID
ข้อมูลย่อย (Data Element) โครงสร้างข้อมูล (Data Structure)
ใบงานที่ 4
โรงแรมแห่งหนึ่งต้องกำรพัฒนำระบบจองห้องพักในโรงแรม โดยให้นักศึกษำเขียนอธิบำยคุณสมบัติ
ของระบบ และเขียน ER-Diagram และ Data Dictionary ให้สอดคล้องกับระบบที่ออกแบบมำ
THANK YOU
ระบบฐานข้อมูล (Database System)
MDT 311 (2-2-6) ว่าที่ ร.ต. ดร.องอาจ อุ่นอนันต์
เนื้อหารายวิชา
ภาษา SQL #1 (Structured Query Language #1)
1. ภาษา SQL (Structured Query Language)
2. ชนิดของข้อมูลที่ใช้ใน SQL
3. ติดตั้ง XAMPP และเข้าใช้งาน
4. SQL Basic Syntax
5. ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL)
ภาษา SQL #1 (Structured Query Language #1)
1. ภาษา SQL (Structured Query Language)
เป็นภาษาที่ได้รับความนิยมสาหรับใช้ในการจัดการ หรือใช้ในการติดต่อกับฐานข้อมูล เป็นภาษามาตรฐาน
บนระบบฐานข้อมูลที่ใช้ในการสั่งให้ฐานข้อมูลกระทาการใด ๆ ตามคาสั่ง ANSI ได้กาหนดมาตรฐานของภาษา
SQL ขึ้น โดยแบ่งออกเป็น 3 ประเภท ได้แก่
• ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL)
• ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML)
• ภาษาสาหรับการควบคุมข้อมูล (Data Control Language: DCL)
ภาษา SQL #1 (Structured Query Language #1)
1.1 ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL)
• เป็นภาษาที่ใช้กาหนด Database Schema
• เป็นภาษาที่ใช้ในการกาหนดโครงสร้างการออกแบบฐานข้อมูล
• ตัวอย่าง คาสั่ง
• CREATE TABLE
• ALTER TABLE
• RENAME TABLE
• DROP TABLE
ภาษา SQL #1 (Structured Query Language #1)
1.2 ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML)
• เป็นภาษาที่ใช้ในการจัดการข้อมูล เช่น การค้นหา การเพิ่ม การแก้ไข การลบ
• ตัวอย่าง คาสั่ง
• SELECT
• INSERT INTO
• UPDATE
• DELETE
ภาษา SQL #1 (Structured Query Language #1)
1.3 ภาษาสาหรับการควบคุมข้อมูล (Data Control Language: DCL)
• เป็นภาษาที่ใช้ในการควบคุมความถูกต้องข้อมูล
• ควบคุมภาวะการใช้งานพร้อมกันจากผู้ใช้งานหลายคนในเวลาเดียวกัน และคาสั่งควบคุมความปลอดภัยของ
ข้อมูล
• การให้สิทธิอานาจแก่ผู้ใช้แต่ละคนในการเรียกดูหรือปรับปรุงข้อมูล
• ตัวอย่าง คาสั่ง
• GRANT
• REVORK
ภาษา SQL #1 (Structured Query Language #1)
2. ชนิดของข้อมูลที่ใช้ใน SQL
2.1 ตัวหนังสือ (Character)
• ตัวหนังสือแบบความยาวคงที่ (Fixed-length character)
• CHAR(n)
• ตัวหนังสือแบบความยาวไม่คงที่ (Variable-length character)
• VARCHAR(n)
• ตัวหนังสือแบบความยาวไม่จากัด
• TEXT
ภาษา SQL #1 (Structured Query Language #1)
2. ชนิดของข้อมูลที่ใช้ใน SQL
2.2 ตัวเลข (Numeric)
• จานวนเลขที่มีจุดทศนิยม (Decimal)
• DECIMAL(size, d) FLOAT(size, d)
• จานวนเต็ม (Interger)
• SMALLINT(size) INT(size)
ภาษา SQL #1 (Structured Query Language #1)
2. ชนิดของข้อมูลที่ใช้ใน SQL
2.3 วันที่และเวลา (Date/Time)
• ประเภทวันที่ (Date) :: YYYY-MM-DD
• Date
• ประเภทเวลา (Time) :: HH:MM:SS
• Time
• ประเภทวันที่และเวลา (DateTime) :: YYYY-MM-DD HH:MM:SS
• Datetime
ภาษา SQL #1 (Structured Query Language #1)
3. ติดตั้ง XAMPP และเข้าใช้งาน
ภาษา SQL #1 (Structured Query Language #1)
3. ติดตั้ง XAMPP และเข้าใช้งาน
ภาษา SQL #1 (Structured Query Language #1)
3. ติดตั้ง XAMPP และเข้าใช้งาน
C:xamppmysqlbin>mysql.exe -u root -p -h localhost
พาทที่เก็บไฟล์>ไฟล์ระบบฐานข้อมูล -u [username] -p –h [เครื่องที่ติดตั้งฐานข้อมูล]
ภาษา SQL #1 (Structured Query Language #1)
4. SQL Basic Syntax
1. NOT Case Sensitive การใช้อักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กไม่มีความแตกต่างกัน เช่น
SELECT * FROM epi กับ Select * From EPI
2. Comma (,) ใช้เป็นสัญลักษณ์คั่นกลางระหว่างชื่อคอลัมน์ หรือชื่อตารางในคาสั่ง SQL เช่น
SELECT pcucode, cid, date_serv, vcctype FROM epi, pat where epi.cid = pat.person_id
3. Single quotes (') ใช้เป็นสัญลักษณ์เปิดและปิดข้อความ เช่น
'OP/PP' 'สปสช 12'
ภาษา SQL #1 (Structured Query Language #1)
5. ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL)
6.1 แสดงรายการฐานข้อมูล/ตาราง
SHOW [databases/schemas/tables/columns];
SHOW เป็นคาสั่งให้แสดงฐานข้อมูล/ตารางที่มีอยู่
ภาษา SQL #1 (Structured Query Language #1)
6. ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL)
6.2 สร้างฐานข้อมูล
CREATE DATABASE database_name;
CREATE DATABASE เป็นคาสั่งในการสร้างฐานข้อมูล
ตัวอย่าง การสร้างฐานข้อมูลที่มีชื่อว่า aongart_shop
CREATE DATABASE aongart_shop
ภาษา SQL #1 (Structured Query Language #1)
6. ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL)
6.3 ลบฐานข้อมูล
DROP DATABASE database_name;
DROP DATABASE เป็นคาสั่งใช้ในการลบฐานข้อมูล
ตัวอย่าง การลบฐานข้อมูลที่มีชื่อว่า aongart_shop
DROP DATABASE aongart_shop
ภาษา SQL #1 (Structured Query Language #1)
6. ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL)
6.4 ใช้งานฐานข้อมูล
USE database_name;
USE เป็นคาสั่งใช้ในการเลือกใช้งานฐานข้อมูล
ตัวอย่าง การเลือกใช้ฐานข้อมูลที่มีชื่อว่า aongart_shop
USE aongart_shop
ภาษา SQL #1 (Structured Query Language #1)
6. ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL)
6.5 สร้างตาราง
CREATETABLE [Table-Name] (
column1 data_type [NOT NULL] [UNIQUE] [AUTO_INCREMENT],
column2 data_type [NOT NULL] [UNIQUE],
...,
[PRIMARY KEY (column)]);
CREATE TABLE เป็นคาสั่งในใช้ในการสร้างตารางในฐานข้อมูล โดยกาหนดลักษณะของ
ข้อมูลเป็นคอลัมน์
ภาษา SQL #1 (Structured Query Language #1)
6. ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL)
6.6 การแก้ไขตาราง
ALTERTABLE table_name
ADD column_name datatype;
ALTERTABLE table_name
DROP COLUMN column_name;
ALTERTABLE table_name
MODIFY COLUMN column_name datatype;
การเพิ่มคอลั่ม
การลบคอลั่ม
การแก้ไขคอลั่ม
ภาษา SQL #1 (Structured Query Language #1)
6. ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL)
6.7 ลบตาราง
DROP TABLE table_name;
การลบตาราง
TRUNCATE TABLE table_name;
การลบข้อมูลในตาราง
ใบงานที่ 6
สร้างฐานข้อมูลชื่อ Database: regis_system
นักศึกษา วิชา
ลงทะเบียน
Filed Data_type Key
Std_code Varchar(13) PK
Std_name Varchar(100)
Std_surname Varchar(100)
Filed Data_type Key
SubJ_code Varchar(5) PK
SubJ_name Varchar(100)
SubJ_credit Int(1)
Filed Data_type Key
Regis_id Int(11) PK
Std_code Varchar(13) FK
SubJ_code Varchar(5) FK
Regis_term Int(1)
Regis_year Varchar(4)
Table: Student Table: Regis_Detail Table: Subject
THANK YOU
ระบบฐานข้อมูล (Database System)
MDT 311 (2-2-6) ว่าที่ ร.ต. ดร.องอาจ อุ่นอนันต์
เนื้อหารายวิชา
ภาษา SQL #2 (Structured Query Language #2)
1. ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML)
ภาษา SQL #2 (Structured Query Language #2)
ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML)
• เป็นภาษาที่ใช้ในการจัดการข้อมูล เช่น การค้นหา การเพิ่ม การแก้ไข การลบ
• ตัวอย่าง คาสั่ง
• INSERT INTO
• UPDATE
• DELETE
• SELECT
ภาษา SQL #2 (Structured Query Language #2)
1. ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML)
1.1 เพิ่มข้อมูลในตาราง
INSERT INTO [Table]VALUES (values1, values2 , values3) ;
เพิ่มข้อมูลครบทุก Attribute ใน Table ไม่ต้องกาหนด column
INSERT INTO [Table] (column1, column2)VALUES (values1, values2) ;
เพิ่มข้อมูลบาง Attribute ใน Table ต้องกาหนด column ที่ต้องการเพิ่ม
ภาษา SQL #2 (Structured Query Language #2)
1. ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML)
1.1 เพิ่มข้อมูลในตาราง
ตัวอย่าง การเพิ่มข้อมูล MIS ลงในตาราง faculty
INSERT INTO faculty (faculty_id,faculty_name) VALUES ('','MIS’);
หรือ
INSERT INTO faculty VALUES ('','MIS’);
ภาษา SQL #2 (Structured Query Language #2)
1. ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML)
จงสร้างตาราง และเพิ่มข้อมูล
id name surname sex birthday
1 aongart aunanan M 1985-04-25
2 manee paina F 2001-01-14
3 peter copper M 2001-06-07
4 toffy sukjai F 1978-12-25
members
name
ภาษา SQL #2 (Structured Query Language #2)
1. ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML)
1.2 ค้นหา/แสดงข้อมูลในตาราง
SELECT * FROM [Table];
SELECT [column1, column2] FROM [Table];
ค้นหาข้อมูลครบทุก Attribute ใน Table ไม่ต้องกาหนด column
ค้นหาข้อมูลบาง Attribute ใน Table ต้องกาหนด column ที่ต้องการเพิ่ม
ภาษา SQL #2 (Structured Query Language #2)
1. ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML)
1.2 ค้นหา/แสดงข้อมูลในตาราง
ตัวอย่าง ต้องการค้นหาข้อมูลในตาราง faculty
SELECT * FROM faculty;
หรือ
SELECT faculty_name FROM faculty;
ภาษา SQL #2 (Structured Query Language #2)
1. ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML)
1.3 คาสั่งในการกาหนดเงื่อนไขในการค้นหาข้อมูลในตารางใช้ WHERE
SELECT * FROM [Table] WHERE [Condition];
SELECT [column1, column2] FROM [Table]WHERE [Condition];
ค้นหาจากตัวอักษร : SELECT * FROM table_name WHERE column = ‘value’;
ค้นหาจากตัวเลข : SELECT * FROM table_name WHERE column = value;
ค้นหาจากวันที่ : SELECT * FROM table_name WHERE column = ‘YYYY-MM-DD’;
ค้นหามากกว่า 1 Condition :
SELECT * FROM table_name WHERE column = ‘YYYY-MM-DD’ AND/OR column = value;
ภาษา SQL #2 (Structured Query Language #2)
1. ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML)
1.3 แก้ไขข้อมูลในตาราง
UPDATE [Table] SET [column1] = [value1], [column2] = [value2]WHERE [Condition];
ตัวอย่าง ต้องการแก้ไขข้อมูล faculty_name ในตาราง faculty
UPDATE faculty SET faculty_name = 'css' WHERE faculty_id = 1
ภาษา SQL #2 (Structured Query Language #2)
1. ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML)
1.4 ลบข้อมูลในตาราง
DELETE FROM [Table]WHERE [Condition];
ตัวอย่าง ต้องการลบข้อมูล faculty_id = 1 ในตาราง faculty
DELETE FROM faculty WHERE faculty_id = 1;
ใบงานที่ 7
ให้นักศึกษา นาข้อมูลเข้า Database: regis_system ในตาราง Student, Subject,
Regis_Detail โดยมีรายละเอียดดังนี้
Std_code Std_name Std_surname
6601999009 ชื่อตนเอง นามสกุลตนเอง
6601999001 Ji-soo Kim
6601999002 Jennie Kim
6601999003 Roseanne Park
6601999004 Lalisa Manobal
Table: Student
ใบงานที่ 7
ให้นักศึกษา นาข้อมูลเข้า Database: regis_system ในตาราง Student, Subject,
Regis_Detail โดยมีรายละเอียดดังนี้
SubJ_code SubJ_name SubJ_credit
GEN101 Physical Education 1
LNG120 General English 3
INT105 Basic SQL 1
INT201 Web Programming I 2
INT203 Web Programming II 2
Table: Subject
ใบงานที่ 7
ให้นักศึกษา นาข้อมูลเข้า Database: regis_system ในตาราง Student, Subject, Regis_Detail
โดยมีรายละเอียดดังนี้ Regis_id Std_code SubJ_code Regis_term Regis_year
1 6601999009 GEN101 1 2566
2 6601999001 GEN101 1 2566
3 6601999002 GEN101 2 2566
4 6601999003 GEN101 2 2566
5 6601999004 GEN101 2 2566
6 6601999009 INT105 1 2566
7 6601999009 LNG120 1 2566
8 6601999002 INT105 2 2566
9 6601999002 INT201 1 2566
Table: Regis_Detail
THANK YOU
ระบบฐานข้อมูล (Database System)
MDT 311 (2-2-6) ว่าที่ ร.ต. ดร.องอาจ อุ่นอนันต์
เนื้อหารายวิชา
ภาษา SQL #3 (Structured Query Language #3)
1. SQL สำหรับกำร Backup & Restore
2. SQL สำหรับกำรวบรวมข้อมูล (Aggregate Functions)
3. SQL สำหรับกำรรวมกลุ่ม เรียงลำดับ
ภาษา SQL #3 (Structured Query Language #3)
1. SQL สาหรับการ Backup & Restore
mysqldump -u [user name] –p [database_name] [tablename] > [dumpfilename.sql]
Backup
Restore
mysql -u [user name] -p [database_name] [tablename] < [dumpfilename.sql]
ภาษา SQL #3 (Structured Query Language #3)
1. SQL สาหรับการ Backup & Restore
ตัวอย่างการใช้งานคาสั่ง Backup
เมื่อต้องกำร Backup ฐำนข้อมูล fish ใช้คำสั่ง mysqldump ดังนี้
จะได้ไฟล์ fish_2023.sql อยู่ที่หน้ำ desktop
ภาษา SQL #3 (Structured Query Language #3)
1. SQL สาหรับการ Backup & Restore
ตัวอย่างการใช้งานคาสั่ง Restore
เมื่อต้องกำร Restore ฐำนข้อมูล fish ใช้คำสั่ง mysql โดยต้องทำกำรสร้ำงฐำนข้อมูล fish ก่อน
และใช้คำสั่ง ดังนี้
ข้อมูลจะถูกนำเข้ำในฐำนข้อมูลชื่อ fish
ภาษา SQL #3 (Structured Query Language #3)
2. SQL สาหรับการวบรวมข้อมูล (Aggregate Functions)
ฟังก์ชันกำรรวมจะทำกำรคำนวณค่ำหลำยค่ำและส่งกลับค่ำเดียว
- DISTINCT()
- COUNT()
- SUM()
- AVG()
- MAX()
- MIN()
ภาษา SQL #3 (Structured Query Language #3)
2. SQL สาหรับการวบรวมข้อมูล (Aggregate Functions)
2.1 กำจัดข้อมูลซ้ำซ้อน DISTINCT()
ภาษา SQL #3 (Structured Query Language #3)
2. SQL สาหรับการวบรวมข้อมูล (Aggregate Functions)
2.1 กำจัดข้อมูลซ้ำซ้อน DISTINCT()
เมื่อต้องกำรเรียกดูข้อมูลที่ไม่ซ้ำกันใน column: Country ให้
ใช้คำสั่ง ดังนี้
SELECT DISTINCT(Country) FROM customers;
ภาษา SQL #3 (Structured Query Language #3)
2. SQL สาหรับการวบรวมข้อมูล (Aggregate Functions)
2.2 นับจำนวนแถว COUNT()
เมื่อต้องกำรนับจำนวนแถวทั้งหมดในตำรำง Customers ให้ใช้คำสั่ง ดังนี้
SELECT COUNT(*) FROM customers;
เมื่อต้องกำรนับจำนวนแถวของลูกค้ำรหัส 34 ที่ซื้อของ ให้ใช้คำสั่ง ดังนี้
SELECT COUNT(*) FROM orders WHERE customerid = 34;
ภาษา SQL #3 (Structured Query Language #3)
2. SQL สาหรับการวบรวมข้อมูล (Aggregate Functions)
2.3 หำผลรวม SUM()
เมื่อต้องกำรผลรวมของจำนวนสินค้ำทั้งหมดในตำรำง
Orderdetails ให้ใช้คำสั่ง ดังนี้
SELECT SUM(quantity) FROM orderdetails;
ภาษา SQL #3 (Structured Query Language #3)
2. SQL สาหรับการวบรวมข้อมูล (Aggregate Functions)
2.4 หำค่ำเฉลี่ย AVG()
เมื่อต้องกำรหำค่ำเฉลี่ยของจำนวนสินค้ำในตำรำง
Orderdetails ให้ใช้คำสั่ง ดังนี้
SELECT AVG(quantity) FROM orderdetails;
ภาษา SQL #3 (Structured Query Language #3)
2. SQL สาหรับการวบรวมข้อมูล (Aggregate Functions)
2.5 หำค่ำมำกที่สุด MAX()
เมื่อต้องกำรหำค่ำมำกที่สุดที่มีกำรซื้อสินค้ำในตำรำง
Orderdetails ให้ใช้คำสั่ง ดังนี้
SELECT MAX(quantity) FROM orderdetails;
ภาษา SQL #3 (Structured Query Language #3)
2. SQL สาหรับการวบรวมข้อมูล (Aggregate Functions)
2.6 หำค่ำน้อยที่สุด MIN()
เมื่อต้องกำรหำค่ำน้อยที่สุดที่มีกำรซื้อสินค้ำในตำรำง
Orderdetails ให้ใช้คำสั่ง ดังนี้
SELECT MIN(quantity) FROM orderdetails;
ภาษา SQL #3 (Structured Query Language #3)
3. SQL สาหรับการรวมกลุ่ม เรียงลาดับ
ฟังก์ชันกำรรวมกลุ่ม เรียงลำดับ
- ORDER BY
- GROUP BY
ภาษา SQL #3 (Structured Query Language #3)
3. SQL สาหรับการรวมกลุ่ม เรียงลาดับ
3.1 รวมกลุ่มโดย GROUP BY
เมื่อต้องกำรรู้จำนวนที่ขำยสินค้ำได้ ในแต่ละรำยกำรสินค้ำ
ให้ใช้คำสั่งดังนี้
SELECT productid, SUM(quantity) FROM orderdetails
GROUP BY productid;
SELECT expressions
FROM tables
[WHERE conditions]
GROUP BY expression;
ภาษา SQL #3 (Structured Query Language #3)
3. SQL สาหรับการรวมกลุ่ม เรียงลาดับ
3.1 รวมกลุ่มโดย GROUP BY
SELECT productid, SUM(quantity) FROM orderdetails
GROUP BY productid;
เมื่อรู้จำนวนที่ขำยสินค้ำได้ ในแต่ละรำยกำรสินค้ำ ผลลัพธ์จะทำ
กำรรวมกลุ่มข้อมูลรำยกำรสินค้ำ และหำค่ำผลรวมด้วยคำสั่ง SUM()
ภาษา SQL #3 (Structured Query Language #3)
3. SQL สาหรับการรวมกลุ่ม เรียงลาดับ
3.2 เรียงลำดับ ORDER BY
เมื่อต้องกำรเรียงลำดับข้อมูล มี 2 แบบโดย
- เรียงจำกน้อยไปมำก (Ascending: ASC)
- เรียงจำกมำกไปน้อย (Descending: DESC)
SELECT expressions
FROM tables
[WHERE conditions]
ORDER BY expression [ ASC | DESC ];
ภาษา SQL #3 (Structured Query Language #3)
3. SQL สาหรับการรวมกลุ่ม เรียงลาดับ
3.2 เรียงลำดับ ORDER BY
เมื่อต้องกำรเรียงลำดับรหัสสินค้ำจำกน้อยไปมำก ให้ใช้คำสั่งดังนี้
SELECT * FROM orderdetails ORDER BY productid ASC;
เมื่อต้องกำรเรียงลำดับรหัสสินค้ำจำกมำกไปน้อย ให้ใช้คำสั่งดังนี้
SELECT * FROM orderdetails ORDER BY productid DESC;
THANK YOU
ระบบฐานข้อมูล (Database System)
MDT 311 (2-2-6) ว่าที่ ร.ต. ดร.องอาจ อุ่นอนันต์
เนื้อหารายวิชา
ภาษา SQL #4 (Structured Query Language #4)
1. SQL สำหรับ JOIN Table
2. กำรใช้งำนค้นหำค่ำตำมเงื่อนไข ร่วมกับกำร JOIN
ภาษา SQL #4 (Structured Query Language #4)
1. SQL สาหรับ JOIN Table
ในบำงครั้งกำรเก็บข้อมูลบนฐำนข้อมูล หรือ database อำจจะมีกำรกระจำยของข้อมูลอยู่ในหลำยๆ
table ขึ้น ขึ้นอยู่กับกำรออกแบบกำรเก็บข้อมูลแต่ละชนิดของ table ในบำงครั้งข้อมูลใน table อำจจะมี
ควำมสัมพันธ์ที่ในบำง Column ที่ข้อมูลเหมือนกัน และอำจต้องกำรเชื่อมข้อมูลของ 2 table นั้นเข้ำด้วยกัน
ซึ่งสำมำรถทำได้ด้วยคำสั่ง SQL Join statement
SELECT * FROM table1
JOIN table2 ON table1.common_field = table2.common_field;
ภาษา SQL #4 (Structured Query Language #4)
1. SQL สาหรับ JOIN Table
Attribute Key
OrderID PK
CustomerID FK
OrderDate
Attribute Key
CustomerID PK
CustomerName
ContactName
Country
Orders Customers
SELECT * FROM table1
JOIN table2 ON table1.common_field = table2.common_field;
SELECT * FROM Orders
JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
ภาษา SQL #4 (Structured Query Language #4)
1. SQL สาหรับ JOIN Table
ประเภทของกำร Join มีอยู่ 4 ประเภท
ภาษา SQL #4 (Structured Query Language #4)
1. SQL สาหรับ JOIN Table
ตัวอย่ำงกำร JOIN : LEFT JOIN
ID Name
1 John
2 Sara
3 Peter
4 Siri
ID Salary
1 15000
2 9000
4 23000
5 18000
Table_a Table_b
ID Name Salary
1 John 15000
2 Sara 9000
3 Peter
4 Siri 23000
ภาษา SQL #4 (Structured Query Language #4)
1. SQL สาหรับ JOIN Table
ตัวอย่ำงกำร JOIN : LEFT JOIN
ID Name
1 John
2 Sara
3 Peter
4 Siri
ID Salary
1 15000
2 9000
4 23000
5 18000
Table_a Table_b
ID Name Salary
1 John 15000
2 Sara 9000
3 Peter
4 Siri 23000
SELECT * FROM Table_a
LEFT JOIN Table_b ON Table_a.ID = Table_b.ID
ภาษา SQL #4 (Structured Query Language #4)
1. SQL สาหรับ JOIN Table
ตัวอย่ำงกำร JOIN : RIGHT JOIN
ID Name
1 John
2 Sara
3 Peter
4 Siri
ID Salary
1 15000
2 9000
4 23000
5 18000
Table_a Table_b
ID Name Salary
1 John 15000
2 Sara 9000
4 Siri 23000
5 18000
ภาษา SQL #4 (Structured Query Language #4)
1. SQL สาหรับ JOIN Table
ตัวอย่ำงกำร JOIN : RIGHT JOIN
ID Name
1 John
2 Sara
3 Peter
4 Siri
ID Salary
1 15000
2 9000
4 23000
5 18000
Table_a Table_b
ID Name Salary
1 John 15000
2 Sara 9000
3 Peter
4 Siri 23000
SELECT * FROM Table_a
RIGHT JOIN Table_b ON Table_a.ID = Table_b.ID
ภาษา SQL #4 (Structured Query Language #4)
1. SQL สาหรับ JOIN Table
ตัวอย่ำงกำร JOIN : INNER JOIN
ID Name
1 John
2 Sara
3 Peter
4 Siri
ID Salary
1 15000
2 9000
4 23000
5 18000
Table_a Table_b
ID Name Salary
1 John 15000
2 Sara 9000
4 Siri 23000
ภาษา SQL #4 (Structured Query Language #4)
1. SQL สาหรับ JOIN Table
ตัวอย่ำงกำร JOIN : INNER JOIN
ID Name
1 John
2 Sara
3 Peter
4 Siri
ID Salary
1 15000
2 9000
4 23000
5 18000
Table_a Table_b
ID Name Salary
1 John 15000
2 Sara 9000
4 Siri 23000
SELECT * FROM Table_a
INNER JOIN Table_b ON Table_a.ID = Table_b.ID
ภาษา SQL #4 (Structured Query Language #4)
1. SQL สาหรับ JOIN Table
ตัวอย่ำงกำร JOIN : FULL JOIN
ID Name
1 John
2 Sara
3 Peter
4 Siri
ID Salary
1 15000
2 9000
4 23000
5 18000
Table_a Table_b
ID Name Salary
1 John 15000
2 Sara 9000
3 Peter
4 Siri 23000
5 18000
ภาษา SQL #4 (Structured Query Language #4)
1. SQL สาหรับ JOIN Table
ตัวอย่ำงกำร JOIN : FULL JOIN
ID Name
1 John
2 Sara
3 Peter
4 Siri
ID Salary
1 15000
2 9000
4 23000
5 18000
Table_a Table_b
ID Name Salary
1 John 15000
2 Sara 9000
3 Peter
4 Siri 23000
5 18000
SELECT * FROM Table_a
FULL JOIN Table_b ON Table_a.ID = Table_b.ID
ภาษา SQL #4 (Structured Query Language #4)
1. SQL สาหรับ JOIN Table
ตัวอย่ำงกำร JOIN : FULL JOIN
SELECT * FROM Table_a
FULL JOIN Table_b ON Table_a.ID = Table_b.ID
SELECT * FROM Table_a
LEFT JOIN Table_b ON Table_a.ID = Table_b.ID
UNION
SELECT * FROM Table_a
RIGHT JOIN Table_b ON Table_a.ID = Table_b.ID
ภาษา SQL #4 (Structured Query Language #4)
1. SQL สาหรับ JOIN Table
Attribute Key
OrderID PK
CustomerID FK
OrderDate
Attribute Key
CustomerID PK
CustomerName
ContactName
Country
Orders
Customers
Attribute Key
OrderDetailID PK
OrderID FK
ProductID FK
Quantity
OrderDetails
Attribute Key
ProductID PK
ProductName FK
SupplierID FK
CategoryID FK
Unit
Price
Products
ใบงานที่ 8
ให้นักศึกษาหา Query เพื่อหาคาตอบดังนี้
- แสดงรำยกำร Order และรำยชื่อลูกค้ำที่สั่ง Order มำแต่ละ Order
- แสดงจำนวน Order โดยแยกตำมประเทศของลูกค้ำที่สั่ง Order
- แสดงรำยชื่อลูกค้ำ และจำนวนยอดที่ลูกค้ำซื้อสินค้ำทั้งหมด
THANK YOU

More Related Content

PDF
SQL for Data Analytics: Mastering Queries and Reporting with Training
PPTX
Data definition language (ddl)
PPTX
Data models
PPTX
Class viii ch-2 log on to access
PDF
22827361 ab initio-fa-qs
PDF
Database Models.pdf
PDF
DBMS Unit - 5 - Query processing and optimization
PDF
Data Base Management System.pdf
SQL for Data Analytics: Mastering Queries and Reporting with Training
Data definition language (ddl)
Data models
Class viii ch-2 log on to access
22827361 ab initio-fa-qs
Database Models.pdf
DBMS Unit - 5 - Query processing and optimization
Data Base Management System.pdf

What's hot (20)

PPTX
Columnar Databases (1).pptx
PPTX
Creación de tablas en SQL Server
PPT
Relational Algebra.ppt
PPT
Access Presentacion
PPTX
Datasets and catalogs
PPTX
Data base management system
PPTX
SKILLWISE-DB2 DBA
PPTX
Introduction to distributed database
PPTX
Structured query language
PDF
Angie Mero-Principales características de Access que se necesita para elabora...
DOCX
Estructura de datos
PPTX
Tipos de bases de datos
PPT
Single row functions
PDF
MANUAL DE CREACION DE UNA BASE DE DATOS EN POSTGRESQL
DOCX
DiseñO De Base De Datos
PPT
Generic Graph And Psets
PPTX
Base de datos
PPTX
Optimize the performance, cost, and value of databases.pptx
PPTX
Data base security & integrity
PPTX
File Structures(Part 2)
Columnar Databases (1).pptx
Creación de tablas en SQL Server
Relational Algebra.ppt
Access Presentacion
Datasets and catalogs
Data base management system
SKILLWISE-DB2 DBA
Introduction to distributed database
Structured query language
Angie Mero-Principales características de Access que se necesita para elabora...
Estructura de datos
Tipos de bases de datos
Single row functions
MANUAL DE CREACION DE UNA BASE DE DATOS EN POSTGRESQL
DiseñO De Base De Datos
Generic Graph And Psets
Base de datos
Optimize the performance, cost, and value of databases.pptx
Data base security & integrity
File Structures(Part 2)
Ad

Similar to ระบบฐานข้อมูล (Database System) All Weeks.pdf (20)

PPT
ระบบฐานข้อมูล
PDF
งานนำเสนอ การจัดการฐานข้อมุล
PPT
การจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูล
PPTX
ระบบสารสนเทศ
PDF
หน่วยการเรียนรู้ที่ 1 ข้อมูลและระบบฐานข้อมูลวิชา การจัดการฐานข้อมูล
PPTX
01 ฐานข้อมูลและคลังข้อมูล
PPT
Database basic new
PPT
Database basic new
PPT
Database
PPTX
นางสาว อรอนงค์ สุขาวรรณ
PPTX
นางสาว หัทยา เชื้อสมเกียรติ ม.5
PPT
หน่วยการเรียนรู้ที่ 15
PPT
Database basic new
PPT
การพัฒนาเอกสารออนไลน์ขั้นสูง Intro
PPTX
หน่วยที่1
PPT
บทที่่ 1
PPT
Data processing
PPT
บทที่1 ความรู้พื้นฐาน
ระบบฐานข้อมูล
งานนำเสนอ การจัดการฐานข้อมุล
การจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูล
ระบบสารสนเทศ
หน่วยการเรียนรู้ที่ 1 ข้อมูลและระบบฐานข้อมูลวิชา การจัดการฐานข้อมูล
01 ฐานข้อมูลและคลังข้อมูล
Database basic new
Database basic new
Database
นางสาว อรอนงค์ สุขาวรรณ
นางสาว หัทยา เชื้อสมเกียรติ ม.5
หน่วยการเรียนรู้ที่ 15
Database basic new
การพัฒนาเอกสารออนไลน์ขั้นสูง Intro
หน่วยที่1
บทที่่ 1
Data processing
บทที่1 ความรู้พื้นฐาน
Ad

ระบบฐานข้อมูล (Database System) All Weeks.pdf

  • 1. ระบบฐานข้อมูล (Database System) MDT 311 (2-2-6) ว่าที่ ร.ต. ดร.องอาจ อุ่นอนันต์
  • 2. ว่าที่ ร.ต. ดร.องอาจ อุ่นอนันต์ (อ.อาท) การศึกษา : Ph.D. in Information Technology, King Mongkut's University of Technology North Bangkok Master's degree in Information Technology, King Mongkut’s University of Technology North Bangkok Bachelor's degree in Computer Science, Chandrakasem Rajabhat University Contact : Tel & Line 089-687-5859
  • 3. อธิบายรายวิชา พื้นฐานการจัดเก็บข้อมูลอย่างมีแบบแผน ความสัมพันธ์กันของข้อมูล โครงสร้างการจัดเก็บ ข้อมูล วิธีการจัดเก็บข้อมูลอย่างเป็นระบบ วิธีสืบค้นข้อมูล การทาแผงผังข้อมูลที่เหมาะสมกับ ข้อมูลมีเดีย
  • 4. ผลลัพธ์การเรียนรู้ระดับรายวิชา 1. นักศึกษาสามารถอธิบายพื้นฐานและโครงสร้างการจัดเก็บข้อมูล 2. นักศึกษาสามารถอธิบายความสัมพันธ์ของข้อมูล 3. นักศึกษาสามารถสืบค้นข้อมูลจากฐานข้อมูลได้ 4. นักศึกษาสามารถออกแบบระบบฐานข้อมูลสาหรับงานมีเดียได้
  • 5. เกณฑ์การให้คะแนน รายละเอียด เปอเซ็น สอบกลางภาค 25% สอบปลายภาค 25% การบ้าน+เข้าเรียน 20% การปฏิบัติ 15% Mini Project 15% รวม 100%
  • 6. เนื้อหารายวิชา ความรู้เบื้องต้นเกี่ยวกับฐานข้อมูล 1. ข้อมูล (Data) และสารสนเทศ (Information) 2. ระบบแฟ้มข้อมูล (File System) 3. ระบบฐานข้อมูล (Database System)
  • 9. สารสนเทศ (Information) ข้อมูลข่าวสาร ความรู้ต่างๆ ที่ได้รับการสรุป คานวณ จัดเรียง หรือประมวลแล้วจากข้อมูล ต่างๆ ที่เกี่ยวข้องอย่างเป็นระบบตามหลักวิชาการ จนได้เป็นข้อความรู้ เพื่อนามาเผยแพร่และใช้ประโยชน์ในงานด้านต่าง ๆ
  • 11. ปัญญา (Wisdom) นาความรู้ที่มีมาประยุกต์ใช้ ตัดสินใจ และพัฒนาให้เกิดประโยชน์ในด้านต่างๆได้อย่างมี ประสิทธิภาพ
  • 13. ประเภทของข้อมูล: จาแนกตามลักษณะการเก็บข้อมูล 1) ข้อมูลจากการนับ (Counting Data) เช่น จานวนนักเรียนที่เข้าชมนิทรรศการงาน สัปดาห์วิทยาศาสตร์ ข้อมูลที่ได้จะเป็นเลขจานวนเต็ม 2) ข้อมูลจากการวัด (Measurement Data) เช่น น้าหนัก ความสูงของนิสิตแต่ละคน ข้อมูลที่ได้จะมีลักษณะเป็นเศษส่วนหรือจุดทศนิยม 3) ข้อมูลจากการสังเกต (Observation Data) เป็นข้อมูลที่ได้จากการสังเกต หรือการ ติดตาม 4) ข้อมูลจากการสัมภาษณ์ (Interview Data) เป็นข้อมูลที่ได้จากการ ถามตอบโดยตรง ระหว่างผู้สัมภาษณ์ และผู้ถูกสัมภาษณ์
  • 14. ประเภทของข้อมูล: จาแนกตามลักษณะข้อมูล 1) ข้อมูลเชิงปริมาณ (Quantitative Data) เป็นข้อมูลที่แสดงความแตกต่างในเรื่องของ ปริมาณหรือขนาด สามารถวัดออกมาเป็น ตัวเลข บอกได้ว่ามีค่ามาก หรือมีค่าน้อย แบ่งได้เป็น 2 ประเภท คือ - ข้อมูลแบบไม่ต่อเนื่อง (Discrete Data) - ข้อมูลแบบต่อเนื่อง (Continuous Data) 2) ข้อมูลเชิงคุณภาพ (Qualitative Data) เป็นข้อมูลที่ไม่ได้อยู่ในรูปของตัวเลขโดยตรง แต่อยู่ในรูปแสดงคุณลักษณะที่แตกต่างกันของสิ่งนั้น เช่น เพศ (เพศ ชาย เพศหญิง) ศาสนา (พุทธ คริสต์ อิสลาม ฯลฯ)
  • 15. ประเภทของข้อมูล: จาแนกตามแหล่งที่มาของข้อมูล 1) ข้อมูลปฐมภูมิ (Primary Data) เป็นข้อมูลที่ได้มาจากการที่ผู้ใช้ข้อมูลเป็นผู้ทาการเก็บ ข้อมูลโดยตรง ข้อมูลประเภทนี้จะเป็นข้อมูลที่มีความน่าเชื่อถือมากที่สุด เพราะมีรายละเอียด ตรงตามที่ผู้ใช้ต้องการ แต่จะเสียเวลาและค่าใช้จ่ายในการเก็บ 2) ข้อมูลทุติภูมิ (Secondary Data) เป็นข้อมูลที่ได้มาจากแหล่งข้อมูลที่มีผู้เก็บรวบรวมไว้ แล้วอย่างเป็นระบบ แล้วนามาเป็นข้อมูลโดยไม่ต้องลงมือในการดาเนินการเก็บรวบรวมเอง มักจะเป็นข้อมูลที่ผ่านการวิเคราะห์เบื้องต้นมาแล้ว
  • 16. ประเภทของข้อมูล: จาแนกตามเวลาของการเก็บรวบรวมข้อมูล 1) ข้อมูลอนุกรมเวลา (Time - series Data) เป็นข้อมูลที่ถูกเก็บรวบรวมตามลาดับเวลาที่ เกิดขึ้นต่อเนื่องไปเรื่อย ๆ ทาให้มองเห็นแนวโน้มของเรื่องต่าง ๆ นั้นได้ ข้อมูลประเภทนี้จะมี บทบาทช่วยในการตัดสินใจ การพยากรณ์ หรือการวางแผนความต้องการในอนาคตได้ 2) ข้อมูลภาคตัดขวาง (Cross-Sectional Data) เป็นข้อมูลที่เก็บรวบรวม ณ เวลาใดเวลา หนึ่งเท่านั้น เพื่อประโยชน์ในการศึกษาวิจัย
  • 17. ระบบแฟ้มข้อมูล (File System) แนวคิดในการจัดการข้อมูลได้เกิดขึ้นมานานแล้ว ซึ่งเป็นไปตามเทคโนโลยีที่ พัฒนาขึ้นในแต่ละยุคแต่ ละสมัย การจัดการข้อมูลได้เริ่มจากการบันทึกข้อมูล ซึ่งอาจเป็นการบันทึกลงในสมุดหรือในกระดาษเพื่อ บันทึกข้อมูลช่วยในการจดจา เมื่อต้องการเรียกดู ข้อมูลที่เคยบันทึกไว้ก็จะพลิกหน้าสมุดไปยังเลข หน้าที่ต้องการเพื่อดูรายละเอียด
  • 18. ประเภทของแฟ้มข้อมูล 1) แฟ้มข้อมูลที่จัดทาด้วยมือ เมื่อมีข้อมูลเพิ่มขึ้น ก็มีการพัฒนารูปแบบการจัดเก็บข้อมูลให้มีระบบ มากขึ้นตามไปด้วย มีการบันทึกลงในแฟ้มเอกสารต่างๆ ที่จัดไว้เป็นหมวด เป็นหมู่มีการจัดสารบัญ และจาเป็นต้อง มีอุปกรณ์หรือเครื่องมือที่ใช้ จัดเก็บแฟ้มเอกสารเหล่านั้น เพื่อให้เกิดความปลอดภัยยิ่งขึ้นเช่นมีตู้เก็บ เอกสาร
  • 21. วัตถุประสงค์การจัดสร้างโครงสร้างแฟ้มข้อมูล 1. เพื่อทาให้การค้นหา และการเข้าถึงข้อมูลมีความรวดเร็วขึ้น 2. เป็นการใช้อุปกรณ์จัดเก็บข้อมูลได้อย่างมีประสิทธิภาพ 3. เป็นการป้องกันข้อมูลที่อาจสูญเสีย 4. เพื่อรองรับการเติบโตของข้อมูล 5. เพื่อความปลอดภัยจากผู้ใช้ที่ไม่มีสิทธิใช้งาน
  • 22. ปัญหาที่เกิดขึ้นในการใช้แฟ้มข้อมูล 1. ความซ้าซ้อนของข้อมูล (Data Redundancy) การที่มีข้อมูลเดียวกัน ถูกจัดเก็บไว้มากกว่าหนึ่งแห่ง เนื่องจากความยุ่งยากในการรวบรวม ข้อมูลมาไว้ที่เดียวกัน อาจจะทาให้เกิดความผิดพลาดของข้อมูล (Data Anomalies) 2. มีรูปแบบที่ไม่ตรงกัน (Incompatible File Formats) เมื่อโครงสร้างข้อมูลถูกฝังตัว (Embedded) ด้วยโปรแกรมประยุกต์ โครงสร้างข้อมูลก็จะ ขึ้นอยู่กับภาษาของโปรแกรมประยุกต์นั้น
  • 23. ปัญหาที่เกิดขึ้นในการใช้แฟ้มข้อมูล 3. ความยุ่งยากในการเข้าถึงข้อมูล ถ้าแต่ละหน่วยงาน มีการจัดเก็บข้อมูลแยกกัน คือ จัดเก็บข้อมูลของตนเอง จะเป็นการยาก สาหรับการเข้าถึงข้อมูลได้โดยตรง โปรแกรมเมอร์จาเป็นต้องเขียนโปรแกรมด้วยการนาข้อมูลที่ เก็บแยกกัน แล้วนามาประมวลผลร่วมกัน
  • 24. ระบบฐานข้อมูล (Database System) ฐานข้อมูล (Database) เป็นการจัดเก็บข้อมูล ที่มีความสัมพันธ์กัน นามาเก็บรวบรวมให้อยู่ในที่ เดียวกันอย่างเป็นระบบ ทาให้ผู้ใช้สามารถใช้ข้อมูลที่ เกี่ยวข้องร่วมกันได้ เป็นการลดความซ้าซ้อนของ ข้อมูล ข้อมูลมีความถูกต้อง น่าเชื่อถือ และเป็น มาตรฐานเดียวกัน
  • 25. ระบบฐานข้อมูล (Database System) ระบบฐานข้อมูล หรือนิยมเรียกกันว่า Database Management Systems (DBMS) เป็นการจัดเก็บฐานข้อมูลที่มีความสัมพันธ์กัน ตั้งแต่สองฐานข้อมูลขึ้นไปรวมเข้าไว้ด้วย กันอย่าง เป็นระบบ และใช้ในการบริหารจัดการสิทธิ์ในการ เข้าถึงฐานข้อมูล
  • 26. คุณลักษณะของฐานข้อมูล (Characteristics of Database) คุณลักษณะที่ดีของฐานข้อมูลจะต้องมีความสามารถในการจัดการที่หลากหลายและที่สาคัญ จะต้องมีคุณลักษณะ ดังนี้ 1. ความสามารถในการจัดเก็บข้อมูล (Data Storage) การเรียกค้น (Retrieve) การแก้ไข เปลี่ยนแปลงข้อมูล (Update) การลบข้อมูล (Delete) และการสร้างข้อมูลเพิ่มเติม (Add) 2. การมีข้อมูลซ้าซ้อนกันน้อยที่สุด (Minimum Redundancy) เป็นคุณลักษณะ ที่สาคัญ ประการหนึ่งของฐานข้อมูล การนาข้อมูลทั้งหมดมารวมกันตัดส่วนที่ซ้ากันทิ้งไปให้เหลืออยู่เพียง แห่งเดียว จะทาให้ปัญหาข้อมูลไม่ตรงกันลดน้อยลงหรือหมดไปได้
  • 27. คุณลักษณะของฐานข้อมูล (Characteristics of Database) 3. ใช้ข้อมูลร่วมกัน (Data Sharing) การนาข้อมูลทั้งหมดมารวมกันอยู่เพียงแห่งเดียว สามารถ แบ่งข้อมูลใช้ร่วมกันได้ระหว่างผู้ใช้หลาย ๆ คน รวมทั้งการใช้ข้อมูลเดียวกันในเวลาพร้อม ๆ กันได้ อีกด้วย 4. ความถูกต้องของข้อมูล (Data Integrity) รักษาความสัมพันธ์ (Relationship) ของข้อมูล ภายในฐานข้อมูลให้มีความถูกต้องอยู่เสมอ ฐานข้อมูลมีระบบคอยตรวจสอบกฎเกณฑ์หรือเงื่อนไข ต่าง ๆ (Integrity Rules) ทุกครั้งที่มีการแก้ไขข้อมูลหรือเพิ่มเติมข้อมูลเข้าไปในระบบฐานข้อมูลนั้น
  • 28. คุณลักษณะของฐานข้อมูล (Characteristics of Database) 5. ความปลอดภัยของข้อมูล (Data Security) ฐานข้อมูลจะมีระบบรักษาความปลอดภัยของ ข้อมูลสูง โดยระบบบริหารจัดการฐานข้อมูลจะกาหนดสิทธิ์ในการใช้งานของผู้ใช้ เช่น ตรวจสอบ รหัสผ่าน (Password) ของผู้ใช้ก่อนที่จะเข้าสู่ระบบหลังจากนั้นจะตรวจสอบว่าผู้ใช้มีสิทธิใช้ข้อมูล ได้มากน้อยเพียงใด 6. การสารองข้อมูลและการกู้คืนข้อมูล (Data Backup and Recovery) การสารองข้อมูลและ การกู้คืนข้อมูล เป็นสิ่งจาเป็นอย่างยิ่งของระบบฐานข้อมูล เพื่อให้ผู้ใช้ระบบฐานข้อมูลมั่นใจว่า ข้อมูลที่จัดเก็บอยู่ในเครื่องคอมพิวเตอร์ไม่ได้เสียหาย ยังมีความสมบูรณ์อยู่ตลอดเวลา
  • 29. ประโยชน์ของระบบฐานข้อมูล 1. ลดความซ้าซ้อนของข้อมูล เนื่องจากข้อมูลมีการจัดเก็บเป็นฐานข้อมูลไว้ที่ส่วนกลางทาให้ลด ความซ้าซ้อน และช่วยแก้ปัญหาความขัดแย้งกันของข้อมูลได้ 2. การบริหารจัดการฐานข้อมูลทาได้ง่าย เนื่องจากมีการจัดเก็บข้อมูลไว้ที่ส่วนกลาง มีผู้บริหาร ฐานข้อมูล (Database Administrator: DBA) ทาให้การจัดการข้อมูลทาได้ง่าย รวมทั้งสามารถ กาหนดมาตรฐานของข้อมูลได้ 3. สามารถใช้ฐานข้อมูลร่วมกันได้ เนื่องจากโครงสร้างการจัดเก็บข้อมูลในฮาร์ดดิสก์ถูกกาหนด ด้วย DBMS และผู้ใช้แต่ละคนจะต้องใช้งานผ่าน DBMS
  • 30. ประโยชน์ของระบบฐานข้อมูล 4. มีความปลอดภัยของข้อมูลสูง เนื่องจากข้อมูลแต่ละข้อมูลจะมีความสาคัญไม่เท่ากัน ดังนั้น จึงต้องมีการกาหนดสิทธิในการใช้งาน โดยผู้บริหารฐานข้อมูล เป็นผู้กาหนดผู้มีสิทธิใช้งานข้อมูล เช่น รหัสผู้ใช้ และรหัสผ่าน
  • 31. ใบงานที่ 1 • ให้นักศึกษาหาความหมายของ ฐานข้อมูล (Database) คลังข้อมูล (Data Warehouse) และ เหมืองข้อมูล (Data Mining) รวมทั้งหาความแตกต่างของทั้ง 3 คาข้างต้น • ให้นักศึกษาหาโปรแกรม DBMS ที่เป็นที่นิยมใช้งานกันในปัจจุบัน จานวน 5 โปรแกรม พร้อม อธิบายรายละเอียดโดยสังเขป
  • 33. ระบบฐานข้อมูล (Database System) MDT 311 (2-2-6) ว่าที่ ร.ต. ดร.องอาจ อุ่นอนันต์
  • 34. เนื้อหารายวิชา ระบบบริหารจัดการฐานข้อมูล (Database Management System) 1. ความหมายของระบบบริหารจัดการฐานข้อมูล 2. สถาปัตยกรรมฐานข้อมูล (Database Architecture) 3. ภาษาคอมพิวเตอร์ที่ใช้ทางานกับฐานข้อมูล (Database Language) 4. แนวคิดฐานข้อมูลรูปแบบต่าง ๆ
  • 35. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 1. ความหมายของระบบบริหารจัดการฐานข้อมูล ระบบบริหารจัดการฐานข้อมูล คือ ชุดคาสั่ง หรือ โปรแกรม หรือ ซอฟท์แวร์ที่สร้าง ขึ้นมาเพื่อทาหน้าที่บริหารจัดการฐานข้อมูล จะทาหน้าที่เป็นเครื่องมือ หรือเป็นตัวกลางระหว่าง ผู้ใช้ชุดคาสั่งต่าง ๆ ที่เกี่ยวข้องกับฐานข้อมูล เพื่อจัดการและควบคุมความถูกต้อง ความซ้าซ้อน และความสัมพันธ์ระหว่างข้อมูลที่อยู่ภายในฐานข้อมูล รวมถึงการรักษาความมั่นคง ความ ปลอดภัยของข้อมูล การสารองข้อมูล และการเรียกคืนข้อมูลในกรณีที่ข้อมูลเกิดความเสียหาย
  • 36. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 1. ความหมายของระบบบริหารจัดการฐานข้อมูล Database DBMS Application
  • 37. ระบบบริหารจัดการฐานข้อมูล (Database Management System) Ranking of the most popular database management systems worldwide, as of February 2023 https://www.statista.com/statistics/809750/worldwide-popularity-ranking-database-management-systems/
  • 39. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 1.1 ข้อดีของการมีระบบจัดการฐานข้อมูล การทางานแบบฐานข้อมูล การทางานแบบแฟ้มข้อมูล แฟ้มฐานข้อมูลพนักงาน แฟ้มฐานข้อมูลเงินเดือน แฟ้มฐานข้อมูลการอบรม เมื่อข้อมูล พนักงาน เปลี่ยนแปลงจะ เกิดการขัดแย้งกัน ฐานข้อมูลพนักงาน ระบบอบรม ระบบเงินเดือน
  • 40. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 1.1 ข้อดีของการมีระบบจัดการฐานข้อมูล 1.1.1 หลีกเลี่ยงความขัดแย้งของข้อมูล และลดความซ้าซ้อนของข้อมูลได้ 1.1.2 ใช้ข้อมูลร่วมกันได้ 1.1.3 กาหนดมาตราฐานข้อมูลได้ 1.1.4 ทาให้มีความปลอดภัยของข้อมูลสูงขึ้น
  • 41. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 1.2 ข้อเสียของการมีระบบจัดการฐานข้อมูล 1.2.1 มีต้นทุนสูงขึ้น
  • 42. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 1.2 ข้อเสียของการมีระบบจัดการฐานข้อมูล 1.2.2 มีความซับซ้อน
  • 43. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 1.2 ข้อเสียของการมีระบบจัดการฐานข้อมูล 1.2.3 เสี่ยงต่อการหยุดชะงักของระบบ
  • 44. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 2. สถาปัตยกรรมฐานข้อมูล (Database Architecture) สถาปัตยกรรมฐานข้อมูล หมายถึง การอธิบายเกี่ยวกับโครงสร้างและส่วนประกอบ หลักที่นามาประกอบเป็นระบบฐานข้อมูล ซึ่งระบบฐานข้อมูลได้ถูกออกแบบมาเพื่อรองรับ โครงสร้างของข้อมูลที่มีผู้ใช้หลาย ๆ คน สถาบันมาตรฐานแห่งชาติอเมริกัน (American National Standards Institute: ANSI) จึงได้กาหนดมาตรฐานสถาปัตยกรรมฐานข้อมูล เรียกว่า สถาปัตยกรรมสามระดับ (Three-level Architecture)
  • 45. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 2.1 สถาปัตยกรรมฐานข้อมูล แบ่งออกเป็น 3 ระดับ คือ • ระดับภายนอกหรือวิว (External/View Level) • ระดับแนวคิด (Conceptual Level) • ระดับภายใน (Internal/Physical Level)
  • 46. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 2.1.1 สถาปัตยกรรมฐานข้อมูลระดับภายนอกหรือวิว เป็นระดับฐานข้อมูลที่อยู่ใกล้กับโปรแกรมประยุกต์ และใกล้กับผู้ใช้มากที่สุด เป็นระดับที่อธิบายเกี่ยวกับ ฐานข้อมูลที่ใช้งานร่วมกับโปรแกรมประยุกต์ โดยผู้ใช้แต่ ละคนจะมองเห็นข้อมูลตามสิทธิ์ที่กาหนดไว้เท่านั้น ซึ่ง จะเป็นการรักษาความปลอดภัยและความมั่นคงให้กับ ฐานข้อมูล
  • 47. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 2.1.1 สถาปัตยกรรมฐานข้อมูลระดับภายนอกหรือวิว EmpNum EmpName HireDate Salary Position DepNo Table: Employee DepNo DepName Location Table: Department
  • 48. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 2.1.1 สถาปัตยกรรมฐานข้อมูลระดับภายนอกหรือวิว
  • 49. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 2.1.2 สถาปัตยกรรมฐานข้อมูลระดับแนวคิด เป็นระดับที่มีการนาข้อมูลจากฐานข้อมูลไปใช้งาน เป็นระดับของฐานข้อมูลที่เกี่ยวกับ โครงสร้างฐานข้อมูล ชนิดของข้อมูล ข้อกาหนดเกี่ยวกับข้อมูลและ ความสัมพันธ์ของข้อมูล เป็นข้อมูลที่ผ่านการวิเคราะห์ และออกแบบโดยผู้บริหารฐานข้อมูล หรือนักวิเคราะห์ และผู้ออกแบบฐานข้อมูล (SA)
  • 50. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 2.1.2 สถาปัตยกรรมฐานข้อมูลระดับแนวคิด ความสัมพันธ์ของข้อมูล โครงสร้างฐานข้อมูล ชนิดของข้อมูล
  • 51. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 2.1.3 สถาปัตยกรรมฐานข้อมูลระดับภายใน เป็นระดับที่อธิบายเกี่ยวกับการจัดเก็บข้อมูลในเชิง กายภาพของฐานข้อมูลว่ามีรูปแบบ และโครงสร้างการ จัดเก็บข้อมูลเป็นอย่างไร ซึ่งข้อมูลจะถูกเก็บอยู่จริงใน สื่อบันทึกข้อมูล มีโครงสร้างการจัดเก็บข้อมูล รวมถึง การเข้าถึงข้อมูลต่าง ๆ ในฐานข้อมูล ผู้ที่เกี่ยวข้องส่วน ใหญ่ คือ ผู้เขียนโปรแกรม และผู้บริหารฐานข้อมูล (Database Administrator, DBA)
  • 52. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 2.1.3 สถาปัตยกรรมฐานข้อมูลระดับภายใน โครงสร้างการจัดเก็บข้อมูล สื่อบันทึกข้อมูล
  • 53. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 2.1 สถาปัตยกรรมฐานข้อมูล (Database Architecture)
  • 54. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 2. สถาปัตยกรรมฐานข้อมูล (Database Architecture) จากแนวคิดสถาปัตยกรรมฐานข้อมูล ทาให้เกิดความเป็นอิสระของข้อมูล (Data Independence) คือ ความสามารถในการเปลี่ยนแปลงเค้าร่าง (Schema) ในระดับหนึ่งของฐานข้อมูลแล้วไม่ส่งผลกระทบต่อ Schema ในระดับสูงขึ้น เป็นแนวคิดที่ทาให้การพัฒนาโปรแกรมเป็นอิสระต่อการเปลี่ยนแปลงโครงสร้างของฐานข้อมูล 2.2 ความเป็นอิสระของข้อมูล (Data Independence) • ความเป็นอิสระของข้อมูลในเชิงตรรกะ (Logical Data Independence) • ความเป็นอิสระของข้อมูลในเชิงกายภาพ (Physical Data Independence)
  • 55. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 2.2 ความเป็นอิสระของข้อมูล (Data Independence) ความเป็นอิสของข้อมูลในเชิงตรรกะ (Logical Data Independence) ความเป็นอิสระของข้อมูลในเชิงกายภาพ (Physical Data Independence)
  • 56. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 3. ภาษาคอมพิวเตอร์ที่ใช้ทางานกับฐานข้อมูล (Database Language) ภาษา SQL (Structured Query Language) เป็นภาษาที่ได้รับความนิยมสาหรับใช้ในการจัดการ หรือใช้ในการติดต่อกับฐานข้อมูล เป็นภาษามาตรฐานบนระบบฐานข้อมูลที่ใช้ในการสั่งให้ฐานข้อมูลกระทาการ ใด ๆ ตามคาสั่ง ANSI ได้กาหนดมาตรฐานของภาษา SQL ขึ้น โดยแบ่งออกเป็น 3 ประเภท ได้แก่ • ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL) • ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML) • ภาษาสาหรับการควบคุมข้อมูล (Data Control Language: DCL)
  • 57. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 3.1 ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL) • เป็นภาษาที่ใช้กาหนด Database Schema • เป็นภาษาที่ใช้ในการกาหนดโครงสร้างการออกแบบฐานข้อมูล • ตัวอย่าง คาสั่ง • CREATE TABLE • ALTER TABLE • RENAME TABLE • DROP TABLE
  • 58. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 3.2 ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML) • เป็นภาษาที่ใช้ในการจัดการข้อมูล เช่น การค้นหา การเพิ่ม การแก้ไข การลบ • ตัวอย่าง คาสั่ง • SELECT • INSERT INTO • UPDATE • DELETE
  • 59. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 3.3 ภาษาสาหรับการควบคุมข้อมูล (Data Control Language: DCL) • เป็นภาษาที่ใช้ในการควบคุมความถูกต้องข้อมูล • ควบคุมภาวะการใช้งานพร้อมกันจากผู้ใช้งานหลายคนในเวลาเดียวกัน และคาสั่งควบคุมความปลอดภัยของ ข้อมูล • การให้สิทธิอานาจแก่ผู้ใช้แต่ละคนในการเรียกดูหรือปรับปรุงข้อมูล • ตัวอย่าง คาสั่ง • GRANT • REVORK
  • 60. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 4. แนวคิดฐานข้อมูลรูปแบต่าง ๆ
  • 61. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 4.1 แบบจาลองแบบลาดับชั้นและแบบจาลองแบบเครือข่าย ลักษณะแบบจาลองฐานข้อมูลแบบเครือข่ายนี้ โครงสร้างของข้อมูลแต่ละแฟ้ม ข้อมูลมีความสัมพันธ์ คล้ายร่างแห สามารถเชื่อมโยงข้อมูลแบบไป-กลับ ได้ทา ให้สะดวกในการค้นหามากกว่าแบบจาลองแบบลาดับ ชั้น เพราะไม่ต้องไปเริ่มค้นหาตั้งแต่ข้อมูลต้นกาเนิดโดย ทางเดียว
  • 62. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 4.2 แบบจาลองข้อมูลเชิงสัมพันธ์ เป็นการจัดข้อมูลในรูปแบบของตาราง 2 มิติ คือมี แถว (Row) และคอลัมน์ (Column) ทาให้เข้าใจได้ง่าย การเชื่อมโยงข้อมูลระหว่างตารางจะใช้แอททริบิวท์ ที่มี อยู่ทั้งสองตารางเป็นตัวเชื่อมโยงข้อมูล การเลือกดูข้อมูล ทาได้ง่าย
  • 63. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 4.2 แบบจาลองข้อมูลเชิงสัมพันธ์ • โครงสร้างของฐานข้อมูลอยู่ในรูปของรีเลชัน หรือ ตาราง ประกอบด้วย • แถว (Tuple) • คอลัมน์ (Attribute) • การควบคุมความถูกต้อง • Tuple มีข้อมูลไม่ซ้ากัน • ค่าของ Attribute ทุกค่าต้องเป็น Atomicity
  • 64. ระบบบริหารจัดการฐานข้อมูล (Database Management System) 4.2 แบบจาลองข้อมูลเชิงสัมพันธ์ SID Name GPA Major 41001 สมชาย มุ่งมั่น 2.5 1 41002 มานะ บากบั่น 2.8 2 41003 สมศรี อ่อนน้อม 3.2 2 41004 องอาจ อุ่นอนันต์ 3.4 1 Relation Tuple Attribute 3 1 2 PK
  • 65. ระบบบริหารจัดการฐานข้อมูล 4.2 แบบจาลองข้อมูลเชิงสัมพันธ์ • รายการซื้อ Attribute ลูกค้า สามารถเอาชื่อ ลูกค้ามาใส่เลยได้ไหม ?? • รายละเอียดการซื้อ Attribute สินค้า สามารถ เอาชื่อสินค้ามาใส่ได้ไหม ??
  • 66. ใบงานที่ 2 • สถาปัตยกรรมฐานข้อมูล (Database Architecture) แบ่งออกเป็นกี่ระดับ อะไรบ้าง • ภาษา SQL แบ่งออกเป็นกี่ประเภท อะไรบ้าง
  • 68. ระบบฐานข้อมูล (Database System) MDT 311 (2-2-6) ว่าที่ ร.ต. ดร.องอาจ อุ่นอนันต์
  • 69. เนื้อหารายวิชา แบบจำลองฐำนข้อมูลเชิงสัมพันธ์ (Relational Database Model) 1. มุมมองเชิงตรรกะของข้อมูล 2. คีย์ต่ำง ๆ ในฐำนข้อมูลเชิงสัมพันธ์ 3. ตัวดำเนินกำรเชิงสัมพันธ์ 4. รูปแบบควำมสัมพันธ์ภำยในฐำนข้อมูลเชิงสัมพันธ์
  • 70. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 1. มุมมองเชิงตรรกะของข้อมูล
  • 71. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) เป็นกำรจัดข้อมูลในรูปแบบของตำรำง 2 มิติ คือมี แถว (Row) และคอลัมน์ (Column) ทำให้เข้ำใจได้ง่ำย กำรเชื่อมโยงข้อมูลระหว่ำงตำรำงจะใช้แอททริบิวท์ ที่มี อยู่ทั้งสองตำรำงเป็นตัวเชื่อมโยงข้อมูล กำรเลือกดูข้อมูล ทำได้ง่ำย 1. มุมมองเชิงตรรกะของข้อมูล
  • 72. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) SID Name GPA Major 41001 สมชำย มุ่งมั่น 2.5 1 41002 มำนะ บำกบั่น 2.8 2 41003 สมศรี อ่อนน้อม 3.2 2 41004 องอำจ อุ่นอนันต์ 3.4 1 Table, Entity, Relation Row, Record, Tuple Attribute, Column, Property, Filed 3 1 2 1. มุมมองเชิงตรรกะของข้อมูล
  • 73. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 1. มุมมองเชิงตรรกะของข้อมูล 1.1 ลักษณะของตำรำง • ตำรำงข้อมูลจะอยู่ในรูปแบบ 2 มิติ ประกอบไปด้วยแถวและคอลัมน์ • แต่ละแถวจะเป็นตัวแทนของข้อมูลแต่ละชุดข้อมูลที่ปรำกฏขึ้น • แต่ละคอลัมน์เป็นคุณสมบัติหนึ่ง ๆ ของข้อมูลโดยจะต้องไม่ซ้ำกัน • ค่ำที่ปรำกฏในคอลัมน์ จะสอดคล้องกับรูปแบบข้อมูลของคุณสมบัตินั้น ๆ • ข้อมูลที่อยู่ในฐำนข้อมูลไม่ควรซ้ำซ้อนกัน • ลำดับของแถวและคอลัมน์ ไม่มีควำมสำคัญในระบบกำรจัดกำรฐำนข้อมูล • แต่ละตำรำง จะมีคอลัมน์หรือกลุ่มของคอลัมน์ (Key) ที่สำมำรถระบุได้ถึงข้อมูลแถวนั้น
  • 74. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 1. มุมมองเชิงตรรกะของข้อมูล 1.1 ลักษณะของตำรำง USERS(id, username, password, phone, status, createdate, …, subuser_position)
  • 75. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 2. คีย์ต่าง ๆ ในฐานข้อมูลเชิงสัมพันธ์ คีย์ คือ สิ่งที่ใช้ในกำรกำหนดควำมเป็นเอกลักษณ์ของแถวในควำมสัมพันธ์ ทำให้กำรเข้ำถึง ข้อมูลเป็นไปได้อย่ำงรวดเร็ว ทำให้สำมำรถแยกแยะข้อมูลในฐำนข้อมูลให้เป็นไปอย่ำงถูกต้อง 2.1 Primary Key (PK) 2.2 Composite Key 2.3 Candidate Key 2.4 Foreign Key (FK)
  • 76. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 2. คีย์ต่าง ๆ ในฐานข้อมูลเชิงสัมพันธ์ 2.1 Primary Key (PK) คีย์หลักที่กำหนดจำกฟิลด์ที่ไม่มีข้อมูลซ้ำซ้อน (Unique) ใน Table เดียวกันโดยเด็ดขำด และ จะต้องมีค่ำเสมอ จะเป็นค่ำว่ำง (Null) ไม่ได้ สำมำรถนำมำจัดเรียงลำดับและแยกแยะข้อมูลแต่ละรำยกำร ออกจำกกันได้เป็นอย่ำงดี
  • 77. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 2. คีย์ต่าง ๆ ในฐานข้อมูลเชิงสัมพันธ์ 2.2 Composite Key คีย์ที่เกิดจำกกำรรวมข้อมูลหลำยฟิลด์ให้มีคุณสมบัติเหมือนคีย์หลัก (มีค่ำไม่ซ้ำกันและไม่มีค่ำว่ำง หรือ null value) เช่น กำรนำฟิลด์ชื่อพนักงำน มำรวมกับฟิลด์สกุลของพนักงำน ทำให้เกิดเป็นฟิลด์ข้อมูลที่มี ค่ำไม่ซ้ำซ้อนกัน เรียกคีย์ที่เกิดจำกกำรรวมชื่อพนักงำนและสกุลว่ำ Composite Key หรือ คีย์รวม
  • 78. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 2. คีย์ต่าง ๆ ในฐานข้อมูลเชิงสัมพันธ์ 2.3 Candidate Key คีย์ที่มีคุณสมบัติใกล้เคียงกับคีย์หลัก (Primary Key) หรือสำมำรถแทนคีย์หลักได้ เช่น ในตำรำง พนักงำน กำหนดให้รหัสพนักงำนเป็นคีย์หลัก ซึ่งมีค่ำไม่ซ้ำกันแต่พบว่ำหมำยเลขบัตรประชำชนของพนักงำนก็ มีค่ำไม่ซ้ำกัน ดังนั้น หมำยเลขบัตรประชำชนมีลักษณะเป็น Candidate Key ซื่งสำมำรถนำมำเป็นคีย์สำรอง แทนคีย์หลักได้
  • 79. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 2. คีย์ต่าง ๆ ในฐานข้อมูลเชิงสัมพันธ์ 2.4 Foreign Key (FK) คีย์ที่เชื่อม Table ที่เกี่ยวข้องหรือมี ควำมสัมพันธ์กัน เช่น ใน Table หลักสูตร กำหนดให้ รหัสวิชำเป็น Primary Key และทำกำรเชื่อมโยงไปยัง Table ลงทะเบียนเพื่อต้องกำรทรำบชื่อวิชำและหน่วย กิตที่นักเรียนลงทะเบียน โดยกำหนดฟิลด์ รหัสวิชำ ใน Table ลงทะเบียนเป็น Foreign Key Database Digital Programming
  • 80. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 3. ตัวดาเนินการเชิงสัมพันธ์ กำรจัดกำรขั้นพื้นฐำนของแบบจำลองข้อมูลเชิงสัมพันธ์ จะอยู่ภำยใต้แนวคิดเกี่ยวกับ Relational Algebra เป็นนิยำมเกี่ยวกับวิธีในกำรจัดกำรกับข้อมูลโดยกำรประยุกต์ใช้ 8 ตัว ดำเนินกำรเชิงสัมพันธ์ คือ 3.1 SELECT (σ : sigma) 3.2 PROJECT (π : pi) 3.3 PRODUCT (X) 3.4 JOIN (⋈ : Natural join) 3.5 DIFFERENCE (-) 3.6 INTERSECT (∩) 3.7 UNION (U) 3.8 DIVIDE
  • 81. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 3. ตัวดาเนินการเชิงสัมพันธ์ 3.1 SELECT (σ : sigma) เป็นกำรเรียกดูข้อมูล สำมำรถทำได้ 2 กรณี คือ 3.1.1 เรียกดูแถวข้อมูลทั้งหมด 3.1.2 เรียกดูแถวข้อมูลที่มีข้อมูลบำงส่วนสอดคล้องกับเงื่อนไข
  • 82. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 3. ตัวดาเนินการเชิงสัมพันธ์ ItemCode Name Price 123456 Lamp 25.15 123212 Box Fan 10.99 123458 100W bulb 1.47 123477 9v Battery 1.92 ItemCode Name Price 123456 Lamp 25.15 123212 Box Fan 10.99 123458 100W bulb 1.47 123477 9v Battery 1.92 Original table New table SELECT ALL items ItemCode Name Price 123458 100W bulb 1.47 123477 9v Battery 1.92 SELECT only PRICE less than 10 items ItemCode Name Price 123456 Lamp 25.15 SELECT only ItemCode = 123456 items σ(items) σPrice<10(items) σItemCode=123456(items)
  • 83. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 3. ตัวดาเนินการเชิงสัมพันธ์ 3.2 PROJECT (π : pi) เป็นกำรเรียกดูข้อมูลที่จะอ้ำงอิงกับคอลัมน์ที่สนใจ โดยผลลัพธ์ที่ได้จะเป็นข้อมูลทุกแถวใน ตำรำงข้อมูล ItemCode Name Price 123456 Lamp 25.15 123212 Box Fan 10.99 123458 100W bulb 1.47 123477 9v Battery 1.92 Price 25.15 10.99 1.47 1.92 Original table New table PROJECT PRICE items PROJECT NAME and PRICE items Name Price Lamp 25.15 Box Fan 10.99 100W bulb 1.47 9v Battery 1.92 πPrice(items) πName,Price(items)
  • 84. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 3. ตัวดาเนินการเชิงสัมพันธ์ ItemCode Name Price 123456 Lamp 25.15 123212 Box Fan 10.99 123458 100W bulb 1.47 123477 9v Battery 1.92 Original table πItemCode,Name(σPrice<10(items)) ItemCode Name 123458 100W bulb 123477 9v Battery
  • 85. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 3. ตัวดาเนินการเชิงสัมพันธ์ 3.3 PRODUCT (X) เป็นกำรนำค่ำจำกตำรำงที่ 1 มำต่อกับแถว จำกตำรำงที่ 2 ซึ่งจำนวนแถวของควำมสัมพันธ์ผลลัพธ์ จะเท่ำกับ จำนวนตำรำงที่ 1 X จำนวนตำรำงที่ 2 product or cartesian product or cross product
  • 86. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 3. ตัวดาเนินการเชิงสัมพันธ์ 3.3 PRODUCT (X) (items) X (store)
  • 87. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 3. ตัวดาเนินการเชิงสัมพันธ์ 3.4 JOIN (⋈) เป็นกำรรวมข้อมูลจำกสองตำรำงหรือมำกกว่ำสองตำรำงเข้ำด้วยกัน ซึ่งจะทำกำรเชื่อมโยง ควำมสัมพันธ์ระหว่ำงตำรำงผ่ำนแอทริบิวที่เหมือนกัน โดยที่ R และ S เป็นตำรำง C เป็นเงื่อนไข R⋈cS ItemCode Name Price 123456 Lamp 25.15 123212 Box Fan 10.99 123458 100W bulb 1.47 123477 9v Battery 1.92 Table: Item RunId OrderNum OrderDate CusCode ItemCode Qty 5 OR123456 2023-01-05 MEM101 123456 2 4 OR123456 2023-01-05 MEM101 123212 2 3 OR123456 2023-01-05 MEM101 123477 10 2 OR123455 2023-01-05 MEM125 123212 1 1 OR123454 2023-01-04 MEM089 123477 5 Table: Sale_detail (Sale_detail)⋈itemCode=ItemCode(items)
  • 88. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 3. ตัวดาเนินการเชิงสัมพันธ์ 3.4 JOIN (⋈) โดยมี 3 ประเภท คือ • Theta join (X) ใช้กับควำมสัมพันธ์แบบ Cartesian Product • Natural join (⋈) ใช้กับเครื่องหมำยเงื่อนไขเท่ำกับ (=) • Inner join (⟕, ⟖, ⟗) ใช้กับกำรเชื่อมโยงในรูปแบบของ SET
  • 89. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 3. ตัวดาเนินการเชิงสัมพันธ์ 3.4.1 Natural join จะทำกำรเชื่อมโยงควำมสัมพันธ์ระหว่ำงตำรำงโดยทำกำรเลือกเฉพำะแถวข้อมูลที่มีค่ำในแอท ริบิวเหมือนกันในแอทริบิวที่มีกำรเชื่อมโยงกัน (แอทริบิวที่เหมือนกัน) RunId OrderNum OrderDate CusCode ItemCode Qty ItemCode Name Price 5 OR123456 2023-01-05 MEM101 123456 2 123456 Lamp 25.15 4 OR123456 2023-01-05 MEM101 123212 2 123212 Box Fan 10.99 3 OR123456 2023-01-05 MEM101 123477 10 123477 9v Battery 1.92 2 OR123455 2023-01-05 MEM125 123212 1 123212 Box Fan 10.99 1 OR123454 2023-01-04 MEM089 123477 5 123477 9v Battery 1.92 Table: Sale_detail Table: Item (Sale_detail)⋈itemCode=ItemCode(items)
  • 90. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 3. ตัวดาเนินการเชิงสัมพันธ์ 3.4.2 Inner join จะเป็นกำรเชื่อมโยง ควำมสัมพันธ์ที่ซึ่งจะทำกำรคืนค่ำผลลัพธ์ เฉพำะเรคคอร์ดของข้อมูลที่มีกำรเชื่อมโยง กันระหว่ำงตำรำงเท่ำนั้น
  • 91. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 4. รูปแบบความสัมพันธ์ภายในฐานข้อมูลเชิงสัมพันธ์ ควำมสัมพันธ์ที่เกิดกับทุกสิ่งบนโลกจะสำมำรถแบ่งเป็นหมวดหมู่ได้เป็น 3 รูปแบบ one-to-one (1:1) one-to-many (1:M) many-to-many (M:N หรือ M:M)
  • 92. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 4. รูปแบบความสัมพันธ์ภายในฐานข้อมูลเชิงสัมพันธ์ 4.1 one-to-one (1:1) เอนทิตี้หนึ่งว่ำมีควำมสัมพันธ์กับข้อมูลในอีกเอนทิตี้หนึ่ง ในลักษณะ หนึ่งต่อหนึ่ง หรือเขียนได้เป็น 1:1 แสดงว่ำข้อมูลเพียงหนึ่งข้อมูลของเอนทิตี้แรกมีควำมสัมพันธ์กับข้อมูลในเอนทิตี้ที่สองเพียงข้อมูลเดียว
  • 93. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 4. รูปแบบความสัมพันธ์ภายในฐานข้อมูลเชิงสัมพันธ์ 4.1 one-to-one (1:1) เมื่อเกิดควำมสัมพันธ์ 1:1 แล้วกำรใช้งำน PK:FK จะสำมำรถนำ PK ของตำรำงใดตำรำง หนึ่ง ไปใส่ในอีกตำรำงหนึ่งได้ทันที รหัสอาจารย์ ชื่อ-นามสกุลอาจารย์ A1001 องอำจ อุ่นอนันต์ A1002 ปิติ ภูมิใจมั่น A1003 อำนำจ สว่ำงจิตร รหัสสาขา ชื่อสาขา D01 วิทยำกำรคอมพิวเตอร์ D02 เทคโลยีสำรสนเทศ D03 มัลติมีเดีย
  • 94. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 4. รูปแบบความสัมพันธ์ภายในฐานข้อมูลเชิงสัมพันธ์ 4.2 one-to-many (1:M) เอนทิตี้หนึ่งว่ำมีควำมสัมพันธ์กับข้อมูลในอีกเอนทิตี้หนึ่ง ในลักษณะ หนึ่งต่อกลุ่ม หรือเขียนได้เป็น 1:N แสดงว่ำข้อมูลเพียงหนึ่งข้อมูลของเอนทิตี้แรกมีควำมสัมพันธ์กับข้อมูลในเอนทิตี้ที่สองหลำยข้อมูล
  • 95. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 4. รูปแบบความสัมพันธ์ภายในฐานข้อมูลเชิงสัมพันธ์ 4.2 one-to-many (1:M) เมื่อเกิดควำมสัมพันธ์ 1:M แล้วกำรใช้งำน PK:FK จะนำ PK ของตำรำงใดตำรำงหนึ่ง ไปใส่ในอีกตำรำงใดตำรำงหนึ่งได้ รหัสจังหวัด ชื่อจังหวัด 10 กรุงเทพมหำนคร 11 นนทบุรี 12 สมุทรปรำกำร รหัสอาเภอ ชื่ออาเภอ 1001 เขตดุสิต 1002 เขตลำดกระบัง 1003 เขตพระนคร
  • 96. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 4. รูปแบบความสัมพันธ์ภายในฐานข้อมูลเชิงสัมพันธ์ 4.3 many-to-many (M:N หรือ M:M) เอนทิตี้หนึ่งว่ำมีควำมสัมพันธ์กับข้อมูลในอีกเอนทิตี้หนึ่ง ในลักษณะ กลุ่มต่อกลุ่ม หรือเขียนได้เป็น N:M แสดงว่ำข้อมูลเพียงหนึ่งข้อมูลของเอนทิตี้แรก มีควำมสัมพันธ์กับข้อมูลในเอนทิตี้ที่สองหลำยข้อมูล
  • 97. แบบจาลองฐานข้อมูลเชิงสัมพันธ์ (Relational Database Model) 4. รูปแบบความสัมพันธ์ภายในฐานข้อมูลเชิงสัมพันธ์ 4.3 many-to-many (M:N หรือ M:M) เมื่อเกิดควำมสัมพันธ์ M:N แล้วกำรใช้งำน PK:FK จะเกิดตำรำงใหม่ขึ้นมำระหว่ำง ควำมสัมพันธ์ โดยนำ PK ของแต่ละตำรำงมำเก็บไว้ในตำรำงใหม่ รหัสลูกค้า ชื่อลูกค้า U67001 องอำจ อุ่นอนันต์ U67002 ณพงษ์ สุวรรณวงศ์ U67003 กิติพงษ์ จงเจริญ รหัสสินค้า ชื่อสินค้า P101 ลำเต้ P102 มอคค่ำ P103 คำปูชิโน่
  • 98. ใบงานที่ 3 • กฎ 12 ข้อ ของ E.F Codd (Codd’s 12 Rules) คืออะไร ประกอบด้วยอะไรบ้ำง • จงเขียนรูปแบบควำมสัมพันธ์ของจังหวัด อำเภอ และตำบล • จงเขียน Algebra เพื่อหำ Employee(Sid, Name, Sex, Address, Salary, DeptNumber) Department(DeptNumber, DeptName, ManagerId) 1. แสดงรำยละเอียดของพนักงำนหญิงทั้งหมด 2. แสดง Id และชื่อ ของพนักงำนทั้งหมด 3. แสดงรำยกำรพนักงำนที่มีเงินเดือนตั้งแต่ 30000 บำทขึ้นไป 4. หำรำยชื่อพนักงำนที่มีเงินเดือนต่ำกว่ำ 15000 บำท 5. หำชื่อและที่อยู่ของพนักงำน แผนกโปรแกรมเมอร์
  • 100. ระบบฐานข้อมูล (Database System) MDT 311 (2-2-6) ว่าที่ ร.ต. ดร.องอาจ อุ่นอนันต์
  • 101. เนื้อหารายวิชา แบบจำลองเชิงสัมพันธ์ระหว่ำงข้อมูล (Entity Relational Diagram: ER-Diagram) 1. Entity 2. Attribute 3. Relation 4. กำรสร้ำง Entity ใหม่สำหรับรูปแบบควำมสัมพันธ์ M:N 5. พจนำนุกรมข้อมูล (Data Dictionary: DD)
  • 102. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 1. ความหมาย Entity-Relationship Diagram (ER-Diagram) ถูกคิดค้นโดย เชน (Chen) ในปี ค.ศ. 1976 ถือว่ำเป็นแบบจำลองที่ใช้ในกำรแสดง กำรออกแบบฐำนข้อมูลในระดับแนวคิด (Conceptual Level) ซึ่ง ถือว่ำเป็นเครื่องมือที่ใช้อธิบำยองค์ประกอบและข้อกำหนดของ ฐำนข้อมูล ที่นักวิเครำะห์และออกแบบระบบใช้เป็นสื่อกลำงในกำร สื่อสำรระหว่ำงผู้ใช้และนักพัฒนำโปรแกรมเนื่องจำกมีสัญลักษณ์ที่ สื่อควำมหมำยให้เข้ำใจได้ง่ำย Perter Chen
  • 104. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 2. สัญลักษณ์ที่ใช้ใน ER-Diagram สัญลักษณ์ Entity สัญลักษณ์ Attribute พนักงำน ตำแหน่ง มี รหัสพนักงำน ชื่อพนักงำน รหัสตำแหน่ง ชื่อตำแหน่ง 1 M สัญลักษณ์ Relationship Chen Model
  • 105. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 2.1 Entity สัญลักษณ์ Entity • สัญลักษณ์จะแทนด้วยรูปสี่เหลี่ยมและมีชื่อ Entity อยู่ภำยใน • เป็นส่วนที่ใช้สำหรับเก็บข้อมูลแต่ละรำยกำรภำยในระบบที่กำลังจัดทำอยู่ เช่น • บุคคล (พนักงำน, ผู้ป่วย, บุคลำกร, นักศึกษำ,ลูกค้ำ) • สถำนที่ (จังหวัด, อำเภอ, ภำค, ที่อยู่) • วัตถุ (รถยนต์, อำคำร, เครื่องจักร,สินค้ำ) • เหตุกำรณ์ (ประวัติ, กำรลงทะเบียน, กำรรักษำโรค,ซื้อ,ขำย)
  • 106. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 2.1 Entity สัญลักษณ์ Entity ประเภทของ ของ Entity มี 3 ประเภท • Regular Entity หรือ Strong Entity เป็น Entity ที่อยู่ได้โดยไม่ต้องอำศัย Entity อื่นในกำรคงอยู่ ซึ่งมีคุณสมบัติ Identity ได้ด้วยตัวเอง ไม่ ต้องพึ่ง Entity อื่น • Week Entity เป็น Entity ที่อยู่ได้โดยต้องอำศัย Entity อื่นในกำรคงอยู่ Customer Order Detail
  • 107. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 2.1 Entity สัญลักษณ์ Entity • Composite Entity เป็น Entity ที่ถูกสร้ำงขึ้นเพื่อแปลงควำมสัมพันธ์แบบ M:M ให้เป็น แบบ 1:M
  • 108. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 2.1 Entity สัญลักษณ์ Entity รหัส ชื่อ คณะ 45001 เดชา บริหารธุรกิจ 45002 สมชาย เกษตร รหัส ปีการศึกษา รหัสวิชา 45001 1/45 01 45002 1/45 01 45001 1/45 02 รหัสวิชา ชื่อวิชา 01 ฐานข้อมูล 02 โครงสร้าง Student Subject Regis_Detail Student Subject Regis_Detail
  • 109. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 2.2 Attribute • สัญลักษณ์จะแทนด้วยวงรี โดยมีชื่อของ Attributes กำกับอยู่ภำยใน และมีเส้นเชื่อมต่อกับ Entity • เป็นคุณสมบัติหรือลักษณะของ Entity เช่น Attributes ของ พนักงาน ประกอบด้วย • เลขที่พนักงำน • ชื่อ-นำมสกุล • เพศ • เงินเดือน สัญลักษณ์ Attribute
  • 110. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 2.2 Attribute Attributes ของ พนักงำน (Employee) ประกอบด้วย  เลขที่พนักงำน (Emp_ID)  ชื่อ-นำมสกุล (Name)  เพศ (Sex)  เงินเดือน (Salary) Employee Name Emp_ID Sex Salary
  • 111. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 2.2 Attribute Attributes สำมำรถจำแนกได้เป็น 5 ประเภท • Simple Attributes/Single-Valued Attributes Attributes ที่ไม่สำมำรถแบ่งแยกย่อยได้อีกแล้ว เช่น เพศ, เงินเดือน • Composite Attributes Attributes ที่สำมำรถแบ่งแยกย่อยไปได้อีก เช่น ชื่อ-สกุล ที่สำมำรถแบ่งออกได้เป็น Attributes ชื่อ และ สกุล • Key Attributes เป็น Attributes ที่สำมำรถบ่งบอกถึงเอกลักษณ์ของ Entity นั้นได้ (มีค่ำไม่ซ้ำกัน) เวลำเขียน ER Diagram ต้องขีดเส้นใต้ Attributes ที่เป็น Key ด้วย
  • 112. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 2.2 Attribute • Multi-Valued Attributes Property ที่สำมำรถมีค่ำของข้อมูลได้หลำยค่ำ เช่น เบอร์โทรที่ประกอบด้วยรหัสพื้นที่และตำมด้วยหมำยเลข โทรศัพท์ สัญลักษณ์เป็นวงรีสองเส้น • Derived Attributes เป็น Property ที่ได้มำจำกกำรคำนวณ โดยอำศัยค่ำใน Property อื่น ๆ เช่น ค่ำของอำยุ ที่ได้มำจำก Property วันเกิด สัญลักษณ์เป็นวงรีเส้นประ
  • 114. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 2.3 Relationship • สัญลักษณ์สี่เหลี่ยมข้ำวหลำมตัด (Diamond) และคำที่อธิบำยถึงควำมสัมพันธ์นั้น ๆ • หมำยถึง Entity ที่แสดงควำมสัมพันธ์ระหว่ำง 2 Entity ขึ้นไป • พร้อมทั้งระบุชนิดของควำมสัมพันธ์ระหว่ำง Entity นั้น ๆ ด้วย สัญลักษณ์ Relationship
  • 116. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 2.3 Relationship One-to-One Relationship เป็นควำมสัมพันธ์ของสมำชิกของใน Entity หนึ่งไปสัมพันธ์กับ กับสมำชิกของใน Entity อีกอันหนึ่ง เพียงหนึ่งเดียวเท่ำนั้น Employee has 1 1 Card number
  • 117. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 2.3 Relationship One-to-Many Relationship เป็นควำมสัมพันธ์ของสมำชิกของใน Entity หนึ่งไปสัมพันธ์กับ กับสมำชิกของใน Entity อีกอันหนึ่ง มำกกว่ำ 1 สมำชิก Employee in 1 M Department
  • 118. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 2.3 Relationship Many-to-Many Relationship เป็นควำมสัมพันธ์ของสมำชิกมำกกว่ำ 1 สมำชิก ของใน Entity หนึ่งไปสัมพันธ์กับ กับสมำชิกของใน Entity อีกอันหนึ่ง มำกกว่ำ 1 สมำชิก Student Learn M N Subject
  • 119. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 2.3 Relationship Dependency Relationship เป็นควำมสัมพันธ์ระหว่ำง Entity ที่แข็งแรงเชื่อมโยงกับ Entity อ่อนแอ Recursive Relationship เป็นควำมสัมพันธ์ที่เกิดจำก Entity เพียง Entity เดียว อำจำรย์ สอน 1 M ตำรำงสอน สอน นักศึกษำ มีหัวหน้ำ 1 M
  • 120. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 2.3 Relationship Recursive Relationship เป็นควำมสัมพันธ์ที่เกิดจำก Entity เพียง Entity เดียว นักศึกษำ มีหัวหน้ำ 1 M Std_ID Std_Name Std_Lead 1001 Art 1004 1002 Tong 1004 1003 O 1004 1004 Toffy 1005 May 1004
  • 121. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 3. การสร้าง Entity ใหม่สาหรับรูปแบบความสัมพันธ์ M:N ในกำรใช้งำนจริงถ้ำเกิดควำมสัมพันธ์แบบ M:N จะไม่สำมำรถนำมำสร้ำงฐำนข้อมูลได้ เนื่องจำก Key จะ เยอะและไม่สำมำรถหำที่ใส่ได้ จึงต้องมีกำรแตกเป็นตำรำงใหม่โดยใช้งำน Composite Entity
  • 122. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 3. การสร้าง Entity ใหม่สาหรับรูปแบบความสัมพันธ์ M:N • ซึ่ง Composite Entity จะกลำยเป็น Entity ใหม่ที่รวมเอำไว้ด้วย Key Property ของทั้ง 2 Entity หลัก และส่วนสนใจอื่น ๆ • ซึ่ง Key Property ของ Composite Entity ก็คือ Key Property ของทั้ง 2 Entity หลักนั้นเอง • สัญลักษณ์ของ Composite Entity คือ สี่เหลี่ยมผืนผ้ำซ้อนด้วยสี่เหลี่ยมรูปข้ำวหลำมตัด
  • 123. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 3. การสร้าง Entity ใหม่สาหรับรูปแบบความสัมพันธ์ M:N ภำพแสดงกำรเปลี่ยนแปลงจำก M:M มำเป็น 1:M Studen Subject M Learning M Studen Subject M M 1 1 Learning
  • 124. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 4. ขั้นตอนการออกแบบฐานข้อมูลด้วย ER Diagram • ศึกษำรำยละเอียดและลักษณะหน้ำที่งำนของระบบ • กำหนด Entity ที่ควรมีในระบบฐำนข้อมูล • โดยคำนึงถึงข้อมูลทั้งหมดที่จะจัดเก็บลงไปในฐำนข้อมูล ว่ำสำมำรถแบ่งออกได้เป็นกี่ Entity • ภำยในฐำนข้อมูลหนึ่ง ๆ อำจจะมีจำนวน Entity เป็นจำนวนมำก ซึ่งก็ขึ้นอยู่ที่ผู้ใช้ว่ำต้องกำรจัดเก็บข้อมูลมำกเพียงใด • โดยกำรกำหนด Entity จะต้องคำนึงถึง Entity ทั้งแบบอ่อนแอและแบบแข็งแรงด้วย • กำรกำหนดควำมสัมพันธ์ระหว่ำง Entity • กำรกำหนดคุณลักษณะของ Entity • กำรกำหนด Primary Key ของแต่ละ Entity
  • 125. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 4. ขั้นตอนการออกแบบฐานข้อมูลด้วย ER Diagram กรณีที่ 1 สถำบันกำรศึกษำแห่งหนึ่งมีกำรสอนอยู่ 3 คณะ คือ เกษตร, วิทยำศำสตร์, ศึกษำศำสตร์ ให้เวลา 10 นาที • ซึ่งในแต่ละคณะจะประกอบไปด้วยภำควิชำต่ำง ๆ • แต่ละภำควิชำก็จะประกอบไปด้วยอำจำรย์หลำย ๆ คน • อำจำรย์แต่ละคนสอนได้หลำยวิชำ แต่สำมำรถสังกัดได้เพียงแค่ภำควิชำเดียว • อำจำรย์แต่ละภำคก็จะมีอำจำรย์เป็นหัวหน้ำภำค
  • 126. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 4. ขั้นตอนการออกแบบฐานข้อมูลด้วย ER Diagram กาหนด Entity ที่ควรมีในระบบฐานข้อมูล • Entity Faculty แสดงรำยละเอียดของคณะ • Entity Department แสดงรำยละเอียดของแผนก • Entity Teacher แสดงรำยละเอียดของอำจำรย์ • Entity Subject แสดงรำยละเอียดของวิชำ
  • 127. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 4. ขั้นตอนการออกแบบฐานข้อมูลด้วย ER Diagram กาหนดความสัมพันธ์ระหว่าง Entity Faculty Department Under Department Teacher Under Department Subject Under 1 M 1 1 M M
  • 128. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 4. ขั้นตอนการออกแบบฐานข้อมูลด้วย ER Diagram กาหนดความสัมพันธ์ระหว่าง Entity Teacher Leader Subject Teacher M Teaching M Subject Teacher Teaching 1 M M M 1 1
  • 129. แบบจาลองเชิงสัมพันธ์ระหว่างข้อมูล (ER-DIAGRAM) 4. ขั้นตอนการออกแบบฐานข้อมูลด้วย ER Diagram กาหนดคุณลักษณะของ Entity Department Dep_ID Dep_Name Teacher Teacher_ID Teacher_Name Salary Faculty Faculty_ID Faculty_Name Subject Subject_ID Subject_Name Unit
  • 131. การประยุกต์ใช้งานฐานข้อมูล (Database Desing And Apply) กรณีที่ 2 ต้องกำรพัฒนำเกมออนไลน์ 1 เกมเพื่อเปิดตัวในประเทศไทย โดยมีรำยละเอียดของเกมดังนี้ โดยที่ลูกค้ำแต่ละคน สำมำรถสมัครเข้ำเล่นเกมได้ และสำมำรถเลือกสร้ำงตัวละครได้ Account ละ 3 ตัวละคร โดยที่แต่ละตัวละครเมื่อ พัฒนำถึงระดับหนึ่งจะสำมำรถเปลี่ยนอำชีพได้ 1 ครั้ง โดยที่แต่ละอำชีพจะมีสกิล (Skill) ที่ไม่เหมือนกัน โดยแต่ละตัว ละครจะมีจำนวนช่องกระเป๋ำเก็บของจำนวน 30 ช่อง เก็บ Item ได้ช่องละ 1 รำยกำรเท่ำนั้น Item แต่ละ Item มี หมวดหมู่ของ Item เอำไว้ โดยในเกมมีกำรตั้ง Clan เพื่อรับสมำชิกเข้ำ Clan ในกำรสร้ำงชุมชนในกำรเล่นเกม และตัวละครสำมำรถแต่งงำน กับตัวละครภำยในเกมได้ 1 ครั้ง
  • 132. พจนานุกรมข้อมูล (DATA DICTIONARY: DD) พจนานุกรมข้อมูล (Data Dictionary: DD) เป็นกำรทำเอกสำรอ้ำงอิง ช่วยอธิบำย ส่วนประกอบของข้อมูลในระบบที่พัฒนำ ซึ่ง เป็นสิ่งที่ใช้แสดงรำยละเอียดต่ำงๆ ใน ฐำนข้อมูล หรือ Database เช่น Relation Name, รำยละเอียดข้ำงในตัวข้อมูล หรือ Data Description, ประเภทของข้อมูล, ขนำดของข้อมูล หรือแม้กระทั่งตัวอย่ำงของ ข้อมูลนั้นๆ
  • 133. การประยุกต์ใช้งานฐานข้อมูล (Database Desing And Apply) สาเหตุที่ต้องมีพจนานุกรมข้อมูลมีดังนี้ • เพื่อจัดเก็บรำยละเอียดในระบบฐำนข้อมูล • เพื่อแสดงควำมหมำยพื้นฐำนของส่วนประกอบในระบบระบบฐำนข้อมูล • เพื่อให้ผู้ที่มำศึกษำระบบ หรือพัฒนำระบบภำยหลังเข้ำใจโครงสร้ำงฐำนข้อมูล Tb_Us UsNa U_ID UsSe D_ID
  • 134. การประยุกต์ใช้งานฐานข้อมูล (Database Desing And Apply) ส่วนประกอบของพจนานุกรมข้อมูล • ข้อมูลย่อย (Data Element) • โครงสร้ำงข้อมูล (Data Structure) Tb_Us UsNa U_ID UsSe ชื่อข้อมูล ประเภท/ขนาดของข้อมูล รายละเอียดข้อมูล Key Structure U_ID Varchar(13) รหัสผู้ใช้งำน PK UsNa Varchar(100) ชื่อผู้ใช้งำน UsSe Varchar(1) เพศผู้ใช้งำน 1 = ชำย | 2 = หญิง D_ID Varchar(3) รหัสแผนก FK(Tb_De.D_ID) D_ID ข้อมูลย่อย (Data Element) โครงสร้างข้อมูล (Data Structure)
  • 137. ระบบฐานข้อมูล (Database System) MDT 311 (2-2-6) ว่าที่ ร.ต. ดร.องอาจ อุ่นอนันต์
  • 138. เนื้อหารายวิชา ภาษา SQL #1 (Structured Query Language #1) 1. ภาษา SQL (Structured Query Language) 2. ชนิดของข้อมูลที่ใช้ใน SQL 3. ติดตั้ง XAMPP และเข้าใช้งาน 4. SQL Basic Syntax 5. ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL)
  • 139. ภาษา SQL #1 (Structured Query Language #1) 1. ภาษา SQL (Structured Query Language) เป็นภาษาที่ได้รับความนิยมสาหรับใช้ในการจัดการ หรือใช้ในการติดต่อกับฐานข้อมูล เป็นภาษามาตรฐาน บนระบบฐานข้อมูลที่ใช้ในการสั่งให้ฐานข้อมูลกระทาการใด ๆ ตามคาสั่ง ANSI ได้กาหนดมาตรฐานของภาษา SQL ขึ้น โดยแบ่งออกเป็น 3 ประเภท ได้แก่ • ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL) • ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML) • ภาษาสาหรับการควบคุมข้อมูล (Data Control Language: DCL)
  • 140. ภาษา SQL #1 (Structured Query Language #1) 1.1 ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL) • เป็นภาษาที่ใช้กาหนด Database Schema • เป็นภาษาที่ใช้ในการกาหนดโครงสร้างการออกแบบฐานข้อมูล • ตัวอย่าง คาสั่ง • CREATE TABLE • ALTER TABLE • RENAME TABLE • DROP TABLE
  • 141. ภาษา SQL #1 (Structured Query Language #1) 1.2 ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML) • เป็นภาษาที่ใช้ในการจัดการข้อมูล เช่น การค้นหา การเพิ่ม การแก้ไข การลบ • ตัวอย่าง คาสั่ง • SELECT • INSERT INTO • UPDATE • DELETE
  • 142. ภาษา SQL #1 (Structured Query Language #1) 1.3 ภาษาสาหรับการควบคุมข้อมูล (Data Control Language: DCL) • เป็นภาษาที่ใช้ในการควบคุมความถูกต้องข้อมูล • ควบคุมภาวะการใช้งานพร้อมกันจากผู้ใช้งานหลายคนในเวลาเดียวกัน และคาสั่งควบคุมความปลอดภัยของ ข้อมูล • การให้สิทธิอานาจแก่ผู้ใช้แต่ละคนในการเรียกดูหรือปรับปรุงข้อมูล • ตัวอย่าง คาสั่ง • GRANT • REVORK
  • 143. ภาษา SQL #1 (Structured Query Language #1) 2. ชนิดของข้อมูลที่ใช้ใน SQL 2.1 ตัวหนังสือ (Character) • ตัวหนังสือแบบความยาวคงที่ (Fixed-length character) • CHAR(n) • ตัวหนังสือแบบความยาวไม่คงที่ (Variable-length character) • VARCHAR(n) • ตัวหนังสือแบบความยาวไม่จากัด • TEXT
  • 144. ภาษา SQL #1 (Structured Query Language #1) 2. ชนิดของข้อมูลที่ใช้ใน SQL 2.2 ตัวเลข (Numeric) • จานวนเลขที่มีจุดทศนิยม (Decimal) • DECIMAL(size, d) FLOAT(size, d) • จานวนเต็ม (Interger) • SMALLINT(size) INT(size)
  • 145. ภาษา SQL #1 (Structured Query Language #1) 2. ชนิดของข้อมูลที่ใช้ใน SQL 2.3 วันที่และเวลา (Date/Time) • ประเภทวันที่ (Date) :: YYYY-MM-DD • Date • ประเภทเวลา (Time) :: HH:MM:SS • Time • ประเภทวันที่และเวลา (DateTime) :: YYYY-MM-DD HH:MM:SS • Datetime
  • 146. ภาษา SQL #1 (Structured Query Language #1) 3. ติดตั้ง XAMPP และเข้าใช้งาน
  • 147. ภาษา SQL #1 (Structured Query Language #1) 3. ติดตั้ง XAMPP และเข้าใช้งาน
  • 148. ภาษา SQL #1 (Structured Query Language #1) 3. ติดตั้ง XAMPP และเข้าใช้งาน C:xamppmysqlbin>mysql.exe -u root -p -h localhost พาทที่เก็บไฟล์>ไฟล์ระบบฐานข้อมูล -u [username] -p –h [เครื่องที่ติดตั้งฐานข้อมูล]
  • 149. ภาษา SQL #1 (Structured Query Language #1) 4. SQL Basic Syntax 1. NOT Case Sensitive การใช้อักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กไม่มีความแตกต่างกัน เช่น SELECT * FROM epi กับ Select * From EPI 2. Comma (,) ใช้เป็นสัญลักษณ์คั่นกลางระหว่างชื่อคอลัมน์ หรือชื่อตารางในคาสั่ง SQL เช่น SELECT pcucode, cid, date_serv, vcctype FROM epi, pat where epi.cid = pat.person_id 3. Single quotes (') ใช้เป็นสัญลักษณ์เปิดและปิดข้อความ เช่น 'OP/PP' 'สปสช 12'
  • 150. ภาษา SQL #1 (Structured Query Language #1) 5. ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL) 6.1 แสดงรายการฐานข้อมูล/ตาราง SHOW [databases/schemas/tables/columns]; SHOW เป็นคาสั่งให้แสดงฐานข้อมูล/ตารางที่มีอยู่
  • 151. ภาษา SQL #1 (Structured Query Language #1) 6. ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL) 6.2 สร้างฐานข้อมูล CREATE DATABASE database_name; CREATE DATABASE เป็นคาสั่งในการสร้างฐานข้อมูล ตัวอย่าง การสร้างฐานข้อมูลที่มีชื่อว่า aongart_shop CREATE DATABASE aongart_shop
  • 152. ภาษา SQL #1 (Structured Query Language #1) 6. ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL) 6.3 ลบฐานข้อมูล DROP DATABASE database_name; DROP DATABASE เป็นคาสั่งใช้ในการลบฐานข้อมูล ตัวอย่าง การลบฐานข้อมูลที่มีชื่อว่า aongart_shop DROP DATABASE aongart_shop
  • 153. ภาษา SQL #1 (Structured Query Language #1) 6. ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL) 6.4 ใช้งานฐานข้อมูล USE database_name; USE เป็นคาสั่งใช้ในการเลือกใช้งานฐานข้อมูล ตัวอย่าง การเลือกใช้ฐานข้อมูลที่มีชื่อว่า aongart_shop USE aongart_shop
  • 154. ภาษา SQL #1 (Structured Query Language #1) 6. ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL) 6.5 สร้างตาราง CREATETABLE [Table-Name] ( column1 data_type [NOT NULL] [UNIQUE] [AUTO_INCREMENT], column2 data_type [NOT NULL] [UNIQUE], ..., [PRIMARY KEY (column)]); CREATE TABLE เป็นคาสั่งในใช้ในการสร้างตารางในฐานข้อมูล โดยกาหนดลักษณะของ ข้อมูลเป็นคอลัมน์
  • 155. ภาษา SQL #1 (Structured Query Language #1) 6. ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL) 6.6 การแก้ไขตาราง ALTERTABLE table_name ADD column_name datatype; ALTERTABLE table_name DROP COLUMN column_name; ALTERTABLE table_name MODIFY COLUMN column_name datatype; การเพิ่มคอลั่ม การลบคอลั่ม การแก้ไขคอลั่ม
  • 156. ภาษา SQL #1 (Structured Query Language #1) 6. ภาษาสาหรับการนิยามข้อมูล (Data Definition Language: DDL) 6.7 ลบตาราง DROP TABLE table_name; การลบตาราง TRUNCATE TABLE table_name; การลบข้อมูลในตาราง
  • 157. ใบงานที่ 6 สร้างฐานข้อมูลชื่อ Database: regis_system นักศึกษา วิชา ลงทะเบียน Filed Data_type Key Std_code Varchar(13) PK Std_name Varchar(100) Std_surname Varchar(100) Filed Data_type Key SubJ_code Varchar(5) PK SubJ_name Varchar(100) SubJ_credit Int(1) Filed Data_type Key Regis_id Int(11) PK Std_code Varchar(13) FK SubJ_code Varchar(5) FK Regis_term Int(1) Regis_year Varchar(4) Table: Student Table: Regis_Detail Table: Subject
  • 159. ระบบฐานข้อมูล (Database System) MDT 311 (2-2-6) ว่าที่ ร.ต. ดร.องอาจ อุ่นอนันต์
  • 160. เนื้อหารายวิชา ภาษา SQL #2 (Structured Query Language #2) 1. ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML)
  • 161. ภาษา SQL #2 (Structured Query Language #2) ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML) • เป็นภาษาที่ใช้ในการจัดการข้อมูล เช่น การค้นหา การเพิ่ม การแก้ไข การลบ • ตัวอย่าง คาสั่ง • INSERT INTO • UPDATE • DELETE • SELECT
  • 162. ภาษา SQL #2 (Structured Query Language #2) 1. ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML) 1.1 เพิ่มข้อมูลในตาราง INSERT INTO [Table]VALUES (values1, values2 , values3) ; เพิ่มข้อมูลครบทุก Attribute ใน Table ไม่ต้องกาหนด column INSERT INTO [Table] (column1, column2)VALUES (values1, values2) ; เพิ่มข้อมูลบาง Attribute ใน Table ต้องกาหนด column ที่ต้องการเพิ่ม
  • 163. ภาษา SQL #2 (Structured Query Language #2) 1. ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML) 1.1 เพิ่มข้อมูลในตาราง ตัวอย่าง การเพิ่มข้อมูล MIS ลงในตาราง faculty INSERT INTO faculty (faculty_id,faculty_name) VALUES ('','MIS’); หรือ INSERT INTO faculty VALUES ('','MIS’);
  • 164. ภาษา SQL #2 (Structured Query Language #2) 1. ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML) จงสร้างตาราง และเพิ่มข้อมูล id name surname sex birthday 1 aongart aunanan M 1985-04-25 2 manee paina F 2001-01-14 3 peter copper M 2001-06-07 4 toffy sukjai F 1978-12-25 members name
  • 165. ภาษา SQL #2 (Structured Query Language #2) 1. ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML) 1.2 ค้นหา/แสดงข้อมูลในตาราง SELECT * FROM [Table]; SELECT [column1, column2] FROM [Table]; ค้นหาข้อมูลครบทุก Attribute ใน Table ไม่ต้องกาหนด column ค้นหาข้อมูลบาง Attribute ใน Table ต้องกาหนด column ที่ต้องการเพิ่ม
  • 166. ภาษา SQL #2 (Structured Query Language #2) 1. ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML) 1.2 ค้นหา/แสดงข้อมูลในตาราง ตัวอย่าง ต้องการค้นหาข้อมูลในตาราง faculty SELECT * FROM faculty; หรือ SELECT faculty_name FROM faculty;
  • 167. ภาษา SQL #2 (Structured Query Language #2) 1. ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML) 1.3 คาสั่งในการกาหนดเงื่อนไขในการค้นหาข้อมูลในตารางใช้ WHERE SELECT * FROM [Table] WHERE [Condition]; SELECT [column1, column2] FROM [Table]WHERE [Condition]; ค้นหาจากตัวอักษร : SELECT * FROM table_name WHERE column = ‘value’; ค้นหาจากตัวเลข : SELECT * FROM table_name WHERE column = value; ค้นหาจากวันที่ : SELECT * FROM table_name WHERE column = ‘YYYY-MM-DD’; ค้นหามากกว่า 1 Condition : SELECT * FROM table_name WHERE column = ‘YYYY-MM-DD’ AND/OR column = value;
  • 168. ภาษา SQL #2 (Structured Query Language #2) 1. ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML) 1.3 แก้ไขข้อมูลในตาราง UPDATE [Table] SET [column1] = [value1], [column2] = [value2]WHERE [Condition]; ตัวอย่าง ต้องการแก้ไขข้อมูล faculty_name ในตาราง faculty UPDATE faculty SET faculty_name = 'css' WHERE faculty_id = 1
  • 169. ภาษา SQL #2 (Structured Query Language #2) 1. ภาษาสาหรับการจัดการข้อมูล (Data Manipulation Language: DML) 1.4 ลบข้อมูลในตาราง DELETE FROM [Table]WHERE [Condition]; ตัวอย่าง ต้องการลบข้อมูล faculty_id = 1 ในตาราง faculty DELETE FROM faculty WHERE faculty_id = 1;
  • 170. ใบงานที่ 7 ให้นักศึกษา นาข้อมูลเข้า Database: regis_system ในตาราง Student, Subject, Regis_Detail โดยมีรายละเอียดดังนี้ Std_code Std_name Std_surname 6601999009 ชื่อตนเอง นามสกุลตนเอง 6601999001 Ji-soo Kim 6601999002 Jennie Kim 6601999003 Roseanne Park 6601999004 Lalisa Manobal Table: Student
  • 171. ใบงานที่ 7 ให้นักศึกษา นาข้อมูลเข้า Database: regis_system ในตาราง Student, Subject, Regis_Detail โดยมีรายละเอียดดังนี้ SubJ_code SubJ_name SubJ_credit GEN101 Physical Education 1 LNG120 General English 3 INT105 Basic SQL 1 INT201 Web Programming I 2 INT203 Web Programming II 2 Table: Subject
  • 172. ใบงานที่ 7 ให้นักศึกษา นาข้อมูลเข้า Database: regis_system ในตาราง Student, Subject, Regis_Detail โดยมีรายละเอียดดังนี้ Regis_id Std_code SubJ_code Regis_term Regis_year 1 6601999009 GEN101 1 2566 2 6601999001 GEN101 1 2566 3 6601999002 GEN101 2 2566 4 6601999003 GEN101 2 2566 5 6601999004 GEN101 2 2566 6 6601999009 INT105 1 2566 7 6601999009 LNG120 1 2566 8 6601999002 INT105 2 2566 9 6601999002 INT201 1 2566 Table: Regis_Detail
  • 174. ระบบฐานข้อมูล (Database System) MDT 311 (2-2-6) ว่าที่ ร.ต. ดร.องอาจ อุ่นอนันต์
  • 175. เนื้อหารายวิชา ภาษา SQL #3 (Structured Query Language #3) 1. SQL สำหรับกำร Backup & Restore 2. SQL สำหรับกำรวบรวมข้อมูล (Aggregate Functions) 3. SQL สำหรับกำรรวมกลุ่ม เรียงลำดับ
  • 176. ภาษา SQL #3 (Structured Query Language #3) 1. SQL สาหรับการ Backup & Restore mysqldump -u [user name] –p [database_name] [tablename] > [dumpfilename.sql] Backup Restore mysql -u [user name] -p [database_name] [tablename] < [dumpfilename.sql]
  • 177. ภาษา SQL #3 (Structured Query Language #3) 1. SQL สาหรับการ Backup & Restore ตัวอย่างการใช้งานคาสั่ง Backup เมื่อต้องกำร Backup ฐำนข้อมูล fish ใช้คำสั่ง mysqldump ดังนี้ จะได้ไฟล์ fish_2023.sql อยู่ที่หน้ำ desktop
  • 178. ภาษา SQL #3 (Structured Query Language #3) 1. SQL สาหรับการ Backup & Restore ตัวอย่างการใช้งานคาสั่ง Restore เมื่อต้องกำร Restore ฐำนข้อมูล fish ใช้คำสั่ง mysql โดยต้องทำกำรสร้ำงฐำนข้อมูล fish ก่อน และใช้คำสั่ง ดังนี้ ข้อมูลจะถูกนำเข้ำในฐำนข้อมูลชื่อ fish
  • 179. ภาษา SQL #3 (Structured Query Language #3) 2. SQL สาหรับการวบรวมข้อมูล (Aggregate Functions) ฟังก์ชันกำรรวมจะทำกำรคำนวณค่ำหลำยค่ำและส่งกลับค่ำเดียว - DISTINCT() - COUNT() - SUM() - AVG() - MAX() - MIN()
  • 180. ภาษา SQL #3 (Structured Query Language #3) 2. SQL สาหรับการวบรวมข้อมูล (Aggregate Functions) 2.1 กำจัดข้อมูลซ้ำซ้อน DISTINCT()
  • 181. ภาษา SQL #3 (Structured Query Language #3) 2. SQL สาหรับการวบรวมข้อมูล (Aggregate Functions) 2.1 กำจัดข้อมูลซ้ำซ้อน DISTINCT() เมื่อต้องกำรเรียกดูข้อมูลที่ไม่ซ้ำกันใน column: Country ให้ ใช้คำสั่ง ดังนี้ SELECT DISTINCT(Country) FROM customers;
  • 182. ภาษา SQL #3 (Structured Query Language #3) 2. SQL สาหรับการวบรวมข้อมูล (Aggregate Functions) 2.2 นับจำนวนแถว COUNT() เมื่อต้องกำรนับจำนวนแถวทั้งหมดในตำรำง Customers ให้ใช้คำสั่ง ดังนี้ SELECT COUNT(*) FROM customers; เมื่อต้องกำรนับจำนวนแถวของลูกค้ำรหัส 34 ที่ซื้อของ ให้ใช้คำสั่ง ดังนี้ SELECT COUNT(*) FROM orders WHERE customerid = 34;
  • 183. ภาษา SQL #3 (Structured Query Language #3) 2. SQL สาหรับการวบรวมข้อมูล (Aggregate Functions) 2.3 หำผลรวม SUM() เมื่อต้องกำรผลรวมของจำนวนสินค้ำทั้งหมดในตำรำง Orderdetails ให้ใช้คำสั่ง ดังนี้ SELECT SUM(quantity) FROM orderdetails;
  • 184. ภาษา SQL #3 (Structured Query Language #3) 2. SQL สาหรับการวบรวมข้อมูล (Aggregate Functions) 2.4 หำค่ำเฉลี่ย AVG() เมื่อต้องกำรหำค่ำเฉลี่ยของจำนวนสินค้ำในตำรำง Orderdetails ให้ใช้คำสั่ง ดังนี้ SELECT AVG(quantity) FROM orderdetails;
  • 185. ภาษา SQL #3 (Structured Query Language #3) 2. SQL สาหรับการวบรวมข้อมูล (Aggregate Functions) 2.5 หำค่ำมำกที่สุด MAX() เมื่อต้องกำรหำค่ำมำกที่สุดที่มีกำรซื้อสินค้ำในตำรำง Orderdetails ให้ใช้คำสั่ง ดังนี้ SELECT MAX(quantity) FROM orderdetails;
  • 186. ภาษา SQL #3 (Structured Query Language #3) 2. SQL สาหรับการวบรวมข้อมูล (Aggregate Functions) 2.6 หำค่ำน้อยที่สุด MIN() เมื่อต้องกำรหำค่ำน้อยที่สุดที่มีกำรซื้อสินค้ำในตำรำง Orderdetails ให้ใช้คำสั่ง ดังนี้ SELECT MIN(quantity) FROM orderdetails;
  • 187. ภาษา SQL #3 (Structured Query Language #3) 3. SQL สาหรับการรวมกลุ่ม เรียงลาดับ ฟังก์ชันกำรรวมกลุ่ม เรียงลำดับ - ORDER BY - GROUP BY
  • 188. ภาษา SQL #3 (Structured Query Language #3) 3. SQL สาหรับการรวมกลุ่ม เรียงลาดับ 3.1 รวมกลุ่มโดย GROUP BY เมื่อต้องกำรรู้จำนวนที่ขำยสินค้ำได้ ในแต่ละรำยกำรสินค้ำ ให้ใช้คำสั่งดังนี้ SELECT productid, SUM(quantity) FROM orderdetails GROUP BY productid; SELECT expressions FROM tables [WHERE conditions] GROUP BY expression;
  • 189. ภาษา SQL #3 (Structured Query Language #3) 3. SQL สาหรับการรวมกลุ่ม เรียงลาดับ 3.1 รวมกลุ่มโดย GROUP BY SELECT productid, SUM(quantity) FROM orderdetails GROUP BY productid; เมื่อรู้จำนวนที่ขำยสินค้ำได้ ในแต่ละรำยกำรสินค้ำ ผลลัพธ์จะทำ กำรรวมกลุ่มข้อมูลรำยกำรสินค้ำ และหำค่ำผลรวมด้วยคำสั่ง SUM()
  • 190. ภาษา SQL #3 (Structured Query Language #3) 3. SQL สาหรับการรวมกลุ่ม เรียงลาดับ 3.2 เรียงลำดับ ORDER BY เมื่อต้องกำรเรียงลำดับข้อมูล มี 2 แบบโดย - เรียงจำกน้อยไปมำก (Ascending: ASC) - เรียงจำกมำกไปน้อย (Descending: DESC) SELECT expressions FROM tables [WHERE conditions] ORDER BY expression [ ASC | DESC ];
  • 191. ภาษา SQL #3 (Structured Query Language #3) 3. SQL สาหรับการรวมกลุ่ม เรียงลาดับ 3.2 เรียงลำดับ ORDER BY เมื่อต้องกำรเรียงลำดับรหัสสินค้ำจำกน้อยไปมำก ให้ใช้คำสั่งดังนี้ SELECT * FROM orderdetails ORDER BY productid ASC; เมื่อต้องกำรเรียงลำดับรหัสสินค้ำจำกมำกไปน้อย ให้ใช้คำสั่งดังนี้ SELECT * FROM orderdetails ORDER BY productid DESC;
  • 193. ระบบฐานข้อมูล (Database System) MDT 311 (2-2-6) ว่าที่ ร.ต. ดร.องอาจ อุ่นอนันต์
  • 194. เนื้อหารายวิชา ภาษา SQL #4 (Structured Query Language #4) 1. SQL สำหรับ JOIN Table 2. กำรใช้งำนค้นหำค่ำตำมเงื่อนไข ร่วมกับกำร JOIN
  • 195. ภาษา SQL #4 (Structured Query Language #4) 1. SQL สาหรับ JOIN Table ในบำงครั้งกำรเก็บข้อมูลบนฐำนข้อมูล หรือ database อำจจะมีกำรกระจำยของข้อมูลอยู่ในหลำยๆ table ขึ้น ขึ้นอยู่กับกำรออกแบบกำรเก็บข้อมูลแต่ละชนิดของ table ในบำงครั้งข้อมูลใน table อำจจะมี ควำมสัมพันธ์ที่ในบำง Column ที่ข้อมูลเหมือนกัน และอำจต้องกำรเชื่อมข้อมูลของ 2 table นั้นเข้ำด้วยกัน ซึ่งสำมำรถทำได้ด้วยคำสั่ง SQL Join statement SELECT * FROM table1 JOIN table2 ON table1.common_field = table2.common_field;
  • 196. ภาษา SQL #4 (Structured Query Language #4) 1. SQL สาหรับ JOIN Table Attribute Key OrderID PK CustomerID FK OrderDate Attribute Key CustomerID PK CustomerName ContactName Country Orders Customers SELECT * FROM table1 JOIN table2 ON table1.common_field = table2.common_field; SELECT * FROM Orders JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
  • 197. ภาษา SQL #4 (Structured Query Language #4) 1. SQL สาหรับ JOIN Table ประเภทของกำร Join มีอยู่ 4 ประเภท
  • 198. ภาษา SQL #4 (Structured Query Language #4) 1. SQL สาหรับ JOIN Table ตัวอย่ำงกำร JOIN : LEFT JOIN ID Name 1 John 2 Sara 3 Peter 4 Siri ID Salary 1 15000 2 9000 4 23000 5 18000 Table_a Table_b ID Name Salary 1 John 15000 2 Sara 9000 3 Peter 4 Siri 23000
  • 199. ภาษา SQL #4 (Structured Query Language #4) 1. SQL สาหรับ JOIN Table ตัวอย่ำงกำร JOIN : LEFT JOIN ID Name 1 John 2 Sara 3 Peter 4 Siri ID Salary 1 15000 2 9000 4 23000 5 18000 Table_a Table_b ID Name Salary 1 John 15000 2 Sara 9000 3 Peter 4 Siri 23000 SELECT * FROM Table_a LEFT JOIN Table_b ON Table_a.ID = Table_b.ID
  • 200. ภาษา SQL #4 (Structured Query Language #4) 1. SQL สาหรับ JOIN Table ตัวอย่ำงกำร JOIN : RIGHT JOIN ID Name 1 John 2 Sara 3 Peter 4 Siri ID Salary 1 15000 2 9000 4 23000 5 18000 Table_a Table_b ID Name Salary 1 John 15000 2 Sara 9000 4 Siri 23000 5 18000
  • 201. ภาษา SQL #4 (Structured Query Language #4) 1. SQL สาหรับ JOIN Table ตัวอย่ำงกำร JOIN : RIGHT JOIN ID Name 1 John 2 Sara 3 Peter 4 Siri ID Salary 1 15000 2 9000 4 23000 5 18000 Table_a Table_b ID Name Salary 1 John 15000 2 Sara 9000 3 Peter 4 Siri 23000 SELECT * FROM Table_a RIGHT JOIN Table_b ON Table_a.ID = Table_b.ID
  • 202. ภาษา SQL #4 (Structured Query Language #4) 1. SQL สาหรับ JOIN Table ตัวอย่ำงกำร JOIN : INNER JOIN ID Name 1 John 2 Sara 3 Peter 4 Siri ID Salary 1 15000 2 9000 4 23000 5 18000 Table_a Table_b ID Name Salary 1 John 15000 2 Sara 9000 4 Siri 23000
  • 203. ภาษา SQL #4 (Structured Query Language #4) 1. SQL สาหรับ JOIN Table ตัวอย่ำงกำร JOIN : INNER JOIN ID Name 1 John 2 Sara 3 Peter 4 Siri ID Salary 1 15000 2 9000 4 23000 5 18000 Table_a Table_b ID Name Salary 1 John 15000 2 Sara 9000 4 Siri 23000 SELECT * FROM Table_a INNER JOIN Table_b ON Table_a.ID = Table_b.ID
  • 204. ภาษา SQL #4 (Structured Query Language #4) 1. SQL สาหรับ JOIN Table ตัวอย่ำงกำร JOIN : FULL JOIN ID Name 1 John 2 Sara 3 Peter 4 Siri ID Salary 1 15000 2 9000 4 23000 5 18000 Table_a Table_b ID Name Salary 1 John 15000 2 Sara 9000 3 Peter 4 Siri 23000 5 18000
  • 205. ภาษา SQL #4 (Structured Query Language #4) 1. SQL สาหรับ JOIN Table ตัวอย่ำงกำร JOIN : FULL JOIN ID Name 1 John 2 Sara 3 Peter 4 Siri ID Salary 1 15000 2 9000 4 23000 5 18000 Table_a Table_b ID Name Salary 1 John 15000 2 Sara 9000 3 Peter 4 Siri 23000 5 18000 SELECT * FROM Table_a FULL JOIN Table_b ON Table_a.ID = Table_b.ID
  • 206. ภาษา SQL #4 (Structured Query Language #4) 1. SQL สาหรับ JOIN Table ตัวอย่ำงกำร JOIN : FULL JOIN SELECT * FROM Table_a FULL JOIN Table_b ON Table_a.ID = Table_b.ID SELECT * FROM Table_a LEFT JOIN Table_b ON Table_a.ID = Table_b.ID UNION SELECT * FROM Table_a RIGHT JOIN Table_b ON Table_a.ID = Table_b.ID
  • 207. ภาษา SQL #4 (Structured Query Language #4) 1. SQL สาหรับ JOIN Table Attribute Key OrderID PK CustomerID FK OrderDate Attribute Key CustomerID PK CustomerName ContactName Country Orders Customers Attribute Key OrderDetailID PK OrderID FK ProductID FK Quantity OrderDetails Attribute Key ProductID PK ProductName FK SupplierID FK CategoryID FK Unit Price Products
  • 208. ใบงานที่ 8 ให้นักศึกษาหา Query เพื่อหาคาตอบดังนี้ - แสดงรำยกำร Order และรำยชื่อลูกค้ำที่สั่ง Order มำแต่ละ Order - แสดงจำนวน Order โดยแยกตำมประเทศของลูกค้ำที่สั่ง Order - แสดงรำยชื่อลูกค้ำ และจำนวนยอดที่ลูกค้ำซื้อสินค้ำทั้งหมด