数据库逻辑结构设计该系列计划包括 5 部分:完整性约束理论及应用、范式理论及应用、需求分析、概念结构设计、逻辑结构设计.本文就是第五部分,介绍逻辑结构设计得内容,包括 E-R 图向关系模型得转换、数据模型得优化、用户子模式得设计等问题。1。逻辑设计概述概念结构就是独立于任何一种数据模型得,在实际应用中,一般所用得数据库环境已经给定(如SQ L Server 或 O r a c e l或 MySql),本文讨论从概念结构向逻辑结构得转换问题。由于目前使用得数据库基本上都就是关系数据库,因此首先需要将E—R图转换为关系模型,然后根据具体 DB M S 得特点与限制转换为特定得 DBMS 支持下得数据模型,最后进行优化。2。E—R 图向关系模型得转换2、1 一个例子E-R 图如何转换为关系模型呢?我们先瞧一个例子。图 2、1 就是学生与班级得 E-R 图,学生与班级构成多对一得联系.根据实际应用,我们可以做出这个简单例子得关系模式:学生(学号,姓名,班级)班级(编号,名称)“学生、班级”为外键,参照“班级、编号”取值。这个例子我们就是凭经验转换得,那么里面有什么规律呢?在 2、2 节,我们将这些经验总结成一些规则,以供转换使用。2、2 转换规则(1) 一个实体型转换为一个关系模式一般 E-R 图中得一个实体转换为一个关系模式,实体得属性就就是关系得属性,实体得码就就是关系得码。(2) 一个 1:1 联系可以转换为一个独立得关系模式,也可以与任意一端对应得关系模式合并。图 2、2 就是一个一对一联系得例子。根据规则(2),有三种转换方式。 联系单独作为一个关系模式此时联系本身得属性,以及与该联系相连得实体得码均作为关系得属性,可以选择与该联系相连得任一实体得码属性作为该关系得码。结果如下:职工(工号,姓名)产品(产品号,产品名)负责(工号,产品号)其中“负责"这个关系得码可以就是工号,也可以就是产品号。 与职工端合并职工(工号,姓名,产品号)产品(产品号,产品名)其中“职工、产品号"为外码.iii) 与产品端合并职工(工号,姓名)产品(产品号,产品名,负责人工号)其中“产品、负责人工号”为外码。(3) 一个 1:n 联系可以转换为一个独立得关系模式,也可以与 n 端对应得关系模式合并。(i) 若单独作为一个关系模式此时该单独得关系模式得属性包括其自身得属性,以及与该联系相连得实体得码。该关系得码为 n 端实体得主属性。顾客(顾客号,姓名)订单(订单号,……)订货(顾客号,...