A. Please comment to Wendy R on this comment she made in 137 words.
There are various types of normal forms such as First Normal Form (1NF), Second Normal Form (2NF), Third Normal Form (3NF), and Boyce-Cod Normal Form (BCNF). Normalization is utilized to organize data in a database to reduce the redundancy of the information being stored. This is completed by dividing larger tables into smaller tables that are linked and related. Another example is student enrollment in high schools and colleges. One student may enroll in multiple classes both onsite and online, all with different start times, have different grades in each course, and so forth. In this case, a 3NF or even BCNF could be used to break out the various data.
One example of why normal forms is being used in software engineering is maintaining customer and order information for a bookstore. Instead of having to repeat a customer’s name, address, gate code, etc. in each and every order another table could be developed that stores all of the customer data. A primary key for the customer’s user id could be used that links the address information to the order information.
There are a multitude of consequences that can occur if a relational database is built without normalizing the database. Two consequences are duplicative data which can slow down programs and data modification issues. As noted by Wezel, K. (2022), “Having the table serve many purposes introduces many of the challenges; namely, data duplication, data update issues, and increased effort to query data” (Reasons for Database Normalization). All these issues impact the query’s runtime and can adversely impact the data stored in the database.
I once worked for a company that wanted to store all the purchasing requisition teams and their relevant information in one table. This included: employee ID, employee name, office location, office fax number, purchase orders, contracts, and so forth. The problem we were running into was there was a lot of duplicative data about the office location and the office fax number. There were several office locations and employees, so this greatly increased our storage needs and ultimately decreased the software program’s performance. It was also extremely difficult to maintain changes to the data when a fax number was updated, an office location moved, and when new offices were opened.
References
Wezel, K. (2022). Database normalization – in easy-to-understand english. https://www.essentialsql.com/database-normalization/
B. Please comment to Soetan Oon this comment he made in 137 words.
For this weeks discussion on providing two examples of why normal forms are being used in software engineering and looking at consequences that occur if a relational database is built without normalizing the database. We must first look at what normalization of a database means. By definition normalization is defined as the process of organizing data in a database. This includes creating tables and establishing relationships between those tables according to rules designed both to protect the data and to make the database more flexible by eliminating redundancy and inconsistent dependency. We now look at what relational database mean, which it is defined as a collection of data items with pre-defined relationships between them. These items are organized as a set of tables with columns and rows. Tables are used to hold information about the objects to be represented in the database. Each column in a table holds a certain kind of data and a field stores the actual value of an attribute. So now with these two terms defined we can see plenty of example of what could go wrong if these two steps are not implemented. The first consequence would be redundancy through out the software and the second consequence would be a lack of proper structure.
Cite:
https://aws.amazon.com/relational-database/
https://docs.microsoft.com/en-us/office/troubleshoot/access/database-normalization-description