NoSQL คืออะไร

ฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์ประสิทธิภาพสูงที่มีโมเดลข้อมูลที่ยืดหยุ่น

ฐานข้อมูล NoSQL คืออะไร

ฐานข้อมูล NoSQL สร้างตามวัตถุประสงค์สำหรับโมเดลข้อมูลแบบเฉพาะเจาะจงและมีแบบแผนที่ยืดหยุ่นสำหรับการสร้างแอปพลิเคชันอันทันสมัย ฐานข้อมูล NoSQL เป็นที่รู้จักกันดีในด้านความง่ายในการพัฒนา การทำงาน และประสิทธิภาพตามขนาดที่ต้องการ หน้านี้ประกอบด้วยทรัพยากรเพื่อช่วยให้คุณเข้าใจฐานข้อมูล NoSQL และเริ่มต้นใช้งาน

ฐานข้อมูลบน AWS: เครื่องมือที่เหมาะสมกับงาน

ฐานข้อมูล NoSQL (ไม่ใช่เชิงสัมพันธ์) ทำงานอย่างไร

ฐานข้อมูล NoSQL ใช้โมเดลข้อมูลที่หลากหลายสำหรับการเข้าถึงและจัดการข้อมูล ฐานข้อมูลประเภทนี้ได้รับการปรับปรุงประสิทธิภาพสำหรับแอปพลิเคชันที่ต้องใช้ข้อมูลปริมาณมาก มีเวลาแฝงต่ำ และมีโมเดลข้อมูลที่ยืดหยุ่นโดยเฉพาะ ซึ่งเกิดขึ้นโดยการผ่อนปรนข้อจำกัดความสม่ำเสมอข้อมูลของฐานข้อมูลอื่นๆ

ลองดูพิจารณาตัวอย่างการสร้างโมเดลแบบแผนสำหรับฐานข้อมูลหนังสือแบบไม่ซับซ้อน:

  • ในฐานข้อมูลเชิงสัมพันธ์ บันทึกหนังสือมักถูกแยกออกจากกัน (หรือ “มาตรฐาน”) และจัดเก็บในตารางแยก ส่วนความสัมพันธ์จะถูกกำหนดโดยข้อจำกัดคีย์หลักและคีย์นอก ในตัวอย่างนี้ ตารางหนังสือมีคอลัมน์สำหรับ ISBN, ชื่อหนังสือ และครั้งที่พิมพ์ ตารางผู้เขียนมีคอลัมน์สำหรับรหัสผู้เขียนและชื่อผู้เขียน และสุดท้ายตาราง ISBN ของผู้เขียนมีคอลัมน์สำหรับรหัสผู้เขียนและ ISBN โมเดลเชิงสัมพันธ์ถูกออกแบบมาเพื่อทำให้ฐานข้อมูลสามารถบังคับใช้ความสมบูรณ์อ้างอิงระหว่างตารางต่างๆ ในฐานข้อมูล ปรับให้เป็นปกติเพื่อลดความซ้ำซ้อน และได้รับการปรับปรุงประสิทธิภาพสำหรับพื้นที่จัดเก็บอย่างทั่วถึง
  • ในฐานข้อมูล NoSQL บันทึกหนังสือมักจะถูกจัดเก็บเป็นเอกสาร JSON สำหรับหนังสือแต่ละเล่ม รายการ, ISBN, ชื่อหนังสือ, ครั้งที่พิมพ์, ชื่อผู้เขียน และรหัสผู้เขียนจะถูกจัดเก็บเป็นคุณลักษณะในเอกสารเดียว ในโมเดลนี้ ข้อมูลได้รับการปรับปรุงประสิทธิภาพสำหรับการพัฒนาที่ง่ายและความสามารถในการปรับขนาดแนวนอน

ทำไมคุณจึงควรใช้ฐานข้อมูล NoSQL

