数据库复习题二

本文是关于数据库设计的复习资料,重点介绍了概念设计、逻辑设计、物理设计和实现四个阶段,包括画ER图、关系模式、数据库范式、数据操纵及查询等内容。通过实例练习,加深对关系模式转换、主键、外键的理解,以及数据插入、更新和删除的操作。此外,还涵盖了数据类型的介绍,如字符型、整数型和日期时间型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本复习题有一和二
此处为复习题二
觉得有用请点赞!

数据库系统与应用的知识点

一、 根据客户的问题进行需求分析(调查分析用户活动 、收集和分析需求数据,确定系统边界 画数据流图、数据字典)
二、 概念设计:画ER图 重点
三、 逻辑设计:关系模式(利用函数依赖、范式规范关系,闭包) 重点
四、 物理设计:确定存储方式、索引、数据结构
五、 实现:创建数据库、数据表、修改表、删除表、数据操纵(添加数据、修改数据、删除数据) 重点
六、 查询:单表查询,多表查询(连接查询、子查询) 重点
七、 程序设计:存储过程

详细内容:

一、概念设计:画ER图 重点

在这里插入图片描述

绘制E-R图的步骤
(1)首先确定实体类型。
(2)确定联系类型(1:1,1:N,M:N)。
(3)把实体类型和联系类型组合成E—R图。
(4)确定实体类型和联系类型的属性。
(5)确定实体类型的键,在E—R图中属于键的属性名下画一条横线。

二、逻辑设计:关系模式(利用函数依赖、范式规范关系) 重点

1、关系模式(Relational Schema):由一个关系名以及它所有的属性构成。

格式: 关系名(属性名1,属性名2,…,属性名n)
在SQL Server中对应的表结构为:
表名(字段名1、字段名2,… ,字段名n)

2、ER图转换为关系模式

 转换原则
• 将E-R图转换为关系模型实际上就是将实体、属性和联系转换成关系模式。
• 在转换中要遵循以下原则:
(1)一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的键就是关系的键。
(2)一个联系转换为一个关系模式,与该联系相连的各实体的键以及联系的属性均转换为该关系的属性。该关系的键有三种情况:
– 如果联系为1:1,则每个实体的键都是关系的候选键;
– 如果联系为1:n,则n端实体的键是关系的键;
– 如果联系为n:m,则各实体键的组合是关系的键。

3、数据库范式

基本概念
 实体:现实世界中客观存在并可以被区别的事物。比如“一个学生”、“一本书”、“一门课”等等。值得强调的是这里所说的“事物”不仅仅是看得见摸得着的“东西”,它也可以是虚拟的,如“老师与学校的关系”。
 属性:二维表中的每一列称为关系的一个属性。
 元组:表中的一行就是一个元组。
 域(Domain):属性所对应的取值变化范围叫属性的域。
 分量:元组的某个属性值。在一个关系数据库中,它是一个操作原子,即关系数据库在做任何操作的时候,属性是“不可分的”。否则就不是关系数据库了。
 主键(Primary Key):能唯一标识关系中不同元组的属性或属性组称为该关系的候选关键字。
 外键(Foreign Key):如果关系R的某一(些)属性A不是R的关键字,而是另一关系S的关键了,则称A为R的外来关键字。
第一范式(1NF):属性不可分
在这里插入图片描述
第二范式(2NF):符合1NF,并且,非主属性完全依赖于码。
在这里插入图片描述

 第三范式(3NF)符合2NF,并且,消除传递依赖
 上面的“学生上课表新”符合2NF,可以这样验证:两个主属性单独使用,不用确定其它四个非主属性的任何一个。但是它有传递依赖!
 在哪呢?问题就出在“老师”和“老师职称”这里。一个老师一定能确定一个老师职称。
 有什么问题吗?想想:
小结:
在数据库设计中,为了更好地应用三个范式,就必须通俗地理解三个范式(通俗地理解是够用的理解,并不是最科学最准确的理解):
 第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;
 第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;
 第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。
 没有冗余的数据库设计可以做到。但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。具体做法是:在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,允许冗余。

练习1:设某商业集团的仓库管理系统

