วิธีรักษาความสัมพันธ์ระหว่างข้อมูลในฐานข้อมูล NoSQL

เผยแพร่แล้ว: 2022-11-23

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

การใช้ NoSQL ในฐานข้อมูลเชิงเอกสารไม่เพียงพอหรือไม่มีเลยสำหรับการพัฒนาความสัมพันธ์ระหว่างวัตถุ ในบล็อกโพสต์นี้ เราจะแสดงวิธีมอบหมายการจัดการวัตถุ/ความสัมพันธ์ไปยังฐานข้อมูล ความสัมพันธ์ของวัตถุถูกสร้างขึ้นโดยใช้การเรียก REST API ในตัวอย่างนี้ เราจะใช้กริยา PUT เพื่อเชื่อมโยงลูกค้ากับปัญหา เมื่อความสัมพันธ์ถูกแสดงในลักษณะนี้ อาร์เรย์ของอ็อบเจกต์จะปรากฎอยู่เสมอ คุณจะสามารถเห็นการเปลี่ยนแปลงในเอกสารต้นฉบับหลังจากการอ้างอิงถึงวัตถุ (เช่น ความสัมพันธ์) ในแต่ละครั้ง เนื่องจากฐานข้อมูลบันทึกการใช้แต่ละความสัมพันธ์ เราจึงสามารถดูได้ว่ามีการใช้เอกสารใดในความสัมพันธ์ การใช้ข้อความค้นหาตัวอย่างที่แสดงด้านล่าง คุณสามารถค้นหาการมีอยู่ของการอ้างอิงโดยปริยายไปยังเอกสารโดยใช้ข้อความค้นหาพิเศษ: referencedby=true

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

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

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

ฐานข้อมูล Nosql สามารถสัมพันธ์กันได้หรือไม่?

ถ่ายภาพโดย: wp

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

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

ฐานข้อมูลเป็นบริการ (DBaaS) เป็นที่นิยมมากกว่าบริการข้อมูลประเภทอื่นๆ สำหรับแอปพลิเคชันที่ใช้ระบบคลาวด์ บริการเหล่านี้สามารถใช้เพื่อให้ความปลอดภัย ความสามารถในการปรับขนาด และการตรวจสอบ คุณสามารถกำหนดค่าเครื่องเสมือน Azure และติดตั้งฐานข้อมูลที่คุณเลือกสำหรับแต่ละบริการ ไมโครเซอร์วิสแบบเนทีฟบนคลาวด์สามารถใช้ประโยชน์จากฐานข้อมูลเชิงสัมพันธ์หรือฐานข้อมูล NoSQL ตามความต้องการของผู้ใช้ แพลตฟอร์มฐานข้อมูล Azure as a service (DBaaS) ประกอบด้วยฐานข้อมูลเชิงสัมพันธ์ที่มีการจัดการสี่ฐานข้อมูล ไม่จำเป็นต้องลังเลเมื่อพูดถึงโมเดลแบบทันเวลาและแบบจ่ายตามการใช้งานจริง ฐานข้อมูลเรือธงของ Microsoft, SQL Server, มีให้ใช้งานเช่นเดียวกับทางเลือกโอเพ่นซอร์สจำนวนมาก

ด้วยการเลือกจำนวนแกนประมวลผล หน่วยความจำ และพื้นที่เก็บข้อมูลที่จำเป็น คุณสามารถจัดเตรียมฐานข้อมูล Azure ได้ภายในเวลาไม่ถึงหนึ่งนาที Microsoft มุ่งมั่นที่จะทำให้ Azure เป็นแพลตฟอร์มแบบเปิด ดังนั้นบริษัทจึงจัดเตรียมฐานข้อมูลโอเพ่นซอร์สยอดนิยมเวอร์ชันที่มีการจัดการ ระดับการประมวลผลแบบไร้เซิร์ฟเวอร์จะระงับฐานข้อมูลโดยอัตโนมัติในช่วงที่ไม่ได้ใช้งาน ทำให้หักเฉพาะค่าบริการพื้นที่จัดเก็บเท่านั้น Oracle เข้าซื้อกิจการของ Sun Microsystems และ MariaDB เวอร์ชันที่มีการจัดการถูกสร้างขึ้นโดยแยกจาก MySQL Azure Database for MariaDB เป็นบริการฐานข้อมูลที่มีการจัดการเต็มรูปแบบซึ่งเป็นส่วนหนึ่งของ Azure cloud บริการนี้สร้างขึ้นจากเครื่องมือเซิร์ฟเวอร์ MariaDB community edition สามารถจัดการกับปริมาณงานที่มีความสำคัญต่อภารกิจโดยให้ประสิทธิภาพที่คาดการณ์ได้และการปรับขนาดแบบไดนามิก