ฐานข้อมูล NoSQL เหมาะมากสำหรับแอปพลิเคชันสมัยใหม่ เช่น อุปกรณ์เคลื่อนที่ เว็บ และเกมที่จำเป็นต้องมีฐานข้อมูลที่ยืดหยุ่น ปรับขนาดได้ ประสิทธิภาพสูง และทำงานได้ดีเยี่ยมเพื่อมอบประสบการณ์ผู้ใช้ที่ยอดเยี่ยม

  • ความยืดหยุ่น: โดยทั่วไป ฐานข้อมูล NoSQL จะมีแบบแผนยืดหยุ่นที่ทำให้การพัฒนาเกิดขึ้นเร็วและทำซ้ำคำสั่งได้ดียิ่งขึ้นกว่าเดิม โมเดลข้อมูลที่ยืดหยุ่นทำให้ฐานข้อมูล NoSQL เหมาะสมที่สุดสำหรับข้อมูลแบบกึ่งมีโครงสร้างและไม่มีโครงสร้าง
  • ความสามารถในการปรับขนาด: โดยทั่วไป ฐานข้อมูล NoSQL มักถูกออกแบบมาให้ปรับขนาดออกได้โดยใช้คลัสเตอร์แบบกระจายของฮาร์ดแวร์แทนการปรับขนาดขึ้นโดยเพิ่มเซิร์ฟเวอร์ที่มีราคาแพงและมีประสิทธิภาพสูง ผู้ให้บริการระบบคลาวด์บางเจ้าจัดการปฏิบัติการนี้อยู่เบื้องหลังในแบบบริการที่มีการจัดการเต็มรูปแบบ
  • ประสิทธิภาพสูง: ฐานข้อมูล NoSQL ได้รับการปรับปรุงประสิทธิภาพสำหรับโมเดลข้อมูลบางโมเดล และเข้าถึงรูปแบบที่เปิดใช้งานประสิทธิภาพที่สูงกว่าการพยายามดำเนินการทำงานที่คล้ายกันด้วยฐานข้อมูลเชิงสัมพันธ์
  • ทำงานได้ดีเยี่ยม: ฐานข้อมูล NoSQL มี API การทำงานและประเภทข้อมูลที่สร้างตามวัตถุประสงค์สำหรับโมเดลข้อมูลแต่ละโมเดลที่สอดคล้องกัน

ประเภทฐานข้อมูล NoSQL

คีย์-ค่า:ฐานข้อมูลแบบคีย์-ค่าสามารถแบ่งพาร์ติชันได้ดีและสามารถปรับขนาดแนวนอนได้ตามขนาดที่ต้องการซึ่งฐานข้อมูลประเภทอื่นไม่สามารถทำได้ กรณีใช้งาน เช่น สำหรับเล่นเกม เทคโนโลยีโฆษณา และ IoT ทำให้ฐานข้อมูลประเภทนี้เหมาะสำหรับโมเดลข้อมูลแบบคีย์-ค่ามากอย่างยิ่ง Amazon DynamoDB ถูกออกแบบมาเพื่อมอบเวลาแฝงสม่ำเสมอที่นานเพียงหน่วยมิลลิวินาทีหลักเดียวสำหรับปริมาณงานทุกขนาด ประสิทธิภาพที่สม่ำเสมอนี้เป็นสาเหตุสำคัญที่คุณสมบัติ Snapchat Stories ซึ่งมีปริมาณการเขียนข้อมูลในพื้นที่จัดเก็บขนาดใหญ่ที่สุดของ Snapchat จึงย้ายไปยัง DynamoDB

เอกสาร: ในโค้ดแอปพลิเคชัน มักจะมีการแสดงข้อมูลเป็นวัตถุ หรือเอกสารที่คล้าย JSON เนื่องจากเป็นโมเดลข้อมูลที่มีประสิทธิภาพและใช้งานง่ายสำหรับ Developer ฐานข้อมูลแบบเอกสารช่วยให้ Developer จัดเก็บและสืบค้นข้อมูลในฐานข้อมูลได้ง่ายขึ้น โดยใช้รูปแบบโมเดลเอกสารเดียวกันที่ใช้ในโค้ดแอปพลิเคชัน ลักษณะที่ยืดหยุ่น เป็นกึ่งโครงสร้าง และเป็นลำดับขั้นของเอกสารและฐานข้อมูลเอกสาร ทำให้เกิดการพัฒนาพร้อมกับความต้องการของแอปพลิเคชัน โมเดลเอกสารทำงานกับแคตตาล็อก โปรไฟล์ผู้ใช้ และระบบการจัดการเนื้อหาได้เป็นอย่างดี โดยที่แต่ละเอกสารแตกต่างกันและพัฒนาอย่างต่อเนื่อง Amazon DocumentDB (พร้อมการใช้ร่วมกับ MongoDB) และ MongoDB เป็นฐานข้อมูลเอกสารที่ได้รับความนิยมซึ่งช่วยให้ API มีประสิทธิภาพและใช้งานง่ายสำหรับการพัฒนาที่ยืดหยุ่นและมีการทำซ้ำ

