In: Computer Science
(1) Explain program-data independence.
(2) Explain what advantages NoSQL approaches have over traditional DBMS solutions.
(3) One company has many departments. A department has many cars and many employees. An employee can loan his/her department’s car for a business trip. Every department needs to keep track the car rental history including “start date”, “return date”, “start mileage”, and “end mileage”. Design an ERD based on above requirements. Please identify (strong and weak) entities, attributes, and (identifying and non-identifying) relationships clearly.
1. Program-data independence
Program data independence is a type of data transparency that refers to the immunity of changes made to users applications and their definition and organization of data. Program data independence matters for a database management system
2. NoSQL vs DBMS
Database Management System (DBMS)
DBMS Database is a relational database. It is the standard language for database management systems. Data is stored in the form of rows and columns in DBMS. The relations among tables are also stored in the form of the table SQL (Structured Query Language) is a programming language used to perform tasks such as update data on a database, or to retrieve data from a database. Some common relational database management systems that use SQL are Oracle, Sybase, Microsoft SQL Server, Access, etc.
Features Of DBMS
Limitations for SQL database
Scalability: Users have to scale relational database on powerful servers that are expensive and difficult to handle. To scale relational database it has to be distributed on to multiple servers. Handling tables across different servers is difficult.
Complexity: In SQL server’s data has to fit into tables anyhow. If your data doesn’t fit into tables, then you need to design your database structure that will be complex and again difficult to handle.
NoSQL
NoSQL commonly referred to as “Not Only SQL”. With NoSQL, unstructured, schema-less data can be stored in multiple collections and nodes and it does not require fixed table sachems, it supports limited join queries , and we scale it horizontally.
Benefits of NoSQL
highly and easily scalable
Relational database or RDBMS databases are vertically Scalable When load increase on RDBMS database then we scale database by increasing server hardware power, need to by expensive and bigger servers and NoSQL databases are designed to expand horizontally and in Horizontal scaling means that you scale by adding more machines into your pool of resources.
Maintaining NoSQL Servers is Less Expensive
Maintaining high-end RDBMS systems is expensive and need trained manpower for database management but NoSQL databases require less management. it supports many Features like automatic repair, easier data distribution, and simpler data models make administration and tuning requirements lesser in NoSQL.
Lesser Server Cost and open-Source
NoSQL databases are cheap and open source. NoSql database implementation is easy and typically uses cheap servers to manage the exploding data and transaction while RDBMS databases are expensive and it uses big servers and storage systems. So the storing and processing data cost per gigabyte in the case of NoSQL can be many times lesser than the cost of RDBMS.
No Schema or Fixed Data model
NoSQL database is schema-less so Data can be inserted in a NoSQL database without any predefined schema. So the format or data model can be changed any time, without application disruption.and change management is a big headache in SQL.
Support Integrated Caching
NoSQL database supports caching in system memory so it increases data output performance and SQL database where this has to be done using separate infrastructure.
Limitations & disadvantage of NoSQL
3. ER Diagram
Weak entities: History
Strong entities: Car, Employee, Department ( here the department name can be a primary key, but it is better to include an id for the department and use the same as primary key)
The entity set which does not have sufficient attributes to form a primary key is called a weak entity set.
An entity set that has a primary key is called a Strong entity set.