实验7 数据库设计基础
7.1 实验目的
(1)熟悉E-R模型的基本概念和图形的表示方法。 (2)掌握将现实世界的事物转化为E-R图的基本技巧。 (3)熟悉关系数据模型的基本概念。
(4)掌握将E-R图转化为关系表的基本技巧。
7.2实验内容
(1)根据需求确定实体、属性和联系。 (2)将实体、属性和联系转化为E-R图。 (3)将E-R图转化为表。
7.3 实验步骤
选的题目: 学生成绩管理系统
一、需求分析
1、系统功能要求设计
此系统实现如下系统功能:
(1)使得学生的成绩管理工作更加清晰、条理化、自动化。
(2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密 码等功能。容易地完成学生信息的查询操作。
(3)设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性, 完整性,并发控制,备份和恢复等方面的功能要求。
2、系统数据需求分析
通过与学生成绩管理系统用户交谈等方式以及作者对学生成绩管理系统的分析,可以 得到成绩管理数据库系统的数据需求。 该系统用户分为两大类,学生,老师。
我们学院有多个系,每个系开设多门课程,学生可以选修多门课程,并由其唯一的学号标识。其中课程又包含课程名,课程号,学分,学时等。成绩又包含课程号,学号,分数。 教师可以教多门课程,并由其唯一的工号标识。教师信息包括工号,姓名,性别,系 别等。
3、系统模块设计
成绩管理系统大体可以分成二大模块如, 一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块,在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还 有教师、课程等相关信息的模块;可以得到系统流程图:
登录失败 退出系用户验
统 证
登陆成功
否 学生
是
选课管课程管成绩查学生管 理 理 询 理
四、概念模型设计
由需求分析的结果可知,本系统设计的实体包括:
(1)学生基本信息:学号、姓名、性别、系别、出生日期 (2)教师基本信息:工号、姓名、性别、系别 (3)课程基本信息:课程名、课程号、课时、学分 这些实体间的联系包括:
(1) 每位学生可以学习多门课程,每门课程可供多位学生学习。 (2) 每位老师可以教授多门课程,每门课程可供多位老师授课。
由上述分析可得到系统的E—R图: 学号 姓名 学生 性别 系别 出生日期 课程号 课程名 选课 课程 课时 学分 成绩 授课 工号 教师 姓名 性别 系别
五、逻辑和物理结构设计
1、由系统E—R图转化而得到的关系模式
(1)学生(学号,姓名,性别,出生日期,系别),其主码为学号; (2)教师(工号,姓名,性别,系别),其主码为工号; (3)课程(课程名,课程号,课时,学分),其中主码为课程号; (4)选课(课程号,学号,分数),其中主码为学号和课程号,外码为学号和课程号; (5)授课(课程号,工号),其中主码为课程号和工号,外码为课程号和工号。 2、确定关系模型的存取方法
在将概念模型转换成物理模型之后,我们可以对物理模型进行设计,双击物理模型的关系,可以对该关系的名称、注释等信息进行查询。可对该关系的属性列进行设计,可分别设置其名称、码、数据类型以及主码、是否为空等。在实际设计中最常用的存取方法是索引发,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:在经常需要搜索的列上建立索引;在主关键字上建立索引;在经常用于连接的列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的等规则。才能充分利用索引的作用避免因索引引起的负面作用。 3、确定数据库的存储结构
确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。因为该成绩管理系统
的数据量小,所以我们只用把数据存储在使用的电脑硬盘上,不用作更多的安排。 (1)创建学生基本信息表: create table Student (
Sno char(11) not null, dept char(5) not null, Sname char(6) not null, Sex char(2) , Birdate char(2) not null,
constraint PK_STUDENT primary key (Sno) constraint C1 check (Sex in(’男’,’女’)) ) go
(2)创建教师基本信息表: create table Teacher (
Tno char(11) not null, dept char(5) not null, Tname char(6) not null, Sex char(2) ,
constraint PK_Teacher primary key (Tno) constraint C2 check (Sex in(’男’,’女’)) ) go
(3)创建课程表: create table Course (
Cno char(5) not null, Cname char(10) not null, Hour smallint not null, Score int not null,
constraint PK_COURSE primary key (Cno) ) go
(4)创建学生与课程的选课表: create table SC (
Sno char(11) not null, Cno char(5) not null, Grade char(4) not null,
Foreign key (Sno) references Student(Sno) Foreign key (Cno) references Course(Cno) constraint PK_SC primary key (Sno, Cno) ) go
(5)创建教师与课程的授课表: create table TC (
Tno char(11) not null,
相关推荐: