数据库课程设计(数据库课程设计实例)

一、急求一份数据库课程设计


数据库课程设计


合肥经济技术职业学院

电子信息系

课程设计报告

课程:数据库课程设计

题目:学生管理系统

班级:09计用

成员:

指导老师:

日期:

目录

第一章前言 3

1.1课题简介 3

1.2设计目的 3

1.3需求分析 4

第二章数据库实例的分析及应用 4

2.1题目和E-R图 4

2.2数据库的实现 5

2.3数据库结构属性 8

2.3.1主键(主键约束PRIMARYKEY;索引设置) 8

2.3.2数据库的默认值和规则 13

2.3.3视图和存储过程 15

2.3.4触发器 17

第三章总结报告 19

参考文献 19

第一章前言

1.1课题简介

数据库技术是计算机科学技术发展最快,应用最为广泛的技术之一。其在计算机设计,人工智能,电子商务,企业管理,科学计算等诸多领域均得到了广泛的应用,已经成为计算机信息系统和应用的核心技术和重要基础。

本文主要介绍学生成绩管理系统的数据库设计,从需求分析到数据库的运行与维护都进行详细的叙述。本系统是利用SQL开发出来的。通过SQL建立学生成绩管理系统,大大方便和简化了数据的查询和处理,管理员可以通过SQL语言对表内数据进行添加,删除,修改,查询等操作,还可以建立多用户,对其使用权限进行分配和回收。随着数据处理的不断进步和计算机网络的迅速发展,使数据库应用系统不仅在功能而且在结构上都有了深刻的变化,而且运用在生活的每一个方面。通过学习关系代数,关系演算,函数依赖,关系模式分解,关系模式的规范化让我们建立了扎实的关系数据库理论基础。而在掌握基本理论的基础上掌握关系数据库的设计方法,掌握现代信息系统的开发方法也显得尤为必要。目前在关系数据库中用得最多的SQL数据库,开发数据库的语言工具多数用C++.。所以对于计算机专业的学生来说掌握数据库应用的基本技术,熟悉编程语言与SQL数据库的结合运用是我们计算机专业学生之必备本领。本次课程设计是以学生信息管理系统为模拟模型,运用C++编程语言结合SQL数据库所开发系统。

1.2设计目的

随着学生数量的日益增多,学校对学生的管理要求也越来越高,为了使信息技术与学生信息更好的结合在一起以及使学生成绩的管理更加系统化,数字化,因此我们设计了该学生信息管理系统。运用基于E-R模型的数据库设计方法和关系规范化理论做指导完成从系统的分析到设计直至系统的最终实现,开发学生成绩管理系统,完成学生成绩管理系统的全部功能。首先做好需求分析,并完成数据流图,其次做概念分析,利用实体联系的方法将需求分析的用户需求抽象为信息结构,得到E-R图,然后就是逻辑结构设计,将E-R图转换为计算机系统所支持的逻辑模型。最后利用SQL完成具体的实例。

1.3需求分析

1、问题的提出:为了高效率的完成学生的管理,决定开发学生管理系统。

2、需完成的功能:

(1)能录入、修改、查询、输出学生的档案信息,这些信息包括学生的成绩、课程、个人信息等。

(2)触发器,索引,约束,规则,默认值,,视图,存储过程的建立及使用。

第二章数据库实例的分析及应用

2.1题目和E-R图

随着学生数量的日益增多,学校对学生的管理要求也越来越高,为了使信息技术与学生信息更好的结合在一起以及使学生成绩的管理更加系统化,数字化,因此我们设计了该学生信息管理系统。以下是次学生信息管理系统的E-R图,进一步详细的说明数据库的结构以及用途。实体和属性的定义:

学生表(学生学号,姓名,班级编号)

班级表(班级编号,班级名称,系部编号)

系部表(系部编号,系部名)

教师表(教师名,课程编号,系部编号)

课程表(课程编号,课程名,学分,教师,系部号)

下面是E-R图,用来进一步说明数据库的作用和用途:

2.2数据库的实现

运用SQL Server 2000数据设计表格的物理结构如下:

班级表:

学生表:

系部表:

课程表:

教师表:

各表关系图:

设计表格的具体填入数据是:

班级表:

学生表:

教师表:

系部表:

