How To Software Multivalued Dependency in Database Design Multivalued dependency breaks fourth normal form Share Pin Email Print Yuichiro Chino/Getty Images Software Databases Documents Spreadsheets Presentations Desktop Publishing Graphic Design Animation & Video by Mike Chapple An IT professional with more than 10 years of experience in the fields of databases and cybersecurity. Updated January 02, 2019 56 56 people found this article helpful In a relational database, a dependency occurs when the information stored in the same database table uniquely determines other information stored in the same table. A multivalued dependency occurs when the presence of one or more rows in a table implies the presence of one or more other rows in that same table. Put another way, two attributes (or columns) in a table are independent of one another, but both depend on a third attribute. A multivalued dependency prevents the normalization standard fourth normal form (4NF). Relational databases follow five normal forms that represent guidelines for record design. They prevent update anomalies and inconsistencies in the data. The fourth normal form deals with many-to-one relationships in a database. Functional Dependency vs. Multivalued Dependency To understand a multivalued dependency, it is helpful to revisit what a functional dependency is. If an attribute X uniquely determines an attribute Y, then Y is functionally dependent on X. This is written as X -> Y. For example, in the Students table below, the Student_Name determines the Major: Student_Name Major Ravi Art History Beth Chemistry Students This functional dependency can be written: Student_Name -> Major. Each Student_Name determines exactly one Major and no more. If you want the database to also track the sports these students take, you might think the easiest way to do this is to just add another column titled Sport: Student_Name Major Sport Ravi Art History Soccer Ravi Art History Volleyball Ravi Art History Tennis Beth Chemistry Tennis Beth Chemistry Soccer Students The problem here is that both Ravi and Beth play multiple sports. It is necessary to add a new row for every additional sport. This table has introduced a multivalued dependency because the major and the sport are independent of one another but both depend on the student. This is a simple example and easily identifiable, but a multivalue dependency could become a problem in a large, complex database. A multivalued dependency is written X ->-> Y. In this case: Student_Name ->-> MajorStudent_Name ->-> Sport This is read as "Student_Name multidetermines Major" and "Student_Name multidetermines Sport." A multivalued dependency always requires at least three attributes because it consists of at least two attributes that are dependent on a third. Multivalued Dependency and Normalization A table with a multivalued dependency violates the normalization standard of Fourth Normal Form (4NK) because it creates unnecessary redundancies and can contribute to inconsistent data. To bring this up to 4NF, it is necessary to break this information into two tables. The table below now has a functional dependency of Student_Name -> Major, and no multivalued dependencies: Student_Name Major Ravi Art History Ravi Art History Ravi Art History Beth Chemistry Beth Chemistry Students & Majors While this table also has a single functional dependency of Student_Name -> Sport: Student_Name Sport Ravi Soccer Ravi Volleyball Ravi Tennis Beth Tennis Beth Soccer Students & Sports It's clear that normalization is often addressed by simplifying complex tables so that they contain information related to a single idea or theme rather than trying to make a single table contain too much disparate information. Continue Reading A Quick Guide to Understanding Database Dependencies Understanding the Types of Database Relationships Transitive Dependencies Can Creep Into Your Data and Muck with Its Accuracy The Basics of Normalizing a Database Protect Your Data by Normalizing It to at Least 2NF Definition of a Determinant in a Database Learn About Trivial Functional Dependencies in Databases Ditch Your Spreadsheet for a Database to Access the Power of your Data Relationships Are the Basis for Relational Databases Ensure Accurate Data Using Functional Dependencies Database Terms You Need to Know How BCNF Is Used in Relational Database Theory A Database Relation Might Not Be What You Think How Do You Put a Database in First Normal Form? Designing a Database? Give Your Tables Attributes to Be Proud Of How Do you Put a Database in Second Normal Form (2NF)?