数据库大作业实验报告.docx
《数据库大作业实验报告.docx》由会员分享,可在线阅读,更多相关《数据库大作业实验报告.docx(14页珍藏版)》请在冰豆网上搜索。
![数据库大作业实验报告.docx](https://file1.bdocx.com/fileroot1/2022-11/16/47fdab4e-5d09-4faf-924e-92a96718d799/47fdab4e-5d09-4faf-924e-92a96718d7991.gif)
数据库大作业实验报告
Oracle大作业设计报告
题目:
高校运动会分数统计系统
********
学号:
22、20
专业班级:
计科14101
同组姓名:
胡君阳
********
设计时间:
2016年下学期
指导老师意见:
评定成绩:
签名:
日期:
一.需求分析
本文按照数据库系统设计的基本步骤,采取了事先进行需求分析,然后进行数据库的概念设计和逻辑结构设计,最后进行数据库详细设计的方法,完成了一个高校运动会分数统计系统的设计。
1.1、系统功能实现
(1)运动员信息管理、运动项目管理、成绩统计等功能,包括运动员信
息的添加、修改、删除及查询;
(2)运动项目的添加、修改、删除及查询;
(3)各项目分数查询等功能
1.2、系统功能要求
1)概念结构设计:
在需求分析和总体功能设计的基础上,设计e-r模型,
详细描述实体的属性和实体之间的联系。
2)逻辑结构设计:
实现e-r图向关系模型的转换,详细列表显示完整的数
据库表结构。
2、创建表空间
3、在表空间中创建表
在sql*plus环境中输入pl/sql代码,创建数据库中的各个表,至少包括
运动员信息表、运动项目表、成绩表等5张表(自行设计用到的表,注意表中字
段的设置及类型);
向表中插入数据,每张表至少插入10条数据,数据要合理。
4、索引和完整性
在表上建立相应索引。
实现列、行及参照完整性(必须建立主键、外键、检查约束等)。
5、数据查询和视图
使用select语句实现运动员信息、项目信息、成绩信息等的查询(要求查
询要和系统的功能联系起来,做单条件的查询、组合条件的查询、多表查询等,
至少完成10个查询)。
创建视图查询各个院系的总分。
6、存储过程和触发器的使用
创建存储过程实现表中数据的修改和删除。
创建函数统计教工的参赛人数。
创建触发器实现如下功能:
一个运动员至多参加四个项目。
7、用户、角色
创建用户并授权,将其赋予某个角色成为其成员。
不同的用户授予不同的权限,管理员的权限最高,可以对各种信息进行修改
删除等操作。
普通用户只能进行查询操作。
8、系统数据维护
导出数据库数据
导入数据库数据
二.总体功能设计
根据系统功能的需求分析和高校运动会的特点,经过模块化的分析得到如
下图2-1所示的系统功能模块结构图。
图2-1
三.数据库结构设计
3.1、概念结构设计
将高校运动会分数统计系统转换为关系数据库的数据模型,其关系模式为:
1)院系表(学院+总成绩)其中学院为主码,总成绩默认值为0。
2)运动员信息表(运动员编号+姓名+性别+年龄+学院+参加项目数)其中运动员编号为主码,学院为外码。
3)运动项目表(项目编号+项目名称+举行时间+举行地点)其中项目编号为主码。
4)参加记录表(记录编号+运动员编号+项目编号)其中记录编号为主码,运动员编号,项目编号为外码。
5)成绩表(成绩编号+运动员编号+姓名+项目编号+项目名称+学院+成绩)其中成绩编号为主码,运动员编号和项目编号为外码。
3.2、数据库结构详细设计
经过检查,此数据库的详细逻辑设计满足第3范式的要求。
高校运动成绩管理系统中各表的属性设计情况如下:
表3-1院系表
字段名
数据类型
长度
允许空
主码或索引
约束条件
学院
Char
20
No
主码
总成绩
Number
5
表3-2运动员信息表
字段名
数据类型
长度
允许空
主码或索引
约束条件
运动员编号
Number
5
No
主码
姓名
Char
20
年龄
Number
3
性别
Char
2
“男”或“女”
学院
Char
40
参加项目数
Number
1
默认为0
表3-3运动项目表
字段名
数据类型
长度
允许空
主码或索引
约束条件
项目编号
Number
5
No
主码
项目名称
Char
20
项目时间
Char
20
项目地点
Char
20
表3-4参加记录表
字段名
数据类型
长度
允许空
主码或索引
约束条件
记录编号
Number
5
No
主码
运动员编号
Number
5
外码
项目编号
Number
5
外码
表3-5成绩表
字段名
数据类型
长度
允许空
主码或索引
约束条件
成绩编号
Number
5
No
主码
运动员编号
Number
5
外码
姓名
Char
20
项目编号
Number
3
外码
项目名称
Char
20
成绩
Number
40
默认为0
学院
Char
40
No
四.数据库的建立
具体SQL代码如下:
1、创建表空间和用户
createuserHGDidentifiedby123456//创建用户
grantallprivilegestoHGD//授权
createtablespacemyspace'G:
\myspace.ora'size100M//创建表空间
alteruserHGDdefaulttablespacemyspace//连接表空间
2、创建表
院系表
createtable院系表(
学院varchar(40),
总成绩number(3)default0,
primarykey(学院)
)
运动员信息表
createtable运动员信息表(
运动员编号number(5),
姓名varchar(20),
性别varchar
(2)check(性别in('男','女')),
年龄number(3),
学院varchar(40),
参加项目数number
(1)default0,
primarykey(运动员编号),
foreignkey(学院)references院系表(学院)
)
运动项目表
createtable运动项目表(
项目编号number
(2),
primarykey(项目编号),
项目名称varchar(20),
举行时间varchar(20),
举行地点varchar(20),
)
参加记录表
createtable参加记录表(
记录编号number
(2),
运动员编号number
(2),
项目编号number
(2),
primarykey(记录编号),
foreignkey(运动员编号)references运动员信息表(运动员编号),
foreignkey(项目编号)references运动项目表(项目编号)
)
成绩表
createtable成绩表(
成绩编号number(5),
运动员编号number(5),
姓名varchar(20),
项目编号number
(2),
项目名称varchar(20),
学院varchar(40)notnull,
成绩number(5)default0,
primarykey(运动员编号,项目编号),
foreignkey(运动员编号)references运动员信息表(运动员编号),
foreignkey(项目编号)references运动项目表(项目编号)
)
3、插入数据
院系表
insertinto院系表(学院)values('计算机');
insertinto院系表(学院)values('生科');
insertinto院系表(学院)values('电气');
insertinto院系表(学院)values('机械');
insertinto院系表(学院)values('芙蓉');
insertinto院系表(学院)values('美术');
insertinto院系表(学院)values('体育');
insertinto院系表(学院)values('艺传');
insertinto院系表(学院)values('物电');
insertinto院系表(学院)values('外国语');
运动员信息表
insertinto运动员信息表values(1,'张一','男',18,'计算机',0);
insertinto运动员信息表values(2,'张二','男',18,'生科',0);
insertinto运动员信息表values(3,'张三','男',18,'电气',0);
insertinto运动员信息表values(4,'张四','男',18,'机械',0);
insertinto运动员信息表values(5,'张五','男',18,'芙蓉',0);
insertinto运动员信息表values(6,'张六','男',18,'美术',0);
insertinto运动员信息表values(7,'张七','男',18,'体育',0);
insertinto运动员信息表values(8,'张八','男',18,'艺传',0);
insertinto运动员信息表values(9,'张九','男',18,'物电',0);
insertinto运动员信息表values(10,'张十','男',18,'外国语',0);
运动项目表
insertinto运动项目表values(1,'100米','1:
00','场地1');
insertinto运动项目表values(2,'200米','2:
00','场地2');
insertinto运动项目表values(3,'300米','3:
00','场地3');
insertinto运动项目表values(4,'400米','4:
00','场地4');
insertinto运动项目表values(5,'500米','5:
00','场地5');
insertinto运动项目表values(6,'600米','6:
00','场地6');
insertinto运动项目表values(7,'700米','7:
00','场地7');
insertinto运动项目表values(8,'800米','8:
00','场地8');
insertinto运动项目表values(9,'900米','9:
00','场地9');
insertinto运动项目表values(10,'1000米','10:
00','场地10');
参加记录表
insertinto参加记录表values(1,1,1);
insertinto参加记录表values(2,2,2);
insertinto参加记录表values(3,3,3);
ins