เรื่อง การวิเคราะห์และออกแบบฐานข้อมูล MySQL Database
ภาพที่ 5.1 สัญลักษณ์ LOGO MySQL เมื่อกล่าวถึงระบบฐานข้อมูลที่นิยมใช้งานสำหรับพัฒนาเว็บไซต์ระบบฐานข้อมูลที่นึกถึงลำดับต้นๆคือ MySQL Database เพราะเป็นระบบฐานข้อมูลที่อยู่ในกลุ่มของ (RDBMS) ที่ทำงานบนเว็บไซต์ที่นิยมใช้และเป็น Open Source ที่รองรับภาษา SQL ซึ่งเป็นภาษาที่ใช้สร้างฐานข้อมูล ที่เข้าใจง่ายเหมาะสำหรับงานองค์กรหรือบุคคลทั่วไปที่ต้องการความสามารถในการจัดเก็บฐานข้อมูลขนาดเล็กถึงปานกลาง รองรับระบบปฏิบัติได้หลากหลายไม่ว่าจะเป็น Windows หรือ Linux จึงได้รับความนิยมอย่างหลากหลาย ภาพที่ 5.1 สัญลักษณ์ LOGO MySQL
1. ความรู้เบื้องต้นเกี่ยวกับฐานข้อมูล MySQL Database MySQL คือ โปรแกรมระบบจัดการฐานข้อมูล (RDBMS : Relational Database Management System) ที่พัฒนาโดยบริษัท MySQL AB มีหน้าที่เก็บข้อมูลอย่างเป็นระบบ รองรับคำสั่ง SQL เป็นเครื่องมือสำหรับเก็บข้อมูล ที่ต้องใช้ร่วมกับเครื่องมือหรือโปรแกรมอื่น เพื่อให้ได้ระบบงานที่สามารถรองรับ ความต้องการของผู้ใช้ ที่สามารถทำงานได้เป็นเครื่องเซิร์ฟเวอร์ที่หลากหลาย เช่น Windows, Linux เพื่อให้บริการภาษาสคริปต์ที่ทำงานฝั่งเครื่องผู้ให้บริการ (Server Side Script) เช่น ภาษา PHP, ภาษา ASP,ภาษา JSP ทำงานร่วมกับโปรแกรมประยุกต์ (Application Program) เช่น Visual Basic, NET, JAVA โปรแกรมถูกออกแบบให้สามารถทำงานได้บนระบบปฏิบัติการที่หลากหลายและเป็นระบบฐานข้อมูล โอเพนซอร์ส (Open Source) ที่ถูกนำไปใช้งานมากที่สุด 02 03 04
MySQL สร้างขึ้นโดยชาวสวีเดน 2 คน และชาวฟินแลนด์ ชื่อ David Axmark, Allan Larsson และ Michael "Monty" Widenius ปัจจุบันบริษัทซันไมโครซิสเต็มส์ (Sun Microsystems, Inc.) เข้าซื้อกิจการของ MySQL AB ชื่อ "MySQL" อ่านออกเสียงว่า "มายเอสคิวเอล 1.1 ความสามารถและการทำงานของโปรแกรม MySQL Database MySQL ถือเป็นระบบจัดการฐานข้อมูล (Database Management System (DBMS) ฐานข้อมูลมีลักษณะเป็นโครงสร้างของการเก็บรวบรวมข้อมูล การที่จะเพิ่มเติม เข้าถึงหรือประมวลผลข้อมูลที่เก็บในฐานข้อมูลจำเป็นจะต้องอาศัยระบบจัดการ ฐานข้อมูล ซึ่งจะทำหน้าที่เป็นตัวกลางในการจัดการกับข้อมูลในฐานข้อมูลทั้งสำหรับการใช้งานเฉพาะ และรองรับการทำงานของแอพลิเคชั่นอื่นๆ ที่ต้องการใช้งานข้อมูลในฐานข้อมูล เพื่อให้ได้รับความสะดวกในการจัดการกับข้อมูลจำนวนมาก MySQL ทำหน้าที่เป็นทั้งตัวฐานข้อมูลและระบบจัดการฐานข้อมูล
ภาพที่ 5.2 ระบบจัดการฐานข้อมูล (RDBMS : Relational Database Management System)
MySQL เป็นระบบจัดการฐานข้อมูลแบบ relational ฐานข้อมูลแบบ relational จะทำการเก็บข้อมูลทั้งหมดในรูปแบบของตารางแทนการเก็บข้อมูลทั้งหมดลงในไฟล์ เพียงไฟล์เดียว ทำให้ทำงานได้รวดเร็วและมีความยืดหยุ่น นอกจากนั้น แต่ละตารางที่เก็บข้อมูลสามารถเชื่อมโยงเข้าหากันทำให้สามารถรวมหรือจัดกลุ่มข้อมูลได้ตามต้องการ โดยอาศัยภาษา SQL ที่เป็นส่วนหนึ่งของโปรแกรม MySQL ซึ่งเป็นภาษามาตรฐานในการเข้าถึงฐานข้อมูล MySQL แจกจ่ายให้ใช้งานแบบ Open Source นั่นคือ ผู้ใช้งาน MySQL ทุกคนสามารถใช้งานและปรับแต่งการทำงานได้ตามต้องการ สามารถดาวน์โหลดโปรแกรม MySQL ได้จากอินเทอร์เน็ตและนำมาใช้งานโดยไม่มีค่าใช้จ่ายใดๆ
สนับสนุนการใช้งานบนระบบปฏิบัติการมากมาย เช่น UNIX, OS/2, MAC OS, Windows สามารถใช้งานร่วมกับ Web Development platform เช่น C, C++, Java, Perl, PHP, Python, TCL หรือ ASP ได้รับความนิยมอย่างมากในปัจจุบัน และมีแนวโน้มสูงขึ้นเรื่อยๆ ในอนาคต 2. การออกแบบฐานข้อมูลด้วย MySQL Workbench ระบบฐานข้อมูล MySQL DATABASE เป็นระบบฐานข้อมูลเชิงสัมพันธ์ (RDBMS) ซึ่งในหลักการออกแบบจะต้องการสร้างความสัมพันธ์ระหว่างตาราง (Entity) เกิดเป็นความสัมพันธ์ระหว่างตารางขึ้น(Relation)ซึ่งในกระบวนการออกแบบระบบฐานข้อมูลเชิงสัมพันธ์มีความจำเป็นต้องทำการออกแบบด้วย การเขียน E-R Diagram เพื่อสร้างความสัมพันธ์ระหว่างตารางแต่ละตาราง โดย MySQL ได้พัฒนาโปรแกรมเพื่อช่วยให้การสร้างตารางและสร้างความสัมพันธ์ระหว่างตารางแต่ละตารางง่ายขึ้นได้แก่โปรแกรม MySQL Workbench ซึ่งสามารถดาวน์โหลดใช้งานได้จากเว็บไซต์ http://www.mysql.com ในที่นี้จะไม่กล่าวถึงขั้นตอนการออกแบบฐานข้อมูล RDBMS แต่จะกล่าวถึงการใช้โปรแกรม MySQL Workbench เพื่อสร้าง Entity และ Relation
2.1 การติดตั้งโปรแกรม MySQL Workbench
เลือกการติดตั้งโดยจะมีรูปแบบการติดตั้งให้เลือก 2 รูปแบบคือ MSI Install และ ZIP ทั้งแบบ 64 Bit และ 32 Bit ภาพที่ 5.4 เลือกการติดตั้ง MySQL Workbench
เมื่อทำการคลิกเลือก Download โปรแกรม MySQL Workbench จะได้ไฟล์สำหรับติดตั้ง mysql-workbench-community-6.3.8-winx64.msi ให้ทำการดับเบิลคลิกเพื่อทำการติดตั้ง ภาพที่ 5.5 หน้าต่าง Welcome to the Setup MySQL Workbench
ภาพที่ 5.6 ตำแหน่งติดตั้งปลายทาง Destination แสดงตำแหน่งปลายทาง Destination สำหรับติดตั้งโปรแกรม MySQL Workbench ภาพที่ 5.6 ตำแหน่งติดตั้งปลายทาง Destination
ภาพที่ 5.7 เลือกรูปแบบประเภทการติดตั้ง Complete
เข้าสู่กระบวนการติดตั้งโปรแกรม คลิก install ภาพที่ 5.8 กระบวนการติดตั้งโปรแกรม ภาพที่ 5.9 กระบวนการติดตั้งโปรแกรม MySQL Workbench
การติดตั้ง MySQL Workbench เสร็จสมบูรณ์ คลิก Finish
เมื่อคลิก Finish จะเข้าสู่โปรแกรม MySQL Workbench พร้อมใช้งาน
2.2 ออกแบบฐานข้อมูลด้วย MySQL Workbench เมื่อทำการติดตั้งโปรแกรม MySQL Workbench เสร็จเรียบร้อยแล้ว ต่อไปนี้จะกล่าวถึงการใช้งานโปรแกรม MySQL Workbench สำหรับงานออกแบบฐานข้อมูลแบบเชิงสัมพันธ์ (RDBMS) เริ่มต้นโดยการเปิดโปรแกรม MySQL Workbench โดยมีขั้นตอนการดังนี้ ส่วนติดต่อฐานข้อมูล MySQL Server จะเป็นส่วนที่สำคัญ สำหรับงานออกแบบฐานข้อมูล โดยโปรแกรม MySQL Workbench เองจะทำการเชื่อมต่อกับฐานข้อมูล MySQL Server ที่ถูกติดตั้งไว้แล้วในตัวเครื่องที่ให้บริการ Server ด้วย โปรแกรม WampServer ให้ทำการคลิกในส่วนของ MySQL Connections เพื่อเข้าสู่กระบวนการออกแบบฐานข้อมูล
ภาพที่ 5.12 เริ่มต้นใช้งานโปรแกรม MySQL Workbench
ภาพที่ 5.13 Local instance Connection เมื่อเข้าคลิกสู่โปรแกรม Local instance จะแสดงสถานะการทำงานของ MySQL Server ทั้งระบบ เริ่มต้นการใช้งานออกแบบฐานข้อมูลคลิกเลือก File > New Model ภาพที่ 5.13 Local instance Connection
ภาพที่ 5.14 สร้าง New Model
เมื่อเข้าสู่ New Model จะเข้าสู่หน้าต่างสำหรับออกแบบฐานข้อมูล MySQL Model ให้ทำการคลิก Add Diagram เพื่อทำการสร้าง E-R Diagram ภาพที่ 5.15 หน้าต่าง MySQL Model
ภาพที่ 5.16 EER Diagram
แนะนำแถบเครื่องมือสำหรับสร้าง E-R Diagram เบื้องต้น ภาพที่ 5.17 เครื่องมือสำหรับสร้าง EE-R Diagram
ในการออกแบบฐานข้อมูลเชิงสัมพันธ์นั้นมีความจำเป็นต้องทำการออกแบบและวิเคราะห์ฐานข้อมูลให้อยู่ในรูปแบบของแบบจำลอง EE-R Diagram (Enhanced – Entity Relationship) ที่สามารถนำมาทำการสร้างตารางและความสัมพันธ์ระหว่างตารางแต่ละตารางได้เช่น กระบวนการ Normallization, การออกแบบ ER-Diagram, การเขียน DataDictionary เพื่อนำมาสู่กระบวนสร้างตาราง (Physical Schemas) ซึ่งจะนำมาสร้างในส่วนของโปรแกรม MySQL Workbench ซึ่งจะกล่าวในลำดับถัดไป การสร้างแบบจำลอง EE-R Diagram (Enhanced – Entity Relationship) ระบบฐานข้อมูลสมาชิก (นักศึกษา) เพื่อเข้าทำระบบลงทะเบียนสมาชิก คลิก New Table เพื่อสร้างตาราง
ภาพที่ 5.18 เลือก New Table เพื่อสร้างตาราง ภาพที่ 5.19 สร้างตารางสมาชิก
ภาพที่ 5.20 ข้อมูลในส่วนของตาราง student
ภาพที่ 5.21 สร้างตาราง student ในส่วนของ table
ภาพที่ 5.22 เลือกชนิด Datatype ของข้อมูลแต่ละฟิลล์
ชนิดข้อมูล Data type แต่ละชนิดที่สามารถเลือกได้ 2.2.1 VARCHAR สำหรับเก็บข้อมูลประเภทตัวอักษร ทุกครั้งที่เลือกชนิดของฟิลด์เป็นประเภท นี้จะต้องมีการกำหนดความยาวของข้อมูลลงไปด้วย ซึ่งสามารถกำหนดค่าได้ตั้งแต่ 1 - 255 ฟิลด์ชนิดนี้เหมาะสำหรับการเก็บข้อมูลสั้นๆ เช่น ชื่อ นามสกุล หรือหัวข้อต่างๆ เป็นต้น ในส่วนฟิลด์ประเภทนี้ จะสามารถเลือก "แอตทริบิวต์" เป็น BINARY ได้ โดยปกติ แล้วการจัดเรียงข้อมูลเวลาสืบค้น (Query) สำหรับ VARCHAR จะเป็นแบบ case sensitive (ตัวอักษรใหญ่ และเล็กมีความหมายแตกต่างกัน) แต่หากระบุ "แอตทริบิวต์" เป็น BINARYการสืบค้นจะไม่คำนึงตัวอักษรว่าจะเป็นตัวใหญ่ หรือตัวเล็ก 2.2.2 CHAR สำหรับเก็บข้อมูลประเภทตัวอักษร แบบที่ถูกจำกัดความกว้างเอาไว้คือ 255 ตัวอักษร ไม่สามารถปรับเปลี่ยนได้เหมือนกับ VARCHAR หากทำการสืบค้นโดยเรียงตามลำดับ ก็จะเรียงข้อมูลแบบ case-sensitive เว้นแต่จะกำหนดแอตทริบิวต์เป็น BINARY ที่จะทำให้การเรียงข้อมูลเป็นแบบ non case-sensitive เช่นเดียวกับ VARCHAR
2.2.3 TINYTEXT ในกรณีที่ข้อความยาวๆ หรือต้องการที่จะค้นหาข้อความ โดยอาศัยฟีเจอร์ FULL TEXT SEARCH ของ MySQL เราอาจจะเลือกที่จะไม่เก็บข้อมูลลงในฟิลด์ประเภท VARCHAR ที่มีข้อจำกัดแค่ 256 ตัวอักษร แต่เราจะเก็บลงฟิลด์ประเภท TEXT แทน โดย TINYTEXT นี้จะสามารถเก็บข้อมูลได้ 256 ตัวอักษร ซึ่งมองเผินๆ ก็ไม่ต่างกับเก็บลงฟิลด์ ประเภท CHAR หรือ VARCHAR(255) เลย แต่จริงๆ มันต่างกันตรงที่ มันทำ FULL TEXT SEARCH ได้ 2.2.4 TEXT สำหรับเก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่สามารถเก็บได้ มากขึ้น โดยสูงสุดคือ 65,535 ตัวอักษร หรือ 64KB เหมาะสำหรับเก็บข้อมูลพวกเนื้อหาต่างๆ ที่ยาวๆ 2.2.5 MEDIUMTEXT เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 16,777,215 ตัวอักษร 2.2.6 LONGTEXT เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 4,294,967,295 ตัวอักษร
2.2.7 TINYINT สำหรับเก็บข้อมูลชนิดตัวเลขที่มีขนาด 8 บิต ข้อมูลประเภทนี้เราสามารถ กำหนดเพิ่มเติมในส่วนของ "แอตทริบิวต์" ได้ว่าจะเลือกเป็น UNSIGNED หรือ UNSIGNED ZEROFILL โดยจะมีความแตกต่างดังนี้ 2.2.7.1 UNSIGNED จะหมายถึงเก็บค่าตัวเลขแบบไม่มีเครื่องหมาย แบบนี้จะทำให้ สามารถเก็บค่าได้ตั้งแต่ 0 - 255 2.2.7.2 UNSIGNED ZEROFILL เหมือนข้างต้น แต่ว่าหากข้อมูลที่กรอกเข้ามาไม่ครบ ตามจำนวนหลักที่เรากำหนด ตัว MySQL จะทำการเติม 0 ให้ครบหลักเอง เช่น ถ้ากำหนดให้ใส่ได้ 3 หลัก แล้วทำการเก็บข้อมูล 25 เข้าไป เวลาที่สืบค้นดู เราจะได้ค่าออกมาเป็น 025 หากไม่เลือก "แอตทริบิวต์" สิ่งที่เราจะได้ก็คือ SIGNED นั่นก็คือต้องเสียบิตหนึ่งไปเก็บ เครื่องหมาย บวก/ลบ ทำให้สามารถเก็บข้อมูลได้อยู่ในช่วง -128 ถึง 127 เท่านั้น
2.2.8 SMALLINT สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 16 บิต จึงสามารถเก็บค่าได้ ตั้งแต่ -32768 ถึง 32767 (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 65535 (ในกรณี UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ 2.2.9 TINYINT MEDIUMINT สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 24 บิต นั่นก็หมายความว่า สามารถเก็บข้อมูลตัวเลขได้ตั้งแต่ -8388608 ไปจนถึง 8388607 (ในกรณีแบบคิด เครื่องหมาย) หรือ 0 ถึง 16777215 (ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้ เช่นเดียวกัน 2.2.10 TINYINT INT สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 32 บิต หรือสามารถเก็บข้อมูลได้ตั้งแต่ - 2147483648 ไปจนถึง 2147483647 ครับ (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 4294967295 (ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINY INT
2.2.11 BIGINT สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 64 บิต สามารถเก็บข้อมูลได้ตั้งแต่ - 9223372036854775808 ไปจนถึง 9223372036854775807 เลยทีเดียว (แบบคิด เครื่องหมาย) หรือ 0 ถึง 18446744073709551615 (ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้ เช่นเดียวกับ TINYINT FLOAT[(M,D)] : ที่กล่าวถึงไปทั้งหมด ในตระกูล INT นั้นจะเป็นเลขจำนวนเต็ม หากเราบันทึกข้อมูลที่มีเศษทศนิยม มันจะถูกปัดทันที ดังนั้นหากต้องการจะเก็บค่าที่เป็นเลข ทศนิยม ต้องเลือกชนิดขอฟิลด์เป็น FLOAT โดยจะเก็บข้อมูลแบบ 32 บิต คือมีค่าตั้งแต่ - 3.402823466E+38 ไปจนถึง -1.175494351E-38, 0 และ 1.175494351E-38 ถึง 3.402823466E+38 2.2.12 DOUBLE[(M,D)] สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOAT แต่มี ขนาดเป็น 64 บิต สามารถเก็บตั้งแต่ -1.7976931348623157E+308 ถึง - 2.2250738585072014E-308, 0 และ 2.2250738585072014E-308 ถึง 1.7976931348623157E+308
2.2.13 DECIMAL[(M,D)] สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOAT แต่ใช้ กับข้อมูลที่ต้องการความละเอียดและถูกต้องของข้อมูลสูง ข้อสังเกตเกี่ยวกับข้อมูลประเภท FLOAT, DOUBLE และ DECIMAL ก็คือ เวลากำหนด ความยาวของข้อมูลในฟิลด์ จะถูกกำหนดอยู่ในรูปแบบ (M,D) ซึ่งหมายความว่า ต้องมี การระบุว่า จะให้มีตัวเลขส่วนที่เป็นจำนวนเต็มกี่หลัก และมีเลขทศนิยมกี่หลัก เช่น ถ้าเรากำหนดว่า FLOAT(5,2) จะหมายความว่า เราจะเก็บข้อมูลเป็นตัวเลขจำนวนเต็ม 5 หลัก และทศนิยม 2 หลัก ดังนั้นหากทำการใส่ข้อมูล 12345.6789 เข้าไป สิ่งที่จะเข้าไปอยู่ใน ข้อมูลจริงๆ ก็คือ12345.68 (ปัดเศษให้มีจำนวนหลักตามที่กำหนดไว้) 2.2.14 DATE สำหรับเก็บข้อมูลประเภทวันที่ โดยเก็บได้จาก 1 มกราคม ค.ศ. 1000 ถึง 31 ธันวาคม ค.ศ. 9999 โดยจะแสดงผลในรูปแบบ YYYY-MM-DD DATETIME : สำหรับเก็บข้อมูลประเภทวันที่ และเวลา โดยจะเก็บได้ตั้งแต่ 1 มกราคม ค.ศ. 1000 เวลา 00:00:00 ไปจนถึง 31 ธันวาคม ค.ศ. 9999 เวลา 23:59:59 โดยรูปแบบ การแสดงผล เวลาที่ทำการสืบค้น (query) ออกมา จะเป็น YYYY-MM-DD HH:MM:SS
2.2.15 TIMESTAMP[(M)] สำหรับเก็บข้อมูลประเภทวันที่ และเวลาเช่นกัน แต่จะเก็บใน รูปแบบของ YYYYMMDDHHMMSS หรือ YYMMDDHHMMSS หรือ YYYYMMDD หรือ YYMMDD แล้วแต่ว่าจะระบุค่า M เป็น 14, 12, 8 หรือ 6 ตามลำดับ สามารถเก็บได้ตั้งแต่ วันที่ 1 มกราคม ค.ศ. 1000 ไปจนถึงประมาณปี ค.ศ. 2037 2.2.16 TIME สำหรับเก็บข้อมูลประเภทเวลา มีค่าได้ตั้งแต่ -838:59:59 ไปจนถึง 838:59:59 โดยจะแสดงผลออกมาในรูปแบบ HH:MM:SS 2.2.17 YEAR[(2/4)] สำหรับเก็บข้อมูลประเภทปี ในรูปแบบ YYYY หรือ YY แล้วแต่ว่าจะเลือก 2 หรือ 4 (หากไม่ระบุ จะถือว่าเป็น 4 หลัก) โดยหากเลือกเป็น 4 หลัก
ภาพที่ 5.23 กำหนดชนิดข้อมูล Datatype ในตาราง Student
ภาพที่ 5.24 สร้างตาราง Department (แผนกวิชา) การสร้างแบบจำลอง EE-R Diagram (Enhanced – Entity Relationship) ระบบฐานข้อมูลสมาชิก (นักศึกษา) เพื่อเข้าทำระบบลงทะเบียนสมาชิก คลิก New Table เพื่อสร้างตาราง Department (แผนกวิชา) ภาพที่ 5.24 สร้างตาราง Department (แผนกวิชา)
ภาพที่ 5.25 กำหนดชนิดของข้อมูล Data Type ในตาราง Department
ภาพที่ 5.26 ลักษณะความสัมพันธ์ Relationship ในแต่ละรูปแบบ แสดงสัญลักษณ์การสร้างความสัมพันธ์ระหว่างตารางใน โปรแกรม MySQL Workbench โดยสามารถกำหนดรูปแบบ ความสัมพันธ์ได้ดังนี้ ภาพที่ 5.26 ลักษณะความสัมพันธ์ Relationship ในแต่ละรูปแบบ
การสังเกตลักษณะความสัมพันธ์ Relationship ระหว่าง Non-Identifying และ Identifying ว่ามีความแตกต่างกันอย่างไร เส้นทึบ : ความสัมพันธ์ (relationship) แบบ 1:1 หรือ 1:M โดยมี key index เป็นตัวเชื่อม บางครั้งเราจะรียกความสัมพันธ์ในลักษณะนี้ว่า Foreign Key เส้นประ : ความสัมพันธ์ (relationship) แบบ 1:1 หรือ 1:M โดยจาก column ที่ไม่ใช่ key index เชื่อมกับ key index ของอีก table ภาพที่ 5.27 ลักษณะเส้นความสัมพันธ์ Relationship
เลือกความสัมพันธ์แบบ 1:N Non-Identifying Relationship สร้างความสัมพันธ์ระหว่างตาราง Student และตาราง Department โดยสามารถกำหนดรูปแบบความสัมพันธ์ได้ดังนี้ เลือกความสัมพันธ์แบบ 1:N Non-Identifying Relationship คลิกเลือกที่ตาราง Student เพื่อกำหนดความสัมพันธ์เริ่มต้น 3) คลิกเลือกที่ตาราง Department เพื่อกำหนดความสัมพันธ์ปลายทาง 1. คลิก ภาพที่ 5.28 วิธีการกำหนดความสัมพันธ์ระหว่างตาราง Student และ Department
ภาพที่ 5.29 ผลลัพธ์ที่ได้จากการสร้างความสัมพันธ์ระหว่างตาราง ผลลัพธ์ที่ได้จากการสร้างความสัมพันธ์ระหว่างตาราง Student และ Department คือจะเกิด ฟิลล์ความสัมพันธ์ ระหว่างในตาราง Student ชื่อ department_dep_id ดังภาพ ภาพที่ 5.29 ผลลัพธ์ที่ได้จากการสร้างความสัมพันธ์ระหว่างตาราง
เมื่อได้ผลลัพธ์ดังภาพก็เสร็จสิ้นกระบวนการสร้างตารางและกำหนดความสัมพันธ์ด้วยโปรแกรม MySQL Workbench 3. การ Forword Engineer ด้วย MySQL Workbench เมื่อเสร็จสิ้นกระบวนการสร้างฐานข้อมูล ตาราง และกำหนดความสัมพันธ์ระหว่างตารางเสร็จสมบูรณ์แล้ว จะเหลือเพียงขั้นตอนที่ต้องนำฐานข้อมูลที่สร้างได้ไปใช้งาน โดยกระบวนการส่งออกข้อมูลของโปรแกรม MySQL Workbench นั้นจะกระทำผ่านขั้นตอนที่เรียกว่า Forward Enginee เพื่อส่งออกข้อมูลไปยังฐานข้อมูล MySQL ที่ถูกติดตั้งอยู่ที่เครื่องคอมพิวเตอร์แม่ข่าย โดยมีขั้นตอนการส่งออกข้อมูลดังนี้
ภาพที่ 5.30 แสดงการเลือก Forward Engineer การส่งออกข้อมูลด้วย Forward Engineer เลือก TabMenu Database > Forward Enginee คลิกเลือกเมนู ภาพที่ 5.30 แสดงการเลือก Forward Engineer
ภาพที่ 5.31 Set Parameters for Connecting to a DBMS
ภาพที่ 5.32 Set Option for Database to be Created
ภาพที่ 5.33 Select Option to Forward Engineer
ภาพที่ 5.34 Review the SQL Script to be Executed
ภาพที่ 5.35 Forward Engineering Progress
เมื่อเสร็จสิ้นขั้นตอนการ Forward Engineering สามารถเข้าไปตรวจสอบได้ในส่วนของโปรแกรมบริหารจัดการฐานข้อมูล phpMyAdmin หรือเมื่อต้องการปรับปรุงแก้ไขข้อมูลตารางหรือความสัมพันธ์ระหว่างตารางสามารถเข้าไปแก้ไขปรับปรุง และทำการ Forward Engineering ซ้ำได้ 4. การจัดการฐานข้อมูล MySQL ด้วยโปรแกรม phpMyAdmin phpMyAdmin เป็นโปรแกรมที่ใช้ในการจัดการฐานข้อมลู MySQL ผ่านเว็บบราวเซอร์ โดยโปรแกรมนี้เป็นโปรแกรมที่ใช้ได้ฟรี เพราะเป็นโปรแกรมในกลุ่ม Open Source phpMyAdmin จะทำงานเพื่อใช้ควบคุมจัดการฐานข้อมลู MySQL ความสามารถของ phpMyAdmin มีดังนี้ สร้างและลบ Database สร้างและจัดการ ตาราง เช่น เพิ่ม record, ลบ record, แก้ไข record หรือลบ Table, เพิ่มหรือแก้ไข field ในตาราง โหลดเท็กซ์ไฟล์ และ ไฟล์นามสกุล CSV เข้าไปเก็บเป็นข้อมูลใน Table ได้ สามารถใช้คำสั่ง SQL ได้
ภาพที่ 5.36 พิมพ์ URL localhost จากคุณสมบัติที่กล่าวมาเบื้องต้นสามารถจัดการได้ด้วยการใช้โปรแกรม phpMyAdmin แต่ในที่นี้การสร้างตารางและกำหนดความสัมพันธ์ของตารางในรูปแบบของ E-R Diagram ได้จัดการไปแล้วโดยผ่านโปรแกรม MySQL Workbench ในที่นี้จะกล่าวถึงการเข้าใช้งานโปรแกรม phpMyAdmin เพื่อจัดการข้อมูล การนำเข้าส่งออกไฟล์ข้อมูล CSV และการใช้คำสั่ง SQL เบื้องต้น 4.1 การเข้าใช้งานโปรแกรม phpMyAdmin การเข้าใช้งานโปรแกรม phpMyAdmin จะใช้งานผ่าน โปรแกรม WAMPServer ดังนั้นต้อง ติดตั้งโปรแกรม WAMPServer ก่อน ดังรายละเอียดการติดตั้งในหน่วยการเรียน ที่ 1 แล้วเปิด Internet Explorer พิมพ์ที่ URL localhost แล้ว enter ภาพที่ 5.36 พิมพ์ URL localhost
เมื่อจอภาพแสดงโปรแกรม WAMPServer แล้วให้คลิกที่ phpMyAdmin
ภาพที่ 5.38 หน้าหลัก phpMyAdmin
ภาพที่ 5.39 การจัดการฐานข้อมูลด้วย phpMyAdmin เมื่อทำการสร้างฐานข้อมูลและกำหนดความสัมพันธ์ระหว่างตารางผ่านโปรแกรม MySQL Workbench เมื่อถึงขั้นตอนสุดท้ายการ Forward Engineering เสร็จสมบูรณ์ระบบฐานข้อมูลจะถูกสร้าง(Create) ลงบนฐานข้อมูล MySQL โดยสังเกตได้จากฐานข้อมูลชื่อ tkc ที่ถูกสร้างขึ้นพร้อมตารางภายใน student, department ในที่นี้จะกล่าวถึงการจัดการข้อมูลเบื้องต้นด้วยโปรแกรม phpMyAdmin ภาพที่ 5.39 การจัดการฐานข้อมูลด้วย phpMyAdmin
ภาพที่ 5.40 เลือกฐานข้อมูล 4.2 การใช้คำสั่ง SQL ในการจัดการข้อมูลด้วย phpMyAdmin 4.2.1 การเพิ่มข้อมูล (insert) ภาพที่ 5.40 เลือกฐานข้อมูล
ภาพที่ 5.42 เลือกแทรกเพื่อเพิ่มข้อมูล ภาพที่ 5.41 เลือกตารางที่ต้องการเพิ่มข้อมูล ผลลัพธ์จากการคลิกเลือกตารางข้อมูลจะเกิดการเรียกใช้คำสั่ง SQL เพื่อค้นหาข้อมูล (SELECT * FROM `department`) ด้วย โปรแกรม phpMyAdmin ภาพที่ 5.42 เลือกแทรกเพื่อเพิ่มข้อมูล
ภาพที่ 5.44 คำสั่ง SQL สำหรับเพิ่มข้อมูล ภาพที่ 5.43 กรอกข้อมูล ผลลัพธ์ที่ได้จากการเพิ่มข้อมูลจะเกิดการเรียกใช้คำสั่ง SQL เพื่อเพิ่มข้อมูล ภาพที่ 5.44 คำสั่ง SQL สำหรับเพิ่มข้อมูล
ภาพที่ 5.45 ผลลัพธ์ข้อมูลที่ถูกเพิ่ม เมื่อเพิ่มข้อมูลเสร็จสมบูรณ์ คลิกเลือกชื่อตารางจะแสดงข้อมูล ที่ถูกเพิ่มเข้าไปในฐานข้อมูลดังภาพ ภาพที่ 5.45 ผลลัพธ์ข้อมูลที่ถูกเพิ่ม
ภาพที่ 5.46 ผลลัพธ์ข้อมูลที่ต้องการ แก้ไข 4.2.2 การแก้ไขข้อมูล (update) ภาพที่ 5.46 ผลลัพธ์ข้อมูลที่ต้องการ แก้ไข ภาพที่ 5.47 ผลลัพธ์การแก้ไขข้อมูลที่ต้องการ 1. เลือก แก้ไข 1. เลือก แก้ไข
ภาพที่ 5.48 คำสั่ง SQL สำหรับแก้ไขข้อมูล 4.2.3 การลบข้อมูล (delete) ภาพที่ 5.49 ผลลัพธ์ข้อมูลที่ต้องการ ลบ
ภาพที่ 5.50 ยืนยันการลบข้อมูล 4.2.4 การลบตาราง (drop) ภาพที่ 5.51 วิธีการลบตาราง
ภาพที่ 5.52 ยืนยันการลบตาราง 4.2.5 การลบฐานข้อมูล (drop database) ในบางครั้งการพัฒนาระบบฐานข้อมูลอาจมีความผิดพลาดในการสร้างฐานข้อมูล หรือระบบฐานข้อมูลมีปัญหา อาจมีความจำเป็นต้องทำการลบฐานข้อมูล เราสามารถลบฐานข้อมูลด้วยวิธีการดังนี้ ภาพที่ 5.53 วิธีการลบฐานข้อมูล
ภาพที่ 5.54 ยืนยันการลบฐานข้อมูล
5. บทสรุปท้ายหน่วยเรียน การพัฒนาโปรแกรมบนมาตรฐานเปิดสำหรับงานธุรกิจนั้นสิ่ง ที่ต้องให้ความสำคัญลำดับแรกคือข้อมูล (data) ซึ่งมี ความสำคัญอย่างมากเพื่อใช้ในการประมวลผลของระบบ คอมพิวเตอร์ จึงมีการพัฒนาระบบสำหรับจัดเก็บข้อมูลที่ หลากหลาย จนกลายเป็นระบบฐานข้อมูลที่ใช้ในการจัดเก็บ ข้อมูลในรูปแบบต่างๆ โดยระบบที่นิยมใช้ในปัจจุบันจะเป็นระบบ ฐานข้อมูลแบบเชิงสัมพันธ์ (RDBMS : Relational Database Management System) ในการพัฒนาโปรแกรมบนมาตรฐาน เปิดที่มีการใช้งานข้อมูลปริมาณมากจัดเก็บข้อมูลไว้ในระบบ ฐานข้อมูล เช่น ระบบฐานข้อมูลสมาชิกผู้ใช้งาน รายละเอียด สินค้า การซื้อขายสินค้า กระดานข่าวถามตอบ สถิติการใช้ งานระบบ โดยระบบฐานข้อมูล MySQL จัดอยู่ในกลุ่ม โปรแกรมมาตรฐานเปิดที่สามารถนำมาประยุกต์ใช้ในงานธุรกิจ ได้เป็นอย่างดี โดยมีโปรแกรมที่ช่วยในการบริหารจัดการและ ออกแบบฐานข้อมูลคือ MySQL Workbench ที่จะช่วยให้ ผู้เรียนเข้าใจหลักการออกแบบฐานข้อมูลเบื้องต้นได้เป็นอย่างดี เพื่อเป็นพื้นฐานในการพัฒนาระบบการจัดการฐานข้อมูลบน มาตรฐานเปิดสำหรับงานธุรกิจที่มีความหลากหลายของข้อมูลที่ มากขึ้น