รู้จักกับ SQL และ NOSQL (Relational Database & Non-Relational Database)

KongRuksiam Studio
3 min readFeb 24, 2024

--

ฐานข้อมูล (Database) หมายถึง กลุ่มข้อมูลที่ถูกรวบรวมและจัดเก็บไว้อย่างมีโครงสร้าง โดยมีรูปแบบการจัดเก็บที่ชัดเจน เป็นระเบียบและง่ายต่อการทำไปใช้ตามวัตถุประสงค์ที่ต้องการ

ฐานข้อมูลที่นิยมใช้ในปัจจุบันแบ่งออกเป็น 2 แบบ ได้แก่

  • ฐานข้อมูลเชิงสัมพันธ์ (Relational Database)
  • ฐานข้อมูลไม่ใช่เชิงสัมพันธ์ (Non-Relational Database)

ฐานข้อมูลเชิงสัมพันธ์ (Relational Databases)

https://stackoverflow.com/questions/51542341/relational-database-design-query
  • เป็นฐานข้อมูลที่ใช้ภาษา SQL (Structure Query Language) มาดำเนินการกับข้อมูล (เพิ่ม , ลบ , แก้ไข , ค้นหา)
  • จัดเก็บข้อมูลแบบตาราง (Table)
  • *กำหนดโครงสร้างการจัดเก็บข้อมูลที่ชัดเจน (Structure Data)
  • มีการเชื่อมโยงความสัมพันธ์กับข้อมูลตารางอื่นๆด้วย

Database Management System (DBMS)

ระบบจัดการฐานข้อมูล SQL ที่ได้รับความนิยมในปัจจุบัน

  • MySQL
  • Oracle
  • PostgreSQL
  • SQL Server

ฐานข้อมูลไม่ใช่เชิงสัมพันธ์ (Non-Relational Database)

https://commons.wikimedia.org/wiki/File:Nosql.gif

ฐานข้อมูลไม่ใช่เชิงสัมพันธ์ (Non-Relational Database)หรือเรียกอีกชื่อ คือ NoSQL (Not-Only SQL) ถูกคิดค้นขึ้นเพื่อจัดการข้อจำกัดของการใช้งาน Relational Database ในอดีต เพื่อปรับเปลี่ยนโครงสร้างการจัดเก็บข้อมูลให้มีความยืดหยุ่นที่มากขึ้นด้วย

NoSQL ถูกนำมาใช้งานการสำหรับประมวลผลข้อมูลจากการใช้งาน Internet อย่างแพร่หลายในยุคปัจจุบันไม่ว่าจะมาจาก Social Media ต่างๆ ที่มีข้อมูลขนาดใหญ่ (Big Data) เพื่อแปลข้อมูลที่มีความหลากหลายมากขึ้น เช่น ข้อมูลรูปภาพ วิดีโอ เสียง ตัวอักษร เป็นต้น ซึ่งจะตอบโจทย์ในเรื่องความเร็วและความยืดหยุ่นในการจัดเก็บข้อมูล

ฐานข้อมูลไม่ใช่เชิงสัมพันธ์ (Non-Relational Databases)

  • ไม่มีการจัดเก็บข้อมูลในแบบตารางที่มีความสัมพันธ์กัน
  • ไม่มีโครงสร้างการจัดเก็บข้อมูลที่แน่นอน (Unstructure Data)
  • ง่ายต่อการปรับขนาดและโครงสร้าง

รูปแบบการจัดเก็บข้อมูล (NoSQL Store)

NoSQL ไม่มีโครงสร้างการจัดเก็บข้อมูลที่แน่นอน เพื่อที่จะสามารถปรับเปลี่ยนโครงสร้างได้ในอนาคต โดยจะเก็บข้อมูลอยู่ 4 รูปแบบ (ตามลักษณะการใช้งาน)

  • Key — Value Store
  • Document Store
  • Graph Store
  • Wide Column Store

Key-Value Store เป็นระบบจัดเก็บข้อมูลในรูปแบบที่เรียกว่า ”Associative Arrays ” หรืออาร์เรย์ของชุดข้อมูลที่มีความสัมพันธ์กันในรูปแบบคู่คีย์ (key : value) หรือเรียกอีกชื่อว่า Dictionary

https://dv-website.s3.amazonaws.com/uploads/2018/09/kvd-pic1.png

โดยคีย์ (key) จะทำหน้าที่เป็นตัวเชื่อมโยงไปยังค่า (value) ในโครงสร้างของฐานข้อมูลซึ่งจะมีได้แค่คีย์เดียว และการดึงข้อมูลต้องระบุคีย์ที่เก็บค่าข้อมูลนั้นๆไว้

ตัวอย่างฐานข้อมูลแบบ Key — Value Store

  • Redis
  • Oracle NoSQL Database
  • Aerospike

Document Store เป็นฐานข้อมูลเชิงเอกสารที่ออกแบบมาเพื่อจัดเก็บข้อมูล ดึงข้อมูล และจัดการข้อมูล ที่เรียกว่า “Document-Oriented” คือ ใช้โครงสร้างภายในของเอกสารเพื่อระบุการจัดเก็บข้อมูล ซึ่งมีลักษณะแบบกึ่งโครงสร้าง (Semi Structure Data) โดยเอกสาร (Document) จะถูกเข้ารหัสข้อมูลและจัดให้อยู่ในรูปแบบของ XML , JSON

https://dataconomy.com/wp-content/uploads/2014/07/SQL-vs.-NoSQL.png
https://lennilobel.wordpress.com/2015/06/01/relational-databases-vs-nosql-document-databases/

ตัวอย่างฐานข้อมูลแบบ Document Store

  • MongoDB
  • CouchDB

Graph Store เป็นการจัดเก็บข้อมูลและความสัมพันธ์ของข้อมลในรูปแบบกราฟ ข้อมูลด้านในจะเรียกว่า โหนด (Node) ซึ่งจะเก็บ Entity ของข้อมูลและกำหนดความสัมพันธ์ที่เชื่อมโยงความสัมพันธ์ดังกล่าวผ่าน Edge การใช้งานกราฟจะถูกนำเสนอผ่านความสัมพันธ์ของข้อมูล เช่น Social Network , AI และ Machine Learning เป็นต้น

https://d1.awsstatic.com/diagrams/foaf-graph.e5e42865e0ee97a2972f9014d28f525ef68a981b.png
https://dz2cdn1.dzone.com/storage/temp/13696862-1593695775580.png
https://dist.neo4j.com/wp-content/uploads/20180711200201/twitter-users-graph-database-model-peter-emil-johan.png

Wide Column Storage เป็นการจัดเก็บข้อมูลเป็นเรคอร์ดหรือในรูปแบบ ตาราง แถว และคอลัมน์ ซึ่งจะแตกต่างจาก Relational Database คือจะมีความยืดหยุ่นมากกว่า ชื่อและรูปแบบของคอลัมน์สามารถเปลี่ยนจากแถวหนึ่งไปอีกแถวภายในตารางเดียวกันได้และขยายคอลัมน์ได้จำนวนมาก (Extensible Record Store : ขยายการจัดเก็บข้อมูลในแต่ละเรคอร์ด) อาจจะมองเป็นรูปแบบ key:value ในรูปแบบ 2 มิติก็ได้

https://database.guide/wp-content/uploads/2016/06/wide_column_store_database_example_column_family-1.png

ตัวอย่างฐานข้อมูลแบบ Wide Column Store

  • Cassandra
  • HBase
  • DynamoDB
  • Microsoft Azure Cosmos DB

🎓 เนื้อหาที่เกี่ยวข้อง

🌎 ติดตามข่าวสารเพิ่มเติมได้ที่
Facebook | YouTube | TikTok

--

--

KongRuksiam Studio
KongRuksiam Studio

Written by KongRuksiam Studio

เรียนรู้การเขียนโปรแกรมนอกห้องเรียน

No responses yet