表达式可分为3步进行。
第一步:求笛卡儿积R×S。R×S共7列,分别为R.A,R.B,R.C,R.D,S.C,S.D,S.E。
第二步:选取R×S中第4个属性值小于第5个属性值的元组。
第三步:对第二步的结果进行投影运算,选择第3、4、7列。SELECT语句中,SELECT对应于关系代数中的投影,第3、4、7列分别为R.C,R.D,S.E;FROM对应于笛卡儿积,FROM子句中出现的多个表之间用逗号分隔;WHERE对应于关系代数中的选择谓词,这里为R.D
每个科室有若干名职工,一名职工只属于一个科室,所以科室与职工的所属联系类型是一对多,即1:n。一个医生可以为多个病患看病,一个病患可以由多个医生多次诊治,所以病患与医生的就诊联系类型为多对多,即n:m。对于不同的职工,职工号是唯一的,不同职工的姓名有可能是相同的,也就是说职工姓名不是唯一的,而不同就诊时间的就诊情况是不同的,因此就诊联系的最合理的设计是:就诊(病历号,职工号,就诊时间,就诊情况),就诊关系的主键是"病历号,职工号,就诊时间"。
表达式可分为3步进行。
第一步:求笛卡儿积R×S。R×S共7列,分别为R.A,R.B,R.C,R.D,S.C,S.D,S.E。
第二步:选取R×S中第4个属性值小于第5个属性值的元组。
第三步:对第二步的结果进行投影运算,选择第3、4、7列。SELECT语句中,SELECT对应于关系代数中的投影,第3、4、7列分别为R.C,R.D,S.E;FROM对应于笛卡儿积,FROM子句中出现的多个表之间用逗号分隔;WHERE对应于关系代数中的选择谓词,这里为R.D
每个科室有若干名职工,一名职工只属于一个科室,所以科室与职工的所属联系类型是一对多,即1:n。一个医生可以为多个病患看病,一个病患可以由多个医生多次诊治,所以病患与医生的就诊联系类型为多对多,即n:m。对于不同的职工,职工号是唯一的,不同职工的姓名有可能是相同的,也就是说职工姓名不是唯一的,而不同就诊时间的就诊情况是不同的,因此就诊联系的最合理的设计是:就诊(病历号,职工号,就诊时间,就诊情况),就诊关系的主键是"病历号,职工号,就诊时间"。
每个科室有若干名职工,一名职工只属于一个科室,所以科室与职工的所属联系类型是一对多,即1:n。一个医生可以为多个病患看病,一个病患可以由多个医生多次诊治,所以病患与医生的就诊联系类型为多对多,即n:m。对于不同的职工,职工号是唯一的,不同职工的姓名有可能是相同的,也就是说职工姓名不是唯一的,而不同就诊时间的就诊情况是不同的,因此就诊联系的最合理的设计是:就诊(病历号,职工号,就诊时间,就诊情况),就诊关系的主键是"病历号,职工号,就诊时间"。
C→B,AC→AB,而AB→C,所以AC→C,关系R有2个候选关键字AC和AB。包含在任何候选码中的诸属性都是主属性,A、B、C都包含在候选码中,因此主属性有3个,非主属性有0个。
C→B,AC→AB,而AB→C,所以AC→C,关系R有2个候选关键字AC和AB。包含在任何候选码中的诸属性都是主属性,A、B、C都包含在候选码中,因此主属性有3个,非主属性有0个。
表达式可分为3步进行。第一步:求笛卡儿积R×S。R×S共7列,分别为R.A,R.B,R.C,R.D,S.C,S.D,S.E。第二步:选取R×S中第4个属性值小于第5个属性值的元组。第三步:对第二步的结果进行投影运算,选择第3、4、7列。SELECT语句中,SELECT对应于关系代数中的投影,第3、4、7列分别为R.C,R.D,S.E;FROM对应于笛卡儿积,FROM子句中出现的多个表之间用逗号分隔;WHERE对应于关系代数中的选择谓词,这里为R.D
E-R图中有3种联系,即一对一、一对多和多对多。在将E-R图转换为关系模型时,如果联系是一对一,则可将联系转换成一个独立的关系模式,关系模式的名称取联系的名称,关系模式的属性包括该联系所关联的两个实体的码及联系的属性,关系的码取自任一方实体的码;也可以将联系归并到管理的两个实体的任一方,给待归并的一方实体属性集中增加另一方实体的码和该联系的属性即可,归并后的实体码保持不变。如果联系是一对多,可将联系转化成一个独立的关系模式,关系模式的名称取联系的名称,关系模式的属性包括该联系所关联的两个实体的码及联系的属性,关系的码是多方实体的码;也可将联系归并到关联的两个实体的多方,给待归并的多方实体属性集中增加另一方实体的码和该联系的属性即可,归并后的多方实体码保持不变。如果联系是多对多,则联系只能转换成一个独立的关系模式,关系模式的名称取联系的名称,关系模式的属性取该联系所关联的两个多方实体的码及联系的属性,关系的码是多方实体的码构成的属性组。