SQL or noSQL - Oracle Cloud Day Istanbul

Post on 23-Jan-2018

408 views 3 download

Transcript of SQL or noSQL - Oracle Cloud Day Istanbul

SQL OR NOSQLGökhan Atıl

GÖKHAN ATIL

➤ Database Administrator

➤ Oracle ACE Director (2016)ACE (2011)

➤ 10g/11g and R12 OCP

➤ Founding Member and Vice President of TROUG

➤ Co-author of Expert Oracle Enterprise Manager 12c

➤ Blogger (since 2008) gokhanatil.com

➤ Twitter: @gokhanatil

2

WHAT IS NOSQL DATABASE?

➤ non Relational databases

➤ Not Only SQL (SQL is not mandatory)

➤ Existed before relational databases!

➤ NoSQL name is obtained after the web 2.0 wave(Amazon, Facebook, Google)

➤ Schema-less or Flexible schema

➤ Easy sharding (Horizontally Scalable)

➤ Simple API (for developers)

➤ BASE instead of ACID

3

CAP THEOREM

4

ACID BASE

➤ Atomicity: All or Nothing

➤ Consistency: The constraints won't be violated

➤ Isolation: No dirty reads

➤ Durability: Survive system failures

5

➤ Basically Available: The servers are available but the data may be stale

➤ Soft state: State of the system may change over time, even without input

➤ Eventual Consistency: The system will become consistent over time

NOSQL DATABASES

➤ Key/Value (KV) Store

➤ Document Store

➤ (Wide) Column Family

➤ Graph Databases

➤ Others

Object Databases

XML Databases

Multimodel Databases

6

} Different Databases

for Different

Requirements

KEY/VALUE (KV) STORE

➤ Collection of Key/Value pairs

➤ Inspired by Amazon's DynamoDB (now supports documents)

➤ Redis, Oracle's Berkeley DB * check my blog post

➤ Designed to handle high load

➤ In memory (cache systems)

7

DOCUMENT STORE

➤ Similar to Key/Value store but value is a JSON or BSON document

➤ JSON: JavaScript Object Notation, BSON: Binary JSON

➤ Inspired by Lotus Notes

➤ MongoDB, CouchDB

8

COLUMN FAMILY

➤ Rows do not need to contain the same columns

➤ Inspired by Google BigTable

➤ Cassandra, HBase

9

GRAPH DATABASE

➤ Nodes are the main data elements

➤ Nodes are connected to other nodes via relationships

➤ Neo4j, InfiniteGraph

➤ Supports ACID

10

11

SHOULD I USE SQL (RDBMS) OR NOSQL DATABASE?

ASK YOURSELF

1. Do you want to use dummy databases? No constraints, No stored procedures, and all business rules on application layer?

2. Don't you really need ACID support?

3. Do you prefer schema-less structures? What about data modelling, normalization, ETL processes, BI reports?

4. Are you sure that the feature you need is only available on NoSQL databases?

5. Scalability is important but are you ready for complex and distributed database layer?

6. Do you have required DBA resources to manage NoSQL?

7. Did you do performance tests on your NoSQL solution and compare with other solutions?

12

Blog: www.gokhanatil.com Twitter: @gokhanatil