资源描述
摘 要 随着数据管理规模一再扩大,数据量急剧增加,为了为提高效率,人们在倒排文件系统的系统上,潜心研究,现如今,数据库技术的发展和出现使计算机应用渗透到社会的各个领域。数据库技术已经成为现代信息技术的重要组成部分,是现代计算机信息系统和计算机应用系统的基础和核心。 我所做的是智丰物流管理系统,目的是为了帮助智丰物流公司更好的实行自动化管理,减少了投入的人力、精力,能让数据存储在计算机内,能够有组织的,统一管理公司的业务。我利用课本中的知识,通过需求分析,概念设计,逻辑设计,及数据库的实施和运行等阶段,为智丰物流公司设计了一个小型数据库。关键词:SQL SERVER;数据库设计;智丰物流管理系统目录第一章 绪论11.1课题简介11.2设计目的11.3设计内容1第二章 需求分析22.1 需求分析的任务22.2 需求分析的过程22.3数据字典与流程图2第三章 概念结构设计43.1 概念结构设计的方法与步骤43.2 数据抽象与局部视图设计43.3视图的集成5第四章 逻辑结构设计74.1 E-R图向关系模型的转换74.2 数据库关系图7第五章 数据库的实现95.1数据库的建立95.2 数据库基本结构的建立95.3安全性的实现135.4完整性的实现135.5恢复技术的实现14第六章 运行与结果156.1简单查询和连接查询156.2嵌套查询166.3组合查询和统计查询17 第一章 绪论1.1课题简介 “数据库原理及应用”是一门既有较强的理论性,又有较强的实践性的专业基础课程,需要把理论知识和实际应用紧密结合起来。这次课程设计就是对本学期所学的“数据库原理及应用”这本书从第二章开始到第六章的实践,我的例子是“智丰物流管理系统”,通过对物流公司内部管理来实现数据库的功能。1.2设计目的 这学期学习完数据库的理论知识,然后用自己的电脑实践,用“智丰物流管理系统”来举例用理论来联系实践,了解并掌握了数据库管理系统的基本原理和数据库系统设计的方法,培养了我应用及设计数据库的能力。1.3设计内容 我选择的是智丰物流管理系统,通过亲身实践,我了解物流管理的结构,需要了解卖家、消费者、货物之间的关系,首先,它们被输入到数据库后,能够查询,修改和删除,然后通过建立键的关系,来建立表的联系,然后通过需求分析,了解了需求分析的过程和目的,建立数据字典,概念设计阶段要完成数据抽象与局部视图设计以及视图的集成。逻辑结构设计阶段要把E-R图转化为关系模式。最后是数据库的实施和运行。 第二章 需求分析2.1 需求分析的任务 我需要了解“智丰物流管理系统”的整个应用情况,并对它进行全面、详细的调查,确定物流管理系统的目标,就是高效,自动化管理货物及卖家、消费者之间的关系,收集信息,管理信息,了解系统将来要发生的变化,收集未来应用所涉及的数据,分析数据流程,处理数据,数据的安全性、完整性的处理要求。2.2 需求分析的过程 建立业务信息、货物信息、卖家信息、消费者信息;完成业务信息、货物信息、卖家信息、消费者信息;业务实体包括操作员、发货城市、发货站、费用、接洽时间、收货站、收货城市,一个收货人选择业务,收货人包括姓名、身份证号码、年龄、电话、地址,一个收货人要网购一种货物,一个货物有标签、名称、体积、重量、包装类型。货物由发货人统一发送,发货人包括姓名、身份证号码、电话、地址。2.3数据字典与流程图1业务流程分析经过可行性分析和初步需求调查,抽象出该物流业务流程图。如图2.1所示图2.1物流管理系统流程图2系统模块分析在调查完了用户需求之后,就要开始分析用户需求。在此,我们采用自顶向下的结构化分析方法(SA方法)。首先,定义全局概念结构的框架,如图2.2所示。 图2.2 物流管理系统全局概念结构3数据字典全局分析之后,开始构造数据字典。经分析之后,本系统要用到六个基本表:卖家信息表,货物信息表,消费者信息表,业务信息表,选择信息表,运输信息表,数据结构如下表所示。表2.3数据结构定义数据结构名含义说明组成卖家信息表定义了卖家的信息卖家身份证号、姓名、年龄、电话、住址货物信息表定义了货物的有关信息货物名、货号、体积、重包装类型消费者信息表定义了消费者的有关信息消费者身份证号、姓名、年龄、电话、住址业务信息表定义了业务相关有关信息业务员号、接洽时间、发货站、发货城市、收发站、收货城市选择信息表定义了选择的有关信息业务员号、消费者身份证号、货物名、费用运输信息表定义了运输的有关信息卖家身份证号、货物名、发货时间 第三章 概念结构设计3.1 概念结构设计的方法与步骤概念设计阶段我采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上的进行概念结构设计。对已经细化到无法再分的阶段逐步集成在一起,最终合成一个全局概念模式。3.2 数据抽象与局部视图设计按照图2.2智丰物流管理系统总框架图,设计实体属性图以及局部E-R图。卖家信息ID号姓名年龄电话号住址图3.1卖家信息实体属性图货物信息货物名货号体积重量包装类型图3.2货物信息实体属性图消费者信息ID号姓名年龄电话号住址图3.3消费者信息实体属性图 业务信息业务员号接洽时间发货站发货城市收货站收货城市图3.4业务信息实体属性图 3.3视图的集成 经过逐步细化再进行每两个一集成初步形成一个E-R图,最后得到图3.5总体概念结构E-R图。 图3.5系统总体结构E-R图 第四章 逻辑结构设计4.1 E-R图向关系模型的转换将图2.2总体概念结构E-R图转化成关系模型。将转化的关系模式进行优化,最终达到第三范式。(至少包括4张表,每个表都有主键,设必要的外键。)卖家信息(ID号,姓名,年龄,电话,住址);货物信息(货物名,货号,体积,重量,包装类型);消费者信息(ID号,姓名,年龄,电话,住址);业务信息(业务员号,接洽时间,发货站,发货城市,收货站,收货城市);选择信息(选择号,业务员号,消费者ID号,货物名,费用);运输信息(运输号,卖家ID号,货物名,发货时间)4.2 基本表结构根据总体结构图设计各表的结构,其相应表的定义如下:表4-1卖家信息表的结构字段名数据类型长度约束描述SeIDchar20主键、非空卖家身份证Snamechar10唯一、非空卖家姓名Agechar10唯一、允许空年龄Tellchar20唯一、非空电话Adrchar20唯一、允许空住址 表4-2货物信息表的结构字段名数据类型长度约束描述Gnamechar10主键、非空货物名Gnochar10唯一、非空货物号Volumechar10唯一、允许空 体积Weightchar10唯一、允许空重量Packchar10唯一、允许空 包装类型表4-3消费者信息表的结构字段名数据类型长度约束描述CIDchar20主键、非空消费者身份证Cnamechar10唯一、非空消费者姓名Agechar10唯一、允许空年龄Tellchar20唯一、非空电话Adrchar20唯一、非空住址 表4-4业务信息表的结构字段名数据类型长度约束描述Onochar4主键、非空业务员号Jtimechar10唯一、非空接洽时间Fhzchar10唯一、非空发货站Fhcitychar10唯一、非空发货城市Shzchar10唯一、非空收货站Shcitychar10唯一、非空收货城市表4-5选择信息表的结构字段名数据类型长度约束描述Xnochar10主键、非空选择号Onochar4外键、非空业务员号CIDchar20外键、非空消费者IDGnamechar10外键、非空货物名Costfloat唯一、非空费用表4.6运输信息表的结构字段名数据类型长度约束描述Ynochar10主键、非空运输号SeIDchar20外键、唯一、非空卖家IDGnamechar10外键,非空货物名Ftimechar10唯一,非空发货时间 第五章 数据库的实现5.1数据库的建立create database 智丰物流管理系统on primary( name=智丰物流管理系统, filename=C:MSDE2000MSSQLData智丰物流管理系统_data.mdf, size=1MB, maxsize=10MB, filegrowth=4MB)log on( name=智丰物流管理_log, filename=C:MSDE2000MSSQLData智丰物流管理系统_log.ldf, size=1MB, maxsize=10MB, filegrowth=4MB)5.2 数据库基本结构的建立1、基本表的建立业务信息表: create table 业务信息表( Ono char(4) primary key, Jtime char (10)not null , Fhz char(10)not null, Fhcity char(10)not null, Shz char(10)not null, Shcity char(10)not null, );消费者信息表表:create table 消费者信息表( CID char(20) primary key, Cname char(10)not null, Age char (10), Tell char(20) not null, Adr char(20) );卖家信息表表:create table 卖家信息表( SeID char(20) primary key, Sname char(10)not null, Age char(10) , Tell char(20) not null, Adr char(20)not null );货物信息表表:create table 货物信息表( Gname char(10) primary key, Gno char(10) not null, Volume char(10), Weight char(10), Pack char(10)选择表:create table 选择表( Xno char(10) , Ono char(4), CID char(20), Gname char(10), Cost char (10), primary key (Xno,Ono,CID,Gname), foreign key (Ono)references business(Ono), foreign key (CID)references consumer(CID), foreign key (Gname)references goods(Gname);运输表:create table 选择表( Yno char(10), SeID char(20), Gname char(10), Ftime char (10)not null, primary key (Yno ,SeID,Gname), foreign key (SeID)references seller(SeID), foreign key (Gname)references goods(Gname) )2、添加数据向卖家表中添加大张的各数据:insert into seller (SeID,Sname,Age,Tell,Adr)values(2001002,小李,23,辽宁省大连市)3、视图的建立Create view stAsSelect Tell,AdrFrom 卖家信息表Where Sname=小张4、 索引的建立为每张基本表设计一个聚簇索引,并至少为其中一张表设计一个唯一索引。写出相关的SQL语句(聚簇,唯一各写一个即可)。create clustered index sy1on 货物信息表(Gname);create clustered index sy2on 卖家信息表(SeID);create clustered index sy3on 消费者信息表(CID);create clustered index sy4on 选择表(Xno);create clustered index sy5on 业务信息表(Ono);create clustered index sy6on 运输表(Yno);create unique index sy7on 卖家信息表(Sname);5、游标的建立根据应用要求,为其中一个基本表设计游标,并利用该游标修改数据,写出SQL语句。Declare cs_cursor scroll cursorForSelect Gname,Gno,VolumeFrom 货物信息表Open cs_cursorFetch from cs_cursorUpdate 货物信息表Set Volume=23Where current of cs_cursorFetch absolute 2from cs_cursor6、存储过程的建立根据应用要求,至少设计一个存储过程,写出SQL语句。Create procedure cunchuAs Select SnameFrom 卖家信息表5.3安全性的实现1、利用图形化工具为了提高安全性,建立系统用户,SQL SERVER用户,数据库用户,写出你所建立的三个用户名。系统用户:login SQL SERVER 用户:login数据库用户:loginSQL SERVER用户:sysadmin 数据库用户:db_accessadmin2、利用Transact-SQL设计一个SQL server登录账户,并设置密码,写出相应的SQL语句。Sp_addlogindongdong,123为登录帐户,设计创建一个数据库用户,写出相应的SQL语句。Sp_grantdbaccessdongdong,abc为数据库用户创建数据库角色,写出相应的SQL语句。Sp_addrolememberdb_owner,abc5.4完整性的实现1、UNIQUE约束alter TABLE 消费者信息表add constraint unique_CnameUnique nonclustered(Cname)2、CHECK约束Alter table 卖家信息表add constraint check_AdrCheck (Adr=辽宁省大连市)3、DEFAULT约束Alter table 货物信息表Add constraint default_Volumedefault 29 for Volume4、NOT NULL约束alter 业务信息表alter column Ono char(4) not null;5、规则Create rule dybh_rule as Age=24 and Age=9(2)查询费用大于等40的操作员号货物名称,费用,按费用降序排序: select Ono,Gname,cost from 选择表 group by Ono,Gname,cost having cost=40 order by cost desc;2、统计查询设计两个统计查询语句,写出相应的SQL语句,并对查询结果截图。(1)统计业务员的个数: select count(Ono) total From 选择表(2)查询辽宁省大连市买家的平均运费:select avg(Cost)From 选择表Where CID in(select CID From选择表 Where CID in(select CID From 消费者信息表 Where Adr=辽宁省大连市)
展开阅读全文