1.1 วิธีการทำงานของฐานข้อมูล NoSQL
ฐานข้อมูล NoSQL ใช้โมเดลข้อมูลที่หลากหลายเพื่อเข้าถึงและจัดการข้อมูล ฐานข้อมูลประเภทนี้ได้รับการปรับให้เหมาะสมสำหรับแอปพลิเคชันที่ใช้ข้อมูลมาก ซึ่งต้องการเวลาแฝงต่ำและโมเดลข้อมูลที่ยืดหยุ่น ทั้งหมดนี้ทำได้โดยการลดข้อกำหนดความสอดคล้องของข้อมูลที่เข้มงวดซึ่งเป็นเรื่องปกติสำหรับฐานข้อมูลประเภทอื่นๆ
พิจารณาตัวอย่างการสร้างแบบจำลองสคีมาสำหรับฐานข้อมูลหนังสืออย่างง่าย
-
ในฐานข้อมูลเชิงสัมพันธ์ รายการหนังสือมักจะถูกแบ่งออกเป็นหลายส่วน (หรือ "ทำให้เป็นมาตรฐาน") และจัดเก็บไว้ในตารางที่แยกจากกัน ซึ่งความสัมพันธ์ถูกกำหนดโดยข้อจำกัดของคีย์หลักและคีย์นอก ในตัวอย่างนี้ ตาราง หนังสือมี คอลัมน์ ISBN ชื่อหนังสือและ "ISBNและ"ผู้แต่ง"ISBN ผู้เขียนตารางและชื่อผู้แต่งและID ผู้แต่งคอลัมน์ผู้แต่งฉบับหมายเลข ". โมเดลเชิงสัมพันธ์ได้รับการออกแบบมาเพื่อรักษา Referential Integrity ระหว่างตารางในฐานข้อมูล ข้อมูลจะถูกทำให้เป็นมาตรฐานเพื่อลดความซ้ำซ้อนและโดยทั่วไปจะปรับให้เหมาะสมสำหรับการจัดเก็บ
-
ในฐานข้อมูล NoSQL โดยทั่วไป บันทึกหนังสือจะถูกจัดเก็บเป็นเอกสาร JSON สำหรับหนังสือหรือองค์ประกอบแต่ละเล่ม ค่าISBN , Book Title , Edition Number , Author Name ,และAuthor IDจะถูกจัดเก็บเป็นแอตทริบิวต์ในเอกสารเดียว ในโมเดลนี้ ข้อมูลได้รับการปรับให้เหมาะสมสำหรับการพัฒนาที่ใช้งานง่ายและความสามารถในการปรับขนาดในแนวนอน
1.2 ฐานข้อมูล NoSQL สามารถใช้ทำอะไรได้บ้าง
ฐานข้อมูล NoSQL เหมาะอย่างยิ่งสำหรับแอปพลิเคชันสมัยใหม่จำนวนมาก เช่น มือถือ เกม เว็บแอปพลิเคชัน ที่ต้องการฐานข้อมูลที่ยืดหยุ่นและปรับขนาดได้ พร้อมประสิทธิภาพสูงและฟังก์ชันการทำงานที่หลากหลายที่สามารถให้การใช้งานสูงสุด
-
ความยืดหยุ่น โดยทั่วไปแล้ว ฐานข้อมูล NoSQL นำเสนอสคีมาแบบยืดหยุ่น ช่วยให้สามารถพัฒนาได้เร็วขึ้นและเปิดใช้งานส่วนเพิ่ม เนื่องจากการใช้โมเดลข้อมูลที่ยืดหยุ่น ฐานข้อมูล NoSQL จึงเหมาะสำหรับข้อมูลกึ่งโครงสร้างและไม่มีโครงสร้าง
-
ความสามารถในการปรับขนาด ฐานข้อมูล NoSQL ได้รับการออกแบบมาเพื่อปรับขนาดโดยใช้คลัสเตอร์ฮาร์ดแวร์แบบกระจาย ไม่ใช่โดยการเพิ่มเซิร์ฟเวอร์ที่มีราคาแพงและเชื่อถือได้ ผู้ให้บริการระบบคลาวด์บางรายดำเนินการเหล่านี้ในเบื้องหลัง โดยให้บริการที่มีการจัดการเต็มรูปแบบ
-
ประสิทธิภาพสูง ฐานข้อมูล NoSQL ได้รับการปรับให้เหมาะสมสำหรับโมเดลข้อมูลและรูปแบบการเข้าถึงเฉพาะเพื่อให้ได้ประสิทธิภาพที่สูงกว่าฐานข้อมูลเชิงสัมพันธ์
-
ฟังก์ชั่ นกว้าง ฐานข้อมูล NoSQL มี API และประเภทข้อมูลที่หลากหลายซึ่งได้รับการออกแบบมาโดยเฉพาะสำหรับโมเดลข้อมูลที่เกี่ยวข้อง
1.3 ประเภทของฐานข้อมูล NoSQL
มีการใช้ฐานข้อมูล NoSQL ซึ่งไม่สะดวกในการจัดเก็บข้อมูลในรูปแบบของตาราง ดังนั้นจึงจัดเก็บไว้ในรูปแบบที่แตกต่างกันมาก โดยปกติแล้ว ฐานข้อมูล NoSQL จะมีประเภทข้อมูลหลักอยู่ 6 ประเภท
ฐานข้อมูลขึ้นอยู่กับคู่ของคีย์-ค่า
ฐานข้อมูลที่ใช้คู่คีย์-ค่าสนับสนุนความสามารถในการแยกออกจากกันสูงและให้การปรับขนาดแนวนอนอย่างไม่เคยมีมาก่อนซึ่งไม่สามารถทำได้กับฐานข้อมูลประเภทอื่น กรณีการใช้งานที่ดีสำหรับฐานข้อมูลคีย์-ค่าคือแอปพลิเคชันเกม โฆษณา และ IoT
ตัวอย่างเช่น Amazon DynamoDB ช่วยให้มั่นใจว่าการทำงานของฐานข้อมูลมีความเสถียรโดยมีความล่าช้าไม่เกินสองสามมิลลิวินาทีในทุกขนาด ประสิทธิภาพที่แข็งแกร่งนี้เป็นเหตุผลหลักในการโยกย้าย Snapchat Stories ไปยัง DynamoDB เนื่องจากคุณลักษณะ Snapchat นี้เชื่อมโยงกับภาระการเขียนพื้นที่จัดเก็บที่ใหญ่ที่สุด
เอกสาร
ในโค้ดของแอปพลิเคชัน ข้อมูลมักจะแสดงเป็นวัตถุหรือเอกสารในรูปแบบคล้าย JSON เนื่องจากเป็นรูปแบบข้อมูลที่มีประสิทธิภาพและใช้งานง่ายสำหรับนักพัฒนา ฐานข้อมูลเอกสารช่วยให้นักพัฒนาจัดเก็บและสืบค้นข้อมูลในฐานข้อมูลโดยใช้รูปแบบเอกสารเดียวกันกับที่ใช้ในรหัสแอปพลิเคชัน ลักษณะของเอกสารและฐานข้อมูลเอกสารแบบกึ่งโครงสร้างที่ยืดหยุ่น กึ่งโครงสร้าง ช่วยให้พัฒนาตามความต้องการของแอปพลิเคชัน
โมเดลเอกสารทำงานได้ดีในแค็ตตาล็อก โปรไฟล์ผู้ใช้ และระบบการจัดการเนื้อหา ซึ่งเอกสารแต่ละฉบับจะไม่ซ้ำกันและเปลี่ยนแปลงตลอดเวลา Amazon DocumentDB (เข้ากันได้กับ MongoDB) และ MongoDB เป็นฐานข้อมูลเอกสารทั่วไปที่มี API ที่ใช้งานได้และใช้งานง่ายสำหรับการพัฒนาที่คล่องตัว
ฐานข้อมูลกราฟ
ฐานข้อมูลกราฟช่วยให้การพัฒนาและเรียกใช้แอปพลิเคชันที่ทำงานกับชุดข้อมูลที่ซับซ้อนทำได้ง่ายขึ้น ตัวอย่างทั่วไปของการใช้ฐานข้อมูลกราฟ ได้แก่ เครือข่ายสังคม บริการแนะนำ ระบบตรวจจับการฉ้อโกง และกราฟความรู้ Amazon Neptune เป็นบริการฐานข้อมูลกราฟที่มีการจัดการเต็มรูปแบบ Neptune รองรับ Property Graph และ Resource Description Framework (RDF) โดยมีกราฟ API สองแบบให้เลือก: TinkerPop และ RDF/SPARQL ฐานข้อมูลกราฟทั่วไป ได้แก่ Neo4j และ Giraph
ฐานข้อมูลในหน่วยความจำ
บ่อยครั้งที่แอปพลิเคชันเกมและการโฆษณาใช้ลีดเดอร์บอร์ด พื้นที่เก็บข้อมูลเซสชัน และการวิเคราะห์ตามเวลาจริง ความสามารถดังกล่าวต้องการการตอบสนองภายในไม่กี่ไมโครวินาที ในขณะที่การรับส่งข้อมูลเพิ่มขึ้นอย่างรวดเร็วนั้นเป็นไปได้ทุกเมื่อ
Amazon MemoryDB สำหรับ Redis เป็นบริการฐานข้อมูลในหน่วยความจำที่เชื่อถือได้และเข้ากันได้กับ Redis ซึ่งช่วยลดเวลาแฝงในการอ่านเป็นมิลลิวินาทีและมอบความทนทานในโซนความพร้อมใช้งานต่างๆ MemoryDB ถูกสร้างขึ้นตามวัตถุประสงค์เพื่อประสิทธิภาพและความเชื่อถือได้สูงเป็นพิเศษ ดังนั้นจึงสามารถใช้เป็นฐานข้อมูลหลักสำหรับแอปพลิเคชันไมโครเซอร์วิสที่ทันสมัย
Amazon ElastiCache เป็นบริการแคชในหน่วยความจำที่เข้ากันได้กับ Redis และ Memcached ที่มีการจัดการเต็มรูปแบบ เพื่อรองรับปริมาณงานที่มีเวลาแฝงต่ำและปริมาณงานสูง ลูกค้าเช่น Tinder ที่ต้องการให้แอปตอบสนองแบบเรียลไทม์กำลังใช้ระบบในหน่วยความจำมากกว่าระบบจัดเก็บข้อมูลในดิสก์ อีกตัวอย่างหนึ่งของคลังข้อมูลที่สร้างขึ้นตามวัตถุประสงค์คือ Amazon DynamoDB Accelerator (DAX) DAX ช่วยให้ DynamoDB อ่านข้อมูลได้เร็วขึ้นหลายเท่า
ค้นหาฐานข้อมูล
แอปพลิเคชันจำนวนมากสร้างบันทึกเพื่อให้นักพัฒนาแก้ไขปัญหาและแก้ไขปัญหาได้ง่ายขึ้น Amazon OpenSearch เป็นบริการที่สร้างขึ้นตามวัตถุประสงค์สำหรับการแสดงภาพข้อมูลแบบเกือบเรียลไทม์และการวิเคราะห์สตรีมข้อมูลที่สร้างขึ้นโดยอัตโนมัติโดยการจัดทำดัชนี การรวม และการค้นหาบันทึกและเมตริกแบบกึ่งโครงสร้าง
นอกจากนี้ Amazon OpenSearch ยังเป็นบริการค้นหาข้อความแบบเต็มที่ทรงพลังและมีประสิทธิภาพสูง Expedia ใช้ประโยชน์จากโดเมนบริการ Amazon OpenSearch กว่า 150 โดเมน ข้อมูล 30 TB และเอกสาร 3 หมื่นล้านฉบับสำหรับกรณีการใช้งานที่สำคัญต่อภารกิจที่หลากหลาย
1.4 การเปรียบเทียบฐานข้อมูล SQL (เชิงสัมพันธ์) และ NoSQL (ไม่เชิงสัมพันธ์)
NoSQL มีข้อดีมากมาย ดังนั้นในทางทฤษฎีแล้ว คุณควรรู้ว่าเครื่องมือที่คุณต้องการมีอยู่แล้วก่อนที่จะเขียนมันด้วยตัวเอง ด้านล่างนี้ฉันจะให้การเปรียบเทียบฐานข้อมูล NoSQL และ SQL:
ปริมาณงานที่เหมาะสม
ฐานข้อมูลเชิงสัมพันธ์ได้รับการออกแบบมาสำหรับแอ็พพลิเคชันการประมวลผลธุรกรรมแบบเรียลไทม์ (OLTP) ที่มีความสม่ำเสมอสูงและเหมาะสำหรับการประมวลผลเชิงวิเคราะห์แบบเรียลไทม์ (OLAP)
ฐานข้อมูล NoSQL ได้รับการออกแบบมาเพื่อทำงานกับรูปแบบการเข้าถึงข้อมูลที่หลากหลาย รวมถึงแอปพลิเคชันที่มีความหน่วงต่ำ ฐานข้อมูลการค้นหา NoSQL ได้รับการออกแบบสำหรับการวิเคราะห์ข้อมูลกึ่งโครงสร้าง
โมเดลข้อมูล
โมเดลเชิงสัมพันธ์ทำให้ข้อมูลเป็นมาตรฐานและแปลงเป็นตารางที่ประกอบด้วยแถวและคอลัมน์ สคีมากำหนดตาราง แถว คอลัมน์ ดัชนี ความสัมพันธ์ระหว่างตาราง และองค์ประกอบฐานข้อมูลอื่นๆ อย่างตายตัว ฐานข้อมูลดังกล่าวรับรองความถูกต้องของข้อมูลอ้างอิงในความสัมพันธ์ระหว่างตาราง
ฐานข้อมูล NoSQL มีโมเดลข้อมูลที่หลากหลาย เช่น คู่คีย์-ค่า เอกสาร และกราฟที่ได้รับการปรับแต่งเพื่อประสิทธิภาพและความสามารถในการปรับขนาดสูง
คุณสมบัติของกรด
ฐานข้อมูลเชิงสัมพันธ์มีชุดของคุณสมบัติของกรด: อะตอมมิก ความสม่ำเสมอ การแยกตัว ความน่าเชื่อถือ
- Atomicity กำหนดให้ธุรกรรมต้องดำเนินการอย่างครบถ้วนหรือไม่ดำเนินการเลย
- ความสอดคล้องหมายความว่าทันทีที่การทำธุรกรรมเสร็จสมบูรณ์ ข้อมูลจะต้องสอดคล้องกับสคีมาฐานข้อมูล
- การแยกออกจากกันทำให้ธุรกรรมคู่ขนานทำงานแยกจากกัน
- ความน่าเชื่อถือหมายถึงความสามารถในการกู้คืนไปยังสถานะที่บันทึกไว้ล่าสุดหลังจากเกิดความล้มเหลวของระบบหรือไฟฟ้าดับโดยไม่คาดคิด
ฐานข้อมูล NoSQL มักจะเสนอการประนีประนอม ผ่อนคลายข้อกำหนดที่เข้มงวดของคุณสมบัติ ACID เพื่อสนับสนุนรูปแบบข้อมูลที่ยืดหยุ่นกว่า ซึ่งช่วยให้ปรับขนาดแนวนอนได้ สิ่งนี้ทำให้ NoSQL เป็นตัวเลือกที่ยอดเยี่ยมสำหรับกรณีการใช้งานที่มีแบนด์วิธสูง เวลาแฝงต่ำ ซึ่งต้องการการปรับขนาดในแนวนอนนอกเหนือจากอินสแตนซ์เดียว
ผลงาน
ประสิทธิภาพส่วนใหญ่ขึ้นอยู่กับระบบย่อยของดิสก์ การปรับแต่งแบบสอบถาม ดัชนี และโครงสร้างตารางมักจำเป็นสำหรับประสิทธิภาพสูงสุด
โดยทั่วไปประสิทธิภาพจะขึ้นอยู่กับขนาดของคลัสเตอร์ฮาร์ดแวร์พื้นฐาน เวลาแฝงของเครือข่าย และแอปพลิเคชันการโทร
ขูดหินปูน
ฐานข้อมูลเชิงสัมพันธ์โดยทั่วไปจะปรับขนาดโดยการเพิ่มพลังการประมวลผลของฮาร์ดแวร์หรือโดยการเพิ่มสำเนาแยกต่างหากสำหรับเวิร์กโหลดที่อ่าน
โดยทั่วไปแล้ว ฐานข้อมูล NoSQL จะสนับสนุนความสามารถในการแยกออกจากกันสูงผ่านรูปแบบการเข้าถึงที่ปรับขนาดได้ตามสถาปัตยกรรมแบบกระจาย สิ่งนี้ช่วยปรับปรุงปริมาณงานและมอบประสิทธิภาพที่สม่ำเสมอในระดับที่เกือบจะไม่จำกัด
เอพีไอ
คำขอสำหรับการเขียนและดึงข้อมูลถูกเขียนใน SQL แบบสอบถามเหล่านี้แยกวิเคราะห์และดำเนินการโดยฐานข้อมูลเชิงสัมพันธ์
API เชิงวัตถุช่วยให้นักพัฒนาแอปพลิเคชันสามารถเขียนและเรียกใช้โครงสร้างข้อมูลได้อย่างง่ายดาย การใช้พาร์ติชันคีย์ แอปพลิเคชันสามารถค้นหาคู่คีย์-ค่า ชุดคอลัมน์ หรือเอกสารกึ่งโครงสร้างที่มีออบเจกต์อนุกรมและแอตทริบิวต์ของแอปพลิเคชัน
GO TO FULL VERSION