กราฟ: วัตถุประสงค์ของฐานข้อมูลแบบกราฟคือเพื่อให้การสร้างและการเรียกใช้แอปพลิเคชันที่ทำงานกับชุดข้อมูลที่เชื่อมต่ออย่างดีเยี่ยมเกิดขึ้นได้อย่างง่ายดาย กรณีใช้งานโดยทั่วไปสำหรับฐานข้อมูลแบบกราฟรวมถึงเครือข่ายทางสังคม กลไกข้อเสนอแนะ การตรวจจับการปลอมแปลง และกราฟความรู้ Amazon Neptune คือบริการฐานข้อมูลแบบกราฟที่ได้รับการจัดการอย่างเต็มรูปแบบ Neptune รองรับทั้งโมเดล Property Graph และ Resource Description Framework (RDF) และมอบตัวเลือก API แบบกราฟสองรายการนั่นก็คือ TinkerPop และ RDF/SPARQL ฐานข้อมูลแบบกราฟยอดนิยมรวมถึง Neo4j และ Giraph

ในหน่วยความจำ: แอปพลิเคชันสำหรับเกมและเทคโนโลยีโฆษณามีกรณีการใช้งาน เช่น บอร์ดผู้นำ การจัดเก็บเซสชัน และการวิเคราะห์แบบเรียลไทม์ที่จำเป็นต้องใช้เวลาในการตอบสนองเป็นมิลลิวินาที และอาจมีปริมาณการรับส่งข้อมูลที่เพิ่มขึ้นอย่างรวดเร็วเกิดขึ้นได้ตลอดเวลา Amazon MemoryDB for Redis เป็นบริการฐานข้อมูลในหน่วยความจำที่ทนทานและใช้งานได้ร่วมกับ Redis ซึ่งให้เวลาแฝงในการอ่านระดับไมโครวินาที เวลาแฝงในการเขียนระดับมิลลิวินาทีหลักเดียว และความทนทานแบบ Multi-AZ MemoryDB สร้างขึ้นตามวัตถุประสงค์เพื่อมอบประสิทธิภาพที่รวดเร็วเป็นพิเศษและความทนทาน เพื่อให้คุณสามารถใช้เป็นฐานข้อมูลหลักสำหรับแอปพลิเคชันไมโครเซอร์วิสสมัยใหม่ได้ Amazon ElastiCache เป็นบริการแคชในหน่วยความจำที่มีการจัดการเต็มรูปแบบซึ่งใช้งานได้ร่วมกับทั้ง Redis และ Memcached เพื่อให้บริการปริมาณงานที่มีเวลาแฝงต่ำและปริมาณการประมวลผลสูง ลูกค้ารายต่างๆ เช่น Tinder ซึ่งต้องการการตอบสนองแบบเรียลไทม์จากแอปพลิเคชันของตน พึ่งพาการจัดเก็บข้อมูลในหน่วยความจำมากกว่าการจัดเก็บข้อมูลบนดิสก์ Amazon DynamoDB Accelerator (DAX) เป็นอีกหนึ่งตัวอย่างของการจัดเก็บข้อมูลที่สร้างขึ้นตามวัตถุประสงค์ DAX ทำให้ DynamoDB อ่านอันดับของขนาดได้เร็วขึ้น

การค้นหา คือ แอปพลิเคชันจำนวนมากส่งออกข้อมูลบันทึกเพื่อช่วยนักพัฒนาแก้ปัญหา Amazon OpenSearch Service สร้างตามวัตถุประสงค์เพื่อมอบการแสดงภาพแบบใกล้เคียงเวลาจริงและการวิเคราะห์ข้อมูลที่สร้างโดยเครื่องโดยการทำดัชนี การรวบรวม และการค้นหาข้อมูลบันทึกและตัววัดแบบกึ่งมีโครงสร้าง Amazon OpenSearch Service ยังเป็นเครื่องมือค้นหาที่ทรงพลังและมีประสิทธิภาพสูงสำหรับกรณีการใช้งานในการค้นหาด้วยข้อความอย่างเต็มรูปแบบ Expedia ใช้โดเมน Amazon OpenSearch Service กว่า 150 โดเมน ข้อมูลขนาด 30 TB และเอกสารกว่า 3 หมื่นล้านฉบับสำหรับกรณีใช้งานภารกิจสำคัญๆ ตั้งแต่การตรวจสอบการปฏิบัติงานและการแก้ปัญหาไปจนถึงการติดตามชุดแอปพลิเคชันแบบกระจายและการปรับปรุงประสิทธิภาพด้านราคา

