หลักการออกแบบฐานข้อมูล
เอนทิตี(Entity) หมายถึง สิ่งที่ต้องการในฐานข้อมูลที่เป็นที่รวมข้อมูลที่มีความสัมพันธ์กัน มีข้อมูลที่บ่งชี้เอกลักษณ์เฉพาะตัวได้ เช่น เอนทิตีของระบบงานจำหน่ายสินค้าซึ่งประกอบด้วย เอนทิตีที่มีความสัมพันธ์กัน ได้แก่ เอนทิตีสินค้า เอนทิตีลูกค้า เอนทิตีใบสั่งซื้อ
แอททริบิวต์(Attribute) หมายถึง ข้อมูลที่แสดงถึงคุณสมบัติของเอนทิตี เช่น เอนทิตีสินค้า ประกอบด้วยแอททริบิวต์ รหัสสินค้า ชื่อสินค้า ราคาสินค้า และสินค้าคงเหลือ เอนทิตีลูกค้าประกอบด้วยแอททริบิวต์ รหัสลูกค้า ชื่อลูกค้า และที่อยู่ เอนทิตีใบสั่งซื้อประกอบด้วยแอททริบิวต์ รหัสใบสั่งซื้อ รหัสสินค้า รหัสลูกค้า และจำนวน
ความสัมพันธ์(Relationship) หมายถึง ความสัมพันธ์ระหว่างเอนทิตีในระบบฐานข้อมูล เช่น เอนทิตีใบสั่งซื้อมีความสัมพันธ์กับเอนทิตีสินค้า และ เอนทิตีลูกค้า ดังรูป
จากรูปแสดงความสัมพันธ์ระหว่างเอนทิตีลูกค้าและเอนทิตีใบสั่งซื้อเป็นความสำพันธ์แบบหนึ่งต่อกลุ่ม(One to Many Relationship) หมายความว่าลูกค้าหนึ่งคนสามารถสั่งซื้อสินค้าได้หลายใบ แอนทิตีสินค้ามีความสัมพันธ์กับเอนทิตีใบสั่งซื้อเป็นความสำพันธ์แบบกลุ่มต่อกลุ่ม(May to Many Relationship) หมายความว่าใบสั่งซื้อหนึ่งใบสามารถมีสินค้าได้หลายชนิด สำหรับสินค้าสามารถอยู่ในใบสั่งซื้อได้หลายใบ และแอททริบิวต์รหัสสินค้ามีความสัมพันธ์กับแอททริบิวต์ชื่อสินค้าเป็นความสัมพันธ์แบบหนึ่งต่อหนึ่ง(One to One Relationship) หมายความว่ารหัสสินค้าหนึ่งเป็นชื่อสินค้าได้ชนิดเดียว
เขตข้อมูล(Field) หมายถึง หน่วยข้อมูลที่ประกอบมาจากอักขระตั้งแต่หนึ่งอักขระขึ้นไปมารวมกัน เช่น หมายเลขประจำตัวประชาชน(PopID) ชื่อ(First Name) นามสกุล(Last Name)
ระเบียน(Record) หมายถึง หน่วยข้อมูลที่ประกอบด้วย เขตข้อมูล(Field) ตั้งแต่ 1 เขตข้อมูล(Field) ขึ้นไปมารวมกันและมีความสัมพันธ์กัน เช่น ระเบียน(Record)ของตาราง(Table) ครู(Teacher) 1 ระเบียนจะเป็นข้อมูลของคนหนึ่งคนประกอบด้วยเขตข้อมูล(Field) ได้แก่ หมายเลขประจำตัวประชาชน(PopID) ชื่อ(First Name) นามสกุล(Last Name) เป็นต้น
ตาราง(Table) หมายถึง หน่วยข้อมูลที่ประกอบด้วยระเบียน(Record) ตั้งแต่1ระเบียน(Record) ขึ้นไปมารวมกันและมีความสัมพันธ์กัน
ก่อนการออกแบบฐานข้อมูล ควรจัดแบ่งข้อมูลเป็นระบบอย่างเหมาะสม ไม่ซ้ำซ้อน โดยการดำเนินการดังนี้
1. กำหนดว่าจะต้องมีข้อมูลอะไรบ้างที่เกี่ยวกับ ตาราง(Table)นั้น เช่น ตาราง(Table) ลูกค้า(Costumers) จะต้องมีข้อมูลเกี่ยวกับ ชื่อ สกุล วันเดือนปีเกิด ที่อยู่ หมายเลขโทรศัพท์ ส่วน ตาราง(Table)ใบสั่งซื้อ(Orders) จะต้องมีข้อมูลเกี่ยวกับรหัสสินค้า จำนวน ส่วนลดเป็นต้น
2. ลดความซ้ำซ้อนของฐานข้อมูลโดยกำหนด เขตข้อมูล(Field) ต่างๆ อย่างถูกต้องเหมาะสม
3. กำหนความสัมพันธ์ระหว่าง ตาราง(Table)โดยกำหนด คีย์หลัก(Primary Key :PK)และ คีย์นอก(Foreign Key :FK) ขึ้นในตาราง(Table)ทีเกี่ยวข้อง
คีย์หลัก(Primary Key :PK) หมายถึง Field ที่มีข้อมูลไม่ซ้ำกัน เช่น เขตข้อมูล(Field) รหัสลูกค้า ซึ่งจะต้องไม่มีลูกค้าคนใดใช้รหัสซ้ำกัน โดยในหนึ่ง ตาราง(Table) ควรมีคีย์หลัก(Primary Key :PK) เพียง 1 คีย์ และใน คีย์หลัก(Primary Key :PK) จะต้องไม่เป็นค่าว่าง Null
คีย์คู่แข่ง(Candidate Key)หมายถึงเขตข้อมูล(Field)หนึ่งหรือหลายเขตข้อมูลมีคุณสมบัติเป็น คีย์หลัก PK(ไม่ซ้ำ)และไม่ได้ใช้เป็นคีย์หลัก เช่น รหัสสินค้าเป็น คีย์หลัก ส่วนชื่อสินค้าก็ไม่ซ้ำเช่นกันแต่ไม่ได้เป็นคีย์หลักจึงเป็นคีย์คู่แข่ง
คีย์นอก(Foreign Key :FK) หมายถึง เขตข้อมูล(Field) หรือส่วนประกอบของตาราง(Table)หนึ่งซึ่งมีความสัมพันธ์กับ เขตข้อมูล(Field) ใน ตาราง(Table)อื่น ที่เป็น คีย์หลัก(Primary Key :PK) โดยสามารถเชื่อมโยงข้อมูลระหว่างกันได้
4. กำหนดประเภทหรือชนิดข้อมูลของข้อมูลให้เหมาะสมกับแต่ละ เขตข้อมูล(Field)เช่น
เขตข้อมูล(Field) ชื่อลูกค้า ควรเป็นชนิดข้อมูล อักษร(Text)
เขตข้อมูล(Field)วันสั่งสินค้า ควรเป็นชนิดข้อมูล วันเวลา(Date/Time) หรือ
เขตข้อมูล(Field) เงินเดือน ควรเป็นชนิดข้อมูล ตัวเลขทางการเงิน(Currency)
_________________________________________________________________________________
1.2 หาตัวอย่าง ฐานข้อมูล หน้าตา ฐานข้อมูล รูปแบบ ที่ใช้งานจริง
ตัวอย่างฐานข้อมูล
- ออราเคิล คอร์ปอเรชั่น (อังกฤษ: Oracle Corporation) เป็น บริษัทคอมพิวเตอร์ที่พัฒนาโปรแกรมฐานข้อมูล, เครื่องมือสำหรับพัฒนาฐานข้อมูล, ระบบวางแผนทรัพยากรองค์กร, ระบบลูกค้าสัมพันธ์, ระบบบริหารห่วงโซ่อุปทาน ออราเคิลก่อตั้งขึ้นในปี พ.ศ. 2520 และมีสำนักงานอยู่ในมากกว่า 145 ประเทศ ในปี พ.ศ. 2548 บริษัทมีพนักงานมากกว่า 50,000 คนทั่วโลก
- ไมโครซอฟท์ แอคเซส (อังกฤษ: Microsoft Access) เป็นโปรแกรมประเภทโปรแกรมจัดการฐานข้อมูลเชิงสัมพันธ์ ที่ทำกันในสำนักงาน หรือองค์กรขนาดเล็ก ซึ่งสามารถเก็บข้อมูล ประมวลผลข้อมูล ออกแบบฟอร์มเก็บข้อมูล ออกแบบแบบสอบถาม (Query) ออกแบบและพิมพ์รายงาน จัดทำเว็บไซต์ในการรับ/ส่ง ข้อมูล (มีถึง ไมโครซอฟท์ แอคเซส รุ่น 2003) และยังสามารถเขียนกลุ่มโปรแกรม (แมโคร และ มอดูล) ของ วิชวลเบสิกเพื่อใช้ในการทำงานได้ และสามารถเชื่อมต่อกับฐานข้อมูล Microsoft SQL Server ได้ด้วย
- MySQL (มายเอสคิวแอล) เป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (Relational Database Management System) โดยใช้ภาษา SQL แม้ว่า MySQL เป็นซอฟต์แวร์โอเพนซอร์ส แต่แตกต่างจากซอฟต์แวร์โอเพนซอร์สทั่วไป โดยมีการพัฒนาภายใต้บริษัท MySQL AB ในประเทศสวีเดน โดยจัดการ MySQL ทั้งในแบบที่ให้ใช้ฟรี และแบบที่ใช้ในเชิงธุรกิจ
- DB2 เป็นผลิตภัณฑ์ในกลุ่ม ระบบจัดการฐานข้อมูล (RDBMS) ของ ไอบีเอ็ม ปัจจุบันถูกเรียกว่า ไอบีเอ็ม DB2 Data Server ซึ่งเป็นผลิตภัณฑ์ในกลุ่ม ไอบีเอ็ม Information Management Software ไอบีเอ็ม DB2 Data Server แบ่งเป็นหลายแบบตามความเหมาะสมในการใช้งาน DB2 สามารถทำงานกับอุปกรณ์ต่างๆ ตั้งแต่เครื่อง PC จนกระทั่งถึงเมนเฟรมคอมพิวเตอร์ นอกเหนือจาก DB2 แล้ว ไอบีเอ็ม ยังมี ระบบจัดการฐานข้อมูลอีกตัวอื่น เช่น Informix ซึ่งถูก ไอบีเอ็ม ซื้อมาเมื่อปี 2001.
- โพสต์เกรสคิวเอล (PostgreSQL) หรือนิยมเรียกว่า โพสต์เกรส (Postgres) เป็นระบบจัดการฐานข้อมูลในลักษณะของซอฟต์แวร์เสรีภายใต้สัญญาอนุญาตบีเอสดี ชื่อเดิมของซอฟต์แวร์คือ โพสต์เกรส ซึ่งต่อมาได้ถูกเปลี่ยนเป็นโพสต์เกรสคิวเอล โดยประกาศออกมาจากทีมหลักในปี 2550[2] ชื่อของโพสต์เกรสมาจากชื่อ post-Ingres ซึ่งหมายถึงตัวซอฟต์แวร์ที่พัฒนาต่อจากซอฟต์แวร์ชื่ออินเกรส
หน้าตาฐานข้อมูล
1.3 ทำขั้นตอนการใช้ฐานขู้อมูล จากฐานข้อมูลที่ยกตัวอย่าง
(ในข้อ 1.2) โดยละเอียด
รูปที่ 1.จะแสดงแผนผังโต๊ะ ซึ่งผู้ใช้สามารถจัดตำแหน่งของโต๊ะได้เอง โดยใช้เมาท์ลากปุ่มไปมา บนหน้าจอเพื่อจัดผังร้านตามจริง สถานะการใช้งานของโต๊ะจะแทนด้วยสี
ดังนี้ สีเทา=โต๊ะว่าง ไม่มีรายการค้างชำระ / สีเหลือง = สั่งอาหารแล้ว / สีแดง = เช็คบิลแล้วยังไม่ได้ชำระ / สีส้ม = โต๊ะจอง
ดังนี้ สีเทา=โต๊ะว่าง ไม่มีรายการค้างชำระ / สีเหลือง = สั่งอาหารแล้ว / สีแดง = เช็คบิลแล้วยังไม่ได้ชำระ / สีส้ม = โต๊ะจอง
รูปที่ 2. จะแสดงหน้าจอรับ Order ด้านบนจะแสดงหมวดหมู่อาหาร เมื่อ click เลือกหมวดอาหารเสร็จแล้ว จะแสดงรายการอาหารในหมวดนั้นๆ ขวามือของจอ
- ปุ่มอาหารสามารถใส่รูปภาพ,ข้อความ และ ใส่สีได้ มุมล่างขวาของปุ่มจะแสดงราคาอาหารให้ทราบ
สามารถใช้ปุ่มค้นหา เพื่อหาชื่ออาหาร ในชั่วโมงที่เร่งด่วน
- ขวามือของจอจะแสดงรายชื่ออาหารที่ลูกค้าสั่ง โดยจะมีสีต่างๆ บอกถึงสถานะของอาหาร
รูปที่ 3. แสดงหน้าจอรายการพิเศษ ซึ่งผู้ใช้สามารถเพิ่มรายการพิเศษได้ไม่จำกัด เช่น ลูกค้าสั่ง ต้มยำ เผ็ดน้อย
รูปที่ 4. จะแสดงตัวอย่าง ตั๋วที่ส่งเข้าครัว
รูปที่ 5. แสดงหน้าจอครัว สำหรับออกของ คือหลังจากที่แม่ครัวปรุงอาหารเสร็จ จะมีพนักงานออกของคอยตรวจสอบและเช็คว่า อาหารที่ลูกค้าสั่งได้ถูกเสิร์ฟออกไปแล้ว เพื่อให้มั่นใจว่าลูกค้าจะได้รับอาหารแน่นอนและเป็นไปตามลำดับการสั่งอาหาร
รูปที่ 6. สามารถยกเลิก/ลดจำนวน/พิมพ์ซ้ำ รายการอาหารที่สั่งพิมพ์ครัวไปแล้ว โดยใส่เหตุผลในการยกเลิกอาหาร และโปรแกรมจะพิมพ์ตั๋วไปแจ้งให้ในครัวทราบด้วย
รูปที่ 7. แสดงหน้าจอรับชำระ รองรับการรับเงิน แบบ เงินสด ,เช็ค ,บัตรเครดิต ,ฟรี ,Voucher, เงินมัดจำ , เงินเชื่อ หรือ แบบผสม
- รูปที่ 8. แสดงตัวอย่างบิลและใบเสร็จอย่างย่อ
- รูปที่ 9. ตัวอย่างใบกำกับภาษีแบบเต็ม
- รูปที่ 10. มีฟังก์ชั่นในการเรียกรายการเก่ากลับมาแก้ไข (ถอยสถานะบิล)-กรณีที่ลูกค้าสั่งเช็คบิล และชำระเงินไปแล้ว แต่ลูกค้าลืมไปว่ามีบัตรส่วนลด และกลับมาขอใช้ส่วนลดดังกล่าว โปรแกรมจะรองรับการถอยสถานะบิลกลับมาแก้ไข เพื่อให้ลูกค้าเกิดความประทับใจและกลับมาใช้บริการใหม่อีกครั้ง
- รูปที่ 11. แสดงหน้าจอเพิ่มข้อมูลรายละเอียดอาหาร (Backend)
- รูปที่ 12. ตัวอย่างกราฟวิเคราะห์สินค้าขายดี 20 อันดับ