数据库有三个实体。
一是“公司”实体,属性有公司编号、公司名、地址等;
二是“仓库”实体,属性有仓库编号、仓库名、地址等;
三是“职工”实体,属性有职工编号、姓名、性别等。
公司与仓库间存在“隶属”联系,每个公司管辖若干仓库,每个仓库只能属于一个公司管辖;
仓库与职工间存在“聘用”联系,每个仓库可聘用多个职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和工资。
(1)试画出ER图,并在图上注明属性、联系的类型。
(2)将ER图转换成关系模式,并注明主键和外键。
在这里插入图片描述
公司(公司编号,公司名,地址)
仓库(仓库编号,仓库名,地址,公司编号)FK:公司编号
职工(职工编号,姓名,性别)
聘用(职工编号,仓库编号,聘期,

1、有一课程管理系统,有如下特点:一个系可开多门课程,但一门课只在一个系部开 ,一个学生可选修多门课程,每门课可供若干学生选修,一名教师只教一门课程,但 一门课程可有几名教师讲授,每个系聘用多名教师,但一个教师只能被一个系所聘用, 要求这个课程管理系统能查到任何一个学生某门课程的成绩,以及这个学生的这门课是 哪个老师所教的。 (1)请根据以上描述,绘制相应的E-R图,并直接在E- R图上注明实体名、属性、联系类型; (2)将E-R图转换成关系模型,画出相应的数据库模型图,并说明主键和外键。 (3)分析这些关系模式中所包含的函数依赖,根据这些函数依赖,分析相应的关系模式 达到了第几范式。对这些关系模式进行规范化。 1、参考答案: 2、汽车运输公司数据库中有三个实体集。一是"车队"实体集,属性有车队号、车队 名等;是"车辆"实体集,属性有牌照号、厂家、出厂日期等;三是"司机"实体集,属 性有司机编号、姓名、电话等。 车队与司机之间存在"聘用"联系,每个车队可聘用若干司机,但每个司机只能应聘于一 个车队,车队聘用司机有"聘用开始时间"和"聘期"两个属性; 车队与车辆之间存在"拥有"联系,每个车队可拥有若干车辆,但每辆车只能属于一个 车队; 司机与车辆之间存在着"使用"联系,司机使用车辆有"使用日期"和"公里数"两个属性 ,每个司机可使用多辆汽车,每辆汽车可被多个司机使用。 (1)请根据以上描述,绘制相应的E-R图,并直接在E- R图上注明实体名、属性、联系类型; (2)将E-R图转换成关系模型,画出相应的数据库模型图,并说明主键和外键。 (3)分析这些关系模式中所包含的函数依赖,根据这些函数依赖,分析相应的关系模式 达到了第几范式。对这些关系模式进行规范化。 2、参考答案: (1)E-R图计如下: (2)转换成的关系模型应具有4个关系模式: 车队(车队号,车队名) 车辆(车牌照号,厂家,生产日期,车队号) 司机(司机编号,姓名,电话,车队号,聘用开始时间,聘期) 使用(司机编号,车辆号,使用日期,公里数) 3、某商业集团数据库中有三个实体集。一是"仓库"实体集,属性有仓库号、仓库名和 地址等;是"商店"实体集,属性有商店号、商店名、地址等;三是"商品"实体集,属 性有商品号、商品名、单价。 仓库与商品之间存在"库存"联系,每个仓库可存储若干种商品,每种商品存储在若干仓 库中,库存有个"库存量"、"存入日期"属性; 商店与商品之间存在着"销售"联系,每个商店可销售若干种商品,每种商品可在若干 商店里销售,每个商店销售一种商品有月份和月销售量两个属性; 仓库、商店、商品之间存在一个三元联系"供应",反应了把某个仓库中存储的商品供 应到某个商店,此联系有月份和月供应量两个属性。 (1)请根据以上描述,绘制相应的E-R图,并直接在E- R图上注明实体名、属性、联系类型; (2)将E-R图转换成关系模型,画出相应的数据库模型图,并说明主键和外键。 (3)分析这些关系模式中所包含的函数依赖,根据这些函数依赖,分析相应的关系模式 达到了第几范式。对这些关系模式进行规范化。 3、参考答案 (1)E-R图计如下: (2)据转换规则, E-R图可转换成6个关系模式: 仓库(仓库号,仓库名,地址) 商品(商品号,商品名,单价) 商店(商店号,商店名,地址) 库存(仓库号,商品号,日期,库存量) 销售(商店号,商品号,月份,月销售量) 供应(仓库号,商店号,商品号,月份,月供应量) 4.有关系模式 R(职工名,项目名,工资,部门名,部门经理) 如果规定每个职工可参加多个项目,各领一份工资;每个项目只属于一个部门管理, 一个部门有多个项目;每个部门只有一个经理。 1. 试写出关系模式R的函数依赖和关键码。 2. 说明R不是2NF模式的理由,并把R分解成2NF模式集。 3. 进而把R分解成3NF模式集,并说明理由。 4、参考答案 R的基本函数依赖有三个: (职工名,项目名)(工资 项目名 (部门名 部门名 (部门经理 项目名 (部门经理 关键码为(职工名,项目名)。 根据 ,R中存在下列两个函数依赖: (职工名,项目名)( 项目名 ((部门名) (职工名,项目名)( 项目名 ((部门经理) 这两个函数依赖都是局部依赖,因此R不是2NF模式。 R应分解成两个模式: R1(项目名,部门名,部门经理) R2(职工名,项目名,工资) R1和R2都是2NF模式。 R2已是3NF模式,因为非主属性"工资"已经完全依赖主键"职工名,项目名" 在R1中,由于存在两个函数依赖: 项目名(部门名 部门名\(项目名 部门名(部门经理 即存在非主属性对主键的传递依赖,因此R1不是3NF模式。 对R1应分解成两个模式:R11(项目名,部门名),R12(部门名,部门经
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值