ฐานข้อมูล SQL (เชิงสัมพันธ์) กับ ฐานข้อมูล NoSQL (ไม่ใช่เชิงสัมพันธ์)

หลายสิบปีที่ผ่านมา โมเดลข้อมูลที่ใช้งานกันส่วนใหญ่สำหรับการพัฒนาแอปพลิเคชันคือโมเดลข้อมูลเชิงสัมพันธ์ที่ใช้โดยฐานข้อมูลเชิงสัมพันธ์ เช่น Oracle, DB2, SQL Server, MySQL และ PostgreSQL จนกระทั่งช่วงกลางถึงปลายปี 2000 จึงได้เริ่มมีการปรับใช้และใช้งานโมเดลข้อมูลแบบต่างๆ กันมากขึ้น หากต้องการแยกแยะและจัดหมวดหมู่คลาสใหม่ของฐานข้อมูลและโมเดลข้อมูล ให้ใช้คำว่า “NoSQL” คำว่า “NoSQL” มักใช้สลับกับ “ที่ไม่ใช่เชิงสัมพันธ์” ได้

แม้ว่าฐานข้อมูล NoSQL จะมีหลายประเภทและมีคุณสมบัติที่แตกต่างกันไป ตารางต่อไปนี้จะแสดงความแตกต่างระหว่างฐานข้อมูล SQL กับ NoSQL

เริ่มต้นใช้งาน NoSQL
  ระบบฐานข้อมูลเชิงสัมพันธ์ ฐานข้อมูล NoSQL

ปริมาณงานที่ดีที่สุด

ฐานข้อมูลเชิงสัมพันธ์ถูกออกแบบมาเพื่อการทำธุรกรรมและแอปพลิเคชันประมวลผลการทำธุรกรรมออนไลน์ที่มีความสม่ำเสมอมาก (OLTP) และใช้งานได้ดีสำหรับการประมวลผลแบบวิเคราะห์ออนไลน์ (OLAP) ฐานข้อมูล NoSQL ออกแบบมาสำหรับรูปแบบการเข้าถึงข้อมูลจำนวนหนึ่งซึ่งรวมถึงแอปพลิเคชันที่มีเวลาแฝงต่ำ ฐานข้อมูลการค้นหา NoSQL ถออกแบบมาเพื่อการวิเคราะห์ข้อมูลแบบกึ่งมีโครงสร้าง 
โมเดลข้อมูล

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

ฐานข้อมูล NoSQL มีโมเดลข้อมูลที่หลากหลายให้ เช่น ค่าหลัก เอกสาร และกราฟ ซึ่งปรับให้เหมาะกับประสิทธิภาพและขนาด 
ลักษณะ ACID

ฐานข้อมูลเชิงสัมพันธ์มีลักษณะ Atomicity, Consistency, Isolation และ Durability (ACID):

  • Atomicity จำเป็นต้องใช้ธุรกรรมเพื่อดำเนินการโดยสมบูรณ์หรือไม่ดำเนินการเลย
  • Consistency จำเป็นต้องใช้เมื่อมีการทำธุรกรรมเกิดขึ้น โดยข้อมูลจะต้องเป็นไปตามแบบแผนฐานข้อมูล
  • Isolation จำเป็นต้องดำเนินการธุรกรรมที่เกิดขึ้นพร้อมกันแยกจากกันและกัน
  • Durability จำเป็นต้องมีความสามารถในการกู้คืนจากความล้มเหลวของระบบที่ไม่คาดคิดหรือไฟดับให้กลับเป็นสถานะล่าสุดที่ทราบ
