Re: Field Independence in Normalised Tables
- From: Klatuu <Klatuu@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Thu, 21 Jun 2007 11:41:02 -0700
Excellent answer, Chris.
I would like to add one other piece of advice.
The field [Terminated?] is poorly named. It contains a special character -
the ?
I would advice the OP to use good naming conventions. Names should contain
only letters, numbers, and the underscore character. This excludes any
special or punctuation characters. Also, no Access reserved word should be
used as a name. For example - Name, Date, Type, Count, etc.
--
Dave Hargis, Microsoft Access MVP
"Chris2" wrote:
.
"samah" <samah@xxxxxxxxxxxx> wrote in message news:uw$B4$BtHHA.412@xxxxxxxxxxxxxxxxxxxxxxx
Access beginner.
In my database, I have an Employees Tables with the following structure:
tblEmployees:
EmployeeID ) - Autonumber (pk)
EmployeeName - (text)
Terminated? - (Yes/No)
DateTerminated - (Date)
ReasonForTermination - Text
<other fields>
I have been reading about normalization. Under field independence the
rule states that "the data in any field (other than a primary key field)
in a table should be editable without affecting the data in any other
field". Well, in the above table data in the fields "DateTerminated" and
"ReasonForTermination" are totally dependent on the value in the field
"Terminated?". Although the table looks normal, just wondering whether
it breaks the rules of normalization?
Will appreciate if anybody can shed a little light on it.
Thanks in advance.
samah,
The above table is not normalized, it violates 1st Normal Form.
[Terminate?] is a redundant column, and should be removed. The existence of a date in
DateTerminated is the indicator that an employee has been terminated.
Also, after [Terminated?] has been removed, tblEmployees still violates 2nd Normal form.
Employees hire and fire dates are a separate subset of data. Employees can be hired and
fired multiple times in the vast majority of businesses, and so that information must be
removed to another table.
Employment
EmploymentID AUTOINCREMENT -- Primary Key
EmployeeID INTEGER -- Foreign Key to tblEmployees
DateHired DATETIME
DateTerminated DATETIME
ReasonForTermination TEXT(255)
Sincerely,
Chris O.
- Follow-Ups:
- Re: Field Independence in Normalised Tables
- From: Chris2
- Re: Field Independence in Normalised Tables
- From: samah
- Re: Field Independence in Normalised Tables
- References:
- Field Independence in Normalised Tables
- From: samah
- Re: Field Independence in Normalised Tables
- From: Chris2
- Field Independence in Normalised Tables
- Prev by Date: Sending emails / flat files
- Next by Date: Re: Field Independence in Normalised Tables
- Previous by thread: Re: Field Independence in Normalised Tables
- Next by thread: Re: Field Independence in Normalised Tables
- Index(es):
Relevant Pages
|