版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.大型数据库课程设计设计报告题目:**新华书店销售管理系统后台数据库学号:学生**:指导教师:提交时间:目录TOC\o"1-2"\u第1章需求分析11.1需求调查11.2系统功能分析21.3面对用户需求分析3第2章面向对象分析和设计4第3章逻辑结构设计83.1类和对象向关系模式转换103.2关系模式优化11第4章数据库物理结构设计114.1存取方法设计114.2存储结构设计114.3物理设计12第5章数据库完整性设计155.1主键及唯一性索引155.2参照完整性设计165.3Check约束.4Default约束175.5触发器设计17第6章数据库视图设计19第7章数据库存储过程设计20第8章权限设计22总结22参考文献:23-.z.**新华书店销售管理系统后台数据库第1章需求分析1.1需求调查通过对各个用户的调查,该销售管理系统有如下需求:用户管理:用户分为管理员和普通用户。管理员具有使用系统的所有功能,而普通用户只需要具有日常书店的管理功能即可。用户权限的设置通过用户登陆界面的输入来进行。同时还可进行系统用户登陆的一些管理,包括添加,删除用户,更改用户的登陆密码等。书籍管理:书籍管理模块提供了采购、查询和库存警示的功能。书店管理人员通过该模块来采购各类图书。图书信息查询提供了各种查询条件,用户可以根据查询方式和条件来进行所需图书的查询。库存警示可以及时反映书籍的库存情况,方便采购。.销售管理:实现收银管理和销售浏览(包括收入、支出、利润),以便用户更加方便快捷的操作使用。会员管理:会员信息的录入和查询以及统计。员工管理:主要保存员工的基本信息包括**、员工号、年龄、性别、联系方式、家庭住址等服务器配置:对它进行配置可以使得在其他电脑上也照常使用。这样不必每次都到数据库中去更改。帮助系统:帮助系统为用户指明方向。1.2系统功能分析**新华书店销售管理系统**新华书店销售管理系统销售管理员工管理图书管理会员管理用户管理账目管理销售管理:用于对每天书店所卖掉的书目、销售额、花销的统计。员工管理:用于对员工基本信息的录入、查询、修改、维护、删除等常用功能,并提供员工号编排、员工照片输入显示、职位的变动(升职、开除、外调等)、奖惩登记等功能。图书管理:用于对图书入库时图书信息的录入、查询、修改、维护、删除等常用功能,以及图书编号,销售价格的制定。会员管理:用于对会员的基本信息的录入、查询、修改、维护、删除等常用功能。以及会员卡上余额,和会员卡的办理日期。该卡主要是方便会员购书,而且只要出示会员卡就会享受折扣,会根据消费的情况设定一定的等级,等级越高,折扣越大。用户管理:用于对不同用户信息的录入、查询、修改、维护、删除等常用功能。规定每个用户的权限等。账目管理:用于每月定期汇总书店的账目并录入,以及对记录的查询、修改、删除等。1.3面对用户需求分析在该系统中,最主要的功能就是进行一系列的查询和各类数据的管理。因此可以将可以将此系统分为管理子系统(有数据变化)和查询子系统两大部分。而在该系统中,主要有两类用户,即普通用户(员工)、系统管理员,这两类用户在该系统的需求不同,权限也不同。因此,为了更明确,更系统的了解用户需求,我们还可以将管理系统再细分为员工管理子系统、系统管理员管理子系统。同样,将查询系统也按用户职能进行细分,即员工查询子系统、系统管理员查询子系统。这样细分后,看似把系统需求繁杂化了。其实不然,细分后使各用户需求更加明确了,并且能更好的把握系统需求。下面从细分后的各个子系统分析子系统的需求:书店销售管理系统书店销售管理系统员工管理子系统员工查询子系统系统管理员管理子系统系统管理员查询子系统员工管理系统。员工用户在使用该系统时,首先必须通过账号和密码登录系统。因此,对密码的设置和修改是最基本的需求。由于所有用户在使用该系统时都需要账号和密码,所以在后面的用户需求分析时不再重复对此需求进行描述。在登录系统后,以通过系统进行部分个人信息的维护。员工查询系统。员工用户在该系统中是最低级的用户,所以可以查询的数据也是有限的,主要有个人信息查询,业绩、工资查询,即时事物查看。还有会员卡号、卡上余额、销售金额的查询。系统管理员管理系统。作为系统管理员,是该系统中最高级的用户,因此该用户的需求相对比较的多。第一,要通过系统对员工、供货商进行管理。第二,对图书的管理,包括图书的入库、出库还有添加、删除等。第三,就是对账目的管理,涉及对销售额、开支、盈利、利润率等。最后,系统管理员管理系统还应该可以利用该系统进行用户的管理和维护,包括用户的添加、删除,修改等。系统管理员查询系统。该子系统的需求首先要包括前面用户查询系统中的所有需求,即可以查询前面用户能进行的所有查询。其次还包括对会员的基本信息的查询、供货商信息查询、库存信息查询。第2章面向对象分析和设计类和对象设计如下:会员表**:char(10)会员号:char(6)性别:bit:int余额:money消费额:money会员等级:int会员折扣:int办卡日期:datetime添加()删除()查询()修改()书籍表书名:varchar书号:char(6)作者:char(10)类型:varchar:varchar:int地址:varchar出版时间:datetime价格:money折扣:int销量:int库存:int供货商号:char(6)添加()修改()删除()查询()销售表书号:int书名:varchar销售日期:datetime销售价格:money销售数量:int员工号:char(6)添加()查询()修改()删除()员工表**:char(10)员工号:char(6)登录密码:int性别:bit年龄:int:int学历:char(10)**号:int家庭住址:varchar查询()添加()修改()删除()用户表用户名:char(10)用户号:char(6)密码:int角色:char(6)查询()添加()修改()删除()退书表书号:int书名:varchar退书日期:datetime销售价格:money数量:int员工号:char(6)添加()查询()修改()删除()供货商表进货char(6)供货商:char(6)进货日期:datetime进货价格:money进货数量:int查询()修改()添加()删除()账目表收入:money支出:money盈利:money月份:char(4)查询()添加()修改()删除()工资表员工号:char(6)**:char(10)职位:char(6)月工资:money奖金:money查询()添加()修改()删除()第3章逻辑结构设计局部E-R图会员人数会员人数注册注册会员会员卡 11会员会员卡办理员工办理员工会员卡 n m会员卡购买购买书店供货商 1 n书店供货商数量金额数量金额存放仓库存放仓库书籍 1 n书籍库存量库存量销售员工书籍销售员工书籍 N mM销售额销售额非会员非会员会员会员消费额会员号会员等级会员折扣**性别办卡日期余额书籍书籍库存销量价格出版时间地址类型书名作者书号折扣供货商员工员工****号员工号学历登录密码年龄性别家庭住址供货商供货商进货数量进货编号进货日期进货价格全局E-R图:顾客顾客购买注册会员卡办理书籍员工业绩供货商仓库会员数数量库存量数量销量完成购买存放销售金额日期3.1类和对象向关系模式转换会员(**、会员号、性别、、余额、消费额、会员等级、会员折扣、办卡日期)书籍(书名、书号、作者、类型、、、地址、出版时间、价格、折扣、销量、库存、供货商号)销售(书号、书名、销售日期、销售价格、销售数量、员工号)退书(书号、书名、销售日期、销售价格、数量、员工号)员工(**、员工号、登录密码、性别、年龄、、学历、工资、职位、家庭住址、销量)用户表(用户名、用户号、密码、角色)供货商(进货编号、供货商、进货日期、进货价格、进货数量)账目(收入、支出、盈利、月份)工资(员工号、**、职位、月工资、奖金)3.2关系模式优化会员(**、会员号、性别、、余额、消费额、会员等级、会员折扣、办卡日期)书籍(书名、书号、作者、类型、、、地址、出版时间、价格、折扣、销量、库存、供货商号)销售(书号、书名、销售日期、销售价格、销售数量、员工号)退书(书号、书名、销售日期、销售价格、数量、员工号)员工(**、员工号、登录密码、性别、年龄、、学历、家庭住址)用户表(用户名、用户号、密码、角色)供货商(进货编号、供货商、进货日期、进货价格、进货数量)账目(收入、支出、盈利、月份)工资(员工号、**、职位、月工资、奖金)第4章数据库物理结构设计存取方法设计数据库系统是多用户共享的系统,对同一个关系要建立多条存储路径才能满足多用户的多种应用要求。对于书店销售管理系统来说,为了提高*些属性的查询速度,可以选择聚簇存取的方法,即把这些属性上具有相同值的元组集中放在连续的物理块上。这样就会大大提高查询速度。因此,该系统中选择聚簇存取方法。4.2存储结构设计教务管理系统是一个大型复杂的计算机网络信息系统,采用基于浏览器/服务器(B/S),客户端/服务器(C/S)混合的应用体系结构来建设书店销售管理系统。数据库管理系统采用Microsoft公司推出的SQLServer2005或以上版本,并用SQL进行数据库的建立和数据库中数据的维护和查询。4.3物理设计实现该设计的环境为Windows*PProfessional+MSSQLServer2005或以上版本。建立书店销售管理数据库createdatabase书店销售管理数据库onprimary(name='书店销售管理数据文件',filename='F:\数据库\书店销售管理\书店销售管理数据文件.mdf',size=5MB,ma*size=15MB,filegrowth=10%)logon(name='书店销售管理日志文件',filename='F:\数据库\书店销售管理\书店销售管理日志文件.ldf',size=3MB,ma*size=10MB,filegrowth=1MB)建立会员表createtable会员表(**char(10),会员号char(6)notnullprimarykey,性别chardefault('男')check(性别in('男''女')),int,余额money,消费额money,会员等级int,会员折扣int,办卡日期datetime)建立书籍表createtable书籍表(书名varchar,书号char(6)primarykey,作者char(10),类型varchar,varchar,int,地址varchar,出版时间datetime,价格money,折扣int,销量int,库存int,进货编号char(6))建立销售表createtable销售表(书号char(6),书名varchar,销售日期datetime,销售价格money,销售数量int,员工号char(6)primarykey)建立退书表createtable退书表(书号intprimarykey,书名varchar,退书日期datetime,销售价格money,数量int,员工号char(6))建立员工表createtable员工表(**char(10)notnull,员工号char(6),登录密码int,性别char(2)default('男')check(性别in('男''女')),年龄int,intnotnull,学历char(10)家庭住址varchar**号intnotnull,primarykey(**,员工号))建立用户表createtable用户表(用户名char(10),用户号char(6)primarykey,密码intnotnull,角色char(6)notnull)建立供货商表createtable供货商表(进货编号char(6)primarykey,供货商char(6),进货日期datetime,进货价格money,进货数量int)建立工资表createtable工资表(员工号char(6)primarykey,**char(10),职位char(6),月工资money,奖金money)10、建立账目表createtable账目表(收入money,支出money,盈利money,月份char(4))第5章数据库完整性设计5.1主键及唯一性索引表名主键建立唯一性索引会员表(会员号)createuniqueinde*会员on会员表(会员号asc)书籍表(书号)createuniqueinde*书籍on书籍表(书号asc)销售表(书号)createuniqueinde*销售on销售表(书号,员工号asc)退书表(书号)createuniqueinde*退书on退书表(书号,书名)供货商表(进货编号)createuniqueinde*供货商on供货商表(进货编号asc)员工表(员工号)createuniqueinde*员工on员工表(员工号asc,**)用户表(用户号)createuniqueinde*用户on用户表(用户号asc,用户名)工资表(员工号)createuniqueinde*工资on工资表(员工号asc)账目表()createuniqueclusteredinde*账目on账目表(月份asc)参照完整性设计1、书籍表中将属性进货编号设为外键altertable书籍表addforeignkey(进货编号)references供货商表(进货编号)2、销售表中将属性书号设为外键altertable销售表addforeignkey(书号)references书籍表(书号)3、员工表中将属性员工号设为外键altertable员工表addforeignkey(员工号)references用户表(用户号)5.3Check约束1、会员表和员工表中将性别进行check约束:check(性别in('男''女'))2、书籍表中将折扣进行check约束:altertable书籍表addcheck(折扣in('是''否'))5.4Default约束1、会员表和员工表中性别默认值设为:男。default('男')2、销售表表默认数据类型设为:getdate()触发器设计1、在员工表中建立更新员工号触发器createtrigger员工_updateon员工表afterupdateasbegindeclareold_numchar(6),new_numchar(6)selectold_num=员工号fromdeletedselectnew_num=员工号frominsertdupdate用户表set用户号=new_numwhere用户号=old_numendgo2、在销售表中建立插入触发器createtrigger销售_inserton销售表afterinsertasbegindeclarenew_charchar(6),new_numintselectnew_char=书号,new_num=销售数量frominsertedupdate书籍表set库存=库存-new_numwhere书号=new_charendgo3、在用户表中建立删除触发器createtrigger用户_deleteon用户表afterdeleteasbegindeclareold_numchar(6)selectold_num=用户号fromdeleteddeletefrom员工表where员工号=old_numendgo4、在会员表中建立充值消费触发器createtrigger会员_updateon会员表afterupdateasbegindeclareold_nummoney,new_nummoneyselectold_num=余额fromdeletedselectnew_num=余额frominsertedif(old_num-new_num)>0update会员表set消费额=消费额+old_num-new_numendgo第6章数据库视图设计1、建立员工信息视图createview员工信息视图asselect*from员工表;2、建立会员信息视图createview会员信息视图asselect*from会员表3、建立书籍信息视图createview书籍信息视图asselect书号,书名,作者,类型,,价格,库存from书籍表4、建立账目视图createview账目视图asselect*from账目表5、建立工资视图createview工资视图asselect**,职位,月工资,奖金,(月工资+奖金)as总工资from工资表6、建立用户视图createview用户视图asselect用户表.用户名,用户号,密码,角色,员工表.,家庭住址from用户表,员工表where用户表.用户名=员工表.**第7章数据库存储过程设计1、建立员工信息存储过程createprocedure员工_infonumchar(6)asselect*from员工表where员工号=numgo2、建立书籍查询存储过程createprocedure书籍_infonamevarcharasselect书名,作者,类型,,价格,库存from书籍表where书名like'%name%'3、建立会员查找存储过程createprocedure会员_infonumchar(6)asselect**,余额,会员折扣from会员表where会员号=num4、建立选课存储过程createproc选课存储过程课程号varchar(12),**varchar(12)asifnote*ists(select*from学生信息where**=**)return-1ifnote*ists(select*from开设课程where课程号=课程号)return-1ifnote*ists(select*from开设课程where课程号=课程号and班级限制人数>(selectcount(**)from选课信息where课程号=课程号groupby课程号))return-1insertinto选课信息values(**,课程号)第8章权限设计将所有表、视图、触发器和存储过程的全部权限都授予给系统管理员给员工授权将书籍表的查询修改删除、员工表的查询、会员表的视图的查询授予员工总结理论联系实际才能做好一件事,学习一门课程同样是这样。通过一周的数据库课程设计实习,我受益匪浅,从中学到了许多新知识,这些知识是在课堂中不能学到或者说很难学到的。并且对数据库应用这一门课程有了更深一步的理解。在做课程设计中,我们可以把课堂上所学的理论知识和实践联系起来,在所要开发的系统中渐渐学会了融会贯通。同样通过对SQL的应用,也使我们熟练和巩固了对SQL的理解。这样我们对开发系统的整个过程也有了一个系统的了解。这次课程设计,我选择的课题是《**新华书店销售管理系统》,在书店销售管理系统的开发中采用了完整的数据库设计的全过程,从需求分析到概念结构设计,到逻辑结构设计,再到物理结构设计,最后到数据库的实施和维护,每一步都认真的分析和实施。当然,在本次课程设计的成果中还存在许多的不足之处,这就需要我们学习更多的知识,进行更深研究。在这次实习中,我们完全投入到了开发系统的世界里。结束后明白了理论和实践要想充分地结合,需要非常扎实的基本功。这就说明学好基础知识是理论付诸实践的前提。在开发教务管理系统中我学到了很多,希望在以后能充分利用实习的机会充实自己,用所学的理论知识充分去实践,在实践中又要努力去巩固理论知识。只有这样,才能把一门课程甚至一门学科学精、学透参考文献:王珊,萨师煊.数据库系统概论[M].高等教育,2005*阿奇等.SQLserver实用教程(第3版)[M].电子工业,2009赵乃真等.信息系统设计与应用.清华大学,2005附录:用户自定义函数,应用于计算员工的销售额createfunctionsum(numchar(6))returnsintasbegindeclaresumintselectsum=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 年秋季传染病采样检测基础知识
- 某汽车厂智能制造制度
- 发电厂锅炉操作规范
- 某铸造厂铸件质量管控办法
- 程序基础实战 11
- 医用基础化学电解质溶液
- 单口网络的电压电流关系
- 商业银行组织形式与模式
- 医生入场教育医院感染规范要求
- 华硕销售技巧培训强手
- 2026年金川集团招聘试题及答案
- 教师节快乐感恩有你
- 流域地表水水质监测实施方案
- 2026年注册安全工程师考试建筑施工(初级)安全生产实务试卷与参考答案
- 2026年秋季小学道德与法治四年级上册(新教材)教学计划
- 2026小学道德与法治五年级上册第四单元创新教学设计详案
- 2026上海闵行区机关事业单位编外人员招聘21人考试备考试题及答案详解
- 2026年湖北省安陆市辅警招聘考试试题题库及参考答案【新】
- 2026-2027学年数学人教版七上第一章 有理数重难点检测卷(提高卷)
- 2026秋季开学典礼校长致辞
- 2026 年粒细胞缺乏患者保护性隔离护理措施
评论
0/150
提交评论