การพัฒนาระบบฐานข้อมูล ด้วยโปรแกรม SQL โดย... วัฒนา นามวงษ์ลือ วิทยาการคอมพิวเตอร์ ปีที่ 4 มหาวิทยาลัยนครพนม
เหตุผล และความสำคัญ ข้อมูลคืออะไร ฐานข้อมูลคืออะไร ใช้ทำอะไร ใช้ที่ไหนบ้าง ทำไมต้องเรียนรู้เรื่องนี้
หัวข้อในการอบรม การออกแบบฐานข้อมูล โดยสมมติสถานการณ์ การติดตั้งโปรแกรม AppServ การใช้งาน MySQL การเข้า-ออกโปรแกรม การสร้าง/เรียกดู DataBase การสร้าง/เรียกดู ตาราง
หัวข้อในการอบรม การใช้งาน phpMyAdmin เพื่อจัดการฐานข้อมูล สรุป การเข้า-ออกโปรแกรม การเรียกดู DataBase ที่สร้างไว้ด้วย MySQL การสร้างตารางเพิ่ม การเรียกดูข้อมูลตารางเดียว การเรียกดูข้อมูลหลายตาราง สรุป
1. การจัดการกับข้อมูล การออกแบบฐานข้อมูล กำหนดสถานการณ์สมมติ วิเคราะห์ความต้องการของระบบ ทำ ER diagram แปลง ER diagram เป็นตารางข้อมูล ทำ Normalization เพื่อลดความซ้ำซ้อน 3 ระดับ [1NF, 2NF, 3NF]
กำหนดสถานการณ์สมมติ สร้างฐานข้อมูลระบบหอพัก โดยรวบรวมและวิเคราะห์ความต้องการในการใช้ข้อมูลแล้ว ปรากฏว่าระบบหอพักจะมีการทำงานของระบบโดยที่ “มีลูกค้าประสงค์จะเช่าหอพักอยู่ โดยการทำสัญญาเช่าต้องมีบัตรประจำตัวประชาชนมายืนยัน ทุกสิ้นเดือนจะต้องมีการชำระค่าเช่าห้องพัก โดยมีรายการค่าใช้จ่ายต่างๆในใบเสร็จรับเงิน ได้แก่ ค่าน้ำ ค่าไฟฟ้า ค่าอินเตอร์เน็ต”
ข้อมูลลูกค้า / ข้อมูลห้องพัก
วิเคราะห์ความต้องการของระบบ 1. ลูกค้าต้องแจ้งข้อมูลบุคคลแก่พนักงาน เพื่อจัดเก็บเป็นข้อมูลผู้เช่า ได้แก่หมายเลขบัตรประจำตัวประชาชน ชื่อ นามสกุล ภูมิลำเนา หมายเลขโทรศัพท์ และอีเมล์ 2. พนักงานทำการค้นหาห้องเช่าที่ว่าง เพื่อแนะนำแก่ผู้เช่า ได้แก่ หมายเลขห้องเช่า ชนิดห้องเช่า ราคาค่าเช่า สถานะห้องว่างหรือไม่ 3. ผู้เช่าต้องทำสัญญาเช่ากับผู้ให้เช่า โดยระบุหมายเลขห้องที่เช่า และข้อมูลของผู้เช่า 4. ทุกๆ สิ้นเดือนจะเรียกเก็บค่าเช่า ค่าน้ำ ค่าไฟฟ้า และค่าอินเตอร์เน็ต โดยมีการออกใบเรียกเก็บเงินเป็นรายเดือนทุกเดือน
ความสัมพันธ์ของตารางต่างๆ
ทำ ER diagram
แปลง ER diagram เป็นตาราง Schema Contract(IDRoom, IDCustomer, RentDate) RoomType(IDRoomType, NameRoomType, RentCost) Foreign key(IDRoomType) references RoomNumber(IDRoomType) RoomNumber(IDRoom, IDRoomType, IDStatus) Foreign key(IDRoom) references Contract(IDRoom) StatusRoom(IDStatus, StatusName) Foreign key(IDStatus) references RoomNumber(IDStatus) Customer(IDPeople, Name, LastName, Address, Tel, Email) Foreign key(IDPeople) references Contract(IDPeople) Foreign key(IDPeople) references Bill(IDPeople) Bill(IDPeople, MonthBill, YearBill, IDListBill) BillList(IDBillList, UnitWater, UnitPower, Internet) Foreign key(IDBillList) references Bill(IDBillList)
ทำ Normalization เพื่อลดความซ้ำซ้อน 3 ระดับ ระดับ 1NF คือขั้นตอนที่ทำให้อยู่ในรูปแบบของ No repeating group (ไม่มีกลุ่มที่ซ้ำกัน) ดังนี้ IDRoom, NameRoomType, RentCost, IDPeople, Name, LastName, Address, Tel, Email, UnitWater, UnitPower, Internet , MonthBill, YearBill
ทำ Normalization เพื่อลดความซ้ำซ้อน 3 ระดับ ระดับ 2NF คือขั้นตอนที่ทำตารางโดยแยกตารางที่มีความสัมพันธ์กันอยู่ด้วยกัน ดังนี้ IDRoom --> NameRoomType, RentCost, IDPeople, Name, LastName, Address, Tel, Email Bill-->MonthBill, YearBill, UnitWater, UnitPower, Internet
ทำ Normalization เพื่อลดความซ้ำซ้อน 3 ระดับ ระดับ 3NF คือขั้นตอนที่ขจัด Transitive ออกไป แล้วกำหนดตารางเพิ่มเติมตามที่จำเป็น ดังนี้ IDRoom-->IDRoomType, IDStatus IDRoomType-->NameRoomType, RentCost IDStatus-->StatusName IDPeople-->Name, LastName, Address, Tel, Email IDRoom, IDPeople-->RentDate IDPeople, MonthBill, YearBill-->IDListBill IDListBill-->UnitWater, UnitPower, Internet
2. การติดตั้งโปรแกรม AppServ ดาวน์โหลดโปรแกรม AppServ ได้จาก http://prdownloads.sourceforge.net/appserv/appserv-win32-2.5.10.exe?download หลังจากนั้นให้เข้าไปที่โฟลเดอร์ AppServ ดังภาพที่ 1 2. การติดตั้งโปรแกรม AppServ ดาวน์โหลดโปรแกรม AppServ ได้จาก http://prdownloads.sourceforge.net/appserv/appserv-win32-2.5.10.exe?download เปิดแฟ้ม AppServ
เข้าสู่หน้าจอการติดตั้ง เปิดการติดตั้ง เข้าสู่หน้าจอการติดตั้ง
3. การใช้งาน MySQL
การใช้คำสั่งต่างๆ ใน MySQL เปิดดูฐานข้อมูลที่มีอยู่ในขณะนั้นก่อน ด้วยรูปแบบคำสั่ง show databases; / use [ชื่อฐานข้อมูล] / show tables; / show columns from [ชื่อตาราง] สร้างฐานข้อมูลชื่อ myhouse ด้วยรูปแบบคำสั่ง create database [ชื่อฐานข้อมูล] เปิดดูฐานข้อมูล myhouse ที่สร้างขึ้นด้วยรูปแบบคำสั่ง show databases; เรียกใช้ฐานข้อมูล myhouse ที่สร้างขึ้นด้วยรูปแบบคำสั่ง use [ชื่อฐานข้อมูล] สร้างตาราง customer ด้วยรูปแบบคำสั่ง [..ยังอยู่ในฐานข้อมูล myhouse..] create table [ชื่อตาราง](ชื่อฟิลด์, ชนิดของข้อมูล, ค่าว่าง/ไม่ว่าง, เป็นคีย์หลักหรือไม่);
สำหรับตามข้อมูลหอพักที่เรากำหนด เราจะสร้างตาราง customer ที่มีฟิลด์ต่างๆ โดยพิมพ์คำสั่ง ดังนี้ Create table customer( IDPeople varchar(13) not null primary key, Name varchar(50) not null, LastName varchar(50) not null, Address varchar(100) not null, Tel varchar(10), Email varchar(50)); ... เสร็จแล้ว กด Enter... ***** สิ่งสำคัญคือ คำสั่ง SQL จะต้องปิดท้ายด้วยเครื่องหมาย ; เสมอ
เปิดดูตารางที่สร้างขึ้น ด้วยคำสั่ง show tables; เปิดดูฟิลด์ต่างๆ ที่สร้างขึ้นในตาราง customer ด้วยคำสั่ง show columns from customer ข้อสังเกต : จะเห็นว่าการใช้คำสั่ง SQL ใน Command line มีความยุ่งยากในการพิมพ์คำสั่ง ซึ่งหากพิมพ์ผิดเพียงนิดเดียว โปรแกรมก็จะไม่ทำงาน.. และกลับไปแก้ไขได้ลำบาก เราจึงต้องหาโปรแกรมที่มาช่วยจัดการฐานข้อมูล SQL โดยใช้โปรแกรม phpMyAdmin
4. การใช้งาน phpMyAdmin เปิด Internet Explorer แล้วพิมพ์ที่ช่อง URL เป็น http://localhost/phpmyadmin/ จะปรากฏไดอะล็อกบ็อก ถาม user และ password
ชื่อ server ส่วนรายละเอียด เกี่ยวกับโปรแกรม ส่วนรายละเอียด เกี่ยวกับฐานข้อมูล
เปิดดูฐานข้อมูล myhouse สร้างตารางที่เหลือด้วย phpMyAdmin ตาราง roomtype
ตาราง statusroom ตาราง roomnumber ตาราง contract
ตาราง billlist ตาราง bill
ตารางที่สร้างเสร็จหมดแล้ว และสามารถแก้ไขโครงสร้างของตารางได้ง่ายๆ
การใส่ข้อมูลลงในตาราง เพราะตารางที่ได้เป็นตารางเปล่าๆ ยังไม่มีข้อมูล การใส่ข้อมูลลงตารางมี 2 วิธี คือ การใช้คำสั่ง SQL ในโปรแกรม phpMyAdmin
การกรอกข้อมูลลงในช่องต่างๆ ของ phpMyAdmin
การเรียกดูข้อมูลจากตารางเดียว วิธีที่ 1 วิธีที่ 2
การเรียกดูข้อมูลจากหลายตาราง
5. สรุป / ข้อเสนอแนะ ฐานข้อมูลมีความสำคัญและจำเป็น การใช้งานโปรแกรมฐานข้อมูลมีความจำเป็น การใช้งานโปรแกรมจัดการฐานข้อมูลมีความจำเป็น ข้อเสนอแนะ คือการเขียนโปรแกรมแบบฟอร์มขึ้นอีกส่วน หนึ่ง สำหรับใช้เป็น Interface กับผู้ใช้งานระบบ ฐานข้อมูล
ท่านทั้งหลาย... ควรเตรียมความพร้อมในเรื่องนี้... ...เพื่อความก้าวหน้าในอาชีพการงานของท่านในอนาคต... จบการบรรยาย