background preloader

NoSQL

NoSQL
"Structured storage" redirects here. For the Microsoft technology also known as structured storage, see COM Structured Storage. A NoSQL (often interpreted as Not Only SQL[1][2]) database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Motivations for this approach include simplicity of design, horizontal scaling and finer control over availability. The data structure (e.g. key-value, graph, or document) differs from the RDBMS, and therefore some operations are faster in NoSQL and some in RDBMS. There are differences though, and the particular suitability of a given NoSQL DB depends on the problem it must solve (e.g. does the solution use graph algorithms?). History[edit] There have been various approaches to classify NoSQL databases, each with different categories and subcategories. A more detailed classification is the following, by Stephen Yen:[9] Performance[edit] Examples[edit] Graph[edit]

NewSQL NewSQL is a class of modern relational database management systems that seek to provide the same scalable performance of NoSQL systems for online transaction processing (OLTP) read-write workloads while still maintaining the ACID guarantees of a traditional database system.[1][2][3] History[edit] The term was first used by 451 Group analyst Matthew Aslett in a 2011 research paper discussing the rise of new database systems as challengers to established vendors.[1] Many enterprise systems that handle high-profile data (e.g., financial and order processing systems) also need to be able to scale but are unable to use NoSQL solutions because they cannot give up strong transactional and consistency requirements. [1][4] The only options previously available for these organizations were to either purchase a more powerful single-node machine or develop custom middleware that distributes queries over traditional DBMS nodes. Systems[edit] New architectures[edit] SQL Engines[edit] See also[edit]

Easy Keys - OWL Background Keys (aka, inverse functional datatype properties) are clearly of vital importance to many applications. Key reasoning in general in the context of OWL can be unfeasibly difficult (given what we currently know and anticpate). However, general inverse functional properties are almost always overkill. Basic details Easy Keys should be: Useful enough to be worth specifying Low impact on implementations Clear enough to specify Often, applications merely require a key checking on explicit data (i.e., named individuals and known key values). Keys in general have (or may have) the following properties Missing key values raise an error (optional; non first order) Functionality constraints on keys (optional) If X and Y have the same key values y, then X=Y. The first feature is not expressible directly in first order logic, thus not in OWL or OWL + DL Safe rules. keyProperty(X, Z), keyProperty(Y, Z) -> X = Y. keyProperty(X, K), keyProperty(Y, K), aClass(X), aClass(Y) -> X = Y. Syntax or

The end of SQL and relational databases? (part 1 of 3) The road to SQL started with Dr. E.F. Codd's paper, "A Relational Model of Data for Large Shared Data Banks", published in Communications of the ACM in June 1970. His colleagues at IBM, Donald Chamberlin and Raymond Boyce were working on a query language (originally named SQUARE, Specifying Queries As Relational Expressions) that culminated in the 1974 paper, "SEQUEL: A Structured English Query Language". Since that time, SQL has become the dominant language for relational database systems. In recent years, frameworks and architectures have arrived on the programming scene that attempt to hide (or completely remove) the use of SQL and relational databases allowing developers to focus even more on user interfaces, business logic and platform support in our application development. The "NoSQL movement" and Cloud based data stores are striving to completely remove developers from a reliance on the SQL language and relational databases. Programming is Life! Recent news for developers:

Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Couchbase vs Hypertable vs ElasticSearch vs Accumulo vs VoltDB vs Scalaris comparison :: Software architect Kristof Kovacs While SQL databases are insanely useful tools, their monopoly in the last decades is coming to an end. And it's just time: I can't even count the things that were forced into relational databases, but never really fitted them. (That being said, relational databases will always be the best for the stuff that has relations.) But, the differences between NoSQL databases are much bigger than ever was between one SQL database and another. In this light, here is a comparison of Open Source NOSQL databases: The most popular ones # Redis # Best used: For rapidly changing data with a foreseeable database size (should fit mostly in memory). For example: To store real-time stock prices. Cassandra # Written in: JavaMain point: Store huge datasets in "almost" SQLLicense: ApacheProtocol: CQL3 & ThriftCQL3 is very similar to SQL, but with some limitations that come from the scalability (most notably: no JOINs, no aggregate functions.)CQL3 is now the official interface. MongoDB # ElasticSearch # CouchDB #

Blogs - The 451 Group Database normalization Normalization involves refactoring a table into smaller (and less redundant) tables but without losing information; defining foreign keys in the old table referencing the primary keys of the new ones. The objective is to isolate data so that additions, deletions, and modifications of an attribute can be made in just one table and then propagated through the rest of the database using the defined foreign keys. Edgar F. Codd, the inventor of the relational model (RM), introduced the concept of normalization and what we now know as the First normal form (1NF) in 1970.[1] Codd went on to define the Second normal form (2NF) and Third normal form (3NF) in 1971,[2] and Codd and Raymond F. Boyce defined the Boyce-Codd Normal Form (BCNF) in 1974.[3] Informally, a relational database table is often described as "normalized" if it is in the Third Normal Form.[4] Most 3NF tables are free of insertion, update, and deletion anomalies. Objectives[edit] 1. An update anomaly. An insertion anomaly.

Infomous Why We Migrated from MongoDB to Riak Recommended Links Like this piece? Share it with your friends: Powering hundreds of thousands of clicks and shares and hundreds of millions of pageviews every month, Shareaholic found itself needing to scale up it's big data architecture. Learn why we chose Riak, what it does for us, and how we imported 100 gigabytes of data from a live Mongo database while maintaining data consistency and zero downtime. I'll discuss the things that went smoothly and the things I'd do differently next time. About the author: Robby leads tech at Shareaholic in Cambridge, MA.

PL/SQL Tutorial- PL/SQL Triggers For Example: The price of a product changes constantly. It is important to maintain the history of the prices of the products. We can create a trigger to update the 'product_price_history' table when the price of the product is updated in the 'product' table. 1) Create the 'product' table and 'product_price_history' table CREATE TABLE product_price_history (product_id number(5), product_name varchar2(32), supplier_name varchar2(32), unit_price number(7,2) ); CREATE TABLE product 2) Create the price_history_trigger and execute it. CREATE or REPLACE TRIGGER price_history_trigger BEFORE UPDATE OF unit_price ON product INSERT INTO product_price_history (:old.product_id, :old.product_name, :old.supplier_name, :old.unit_price); 3) Lets update the price of a product. UPDATE PRODUCT SET unit_price = 800 WHERE product_id = 100 Once the above update query is executed, the trigger fires and updates the 'product_price_history' table. Types of PL/SQL Triggers PL/SQL Trigger Execution Hierarchy (Message varchar2(50), Begin

Related: