数据库三范式设计习题
题目
设学校环境如下: 一个系有若干个专业,每一个专业只属于一个系。每个专业一年只招一个班,每个班有若干名学生。一个系的学生住在同一个宿舍区,每个学生可以参加几个学会,一个学会有若干学生。现在要建立关于系、学生、班级、学会的数据库,关系模式为:
班(班号,专业名,系名,班人数,入学年份)
学生(学号,姓名,出生日期,系名,班号,宿舍区)
系(系号,系名,办公室,系人数)
学会(学会名,成立时间,地点,会员数)
# 学生参加各学会要注明入会年份
题干
找出各个关系的候选码
- 班(班号,专业名,系名,班人数,入学年份)(班号)或(专业名,入学年份)
- 学生(学号,姓名,出生日期,系名,班号,宿舍区)(学号)
- 系(系号,系名,办公室,系人数)(系号)或(系名)或(系号,系名)
- 学会(学会名,成立时间,地点,会员数)(学会名)
请写出每个关系模式的函数依赖,分析是否存在部分依赖,是否存在传递依赖.
班(班号,专业名,系名,班人数,入学年份)
- 班号→专业名, 班号→班人数, 班号→入学年份
- 专业名→系名
(专业名,入学年份)f→ 班号
班号→专业名, 专业名≠>班号, 专业名→系名。班号 t→ 系名
学生(学号,姓名,出生日期,系名,班号,宿舍区)
- 学号→姓名, 学号→出生日期, 学号→班号
- 系名→宿舍区
- 班号→系名
- 学号→系名,系名≠>学号,系名→宿舍区。学号 t→ 宿舍区
- 班号→系名,系名≠>班号,系名→宿舍区。班号 t→ 宿舍区
- 学号→班号,班号≠>学号,班号→系名。 学号 t→ 系名
系(系号,系名,办公室,系人数)
- 系号↔系名, 系号→办公室, 系号→系人数
学会(学会名,成立时间,地点,会员数)
- 学会名→成立时间, 学会名→地点, 学会名→会员数
对该关系模式进行规范化,并使规范化后的数据模型属于3NF关系模式
- 班(班号,专业名,入学年份)
- 学生(学号,姓名,出生日期,班号)
- 系(系名,系号,办公室, 宿舍区)
- 学会(学会名,成立时间,地点)
- 学号-学会(学号,学会名,入会年份)
- 专业(专业名,系名)
数据库三范式设计习题相关推荐
- 如何在数据库三范式的基础上进行数据库冗余设计
数据库设计过程中不仅要考虑遵循第三范式,还要考虑是否冗余 很多数据库设计书籍都强调数据库设计三范式,而三范式的一个重要工作就是消除冗余,可以消除冗余在大多数情况下是正确的.当在实际的业务模型中,处理复 ...
- python学习笔记 day44 数据库三范式
参考自 https://www.cnblogs.com/wangfengming/articles/7929118.html 1. 数据库三范式概念: 为了建立减少冗余,结构合理的数据库,涉及数据库时 ...
- 为什么我不喜欢数据库三范式
插曲 最近,一个远房亲戚的小表弟准备选修专业 找到我问: "哥,现在学数据库有没有前途阿?""当然有啊,前途大大的呢""那我现在开始学数据库,需要先从 ...
- MySQL笔记(七)数据库三范式
这是我在学习Mysql之路上做的笔记,今天将它粘出来.这一篇主要是数据库三范式.有错误的欢迎大家指出... 数据库三范式 (1)第一范式(1NF): 定义:每一列都是不可分割的原子数据项(强调的是列的 ...
- 数据库三范式 无重复列 完全依赖主键 属性不依赖非主属性
参考:http://www.cnblogs.com/xrq730/p/5100442.html 细说数据库三范式 2.1 第一范式(1NF)无重复的列,保证每列的原子性,即每一列的各个属性值之间不能有 ...
- 数据库三范式通俗理解 -数据库三范式官方定义
数据库三范式 官方定义 第一范式(1NF):数据库表中的字段都是单一属性的,不可再分. 第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖 第三范式(3NF):在第二范式的 ...
- MySql——数据库三范式
用于自己学习时的简单解释 数据库三范式:是数据库的设计原则,主要目的是为了避免数据冗余. 数据库的设计应当遵循三范式 第一范式:任何一张表都应该有主键,每一个字段必须具有原子性不可再分 第二范式:在第 ...
- 三句话归纳数据库三范式
数据库三范式,网友已经总结n多了,这里不再赘述. 其实,归纳起来,就三句话: 一:行不可再分 二:列不可再分 三:列不可重复
- 从数据库三范式角度分析一对多、多对多和一对一关系
文章目录 前言 一.三范式的目的 二.三范式及其对应关系 1.第一范式 2.第二范式 3.第三范式 4.一对一关系 总结 前言 几乎绝大多数项目的最终目的都是通过操作数据库来实现的,所以,操作数据库的 ...
最新文章
- fastlane自动打包--详细介绍
- 总结FormsAuthentication的使用
- mysql5.7 too many_Mysql 错误too many connections解决方案
- don't run elasticsearch as root
- 效率低的日子怎么办?
- sql用户名数据迁移到mysql_如何将SQL Server数据迁移到MySQL
- 禁用linux的密码策略
- mysql 部署最佳实践_MySQL安装脚本最佳实践
- Google Chrome 所有版本下载
- 解决ojdbc7依赖下载失败
- snap7读写西门子plc1200步骤(python) PLC通讯
- android日记论文摘要,毕业设计(论文)-基于android的日记本的设计与开发.doc
- 番外篇 之 实现Unity和Android进行交互(基于Android Studio 3.1.1以及Jar包方式)
- 贝尔维尤游戏巨头融资2亿美元!
- 七大黄金定律与产品设计
- 必备的 6 大计算机网络基础知识点!会 3 个以上就很牛逼了
- 使用POI 删除批注
- android视频添加字幕,视频加字幕手机app
- 什么是404页面,如何正确设置制作404页面
- 用matlab代码写一下jackknife方法的校正步骤?、