ฐานข้อมูล NoSQL จะทำการแลกเปลี่ยนโดยผ่อนคลายลักษณะ ACID บางรายการของฐานข้อมูลเชิงสัมพันธ์เพื่อโมเดลข้อมูลที่ยืดหยุ่นขึ้นที่สามารถปรับขนาดแนวนอนได้ นี่ทำให้ฐานข้อมูล NoSQL เป็นตัวเลือกที่ดีสำหรับกรณีใช้งานที่มีการประมวลผลสูงและเวลาแฝงต่ำที่ต้องปรับขนาดแนวนอนเกินขีดจำกัดของอินสแตนซ์เดี่ยว
ประสิทธิภาพ โดยทั่วไป ประสิทธิภาพขึ้นอยู่กับระบบย่อยของดิสก์ มักต้องมีการเพิ่มประสิทธิภาพในการสืบค้น ดัชนี และโครงสร้างตารางเพื่อให้ได้ประสิทธิภาพสูงสุด โดยทั่วไป ประสิทธิภาพหมายถึงการทำงานของฮาร์ดแวร์พื้นฐานขนาดเท่าคลัสเตอร์ เวลาแฝงของเครือข่าย และการเรียกใช้แอปพลิเคชัน
ขนาด ฐานข้อมูลเชิงสัมพันธ์มักจะถูกปรับขนาดขึ้นโดยเพิ่มความสามารถในการประมวลผลของฮาร์ดแวร์หรือปรับขนาดออกโดยเพิ่มแบบจำลองสำหรับปริมาณงานแบบอ่านอย่างเดียว โดยปกติแล้วฐานข้อมูล NoSQL จะสามารถแบ่งพาร์ติชันได้เพราะรูปแบบการเข้าถึงสามารถปรับขนาดออกได้โดยใช้สถาปัตยกรรมแบบกระจายเพื่อเพิ่มปริมาณการประมวลผลที่จะมอบประสิทธิภาพอย่างสม่ำเสมอในเกือบทุกขนาด
API คำขอจัดเก็บและเรียกดูข้อมูลจะมีการสื่อสารโดยใช้การสืบค้นที่สอดคล้องกับ Structured Query Language (SQL) การสืบค้นเหล่านี้จะถูกแยกวิเคราะห์และดำเนินการโดยฐานข้อมูลเชิงสัมพันธ์ API เชิงวัตถุช่วยให้ App Developer สามารถจัดเก็บและเรียกโครงสร้างข้อมูลได้อย่างง่ายดาย คีย์พาร์ติชันช่วยแอปค้นหาคู่คีย์-ค่า ชุดคอลัมน์ หรือเอกสารแบบกึ่งมีโครงสร้างที่มีวัตถุและคุณลักษณะที่เป็นอนุกรม

คำศัพท์ SQL กับ NoSQL

ตารางต่อไปนี้เปรียบเทียบคำศัพท์ที่ใช้โดยฐานข้อมูล NoSQL กับคำศัพท์ที่ใช้โดยฐานข้อมูล SQL ที่เลือก

SQL MongoDB DynamoDB Cassandra  Couchbase
ตาราง คอลเลกชัน ตาราง ตาราง บัคเก็ตข้อมูล
แถว เอกสาร รายการ แถว เอกสาร
คอลัมน์ ช่อง คุณลักษณะ คอลัมน์ ช่อง
คีย์หลัก ObjectId คีย์หลัก
คีย์หลัก รหัสเอกสาร
ดัชนี ดัชนี ดัชนีรอง ดัชนี ดัชนี
มุมมอง มุมมอง ดัชนีรองโดยรวม มุมมองจริง มุมมอง
ตารางหรือวัตถุแบบซ้อนกัน เอกสารแบบฝัง แมป แมป แมป
อาร์เรย์ อาร์เรย์ รายชื่อ รายชื่อ รายชื่อ
รายชื่อ
รายชื่อ
คีย์หลัก

เริ่มต้นใช้งาน DynamoDB

การเริ่มต้นใช้งาน DynamoDB เป็นเรื่องง่าย ดูหน้าเว็บการเริ่มต้นใช้งาน DynamoDB เพื่อสร้างตารางแรกของคุณโดยคลิกเพียงไม่กี่ครั้ง นอกจากนี้ คุณยังสามารถดาวน์โหลดรายงาน AWS เพื่อเรียนรู้แนวทางการปฏิบัติที่ดีที่สุดสำหรับการโยกย้ายปริมาณงานจากระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) ไปยัง DynamoDB

Amazon DynamoDB คืออะไร