NoSQL นั้นมีวิวัฒนาการมากกว่าการปฏิวัติ "การจัดเก็บฐานข้อมูลภายนอก" กับ "การใช้โครงสร้างข้อมูลที่คุ้นเคยไม่ใช่ตารางเชิงสัมพันธ์"
มีหลายประเภทมากขึ้นของฐานข้อมูลเชิงสัมพันธ์เป็นมากกว่าตัวอย่างเช่นฐานข้อมูลแบบลำดับชั้น ในขณะที่โบราณตามมาตรฐานของวันนี้มันสอดคล้องดีกับโครงสร้างข้อมูลของข้อมูล (เช่นบันทึกCOBOL ) ประเด็นก็คือข้อมูลในฐานข้อมูลนั้นถูกสร้างแบบจำลองอย่างใกล้ชิดกับวิธีการบันทึกข้อมูลในภาษาการเขียนโปรแกรมที่ใช้พวกเขา
กรอไปข้างหน้าอย่างรวดเร็วไปสู่การประดิษฐ์ฐานข้อมูลเชิงสัมพันธ์ซึ่งท้ายที่สุดแล้วฐานข้อมูลแยกความกังวลและเมื่อถูกทำให้เป็นมาตรฐานอย่างเหมาะสมก็เป็นวิธีที่ดีในการแสดงภาพข้อมูลส่วนใหญ่และความสัมพันธ์ระหว่างข้อมูล เป็นเรื่องง่ายที่จะเข้าใจเมื่อเปรียบเทียบกับฐานข้อมูลประเภทอื่น อย่างไรก็ตามสิ่งที่ล้มเหลวอย่างสิ้นเชิงนั้นคือการจัดเก็บข้อมูลในลักษณะที่สะท้อนวัตถุและคลาสในโปรแกรม ดังนั้นการประดิษฐ์ของการทำแผนที่วัตถุสัมพันธ์ กล่าวอีกนัยหนึ่งการออกแบบฐานข้อมูลเป็นอุปสรรคในการออกแบบโปรแกรมที่ใช้งานซึ่งเป็นสาเหตุที่เราต้องการไลบรารี ORM เช่นHibernate. ในขณะที่สะอาดและสม่ำเสมอมีข้อสงสัยที่จู้จี้อยู่ในใจของฉันเสมอว่ามีบางอย่างไม่ถูกต้องอยู่ที่นั่น
นี้ให้สูงขึ้นถึงสองประเภทของฐานข้อมูลวัตถุฐานข้อมูลและNoSQL
ทั้งสองพยายามที่จะแก้ปัญหาที่นำเสนอโดยฐานข้อมูลเชิงสัมพันธ์ในขณะที่ไม่เปิดเผยให้เราเห็นถึงความน่าสะพรึงกลัวที่น่าเหลือเชื่อของฐานข้อมูลแบบลำดับชั้น ข้อมูลยังคงถูกจัดวางในที่เก็บซึ่งมีลักษณะคล้ายกับตาราง แต่ในความเป็นจริงนั้นเหมือนกับการเขียนโปรแกรมโครงสร้างข้อมูลมากกว่าตารางเชิงสัมพันธ์ ในขณะที่ฐานข้อมูลวัตถุเป็นไปตามกฎที่กำหนดไว้เป็นส่วนใหญ่ความเข้าใจของฉันก็คือ NoSQL นั้นค่อนข้างที่จะเป็นกฎ ตัวอย่างเช่นตารางอาจมองเห็นเป็นตารางแฮชหรืออาร์เรย์ ไม่มีวิธีที่ง่ายที่ดีที่กำหนดเพื่อสอบถามพวกเขาใช้คล้ายเครื่องมือที่กำหนดเองOracle SQL DeveloperหรือSQL Server Studio
แนวคิดก็คือเราอาจกำหนดโครงสร้างข้อมูลที่ค้นหาได้ง่ายในรหัสแทนที่จะรวบรวมข้อมูลแบบสอบถาม SQL ที่เหมาะกับเครื่องมือฐานข้อมูล SQL แทนที่จะเป็นแบบสอบถามข้อมูลที่ต้องการ ตัวอย่างเช่นการจับคู่แบบคลุมเครือหรือบางส่วนนั้นยากขึ้นและทำงานได้แย่ลงในฐานข้อมูลเชิงสัมพันธ์ในขณะที่ฐานข้อมูล NoSQL อาจมีโครงสร้างที่ปรับให้เหมาะสำหรับการค้นหาและดำเนินการให้เสร็จสมบูรณ์ในเวลาไม่นาน
มีภาษาสำหรับการสืบค้น NoSQL อย่างไรก็ตามไม่มีภาษาสากลเช่น SQL สำหรับฐานข้อมูลเชิงสัมพันธ์
แก้ไขล่าช้า:
ในขณะที่ฉันคุ้นเคยกับฐานข้อมูล NoSQL คำถามนี้เป็นแรงผลักดันให้ฉันซื้อหนังสือที่มีคุณภาพในหัวข้อและเริ่มอ่านโดยมีเป้าหมายในท้ายที่สุดว่าการเป็นผู้เชี่ยวชาญจริงในหัวข้อนั้น ความเห็นที่เหลืออยู่บนพื้นฐานของNoSQL กลั่น: คู่มือบทสรุปเพื่อเกิดใหม่โลกของความคงทนพูดได้หลายภาษาโดยPramod Sadalageและมาร์ตินฟาวเลอร์
ผู้เขียนระบุว่าฐานข้อมูลเชิงสัมพันธ์ไม่ได้ปรับขนาดได้ดีสำหรับกลุ่มที่สามารถให้บริการข้อมูลที่จำเป็นสำหรับเว็บไซต์เช่น Amazon และ Google: NoSQL ได้รับการพัฒนาเพื่อให้พอดีกับช่องนี้ทำให้การทำงานพร้อมกันและความทนทานใน ACID ลดลง ส่วนใหญ่ใช้ข้อมูลสแตติก (ดังนั้นธุรกรรม ACID ไม่สำคัญเท่า)
นอกจากนี้พวกเขายังยืนยันว่าฐานข้อมูล NoSQL ทำงานโดยไม่มี schema (หน้า 10) ซึ่งช่วยให้ฐานข้อมูล NoSQL สามารถปรับเปลี่ยนโครงสร้างของข้อมูลได้ง่ายขึ้น ฉันไม่แน่ใจว่าการมีหรือไม่มี schema ที่เป็นทางการมีความสำคัญในเรื่องนี้เนื่องจากฐานข้อมูล SQL อนุญาตให้ปรับเปลี่ยนสกีมาได้เช่นกัน ไม่ว่าผู้เขียนที่มีชื่อเสียงทั้งสองคนจะเรียกร้องอย่างไรจึงควรตรวจสอบ
ฉันเชื่อว่าประเด็นหลักทั้งสองนี้ให้บริการเฉพาะเพื่อบังคับใช้ประเด็นหลักของฉันว่า NoSQL นั้นเป็นวิวัฒนาการไม่ใช่การปฏิวัติ พวกเขายังคงเก็บข้อมูลและทำการปรับปรุงที่เพิ่มขึ้นในระดับและการปรับเปลี่ยนได้ พวกเขายังชี้ให้เห็นว่า NoSQL ไม่ได้พยายามที่จะแย่งชิงฐานข้อมูลเชิงสัมพันธ์ในฐานะราชาแห่งการจัดเก็บข้อมูลเพียงเพื่อให้วิธีการทางเลือกของการจัดเก็บข้อมูลสำหรับประเภทของข้อมูลที่จำเป็นต้องปรับขนาดและ morph ในแบบที่พวกเขาเชื่อ ฐานข้อมูลไม่รองรับได้ดีพอ