搜索
您的当前位置:首页正文

数据库设计报告

来源:爱够旅游网


HEFEI UNIVERSITY

数据库设计报告

题 目 订单管理数据库 系 别 电子信息与电气工程系 班 级 10电气5班 姓 名 杜思祥 指导 老师 方小红

完成 时间 2012年5月25号

订单管理数据库设计

一、本次设计数据库的目的

基于上完《数据库系统及应用》后 ,老师要求设计一份数据库设计报告,根据本学期学习的类容,我对此进行整合,自己设计了关于订单管理数据库的设计报告。

二、规划阶段的任务和工作

根据订单管理的日常的正常的业务运作规律和工作性质,可以看出本系统的业务是平时常见的工作,所以开发人员在开发起来比较容易入手,所以可以判断开发本系统的周期比较短,开发中的不可预见问题会比较容易解决,在开发小组的分析后应该容易做出相对准确的,误差微小的开发期限,应该可以在规定时间内,快速的、完整的交付给用户使用。 (1)技术可行性

订单管理系统采用了C/S模式进行开发,前台开发工具选用Microsoft Visual Basic 6.0。Microsoft Visual Basic 6.0,具有易用、通用和开发效率高的特点。后台的数据库开发工具选用了SQl sever 2000,它能够处理大量数据,同时保持数据完整性并提供许多高级管理和数据分配功能。这两种开发工具功能强大,有很好的接口,作为本系统开发工具是可行的。

(2)经济可行性

1)可以代替人工进行许多繁杂的劳动 2)可以节省许多资源

3)可以大大提高企业的工作效率

三、流程设计

1、概念设计的方法

设计概念结构通常有四种方法:

自顶向下:即首先定义全局概念结构的框架。然后逐步细化。

自底向上:即首先定义各局部应用概念结构。然后将它们集成起来,得到全局概念结构。

逐步扩张:首先定义最重要的核心概念结构,然后将它们向外扩充, 以滚雪球的方式逐步生成其他概念结构,直至总体概念结构。 混合策略:即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成自底向上策略中设计的各局部概念结构。无论哪种方式,都以E_R模型为工具来描述概念结构。 2、关系模式:

客户(客户号,客户名称,联系人,地址,邮政编码,电话); 产品(产品号,产品名称,规格说明,单价); 订购单(客户号,订单号,订购日期);

订购单明细(订单号,序号,产品号,数量)。

以上进行关系代数的方法运行计算出所得到的结果,在实验结果中可以看到。

3、E--R图(根据订单管理系统确定实体:客户实体、产品实体、订单实体、订单明细实体。现在用E--R图分别描述这些实体) 客户实体E--R图:

客户表:客户号,客户名称,联系人,地址,邮政编码,电话 客户名称 客户号 联系人 客户

电话 地址 邮政编码

产品实体E--R图:

产品表:产品号,产品名称,规格说明,单价 产品名称 单价 产品 规格说明 产品号

订购单实体E--R图:

订购单:客户号,订单号,订购日期 订单号 订购日期 订购单 客户号 订购单明细实体E--R图:

订单明细:订单号,序号,产品号,数量 订单号 序号 订单明细 数量

总的信息实体E--R图 M N M 客户 订单 提交 1 订购了 N M 订单明细

产品号 调出 N 产品 N 说明 4、数据词典

1、客户表 字段名 客户号 客户名称 联系人 地址 邮政编码 电话 数据类型 char(8) varchar(40) char(8) varchar(40) char(6) char(12) 数据类型 主关键字 yes 主关键字 yes 外部关键字 外部关键字 外部关键字 yes 外部关键字 yes yes 参照的表 参照的表 参照的表 客户 参照的表 订购单 产品 取值说明 第一个字符为字母 不允许为空值 6位数字字符 数字字符 取值说明 前两个字符为大写字母 值唯一 正数 取值说明 不允许为空值 默认是系统日期 取值说明 不允许为空值 正数 2、产品表 字段名 产品号 产品名称 规格说明 单价 char(8) varchar(4 0) char(40) smallmone y 3、订购单表 字段名 客户号 订单号 订购日期 主关键数据类型 字 char(8) char(8) yes datetime 主关键字 yes yes 4、订购单明

细表 字段名 订单号 序号 产品号 数量

数据类型 char(8) tinyint char(8) smallint

四、系统实现

1.数据库及其基本表的建立

数据库的建立用企业管理器,基本表的建立用T-SQL语言: 数据库名称为:订单管理数据库 建立数据库的T-SQL代码如下:

Create database 订单管理数据库的数据库设计 On

(name =订单管理数据库的数据库设计_data,

Filename ='e: \\订单管理数据库的数据库设计.mdf', Size=2MB) Log on

(name =订单管理数据库的数据库设计_log,

Filename ='e: \\订单管理数据库的数据库设计_log.ldf', Size=1MB)

建立基本表的T-SQL代码如下: use 订单管理数据库的数据库设计

create table 客户(

客户号 char(8) primary key check(客户号 like '[a-z]%'), 客户名称 varchar(40) NOT NULL, 联系人 char(8), 地址 varchar(40),

邮政编码 char(6), 电话 char(12))

create table 产品(

产品号 char(8) primary key, 产品名称 varchar(40) , 规格说明 char(40) ,

单价 int check(单价>0) )

create table 订购单(

客户号 char(8) NOT NULL foreign key references 客户, 订单号 char(8) primary key, 订购日期 datetime default getdate() )

create table 订单名细(

订单号 char(8) foreign key references 订购单, 序号 char(8) ,

产品号 char(8) NOT NULL foreign key references 产品, 数量 smallint check(数量>0) primary key(订单号,序号))

输入数据:

insert into 客户 values('c01','合肥学院','张三','耕耘路','231010','2159333') insert into 客户 values('C02','合肥工大','李四','屯溪路','230033','4657231') insert into 客户 values('C03','安徽大学','王五','龙河路','230031','5123713')

insert into 客户 values('C05','安徽中医学院','赵一',' 梅山路','230031','5154628') insert into 客户 values('C07',' 安徽医科大学','丁磊','梅山路','230031','5113422') insert into 客户 values('C08','中国科大','李永','金寨路','230022','3665872') insert into 客户 values('C10','新华学院','朱军','null','230035','null')

insert into 产品 values('P01','主板','一块主板','620')

insert into 产品 values('P02','显示卡','一个显示卡','400') insert into 产品 values('P03','cpu','一块cpu','1000') insert into 产品 values('P04','声卡','一块声卡','100') insert into 产品 values('P05','机箱','一个机箱','280')

insert into 产品 values('P06','显示器','一台显示器','1520')

insert into 订购单 values('C01','OR67','2005/05/20') insert into 订购单 values('C03','OR69','2007/01/10') insert into 订购单 values('C08','OR72','2006/03/03') insert into 订购单 values('C05','OR74','2006/10/22') insert into 订购单 values('C02','OR75','2007/4/2')

insert into 订单名细 values('OR67','S03','P06','100') insert into 订单名细 values('OR69','S04','P03','200') insert into 订单名细 values('OR72','S05','P05','200') insert into 订单名细 values('OR74','S06','P06','50') insert into 订单名细 values('OR75','S07','P04','150')

2.创建索引

Create index index_cjbh on 客户(客户号 desc) Create index index_ckh on 订单(订单号 desc) Create index index_clbh on 订单明细(序号 desc) Create index index_rybh on 产品(产品号 desc) 3.创建视图

--create view v1 as select * from 产品

--create view v2 as select distinct 产品名称,单价 from 产品 --create view v3 as select 产品名称,单价 from 产品

/*create view v4 as select 客户名称,订单号 from 客户 ,订购单 where 订购单.客户号=客户.客户号*/

/*create view v5 as select 订单号,客户名称,电话 from 订购单,客户 where 订购单.客户号=客户.客户号*/

--create view v6(产品号,产品名称,总价)as select 产品号,产品名称,单价*10 from 产品

--create view v7 as select * from 订购单 where 订单号='or69' 4.创建存储过程 /*create proc t;1

as select * from 客户*/ --execute t;1 /*create proc t;3

(@s1 int,@s2 int)as select * from 产品 where 单价>@s1 and 单价<@s2*/ --execute t;3 500, 1600

/*CREATE TRIGGER ord_ins_trigger ON 订购单 FOR INSERT AS

IF ((SELECT COUNT(*) FROM 客户 e,INSERTED i WHERE e.客户号=i.客户号)=0) OR

((SELECT COUNT(*) FROM 订单名细 s,INSERTED i WHERE s.订单号=i. 订单号)=0) BEGIN

RAISERROR ('非法职工号或非法供应商号', 1, 1) ROLLBACK TRANSACTION

END*/

五、总结

通过本次数据库系统设计,我了解到了数据库系统设计与分析,还有sql server数据库语言的实际操作应用,,更加深刻体会到如何让运用sql server去帮助自身查询所要的信息,同时经过自己的独立完成也加强了自己的独立性。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top