数据库系统原理 实验3 数据库设计

数据库系统原理 实验3 数据库设计

一. 实验目的

1、理解概念模型的意义,掌握根据给定业务需求描述建立相应概念模型的方法,并采用适当的图形化建模方法(如陈氏表示法的ER图或Martin表示法的IE鸦脚模型ER图等)和建模工具(如Power designer、Visio、RationalRose或ERWin等); 2、掌握将ER模型转换为关系数据模型的基本方法; 3、掌握运用关系规范化理论对模型进行优化处理的基本方法。 4、结合关系规范化理论对模型进行优化处理,使得每个关系模式至少达到3NF。

二. 实验要求

1)系统需求根据所选题目的相应内容描述进行整合,并对其中未说明的内容(如系统功能,实体的属性)根据个人理解补充完善,或添加必要的假设(如业务规则),作为后续模型设计的起点和模型验证的依据; 2)其他不做强制要求的内容:强、弱实体之分;父、子实体;标识、非标识联系之分;联系的最小基数。

三. 实验内容

从用户需求(详见所给材料)出发,按照数据库设计步骤,分别完成如下内容: 1、整理用户需求,并对材料中未明确说明的内容按自己的理解做出完善和假设,形成系统需求说明(系统功能分解不作要求。重点在于数据需求!); 2、概念设计:ER模型 a) 根据业务需求(包括自己假设的规则)提取必要的实体、属性和联系(包括联系的类型); b) 给出最终的全局ER图(模型力求精简,消除不必要的冗余),并给出必要的说明。 3、逻辑设计:关系模型 a) 把ER模型转换成各个关系模式,并根据需要修改或添加列(如主键、外键等),为每个属性选择合适的数据类型,参考格式如下图所示;

四. 实验过程及结果

(根据实验内容要求,给出每一步的相应文档,包括需求分析、ER模型、逻辑模型。)

需求分析

  1. 查询所有分校校长的名字和电话号码 要有学校实体 包含学校类别(分校或总校) 校长的名字和电话号码
  2. 按城市、分校名称和教练性别,查询教练的基本信息; 要有教练实体 包含所属学校,教练性别 通过外键与学校实体建立联系 增添学校属性城市、分校名称
  3. 按城市汇总查询每个分校的员工人数; 学校实体增添属性员工人数
  4. 按年龄查询超过该年龄并且担任教练的员工信息; 教练实体增添属性年龄
  5. 按年、月查询通过汽车驾驶测试的驾校学员名单及通过时间 要有学员实体 包含学员ID 学员姓名 学员状态(是否通过考试)以及通过使时间 即

ER模型

逻辑模型

school表

coach表

student表

五. 实验中的问题及心得

问题

需求分析及ER图绘制未遇到问题 设计外键时对MySQL外键设置中的Cascade、NO ACTION、Restrict、SET NULL属性不是很清楚 cascade方式 在父表上update/delete记录时,同步update/delete掉子表的匹配记录 . set null方式 在父表上update/delete记录时,将子表上匹配记录的列设为null 要注意子表的外键列不能为not null . No action方式 如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作 . Restrict方式 同no action, 都是立即检查外键约束 . Set default方式 父表有变更时,子表将外键列设置成一个默认的值 但Innodb不能识别

心得

经验分享 程序员 微信小程序 职场和发展