ภาพรวมของ NoSQL
ตัวย่อ NoSQL ได้รับการประกาศเกียรติคุณในปี 2541 หลายคนคิดว่า NoSQL เป็นคำที่สร้างความเสียหายให้กับ SQL ในความเป็นจริง คำนี้หมายถึงไม่ใช่แค่ SQL แนวคิดคือเทคโนโลยีทั้งสองสามารถอยู่ร่วมกันได้และแต่ละเทคโนโลยีก็มีที่ของมัน การเคลื่อนไหวของ NoSQL เป็นข่าวในช่วงไม่กี่ปีที่ผ่านมา เนื่องจากผู้นำ Web 2.0 จำนวนมากได้นำเทคโนโลยี NoSQL มาใช้ บริษัทต่างๆ เช่น Facebook, Twitter, Digg, Amazon, LinkedIn และ Google ล้วนใช้ NoSQL ไม่ทางใดก็ทางหนึ่ง มาแยกย่อย NoSQL เพื่อให้คุณสามารถอธิบายให้ CIO หรือแม้แต่เพื่อนร่วมงานของคุณฟังได้

NoSQL โผล่ออกมาจากความต้องการ
การจัดเก็บข้อมูล: ข้อมูลดิจิทัลที่เก็บไว้ทั่วโลกมีหน่วยวัดเป็นเอกซาไบต์ เอ็กซาไบต์เท่ากับหนึ่งพันล้านกิกะไบต์ (GB) ของข้อมูล ตาม Internet.comจำนวนข้อมูลที่จัดเก็บเพิ่มในปี 2549 คือ 161 เอ็กซาไบต์ เพียง 4 ปีต่อมาในปี 2010 ปริมาณข้อมูลที่จัดเก็บจะเกือบ 1,000 ExaBytes ซึ่งเพิ่มขึ้นมากกว่า 500% กล่าวอีกนัยหนึ่ง มีข้อมูลจำนวนมากถูกจัดเก็บไว้ในโลกและจะมีการเติบโตอย่างต่อเนื่อง
ข้อมูลที่เชื่อมต่อถึงกัน: ข้อมูลยังคงเชื่อมต่อกันมากขึ้น การสร้างเว็บที่ได้รับการส่งเสริมในไฮเปอร์ลิงก์ บล็อกมี pingbacks และระบบเครือข่ายสังคมออนไลน์ที่สำคัญทุกระบบมีแท็กที่เชื่อมโยงสิ่งต่างๆ เข้าด้วยกัน ระบบหลักถูกสร้างขึ้นเพื่อเชื่อมต่อถึงกัน
โครงสร้างข้อมูลที่ซับซ้อน: NoSQL สามารถจัดการโครงสร้างข้อมูลที่ซ้อนกันแบบลำดับชั้นได้อย่างง่ายดาย ในการทำสิ่งเดียวกันใน SQL ให้สำเร็จ คุณจะต้องมีตารางเชิงสัมพันธ์หลายตารางที่มีคีย์ทุกประเภท นอกจากนี้ยังมีความสัมพันธ์ระหว่างประสิทธิภาพและความซับซ้อนของข้อมูล ประสิทธิภาพอาจลดลงใน RDBMS แบบดั้งเดิมเมื่อเราจัดเก็บข้อมูลจำนวนมหาศาลที่จำเป็นในแอปพลิเคชันเครือข่ายสังคมออนไลน์และ เว็บความหมาย.
NoSQL คืออะไร?
ฉันเดาว่าวิธีหนึ่งที่จะกำหนด NoSQL คือการพิจารณาว่ามันไม่ใช่ ไม่ใช่ SQL และไม่สัมพันธ์กัน เช่นเดียวกับชื่อที่แนะนำ มันไม่ใช่การแทนที่ RDBMS แต่เป็นการชมเชย NoSQL ได้รับการออกแบบมาสำหรับการจัดเก็บข้อมูลแบบกระจายสำหรับความต้องการข้อมูลขนาดใหญ่มาก ลองนึกถึง Facebook ที่มีผู้ใช้ 500,000,000 คนหรือ Twitter ที่รวบรวมข้อมูลเทราบิตทุกวัน
ในฐานข้อมูล NoSQL ไม่มีสคีมาคงที่และไม่มีการรวม RDBMS "ขยายขนาด" โดยรับฮาร์ดแวร์ที่เร็วขึ้นและเร็วขึ้น และเพิ่มหน่วยความจำ ในทางกลับกัน NoSQL สามารถใช้ประโยชน์จาก "การขยายขนาด" การขยายขนาดหมายถึงการกระจายโหลดไปยังระบบสินค้าโภคภัณฑ์จำนวนมาก นี่เป็นส่วนประกอบของ NoSQL ที่ทำให้เป็นโซลูชันราคาไม่แพงสำหรับชุดข้อมูลขนาดใหญ่
หมวดหมู่ NoSQL
โลก NoSQL ปัจจุบันมี 4 หมวดหมู่พื้นฐาน
-
ร้านค้าคีย์-ค่า มีพื้นฐานมาจาก กระดาษไดนาโมของ Amazon ซึ่งเขียนไว้เมื่อปี 2550 แนวคิดหลักคือการมีอยู่ของตารางแฮชซึ่งมีคีย์เฉพาะและตัวชี้ไปยังรายการข้อมูลเฉพาะ การแมปเหล่านี้มักจะมาพร้อมกับกลไกแคชเพื่อเพิ่มประสิทธิภาพสูงสุด
- คอลัมน์ Family Stores ถูกสร้างขึ้นเพื่อจัดเก็บและประมวลผลข้อมูลจำนวนมากที่แจกจ่ายผ่านเครื่องหลายเครื่อง ยังมีคีย์อยู่แต่จะชี้ไปที่หลายคอลัมน์ ในกรณีของ BigTable (โมเดล Column Family NoSQL ของ Google) แถวจะถูกระบุโดยคีย์แถวพร้อมข้อมูลที่จัดเรียงและจัดเก็บโดยคีย์นี้ คอลัมน์จัดเรียงตามตระกูลคอลัมน์
- ฐานข้อมูลเอกสาร ได้แรงบันดาลใจจาก โลตัสโน้ต และคล้ายกับร้านค้าคีย์-ค่า โมเดลนี้เป็นเอกสารที่มีการกำหนดเวอร์ชันโดยพื้นฐานแล้ว ซึ่งเป็นคอลเล็กชันของคอลเล็กชันคีย์-ค่าอื่นๆ เอกสารกึ่งโครงสร้างถูกจัดเก็บในรูปแบบเช่น JSON
- ฐานข้อมูลกราฟs ถูกสร้างขึ้นด้วยโหนด ความสัมพันธ์ระหว่างบันทึกย่อและคุณสมบัติของโหนด แทนที่จะใช้ตารางของแถวและคอลัมน์และโครงสร้างที่เข้มงวดของ SQL เราจึงใช้แบบจำลองกราฟที่ยืดหยุ่นซึ่งสามารถปรับขนาดได้ในหลายเครื่อง
ผู้เล่น NoSQL รายใหญ่
ผู้เล่นหลักใน NoSQL เกิดขึ้นเนื่องจากองค์กรที่ยอมรับพวกเขาเป็นหลัก เทคโนโลยี NoSQL ที่ใหญ่ที่สุดบางส่วน ได้แก่:
- ไดนาโม: ไดนาโมถูกสร้างขึ้นโดย Amazon.com และเป็นฐานข้อมูล Key-Value NoSQL ที่โดดเด่นที่สุด Amazon ต้องการแพลตฟอร์มแบบกระจายที่ปรับขนาดได้สูงสำหรับธุรกิจอีคอมเมิร์ซของพวกเขา ดังนั้นพวกเขาจึงพัฒนา Dynamo Amazon S3 ใช้ไดนาโมเป็นกลไกการจัดเก็บข้อมูล
- แคสแซนดรา:แคสแซนดรา เป็นโอเพ่นซอร์สโดย Facebook และเป็นฐานข้อมูล NoSQL เชิงคอลัมน์
- โต๊ะใหญ่: BigTable เป็นฐานข้อมูลเชิงคอลัมน์ที่เป็นกรรมสิทธิ์ของ Google Google อนุญาตให้ใช้ BigTable แต่สำหรับ Google App Engine เท่านั้น
- SimpleDB: SimpleDB เป็นฐานข้อมูลอื่นของ Amazon ใช้สำหรับ Amazon EC2 และ S3 ซึ่งเป็นส่วนหนึ่งของ Amazon Web Services ที่เรียกเก็บค่าธรรมเนียมขึ้นอยู่กับการใช้งาน
- CouchDB:CouchDB พร้อมกับ MongoDB เป็นฐานข้อมูล NoSQL ที่เน้นเอกสารแบบโอเพ่นซอร์ส
- นีโอ4เจ:Neo4j เป็นฐานข้อมูลกราฟโอเพ่นซอร์ส
การสืบค้น NoSQL
คำถามเกี่ยวกับวิธีการสืบค้นฐานข้อมูล NoSQL คือสิ่งที่นักพัฒนาส่วนใหญ่สนใจ ท้ายที่สุด ข้อมูลที่จัดเก็บไว้ในฐานข้อมูลขนาดใหญ่ไม่ได้ช่วยอะไรใครเลย หากคุณไม่สามารถเรียกค้นและแสดงข้อมูลดังกล่าวให้ผู้ใช้ปลายทางหรือบริการบนเว็บทราบได้ ฐานข้อมูล NoSQL ไม่ได้จัดเตรียมภาษาการสืบค้นข้อมูลระดับสูงเช่น SQL การสืบค้นฐานข้อมูลเหล่านี้เป็นแบบจำลองข้อมูลเฉพาะแทน
แพลตฟอร์ม NoSQL จำนวนมากอนุญาตให้ใช้อินเทอร์เฟซ RESTful กับข้อมูลได้ API แบบสอบถามข้อเสนออื่นๆ มีเครื่องมือสืบค้นข้อมูลสองสามรายการที่พัฒนาขึ้นซึ่งพยายามสืบค้นฐานข้อมูล NoSQL หลายฐานข้อมูล เครื่องมือเหล่านี้มักจะทำงานในหมวดหมู่ NoSQL เดียว ตัวอย่างหนึ่งคือ SPARQL SPARQL เป็นข้อกำหนดการสืบค้นแบบประกาศที่ออกแบบมาสำหรับฐานข้อมูลแบบกราฟ นี่คือตัวอย่างการสืบค้น SPARQL ที่ดึง URL ของบล็อกเกอร์เฉพาะ (มารยาทของ IBM):
PREFIX โฟม:
เลือก ?url
จาก
ที่ไหน {
?contributor foaf: ชื่อ "จอน ฟูบาร์"
?ผู้สนับสนุน foaf: เว็บล็อก ?url
}
อนาคตของ NoSQL
องค์กรที่มีความต้องการการจัดเก็บข้อมูลจำนวนมากกำลังมองหา NoSQL อย่างจริงจัง เห็นได้ชัดว่าแนวคิดนี้ไม่ได้รับแรงฉุดลากมากนักในองค์กรขนาดเล็ก ในการสำรวจที่จัดทำโดย Information Week 44% ของผู้เชี่ยวชาญด้านไอทีทางธุรกิจไม่เคยได้ยิน NoSQL นอกจากนี้ มีเพียง 1% ของผู้ตอบแบบสอบถามเท่านั้นที่รายงานว่า NoSQL เป็นส่วนหนึ่งของทิศทางเชิงกลยุทธ์ของพวกเขา เห็นได้ชัดว่า NoSQL มีที่ของมันในโลกที่เชื่อมต่อกันของเรา แต่จะต้องพัฒนาต่อไปเพื่อให้ได้รับความสนใจจำนวนมากที่หลายคนคิดว่าน่าจะมี