Most popular

วันพุธที่ 15 มิถุนายน พ.ศ. 2554

สร้าง Database จาก ER Model ด้วย MySQL Workbench

MySQL Workbench ที่ผู้เขียนใช้ทำตัวอย่างเป็น Version 5.2.34 CE สำหรับ Windows 32 bit หรือตัวใหม่กว่าก็ได้ครับ ดาวน์โหลดได้ที่นี่ http://www.mysql.com/downloads/workbench/


หลังจากติดตั้งและทดสอบการใช้งานในการสร้าง Table หรือ View แบบธรรมดาไปแล้ว (http://systemdevman.blogspot.com/2011/06/mysql-5xx-oracle-22.html)
ซึ่งเป็นการพัฒนาโปรแกรมแบบ Basic ในยุคก่อนนี้เราอาจจะต้องมีเอกสารที่เกี่ยวกับ ER Diagram แสดงความสัมพันระหว่างข้อมูล เพื่อที่จะออกแบบฐานข้อมูลได้อย่างถูกต้องตามการวิเคราะห์ระบบมา (System Analysis) แต่ในยุคนี้การพัฒนาของเครื่องมือที่ทำงานกับฐานข้อมูลมีประสิทธิ์ภาพสูงมากขึ้น มีการนำเอา Diagram และหลักการทางการพัฒนาระบบเข้าสู่ฐานข้อมูลโดยตรง ซึ่งบริษัทผู้ผลิตฐานข้อมูลใหญ่ๆ ไม่ว่าจะเป็น Microsoft และ Oracle ก็ต่างแข่งขันกันพัฒนาในเรื่องนี้ แต่ไม่จำเป็นที่จะต้องใช้เครื่องมือที่บริษัทใหญ่ๆ จำหน่ายในราคาสูงก็สามารถทำได้เทียบเท่า อย่างเช่นโปรแกรม MySQL Workbench ที่ใช้เป็นเครื่องมือสำหรับบริหารจัดการฐานข้อมูล MySQL ไม่ต้องเสียค่าใช้จ่ายใดๆ เป็นลิขสิทธิ์แบบ OpenSource

เริ่มต้นการสร้าง ER Model ด้วย MySQL Workbench
เมื่อเปิดโปรแกรมขึ้นมาให้ดูในส่วนของ Data Modeling ซึ่งอยู่ตรงกลางของหน้าต่าง Home


ให้เลือกที่ Create New ERR Model เพื่อเริ่มสร้าง ER ใหม่
หมายเหตุ

  • Create EER Model From Existing Database : คือการสร้าง ER Model จาก Database ที่มีอยู่แล้ว
  • Create EER Model From SQL Script : สร้าง ER Model จาก SQL Statement

จะพบหน้าจอของการสร้าง ER Model ใหม่ ให้ดับเบิ้ลคลิ๊กที่ icon Add Diagram


จะมีหน้าจอเป็นกระดาษว่างพร้อมสำหรับการสร้าง ER Diagram


การวาด ER นั้นจะใช้แถบเครื่องมือที่อยู่ด้านริมซ้ายของหน้ากระดาษเป็นหลัก
ผู้เขียนจะลงมือสร้าง Table ก่อน Table นี้จะเป็น Table ที่มีชื่อว่า "PEOPLE" โดยเก็บข้อมูลของบุคคลเอาไว้ และเป็น Table หลัก

กดที่เครื่องมือ TABLE 1 ครั้ง
ทางด้านบนของกระดาษจะมีช่องให้กำหนดค่าของ Table ตามถาพ

ซึ่งในแต่ละช่องจะให้เรากำหนดค่าเริ่มต้นของการทำงาน
รายละเอียดการกำหนดค่ามีดังนี้

  • Schema : ฐานข้อมูลที่อยู่ของ Table หากไม่มีการตั้งชื่อค่าเริ่มต้นจะเป็น mydb
  • Engine : เลือกระบบการทำงานหลัก หากไม่กำหนดจะมีค่าเริ่มต้นเป็น InnoDB ก็คือจะมีการจัดการ Transaction ให้ด้วย
  • Collation : จะเป็นการกำหนด Character Set 

จากนั้นให้นำ Cursor ที่เป็นรูปมือไปคลิ๊กลงบนส่วนของหน้ากระดาษ ก็จะปรากฏเป็น Object Table ขึ้นมา
ให้คลิ๊กเมาท์ปุ่มขวาในบริเวณ Object Table


จะมีแถบรายละเอียดของ Table ขึ้นมาให้ แถบนี้จะเป็นแถบที่ทำการกำหนดค่าทุกอย่างของ Object Table ที่วางลงไปในแต่ละตัว จะมีลักษณะเหมือนกับการสร้าง Table ลงในฐานข้อมูลโดยตรง

Tab แรกคือ Tab Table ใช้กตั้งชื่อ Table และกำหนดค่าเริ่มต้นได้เช่นกัน
Tab ที่สองคือ Tab Columns ใช้สำหรับสร้าง Column ใน Table
Tab Indexes เป็นการสร้าง Index ให้กับ Table
ผู้เขียนออกแบบตัวอย่าง Table จนเสร็จสิ้น ทั้งหมด 5 Table ประกอบด้วย PEOPLE , BIRTHPLACE , CITY , COUNTRY , MILITARYSTATUS


จากนั้นก็ถึงขั้นตอนสุดท้าย คือการใส่ Relation การใส่นั้นไมายากเพียงแค่ไปคลิ๊ก 1 ที ที่เครื่องมือกลุ่มของ Relationship โดนที่ผู้เขียนจะเลือก Relation แบบ 1:1


เมื่อคลิ๊กแล้วให้นำ Cursor ที่เป็นรูปมือไปกดเลือก Column ที่เป็น Relation กัน เพียงเท่านี้โปรแกรมก็จะโยงความสัมพันและสร้าง Foreign Key ให้อัตโนมัติ สุดท้ายก็จะได้หน้าตาของ ER Model ที่มีลักษณะเป็น snowflake schema เรียบร้อบ


แต่เนื่องจากผุ้เขียนต้องการให้ตารางเหล่านี้ถูกสร้างขึ้นในฐานข้อมูลที่มีอยู่แล้ว คือ ฐานข้อมูลที่มีชื่อว่า "test" ผู้เขียนจึงเปลี่ยนแปลงชื่อของ Schema ในแถบ Catalog Tree

คลิ๊กเมาท์ขวาที่ชื่อ แล้วเลือก Edit Schema... จะมีแถบให้แก้ไขปรากฏขึ้น
เมื่อเรียบร้อยก็บันทึกเป็นไฟล์ไว้ได้เลย จากนั้นก็ Export ไปเป็น SQL Script โดยเข้าไปที่ File > Export > Forward Engineer SQL CREATE Script...


จะมีหน้าต่างให้กำหนดค่าต่างๆ ที่ต้องการจะให้ Generate ออกมาเป็น SQL
ในส่วนของ Output SQL Script File เราสามารถกำหนดให้ Generate SQL Script ไปเป็นไฟล์ .sql ตามที่อยู่ที่เลือกได้ หากกำหนดเรีบร้อยแล้วกด Next ถัดไป


หน้าจอถัดมาจะแสดงจำนวนของ Object ต่างๆที่อยู่ใน Er Model ที่สร้างขึ้น เราสามารถเลือกเพียงบางส่วนก็ได้ ผู้เขียนใช้ค่าเริ่มต้นคือ เลือกทั้งหมด (5 Table)


หน้าจอสุดท้ายจะแสดง SQL Script ที่ได้จาก ER Model จะเลือกคัดลอกไปที่ Clipboard หรือจะกด Finish เลยก็ได้

ทดสอบด้วยการปิดการใช้งานในส่วนของ ER Modeling ทั้งหมด แล้วเชื่อมต่อเพื่อจัดการฐานข้อมูลปกติ
ผู้เขียนมีเพียงฐานข้อมูลชื่อ "test" เท่านั้น มี Table อยู่ภายใน 1 Table ชื่อ "mytable"

จากนั้นให้เปิด SQL File ที่บันทึกไว้ในขั้นตอนที่แล้วขึ้นมา โดยไปที่ File > Open SQL Script...


ไฟล์จะถูกเปิดเข้ามาในส่วนของแถบ Query ให้ทำการ Execute ได้เลย
เมื่อ Execute Script แล้วให้คลิ๊กเมาท์ปุ่มขวาที่แถบ Object Browser แล้วเลือก Refresh All จะเป็นว่า Table ที่สร้างขึ้นจาก ER Model ได้ถูกสร้างขึ้นจริงใน Database แล้ว


หมายเหตุ
ในการลบตารางชุดนี้ จะทำการ Drop Table เฉยๆ ไม่ได้อีกต่อไป จำเป็นต้องเอา Foreign Key ที่ออกก่อน หรืออีกทางเลือกคือการลบ Table PEOPLE ออกก่อน เพราะเป็น Relation ของ Table อื่นๆ




รับวางระบบงาน ระบบ Network และพัฒนาระบบ Data warehouse และ ERP ด้วยทีมงานที่มีประสบการณ์ ติดต่อได้ที่ e-mail : arrays2003@hotmail.com

ไม่มีความคิดเห็น:

แสดงความคิดเห็น