Skip to main content

Why Nooooo SQL .........???

                     
 Relational databases have been around for many decades and are the database technology of choice for most traditional data-intensive storage and retrieval applications. Retrievals are usually accomplished using SQL, a declarative query language. Relational database systems are generally efficient unless the data contains many relationships requiring joins of large tables. Recently there has been much interest in data stores that do not use SQL exclusively, the so called NoSQL movement. Examples are Google’s BigTable and Facebook’s Cassandra. Lets have a look at NoSQL vs MySQL (common relational database system).
 

When to go for  NOSQL ??

In recent years, software developers have been investigating storage alternatives to relational databases. NoSQL is a blanket term for some of those new systems. Cassandra,BigTable, CouchDB, Project Voldemort, and Dynamo are all NoSQL projects, as they are all high-volume data stores that actively reject the relational and object-relational models.

Atomicity, consistency, isolation, and durability (ACID) are a set of governing principles of the relational model. Together, they guarantee database reliability. NoSQL rejects ACID.

The term “NoSQL,” as a term for modern web data stores,first began to gain popularity in early 2009. It is a topic that has gained recognition from the IT community but has yet to garner large-scale academic study. Still, the NoSQL movement has its own discussion groups, blogs, and conferences.

As the typical database administrator attempts to question whether to move from the relational model to a NoSQL model, the NoSQL community presents him or her with potential flags that the data might be more suitable for a NoSQL system.
  1. Having tables with lots of columns, each of which is only used by a few rows.
  2. Having attribute tables.
  3. Having lots of many-to-many relationships.
  4. Having tree-like characteristics.
  5. Requiring frequent schema changes.


Comments

Popular posts from this blog

How MongoDB survives From SQL or Query Injection

As We know SQL injection  is one of the most famous way people try to hack the SQL based applications.I came to know about interesting thing how  MongoDB  survives from this SQL injection while reading the mongodb docs. For SQL based applications most of the drivers support accessing SQL data using query as String which makes the access vulnerable. For Example in Java we use to get the data from SQL as follows, String query = "SELECT ZipCode,State FROM zipcodes WHERE City = '+city+' AND State = '+state+'"; connection = DriverManager.getConnection(jdbcurl, username, password); Statement stmt = connection.createStatement(); ResultSet rs = stmt.executeQuery(query); In case of MongoDB there is no vulnerability because all the drivers creates a BSON object for the given Query instead of calling the DB as a string itself. For MongoDb in Java QueryBuilder is used to build Queries for accesing MongoDb Data, DBObject query = QueryBu

Three Database Revolutions

There are three database revolutions that happened so far.   The first revolution was driven by the emergence of the electronic computer. The second revolution by the emergence of the relational database. The third revolution has resulted in an explosion of non-relational database alternatives driven by the demands of modern applications that require global scope and continuous availability. Lets have a look on these three waves of database technologies and discuss the market and technology forces leading to today’s next generation databases. 1950-1972 (Pre - Relational) 1951 - Magnetic Tape 1952 - Magnetic Disk 1961 - ISAM 1965 - Hierarchical Model 1968 - IMS 1969 - Network Model 1971 - IDMS 1972 - 2005 (Relational) 1970 - Codd's Paper 1974 - System R 1978 - Oracle 1980 - Commercial Ingres 1981 - Informix 1984 - DB2 1987 - Sybase 1989 - Postgres 1989 - SQL Server 1995 - MySQL 2005 - 2015 ( The Next Generation)  2003 - MarkLogic 2004 - Map

Comparison of Popular NoSql databases (MongoDb,CouchDb,Hbase,Neo4j,Cassandra)

There are many SQL databases so far.But i personally feel the 15 years history of SQL coming to an end as everyone is moving to an era of BigData . As experts say SQL databases are not a best fit for Big Data No Sql databases came into picture as a best fit for this which provides more flexibility in storing data. I just want to compare few popular NoSql databases that are available at this point of time.Few well known NoSql databases are MongoDb Cassandra Hbase CouchDb Neo4j NoSql databases differ each other more than the way Sql databases differ from each other.I think its one's responsibility to choose the appropriate NoSql database for their application based on their use case.Lets do a quick comparison of these databases. MongoDb Written in  :  c++ Main point : Retains some friendly  properties of SQL (Query, Index) Licence : AGPL(Drivers : Apache) Protocol : BSON (Binary JSON) Replication : Master/Slave Replication  and automatic failover via Replica Se