课程表:

2.3数据库结构属性

2.3.1主键(主键约束PRIMARYKEY;索引设置)

1.索引与书目录相似,可以快速找到指定内容。索引通过记录表中的关键值来指向表中的记录,这样数据库就不用扫描而能定位到相关的记录。以下是对各表进行索引的实现。

学生表的设置如图:

班级表的设计如下:

教师表的设计如下:

课程表的设计如下:

系部表的设置如下:

2.约束定义了关于允许什么数据进入数据库的规则,是分配给表或表中某列的一个属性。使用约束的目的在于防止列中出现非法的数据,可以自动维护数据库的数据完整性。下面是用企业管理器对class表实现的主键约束:

2.3.2数据库的默认值和规则

1.使用默认可以实现当用户在向数据表中插入新纪录时,如果没有给出某列的输入值,则由SQL Server自动为该列输入默认值。下面是对class表进行实现默认的功能:

实现默认值:

2.规则也是实现数据完整性的方法之一,作用与CHECK约束类似,在向表的某列插入或更新数据时,用它来限制输入值的取值范围。下面我们运用对Course表进行规则的实现:

2.3.3视图和存储过程

1.视图的作用相当于一个虚拟表,是用户查看数据库表中数据的一种方式使用户通过他能够以需要的方式浏览表中的部分或全部数据,而数据的物理存放位置仍然在数据库的表中。我们通过在企业管理器中创建视图管理视图应用视图,更加形象具体的说明了视图的作用。

添加表格到视图:

添加数据并运行:

运行结果,具体视图呈现:

2.存储过程是一组编译在单个执行计划中的Transact-SQL语句,它将一些固定的操作集中起来交给SQL-Server数据库服务器完成,以实现某个任务。首先我们在查询管理器中创建存储过程:

并且执行存储过程:

在企业管理器中也可以体现出存储过程:

2.3.4触发器

触发器的作用是强制执行业务规则。SQL Server主要提供了两种机制来强制业务规则和数据完整性:约束和触发器。触发器在指定的表中数据发生变化时被调用以响应INSERT、UPDATE或DELETE事件。触发器可以查询其他表,并可以包含复杂的语句。SQL Server将触发器和触发它的语句作为可在触发器内回滚的单个事物对待,如果检测到严重错误,则整个事物即自动回滚。首先我们在查询管理器中新建触发器:

新建触发器:

管理触发器:

第三章总结报告

这次的课程设计真的做起来困难重重,深刻体会到做一个软件,里面需要的很多知识我们没有接触过,去图书馆找书的时候发现,我们学的仅仅是皮毛,还有很多东西需要我们去发掘,就算是借一本书看完它,我们还是会发现还有很多知识没有吃透,这需要我们不断的实践,不断地自学习,不断地发现问题去思考问题。

经过不断地测试,不断地改进,其中还是发现了不少问题,第一次做这些工作,没有任何经验,甚至无从下手,还是很谢谢老师和同学的帮忙,从中也学到了一些代码的写法,为什么要这样写,通过和同学的讨论,找到一些书本上没有的方法,如何数据绑定等等,怎样从数据库中将数据提取出来放到一个文本框或者标签内,这些东西是组成界面的东西,虽然小,但是可以体现整个软件的水平,其实并不需要建多少数据库的表,写多少复杂的存储过程,是不是用了数据库函数,触发器等等,但是至少要弄明白这些东西如果操作,清晰思路才能将功能分清晰。

经过一段时间的学习与实践,学生信息管理系统基本上开发好了。该系统具备了:添加、修改、删除、浏览、查询、输出日程信息,实现了根据用户需求查看日程等功能。作为一个个人日程管理系统,本系统所提供的功能的确太少了一些,仅仅只实现了一些基本的功能,有很多地方还有待扩展和改良。

人如果没有自信,没有目标,没有信心就不可能把事情做好,当其他人都在迷茫的时候,自己一定要坚信目标,大学毕业出去即是面临找工作,从学习这个专业,到以后做这方面的工作都需要不断地去学习去实践,这次实践可以给我们敲一个警钟,我们面临毕业,面临择业,需要这些实践经验,在困难面前要勇于尝试,这是这次课程设计给我的最大感想。在此特别感谢老师的辛苦指导和教育!

