Exploring NoSQL: Evolution and Challenges in Database Technology
This content delves into the evolution and challenges of NoSQL (Not Only SQL) databases, highlighting its history, popularity, properties, applications, and comparisons with traditional RDBMS systems. It discusses the need for NoSQL due to factors like scalability, high velocity data ingestion, and schema-less data. The content also outlines the key properties of NoSQL systems, such as being non-relational, schema-free, distributed, and designed for web scale. Various real-world applications of NoSQL in companies like Google, Amazon, Facebook, and Twitter are explored. Additionally, the content touches on the CAP theorem, categories of NoSQL databases, and upcoming trends.
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
University of Kurdistan Faculty of Engineering Department of Computer & IT Engineering NoSQL NoSQL NotOnlySQL Asoo Mafakheri Moslem Parvizpour
Contents Introduction Comparison Challenges Property Application CAP Theorem Categories Implementation 2/25/2025 NoSQL 2
Introduction NOSQL stands for Not only SQL No Relational No RDBMS Not Use SQL History 1998: Carlo Strozzi 2000-2008: Neo4j , 2009: Eric Evans EricEvans Carlo Strozzi 2/25/2025 NoSQL 3
Popularity DB-Engines Ranking Oracle (RDBMS) MySQL (RDBMS) SQL Server (RDBMS) PostgreSQL (RDBMS) MongoDB (Document Store) Redis (Key-Value) Elasticsearch (Search Engine) Cassandra (Column Store) Splunk (Search Engine) HBase (Column-Store) Neo4j (Graph DBMS) CouchDB (Document Store) OrientDB (Graph, Key, Doc) LevelDB (Key-Value) 2/25/2025 NoSQL 4
Question? NoSQL 2/25/2025 NoSQL 5
Challenges with traditional RDBMS Not optimized for horizontal scaling out Scalability Vertically (or Scale Up) Horizontally (or Scale Out) High velocity of data ingestion Schema-Less data Documentdatabase Cost Basic Insert Operation 180 160 140 SQL Mongo 120 Seconds 100 80 60 ? 40 20 0 100 5,000 25,000 50,000 Row Insert 2/25/2025 NOSQL 6
Property Non Relational Schema Free Distributed Web Scale Design to store Volome Varied BASE Basically Available Soft State Eventually Consistent ACID Atomicity Consistency Isolation Durability 2/25/2025 NoSQL 7
Application Company Company Company SQL SQL NOSQL NOSQL SQL NOSQL Google Google Google BigTable, LevelDB Amazon Amazon Amazon Dynamo Facebook Facebook Facebook Cassandra Twitter Twitter Twitter HBase, FlockDB, Cassandra LinkedIn LinkedIn LinkedIn Voldemort Netflix Netflix Netflix SimpleDB, HBase, Cassandra 2/25/2025 NoSQL 8
Question? NoSQL 30% SQL 70% 2/25/2025 NoSQL 9
CAP Theorem Availability . Pick 2 Consistency Partition Tolerance . . 2/25/2025 NoSQL 10
CAP Theorem A CA AP RDBMSs: Oracle, Postgre) (MySQL, SQL Server, Vertica Dynamo Voldemort Cassandra SimpleDB CouchDB Riak Pick 2 C P CP MongoDB Terrastore Redis BigTable HyperTable HBase 2/25/2025 NoSQL 11
Categories DBMS SQL(Relational DBMS) NoSQL Key-value Document-Based Column-Based Graph-Based 2/25/2025 NoSQL 12
Categories Dynamo Voldemort Key-Value Column NOSQL Graph Document 2/25/2025 NoSQL 13
Categories HyperTable Dynamo HBase Redis Cassandra Key-Value Column Key Value Voldemort NOSQL FlockDB Ali name Graph Document email ali.rad@gmail.com Riak Neo4j CouchDB OrientDB age 68 MongoDB 2/25/2025 NoSQL 14
Categories HyperTable Dynamo Key <Document> HBase Redis { Cassandra { "Title": "", "Author": "", "Date": 2012" } } Key-Value Column Voldemort NOSQL FlockDB Graph Document Riak Neo4j CouchDB OrientDB MongoDB 2/25/2025 NoSQL 15
Relational Articles Comment 1 Title Comment 1 1 2 1 Comment 2 Title 3 1 Comment Comment 4 2 Document 1 Title Comment Comment Comment 1 Title Comment 2/25/2025 NoSQL 16
Categories HyperTable Dynamo HBase Redis Cassandra Key-Value Column Voldemort NOSQL FlockDB Age Name 101 Graph Document Reza 39 Riak Neo4j Email Name Tel CouchDB 104 OrientDB Ali ali.rad@gmail.com +98-111-222-3333 MongoDB 2/25/2025 NoSQL 17
Categories HyperTable Dynamo HBase Redis Cassandra Key-Value Column Voldemort NOSQL FlockDB Graph Document Riak Neo4j CouchDB OrientDB MongoDB 2/25/2025 NoSQL 18
CAP Theorem A CA AP RDBMSs: Oracle, Postgre) (MySQL, SQL Server, Vertica Dynamo Voldemort Cassandra SimpleDB CouchDB Riak Pick 2 C P Data Models: Relational Key-Value Column-Oriented Document-Oriented CP MongoDB Terrastore Redis BigTable HyperTable H Base 2/25/2025 NoSQL 19
CAP Theorem AP CA A Dynamo Voldemort Cassandra SimpleDB CouchDB Riak RDBMSs: Oracle, Postgre) (MySQL, SQL Server, Vertica Pick 2 P C Data Models: Relational Key-Value Column-Oriented Document-Oriented CP MongoDB Terrastore Redis BigTable HyperTable H Base 2/25/2025 NoSQL 20
Rated different categories Scalability Performance Flexibility Complexity Functionality Key-value high high high none Variable (none) Column High high moderate low minimal Document high Variable (high) high low Variable (low) Graph variable variable high high Graph theory Relational variable variable low moderate Relational algebra 2/25/2025 NoSQL 21
Question? Are you Google? Yes Couch Mongo RDBMS HBase FlockDB Neo4j Riak Yes Yes Yes Yes No No No Embedded? Bad Network? Device cluster? No you don t? What about Facebook? Do you have a social Graph? Are you twitter? No Yes No Yes No Do you need high Availability? Is your data Structured? Do you need Web Scale? No No Yes 2/25/2025 NoSQL 22
ORM vs ODM Object-relational mapping (ORM) Converting data between Provide CRUD operation Object-document mapping (ODM) 2/25/2025 NoSQL 23
Differences NoSQL (MongoDB) RDBMS vs Data base >> Data base Table,View >> Collection Row >> Document(BSON) Column >> Field Index >> Index Join >> Embedded Document Foreign Key >> Reference Partition >> Shard 2/25/2025 NoSQL 24
JSON JavaScript Object Notation (JSON) A lightweight text based data-interchange format Completely language independent A subset of JavaScript Not a document format Using for Data Modeling in NoSQL document-based databases CouchDB OrientDB MongoDB 2/25/2025 NoSQL 25
JSON XML JSON <books> <book> </book> </books> { "Book": { "Title": "A Man Called Ove", "Author": "Fredrik Backman", "Date": 2012" }, { "Title": "Der Engel schwieg", "Author": "Heinrich B ll", "Date": 1992" } } <book> </book> <title>A Man Called Ove</title> <author>Fredrik Backman</author> <date>2012</date> <title>Der Engel schwieg</title> <author>Heinrich B ll</author> <date>1992</date> 2/25/2025 NoSQL 26
CouchDB CouchDB is easy to use Document-Based HTTP-Based REST API Download from: http://couchdb.apache.org/ 2/25/2025 NoSQL 27
CouchDB Futon Control Panel http://localhost:5984/_utils/ HTTP: cURL 2/25/2025 NoSQL 28
cURL Command line tool for transferring data with URLs Supports: DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Telnet and TFTP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, HTTP/2, cookies, user+password authentication (Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos), file transfer resume, proxy tunneling and more. 2/25/2025 NoSQL 29
cURL Flags -X Flag -H Flag -d Flag -O Flag 2/25/2025 NoSQL 30
HTTP Request Verbs POST - upload file GET - reads records PUT creates & updates a record DELETE - deletes a record 2/25/2025 NoSQL 31
Create & Delete Database using cURL Hello CouchDB Creating a Database Deleting a Database List of All Databases curl http://127.0.0.1:5984/ curl -X PUT http://127.0.0.1:5984/database_name curl -X DELETE http://127.0.0.1:5984/database_name curl -X GET http://127.0.0.1:5984/_all_dbs 2/25/2025 NoSQL 32
Document CRUD using cURL Creating a Document: curl -X PUT http://127.0.0.1:5984/database_name/document_id -d ' { document} ' Get a Document: curl -X GET http://127.0.0.1:5984/database_name/document_id Updating Documents: curl -X PUT http://127.0.0.1:5984/database_name/document_id/ -d '{ "field" : "value", "_rev" : "revision id" } Deleting Documents: curl -X DELETE http://127.0.0.1:5984/database_name/database_id?_rev 2/25/2025 NoSQL 33
Attaching Files using cURL curl -vX PUT http://127.0.0.1:5984/database_name/database_id /filename?rev=document rev_id --data-binary @filename -H "Content-Type:type of the content" 2/25/2025 NoSQL 34
Reference 2/25/2025 NoSQL 35