《数据库技术及应用》大作业.docx
《《数据库技术及应用》大作业.docx》由会员分享,可在线阅读,更多相关《《数据库技术及应用》大作业.docx(14页珍藏版)》请在冰点文库上搜索。
《数据库技术及应用》大作业
《数据库技术及应用》
课程报告说明
信息技术学院
2016年9月
一、课程设计题目
以下课题可供参考,学生也可选择自己拟定的题目,但要求一人一题,不可重复。
1、学生宿舍管理系统
2、房地产信息管理
3、学生社团管理系统
4、学生课外活动管理系统
5、医院信息管理系统
6、仓库管理系统
7、酒店管理系统
8、商品销售管理
9、停车场管理系统
10、公安管理系统
11、KTV娱乐收银系统
12、个人信息助理
13、人员流动管理系统
14、影视明星系统
15、足球经理俱乐部系统
16、车辆信息咨询系统
17、交通线路信息资讯
18、家居管理系统
19、出租屋管理系统
20、个人作品信息管理
21、旅游系统管理
22、手机信息管理
……
二、课程设计要求
1、对所选课题进行需求分析,用文字做简要说明。
2、给出课题的概念模型(即ER图),要求对课题至少设计出4个实体,并包含多对多联系。
3、根据设计的ER模型,给出系统的逻辑模型(关系模式)。
4、根据课题的逻辑模型,设计系统的物理模型,对各属性的完整性规则,进行必要设计说明。
5、给出实现数据库的SQL语句,包含创建数据库、数据表(含主键、外键定义及约束性条件设计)、创建索引、插入记录(各表至少插入5条记录)、有涵义的视图(含单表、多表)、触发器和存储过程,参考文献(至少3本)、个人心得等。
6、本课程报告占总评成绩40%。
三、课程设计报告格式要求
1、内容详见附页。
2、格式
文档版式:
A4
正文:
宋体,5号字;首行缩进;行距:
1.25倍行距。
3、样式(见下页)。
得分
《数据库技术及应用》
课程报告
课题名称:
运动员信息管理系统
专业:
计算机应用技术
班级:
二班
学生姓名:
张嘉皓
学号:
1500961
需求分析
系统概述
一个运动员只能在同一时间加入同一个俱乐部,一个俱乐部可以同时由多个运动员加入。
不同的俱乐部参加不同的比赛,通过比赛名次获得排名。
概念模型
1.基本要素(符号介绍说明)
下划线:
主键
方框:
实体
椭圆框:
属性
菱形框:
联系
2.E-R图
(注意:
不能少于4个实体;至少包含多多关系)
逻辑模型
1.关系(逻辑)模型的概念
逻辑模型:
是将概念模型转化为具体的数据模型的过程,即按照概念结构设计阶段建立的基本E-R图,按选定的管理系统软件支持的数据模型(层次、网状、关系、面向对象),转换成相应的逻辑模型。
这种转换要符合关系数据模型的原则。
目前最流行就是关系模型(也就是对应的关系数据库)
2.基本要素
“—”表示主键
“#”表示外键
3.关系模型
运动员(运动员编号,姓名,性别,年龄)
比赛(项目编号,运动员编号#,项目名称,时间,)
教练(教练编号,教练名字,执教项目)
队伍(队伍名称,教练编号#,等级,地点)
训练(运动员编号#,教练编号#)
物理模型
列出所有数据表的物理设计
远动员
属性名
类型
长度
说明
运动员编号
int
primarykeynotnull
姓名
varchar
20
notnull
性别
varchar
20
default’男’
年龄
int
取值在15~35
比赛
属性名
类型
长度
说明
项目编号
int
primarykeynotnull
运动员编号
int
foreignkeynotnull
项目名称
varchar
30
unique
时间
date
notnull
教练
属性名
类型
长度
说明
教练编号
int
primarykeynotnull
教练名字
varchar
20
notnull
执教项目
varchar
20
notnull
队伍
属性名
类型
长度
说明
队伍名称
varchar
50
primarykeynotnull
教练编号
int
foreignkeynotnull
等级
varchar
20
notnull
地点
varchar
20
notnull
训练
属性名
类型
长度
说明
运动员编号和教练编号整体作为主键
运动员编号
int
参照运动员主键的外键
教练编号
int
参照教练主键的外键
数据库实施
1.写出创建数据库、数据表的SQL语句,包含主码定义,外码定义,部分字段check约束、unique约束、default约束等。
createdatabaseathletes
onprimary
(name=agricultural1,
='c:
\test\athletesl.mdf',
size=5mb,
=1mb)
logon
(name=agricultural2,
='c:
\test\athletes2.ldf',
size=5mb,
=10%)
go
useathletes
go
createtable运动员
(运动员编号intprimarykeynotnull,
姓名varchar(20)notnull,
性别varchar(20)default'男',
年龄intcheck(年龄>=15AND年龄<=35))
go
createtable比赛
(项目编号intprimarykeynotnull,
运动员编号int
foreignkey(运动员编号)REFERENCES运动员(运动员编号)notnull,
项目名称varchar(30)unique,
时间datenotnull)
go
createtable教练
(教练编号intprimarykeynotnull,
教练名字varchar(20)notnull,
执教项目varchar(20)notnull)
go
createtable队伍
(队伍名称varchar(50)primarykeynotnull,
教练编号int
foreignkey(教练编号)REFERENCES教练(教练编号)notnull,
等级varchar(20)notnull,
地点varchar(20)notnull)
go
createtable训练
(运动员编号intnotnull,
教练编号intnotnull,
PRIMARYKEY(运动员编号,教练编号),
FOREIGNKEY(运动员编号)REFERENCES运动员(运动员编号),
FOREIGNKEY(教练编号)REFERENCES教练(教练编号))
2.粘贴关系图
维护和运行
1.数据初始化
要求写出插入数据的SQL语句(每表至少三条记录)
go
insertinto运动员values(01,'姚明','男',30)
insertinto运动员values(02,'刘翔','男',20)
insertinto运动员values(03,'孙杨','男',18)
insertinto运动员values(04,'科比','男',35)
insertinto运动员values(05,'李宁','男',32)
go
insertinto比赛values(,01,'CBA篮球','2016-12-10')
insertinto比赛values(,02,'跨栏','2016-12-10')
insertinto比赛values(,03,'游泳','2016-12-12')
insertinto比赛values(,04,'NBA篮球','2016-12-15')
insertinto比赛values(,01,'体操','2016-12-20')
go
insertinto教练values(101,'刘国','篮球')
insertinto教练values(102,'高飞','跨栏')
insertinto教练values(103,'周杨','游泳')
insertinto教练values(104,'孙荪','篮球')
insertinto教练values(105,'王二','体操')
go
insertinto队伍values('龙队',101,'国家级','北京')
insertinto队伍values('虎队',101,'国家级','上海')
insertinto队伍values('豹队',101,'省级','浙江')
insertinto队伍values('羊队',101,'市级','南京')
insertinto队伍values('兔队',101,'县级','崇明')
go
insertinto训练values(01,101)
insertinto训练values(02,102)
insertinto训练values(03,103)
insertinto训练values(04,104)
insertinto训练values(05,105)
2.数据处理(需达到以下要求)
(1)至少包括2张表的等值连接;
select*from运动员
运动员join比赛on运动员.运动员编号=比赛.运动员编号
(2)创建视图;
CREATEVIEWIS_运动员
AS
SELECT运动员编号,姓名,性别,年龄
FROM运动员
(3)编写包含子查询的SQL语句;
select * from 运动员
where 教练名字='刘国' and 年龄 > (select max(年龄) from 运动员)
(4)有修改语句;
update运动员
set姓名='姚明'where姓名='姚大明'
(5)有删除语句;
Deletefrom运动员
(6)有包含聚集函数;
select运动员名字,count(*)数量from运动员
groupby运动员
(7)有记录过滤,条件过滤语句;
select*,
case
when等级=’国家级’then'等级1'
when等级=’省级’then'等级2'
when等级=’市级’then'等级3'
when等级=’县级’then'等级4'
endas等级
from队伍
(8)有修改表结构的SQL语句;
Altertable运动员
Add体重int
(9)至少编写一个存储过程(附注释);
Createprocedurep_athletes
As
Select运动员编号,性别,年龄,
From运动员
Where运动员名字='孙杨'
(10)至少编写一个触发器(附注释)
设计小结
200字左右的小结,包括
(1)完成情况和不足之处
所有的要求都完成了,就是有点慢。
(2)心得体会
通过这次的大作业数据库设计,我更深入的了解SQLsever数据库的创建及表的创建。
了解了er图的创建,了解了数据库逻辑模型和物理模型的概念及如何创建的方法。
了解了数据库的SQL语句,包含创建数据库、数据表(含主键、外键定义及约束性条件设计)、创建索引、插入记录、有涵义的视图、触发器和存储过程。
通过这次学习也是我对数据库这门课产生了更大的兴趣。
(3)建议
参考文献
列出至少3本的参考教材或教程
1.《数据库原理及应用》钱雪忠主编北京邮电大学出版社2007,8第二版
2.丁宝康,董健全. 数据库实验教程. 北京:
清华大学出版社, 2003.
3. 陶宏才.数据库原理与设计[M].北京,清华大学出版社.2005.