เครื่องมืออินเทอร์เฟซบรรทัดคำสั่งหรือ Azure Data Migration Service เป็นวิธีที่ยอดเยี่ยมในการโยกย้ายฐานข้อมูล Postgres นอกจากการสนับสนุนสำหรับการทำคลัสเตอร์แบบแอคทีฟ/แอคทีฟในระดับโลกแล้ว CosmosDB ยังรองรับทั้งการเขียนและการอ่าน ทำให้คุณสามารถกำหนดค่าขอบเขตฐานข้อมูลใดๆ ของคุณให้ทำเช่นนั้นได้ ระบบฐานข้อมูล CosmosDB สามารถใช้เพื่อโอนย้ายฐานข้อมูล Mongo, Gremlin หรือ Cassandra ที่มีอยู่โดยมีการเปลี่ยนแปลงโค้ดหรือข้อมูลเพียงเล็กน้อย ที่เก็บข้อมูล Azure Table สามารถถ่ายโอนไปยัง CosmosDB Table API ได้อย่างง่ายดายสำหรับบริการที่ใช้งาน รูปที่ 5-13 มีแบบจำลองความสอดคล้องที่กำหนดไว้อย่างดีห้าแบบสำหรับ Azure Cosmos DB ตัวเลือกเหล่านี้ทำให้ง่ายต่อการจัดการการแลกเปลี่ยนระหว่างความสม่ำเสมอ ความพร้อมใช้งาน และประสิทธิภาพ ตารางด้านล่างแสดงระดับความสม่ำเสมอสำหรับแต่ละรายการ

Jeremy Likness ผู้จัดการโปรแกรมของ Microsoft ได้ให้คำอธิบายที่ยอดเยี่ยมเกี่ยวกับรุ่นทั้งห้า เทคโนโลยีฐานข้อมูลใหม่ที่รู้จักกันในชื่อ NewSQL รวมความสามารถในการปรับขนาดแบบกระจายเข้ากับการรับประกันของกรดเพื่อสร้างฐานข้อมูลเชิงวัตถุ เมื่อสภาพแวดล้อมบนระบบคลาวด์เป็นแบบชั่วคราว มันสมเหตุสมผลที่ฐานข้อมูล newSQL จะเติบโตได้เนื่องจากการมีอยู่ของเครื่องเสมือนพื้นฐานที่สามารถรีสตาร์ทหรือกำหนดเวลาใหม่ได้ตลอดเวลา ตัวเลขก่อนหน้านี้รวมถึงโครงการโอเพ่นซอร์สที่สร้างโดย Cloud Native Computing Foundation ตรงกันข้ามกับปริมาณงานอื่นๆ ซึ่งใช้โครงสร้างบริการ ไคลเอ็นต์สามารถส่งคำขอ DNS เดียวไปยังกลุ่มของกระบวนการฐานข้อมูล NewSQL ที่เหมือนกันได้ เราสามารถปรับขนาดได้โดยไม่ส่งผลกระทบต่อความพร้อมใช้งานของอินสแตนซ์แอปพลิเคชันที่มีอยู่ หากเราแยกอินสแตนซ์ฐานข้อมูลออกจากที่อยู่ของบริการที่เกี่ยวข้อง คำขอเฉพาะที่ส่งไปยังบริการหนึ่งๆ จะให้ผลลัพธ์เดียวกันเสมอ โดยไม่คำนึงว่าคำขอจำนวนมากจะถูกส่งไปพร้อมกัน

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

Mongodb สามารถสัมพันธ์กันได้หรือไม่?

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

Snowflake เป็นฐานข้อมูลเชิงสัมพันธ์หรือไม่?

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


