Tools or website to help with database normalization

Are there any tools or online resources (FREX tutorials) that would help the neophyte to normalize the database?

+4
source share
7 answers

Introduction to database normalization

Wiki: Database Normalization

Database Normalization Tips

Achieving a well-designed database . In relational database design theory, rationing rules define certain attributes that should be present or absent in a well-designed database. There are several rules that can help you create an audio design database:

  • The table must have an identifier . The basic rule of a design theory database is that each table must have a unique row identifier, column, or set of columns used to distinguish any record from every other record in the table. Each table must have an identifier column, and no two records can have the same value identifier. The column or columns serving as the unique row identifier for the table are the primary key of the table. In the AdventureWorks database, each table contains an identity column as a primary key column. For example, VendorID is the primary key for the procurement table.

  • A table should only store data for one type of entity . Trying to store too much information in a table can hamper efficient and reliable data management in a table. In the AdventureWorks test database, customer order and customer information is stored in separate tables. Although you can have columns that contain information for both the customer order and the customer in one table, this design leads to several problems. Customer information, name and address must be added and stored redundantly for each customer order. This uses additional storage space in the database. If the customer address change, a change must be made for each customer order. In addition, if the last sales order for a customer is deleted from the Sales.SalesOrderHeader table, the information for this customer is lost.

  • The table should [try] to avoid nullable columns . Tables can have columns for determining null values. A null value indicates that there is no cost. Although it may be useful to allow null values ​​in isolated cases, you should use them sparingly. This is due to the fact that they require special processing, which increases the complexity of data operations. If you have a table with several columns with a null value and several rows have a null value in the columns, you should consider placing these columns in another table associated with the primary table. By storing data in two separate tables, the main table can be simple in design and still handle the periodic need to store this information.

  • The table should not repeat values ​​or columns . The table for the item in the database should not contain a list of values ​​for specific information. For example, a product in the AdventureWorks Database may be purchased from multiple vendors. If there is a column in the Production table for the supplier name, this creates a problem. One solution is to keep the name of all suppliers in a column. However, this makes it difficult to display a list of individual suppliers. Another solution is to restructure the table to add another column for the name of the second provider. However, only two suppliers allow this. In addition, another column should be added if the book has three suppliers. If you find that you need to keep the list of values ​​in one column, or if you have several columns for one piece of data, such as TelephoneNumber1 and TelephoneNumber2, you should consider placing duplicate data in another table with a link to the main table. AdventureWorks database has a product production table for product information, a procurement table. for supplier information, and the third table, purchase. Products. This third table only stores identifier values ​​for products and product vendor identifiers. This design allows any number of product suppliers without changing the definition of tables and without allocating unused storage space for products from a single supplier.

Link

+7
source

The idea that you should not use the tool is just a thoughtless ideology. Mathematicians use calculators, although they themselves can do all the calculations. NORMA is good, I would start with this.

+5
source

I use NORMA to develop a conceptual database. One side effect is that it creates a schema for a properly normalized database.

+4
source

The best solution is that you should be able to fully understand how to normalize forms, how long will you depend on any tools for this? I would suggest you study a bit about this so that you can come up with a better solution yourself. As a developer, you will come across this from time to time, and what about an interview, suppose you are asked about this? And as Mitch Psheny said, normalization does not require a tool :)

Here are some more resources so you can watch:

http://dev.mysql.com/tech-resources/articles/intro-to-normalization.html

Source: Mysql website (official)

+2
source

As a newbie, I used the relational database architecture .

Believe me, this is great! (because it works and does not require any prerequisites, that is, it is ideal for beginners). On page 4, it covers normalization.

+2
source

1: Do not listen to everyone who tells you that normalization does not require a tool, because anyone who makes such a comment does not understand the problem.

2: "Normal forms" are best understood as measures of the quality of database design. For example, data schemes that are in higher normal forms have less data redundancy and are less susceptible to updating anomalies, which means that your application requires less code.

3: So, if normalization is needed, then what is the way to do it?

There are many stories about this, so I just mentioned two:

Method 1: Functional Decomposition (FD) Now this is the case when at least one well-known university professor teaches the FD method. Watch this video: Stanford University Functional Decomposition Video . Unfortunately (and sorry Jennifer), but the functional decomposition is extremely complex, error prone and, in my opinion, completely inoperative. (for example, how do you determine the correct "Mega" attitude in the first place?)

Method 2. Use the NORMA tool to automatically create the 5th diagram of a normal shape. The NORMA tool is free and it works in the free version of Visual Studio 2013. You can learn more about this on my website.

Happy modeling.

Ken

PS I have been using the method of modeling object-role work for more than 20 years.

0
source

Source: https://habr.com/ru/post/1300834/


All Articles