参考文献

黄维通编《SQL Server2000简明教程》

徐人凤曾建华编《SQL Server2000数据库及应用》

二、sql数据库课程设计报告

网络即时通信系统是为用户开发研制的,用户是系统的最终使用者和评价者,所以在网络通信系统的开发设计的过程中,我们树立了从用户的寻求出发,面向用户,一切为了用户的观念,在分析与设计系统的前期,为了保证系统的功能的完善多次寻求周围同学和老师的意见,了解他们的要求,依照功能完善,界面美观,操作简单的原则进行设计。

严格按阶段进行

系统的开发设计是一项较大的工程,所以应该将整个系统的开发设计过程划分为若干阶段,相应的阶段又要分为若干个不同的步骤,每个阶段和步骤都要有明确的工作任务和目标。这种有序的组织安排,条例清楚、层次分明,便于计划的制定和控制,并且为后续工作的进行奠定了坚实的基础,提高了工作效率和质量。

采用系统的观点处理

在系统分析阶段,在对原系统进行全面调查和分析的基础上,构造系统的最佳逻辑模型,使用户对将来完整系统的轮廓有个初步的了解和认识,以便及时和用户进行交流和探讨,不断提高系统的完善性。在此基础上进行系统的物理实现和设计,切实完成逻辑模型的具体功能。逻辑设计和物理实现二者是相辅相成、密不可分的,这样使系统的设计更加稳妥合理。

整个系统的设计主要采用快速原形法

快速原形法是信息系统设计的一个重要方法。它是根据用户提出的需求,由用户和开发者共同确定系统的基本要求和主要功能,并在一个较短的时间内建立一个实验性的、简单的信息系统模型,通过用户不断提出的意见和建议,对模型进行不断的修改和完善,直到用户比较满意为止,以便形成一个相对稳定、较为理想的管理信息系统。该方法的主要优点。

1.脉络清楚,所有问题都围绕一个模型展开,使彼此之间联系紧密。

2.有助于发现用户需求,通过对原形和用户接触,能够启发开发人员去挖掘问题,从而不断的修正、完善,最终得到一个理想的系统。

3.系统开发效率高,此方法的开发周期短、使用灵活、容易修改,这对于管理体制不够稳定的系统更加适合。

4.系统的可扩展性好,由于此方法是在原型应用中不断发展完善和修改的,所以有较强的扩展性。

在进行代码设计时,遵循了以下原则。

唯一性:在本系统中,每一个代码都和系统中的每一个对象唯一确定。

标准性:主要体现在对程序文件名命名和对数据文件命名的标准化上,遵循简单扼要,方便适用的原则。一目了然,无重复现象。为了系统维护人员便于进行系统维护,使用了统一的标准。

合理性:系统中代码设计与编码对象的分类相适应,以使代码对编码对象的分类据有标志作用。

简单性:在设计过程中采用Code-Behind代码分离,使数据库操作代码和前端调用代码分离,页面修改容易。

适应性:在代码设计过程中,代码反映了编码对象的特点,便于识别和记忆,使系统维护人员容易了解和掌握,便于进行维护工作。

系统总体功能结构

网络通信系统包含以下主要功能。

用户注册;用户登录;

查找好友;查看好友资料;

添加好友;

删除好友;

发送消息;

发送文件.

数据库表主要用来存放用户的注册信息和用户的好友资料,可利用两张数据库表来存放用户信息和用户好友的资料。包括用户的号码,昵称,密码,在线与否,ip地址,资料,头像号,性别,E-mail和籍贯等信息。其中,用户昵称和密码是必需的字段;在线与否是由系统自动设置的;其余的信息是可选的字段。

课题整体以JAVA为平台,采用Eclipse开发工具,并使用SQL Server 2000管理数据库数据开发而成的基于Socket的集中式网络通信系统,系统采用客户机/服务器(C/S)的模式设计,是一个三层C/S结构,数据库服务器、应用程序服务器端、应用程序客户端。系统采用C/S结构,可以将任务合理分配到客户机端和服务器端,从而降低了系统的通信开销。

客户层。

客户层是应用程序的用户接口部分,它担负着用户与应用间的对话功能,用于检查用户的输入数据,显示应用的输出数据,为了直观的进行操作,客户层需要使用图形用户接口,若聊天用户变更,系统只需改写显示控制和数据检查程序即可,而不会影响其他两层。

