เทคนิคการออกแบบ Database สำหรับทั้ง SQL และ NoSQL

21-ต.ค.-20

คัมภีร์เทพ IT

การออกแบบ Database เป็นเรื่องเกี่ยวกับ Data ที่มี Structure และความสัมพันธ์ใน Database นอกเหนือไปจากวิธีที่ Database เก็บ Data ซึ่งในบทความนี้จะมาบอกถึง เทคนิคการออกแบบ Database สำหรับทั้ง SQL และ NoSQL ซึ่งน่าจะเป็นประโยชน์สำหรับคนไอทีที่ต้องทำงานเกี่ยวข้องกับ Database

ในการทำงาน คุณอาจต้องออกแบบไม่ว่าจะเป็น E-commerce Stores, School Management หรืออาจเป็น News Sites ก็ตาม เรามาดูกันว่า Database เหล่านี้ถูกออกแบบบน Diagrams และจากนั้นจะถูก Convert เป็น SQL และ NoSQL ได้อย่างไร เราจะเรียนรู้เกี่ยวกับการเลือกประเภทฐานข้อมูลที่เหมาะสมกัน

พื้นฐาน

พื้นฐานของการออกแบบ Database คือ การที่เราต้องระบุให้ได้ว่า Data ใดที่จำเป็นต้องจัดเก็บ, จัดกลุ่มของ Data เหล่านั้นลงใน Table หรือ Collection และเพิ่มความสัมพันธ์ระหว่าง Data ที่มีความเกี่ยวข้องกัน กระบวนการออกแบบ Database ทั้งหมด รวมไปถึง

  • การใช้ Entity-Relationship (ER) Diagrams เพื่อแสดงให้เห็นเกี่ยวกับ Object ที่จัดเก็บและความสัมพันธ์ของพวกมัน
  • การใช้การออกแบบ Database สมัยใหม่ ที่ใช้ Tools อย่าง:

1. Quick DB สำหรับ SQL

2. Hackolade สำหรับ NoSQL

เพื่อสร้าง Tables หรือ Collections ซึ่งสามารถถูก Export เป็น Syntax สำหรับ Platform ที่ต้องการ (PostgreSQL, MongoDB, MySQL เป็นต้น)

แล้ว SQL กับ NoSQL แตกต่างกันอย่างไร

  • SQL Databases

SQL Database เป็น Database ที่จัดการกับ Data โดยใช้ Structured Query Language (SQL) ซึ่ง SQL Database จะเก็บ Data ใน Table โดย Table มีลักษณะดังต่อไปนี้

ดังนั้น หากเราต้องการที่จะดูชื่อของคนใน Table ของเรา เราจะใช้ SQL ดังนี้:

สิ่งนี้เรียกว่า SQL Query โดย Query เป็นคำสั่งที่ Creates, Reads, Updates และ Deletes (CRUD) Data ใน Database คุณจะเห็นว่า SQL Query ด้านบน จะเป็นการดึงชื่อของคนใน People Table ดังนั้น SQL Database จึงทำงานโดยใช้ SQL Query

หากคุณอยากทราบผลลัพธ์ของ Query ข้างต้น สามารถดูได้จากด้านล่างนี้:

ตัวอย่างของ SQL Databases:

1. PostgreSQL

2. MySQL

3. Microsoft SQL Server

  • NoSQL

NoSQL Database เป็น Database ที่ไม่ต้องใช้ SQL ในการ Query ซึ่งตัวอย่างก็เช่น Document Database อย่าง MongoDB โดยที่ MongoDB จะจัดเก็บ Data ใน Document และนี่ก็เป็นตัวอย่างของ User Table ของเราใน Document Database ซึ่งจะมีลักษณะดังนี้

การ Query Document Database จะมีลักษณะดังนี้:

ตัวอย่างอื่น ๆ ของ NoSQL Databases มีดังต่อไปนี้:

1. Graph Databases อย่างด้านล่างนี้

    ​

    ที่นี่เราสามารถดูได้ว่าคน ๆ หนึ่งเป็นเพื่อนของคนอื่นที่ชอบอะไรอีก มันแสดงให้เห็นว่าบางสิ่งเกี่ยวข้องกันอย่างลึกซึ้งเพียงใด เป็นการออกแบบที่ดีสำหรับซอฟต์แวร์โซเชียลมีเดีย

2. Key-Value Stores อย่าง Redis

Entity-Relationship (ER) Diagrams

Diagrams เหล่านี้ถูกใช้เพื่อแสดง Data Objects และ Relationships โดยใช้รูปทรงต่าง ๆ และลูกศร ซึ่ง ER Diagrams ถือเป็นขั้นตอนสำคัญในการออกแบบ Database โดยจากด้านล่างนี้เป็นตัวอย่างของ ER Diagram

จากด้านบน เรามี Database ที่ประกอบไปด้วย 3 Tables (หรือ Collections) และ 2 Relationships แม้ว่าคุณจะไม่มีความรู้เกี่ยวกับ Database แต่ Structure เข้าใจได้ง่ายของ ER Diagram จะช่วยให้คุณทราบถึงข้อมูลที่ Database เกี่ยวข้องด้วย

  • ทรงกลมรูปไข่ - จะเชื่อมโยงกับ Customer ซึ่ง customer-no, name และ e-mail จะถูกเรียกว่า Attributes โดยใน SQL พวกมันคือ Columns ส่วนใน Document Database พวกมันคือ BSON (binary JSON) Properties
  • สี่เหลี่ยมผืนผ้า - จะแสดงถึง Entities หรือ Objects โดยใน SQL พวกมันคือ Tables ส่วนใน Document Database พวกมันคือ Collections
  • สี่เหลี่ยมขนมเปียกปูน - เป็น Relationships โดยใน ER Diagram นี้ makes จะเชื่อมโยงระหว่าง customer กับ order ดังนั้น customer จะ makes order ส่วน includes จะเชื่อมโยงระหว่าง order กับ product ดังนั้น order จะ includes product

ด้วย ER Diagram คุณจะสามารถดูภาพรวมทั้งหมดเกี่ยวกับวิธีการที่ Database ถูกนำไป Implement สำหรับ Platform ที่ต้องการ (SQL หรือ NoSQL)

SQL DB Modelling Tool (QuickDB)

QuickDB สามารถถูกใช้ในสร้างแบบจำลองของ Tables และ Relationships สำหรับ Database Management Systems (DBMS) ได้หลายระบบ มันเป็น Freemium Product ซึ่งหมายความว่า มันมี Plan ที่สามารถใช้งานได้ทั้งฟรีและเสียเงิน Feature ที่โดดเด่นที่สุดก็คือ การ Export ไปยัง Code ของ SQL สำหรับ Platform ต่าง ๆ ไม่ว่าจะเป็น MySQL และ PostgreSQL

สรุป

Database สมัยใหม่ได้รับการออกแบบโดยใช้ Tool ที่ทันสมัย ก่อนที่จะเริ่มทำ Project โดยใช้ Database คุณจะต้องออกแบบ Database ของคุณเพื่อป้องกันความสับสน และการออกแบบ App ที่ไม่ถูกต้องรัดกุมจะทำให้ Project ของคุณไม่เป็นไปตามที่วางไว้

ที่มา:  https://dev.to/

 

 

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

 

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

เพิ่มเพื่อน

 

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