ตัวย่อ NoSQL ถูกประกาศเกียรติคุณในปี พ.ศ. 2541 หลายคนคิดว่า NoSQL เป็นคำที่สร้างความเสียหายให้กับ SQL ในความเป็นจริงคำว่า Not Only SQL แนวคิดคือเทคโนโลยีทั้งสองสามารถอยู่ร่วมกันและแต่ละคนมีสถานที่ การเคลื่อนไหวของ NoSQL เกิดขึ้นในช่วงไม่กี่ปีที่ผ่านมาเนื่องจากผู้นำเว็บ 2.0 หลายรายได้ใช้เทคโนโลยี NoSQL บริษัท ต่างๆเช่น Facebook, Twitter, Digg, Amazon, LinkedIn และ Google ทั้งหมดใช้ NoSQL แบบนี้หรืออีกทางหนึ่ง ลองแบ่ง NoSQL เพื่อให้คุณสามารถอธิบายให้ CIO หรือแม้แต่เพื่อนร่วมงานของคุณ
NoSQL โผล่ออกมาจากความต้องการ
การจัดเก็บข้อมูล: ข้อมูลดิจิทัลที่เก็บไว้ในโลกของโลกจะถูกวัดด้วย exabyte ที่ทำการหนึ่งพันไบต์เท่ากับหนึ่งพันล้านกิกะไบต์ (GB) ของข้อมูล ตาม Internet.com จำนวนข้อมูลที่เก็บไว้ที่เพิ่มขึ้นในปีพ. ศ. 2549 คือ 161 exabyte เพียงแค่ 4 ปีต่อมาในปี 2553 ปริมาณข้อมูลที่เก็บจะเพิ่มขึ้นเกือบ 1,000 ExaBytes ซึ่งเพิ่มขึ้นกว่า 500% กล่าวอีกนัยหนึ่งมีข้อมูลจำนวนมากถูกเก็บไว้ในโลกและจะมีการเติบโตอย่างต่อเนื่อง
ข้อมูลที่เชื่อมต่อกัน: ข้อมูลยังคงเชื่อมต่อกันมากขึ้น การสร้างเว็บในการเชื่อมโยงหลายมิติบล็อกมี pingbacks และทุกระบบเครือข่ายทางสังคมที่สำคัญมีแท็กที่ผูกสิ่งต่างๆไว้ด้วยกัน ระบบหลักถูกสร้างขึ้นเพื่อเชื่อมต่อกัน
โครงสร้างข้อมูลที่ซับซ้อน: NoSQL สามารถจัดการโครงสร้างข้อมูลที่ซ้อนกันตามลำดับชั้นได้อย่างง่ายดาย เพื่อให้บรรลุสิ่งเดียวกันใน SQL คุณจะต้องมีตารางความสัมพันธ์หลายอันที่มีคีย์ทุกชนิด นอกจากนี้ยังมีความสัมพันธ์ระหว่างประสิทธิภาพและความซับซ้อนของข้อมูล ประสิทธิภาพสามารถลดลงใน RDBMS แบบเดิมเนื่องจากเราเก็บข้อมูลจำนวนมหาศาลที่จำเป็นในแอ็พพลิเคชันเครือข่ายสังคมและเว็บแบบ semantic
NoSQL คืออะไร?
ฉันเดาวิธีหนึ่งในการกำหนด NoSQL คือการพิจารณาสิ่งที่ไม่. ไม่ใช่ SQL และไม่เกี่ยวข้อง เช่นเดียวกับชื่อที่แนะนำไม่ใช่การเปลี่ยน RDBMS แต่เป็นการชมเชย NoSQL ได้รับการออกแบบมาเพื่อจัดเก็บข้อมูลแบบกระจายสำหรับข้อมูลขนาดใหญ่ที่ต้องการ คิดเกี่ยวกับ Facebook กับผู้ใช้ 500 รายหรือ Twitter ที่รวบรวม Terabits ข้อมูลทุกวัน
ในฐานข้อมูล NoSQL ไม่มีสคีมาแบบคงที่และไม่มีการรวมเข้าด้วยกัน RDBMS "ยกระดับ" ขึ้นโดยการเพิ่มฮาร์ดแวร์และเพิ่มหน่วยความจำได้เร็วขึ้น ในทางกลับกัน NoSQL สามารถใช้ประโยชน์จาก "ปรับขนาดได้" การปรับขนาดออกหมายถึงการกระจายภาระมากกว่าระบบสินค้าโภคภัณฑ์จำนวนมาก นี่คือส่วนประกอบของ NoSQL ที่ทำให้เป็นโซลูชันที่ไม่แพงสำหรับชุดข้อมูลขนาดใหญ่
หมวดหมู่ NoSQL
โลก NoSQL ปัจจุบันสอดคล้องกับ 4 ประเภทพื้นฐาน
- คีย์ - ค่าร้านค้า จะขึ้นอยู่กับกระดาษไดนาโมของ Amazon ซึ่งถูกเขียนในปี 2007 ความคิดหลักคือการดำรงอยู่ของตารางแฮชที่มีคีย์ที่ไม่ซ้ำกันและตัวชี้ไปยังรายการเฉพาะของข้อมูล การแม็ปเหล่านี้มักมาพร้อมกับกลไกแคชเพื่อเพิ่มประสิทธิภาพสูงสุด
- คอลัมน์ร้านครอบครัว ถูกสร้างขึ้นเพื่อจัดเก็บและประมวลผลข้อมูลจำนวนมากกระจายอยู่ทั่วหลายเครื่อง ยังมีคีย์อยู่ แต่ชี้ไปที่หลายคอลัมน์ ในกรณีของ BigTable (แบบจำลอง NoSQL ของกลุ่ม Google) แถวจะถูกระบุด้วยคีย์แถวที่มีข้อมูลจัดเรียงและจัดเก็บโดยคีย์นี้ คอลัมน์จัดเรียงตามกลุ่มคอลัมน์
- ฐานข้อมูลเอกสารs ได้รับแรงบันดาลใจจาก Lotus Notes และคล้ายคลึงกับร้านค้าคีย์ - ค่า โมเดลเป็นเอกสารที่จัดทำเป็นชุดที่เก็บรวบรวมคอลเล็กชันคีย์ - ค่าอื่น ๆ ไว้ เอกสารกึ่งโครงสร้างจะจัดเก็บในรูปแบบเช่น JSON
- ฐานข้อมูลกราฟs ถูกสร้างขึ้นด้วยโหนดความสัมพันธ์ระหว่างบันทึกและคุณสมบัติของโหนด แทนที่จะเป็นตารางแถวและคอลัมน์และโครงสร้างที่เข้มงวดของ SQL รูปแบบกราฟที่มีความยืดหยุ่นถูกนำมาใช้ซึ่งสามารถปรับขนาดได้ในหลายเครื่อง
ผู้เล่น NoSQL รายใหญ่
ผู้เล่นหลักใน NoSQL ได้เกิดขึ้นเนื่องจากองค์กรต่างๆที่ได้รับการรับรอง บางส่วนของเทคโนโลยีที่ใหญ่ที่สุด NoSQL รวมถึง:
- ไดนาโม: ไดนาโมถูกสร้างขึ้นโดย Amazon.com และเป็นฐานข้อมูล NoSQL ที่มีค่าคีย์ - ค่าสูงสุด Amazon จำเป็นต้องใช้แพลตฟอร์มการเผยแพร่ที่ปรับขนาดได้มากสำหรับธุรกิจอีคอมเมิร์ซเพื่อพัฒนา Dynamo Amazon S3 ใช้ไดนาโมเป็นกลไกการเก็บข้อมูล
- คาสซานดรา: Cassandra เปิดแหล่งที่มาจาก Facebook และเป็นฐานข้อมูล NoSQL เชิงคอลัมน์
- BigTable: BigTable เป็นฐานข้อมูลเชิงคอลัมน์ที่เป็นกรรมสิทธิ์ของ Google Google อนุญาตให้ใช้ BigTable แต่สำหรับ Google App Engine เท่านั้น
- SimpleDB: SimpleDB เป็นฐานข้อมูลอื่นของ Amazon ใช้สำหรับ Amazon EC2 และ S3 เป็นส่วนหนึ่งของ Amazon Web Services ที่เรียกเก็บค่าธรรมเนียมขึ้นอยู่กับการใช้งาน
- CouchDB: CouchDB พร้อมกับ MongoDB เป็นฐานข้อมูล NoSQL แบบโอเพ่นซอร์ส
- Neo4j: Neo4j เป็นฐานข้อมูลกราฟของโอเพนซอร์ส
กำลังสอบถาม NoSQL
คำถามเกี่ยวกับวิธีการสืบค้นฐานข้อมูล NoSQL คือสิ่งที่นักพัฒนาซอฟต์แวร์ส่วนใหญ่มีความสนใจหลังจากที่ข้อมูลที่เก็บไว้ในฐานข้อมูลขนาดใหญ่ไม่ได้ทำอะไรให้ดีถ้าคุณไม่สามารถดึงข้อมูลและแสดงให้ผู้ใช้หรือผู้ให้บริการเว็บ ฐานข้อมูล NoSQL ไม่ได้มีภาษาแบบสอบถามแบบ declarative ระดับสูงเช่น SQL แต่การสอบถามฐานข้อมูลเหล่านี้เป็นข้อมูลเฉพาะของแบบจำลอง
แพลตฟอร์ม NoSQL จำนวนมากอนุญาตให้ใช้อินเทอร์เฟซ RESTful กับข้อมูล API แบบสอบถามข้อเสนออื่น ๆ มีเครื่องมือแบบสอบถามที่พัฒนาขึ้นซึ่งพยายามค้นหาฐานข้อมูล NoSQL หลายชุด เครื่องมือเหล่านี้มักทำงานในหมวด NoSQL แบบเดียว ตัวอย่างหนึ่งคือ SPARQL SPARQL เป็นข้อกำหนดแบบสอบถามที่เปิดเผยซึ่งออกแบบมาสำหรับฐานข้อมูลกราฟ ต่อไปนี้คือตัวอย่างของข้อความค้นหา SPARQL ที่ดึงข้อมูล URL ของบล็อกเกอร์ (โดยได้รับความอนุเคราะห์จาก IBM):
คำนำฟอยล์:
อนาคตของ NoSQL
องค์กรที่มีความต้องการจัดเก็บข้อมูลขนาดใหญ่กำลังมองหาอย่างจริงจังที่ NoSQL เห็นได้ชัดว่าแนวคิดนี้ไม่ได้รับผลกระทบมากนักในองค์กรขนาดเล็ก ในการสำรวจโดยสัปดาห์ข้อมูล 44% ของผู้เชี่ยวชาญด้านไอทีด้านธุรกิจไม่เคยได้ยิน NoSQL นอกจากนี้เพียง 1% ของผู้ตอบแบบสอบถามรายงานว่า NoSQL เป็นส่วนหนึ่งของยุทธศาสตร์ของพวกเขา เห็นได้ชัดว่า NoSQL มีสถานที่ในโลกที่เชื่อมต่อกันของเรา แต่จะต้องมีการพัฒนาต่อไปเพื่อให้เกิดการอุทธรณ์มวลซึ่งหลายคนคิดว่าน่าจะมี