服务层。(功能层)

服务层相当于应用的本体,它是将具体的业务处理逻辑编入程序中。在应用设计中,必须避免在表示层和功能层之间进行多次的数据交换,这就需要尽可能进行一次性的业务处理达到优化整体设计的目的。

数据层

数据层是DBMS,本系统使用了Microsoft公司的SQL Ssever2000数据库服务器来管理数据。SQL Ssever2000能迅速的执行大量数据的更新和检索,因此,从功能层传送到数

据层的要求一般都使用SQL语言。

三、数据库课程设计实例


数据库课程设计


数据库课程设计

题目:小型超市管理系统

1、项目计划

1.1系统开发目的

(1)大大提高超市的运作效率;

(2)通过全面的信息采集和处理,辅助提高超市的决策水平;

(3)使用本系统,可以迅速提升超市的管理水平,为降低经营成本,提高效益,增强超市扩张力,提供有效的技术保障。

1.2背景说明

21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。技术的提升和管理的升级是超市业的竞争核心。零售领域目前呈多元发展趋势,多种业态:超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求的目标。

1.3项目确立

针对超市的特点,为了帮助超市解决现在面临的问题,提高小型超市的竞争力,我们将开发以下系统:前台POS销售系统、后台管理系统,其中这两个子系统又包含其它一些子功能。

1.4应用范围

本系统适应于各种小型的超市。

1.5定义

(1)商品条形码:每种商品具有唯一的条形码,对于某些价格一样的商品,可以使用自定义条形码。

(2)交易清单:包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号。

(3)商品积压:在一定时期内,远无法完成销售计划的商品会造成积压。

(4)促销:在一定时期内,某些商品会按低于原价的促销价格销售。

库存告警提示:当商品的库存数量低于库存报警数量时发出提示。

(5)盘点:计算出库存、销售额、盈利等经营指标。

1.6参考资料

《数据库原理及设计》陶宏才编清华大学出版社

《SQL Server 2000实用教程》范立南编清华大学出版社

《SQL Server 2000编程员指南》李香敏编北京希望电子出版社

《轻松搞定 SQL Server 2000程序设计》Rebecca M.Riordan编

《软件工程规范》Watts S.Humphrey编清华大学出版社

《软件工程理论与实践》 Shari Lawrence Pfleeger编清华大学出版社

《软件需求分析》 Swapna Kishore编机械工业出版社

《软件工程思想》林锐编

2、逻辑分析与详细分析

2.1系统功能

(1)、零售前台(POS)管理系统,本系统必须具有以下功能:

商品录入:根据超巿业务特点制定相关功能,可以通过输入唯一编号、扫描条形码、商品名称等来实现精确或模糊的商品扫描录入。该扫描录入方法可以充分保证各种电脑操作水平层次的人员均能准确快速地进行商品扫描录入。

收银业务:通过扫描条形码或者直接输入商品名称(对于同类多件商品采用一次录入加数量的方式)自动计算本次交易的总金额。在顾客付款后,自动计算找零,同时打印交易清单(包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号)。如果顾客是本店会员并持有本人会员卡,则在交易前先扫描会员卡,并对所购物品全部实行95折优惠,并将所购物品的总金额累计到该会员的总消费金额中。会员卡的有效期限为一年,满一年未续卡者,该会员卡将被注销。

安全性:OS登陆、退出、换班与操作锁定等权限验证保护;断电自动保护最大限度防止意外及恶意非法操作。

独立作业:有的断网收银即在网络服务器断开或网络不通的情况下,收银机仍能正常作业

(2)、后台管理系统,本系统必须具备以下功能

进货管理:根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),可以避免盲目进货造成商品积压。按计划单有选择性地进行自动入库登记。综合查询打印计划进货与入库记录及金额。

销售管理:商品正常销售、促销与限量、限期及禁止销售控制。综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。按多种方式统计生成销售排行榜,灵活察看和打印商品销售日、月、年报表。

库存管理:综合查询库存明细记录。库存状态自动告警提示。如库存过剩、少货、缺货等。软件为您预警,避免库存商品积压损失和缺货。库存自动盘点计算。

