数据库系统原理 实验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模型转换成各个关系模式,并根据需要修改或添加列(如主键、外键等),为每个属性选择合适的数据类型,参考格式如下图所示;
数据库系统原理 实验3 数据库设计_第1张图片

四. 实验过程及结果

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

需求分析

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

    数据库系统原理 实验3 数据库设计_第2张图片
    数据库系统原理 实验3 数据库设计_第3张图片
    数据库系统原理 实验3 数据库设计_第4张图片

ER模型

数据库系统原理 实验3 数据库设计_第5张图片

逻辑模型

school表

数据库系统原理 实验3 数据库设计_第6张图片

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不能识别

心得

多上手实践 才能发现问题 解决问题
实验中的问题解决方案转自MySQL外键设置中的的 Cascade、NO ACTION、Restrict、SET NULL
原创不易 转载请标明出处
帮你解决了作业难题
给个赞不过分吧
数据库系统原理 实验3 数据库设计_第7张图片

你可能感兴趣的:(数据库实验,数据库架构,数据库开发)