ASSIGNMENT 3 - abeerafatima/learning-database GitHub Wiki
WHAT IS RELATIONAL DATABASE?
A relational database is a collection of data items organized as a set of formally-described tables from which data can be accessed or reassembled in many different ways without having to reorganize the database tables.
ADVANTAGEOUS:
-
Ease of use:
-
Flexibility:
-
Precision:
-
Security:
-
Data Independence:
-
Data Manipulation Language:
DISADVANTAGEOUS:
- Performance:
- Physical Storage Consumption:
- Slow extraction of meaning from data:
WHAT IS NON RELATIONAL DATABASE?
A non-relational database is a database that does not incorporate the table/key model that relational database management systems (RDBMS) promote. These kinds of databases require data manipulation techniques and processes designed to provide solutions to big data problems that big companies face. The most popular emerging non-relational database is called NoSQL. ADVANTAGES:
-
No Fixed Schema :
-
Ability to handle big data better :
-
Lesser server cost :
-
Customer support :
-
Process data faster then RDB:
DISADVANTAGES:
(1) Compromised reliability
(2) Compromised consistency
(3) Use different Query language then RDB(BigTable,MongoDB,CouchDB)
(4) Less Security
(5) Lack of reporting tools
SQL vs NoSQL:
SQL databases are primarily called as Relational Databases (RDBMS); whereas NoSQL database are primarily called as non-relational or distributed database.
SQL databases are table based databases whereas NoSQL databases are document based, key-value pairs, graph databases or wide-column stores.
SQL databases have predefined schema whereas NoSQL databases have dynamic schema for unstructured data.
SQL databases are vertically scalable whereas the NoSQL databases are horizontally scalable.
SQL database examples: MySql, Oracle, Sqlite, Postgres and MS-SQL. NoSQL database examples: MongoDB, BigTable, Redis, RavenDb, Cassandra, Hbase, Neo4j and CouchDb.
SQL databases are good fit for the complex query intensive environment whereas NoSQL databases are not good fit for complex queries.
SQL databases are not best fit for hierarchical data storage. But, NoSQL database fits better for the hierarchical data storage.
SQL databases are best fit for heavy duty transactional type applications, While you can use NoSQL for transactions purpose, it is still not comparable and sable enough in high load and for complex transactional applications.
On a high-level, we can classify SQL databases as either open-source or close-sourced from commercial vendors. NoSQL databases can be classified on the basis of way of storing data as graph databases, key-value store databases, document store databases, column store database and XML databases.