![Page 1: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/1.jpg)
NoSQL Databases
Oracle - Berkeley DB
![Page 2: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/2.jpg)
Content
A brief intro to NoSQL
About Berkeley Db
About our application
![Page 3: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/3.jpg)
3
???
![Page 4: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/4.jpg)
What is NoSQL?
• Stands for Not Only SQL
• Class of non-relational data storage systems
• Usually do not require a fixed table schema nor do they use the concept of joins, group by, order by and so on.
• All NoSQL offerings relax one or more of the ACID properties.
![Page 5: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/5.jpg)
What is NoSQL ?
• Next generation databases
• Characteristic:
– Large Data Volumes
– Non-relational
– Distributed
– Open-source
– Scalable replication and distribution
![Page 6: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/6.jpg)
CAP Theorem
![Page 7: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/7.jpg)
8
History of NoSQL
• The term NoSQL was introduced by Carl Strozzi in 1998 to name his file based database.
• It was again re-introduced by Eric Evans when an event was organized to discuss open source distributed databases.
![Page 8: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/8.jpg)
Why NoSQL Databases ?
• Bigness
• Massive write performance
• Fast key-value access
• Flexible schema and Flexible data types
• No single point of failure
• Programming ease of use
![Page 9: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/9.jpg)
![Page 10: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/10.jpg)
![Page 11: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/11.jpg)
12
Scaling to size vs complexity.
![Page 12: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/12.jpg)
![Page 13: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/13.jpg)
![Page 14: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/14.jpg)
Berkeley DB - Introduction
• An open-source, embedded transactional data management system.
• A key/value store.
• Runs on everything from cell phone to large servers.
• Distributed as a library that can be linked directly into an application.
• Berkeley DB has high reliability and high performance.
![Page 15: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/15.jpg)
Berkeley DB Product Family Architecture
![Page 16: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/16.jpg)
Berkeley DB: The Design Philosophy
• Provide mechanisms without specifying policies.
• For example, Berkeley DB is abstracted as a store of <key, value> pairs.
– Both keys and values are opaque byte-strings.
– Berkeley DB has no schema.
– Application that embeds Berkeley DB is responsible for imposing its own schema on the data.
![Page 17: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/17.jpg)
Data Access Services
• Indexing methods
– B-Tree
– Hash
– Queue
– A record-number-based index
![Page 18: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/18.jpg)
Advantages of <key, value> pairs
• An application is free to store data in whatever form is most natural to it.
– Objects (like structures in C language)
– Rows in Oracle, SQL Server
– Columns in C-store
• Different data formats can be stored in the same databases.
![Page 19: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/19.jpg)
Data Management Services
Concurrency
Transactions
Recovery
![Page 20: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/20.jpg)
Berkeley DB Applications
• Local Directory Access Protocol
• Mail Servers
• Manage access control lists
• Store user keys in a public-infrastructure
• Record machine-to-network address mappings in address servers
![Page 21: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/21.jpg)
![Page 22: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/22.jpg)
![Page 23: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/23.jpg)
![Page 24: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/24.jpg)
Berkeley DB for Computationally Intensive
Algorithms• Algorithms that repeatedly execute a
computationally intensive operation– E.g. Factorial
• Useful to create a cache containing the already computed results– Cache = Set of <key,value> pairs containing <n,
factorial(n)>
• Advantages:– avoid to re-compute results for the same input (even
over different executions) – In a process crash, we can still start again the process
and quickly go back to the point where it stopped
![Page 25: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/25.jpg)
• In memory map• Simple• Very efficient (b/s in completely memory)• Need considerable amount of memory• No fault tolerance (We need to manually save data to a file)• Relation Databases• ACID properties may not be necessary• Cannot handle Big data • Slow• NoSQL databases (Berkeley DB)• Fast key-value access• Flexible schema and Flexible data types• Ease of use• Fault tolerance
![Page 26: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/26.jpg)
Berkeleydb.java
![Page 27: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/27.jpg)
• Open Environment:• EnvironmentConfig class specify environment configuration parameters
• Open Class Catalog: • Class catalog : specialized database store that contain
java class descriptions of all serialized objects stored in the database
• Create Database and StoredClassCatalog object
![Page 28: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/28.jpg)
![Page 29: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/29.jpg)
• Open Database:
• Close Environment, Class Catalog and Databases:
![Page 30: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/30.jpg)
DBViews.java
![Page 31: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/31.jpg)
Factorial.java
![Page 32: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/32.jpg)
![Page 33: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/33.jpg)
![Page 34: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/34.jpg)
![Page 35: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/35.jpg)
![Page 36: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/36.jpg)
Factorial (Berkeley DB ) – Memory Usage
![Page 37: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/37.jpg)
Factorial (MySQL) – Memory Usage
![Page 38: NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application](https://reader037.vdocuments.net/reader037/viewer/2022103100/56649eb75503460f94bc1611/html5/thumbnails/38.jpg)
Factorial (HashMap) – Memory Usage