ฐานข้อมูล Nosql ใดที่ไม่รองรับความสัมพันธ์หรือเข้าร่วม

ถ่ายภาพโดย: ปานกลาง

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

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

ความสัมพันธ์ของเอนทิตีใน Nosql

ความสัมพันธ์ของเอนทิตีใน nosql คือความสัมพันธ์ระหว่างสองเอนทิตีหรือมากกว่าในฐานข้อมูล nosql ความสัมพันธ์นี้อาจเป็นแบบหนึ่งต่อหนึ่ง หนึ่งต่อกลุ่ม หรือกลุ่มต่อกลุ่ม

Er Diagrams สำหรับฐานข้อมูลเอกสาร

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

ความสัมพันธ์แบบกลุ่มต่อกลุ่มใน Nosql

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

ฉันต้องการใช้โครงสร้างอนุกรมวิธาน (เงื่อนไขทางภูมิศาสตร์) สำหรับแอปพลิเคชัน node.js ของฉันด้วยฐานข้อมูล NoSQL แนวคิดเบื้องหลังการแท็กทางภูมิศาสตร์คือการระบุผู้คนที่เกิดในเมืองบางเมืองด้วยคำเหล่านั้น กรองพวกเขาออกในภายหลัง และแท็กพวกเขา John Doe เกิดใน Blackburn (แลงคาเชียร์) ในปี 1957 Paul Brown ใน Liverpool ในปี 1960 และ Georgia Doe ใน Wirral ในปี 1982 หากมีองค์ประกอบโครงสร้างเพียงไม่กี่อย่างในประเทศที่เป็นไปตามองค์ประกอบสมัยใหม่ พวกเขาจะถูกกรองในลักษณะที่ ไม่สามารถทำได้ ฉันเป็นมือใหม่ใน โลกของ NoSQL (ฉันยังไม่ได้ออกแบบฐานข้อมูล NoSQL เลย ดังนั้นฉันจึงมีความท้าทายด้านการออกแบบรออยู่ข้างหน้า) ฉันเชื่อว่ามีหลายทางเลือกในการแก้ปัญหา

สัญลักษณ์ตีนกา: ความสัมพันธ์แบบกลุ่มต่อกลุ่ม

โดยปกติแล้วคุณจะเห็น Crow's Foot Notation ในฐานข้อมูลเมื่อแสดงความสัมพันธ์จำนวนหนึ่งถึงหลายความสัมพันธ์แบบกราฟิก ความสัมพันธ์ระหว่างตารางจะแสดงด้วยชุดของเส้นตามสัญกรณ์นี้ จุดกำเนิดของกราฟ (มุมบนซ้าย) มักจะเริ่มต้นด้วยเส้นที่ลากลงไปยังตารางที่เรียกว่า “foreign” (เพราะนั่นคือจุดกำเนิด) หลังจากนั้น บรรทัดจะไปที่ตารางที่เกี่ยวข้อง ตามด้วยตารางรอง

เอกสาร Nosql

เอกสาร Nosql เป็นกระบวนการหรือชุดของกฎที่ใช้ในการเขียน โค้ด nosql เป็นรูปแบบของการเขียนโค้ดที่ออกแบบมาเพื่อทำให้โค้ด nosql สามารถอ่านได้มากขึ้นและเข้าใจง่ายขึ้น

ฐานข้อมูล NoSQL ไม่เหมือนกับฐานข้อมูลเชิงสัมพันธ์แบบดั้งเดิม ไม่เก็บข้อมูลในรูปแบบคงที่ ประเภทที่พบบ่อยที่สุดคือเอกสาร ค่าคีย์ คอลัมน์กว้าง และกราฟ ในช่วงปลายยุค 2000 ต้นทุนการจัดเก็บที่ลดลงอย่างมากทำให้เกิดการพัฒนาฐานข้อมูล NoSQL นักพัฒนาสามารถใช้เครื่องมือเหล่านี้เพื่อจัดเก็บข้อมูลที่ไม่มีโครงสร้างจำนวนมหาศาล ทำให้พวกเขาสามารถทำงานในโครงการต่างๆ ได้หลากหลาย ฐานข้อมูลเอกสาร ฐานข้อมูลคีย์-ค่า ร้านค้าคอลัมน์กว้าง และฐานข้อมูลกราฟเป็นฐานข้อมูล NoSQL ที่พบมากที่สุดบางส่วน เนื่องจากไม่ต้องการการรวม การสืบค้นจึงเร็วกว่า กรณีการใช้งานที่พบบ่อยที่สุด ได้แก่ แอปพลิเคชันที่สำคัญ (เช่น ข้อมูลทางการเงิน) และที่น่าขบขัน (เช่น การจัดเก็บการอ่านค่า IoT จากกล่องทิ้งขยะแมวอัจฉริยะ)

ในบทช่วยสอนนี้ เราจะดูว่าฐานข้อมูล NoSQL ทำงานอย่างไร และเหตุใดจึงมีประโยชน์สำหรับแอปพลิเคชันต่างๆ นอกจากนี้ เราจะพิจารณาความเข้าใจผิดทั่วไปบางประการเกี่ยวกับฐานข้อมูล NoSQL และแอปพลิเคชัน จากข้อมูลของ DB-Engines MongoDB เป็นฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์ที่ใช้กันอย่างแพร่หลายมากที่สุดในโลก คุณไม่จำเป็นต้องมีซอฟต์แวร์ใดๆ บนคอมพิวเตอร์ของคุณเพื่อสืบค้นฐานข้อมูล MongoDB ในบทช่วยสอนนี้ คลัสเตอร์คือชุดของฐานข้อมูลที่เก็บฐานข้อมูล MongoDB ที่เก็บข้อมูล Atlas สามารถเข้าถึงได้เมื่อคุณมีคลัสเตอร์ มีฐานข้อมูลสามประเภทที่คุณสามารถสร้างได้: ด้วยตนเองใน Atlas Data Explorer, ใน MongoDB Shell หรือใน MongoDB Compass ขึ้นอยู่กับภาษาโปรแกรมที่คุณต้องการ

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

แบบสอบถาม Nosql

ฐานข้อมูล NoSQL มักใช้เมื่อความสามารถในการปรับขนาดมีความสำคัญมากกว่าความสอดคล้องของข้อมูล ฐานข้อมูล NoSQL บางครั้งเรียกว่า "ไม่ใช่แค่ SQL" เพื่อเน้นย้ำว่าอาจรองรับภาษาคิวรีที่คล้ายกับ SQL

ก่อนหน้านี้ แบบจำลองข้อมูลและระบบแบบสอบถามถูกรวมเข้าด้วยกันอย่างใกล้ชิด ขณะนี้เราสามารถสร้างระบบฐานข้อมูลที่จัดลำดับความสำคัญของประสิทธิภาพการทำงานของนักพัฒนาและเริ่มสรุปวิธีการสืบค้นจากแบบจำลองข้อมูลเพื่อจัดลำดับความสำคัญของประสิทธิภาพการทำงานของนักพัฒนา SABRE ฐานข้อมูลเชิงพาณิชย์แห่งแรกของโลก ก่อตั้งขึ้นในปี 2537 โดย IBM และ American Airlines เพื่อปรับปรุงประสิทธิภาพบัตรโดยสารของสายการบิน ฐานข้อมูล NoSQL ได้รับการปรับให้เหมาะสมสำหรับความสามารถในการปรับขนาด เวลาทำงาน ความซ้ำซ้อน ความยืดหยุ่น และความยืดหยุ่นในช่วงไม่กี่ปีที่ผ่านมา นอกเหนือจากการเพิ่ม map-reduce เป็นตัวเลือกใน Riak และ MongoDB แล้ว พวกเขายังเพิ่มมันลงใน CouchDB และ Riak เราคาดหวังว่าข้อความค้นหาแบบประกาศเฉพาะกิจที่ตรงไปตรงมาจาก SQL แต่กลับกลายเป็นว่าใช้กลอุบายในการเขียนสคริปต์มากกว่า หากคุณกำลังสร้างระบบฐานข้อมูลที่สามารถปรับขนาดได้อย่างง่ายดาย การสืบค้นไม่ใช่เป้าหมายหลักของคุณ

