实验报告在我的上传资源免费领取
*《数据库应用开发技术》*
*课程报告*
足球联赛信息管理系统
班级:马赛克_______________
学号:马赛克___________
姓名:马赛克_______________
时间:2020-11-21_______________
教师: 马赛克
环境:Oracle 11g R2 64位 、亿图图示(ER图作图工具)
一、*说明* 作为世界最火热的运动非足球莫属,开发一套足球的信息管理系统, 对球队、球员、教练、场地和比赛等信息进行管理。
*二、需求分析* (1)系统维护队员、球队、场地、训练、裁判等信息。 队员信息:球员编号、姓名、身高、年龄、体重、是否替补 、球队编号。
球队信息: 球队编号、球队名称、代表地区、成立时间、教练编号。(常用)
教练信息:教练编号、姓名、性别、年龄。
场地信息:场地编号、场地名称、场地规模、场点。
训练信息:球队编号、场地编号、训练时间。
裁判信息:裁判编号、年龄、姓名、性别、级别。
比赛信息:比赛编号、比赛时间、组别、比分、裁判编号、甲方球队编号、 乙方球队编号、场地编号。
(2)每支球队有一名主教练和若干名球员。
(3)球队和场地 多对多关系。
(4)一场比赛 两个球队,一个主裁判,一块场地。
****三、E-R图设计
*四、数据库表分析与设计*
队员表(playerTable)
满足第一范式,每列保持原子性,不可再分。将球队编号作为外键,一对多关系,将一放进多。
playerTable
字段名称 | 数据类型 | 说明 |
---|---|---|
pid | Varchar2(5) | PRIMARY KEY |
pname | Varchar2(15) | 长度需要在大点吗,外国人名字长>_<.NOT NULL |
height | float | ----- |
weight | float | ----- |
alternate | Char(2) | Check ‘Y’ or ‘N’ |
tid | Varchar2(10) | 外键 |
球队表(teamTable)
满足第一范式,每列保持原子性,不可再分。将教练编号作为外键,是因为查找球队的多,方便。
字段名称 | 数据类型 | 说明 |
---|---|---|
tid | Varchar2(10) | PRIMARY KEY |
tname | Varchar2(25) | NOT NULL |
tdeputy | Varchar2(20) | ------ |
establish | date | ------ |
cid | Varchar2(10) | 外键 |
教练表(coachTable)
满足第一范式,每列保持原子性,不可再分。
字段名称 | 数据类型 | 说明 |
---|---|---|
cid | Varchar2(10) | PRIMARY KEY |
cname | Varchar2(25) | NOT NULL |
sex | Char2 | Check ‘W’ or ‘M’ |
age | number |
场地表(areaTable)
满足第一范式,每列保持原子性,不可再分。
字段名称 | 数据类型 | 说明 |
---|---|---|
aid | Varchar2(10) | PRIMARY KEY |
aname | Varchar2(25) | ------- |
asize | Varchar2(10) | ------- |
position | Varchar2(20) | ------- |
训练表(trainTable)
满足第二范式,每列都和主键相关。
字段名称 | 数据类型 | 说明 |
---|---|---|
tid | Varchar2(10) | 外键 |
aid | Varchar2(10) | 外键 |
Trtime | Date | ---- |
裁判表(refereeTable)
满足第一范式,每列保持原子性,不可再分。
字段名称 | 数据类型 | 说明 |
---|---|---|
rid | Varchar2(10) | PRIMARY KEY (这里的rid 使用sequence sq1) |
age | number | ----- |
rname | Varchar2(25) | ----- |
sex | Char2 | Check ‘W’ or ‘M’ |
grade | Char2 |
比赛表(gameTable)
满足第三范式,减少数据冗余
字段名称 | 数据类型 | 说明 |
---|---|---|
gid | Varchar2(10) | PRIMARY KEY |
time | Date | |
group | Varchar2(10) | |
score | Varchar2(5) | |
rid | Varchar2(10) | 外键 |
tidA | Varchar2(10) | 外键 |
tidB | Varchar2(10) | 外键 |
aid | Varchar2(10) | 外键 |
触发器表(LogTable)
字段名称 | 数据类型 | 说明 |
---|---|---|
pid | Varchar2(10) | ----- |
pname | Varchar2(15) | ----- |
tid | Varchar2(10) | ----- |
tname | Varchar2(25) | ----- |
cid | Varchar2(10) | ----- |
cname | Varchar2(25) | ----- |
time | date | ----- |
*建表:*
序列号从1001开始
//教练表插入数据
//球队表插入数据
//球员插入数据
//场地添加数据
//训练添加数据
//裁判表
//比赛表
//创建视图
//使用游标
//procedure
//function
*五、PL/SQL*
*六、总结*
问题记录:
\1. 在一个user中 constraint名唯一。
\2. 字段名称命名与group 重复,一直以为是拼写有误,果真试了三次,确实是这里有错误。
3.日期类型插入数据需要to_date()格式化
4.队伍的号会重复,所以以字符串来表球员ID 可以在前面加队伍的简称拼写来解决。
5.logTable初步设计没有日期,log怎么能没有日期呢?
unction
[外链图片转存中…(img-k4x5D05a-1606533880716)]
*五、PL/SQL*
*六、总结*
问题记录:
\1. 在一个user中 constraint名唯一。
\2. 字段名称命名与group 重复,一直以为是拼写有误,果真试了三次,确实是这里有错误。
3.日期类型插入数据需要to_date()格式化
4.队伍的号会重复,所以以字符串来表球员ID 可以在前面加队伍的简称拼写来解决。
5.logTable初步设计没有日期,log怎么能没有日期呢?