LabResults:
FirstName,LastName,DOB,性别,ConsultDoctor,SSN,地址,电话 - pk,TestRequest,ChemistryPanels,DrugLevel
ImagingResults:
PatientName,DOB,Phone fk,ICD9,授权,ReferPhysician,PhysicianNum fk,MRI,CT,Mammogram,Ultrasound,Nuclear Medicine,PET / CT,GeneralRadiology,Others
以上是项目即时执行的两个实体和属性。如果我的功能依赖是正确的,我想知道的是什么。
电话(FirstName,LastName,DOB,性别,SSN,地址,ConsultDoctor,TestRequest,ChemistryPanels,DrugLevel)
电话(PatientName,DOB,ICD9,AuthorizationNum,ReferPhysician,PhysicianNum,MRI,CT,Mammogram,Ultrasound,Nuclear Medicine,PET / CT,GeneralRadiology,Others)
有些事情。
FD通常使用LHS arrow RHS
类型的语法来表示,例如, phone -> DOB,SSN
。
有时,明确编写大括号来强调LHS和RHS是属性集的概念:{phone} -> {DOB,SSN}
。
看起来你在这里得到了两个关系模式。在通常的表示法中,它是使用name paren attrs paren
语法表示的模式:LabResults(FirstName,LastName,...)
。
提到哪个属性是[主键的一部分]是将事情颠倒过来和倒退:应用于关系模式的哪些键应该是FD应用于它的结果(并且必须给出FD,而不是键)。
如果给你候选密钥[s],那么找到FD只是用密钥和RHS替换LHS的问题,对于每个给定的密钥,你已经为LabResults模式正确地做了,模数偏离了通常的语法。
对于第二个模式,您的引用文本似乎没有给您任何键(根据规范化理论,外键不是[候选]键)。此外,无论FD的LHS
部分出现什么,都必须是模式本身的[一组]属性[s]。 ImagingResults没有phone
属性,所以你在那里出错了。