人员管理:员工、会员、供货商、厂商等基本信息登记管理。员工操作权限管理。客户销售权限管理。

(3)系统结构

系统总体结构

模块子系统结构

功能描述:商品录入子系统要求能快速录入商品,因此必须支持条形码扫描。

功能描述:收银业务子系统能计算交易总额,打印交易清单,并根据会员卡打折。

功能描述:进货管理子系统可以根据库存自动指定进货计划,进货时自动等级,以及提供查询和打印计划进货与入库记录的功能。

功能描述:销售管理子系统可以控制某商品是否允许销售,查询每种商品的销售情况并产生年、月、日报表,同时可以生成销售排行榜。

功能描述:库存管理子系统提供查询库存明细记录的基本功能,并根据库存的状态报警,以及自动盘点计算。

功能描述:人员管理子系统提供基本信息登记管理,员工操作权限管理,客户销售权限管理的功能。

2.2、流程图

前台管理系统

顶层DFD图

第0层DFD图

第1层DFD图

2.3、户类型与职能

(1)、员工(营业员):

通过商品条形码扫描输入商品到购买清单

操作软件计算交易总金额

操作软件输出交易清单

对会员进行会员卡扫描以便打折

(2)、:超市经理

操作软件录入商品,供货商,厂商

操作软件制定进货计划

查询打印计划进货与入库记录

操作软件控制商品销售与否

查询打印销售情况

操作软件生成销售排行榜

查询库存明细记录

根据软件发出的库存告警进行入货

操作软件进行盘点计算

(3)、总经理:

基本信息登记管理

员工操作权限管理

客户销售权限管理

2.4、统开发步骤

确定参与者和相关的用况

为每个用况设计过程

建立顺序图,确定每个脚本中对象的协作

创建类,确定脚本中的对象

设计,编码,测试,集成类

为过程编写系统测试案例

运行测试案例,检验系统

2.5、系统环境需求

系统模式

本系统采用C/S模式作为开发模式

硬件环境

服务器端:

高性能的计算机一台,

普通的双绞线作为连接。

客户端:普通的计算机或者工作站,

普通的双绞线作为连接。

软件环境

服务器端:安装SQL Server 2000的服务器版本,

安装windows 2000服务器版本,

配置了诺顿等必须的防毒软件。

客户端:安装SQL Server2000的服务器版本,

安装了VB等可视化开发工具软件,

安装windows2000服务器版本。

2.6、系统安全问题

信息系统尽管功能强大,技术先进,但由于受到自身体系结构,设计思路以及运行机制等限制,也隐含许多不安全因素。常见因素有:数据的输入,输出,存取与备份,源程序以及应用软件,数据库,操作系统等漏洞或缺陷,硬件,通信部分的漏洞,企业内部人员的因素,病毒,“黑客”等因素。因此,为使本系统能够真正安全,可靠,稳定地工作,必须考虑如下问题:为保证安全,不致使系统遭到意外事故的损害,系统因该能防止火,盗或其他形式的人为破坏。

系统要能重建

系统应该是可审查的

系统应能进行有效控制,抗干扰能力强

系统使用者的使用权限是可识别的

3、基于UML的建模

3.1语义规则

用例模型(use cases view)(用例视图)的基本组成部件是用例(use case)、角色(actor)和系统(system)。用例用于描述系统的功能,也就是从外部用户的角度观察,系统应支持哪些功能,帮助分析人员理解系统的行为,它是对系统功能的宏观描述,一个完整的系统中通常包含若干个用例,每个用例具体说明应完成的功能,代表系统的所有基本功能(集)。角色是与系统进行交互的外部实体,它可以是系统用户,也可以是其它系统或硬件设备,总之,凡是需要与系统交互的任何东西都可以称作角色。系统的边界线以内的区域(即用例的活动区域)则抽象表示系统能够实现的所有基本功能。在一个基本功能(集)已经实现的系统中,系统运转的大致过程是:外部角色先初始化用例,然后用例执行其所代表的功能,执行完后用例便给角色返回一些值,这个值可以是角色需要的来自系统中的任何东西。

UML:是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示;它不是一种可视化的程序设计语言而是一种可视化的建模语言;不是工具或知识库的规格说明而是一种建模语言规格说明是一种表示的标准;不是过程也不是方法但允许任何一种过程和方法使用它。