XQuery และ Jsoniq พยายามสร้างภาษาคิวรีมาตรฐานที่สามารถใช้เพื่อดึงเอกสารลำดับชั้นในฐานข้อมูลเอกสาร MarkLogic ซึ่งเป็นฐานข้อมูลเอกสาร XML ใช้ XQuery นอกเหนือจาก XQuery ในขณะที่ ArrangoDB ใช้ superset ที่ปรับแต่งเองสำหรับการสร้างแบบจำลองข้อมูล ทั้งสองภาษามีการเชื่อมต่อที่ดีกับรูปแบบของข้อมูลที่จัดเก็บไว้ในดิสก์ และทั้งสองภาษาถูกใช้ในเชิงพาณิชย์ ภาษาคิวรีหนึ่งหรือทั้งสองภาษาที่ใช้ในฐานข้อมูลเอกสารเกี่ยวข้องกับภาษาคิวรีที่ใช้ในฐานข้อมูล N1QL (หรือภาษาเคียวรีที่ไม่ใช่รูปแบบแรก) ซึ่งตรงข้ามกับ SQL มีลักษณะเหมือน SQL อย่างมาก แม้ว่าจะไม่มีการบังคับใช้ความสัมพันธ์ แต่เราทำงานร่วมกันในเอกสารไม่ว่าจะเป็นทางการหรือไม่เป็นทางการ ทั้ง Couchbase และ Cassandra ทุ่มเทเวลาและความพยายามอย่างมากในการจัดทำดัชนีและวิเคราะห์คำค้นหา เพื่อให้พวกเขาสามารถสืบค้นข้อมูลในลักษณะนี้โดยไม่จำเป็นต้องค้นหาเชิงสัมพันธ์

คุณสามารถสอบถามใน Nosql ได้หรือไม่

ชื่อ NoSQL ไม่ได้หมายถึง SQL SQL ไม่ใช่วิธีการเขียนแบบสอบถามที่ต้องการใน No SQL ซอฟต์แวร์ไม่ได้จัดเก็บข้อมูลในรูปแบบเชิงสัมพันธ์ แต่อยู่ในลักษณะที่เป็นระเบียบ

ตัวอย่าง Nosql คืออะไร?

ฐานข้อมูล NoSQL แบบคอลัมน์ เช่น Cassandra, HBase และ Hypertable เป็นเรื่องปกติ

Nosql ง่ายกว่า sql หรือไม่

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

โมเดลข้อมูล Nosql

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

8 รูปแบบการสร้างแบบจำลองข้อมูลใน Redis ครอบคลุมพื้นฐานของการสร้างแบบจำลองข้อมูลใน NoSQL ตลอดจนแนวทางปฏิบัติที่ดีที่สุดสำหรับการเริ่มต้นใช้งาน หนังสือจะตรวจสอบโมเดลข้อมูล 8 โมเดลที่นักพัฒนาสามารถใช้เพื่อสร้างแอปพลิเคชันสมัยใหม่โดยปราศจากปัญหาที่ ฐานข้อมูลแบบดั้งเดิม สามารถเกิดขึ้นได้ เมื่อใช้ NoSQL คุณสามารถรวมสองตารางหรือคอลเล็กชันแยกกันเพื่อสร้างตารางหรือคอลเล็กชันเดียว ด้วยเหตุนี้ จึงง่ายต่อการค้นหาข้อมูลที่เกี่ยวข้องทั้งหมดและเข้าใจความสัมพันธ์ของข้อมูลเหล่านั้น แต่ละตารางใน NoSQL สามารถดูได้ด้วยตัวเอง เมื่อคุณต้องการจำลองความสัมพันธ์แบบหนึ่ง-ต่อ-กลุ่ม คุณฝังรายการที่มีขอบเขต (เช่น รายการที่มีขนาดที่รู้จัก) และรายการที่ไม่มีขอบเขตแยกกัน ผลิตภัณฑ์ในกรณีนี้คือหนึ่งเดียว และบทวิจารณ์ ชื่อผู้เขียน วันที่เผยแพร่ การจัดอันดับ และความคิดเห็นจำนวนมากเป็นตัวแปร 'จำนวนมาก'

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

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

แอปพลิเคชันเอกสาร ข้อมูล Nosql

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

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

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

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

ความแตกต่างระหว่าง Mongodb และ Sql

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