Re: Field Independence in Normalised Tables

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



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.



.



Relevant Pages

  • Re: Field Independence in Normalised Tables
    ... I have been reading about normalization. ... Employees hire and fire dates are a separate subset of data. ... Also these two fields are used in a table validation rule for the products table in this sample database. ...
    (microsoft.public.access.tablesdbdesign)
  • Re: Field Independence in Normalised Tables
    ... I have been reading about normalization. ... Also, after has been removed, tblEmployees still violates 2nd Normal form. ... Employees hire and fire dates are a separate subset of data. ...
    (microsoft.public.access.tablesdbdesign)
  • Re: Arrow keys dont work in "read" command of bash
    ... readline is used ... used to remove any special meaning for the next character read ... The first character of delim is used to terminate the ... Display prompt on standard error, ...
    (comp.os.linux.misc)
  • Re: How to terminate a text file line in Unicode (in Java)
    ... stream encoding was set to »UTF-8«, what is the proper, best ... The primary question is how to terminate a line in Unicode. ... It does not define "the" line breaking character. ...
    (comp.std.internat)
  • Re: opening and reading a character from a file with emu8086 assembler
    ... reads on character at a time and print each character on the ... >> jc terminate;if error occurs, ... >> int 21h ... > As for the infinite loop, the carry is not set at EOF. ...
    (comp.lang.asm.x86)