用例(use case):

参与者(actor):

3.2、UML模型

3.21、系统UML模型

3.22、子系统UML模型

(1)零售前台(POS)管理系统用例视图

(2)后台管理系统用例视图

3.3、系统实现图

4、超市销售系统概念设计文档

(1)、系统ER图

(2)、系统ER图说明

1)商店中的所有用户(员工)可以销售多种商品,每种商品可由不同用户(员工)销售;

2)每个顾客可以购买多种商品,不同商品可由不同顾客购买;

3)每个供货商可以供应多种不同商品,每种商品可由多个供应商供应。

(3)、视图设计

1)交易视图(v_Dealing)——用于查询交易情况的视图;

2)计划进货视图(v_PlanStock)——用于查询进货计划的视图;

3)销售视图(v_Sale)——用于查询销售明细记录的视图;

4)入库视图(v_Stock)——用于查询入库情况的视图。

5、逻辑设计文档

(1)、系统关系模型

a)商品信息表(商品编号,商品名称,价格,条形码,促销价格,促销起日期,促销止日期,允许打折,库存数量,库存报警数量,计划进货数,允许销售,厂商编号,供货商编号)

b)用户表(用户编号,用户名称,用户密码,用户类型)

c)会员表(会员编号,会员卡号,累积消费金额,注册日期)

d)销售表(销售编号,商品编号,销售数量,销售金额,销售日期)

e)交易表(交易编号,用户名称,交易金额,会员卡号,交易日期)

f)进货入库表(入库编号,入库商品编号,入库数量,单额,总额,入库日期,计划进货日期,入库状态)

g)供货商表(供货商编号,供货商名称,供货商地址,供货商电话)

h)厂商表(厂商编号,厂商名称,厂商地址,厂商电话)

(2)、系统数据库表结构

数据库表索引

表名中文名

MerchInfo商品信息表

User用户表

Menber会员表

Sale销售表

Dealing交易表

Stock进货入库表

Provide供货商表

Factory厂商表

商品信息表(MerchInfo)

字段名字段类型长度主/外键字段值约束对应中文名

MerchID int 4 P Not null商品编号

MerchName Varchar 50 Not null商品名称

MerchPrice Money 4 Not null价格

MerchNum Int 4 Not null库存数量

CautionNum Int 4 Not null库存报警数量

PlanNum Int 4 null计划进货数

BarCode Varchar 50 Not null条形码

SalesProPrice Money 4促销价格

SalesProDateS Datetime 8促销起日期

SalesProDateE Datetime 8促销止日期

AllowAbate Int 4 Not null允许打折

AllowSale Int 4 Not null允许销售

FactoryID Varchar 10 F Not null厂商编号

ProvideID Varchar 10 F Not null供货商编号

用户表(User)

字段名字段类型长度主/外键字段值约束对应中文名

UserID varchar 10 P Not null用户编号

UserName Varchar 25 Not null用户名称

UserPW Varchar 50 Not null用户密码

UserStyle Int 4 Not null用户类型

会员表(Menber)

字段名字段类型长度主/外键字段值约束对应中文名

MemberID Varchar 10 P Not null会员编号

MemberCard Varchar 20 Not null会员卡号

TotalCost Money 4 Not null累积消费金额

RegDate Datetime 8 Not null注册日期

销售表(Sale)

字段名字段类型长度主/外键字段值约束对应中文名

SaleID Varchar 10 P Not null销售编号

MerChID Varchar 10 F Not null商品编号

SaleDate Datetime 8 Not null销售日期

SaleNum Int 4 Not null销售数量

SalePrice Money 4 Not null销售单额

交易表(Dealing)

字段名字段类型长度主/外键字段值约束对应中文名

DealingID Varchar 10 P Not null交易编号

DealingPrice Money 4 Not null交易金额

DealingDate Money 4 Not null交易日期

MemberID Varchar 10会员卡号

UserName Varchar 10 F Not null用户名称

入库纪录表(Stock)

字段名字段类型长度主/外键字段值约束对应中文名

StockID Varchar 10 P Not null入库编号

MerchID Varchar 10 F Not null入库商品编号

MerchNum Int 4 Not null入库数量

MerchPrice Money 4 Not null单额

