东方学院!实验(实训)报告项目名称书店销售系统数据库分析与设计所属课程名称数据库原理及应用项目类型设计、综合型实验(实训)日期—@班级 12信息1班学号 03 05 1022 25 2739 43姓名李珺茹郑章章徐莹莹巫日峥冯星傅媛徐斌林良泽…分工表1、需求分析(郑章章、李珺茹)书店的部门组成、各部门的业务说明、基本信息管理安全性要求与完整性要求2.概念结构设计(徐斌、林良泽)3逻辑结构设计(徐莹莹),E-R图向关系模型的转换、数据模型的优化4.物理结构设计(巫日峥)数据库物理设计原理、相关表的物理结构5.数据库实施(冯星)数据库建立代码、初始数据的输入、视图的建立、触发器的建立#6、数据库的试运行(傅媛)7、数据库的维护、目录一、设计目的及要求 (2)、目的 (2)、背景 (2)概述 (2)可行性分析 (2)?二、课程设计内容说明 (3)1、需求分析 (3)书店的部门组成 (3)各部门的业务说明 (3)基本信息管理 (4)安全性要求与完整性要求 (5)2.概念结构设计 (5)3逻辑结构设计() (9);E-R图向关系模型的转换 (9)数据模型的优化 (10)4.物理结构设计 (10)10115.数据库实施14数据库建立代码 (14)初始数据的输入 (16)|视图的建立 (19)触发器的建立 (20)6、数据库的试运行 (22)7、数据库的维护 (22)三、结论及体会 (22)一、设计目的及要求、目的在科学飞速发展的今天,人们的视野越来越广,数据量急剧增加。
过去人们把数据存放在文件柜里,现在人们借助计算机和数据库技术科学地保存和管理大量的复杂数据,以便能方便而充分地利用这些宝贵的信息资源。
~本系统的设计目标就是要为中小型书店提供一套运行稳定、安全可靠、操作简便的管理系统。
帮助书店销售业务处理日常工作业务,规范管理各项工作和操作流程。
从根本上改变以前那种旧的管理模式,真正提高管理和服务的水平。
、背景随着社会信息量的迅速增长,计算机处理的数据量不断增加,在我国,管理信息系统是计算机应用最广泛的领域之一。
随着我国经济建设突飞猛进,管理科学化与管理手段的现代化已经提到非常重要的地位,企、事业单位为了提高自身的管理水平和竞争能力,纷纷投入人力物力,开发适合本单位需求的管理信息系统。
中国的信息化沿着企业信息化和政府信息化这两根链条正在飞速的发展,在全国的各级教育单位中,都在进行管理方式的改革,由以前的人工管理方式在向现在的人工加计算机技术的过渡中,在现在的这种模式中可以很大的提高工作人员的工作效率,提高了正确性。
概述这次所选的设计题目是书店销售管理系统。
数据库环境选择SQL server 2005中文版。
可行性分析管理上可行性\书店管理其实是不能说是简单,但是很琐碎。
每天的销售还有最后的书本数量的核对会耗费大量的人力和时间。
而进行计算机信息技术上的自动化管理不仅提高了管理的准确性而且省时省力。
经济上可行性只要这个书店管理系统就好,不需要额外的支出。
技术上可行性在大学我们已经学习了有关数据库,c语言等一系列计算机技术,在相对宽裕的时间内是可以编写出程序的。
二、课程设计内容说明1、需求分析书店的部门组成<对于书店来说,目的是销售图书,所以包含销售部门;同时为书店进书的部门称为进货部门。
各部门的业务说明销售部门对图书销售情况进行结算,对客户资源进行管理。
如,对某一段时间的图书销售情况进行统计;对订书的顾客信息进行记录,统计等。
因此,需要销售人员,图书,购书实体:顾客,以及联系:销售,购买。
进货部门记录图书供应商的信息,以便获得最新的图书进货信息。
通过供应商,为书店购进新的图书。
需要实体供货商,联系:进货。
基本信息管理-该模块实现图书情况的分类,包括书号,书名,作者,售价等。
便利店员查找书籍,为顾客提供更好的建议。
销售情况管理该模块对每本出售的书本进行统计,记录每本书售出的日期,购买人,经办人和销售的金额。
在这里店员可以很方便的加入销售记录,修改记录。
便于每天书店清账。
而且在这里总金额的计算公式是事先设定好的,这样避免了人为的计算错误。
销售、进货、书本信息管理销售、进货和书本库存三者结合起来管理整个书店的图书数量。
库存实现对书店剩余书本的管理,知道什么书还剩几本。
而进货清楚让人知道进了什么书,售价是什么还有哪个供应商提供的。
而且在这里总金额的计算公式是事先设定好的,这样避免了人为的计算错误。
书店会员管理实现系统相关会员信息的注册及身份,同时也提供对应会员的资料更新。
该模块还可以收集会员相关的消费额度,提供不同的折扣力度。
书店职员管理—实现书店职员的相关的管理,收集每个员工的相关信息,更好的了解员工还有实现不同职位不同的工资管理。
安全性要求与完整性要求安全性要求:系统应设置访问用户都预先约定好一个计算过程或者函数,鉴别用户身份时,系统提供一个随机数,用户根据自己预先约定的计算过程或者函数进行计算,系统根据用户计算结果是否正确进一步鉴别用户身份;系统应对不同的访问级别,限制访问用户可查询和处理数据的类别和内容;系统应对不同用户设置不同的权限,区分不同的用户,如区分会员,职员。
完整性要求:'各种信息记录的完整性,信息记录内容不为空,主码值唯一;列值非空,列值唯一,列值满足一个布尔表达式;用户的操作违背了完整性约束条件时,采取一定的动作,如拒绝执行该操作;各种数据间相互联系的正确性;相同的数据在不同的记录中的一致性。
2.概念结构设计部分E-R图图书本基本信息E-R图图供应商信息E-R图图职工信息E-R图图会员信息E-R图图销售信息E-R图图进货信息E-R图总体E-R图3逻辑结构设计E-R图向关系模型的转换逻辑设计的目的是把概念设计阶段设计的全局E-R模式转换层与选用的具体机器上DBMS锁支持的数据模型相符合的逻辑结构。
逻辑设计的步骤主要步骤有以下五步:(1)初始模式的形成(2)自模式设计(3)应用程序设计梗概(4)模式评价?(5)修正模式E-R图向关系模型转换,首先要进行数据的规范化。
所谓规范化是指在一个数据结构中没有重复出现的项组。
规范化是在关系数据库中减少数据冗余的过程。
实体书本(书号,书名,作者,价格,出版社,出版日期,类别,库存数量)属于BCNF供应商(供应商代号,供应商名字,联系人,电话,地址)属于BCNF员工(工号,ID,姓名,电话,住址,职位,性别,年龄)属于BCNF会员(会员号,姓名,年龄,电话,累积消费,折扣力度,入会时间,性别);属于BCNF关系进货(书号,时间,供应商代号,工号,书名,进货单号,金额,数量,总价)属于BCNF销售(书号,销售单号,书价,购买者,工号,折扣,时间,数量)属于3NF数据模型的优化#关系模式会员号,姓名,书名,供应商号,职工号不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF,但是销售关系模式、进货关系模式、库存信息关系模式中存在着一些数据冗余,现将四个关系模型进行合并,消除冗余,优化为:进货(书号,时间,供应商代号,工号,书名,进货单号,金额,数量)4.物理结构设计数据库物理设计原理数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,为给定的数据库系统确定合理的存储结构和存取方法。
所谓的“合理”主要有两个含义:一个是要使设计出的物理数据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度。
主要体现在后者。
建立索引:根据本系统的特点,采用B+树索引存取方法建立索引对图书,会员,职员,供应商,进货,销售和库存建立索引]①对图书,会员,职员,销售建立组合索引②对进货,销售,图书建立组合索引③对图书,供应商,进货建立组合索引对其进行的操作:①查找查找以典型的方式进行,类似于二叉查找树。
起始于根节点,自顶向下遍历树,选择其分离值在要查找值的任意一边的子指针。
在节点内部典型的使用二分查找来确定这个位置。
②插入节点要处于违规状态,它必须包含在可接受范围之外数目的元素。
首先,查找要插入其中的节点的位置。
接着把值插入这个节点中。
如果没有节点处于违规状态则处理结束。
如果某个节点有过多元素,则把它分裂为两个节点,每个都有最小数目的元素。
在树上递归向上继续这个处理直到到达根节点,如果根节点被分裂,则建立一个新根节点。
为了使它工作,元素的最小和最大数目典型的必须选择为使最小数不大于最大数的一半。
、③删除首先,查找要删除的值。
接着从包含它的节点中删除这个值。
如果没有节点处于违规状态则处理结束。
如果节点处于违规状态则有两种可能情况:它的兄弟节点,就是同一个父节点的子节点,可以把一个或多个它的子节点转移到当前节点,而把它返回为合法状态。
如果是这样,在更改父节点和两个兄弟节点的分离值之后处理结束。
它的兄弟节点由于处在低边界上而没有额外的子节点。
在这种情况下把两个兄弟节点合并到一个单一的节点中,而且我们递归到父节点上,因为它被删除了一个子节点。
持续这个处理直到当前节点是合法状态或者到达根节点,在其上根节点的子节点被合并而且合并后的节点成为新的根节点。
存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。
将日志文件和数据库对象(表、索引等)分别放在不同的磁盘,可以改进系统的性能,提高系统的安全性。
所以,系统应将日志文件和数据文件存放在不同磁盘上。
相关表的物理结构表书本物理结构表职员物理结构表会员物理结构表销售物理结构表进货物理结构5.数据库实施数据库建立代码数据库的创建(sql语句代码)create database bookstroeuse bookstroe表的创建,书本信息关系表的创建create table书本(书号char(5)not null primary key,书名varchar(30)not null,作者char(10),价格decimal(5,2),出版社varchar(6)not null,:出版日期smalldatetime,类别char(5)not null,库存数量int check(库存数量>=0),)供应商信息关系表的创建create table供应商(#供应商代号varchar(6)not null primary key,供应商名字varchar(20)not null,联系人char(10)not null,电话varchar(13)not null,地址varchar(30),)员工信息关系表的创建{create table员工(工号varchar(6)not null primary key,姓名Char(10)not null,性别varchar(2)not null check(性别='男'or性别='女'),年龄varchar(12),职位char(5)not null,电话varchar(13)not null,,ID varchar(18)not null,住址varchar(30),)会员信息关系表的创建create table会员(会员号varchar(6)primary key not null,\姓名char(10)not null,性别varchar(2)not null check(性别='男'or性别='女'),年龄varchar(12),入会时间datetime not null,折扣char(5)not null check(折扣in('','','')),累计消费decimal(5,2),电话varchar(12)not null,)、销售信息关系表的创建create table销售(销售单号char(6)not null primary key,书号char(5)not null,会员号varchar(6),|折扣decimal(5,2)not null check(折扣in('1','','','')),书价decimal(5,2)not null,工号varchar(6)not null,时间datetime not null,销售数量int check (销售数量>=1),销售总价as折扣*销售数量*书价,foreign key(会员号)references会员(会员号),foreign key(书号)references书本(书号),:foreign key(工号)references员工(工号),)进货信息关系表的创建create table进货(进货单号char(6)not null primary key,供应商代号varchar(6)not null,:书号char(5)not null,书名varchar(30)not null,书价decimal(5,2)not null,时间smalldatetime not null,进货数量int check (进货数量>=1),工号varchar(6)not null,总价as书价*进货数量,foreign key(书号)references书本(书号),?foreign key(供应商代号)references供应商(供应商代号), foreign key(工号)references员工(工号),)各个表的关系图图数据库关系图初始数据的输入数据库以及表创建之后,要输入一些实际的数据。