Task 1A 3
Different Models of databases: 3
Hierarchical model: 3
Relational model: 4
Network Model: 5
Comparison between different data models 6
Hierarchical model: 6
Relational model: 6
Network Model: 7
Task 1B: 8
Database applications: 9
Maria DB: 10
Different types of DBMS 11
Open-source DBMS: 11
Web Enabled: 12
Task 1C 13
Waterfall Development Model: 13
Agile Development Model: 14
Spiral Development Model: 15
RAD Development Model: 16
Evaluation of different system life cycle models: 17
Top Down: 17
Bottom Up: 17
Task 2A: 18
Figure: Context Diagram 18
Figure: DFD 19
Figure: ERD 20
Table: Entity Event Matrix (EEM) 21
Table: Normalization Table 22
Task 2B 23
Figure: Customers DB 23
Figure: Customer Pick up DB 23
Figure: Rooms DB 24
Figure: Other Services DB 24
Figure: Sales DB 25
Figure: Staff DB 25
Task 2C 26
Figure: Customer Entry Form 26
Figure: Pick Up Appointments Form 26
Figure: Other Services Form 27
Different Models of databases:
' Hierarchical model
' Relational model
' Network model
There are also less used models like the Star schema, Entity-attribute-value model, Entity-relationship model, The object-relational model, Document model. Etc.
Hierarchical model: Hierarchical database models closely resembles the root of a tree where all the elements are in one-to-many relationships if you draw them in charts. The data elements are connected to one another by a parent to child format. Hierarchical database model links separate data elements to a parent element. But problem of the hierarchical model is that it is difficult to extend the data model and is very difficult to interlink the entities of hierarchical model like the relational model. The idea behind hierarchical database models is useful for a certain type of data storage for example for databases that are not overly complex, but it is not extremely versatile. Hierarchical database was popular in the old days of mainframe computers. While some hierarchical databases are still in use, other types of databases, other models offer greater opportunity as there are more flexible and more sophisticated databases. A hierarchical database usually looks like this (Figure 1).
Relational model: Relational model is suck kind of database model which use such a structured approach where the entities can be linked with each other following the first-order predicate logic, where every single record is represented as rows which are called tuples and columns which are called fields which are contained in a table which is called an entity. Entities are connected with other entities which are grouped together into relations. Each relation has a header or title and body which are values. The headers are the list of columns in the relation. The body is the set of data that populates the relation, organized into rows. There is also the usage of keys. Keys are specially designated columns within a relation, used to order data or relate data to other relations. There is the primary key, which is used to uniquely identify each row of data. Then there are foreign keys relates data in one relation to the primary key of another relation.
The relational model also lays down a set of rules to enforce data integrity, known as integrity constraints. This allows easy modification of data records. Modification or deletion of record in one table will do the same in other related adjacent tables containing that record. It also defines how the data is to be manipulated.
Relational databases are the number one database choice for various kinds of application and are used widely around the world for data storage and processing because this database model is simple to implement and use, it also has all the properties and capabilities required to process data with storage efficiency. A relational database looks almost like the following. (Figure 2).
Network Model: A network model is a lot like the hierarchal database model, it has one-to-many parent to child relationship. It is a database model that is designed specially to be flexible in representing relationships between entities. A network database model is a database model that allows child records to be interlinked to/with other child records and multiple records to be linked to a single parent record and all parent records linked to a owner file. The model is an tree based structure where the branches are the member information linked to the owner or the main database, which is in the utmost bottom or utmost top of the tree. The feature of multiple child record linkage allows the network database model to be very flexible. The network database model mainly consists of many-to-many relationships because child records are linked with other child records and all the child records are linked to a parent record and vice versa. The network database model was invented by Charles Bachman in 1969 as an enhancement of the already existing hierarchical database model. The hierarchical database has one owner file that is linked to one member file but cannot be linked to other member files. This created many complications when using hierarchical models to create databases as a result system designers wanted a more flexible approach in database creation. So, the creation of the network database model lead to a similar database model similar to the hierarchical database model but with more flexibility and less faults (Figure 3).
Comparison between different data models
' Navigating a hierarchical database is very fast both for the user and the programmer because the relationships are in a step by step order. This is true for both sideways relationships and top to bottom relationships from child to child and parent to parent and parent to child. This saves a lot of time for the database user. The user needs only to follow parent to child record to get to the next record and browse from child to child record to get to adjacent records.
' The organization of the database parallels a family tree or the army's chain of command. So even non-programmers may understand.
' Very complicated to extend the data model, for example if you want a single items or records to belong to multiple hierarchies for different applications, there is no support for that in hierarchical model. The user has to create a whole new record for that. Also, 3NF or higher normal forms cannot be modelled in a hierarchical database.
' There is no feature for data integrity or data consistency.
' Leads to query bias. Not all type of query has the same latency, some are faster than others.
' Very old technology and prone to errors not for use in modern day applications.
' Values are atomic, meaning they cannot be further divided.
' Each Column is Unique.
' Each row is unique.
' Data consistency can be ensured. User can define the data type that each field or column will hold. Database will show error if the defined data type is not used.
' Does not require for the columns to be in sequence.
' Does not require for the row to be in sequence.
' Navigating the database is much easier.
' Information can be easily manipulated using query language.
' Relational algebra and relational calculus can be used for relation manipulation among tables.
' Authorization levels can be implemented more easily. Which user has what authorization level can be tailored to suit the company needs.
' Security control can be implemented to restrict unauthorized access.
' Query languages can be used, so it is more user friendly.
' Large relational databases use up system resources which in turn affects the system's performance.
' Relational database models are more complex than hierarchical and network database models which tends to create performance issues in low end computer systems.
' Relational databases are difficult to modify by non-programmers.
' Just like the hierarchical model, databases are easy to design in network models.
' The network model does not allow a member to exist without an owner much like the hierarchical model.
' Unlike the hierarchical model which supports only one-to-one and one-to-many relationships network model supports all relationships, one-to-one one-to-many and many-to-many.
' The network model is better than the hierarchical model in isolating the programs from the complex physical storage details.
' Operating the network model is difficult for non-programmers because in this model the whole database structure becomes very complex.
' Data modification in network models are difficult unlike relational database which use query languages.
' After creating the database structural modification in network database models are difficult.
There are currently three different kinds of DBMS technologies available in modern times they are,
' NoSQL DBMS.
' In-Memory DBMS.
RDBMS (Relational Database Management System):
Relational database became popular 3 decades ago as low cost computer equipment became popular and powerful enough. Mainly the relational database management system is based on relational model. They are still popular to this date as relational databases provide data storage, access and protection with reasonable performance for most application. Because of relational database's ACID (atomicity, consistency, isolation and durability) it has been the primary operational DBMS for organizations. Which is why software industry leading giants such as Microsoft, Oracle and IBM created RDBMS software to be reliable and adaptable to most use cases. RDBMS is also very preferable because it uses the concept of primary keys and foreign keys. Because of it's reliability and decades of use the RDBMS technologies have been perfected to such a length that it is now one of the most reliable technology for industry grade applications.
SQL stands for structured query language and NoSQL stands for 'non SQL' , 'non-relational' or 'not only SQL'. Mainly in NoSQL databases data saving and data retrieval is what so called 'Modeled', whereas relational databases use tabular relations (arranged in tables). A typical relational database can only support one type of database where as NoSQL databases can support different types of databases which includes key-value stores, document databases, wide-column stores and graph databases. And also, NoSQL's popularity is because of its advantages such as 'Elasticity', 'Big data compatibility', 'Less management' and 'Fixable data models'.
IMDB (In-Memory DBMS):
In memory databases is a kind of database management system that relies on ram for storage rather than the hard disk. Because memory access speed is far greater than disk access speed, in-memory access is used where application is time critical. This kind of databases take advantage of in-memory processing capabilities to deliver the fastest data-retrieval speeds available today. It all comes down to the customer's choice, does the customer need the query or process transaction speed 10,20,100 times faster than before or will he go with older technologies.
Database are usually desktop software programs that are meant to collect, manage and disseminate information efficiently. Small, medium, business owners create simple databases such as customer contact lists, mailing lists, file archival list, financial leisure, financial transactions list with simple databases such as Microsoft Access, FileMaker pro and in enterprise level businesses use advance database application with programming languages such as Oracle, My SQL Server to build custom business solutions in network environments. Database applications are used to search, sort, calculate, report, share information. Databases also perform mathematical and statistical calculations on the data upon queries submitted by users.
Well-known and popular DBMS include
' Microsoft SQL Server.
' Maria DB.
MongoDB is a open-source, multi-platformed program. It is classified as NoSQL database that uses a document-oriented data model. Instead of using tables and rows like RDBMS, MongoDB is built on an architecture of collections and documents. Document comprise sets of key value pairs and are the basic unit of data in MongoDB. Collections contain sets of documents and functions as the equivalent of relational database tables. MongoDB supports dynamic schema design. The database uses a document storage and data interchange format called BSON. Automatic sharding enables data in a collection to be distributed across multiple systems for horizontal scalability as data volumes increase.
Microsoft SQL Server:
Microsoft is a relational database management system that microsoft developed so it is not open-sourced. It is classified as a database that supports SQL language. The primary functionality of Microsoft SQL Server is storing and retrieving data on the same computer as the server or on another computer across a network or a computer on the internet. Microsoft markets various different kinds of Microsoft SQL Server editions for different users and workloads from a small single-machine to large multiple internet-facing servers with many concurrent users. Following are the mainstream editions of Microsoft SQL Server,
1. Microsoft SQL Server Enterprise Edition: Enterprise edition includes both the core database engine and add-on services with various features and tools for managing enterprise level works. It can manage databases as large as 524 petabytes and can address 12 tera-bytes of memory and supports 640 CPU cores.
2. Microsoft SQL Server Standard Edition: Standard edition includes the core database engine along with the stand-alone services. It supports fewer number of nodes (active instances) and does not include some features such as hot-add memory and parallel indexes.
3. Microsoft SQL Server Web Edition: This is the low cost sql server option for web hosting.
4. Microsoft SQL Server Businesses Intelligence Edition: This edition is almost the same as Standard Edition but focusing on self-service and Corporate Business Intelligence. Business intelligence tools such as Data Quality Services, xVelocity, Power View, PowerPivot, BI-Semantic Model, Master Data Services etc.
5. Microsoft SQL Server Workgroup Edition: This edition includes core database engine but lack the additional features.
6. Microsoft SQL Server Express Edition: This is a scaled down edition with core database engine. This edition is limited to one processor, 1 GB memory and 10 GB database flies.
Maria DB: Maria DB is created from the source codes of MySQL RDBMS and is free like MySQL DBMS.
Maria DB is a open-source multi-platformed program. It is a relational database management system. Maria DB is among popular database servers in the world. It was made by one of the founder of MySQL. Maria DB supports wide array of applications, ranging from banking to websites. Maria DB is used because it is fast, scalable and robust with variety of plugins and a wide variety of use cases.
MySQL: MySQL is an opensource relational database management system that supports Structured Query Language. MySQL is a very powerful DBMS features and functionality of very expensive and powerful database packages is included in MySQL. MySQL is used by applications such as Joomla, WordPress, phpBB, MyBB and drupal. MySQL is also used highly popular web based companies such as Facebook, Google, Youtube, Tiwitter, Flickr etc.
Oracle: Oracle database is an object relational database management system. Oracle RDBMS stores data logically in the form of tablespaces and physically in the form of data files. Key feature of Oracle BD that it's architecture is split between the logical and the physical, this means the data location is irrelevant allowing a more modular physical structure that can be added or altered without affecting database activity. The Oracle DBMS system is built around a relational database framework in which data objects may accessed by users or application through SQL. Oracle is used by global business leaders and Oracle supports most major platforms, may it be Windows, Linux, Unix or Mac.
Different types of DBMS
Open-source DBMS: Open source refers to a program whose source code is made public. Which means general public can use it or modify its design free of charge. A certification standard issued by Open-source Initiative (OSI) states that source code of a computer program is made available to the general public, which is part of a movement that a large group of programmers not concerned with proprietary ownership or financial gain. OSI dictates that to be considered 'OSI Certified' open-source program the product needs to meet the following criteria,
1. The author of the program cannot collect loyalties.
2. The source must be accessible to the user.
3. The author must allow modification and derivations under the program's original name.
4. No person, group can be denied access to the program.
5. The program rights must not depend on the program being part of a particular software distribution.
6. The licensed software cannot place restrictions on other software that distribute it.
Some of the open-source DBMS are,
' CUBRID Manager.
' Maria DB.
' Mongo DB.
' SQLite. Etc.
Web Enabled: A web enabled product refers to a program that may be accessed through a web browser or be able to connect to web based application in order to synchronize data. Web-based refers to applications that don't do their processing on user's computer rather on a server on the other side. Web-enabled refers to a program that does some or all of its processing on the user's computer before uploading the output to the web. Today the advancement of Internet and database technologies enables Web servers to present dynamic information. This enables the creation of dynamic websites. Users can upload information, submit a query, update a record, take a test or produce a report through a web interface running off a database server. Web enabled database servers could be configured to perform online surveys and online tests with immediate feedback. Among many web enabled databases most popular are the following,
' Amazon Web Services.
' Enterprise DB.
' Microsoft Azure.
' Storm DB.
' Mongo Lab. Etc.
Server-Based: When we talk about server based databases we mean that there is a server process running (bind to some port), that accepts requests (i.e. SQL queries). Processes of users computer connects to the server and sends queries to the server which itself is responsible to update the database files. Example is MS-SQL Server.
SDLC or System Development Life Cycles are pre-defined phases or steps which exercises discipline when building a system or software which in turn benefits the project by giving better outcome. We will be discussing the following SDLC models,
Waterfall Development Model:
In waterfall development model the developer proceeds from one phase to other in a step by step procedure. Waterfall is unforgiving to errors in any stage because there is no repetition of stages so there is no chance to recover any error. Also, the key deliverables in each phase are voluminous, often exceeding hundreds of pages which makes the development prone to errors because in waterfall approach the outcome of one phase acts as the input for the next phase sequentially. Also in waterfall methodology one must identify the requirements long before the programming begins, limiting the chances of resolving unforeseen difficulties.
The phases of waterfall method are the following, Requirement Gathering and analysis, System Design, Implementation, Integration and testing, Deployment of system, Maintenance.
Figure: Waterfall Model
Agile Development Model:
The agile SDLC model is a combination of iterative and incremental process models. Agile model states that for every project agile model should be tailored to best suit the requirements as agile model uses the basic idea of the iterative model approach, each iteration consists of a full life cycle (Planning, Requirement Analysis, Designing, Building, Testing etc.). With each iteration, the build of software is incremental in terms of features meaning features are added with each iteration. With each successful iteration, new features are added and the final build includes all the features that the customer wanted. Much of the modeling and documentation parts are eliminated in this model. Every iteration of the agile model is a complete software project which spans from planning to testing for each iteration. There are many variants of agile model for example, Scrum, Crystal Clear, Adaptive Software Development, Dynamic System Development Method, Extreme Programming etc. There are four golden rules of agile methodology,
1. Individual and team interactions over processes and tools.
2. Working software over comprehensive documentation.
3. Customer collaboration over contract negotiation.
4. Responding to change with every incoming difficulty.
Figure: Agile Model
Spiral Development Model:
The spiral model is comprised of four phases. When developing a software, the project repeatedly passes through these phases in iteration called spiral. These phases are Planning or Identification, Design, Engineering or Build, Evaluation or risk analysis. Every full cycle of the phases from planning to evaluation is called an iteration. First comes the identification or the planning phase. Requirements both BRS (Business Requirement Specification) and SRS (System Requirement Specification) is gathered in this phase. Then comes the stage where a conceptual design is stablished. It involves architectural design, logical design and physical product design. Build phase as the name suggests refers to the production of the actual software. Then at the evaluation phase after the end of the first evaluation customer gets a view or the product, customer evaluates the software and provides feedback and again based upon the feedback new requirements are identified and the spiral starts another cycle.
Figure: Spiral Model
RAD Development Model:
Rapid application development is a software development methodology that uses minimal planning and utilizes rapid prototyping. RAD is mainly accomplished by the combination of prototyping and iterative development. RAD uses prototyping to create functional models and iteration approach to add new features. Every RAD iteration has five steps. Business Modeling, Data modeling, Process Modeling, Application generation, Testing and turnover.
Business modeling is understanding the flow of information and the distribution of information of the business. A complete business analysis is performed figuring out the success factor.
Data modeling is to form sets of gathered data into objects vital for the business. This phase is all about capturing of data objects crucial for the business with the help of information gathered from the previous phases.
Process Modeling is the process model for enhancements to data object sets defined. It covers process descriptions for adding, deleting, retrieving or modifying a data object.
Application generation is the creation of the system software.
Testing and turnover is as the name suggests testing for errors and handing over the finished software.
Figure: RAD model
Evaluation of different system life cycle models:
In the following table, there are different project criteria's. For example, the project's complexity, the systems reliability, time schedule etc. We evaluated the project based on three different project criteria's
' The project's complexity
' The system's reliability
' Time schedule.
Keeping these in mind we have selected the Waterfall development model.
Top Down: A top-down approach is essentially breaking down the proposed systems into sub systems. It is an insight into its compositional sub-systems almost like reverse engineering fashion. Meaning Top down approach starts with the big picture. It breaks down from there into smaller segments.
Bottom Up: A bottom up approach is almost like sewing together bits and parts of a system to make a more complex system. Meaning it starts from the bottom or sub-systems piecing together the sub-system into the main larger functional system.
Figure: Context Diagram
Entity/Event Customer Customer Pick-Up Rooms Other Services Sales Staff
Reservation C C C
Register Customer C C
Spa Treatment C/U
Steam Room C/U
Guided Tour C/U
Staff Employment C
History, C=Create, M=Modify, U=Update, D=Delete
Table: Entity Event Matrix (EEM)
Entities UNF 1NF 2NF 3NF
Customer Pick up C-ID
Pick-Up Date C-ID
Pick-Up Date C-ID
Pick-Up Date C-ID
Other Services C-ID
Number of Rooms
Number of Rooms
Number of Rooms
Number of Rooms
Table: Normalization Table
Figure: Customers DB
Figure: Customer Pick up DB
Figure: Rooms DB
Figure: Other Services DB
Figure: Sales DB
Figure: Staff DB
Figure: Customer Entry Form
Figure: Pick Up Appointments Form
Figure: Other Services Form
Anon (2016) Motivations for using relational database / ORM or document database / ODM. Available at: http://stackoverflow.com/questions/13528216/motivations-for-using-relational-database-orm-or-document-database-odm [Accessed 11 May 2017]
Arora, K. (1975) Network model and its advantages | data models. Available at: http://dbmsenotes.blogspot.com/2014/03/network-model-data-models.html [Accessed 11 May 2017]
Anon (2016) DATABASE & INTERNET TECHNOLOGIES essay - 4139 words. Available at: http://www.studymode.com/essays/Database-Internet-Technologies-50746268.html [Accessed 11 May 2017]
SearchDataManagement. 2017. What is MongoDB? - Definition from WhatIs.com. [ONLINE] Available at: http://searchdatamanagement.techtarget.com/definition/MongoDB[Accessed 11 May 2017].
The Top 7 Free and Open Source Database Software Solutions - Capterra Blog. 2017. The Top 7 Free and Open Source Database Software Solutions - Capterra Blog. [ONLINE] Available at: http://blog.capterra.com/free-database-software/. [Accessed 11 May 2017].
Techopedia.com. 2017. What is Web Enabled? - Definition from Techopedia. [ONLINE] Available at: https://www.techopedia.com/definition/28156/web-enabled. [Accessed 11 May 2017].
...(download the rest of the essay above)