数据库
课程设计报告
年 月 日
目 录
1 绪论... 1
1.1 开发背景... 1
1.2 开发平台... 1
1.3 成员分工... 1
2 需求分析... 2
2.1 功能需求... 2
2.2 数据需求... 2
2.3 用户视图... 2
2.4 初始数据库大小及增长速度... 2
2.5 查找的类型和平均数量... 2
2.6 网络和共享访问需求... 2
2.7 性能要求... 3
2.8 安全性... 3
2.9 备份和恢复... 3
3 概念结构设计... 4
3.1 局部E-R图... 4
3.2 全局E-R图... 4
4 逻辑结构设计... 5
4.1 将E-R图转化为关系模型... 5
4.2 关系模型的优化... 5
4.3 基表设计... 5
4.4 索引设计... 6
4.5 视图设计... 6
4.6 授权设计... 6
4.7 存储过程设计... 6
4.8 触发器设计... 6
5 数据库实施... 7
5.1 数据库定义... 7
5.2 基本表定义... 7
5.3 索引定义... 7
5.4 视图定义... 7
5.5 角色及授权... 7
5.6 存储过程定义及调用实例... 7
5.7 触发器定义... 8
6 数据库维护计划... 9
7 应用程序设计... 10
7.1 模块设计... 10
7.2 各模块实现... 10
总结... 11
1 绪论
1.1 开发背景
说明本系统的开发背景
1.2 开发平台
说明本系统所选用的开发工具
前台应用程序:
后台数据库:
1.3 成员分工
说明小组成员在设计中所负责的工作,如:需求分析、概念结构设计、逻辑结构设计、具体实施、维护计划设计等。
2 需求分析
2.1 功能需求
说明系统要增、删、修改哪些数据,做哪些数据的统计分析。
2.2 数据需求
按教材的方法编写立数据字典,要求包含每个数据项及数据结构的详细说明,格式如下所示:
表1.1数据项
表1.2 数据结构
2.3 用户视图
说明不同权限级别的用户可以对哪些数据做何种操作。以便于系统用户权限的设置。格式如下所示:
表1.3 用户视图表
2.4 初始数据库大小及增长速度
2.5 查找的类型和平均数量
说明经常查询的表和列,如:
1)查询订购单信息——大约每天20次。
2.6 网络和共享访问需求
说明同时访问的用户数,如:
1)系统能够支持至少3名成员并发访问。
2.7 性能要求
如:
在上班时间但非高峰期单个记录的搜索时间要少于1秒,高峰期各种搜索的响应时间要少于5秒。
2.8 安全性
2.9 备份和恢复
3 概念结构设计
参照教材的方法设计E-R图(用Visio画),并说明实体间的联系
3.1 局部E-R图
3.2 全局E-R图
4 逻辑结构设计
4.1 将E-R图转化为关系模型
4.2 关系模型的优化
如果4.1的结果不满足3NF,将其规范化
4.3 基表设计
如:
表4.1 Costume表
4.4 索引设计
4.5 视图设计
4.6 授权设计
4.7 存储过程设计
数据的更新、企业规则、数据统计等可用存储过程实现
4.8 触发器设计
触发器可用于维护完整性规则或企业规则
5 数据库实施
此章用SQL语句实现上述设计结果。正文中给出重要或有代表性的代码,其余的放在脚本文件中,并写好注释信息。
5.1 数据库定义
5.2 基本表定义
如:
1.Costume表
CREATE TABLE Costume (
CostumeID int PRIMARY KEY ,
CostumeName varchar (50) NOT NULL ,
TypeID int NOT NULL REFERENCES CostumeType(TypeID),
CostumeStyle varchar (20) ,
CostumeBrand varchar (20) ,
AddDate datetime NOT NULL ,
CostumePrice money NOT NULL ,
CostumeImg varchar (200) NOT NULL ,
)
5.3 索引定义
5.4 视图定义
5.5 角色及授权
5.6 存储过程定义及调用实例
如:
1. 添加服装记录
CREATE proc AddCostume
@strName varchar(50),
@strType int,
@strColor varchar(20),
@strBrand varchar(20),
@strTexture varchar(20),
@strSize varchar(20),
@strStyle varchar(20),
@url varchar(200),
@strIntroduce varchar(4000),
@strOrderDesc varchar(100),
@strPrice money
as
begin
if exists(select * from Costume where CostumeName= @strName and CostumeColor= @strColor and CostumeBrand= @strBrand and CostumeTexture=@strTexture and CostumeStyle=@strStyle and CostumeSize= @strSize )
print'该服装品中已存在'
else
begin
Insert into Costume(CostumeName,TypeID,CostumeColor,CostumeBrand,CostumeTexture,CostumeStyle,CostumeSize,AddDate,CostumeImg,CostumeIntroduce,OrderDesc,CostumePrice,CostumePoint,IsSpecial,SpecialPrice) values (@strName,@strType,@strColor,@strBrand ,@strTexture,@strStyle , @strSize,getdate(), @url ,@strIntroduce,@strOrderDesc ,@strPrice,'0','n' ,@strPrice)
print'成功添加该种服装'
end
end
2.
5.7 触发器定义
如:
1.CostumeDelete
所属表:Costume
功 能:当删除一种服装时,说明该系统不再出售该种服装,那么该服装所对应的订购单也要删除
源代码:
CREATE TRIGGER CostumeDelete ON Costume
FOR DELETE
AS
begin
declare @t int
select @t=CostumeID from deleted
delete from OrderDetail where CostumeID=@t
end
6 数据库维护计划
7 应用程序设计
7.1 模块汇总表
提示:这里模块是指相对独立的软件设计单元,例如对象类、函数包等等。
7.2 模块结构图
提示:这里用树型结构图表示模块间的调用关系。