10 Best Database Design Practices

29-Jan-20

คัมภีร์เทพ IT

See the original english version Click here!

 

Database เป็นองค์ประกอบสำคัญของ Applications และ Computers ด้วยเหตุที่มันเก็บข้อมูลที่จำเป็นและสำคัญ ดังนั้น การออกแบบ Database จึงเป็นขั้นตอนที่สำคัญมากในการพัฒนา Software และควรออกแบบ Database ให้ที่มีประสิทธิภาพที่สุด ในบทความนี้เรามาดู 10 แนวทาง เพื่อการออกแบบ Database ให้ดีที่สุดกัน

ทำไมการออกแบบ Database ถึงมีความสำคัญ

การออกแบบ Database มีความสำคัญ เนื่องจากเป็นสิ่งจำเป็นสำหรับการสร้าง Software Applications ที่ Scalable ได้และสามารถทำงานได้ในช่วงที่ Workload สูง ๆ สิ่งสำคัญในการออกแบบ Database คือ ต้องเลือก Database Software ก่อน ขณะนี้มี Database Software อยู่มากมายที่คุณจะสามารถใช้เพื่อสร้าง Application ต่อไป ก็คือการออกแบบ Database เพื่อตอบสนองความต้องการของคุณ และนี่คือ 10 แนวทางในการออกแบบ Database ที่ดีที่สุด

1. พิจารณามุมมองของทุกคนที่เกี่ยวข้อง

ในการออกแบบ Database ที่ดี จำเป็นต้องคำนึงถึงทุกมุมมองของทุกคนที่เกี่ยวข้อง โดยให้รวบรวม Input จากกลุ่มคนเหล่านั้นก่อนสร้าง Database เพื่อจะได้ทราบถึงสิ่งที่พวกเขาคาดหวังจาก Database และทักษะที่พวกเขามีในการทำงานกับ Database วิธีนี้จะให้แนวคิดเกี่ยวกับวิธีการทางเทคนิคที่จะใช้กับ Database ของคุณ รวมทั้งกรณีที่คุณจะต้องฝึกอบรม Users เกี่ยวกับ Features ของมัน

2. เลือกประเภทฐานข้อมูลที่เหมาะสมกับความต้องการของคุณ

การเลือกประเภทของ Database ที่เหมาะสมนั้นถือเป็นส่วนที่สำคัญของการออกแบบ Database คุณสามารถจัดประเภท Database ออกได้ 2 วิธี อย่างแรก อิงตาม Query Language ที่ Database ใช้เพื่อกำหนดและจัดการกับ Data ซึ่ง Database ที่ใช้ SQL จะเป็นที่นิยมมากที่สุดสำหรับ Structured Data ในขณะที่ NoSQL Database นั้น จะเหมาะสำหรับ Machine Learning, Web Analytics และ IoT (Internet of Things) เนื่องจากมี Features ต่าง ๆ ที่ดีกว่า เช่น Scalability, Flexibility และ Speed

อีกวิธีคือ อิงตาม Data Models โดยมี Database อยู่ 4 ประเภท คือ Relational Database, Hierarchical Database, Network Database และ Object-Oriented Database

นี่เป็นขั้นตอนเบื้องต้นที่สำคัญ ในการวิเคราะห์เกี่ยวกับ Database ประเภทต่าง ๆ และเลือกประเภทที่เหมาะสมกับความต้องการของ Application ของคุณมากที่สุด

3. กำหนดและตั้งชื่อ Tables และ Columns อย่างสอดคล้องกัน

การตั้งชื่อ Tables และ Columns ถือเป็นเรื่องสำคัญที่ต้องทำอย่างสอดคล้องกัน สิ่งนี้จะช่วยให้คุณเข้าใจ Data ของคุณดียิ่งขึ้น หนึ่งในแนวทางปฏิบัติที่ดีที่สุดในการตั้งชื่อ Tables และ Columns ก็คือ การตั้งชื่อง่าย ๆ ที่ระบุถึง Data ที่อยู่ในนั้น ตัวอย่างเช่น ตั้งชื่อ Column ที่มีชื่อลูกค้าของคุณ ว่า ‘CustomerName’

คุณควรหลีกเลี่ยงการใช้ชื่อที่เป็น พหูพจน์ (เช่น CustomerNames), ตัวย่อ (เช่น CN) และคุณไม่ควรเว้นช่องว่างภายในชื่อ (เช่น Customer Name) หากคุณตั้งชื่อสอดคล้องกับกฎเบื้องต้นเหล่านี้ ก็จะทำให้ง่ายต่อ Users ที่จะใช้ Database นั้นในอนาคต

4. Normalization ถือเป็นกุญแจสำคัญ

การทำ Normalization ของ Database เป็นกระบวนการจัดระเบียบ Information ทั้งหมดภายใน Database เพื่อหลีกเลี่ยงเรื่อง  Data Replication และ Redundancy หรือกล่าวอย่างง่าย ๆ Normalization หมายถึง การกระจาย Data ไปยัง Table ที่เล็กกว่าหลาย ๆ Table แทนที่จะเก็บ Data ทั้งหมดไว้ใน Table ขนาดใหญ่

การทำ Normalization ก็เพื่อให้ข้อมูลมีประสิทธิภาพ อย่างไรก็ตาม อย่าทำการ Normalize ให้มากเกินไป เพราะจะเป็นการกระจาย Data ของคุณไปยัง Table อื่นในจำนวนที่มากเกินไป ซึ่งอาจทำให้เกิดความสับสนได้

5. Documentation ของการออกแบบ Database เป็นสิ่งสำคัญ

