赞
踩
请结合自己的了解和认识,选择一个熟悉且适中的应用场景,设计并完成该应用对应的数据库。要求完成:
1、需求分析
描述系统所要完成的功能和用到的数据。
学院教务管理系统功能:
本教务系统用户分为,学生,教师,能够进行数据库的数据定义、数据操纵、数据控制等处理功能。具体功能应包括:可提供课程安排、课程成绩数据的添加、插入、删除、更新、查询,学生及教职工基本信息查询的功能。
用到的数据:
学生(学号stu_id,学生密码stu_password,姓名stu_name,性别stu_sex,年龄stu_age)
班级(班级编号cla_id,班级名称cla_name)
专业(专业编号maj_id,专业名maj_name,所属院系maj_faculty)
教师(职工号teach_id,姓名teach_name,性别teach_sex,年龄teach_age,教师密码teach_password)
课程(课程编号cou_id,课程名cou_name,课程学时cou_time,学分cou_credit,先修课cou_cpno)
学生-课程:成绩grade
课程-教师:上课时间teaching_time
用户:用户名users_name,用户密码users_password
2、概要模型设计
根据需求,完成E-R图的设计。
3、逻辑结构设计
(1)根据E-R图,给出的关系模式。
将上面的E-R图转换为关系模式(下划线且加粗为主键,斜体且加粗为外键):
学生(学号,学生密码,姓名,性别,年龄,班级编号)
班级(班级编号,班级名称,专业编号)
专业(专业编号,专业名,所属院系)
教师(职工号,姓名,性别,年龄,教师密码)
课程(课程编号,课程名,课程学时,学分,先修课,职工号)
选课(学号,课程编号,成绩)把学生表的主键和课程表的主键设置为选课表的联合主键,学号和课程编号同时均为外键
教授(课程编号,职工号,上课时间)把课程编号和职工号设置为教授表的联合主键,课程编号和职工号同时均为外键
(2)说说自己设计的表是第几范式,给出必要的判断过程。
学生表、班级表、专业表、教师表、课程表是第二范式,每一列都是不可再分的基本数据项,所有的非主属性完全依赖于码,即不存在非主属性对码的部分函数依赖。
选课表、教授表是BCNF,每一列都是不可再分的基本数据项,所有的非主属性完全依赖于码,不存在非主属性对码的传递依赖和部分依赖,所有主属性对每一个不包含它的码,也是完全函数依赖,同时任何属性都应该函数依赖于码。以选课表为例,SC关系中stu_id,cou_id是码,grade是非主属性,非主属性无法传递函数依赖,(stu_id,cou_id)联合确定grade,只有一个函数依赖。教授表同理。
4、物理结构设计与数据库实施
用SQL实现数据库和所有数据表的创建,包括相应的完整性约束(主外键等)。
(1)--创建数据库affairs
create database affairs;
(2)--创建学生表students
create table students
(stu_id int primary key,
stu_password int not null,
stu_name varchar(20) not null,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。