User talk:Nabav

Database normalization
No, I personally disbelive that premise for a number of reasons, sure some people think it's correct (or at least will say it to give a basic overview of something), but it is not universally agreed. to remain NPOV, the bullet point should be removed or be prefaced with a modifier like "some say that". For Example, Hugh Darwen discusses it at length in his "The Askew Wall" discussion and paper.

For example, I can give an example of a few relations that violate first normal form: a : relation {   id : integer { key }, name : string, nameofpet1 : string, nameofpet2 : string, nameofpet3 : string } this is the one that I'm talking about that contradicts #2. with repeating groups, you have a violation of (what some would call) the first normal form. Sure, not all will call this a violation of first normal form, but if the bullet point you want included is included, then the second bullet point should be removed. b : relation {   id : integer { key }, name : structure {       firstname : string, lastname : string } }

b2 : relation {   id : integer { key }, name : string, sound : audioStream } I think it's pretty clear that these definitely violates first normal form, as they have a non-atomic type, but it is still a valid relation. Also, sure, some people don't think this is a violation of 1NF. Also many "Relational" DBMSs won't support such a beast, so some exclude such kinds of constructs as being relations in the first place. c : relation {   id : integer { key }, name : string, pets : relation {       petid : integer { key }, petname : string, petspecies : integer { references species } } } this one has a complex relation as the type of one of the columns. Most don't think that relations can belong in relations, that it ceases to become a relation once this occurs. I don't understand their reasoning, but they claim it. There is an entire group of people who like making databases that can do this, they are usually called "non-first-normal-form relational databases"

In all of these cases, some people will say that these things can't be relations, or that these things can be in relations, and we can make a small exception for not calling them violations of 1NF so that we can do other normalizations on them (because 2NF requires 1NF).

So, no, I don't think we can re-add that bullet unqualified. McKay 16:46, 11 April 2007 (UTC)


 * So, Yes, I understand what you mean about different tuples having different numbers of attributes. Such a thing should generally not be allowed, but must so-called relational databases allow such a thing anyway:

a : relation {   id : integer { key }, name : string, nameofpet1 : string { nullable }, nameofpet2 : string { nullable }, nameofpet3 : string { nullable }, nameofpet4 : string { nullable }, nameofpet5 : string { nullable }, nameofpet6 : string { nullable }, nameofpet7 : string { nullable }, nameofpet8 : string { nullable }, nameofpet9 : string { nullable }, nameofpet10 : string { nullable }, nameofpet11 : string { nullable }, nameofpet12 : string { nullable } }
 * In this case, most tuples will have a different number of attributes (because attributes specified as "null" won't be in the tuple). Is this a violation of first normal form? Some would say yes, others would say no, virtually everyone in the know would recognize this as bad form, but there are no functional dependancies being violated by even 6th normal form in this regard. Is that a problem? Well, there is the slight functional dependancy that if name of pet 1 is null, then name of pet 2-12 will also be null. That's a functional dependancy present, but only if the first ones are filled out...
 * Also, your questions of atomicity are also good ones. The Askew Wall covers that very point indeed. Lets call a group of people "Microsoft Database Theorists", but while not exclusive to microsoft database theorists, and not all microsoft database theorists feel this way, I feel it's a reasonable appelation. Most of these Microsoft Database Theorists feel that MSSQL Server isn't going to let us really violate 1NF. We've got these Strings, and Dates, and numbers, and we'll call all of these atomic, because they're built into the system. If you try putting a more complex type in (like a firstname+lastname, or an audio stream, then you're violating 1nf. Otherwise everythign is okay. The problem is that the definition for 1NF isn't clear, and it isn't understood to mean the same thing by every group. I do have several ideas about what people mean when they say 1NF, but most of it would constitute WP:OR. Where to proceed? I don't know, the 1NF section is going to be on very shaky grounds. McKay 15:01, 12 April 2007 (UTC)

ArbCom elections are now open!
MediaWiki message delivery (talk) 13:06, 23 November 2015 (UTC)

ArbCom elections are now open!
MediaWiki message delivery (talk) 13:32, 23 November 2015 (UTC)