I was very confused, I think NoSQL == Not Only SQL == Not Only RDBMS. so why nosql dbms not include hierarchical and network dbms?
So, what's NoSQL?
Thinks.
Related
it seems that databases can be divided into relational dBs also called SQL databases and NoSQL databases. My question is where do in-memory-databases fit into this picture? I only find in-memory-databases use the main memory as data storage instead of the disk storage. Can both relational and NoSQL Databases use this in-memory-technology ?
Thank you !
SQL/NoSQL refers to the DB type while in-memory relates to where the data is physically stored. The two are orthogonal (unrelated), meaning, any DB regardless if it's SQL/NoSQL can be ran both in-memory or on disk.
Do hibernate work with normalized databases? If not, then there comes the lack of redundancy and optimization in the db design. Then how can i achieve optimization in db systems where we use hibernate ?
It seems now that Google bet on NewSql solutions for big data storages.
I'm wondering if there is still some advantages of a NoSql solution comparing to a newSql solution ? (Like memory managment or others things)
NewSql databases are a new "strain" of databases if you will that are attempting to take the long established benefits of the traditional Relationl Database Management System (RDBMS) and make it compete with the highlights of NoSql data stores. They are not updates or improvements to RDBMS but more often rewrites that include middleware that abstracts the practice of database "sharding" or the ability to distribute a database over a grid of computers like NoSql does.
The power of the RDBMS comes mostly from queryability via the Structured Query Language (SQL), their transactionality and adhereance to the ACID principal (Atomicity, Consistency, Isolation, Durability) and the powerful tools developed over time to manage them. A lesser benefit comes from the fact that the relational model eliminates repetitive storage of the same information in multiple places.
The benefits of the NoSql is high speed, the ability to scale laterally across a comuting grid, and the lack of schema to maintain. This makes them very highly performant even against hugh data stores. But they lack the benefits that you get from the traditional RDBMS in that the query language to manipulate data isn't really there (yet), they can't be transactional across a computing grid, and they lack the tools to work against them like MS Sql Server Management Studio.
NewSql is attempting to take the best parts of both worlds and I think it eventually will. Here is a great write up of the RDBMS V.s. NoSql V.s. NewSql on bananagunprogramming.com.
I am a newbie in NoSQL databases and this may sound a bit stupid but I was wondering if NoSQL databases use or need indexes?
If yes, how to make or manage them? any links?
Thanks
CouchDB and MongoDB definitely yes. I mentioned that in my book:
http://use-the-index-luke.com/sql/testing-scalability/response-time-throughput-scaling-horizontal
Here are the respective docs:
http://guide.couchdb.org/draft/btree.html
http://www.mongodb.org/display/DOCS/Indexes
NoSQL is, however, too fragmented to give a definite "yes, all NoSQL systems need indexes", I believe. Most systems require and provide indexes but not at level most SQL databases do. Recently, the Cassandra people were proudly introducing secondary indexes, i.e., more than a single clustered index.
http://www.datastax.com/dev/blog/whats-new-cassandra-07-secondary-indexes (well, not so recently as I remember)
Definitely nosql databases need index,
i.e. but in most popular databases you need not to maintain index by yourself because as per current needs of nosql databases communities of nosql databases is developing with new features and with "Code Less, Get More"
Is there any different between these two kind of database? If yes, what is the different? Thank you.
The question isn't really answerable because "RDBMS" and "column-oriented" refer to very different aspects of a DBMS and are not mutually exclusive.
A RDBMS is any DBMS that implements the relational model.
A column-oriented DBMS is any DBMS that uses a columnar storage for data. That could be an RDBMS or it could be something else.
A column-oriented database is typically used for data warehouses and where you need to aggregate large amounts of data. It can be substantially different than a 'typical' transactional database.
Is this this what you are desiring to build (a data warehouse)?
When the column-oriented DBMS supports SQL, it replaces the SQL schema internally with a fully normalised version. Therefore performance considerations in the design of the schema that usually apply to traditional RDBMS no longer apply.