规范化是否正确?

时间:2014-12-12 00:13:06

标签: database normalization database-normalization

我有一个属性列表,我试图找出1NF,2NF,3NF,BCNF,4NF  属性列表是:

 - Pat_Name    
 - Pat_Address
 - Pat_Num
 - Pat_Dob
 - Pat_Gender
 - Pat_MotherName  
 - Pat_FatherName
 - Doc_Name  
 - Doc_Address
 - Doc_HomeTel
 - Doc_MobTel
 - Doc_Qualification
 - Doc_Dob
 - App_Date
 - App_Time
 - App_Doc
 - Visit_Date
 - Visit_Time
 - Visit_Reason   
 - Diagnosis
 - Prescription
 - DateOfBill
 - TotalBillCharge

我得到的第一范式:

 Patient (Table)     -> Pat_ID,Pat_Name,Pat_Address,Pat_Num,Pat_Dob,Pat_Gender,Pat_MotherName,Pat_FatherName
 Doctor  (Table)     -> Doc_ID,Doc_Name,Doc_Address,Doc_HomeTel, Doc_MobTel,Doc_Qualification, Doc_Dob
 Appointment(Table)  -> App_ID,Pat_ID,Doc_ID,App_Date,APP_Time,Visit_Reason,Diagnosis,Prescription,DateOfBill,TotalBillCharge

在1NF:

我对Visit_Time和Visit_Date感到困惑(与Appointment_Time& Appointment_Date相似)。看起来类似我所以我删除了两个。这是我做的正确还是我应该为访问制作新表(真的需要对此有所帮助)? 我已经为识别主键创建了新属性。

2NF:

表患者没有任何部分依赖性(我是否正确?)    表医生没有任何部分依赖(我是否正确?)    表I得到了部分依赖性,因此,我将另一个名为visit

的表分开
   Appointment -> App_ID,Pat_ID,Doc_ID,App_Date,APP_Time
   Visit       -> App_ID,Visit_Reason,Diagnosis,Prescription,DateOfBill,TotalBillCharge

在3NF:    表患者和医生我没有发现任何传递依赖    在表格访问中具有传递依赖性,因此我将其与新表格账单分开

Visit -> **App_ID**,Visit_Reason,Diagnosis,Prescription_ID     //(I created new Attributes here, is this correct ?)
Bills -> Prescription_ID, DateOfBill, TotalBillCharge

感谢任何帮助。 :)

0 个答案:

没有答案