SQL与数据库复习:3-4NF范式、关系操作与设计实例

需积分: 15 0 下载量 181 浏览量 更新于2024-08-05 收藏 295KB DOCX 举报
在软件工程的大二下学期数据库复习中,我们重点关注了SQL基础知识与关系数据库设计的相关概念。首先,了解SQL的关键操作,如`GROUP BY`子句用于按指定列对数据进行分组并计算汇总值,而`DROP TABLE`则是用于删除不再需要的表。数据库设计中,第三范式(3NF)是评估关系模型的一个标准,它确保表中的数据无部分依赖和传递依赖,如提供了一个零件供应商关系模型示例,该关系属于3NF。 接下来,函数依赖在数据库理论中扮演重要角色。例如,函数依赖集`F`简化为`{A→B,B→C,A→D,A→E}`表明A是决定其他属性的键,这符合2NF的要求,因为存在传递函数依赖。在关系代数中,选择操作用于基于特定条件选取元组,而设置`ForeignKey`是实现参照完整性的关键。 安全性是数据库管理中的另一要素,确保数据的保密性和完整性。数据库的二级映像是指数据在不同抽象级别之间的映射,包括外模式到模式的映射和模式到内模式的映射。举例来说,关系代数查询表达式`ΠSNO,SNAME(δSDPET=’CS’(S))`与SQL查询`SELECT SNO,SNAME FROM S WHERE SDEPT=’CS’`展示了如何用SQL实现特定条件下的数据提取。 创建数据库角色,如`CREATEROLER1`,在数据库权限管理中是常见的任务。关于范式,关系R由于存在非主属性负责人对候选码的传递函数依赖,所以它处于2NF,而非3NF。为了达到更高的范式,需要消除传递依赖,例如,可以将R分解为R1(商店编号,商品编号,数量,部门编号)和R"(可能是一个视图或进一步分解后的关系)来消除部分依赖,从而提升到BCNF(或更高)。 最后,讨论了一个实际的关系模式R,它包含商店、商品、数量、部门和负责人等属性,并满足一些具体的规定。通过分析,关系R的基础函数依赖被识别出来,候选码是商店编号和商品编号。由于存在非主属性负责人对候选码的传递依赖,R达到了2NF,但没有达到3NF。通过分解,我们可以将其提升到至少3NF或BCNF,具体取决于分解策略是否完全消除了传递依赖。