Solved

Multi Value Dependency, BCNF, 4NF

Posted on 2014-12-21
6
93 Views
Last Modified: 2014-12-31
At http://www.slideshare.net/ramsekhargrandhi/mvd-16251057 in side 4 of 14 shown below...

Question: Why name --> --> phone is a multi valued Dependent?

I understand FD in name --> adress. But why we cannot have name --> phone.
0
Comment
Question by:Mike Eghtebas
6 Comments
 
LVL 65

Expert Comment

by:Jim Horn
ID: 40511627
Phone is directly related to a person (name), and not an address, e.g. my cell phone doesn't *really* have an address related to it.

So, given a table Name was a table, then
Phone would be a 1:M table with fk name, as a name can have multiple phone numbers.
Address could be in the Name table if you don't care about history, or if a name can have multiple addresses.  If you need history, then Address is a separate 1:M table with fk name and some kind of date column(s) to indicate when the address was valid.

No relationship between phone and address.
0
 
LVL 34

Author Comment

by:Mike Eghtebas
ID: 40511876
Hi Jim,

Dirinkers  <--- Table name with 3 fields
========================
name
phone
address

The discussion, as I understand it, to see if this table could be further reduced (broken down to two tables) and why. So, name and phone (if it is cell phone) is candidate key. The combination of  name-cell phone - and address possibly is another candidate key if all names are living alone but we never know. As the result

name --> cell -phone have functional dependency (FD) but
name --> address have not and definately
name - -> beer type have not FD because Mike --> Coors   cannot be unique because we can easily have Robert --> Coors.

Now, lets forget the content of this post and shift to the original question:

Question: Why name --> --> phone is a multi valued Dependent?

The purpose of this post was just to not assume name, phone, address are each separate tables.

Thanks,

Mike
0
 
LVL 69

Expert Comment

by:Scott Pletcher
ID: 40512355
@Jim:
>> Address could be in the Name table if you don't care about history, or if a name can have multiple addresses. <<

I believe you meant to say "or if name can have only a single address".  If a name can multiple addresses, then addresses need to be in a separate table, of course.


To me:
(name, phone, address) [beers]
is not even a valid setup of 4nf issues, as the table is not yet in 3nf.  

I believe the only true candidate key here is "name", since phone numbers change all the time.

Thus, phone and address are both non-key attributes, and, if so, we're dealing with potential 3nf issues, not 4nf issues.

I personally don't see any true transitive dependencies among phone, address and beers.
0
Free Webinar: AWS Backup & DR

Join our upcoming webinar with experts from AWS, CloudBerry Lab, and the Town of Edgartown IT to discuss best practices for simplifying online backup management and cutting costs.

 
LVL 34

Author Comment

by:Mike Eghtebas
ID: 40512358
HI Scott,

Could you possibly, in a table like:

Table1
===========================
field1          field2                field3
---------         -----------            -------------
x                    x                          x

give me an examples for FD and MVD?

Basically, I want to understand FD and MVD.

Also, please add a comment to: http://www.experts-exchange.com/Database/MS-SQL-Server/Q_28584856.html#a40512198

Thanks,

Mike
0
 
LVL 69

Expert Comment

by:Scott Pletcher
ID: 40512368
Sorry, I need to come back to this.  I've had only about 2 hours' sleep in the last two days so now is the time for me to tackling normalization :-).  Even what I have above is not really clear or direct.
0
 
LVL 49

Accepted Solution

by:
Vitor Montalvão earned 500 total points
ID: 40514629
Question: Why name --> --> phone is a multi valued Dependent?

 I understand FD in name --> adress. But why we cannot have name --> phone.
Both can be true but it's more usual to a person having more than a telephone number where he/she can be reached. Like mobile phone, home phone and work phone.
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Pivot Table in SQL Server 8 28
I need help using SQL case statements in where clauses 3 23
SQL Server Resume 5 44
Regarding Disk IO 3 41
In this article I will describe the Detach & Attach method as one possible migration process and I will add the extra tasks needed for an upgrade when and where is applied so it will cover all.
Ever wondered why sometimes your SQL Server is slow or unresponsive with connections spiking up but by the time you go in, all is well? The following article will show you how to install and configure a SQL job that will send you email alerts includ…
Using examples as well as descriptions, and references to Books Online, show the documentation available for date manipulation functions and by using a select few of these functions, show how date based data can be manipulated with these functions.
Using examples as well as descriptions, and references to Books Online, show the different Recovery Models available in SQL Server and explain, as well as show how full, differential and transaction log backups are performed

685 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question