TotalPrice Money 4 Not null总额

StockDate Datetime 8 Datetime入库日期

PlanDate Datetime 8 Datetime计划进货日期

StockState Int 4 Not null入库状态

供货商表(Provide)

字段名字段类型长度主/外键字段值约束对应中文名

ProvideID varchar 10 P Not null供货商编号

ProvideName Varchar 50 Not null供货商名称

ProvideAddress Varchar 250供货商地址

ProvidePhone Varchar 25供货商电话

厂商表(Provide)

字段名字段类型长度主/外键字段值约束对应中文名

FactoryID varchar 10 P Not null厂商编号

FactoryName Varchar 50 Not null厂商名称

FactoryAddress Varchar 250厂商地址

FactoryPhone Varchar 25厂商电话

6、物理设计文档

/*----------创建数据库----------*/

create database SuperMarketdb

on primary

(

name=SuperMarketdb,

filename='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.mdf',

size=100MB,

maxsize=200MB,

filegrowth=20MB

)

log on

(

name=SuperMarketlog,

filename='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.ldf',

size=60MB,

maxsize=200MB,

filegrowth=20MB

)

go

/*----------创建基本表----------*/

use [SuperMarketdb]

go

/*创建交易表*/

CREATE TABLE Dealing(

DealingID int identity(1,1) Primary key,

DealingDate datetime NOT NULL,

DealingPrice money NOT NULL,

UserName varchar(25) NULL,

MemberCard varchar(20) NULL

)

GO

/*创建厂商表*/

CREATE TABLE Factory(

FactoryID varchar(10) Primary key,

FactoryName varchar(50) NOT NULL,

FactoryAddress varchar(250) NULL,

FactoryPhone varchar(50) NULL

)

GO

/*创建会员表*/

CREATE TABLE Member(

MemberID varchar(10) Primary key,

MemberCard varchar(20) NOT NULL,

TotalCost money NOT NULL,

RegDate datetime NOT NULL

)

GO

/*创建商品信息表*/

CREATE TABLE MerchInfo(

MerchID int identity(1,1) Primary key,

MerchName varchar(50) Unique NOT NULL,

MerchPrice money NOT NULL,

MerchNum int NOT NULL,

CautionNum int NOT NULL,

PlanNum int NOT NULL,

BarCode varchar(20) Unique NOT NULL,

SalesProPrice money NULL,

SalesProDateS datetime NULL,

SalesProDateE datetime NULL,

AllowAbate int NOT NULL,

AllowSale int NOT NULL,

FactoryID int NOT NULL,

ProvideID int NOT NULL

)

GO

/*创建供应商表*/

CREATE TABLE Provide(

ProvideID varchar(10) Primary key,

ProvideName varchar(50) NOT NULL,

ProvideAddress varchar(250) NULL,

ProvidePhone varchar(25) NULL

)

GO

/*创建销售表*/

CREATE TABLE Sale(

SaleID int identity(1,1) Primary key,

MerChID int NOT NULL,

SaleDate datetime NOT NULL,

SaleNum int NOT NULL,

SalePrice money NOT NULL

)

GO

/*创建入库表*/

CREATE TABLE Stock(

StockID int identity(1,1) Primary key,

MerchID int NOT NULL,

MerchNum int NOT NULL,

MerchPrice money NULL,

TotalPrice money NULL,

PlanDate datetime NULL,

StockDate datetime NULL,

StockState int NOT NULL

)

GO

/*创建用户表*/

CREATE TABLE User(

UserID varchar(10) Primary key,

UserName varchar(25) NOT NULL,

UserPW varchar(50) NOT NULL,

UserStyle int NOT NULL,

)

GO

/*----------创建表间约束----------*/

/*商品信息表中厂商编号、供应商编号分别与厂商表、供应商表之间的外键约束*/

ALTER TABLE MerchInfo ADD

CONSTRAINT [FK_MerchInfo_Factory] FOREIGN KEY

(

[FactoryID]

) REFERENCES Factory(

[FactoryID]

),

CONSTRAINT [FK_MerchInfo_Provide] FOREIGN KEY

(

[ProvideID]

) REFERENCES Provide(

[ProvideID]

)

GO

/*销售表中商品编号与商品信息表之间的外键约束*/

