收藏 分销(赏)

数据库设计实例运动会管理系统.doc

上传人:a199****6536 文档编号:2227189 上传时间:2024-05-23 格式:DOC 页数:13 大小:262.54KB
下载 相关 举报
数据库设计实例运动会管理系统.doc_第1页
第1页 / 共13页
数据库设计实例运动会管理系统.doc_第2页
第2页 / 共13页
点击查看更多>>
资源描述
数据库设计实例运动会管理系统 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 13 个人收集整理 勿做商业用途 本科学生设计性实验报告 课程名称:现代数据库技术 实验项目名称:运动会管理系统 数 据 库 设 计 姓名:何东灵 学号:0041400 班级:C03 班 第M小组 2006至2007学年 第2学期 2007年6月15日 目 录 目 录 2 引言 3 编写目的 3 背景 3 定义 3 1。 数据字典 3 字典1:运动员数据字典 3 字典2:班级数据字典 3 字典3:项目数据字典 4 字典4:记录数据字典 4 字典5:规则数据字典 4 字典6:工作人员数据字典 5 字典7:场地数据字典 5 字典8:器材数据字典 5 字典9:项目人员数据字典 5 字典10:项目器材数据字典 5 字典11:运动员成绩数据字典 6 字典12:团体赛成绩数据字典 6 字典13:班级总分数据字典 6 2。 数据库设计 6 3。 数据库设计中的一个编号过程 10 引言 编写目的 本数据库设计说明书专门为SGS系统的项目开发人员编写. 背景 项目 名称:学校运动会管理系统(SchoolGymkhanaSystem简称SGS) 项目提出者:江财SGS项目组织人员 项目开发者:需求分析阶段有SGS项目开发小组人员共同完成,其它各阶段由小组成员各自负责完成 项目鉴定者:吴京慧教授 项目开始时间:2007-6—15 定义 列出本文件中用到的专门术语的定义和缩写词的源词组。 1. 所有的表名的命名规则:所有表名都根据表意用相关的英文全称命名. 2. 所有的主键命名规则:由表名+_PK[用编号区分] 3. 所有外键的命名规则:由表名+_FK[用编号区分] 4. 所有规则的命名规则:由列名+_CK[用编号区分] 5. 所有索引的命名规则:表名+_INDEX+列名 6. 所有字段的命名规则:类型+具体含义 1. 数据字典 字典1:运动员数据字典 记录运动员相关信息 字典结构 属性名称 属性类型 是否允许为空 默认值 约束 含义 AthleteNo Char(8) NOT NULL 主键、届数+流水号 运动员编号 AthleteName Varchar2(20) NOT NULL 运动员姓名 Sex Varchar2(2) NOT NULL “男” 只取“男”、“女” 性别 Telephone Varchar2(20) NULL 联系方法 ClassNo Char(8) NOT NULL 外键、届数+流水号 班级编号 字典2:班级数据字典 记录班级相关信息 字典结构 属性名称 属性类型 是否允许为空 默认值 约束 含义 ClassNo Char(8) NOT NULL 主键、届数+流水号 班级编号 InstituteName Varchar2(30) NOT NULL 学院名称 ClassName Varchar2(30) NOT NULL 班级全称 字典3:项目数据字典 记录项目相关信息 字典结构 属性名称 属性类型 是否允许为空 默认值 约束 含义 ItemNo Char(3) NOT NULL 主键 项目编号 ItemName Varchar2(50) NOT NULL 项目名称 SexLimit char(2) NOT NULL 只取“男”“女” 性别限制 ComityRequire Number(2) NOT NULL 集体项目人数 StartTime Date NULL 开始时间 EndTime Date NULL 结束时间 TrackFieldJudge Number(1) NOT NULL 田径赛区分 ClassNoLimit Number(2) NOT NULL 每班最大人数 TotalAthlete Number(3) NOT NULL 0 已选人数 RuleNo Char(3) NOT NULL 外键 规则编号 FieldNo Char(3) NOT NULL 外键 场地编号 字典4:记录数据字典 记录记录相关信息 字典结构 属性名称 属性类型 是否允许为空 默认值 约束 含义 ItemNo Char(3) NOT NULL 主键、外键 项目编号 ItemName Varchar2(50) NOT NULL 项目名称 AthleteNo Char(8) NULL 外键 运动员编号 AthleteName Varchar2(20) NOT NULL 运动员姓名 ClassNo Char(8) NULL 外键、届数+流水号 班级编号 ClassDiscribe Varchar2(50) NULL 班级描述 GymkhanaName Varchar2(50) NULL 运动会名 TrackFieldJudge Number(1) NOT NULL 田径赛区分 Score Number(3) NULL 成绩 字典5:规则数据字典 记录规则相关信息 字典结构 属性名称 属性类型 是否允许为空 默认值 约束 含义 RuleNo Char(3) NOT NULL 主键 规则编号 RuleName Varchar2(30) NULL 规则名称 TextPath Varchar2(200) NULL 文本路径 字典6:工作人员数据字典 记录工作人员相关信息 字典结构 属性名称 属性类型 是否允许为空 默认值 约束 含义 OperatorNo Char(3) NOT NULL 主键、职位+游水号 工作人员编号 OperatorName Varchar2(20) NOT NULL 工作人员姓名 Post Varchar2(30) NULL 单位 Duty Varchar2(100) NULL 运动会职务 字典7:场地数据字典 记录场地相关信息 字典结构 属性名称 属性类型 是否允许为空 默认值 约束 含义 FieldNo Char(3) NOT NULL 主键 场地编号 FieldName Varchar2(20) NULL 场地名称 Address Varchar2(50) NULL 具体地址 字典8:器材数据字典 记录器材相关信息 字典结构 属性名称 属性类型 是否允许为空 默认值 约束 含义 EquipmentNo Char(3) NOT NULL 主键 器材编号 EquipmentName Varchar2(20) NOT NULL 器材名称 Deposit Varchar2(100) NULL 存放简介 字典9:项目人员数据字典 记录项目人员相关信息 字典结构 属性名称 属性类型 是否允许为空 默认值 约束 含义 ItemNo Char(3) NOT NULL 主键、外键 项目编号 OperatorNo Char(8) NOT NULL 外键、外键、职位+游水号 工作人员编号 字典10:项目器材数据字典 记录项目器材相关信息 字典结构 属性名称 属性类型 是否允许为空 默认值 约束 含义 ItemNo Char(3) NOT NULL 主键、外键 项目编号 EquipmentNo Char(3) NOT NULL 主键、外键 器材编号 字典11:运动员成绩数据字典 记录运动员成绩相关信息 字典结构 属性名称 属性类型 是否允许为空 默认值 约束 含义 ItemNo Char(3) NOT NULL 主键、外键 项目编号 AthleteNo Char(8) NOT NULL 0 主键、外键 运动员编号 TrackFieldJudge Number(1) NOT NULL 田径赛区分 Property Number(1) NOT NULL 0:决赛;1:预赛 比赛性质 GroupNo Number(2) NULL 小组号 CourseNo Number(1) NULL 1—8 跑道号 Score VarChar(20) NULL 成绩 Place Number(3) NULL 名次 字典12:团体赛成绩数据字典 记录团体赛成绩相关信息 字典结构 属性名称 属性类型 是否允许为空 默认值 约束 含义 ItemNo Char(3) NOT NULL 主键、外键 项目编号 ClassNo Char(8) NOT NULL 0 主键、外键、届数+流水号 班级编号 TrackFieldJudge Number(1) NOT NULL 田径赛区分 GroupNo Number(2) NULL 小组号 CourseNo Number(1) NULL 1-8 跑道号 Property Number(1) NOT NULL 0:决赛;1:预赛 比赛性质 Score Number(3) NULL 成绩 Place Number(3) NULL 名次 字典13:班级总分数据字典 记录班级总分相关信息 字典结构 属性名称 属性类型 是否允许为空 默认值 约束 含义 ClassNo Char(8) NOT NULL 0 主键、外键、届数+流水号 班级编号 TotalScore Number(3) NULL 总分 Place Number(3) NULL 总分排名 2. 数据库设计 3.1班级表设计 3.1。1结构设计 /*******************************Class*************************************/ CREATE TABLE Class( ClassNo Char(8) NOT NULL, /*班级编号*/ InstituteName Varchar2(30) NOT NULL, /*学院名称*/ FullName Varchar2(30) NOT NULL, /*班级全称*/ constraint Class_PK primary key(ClassNo) ); 3.2运动员表设计 3。2.1结构设计 /*******************************Athlete***********************************/ CREATE TABLE Athlete( AthleteNo Char(8) NOT NULL, /*运动员编号*/ AthleteName Varchar2(20) NOT NULL, /*运动员姓名*/ Sex Varchar2(2) NOT NULL, /*性别*/ check(Sex in(’男','女')) , Telephone Varchar2(20) NULL, /*联系方法*/ ClassNo Char(8) NOT NULL, /*班级编号*/ constraint Athlete_PK primary key(AthleteNo), constraint Athlete_FK1 foreign key(ClassNo) references Class(ClassNo) ); 3.3规则表设计 3.3.1结构设计 /*******************************RuleList************************************/ CREATE TABLE RuleList( RuleNo Char(3) NOT NULL, /*规则编号*/ RuleName Varchar2(30) NULL, /*规则名称*/ TextPath Varchar2(200) NULL, /*文本路径*/ constraint RuleList_PK primary key(RuleNo)); 3.4场地表设计 3.4.1结构设计 /*******************************FieldList***********************************/ CREATE TABLE FieldList( FieldNo Char(3) NOT NULL, /*场地编号*/ FieldName Varchar2(20) NULL, /*场地名称*/ Address Varchar2(50) NULL, /*具体地址*/ constraint FieldList_PK primary key(FieldNo)); 3.5项目表设计 3。5.1结构设计 /*******************************Item****************************************/ CREATE TABLE Item( ItemNo Char(3) NOT NULL, /*项目编号*/ ItemName Varchar2(50) NOT NULL, /*项目名称*/ SexLimit char(2) NOT NULL, /*性别限制*/ ComityRequire Number(2) NOT NULL, /*集体项目人数*/ StartTime Date NULL, /*开始时间*/ EndTime Date NULL, /*结束时间*/ TrackFieldJudge Number(1) NOT NULL, /*田径赛区分*/ ClassNoLimit Number(2) NOT NULL, /*每班最大人数*/ TotalAthlete Number(3) default 0, /*已选人数*/ RuleNo Char(3) NOT NULL, /*规则编号*/ FieldNo Char(3) NOT NULL, /*场地编号*/ constraint Item_PK primary key(ItemNo), constraint Item_FK1 foreign key(RuleNo) references RuleList(RuleNo), constraint Item_FK2 foreign key(FieldNo) references FieldList(FieldNo)); 3.6记录表设计 3.6.1结构设计 /*******************************RecordList**********************************/ CREATE TABLE RecordList( ItemNo Char(3) NOT NULL, /*项目编号*/ ItemName Varchar2(50) NOT NULL, /*项目名称*/ AthleteNo Char(8) NULL, /*运动员编号*/ AthleteName Varchar2(20) NOT NULL, /*运动员姓名*/ ClassNo Char(8) NULL, /*班级编号*/ ClassDiscribe Varchar2(50) NULL, /*班级描述*/ GymkhanaName Varchar2(50) NULL, /*运动会名*/ TrackFieldJudge Number(1) NOT NULL, /*田径赛区分*/ Score Number(3) NULL, /*成绩*/ constraint RecordList_PK primary key(ItemNo), constraint RecordList_FK1 foreign key(ItemNo) references Item(ItemNo), constraint RecordList_FK2 foreign key(AthleteNo) references Athlete(AthleteNo), constraint RecordList_FK3 foreign key(ClassNo) references Class(ClassNo)); 3.7工作人员表设计 3。7.1结构设计 /*******************************OperatorList*********************************/ CREATE TABLE OperatorList( OperatorNo Char(3) NOT NULL, /*工作人员编号*/ OperatorName Varchar2(20) NOT NULL, /*工作人员姓名*/ Post Varchar2(30) NULL, /*单位*/ Duty Varchar2(100) NULL, /*运动会职务*/ constraint OperatorList_PK primary key(OperatorNo)); 3.8器材表设计 3。8。1结构设计 /*******************************EquipmentList*******************************/ CREATE TABLE EquipmentList( EquipmentNo Char(3) NOT NULL, /*器材编号*/ EquipmentName Varchar2(20) NOT NULL, /*器材名称*/ Deposit Varchar2(100) NULL, /*存放简介*/ constraint EquipmentList_PK primary key(EquipmentNo)); 3。9项目人员表设计 3.9。1结构设计 /*******************************ItemOperator********************************/ CREATE TABLE ItemOperator( ItemNo Char(3) NOT NULL, /*项目编号*/ OperatorNo Char(3) NOT NULL, /*工作人员编号*/ constraint ItemOperator_PK primary key(ItemNo,OperatorNo), constraint ItemOperator_FK1 foreign key(OperatorNo) references OperatorList(OperatorNo)); 3.10项目器材表设计 3.10.1结构设计 /*******************************ItemEquipment*******************************/ CREATE TABLE ItemEquipment( ItemNo Char(3) NOT NULL, /*项目编号*/ EquipmentNo Char(3) NOT NULL, /*器材编号*/ constraint ItemEquipment_PK primary key(ItemNo,EquipmentNo), constraint ItemEquipment_FK1 foreign key(ItemNo) references Item(ItemNo), constraint ItemEquipment_FK2 foreign key(EquipmentNo) references EquipmentList(EquipmentNo)); 3.11运动员得分表设计 3。11.1结构设计 /*******************************AthleteScore********************************/ CREATE TABLE AthleteScore( ItemNo Char(3) NOT NULL, /*项目编号*/ AthleteNo Char(8) default 0, /*运动员编号*/ TrackFieldJudge Number(1) NOT NULL, /*田径赛区分*/ Property Number(1) NOT NULL /*比赛性质*/ check(Property in('0’,’1’)), GroupNo Number(2) NULL, /*小组号*/ CourseNo Number(1) NULL /*跑道号*/ check(CourseNo between 1 and 8), Score VarChar(20) NULL, /*成绩*/ Place Number(3) NULL, /*名次*/ constraint AthleteScore_PK primary key(ItemNo,AthleteNo), constraint AthleteScore_FK1 foreign key(ItemNo) references Item(ItemNo)); 3。12集体项目得分表设计 3.12。1结构设计 /*******************************ComityScore*********************************/ CREATE TABLE ComityScore( ItemNo Char(3) NOT NULL, /*项目编号*/ ClassNo Char(8) default 0, /*班级编号*/ TrackFieldJudge Number(1) NOT NULL, /*田径赛区分*/ GroupNo Number(2) NULL, /*小组号*/ CourseNo Number(1) NULL /*跑道号*/ check(CourseNo between 1 and 8), Score VarChar(20) NULL, /*成绩*/ Property Number(1) NOT NULL /*比赛性质*/ check(Property in(’0’,'1’)), Place Number(3) NULL, /*名次*/ constraint ComityScore_PK primary key(ItemNo,ClassNo), constraint ComityScore_FK1 foreign key(ItemNo) references Item(ItemNo), constraint ComityScore_FK2 foreign key(ClassNo) references Class(ClassNo)); 3。13班级总得分表设计 3.13.1结构设计 /*******************************ClassTotalScore*****************************/ CREATE TABLE ClassTotalScore( ClassNo Char(8) default 0, /*班级编号*/ TotalScore Number(3) NULL, /*总分*/ Place Number(3) NULL, /*总分排名*/ constraint ClassTotalScore_PK primary key(ClassNo), constraint ClassTotalScore_FK1 foreign key(ClassNo) references Class(ClassNo)); 3. 数据库设计中的一个编号过程 rem ***************************************************** rem ** 产生员工编号过程 rem ** 功能:根据输入的届数,自动产生运动员编号 rem ** 输入参数:sYear 届数 rem ** 输出参数:returnAthleteNo 运动员编号 rem ****************************************************** CREATE or REPLACE PROCEDURE proAthleteNo(sYear varchar2,returnAthleteNo OUT varchar2) is x number; /*得到员工编号后三位的流水号*/ varEmployeeNo1 char(8); /*某年份的最大员工编号*/ varEmployeeNo2 char(8); /*新的员工编号*/ begin varEmployeeNo1 :=’’; select NVL(max(AthleteNo),’0') into varEmployeeNo1 from Athlete where AthleteNo like sYear || '%’; if varEmployeeNo1 = ’0' then /*无该年份的运动员,编号从001开始*/ varEmployeeNo2 := sYear || ’-001'; else x := to_number(SUBSTR(varEmployeeNo1,5,3))+1; if x <10 then varEmployeeNo2 := sYear || '—00' || ltrim(to_char(x)); elsif x<100 then varEmployeeNo2 := sYear || ’-0' || ltrim(to_char(x)); else varEmployeeNo2 := sYear || '—’ || ltrim(to_char(x)); end if; end if; returnAthleteNo := varEmployeeNo2; end proAthleteNo;
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 通信科技 > 数据库/数据算法

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服