若关系模式R的每一个分量都是不可再分的数据项,则关系模式R属于第一范式。记为R∈1NF。 例如,供应者和它所提供的零件信息,关系模式FIRST和函数依赖集F如下: FIRST(Sno,Sname,Status,City,Pno,Qty)
F={Sno → Sname,Sno → Status,Status → City,(Sno,Pno)→ Qty}
对具体的关系FIRST如下表所示。从表中可以看出,每一个分量都是不可再分的数据项,所以是1NF的。但是,1NF存在4个问题。
(1)冗余度大。例如每个供应者的Sno、Sname、Status、City要与其供应的零件的种类一 样多。
(2)引起修改操作的不一致性。例如供应者S1从“天津”搬到“上海”,若不注意,会使 一些数据被修改,另一些数据未被修改,导致数据修改的不一致性。
(3)插入异常。关系模式FRIST的主码为Sno、Pno, 按照关系模式实体完整性规定主码不能取空值或部分取空值。这样,当某个供应者的某些信息未提供时(如Pno), 则不能进行插入操作,这就是所谓的插入异常。
(4)删除异常。若供应商S4的P2零件销售完了,并且以后不再销售P2零件,那么应删除该元组。这样,在基本关系FIRST找不到S4,可S4又是客观存在的。
正因为上述4个原因,所以要对模式进行分解,并引入了2NF。