SQLserver数据库课程设计范例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
S Q L s e r v e r数据库课程
设计范例
Last revision on 21 December 2020
1 概述
课题简介
书店书目书种繁多,来源多样,购买者众多,图书信息、供应商信息、客户信息、销售信息庞大,不易管理。因此,很有必要创建一个小型书店管理系统,以便于书店对图书的管理。
设计目的
应用对数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践更好的结合起来,巩固所学知识。
数据库应用课程实践:实践和巩固在课堂教学中学习有关知识,熟练掌握对于给定结构的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。
数据库原理软件设计实践:实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。
设计内容
运用基于E-R 模型的数据库设计方法和关系规范化理论做指导完成从系统的分析到设计直至系统的最终实现,开发小型书店管理系统,完成小型书店管理系统的全部功能。
首先做好需求分析,并完成数据流图和数据字典。
其次做概念分析,利用实体联系的方法将需求分析的用户需求抽象为信息结构,得到E-R 图。
然后就是逻辑结构设计,将E-R 图转换为计算机系统所支持的逻辑模型
2 需求分析
功能分析
首先,建立一些基本表(尽可能满足3N),对大部分基本信息组合、存储;其次通过建立视图实现对冗余数据的有必要保留(查询并计算基本表属性得到新的作为视图属性)并实现对以下基本信息的显示。
图书信息:图书名称、订购数量、订购时间、订购单价、金额、出版社名称、作者名称;供应商名称等;
供应商信息:供应商名称、地址、电话,联系人;
客户信息:客户编号、名称、年龄、性别、累计购书金额等;
销售信息:时间、销售名称、数量、销售单价、客户编号、客户名称、金额等。
在此基础上进行以下目标查询,由于有些查询常用且较复杂,为了简化其应用,所以将它们定义为存储过程。
查询当月书店销售金额、营业金额;(存储过程)
查询某种图书库存数量;(存储过程)
查询当月销量最好的图书信息;(存储过程)
按供应商名称查询订购信息;(普通查询)
查询购买次数超过3次的客户信息。(普通查询)
接着根据需要建立触发器、存储过程、索引,实现对数据库的优化。最后,进行过程功能的验证。允许具有权限者对数据库进行数据更新和查询等合法操作。
数据流图
用流程图来描述处理过程与数据的关系
数据流图如下:
图2,1 数据流图
数据字典
用数据字典来描述数据
数据字典如下:
数据项:
表数据字典
数据结构:
概念结构设计
概念结构设计的方法
设计概念结构通常有四类方法:自顶向下,自底向上,逐渐扩张以及混合策略。本系统采用的是自底向上的方法。即首先定义全局的概念结构的框架,然后逐步细化。根据自顶向下地进行需求分析然后再自底向上地进行概念设计。
概念结构设计的步骤
第一步:抽象数据;
第二步:设计局部E-R图;
第三步:把各分E-R图综合成总体E-R图,消除各种冲突;
第四步:对总体E-R图进行优化,消除冗余数据和冗余联系;
抽象初步数据:(此处与优化后E-R图得出的实体联系属性很有可能不同)
实体:图书、供应商、客户
联系:图书订购关系、图书销售关系
图书与供应商的关系是多对一的关系;
图书与客户的关系是多对一的关系。
属性:
图书的属性:图书编号、图书名称、出版社名称、作者名称、供应商名称;
主码为图书编号
供应商的属性:供应商名称、供应商地址、电话、联系人;
主码为供应商名称
客户的属性:客户编号、姓名、性别、年龄;
主码为客户编号
图书订购关系属性:供应商名称、图书编号、订购时间、订购单价;
主码为供应商名称和图书编号
图书销售关系属性:客户编号、图书编号、销售时间、销售单价;
主码为客户编号和图书编号
分E-R图:
图书E-R图:
供应商E-R图:
客户E-R图:
初E-R图:
优化后的总E-R图:
逻辑设计阶段
逻辑设计阶段:将系统E-R模型转换为关系模式,并对给出的关系模式进行关系规范化处理(尽量满足3NF),得到系统全部的关系模式,并标明主键、外键此部分一律采用英文命名。然后进行用户外模式的设计,针对中国用户,此处用中文命名。
将E——R模式转换为以下关系模式:
1) book(#bname, writer_name, press_name);
主键:#bname
2.) everybook (# bno, #bname) ;
主键:#bno
外键:#bname
3) supplier (#supplier_name, address, telephone, contact) ;
主键:#supplier_name
4) customer (#cno, cname, sex, age);
主键:#cno
5) book_order(#bname, #supplier_name, #order_time, order_price, order_count);
主键: #bname, #supplier_name, #order_time
6) book_sell(#bno, #cno, sell_time, sell_price);
主键:#bno
发现这六个关系模式3N都满足。因为元组中都是不可分割的数据,且所有非主属性完全依赖其主码,且它的任何一个非主属性都不传递于任何主关键字。
用户外模式设计:
基本信息视图的建立:
1. 单本销售情况(图书编号,图书名称客户编号,客户名称,销售单价,销售时间);
2. 同种销售情况(书名,销售数量,销售金额);
3. 客户信息(客户编号,客户名称、性别,年龄,累计购书金额);
4. 供应商信息(供应商名称,地址,电话,联系人);