ALTER TABLE Sale ADD

CONSTRAINT [FK_Sale_MerchInfo] FOREIGN KEY

(

[MerChID]

) REFERENCES MerchInfo(

[MerchID]

) ON DELETE CASCADE

GO

/*入库表中商品编号与商品信息表之间的外键约束*/

ALTER TABLE Stock ADD

CONSTRAINT [FK_Stock_MerchInfo] FOREIGN KEY

(

[MerchID]

) REFERENCES MerchInfo(

[MerchID]

) ON DELETE CASCADE

GO

/*----------创建索引----------*/

/*在交易表上建立一个以交易编号、交易日期为索引项的非聚集索引*/

CREATE nonclustered INDEX IX_Dealing ON Dealing(DealingID, DealingDate)

GO

/*在商品信息表上建立一个以商品编号为索引项的非聚集索引*/

CREATE nonclustered INDEX IX_MerchInfo ON MerchInfo(MerchID)

GO

/*在销售表上建立一个以销售编号、销售日期为索引项的非聚集索引*/

CREATE nonclustered INDEX IX_Sale ON Sale(SaleID, SaleDate)

GO

/*在入库表上建立一个以入库编号、入库日期、商品编号为索引项的非聚集索引*/

CREATE nonclustered INDEX IX_Stock ON Stock(StockID, StockDate, MerchID)

GO

/*----------创建视图----------*/

/*创建用于查询交易情况的视图*/

CREATE VIEW v_Dealing

AS

SELECT DealingDate as交易日期,

UserName as员工名称,

MemberCard as会员卡号,

DealingPrice as交易金额

FROM Dealing

GO

/*创建用于查询进货计划的视图*/

CREATE VIEW v_PlanStock

AS

SELECT Stock.StockID as SID,

MerchInfo.MerchName as商品名称,

MerchInfo.BarCode as条形码,

Factory.FactoryName as厂商,

Provide.ProvideName as供货商,

Stock.MerchNum as计划进货数量,

Stock.PlanDate as计划进货日期

FROM Stock,MerchInfo,Provide,Factory

Where Stock.MerchID= MerchInfo.MerchID

and Provide.ProvideID=MerchInfo.ProvideID

and Factory.FactoryID=MerchInfo.FactoryID

and Stock.StockState=0

GO

/*创建用于查询销售明细记录的视图*/

CREATE VIEW v_Sale

AS

SELECT MerchInfo.MerchName as商品名称,

MerchInfo.BarCode as条形码,

MerchInfo.MerchPrice as商品价格,

Sale.SalePrice as销售价格,

Sale.SaleNum as销售数量,

Sale.SaleDate as销售日期

FROM Sale INNER JOIN

MerchInfo ON Sale.MerChID= MerchInfo.MerchID

GO

/*创建用于查询入库情况的视图*/

CREATE VIEW v_Stock

AS

SELECT MerchInfo.MerchName as商品名称,

MerchInfo.BarCode as条形码,

Factory.FactoryName as厂商,

Provide.ProvideName as供货商,

Stock.MerchPrice as入库价格,

Stock.MerchNum as入库数量,

Stock.TotalPrice as入库总额,

Stock.StockDate as入库日期

FROM Stock,MerchInfo,Provide,Factory

Where Stock.MerchID= MerchInfo.MerchID

and Provide.ProvideID=MerchInfo.ProvideID

and Factory.FactoryID=MerchInfo.FactoryID

and Stock.StockState=1

GO

7、小结

和传统管理模式相比较,使用本系统,毫无疑问会大大提高超市的运作效率,辅助提高超市的决策水平,管理水平,为降低经营成本,提高效益,减少差错,节省人力,减少顾客购物时间,增加客流量,提高顾客满意度,增强超市扩张能力,提供有效的技术保障。

由于开发者能力有限,加上时间仓促,本系统难免会出现一些不足之处,例如:

本系统只适合小型超市使用,不能适合中大型超市使用;

超市管理系统涉及范围宽,要解决的问题多,功能复杂,实现困难,但由于限于时间,本系统只能做出其中的一部分功能;

对于以上出现的问题,我们深表歉意,如发现还有其它问题,希望老师批评指正。

请采纳。

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!


数据库课程设计


猜你喜欢