I have a hard time wrapping my head around the concept. the idea is you don't have perpetually repeating vales in a table, correct. So would BCNF be where you would have an address file where you skip city and state and have zip there, and then have a link to the zip table which would have city and state there?
Here in Portland we have like 20 zip codes in Portland, so in a data table or Oregon addresses you would have hundreds of addresses where the city and state are identical, but zips change a lot. So is BCNF supposed to supress that kind of thing
Also, how far do you really go on normalizing a table? Pretty much 3rd normal form is more trouble making queries than the spaces savings are worth, unless you have a database the size of the IRS or FBI or something
I am a beginner in this and my understanding is that BCNF is when every determinant in a relation is a candidate key and this came out of the result of realizing that in 3NF dependencies can still exist thus creating redundancy in the 3NF relations. So in a way BCNF is like an advance 3NF. 4NF is used once in awhile while 5NF is rarely used.
Zip codes usually identifies a District so I guess if as you say unless there is a need like the IRS or FBI etc to generate queries in which the District of each entry is required for analysis purposes etc then maybe there is no need. I guess you would need to consider the scope of the database construct.