Cars4u Database System
Introduction
Digital database systems are essential entities of our daily life in our modern world. A database is a collection of data and information that is intended to live for a long time. The data is usually organized and structured for ease of access, modification, updating, and even deleting (Elmasri and Navathe,2017).
A database management system(DBMS) is computer software that is used to create and manage databases, and creating and managing the users of the database to ensure security, ease of access, and ease of modification of the data. Users can use forth generation query languages such as Serial Query Language(SQL) and graphical user interface(GUI) tools to manage the databases in the DBMS.Examples of DBMS include MySQL, SQL Server, PostgreSQL ,Oracle, dBASE and FoxPro.
Discussion
DBMS has important features that make them indispensable in the modern data-driven world. Some of these features include:
- They have a capacity for handling very large amounts of data. This is why they have replaced a paper-based file system.
- They have an easy and efficient interface language e.g the structured query language(SQL).SQL is a programming language used to communicate with databases. It is now the standard programming language for relational DBMS. Users use the SQL commands such as SELECT, UPDATE, DELETE, etc to interact with the databases.
- They support multiple users. Users assume different roles in a DBMS such as an end-user, designer, administrator, and implementer.
- They offer security management of the databases. This is done through the authorization and authentication of users of the databases and even data encryption services.
- They offer control for concurrency and transactions
- They offer persistent storage with backup and recovery capabilities for reliability.
The database systems are nowadays broadly categorized as either SQL databases or No-SQL databases.
SQL databases
These are database systems that use SQL as their standard interface programming language. This kind of database system is mostly relational database management systems(DBMS). A relational database management system is a type of database that stores data in a structured format in terms of tables which in turn have rows and columns of data(Murthy,2018). A relation, in this case, is a table and they are “relational” since the data within each table are related to each other and data in other tables. Rows in RDBMS are also called records. This kind of structure makes it possible to make queries to different tables in the database at once.
How RDBMS Works
Data in RDBMS is stored in terms of tables. A RDBMS contains N number of tables. Each table will often have its primary key. A primary key is a column in a table that is used to identify each record in the table uniquely.
A table in RDBMS will consist of rows/records and columns. The row holds information about a data entity into the database table e.g student data. A column will consist of data describing entities in the database table e.g a student’s first name.
RDBMS checks for constraints before creating any table or data. These constraints include not null, unique, check, primary key, foreign key, data integrity, entity integrity, referential integrity, domain integrity, and user-defined integrity. Not null ensures that no column should not have an empty cell. Unique ensures that every data in a column cell is unique. The foreign key is used to link two tables. Entity integrity ensures that a row is not duplicate. Referential integrity ensures that rows linked to child tables cannot be deleted.
Advantages of RDBMS
RDBMS are maintainable. They are easy to use and thus allow database administrators to control, maintain, and update data into the database easily. Data backup is also very easy.
RDBMS are flexible. Updating of data takes can be done in one place thus saving time. Data updated in the parent table is automatically propagated to child tables.
The structure of the data is easily understood. This is in terms of tables, rows, and columns. This makes it easy to query the data.
They have capabilities of different privileges. This allows the database administrators to control the activities of users over the database. This makes them secure too.
They are fast and scalable. Indexes are used to speed up performance and sort data. They can handle any quantity of data uniformly.
They save on storage space. Data redundancy is minimized to a large extend in RDBMS.
They are reliable. They are usually designed for reliable transactions and ad-hoc queries which are the staples of the line of most business applications.
Disadvantages of RDBMS
RDBMS sometimes become complex. This occurs when the quantity of data grows large and the relations between the data become complicated.
There might be information isolation.
They are relatively costly to set up. Things such as security, design, and data management make it a costly undertaking.
They have an inherent limitation in structure. Limits are imposed on field length which can translate to information loss if excess data is entered.
No-SQL databases
These are database systems that are not tabular and are designed to provide flexible schemas and to scale easily with large amounts of data and high user loads. They come in different types mainly based on their data model. This includes document, key-value, wide-column, and graph(Fernandes,2018).
NoSQL data models permit-related data to be nested within one data structure.NoSQL is especially helpful for storing unstructured data. Unstructured data is growing far more rapidly than structured data and doesn’t fit the relational schemas of RDBMS. Examples of unstructured data include user and session data; time-series data such as IoT and device data; chat, messaging, and log data; video and images.
Types of No-SQL databases
Document databases (e.g. CouchDB, MongoDB) where data inserted is stored in the form of “documents” or free-form JSON structures. Data can be integers, strings, or even freeform text. You don’t specify what fields if any, a document will contain(Sirisha,2017).
Key-value databases (e.g. Redis, Riak) where free-form values are accessed in the database by way of keys. This includes integers or strings or JSON documents.
Wide column databases (e.g. HBase, Cassandra) where data is stored in columns instead of rows as in a conventional RDBMS. Any number of columns (and in this manner a wide range of kinds of data) can be aggregated or grouped as needed for data views or queries.
Graph databases (e.g. Neo4j) where data is represented as a network or graph of entities and their relationships. Each node in the graph is in the form of a free-form chunk of data.
No-SQL databases are useful in the following scenarios:
- Fast access to the data and, speed and simplicity of access are more important than reliable transactions or consistency.
- Storing a large volume of data into a schema would later be slow and painful when changing the schema later.
- Storing unstructured data from one or more sources that produce it, and the data need to be kept in its original form for maximum flexibility.
- Data is stored in a hierarchical structure, but the hierarchies to be described by the data itself, not an external schema.
Advantages of No-SQL databases
They offer the simplicity of design. The design can be scaled later with new data availability.
They are simpler to scale horizontally to cluster of machines, unlike RDBMS. Horizontal scaling means adding more machines. In a database world, horizontal-scaling is based on the partitioning of the data such that each node contains only part of the data(Gessert et al,2017)
Disadvantages of No-SQL databases
Consistency is compromised in favor of availability, partition tolerance, and speed.
Most NoSQL databases lack true ACID transactions. ACID (Atomicity, Consistency, Isolation, Durability) is a set of properties of database transactions that are intended to guarantee the validity of data even in the event of system crashes, power failures, and other errors.
Concerns and Recommendations
Our case study organization is a car hire company. The database designed is a relational database management system for storing information related to this organization. However, that alone does not offer the organization maximum benefits of the current technology and future technology trends.
The organization is currently not capturing unique users’ data such as clicks on the various products, visiting hours, etc. This can be useful in customizing their users’ experience when trying to access their products. I recommend the organization starts to capture the user experience data and store the information in a No-SQL database which can later prove useful to the organization.
The organization is currently not utilizing data analytic in the decision-making process of how to improve its services. It is recommended the organization to start utilizing the power of data analytics in their decision making in regards to their operations, web, and mobile applications(Elgendy, and Elragal,2016).
The organization should start utilizing the cloud services available. Cloud services are any service users access on-demand via the Internet from a cloud service provider’s servers as opposed to being provided from a company’s on-premise servers(Attaran,2017). Cloud services are designed to provide easy, scalable access to applications, resources, and services. This will be useful to them as the number of users increases. They can easily scale their services for performance gain.
References
Attaran, M., 2017. Cloud computing technology: leveraging the power of the internet to improve business performance. Journal of International Technology and Information Management, 26(1), pp.112-137.
Elgendy, N., and Elragal, A., 2016. Big data analytics in support of the decision making process. Procedia Computer Science, 100, pp.1071-1084.
Elmasri, R., and Navathe, S., 2017. Fundamentals of database systems (Vol. 7). Pearson.
Fernandes, D., and Bernardino, J., 2018, July. Graph Databases Comparison: AllegroGraph, ArangoDB, InfiniteGraph, Neo4J, and OrientDB. In DATA (pp. 373-380).
Gessert, F., Wingerath, W., Friedrich, S., and Ritter, N., 2017. NoSQL database systems: a survey and decision guidance. Computer Science-Research and Development, 32(3-4), pp.353-365.
Murthy, R., Krishnaprasad, M., Chandrasekar, S. and Agarwal, N., Oracle International Corp, 2018. An efficient mechanism for managing hierarchical relationships in a relational database system. U.S. Patent 10,089,361.
Sirisha, J., and Reddy, M.B., 2017. Unstructured Data: Various approaches for Storage, Extraction, and Analysis. International Journal of Computer Science and Information Security (IJCSIS), 15(7).