เมื่อพูดถึง Documentation แล้ว คงจะไม่ใช่สิ่งที่ใคร (หลายคน) ชื่นชอบที่จะทำมันมากนัก แต่อย่าลืมว่า Documentation เป็นสิ่งจำเป็นสำหรับการออกแบบ Database ที่ดี เพราะมันจะคอยติดตามรายละเอียดเล็ก ๆ น้อย ๆ ทั้งหมด การออกแบบ Database ของคุณ ควรมีการจัดทำ Document พร้อม Instructions, ER diagrams, Stored Procedures และข้อมูลอื่น ๆ ที่เกี่ยวข้องทั้งหมด Documentation ควรจะให้ข้อมูลที่มากเพียงพอแก่ Programmer และ End-Users ซึ่งพวกเขาจะได้เข้าใจวิธีใช้งานได้ดียิ่งขึ้น

6. Privacy เป็นสิ่งที่ต้องให้ความสำคัญเป็นอย่างมาก

หลายครั้งที่ข้อมูลที่เก็บไว้ใน Database เป็นความลับและมีความเป็นส่วนตัว ซึ่งเป็นเรื่องที่ต้องใส่ใจและให้ความสำคัญอย่างมาก เพื่อความปลอดภัยสูงสุดคุณควรเข้ารหัส (Encrypt) Password ของคุณ, จำกัดการเข้าถึง Database ด้วยการใช้ Authentication รวมทั้งใช้ Server ที่แยกออกไปสำหรับ Database เพื่อให้มั่นใจว่า ข้อมูลของคุณจะปลอดภัยยิ่งขึ้นจากการถูกโจมตีและการละเมิดความเป็นส่วนตัว

7. คิดถึงความต้องการในระยะยาวด้วย

การออกแบบ Database ที่ดี ควรจะสามารถปรับขนาด (Scalable) ได้ ซึ่งหมายความว่า มันสามารถทนทานต่อ Workload ที่สูงและทำให้ Application ทำงานต่อไปได้แม้ว่าการใช้งานจะเพิ่มขึ้น สำหรับธุรกิจที่คาดว่าจะมีการเปลี่ยนแปลงของ Workload มาก ๆ จึงเป็นสิ่งสำคัญที่จะต้องคำนึงถึงสิ่งนี้เมื่อออกแบบ Database อย่างเช่น หาก E-Commerce Website คาดว่า จำนวน Visitors จะเพิ่มขึ้นอย่างมากในในช่วงเดือนที่มียอดขายสูง ๆ จึงควรคำนึงถึงเรื่องกระบวนการออกแบบ Database เพื่อให้ Database สามารถรองรับ Visitors ที่เพิ่มขึ้นและสามารถรองรับ Workload ที่สูงได้

8. เขียน Code และใช้ Stored Procedures

การใช้ Stored Procedures มีประโยชน์อย่างมากในการออกแบบ Database ซึ่ง Stored Procedures ก็คือ Code ที่ถูกเขียนขึ้นมาและใช้เพื่อจัดการกับ Data อย่างเช่น กรณีที่มี SQL Query ที่คุณใช้งานบ่อย ๆ ดังนั้นเพื่อให้งานของคุณง่ายขึ้น คุณสามารถเขียน Code สำหรับ Query ไว้ใน Stored Procedures แทนที่จะต้องเขียนมันซ้ำแล้วซ้ำอีก เมื่อคุณมี Stored Procedures คุณก็สามารถ Execute มันเพื่อ Run SQL Query ในขั้นตอนเดียวได้อย่างง่ายดาย

การเขียน Code สำหรับ Stored Procedures เป็นจำนวนมาก ๆ อาจเป็นงานที่น่าเบื่อและเหน็ดเหนื่อย แต่ถ้าคุณใช้เวลาทำมันและจัดทำ Documentation แล้ว พวกมันก็สามารถทำให้การใช้ Database ง่ายขึ้นสำหรับ End-Users

9. ทุ่มเทเวลาสำหรับ Database Modelling และ Database Design

เคล็ดลับสำหรับการออกแบบ Database ที่ดี ก็คือ การลงทุนด้านเวลาและความพยายามในการสร้างแบบจำลอง Database (Database Modelling) และการออกแบบ Database สิ่งที่ Developer มักทำผิดพลาด ก็คือ การข้ามขั้นตอนนี้ไปเพียงเพื่อต้องการประหยัดเวลาและ Focus ไปที่ด้านอื่น ๆ ที่สำคัญกว่าของการพัฒนา Software แต่อย่างไรก็ตามการออกแบบ Database ถือเป็นสิ่งที่ทำเพื่อให้แน่ใจว่า Application ทำงานได้อย่างถูกต้อง หากคุณไม่คิดอย่างรอบคอบเกี่ยวกับการออกแบบ มันจะทำให้คุณต้องใช้เวลามากขึ้นในการ Maintenance หรือถึงขั้นต้องออกแบบ Database ใหม่ในอนาคต

10. ทดสอบการออกแบบของคุณ

การทดสอบ ก็เป็นอีกหนึ่งขั้นตอนที่สำคัญมากในการออกแบบ Database ซึ่งมักถูกมองข้าม หรือทำแค่ผ่าน ๆ ลวก ๆ เพื่อให้ส่งมอบ Application ได้ทันภายใน Deadline คุณควรใช้เวลาในการทดสอบการออกแบบ Database ของคุณอย่างละเอียดก่อนที่จะ Release Project เพื่อให้แน่ใจว่า มันเป็นไปตาม Requirements ที่วางแผนไว้ทั้งหมดและมันสามารถใช้งานได้จริง

ที่มา:  https://medium.com/

 

 

รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert

 

อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ

เพิ่มเพื่อน

 

บทความล่าสุด