数据库课程设计报告-校运动会管理系统(3)

2018-12-21 13:05

3.1.2关系模式

(1)实体转化的关系模式

运动员(姓名,性别,运动员编号,所在院系)3NF

比赛项目(比赛类型,比赛编号,项目名称,预赛时间,决赛时间)3NF 裁判员(裁判编号,姓名,性别,裁判等级)3NF 后勤组(值班编号,值班人姓名)3NF 值班安排(值班编号,值班时间)3NF 宣传组(作者学号,作者姓名,作者院系)3NF 学院(学院名,学院排名)3NF

项目成绩(运动员编号,比赛编号,项目名称,预赛排名,决赛排名,是否破纪录)3NF

预赛(运动员编号,比赛编号) 3NF 决赛(运动员编号,比赛编号) 3NF 主持(裁判编号,比赛编号) 3NF 服务(值班编号,运动员编号) 3NF

第四章 数据库定义和数据安全性与完整性定义

4.1定义数据库模式的SQL操作

在以下的sql语句中,每个关系表都给出了相应的主键和外键,个别属性给出了check约束,并考虑引用完整性,保证的数据库的安全性和完整性定义。

create database shujuku

create table athlete /*-运动员-*/ (

YDY_name VARCHAR(20) NOT NULL, /*运动员姓名*/

YDY_sex VARCHAR(2) NOT NULL CHECK(YDYXB in('男','女')), --运动员性别

YDY_num VARCHAR(8) CONSTRAINT NUM_PK PRIMARY KEY,, --运动员编号

YDY_xym VARCHAR(20) REFERENCES xueyuan(XYM), --学院名 维护引用完整性

ON DELETE SET NULL

11 软件一班 1225112008 胡宏

ON UPSET CASECADE ) go

create table BSXM /*-比赛项目-*/ (

BSBH VARCHAR(5) PRIMARY KEY , --比赛编号 BSMC VARCHAR(20) NOT NULL, --比赛名称 BSLB VARCHAR(20) NOT NULL, --比赛类别

BSSJ_ys TIMESTAMP NOT NULL, --预赛比赛时间 BSSJ_js TIMESTAMP NOT NULL --决赛比赛时间 ) Go

create table JUDGE /*-裁判-*/ (

CPBH VARCHAR(5) CONSTRAINT BSBH_PK PRIMARY KEY , --裁判编号

CPXB VARCHAR(2) NOT NULL, CHECK(CPXB in('男','女')), --裁判性别 CPXM VARCHAR(20) NOT NULL, --裁判姓名

CPDJ VARCHAR(10) NOT NULL CHECK (CPDJ IN (‘1’,’2’,’3’ ) ) , --裁判等级

ON DELETE SET NULL ON UPSET CASECADE ) go

create table houqinzu /*-后勤组-*/ (

ZBBH VARCHAR(5) CONSTRAINT ZBBH_PK PRIMARY KEY, --值班编号

ZBRXM INT NOT NULL , --值班人姓名 ) go

create table zhiban /*值班安排*/ (

ZBBH varchar(5) not null, --值班编号 ZBSJ varchar(20) not null, --值班时间 primary key(ZBBH,ZBSJ) ) go

create table xuanchuan /*-宣传-*/ (

ZZXM VARCHAR(20) , --作者姓名

ZZYX VARCHAR(20) NOT NULL, --作者院系

ZZXH VARCHAR(20) PRIMARY KEY --作者学号

12 软件一班 1225112008 胡宏

) go

create table xueyuan /*-学院-*/ (

XYM VARCHAR(20) CONSTRAINT XYM_PK PRIMARY KEY,--学院名 XYPM VARCHAR(20) NOT NULL --学院排名 ) go

create table athleteCJ /*-运动员成绩-*/ (

YDY_bh VARCHAR(20) NOT NULL , --运动员编号

YDY_bsbh VARCHAR(20) NOT NULL , --参加比赛编号

YDY_bsmc VARCHAR(20) NOT NULL , --运动员参加比赛的项目名称 YDY_yspl VARCHAR(5) NOT NULL, --运动员预赛排名 YDY_jspl VARCHAR(5) NOT NULL, --运动员决赛排名

PJL VARCHAR(2) NOT NULL CHECK(PJL in('是','否')), --是否破纪录 PRIMARY KEY (YDY_bsbh ,YDY_bh) -- 主键声明 ) go

CREATE TABLE JS /*预赛表*/ (

YDY_bh VARCHAR(20) NOT NULL , --运动员编号 BSBH varchar(5) not null, --比赛编号 Primary key(YDY_bh ,BSBH ) )

CREATE TABLE JS /*决赛表*/ (

YDY_bh VARCHAR(20) NOT NULL , --运动员编号 BSBH varchar(5) not null, --比赛编号 Primary key(YDY_bh ,BSBH ) )

CREATE TABLE ZHUCHI /*裁判主持比赛*/ (CPBH VARCHAR(5) not null, -- 裁判编号 BSBH varchar(5) not null, --比赛编号 primary key(CPBH,BSBH) )

CREATE TABLE fuwu /*后勤组服务*/

13 软件一班 1225112008 胡宏

(YDY_numVARCHAR(5) not null, ZBBH varchar(5) not null, Primary key(YDY_num,ZBBH) )

4.2数据安全性与完整性定义

4.2.1创建相关的必要断言

1.声明裁判等级低于3级的不能主持比赛的判罚 CREATE ASSERTION CAIPAN CHECK (NOT EXISTS

(SELECT CPXM

FROM JUDGE WHERE CPDJ>3

) );

4.2.2创建相关触发器

1.该触发器的作用是阻挠修改运动员已确定的决赛成绩排名 CREATE TRIGGER CJ_plTrigger

AFTER UPDATE OF YDY_jspl ON athleteCJ REFERENCING

OLD ROW AS OldTuple, NEW ROW AS NewTuple FOR EACH ROW

WHEN (OldTuple.YDY_jspl>NewTuple.YDY_jspl) UPDATE athleteCJ

14 软件一班 1225112008 胡宏

OldTuple.YDY_jspl =NewTuple.YDY_jspl ;

15 软件一班 1225112008 胡宏 SET YDY_jspl = WHERE YDY_jspl


数据库课程设计报告-校运动会管理系统(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高三材料作文8篇:生命价值来源于你自己

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: