题目11-某公司的自助餐管理系统

大型数据库开发与设计

题 目: 某公司的自助餐管理系统 学 号: 姓 名: 班 级:

目录

一、 引言 . .................................................................................................................................. 1

1.1背景与目的 . ........................................................................................................................ 1 1.2后台数据库SQL Server 2008简介 ................................................................................... 1 二、 系统需求分析 . .................................................................................................................. 1

2.1系统功能分析 . .................................................................................................................... 2

2.21子模块功能分析 . ...................................................................................................... 3 2.2系统功能模块设计 . ............................................................................................................ 4

2.21系统功能管理模块 . .................................................................................................. 4 2.3数据流图 . ............................................................................................................................ 5

2.3.1交易数据流图 . ......................................................................................................... 6 2.3.2整体流图 . ................................................................................................................. 7 2.4可行性分析 . ........................................................................................................................ 8 2.5数据字典 . ............................................................................................................................ 8 三、概念结构设计 . .......................................................................................................................... 9

3.1构思ERD 的四条原则 . .................................................................................................... 10 3.2 设计E -R 图................................................................................................................... 10

3.2.1分E -R 图 . ............................................................................................................ 10

四、逻辑结构设计 . ........................................................................................................................ 12

4.1 一般逻辑模型设计: . ................................................................................................... 13

4.1.1 由ERD 导出一般关系模型的四条原则 ............................................................. 13 4.1.2 数据库初步的关系框架(E-R 图向关系模型转化) . ....................................... 13 4.1.3数据模型优化 . ....................................................................................................... 14 4.2具体逻辑模型设计 . .......................................................................................................... 14 4.3设计用户子模式 . .............................................................................................................. 18 五、物理结构设计 . ........................................................................................................................ 19

5.1建立索引 . .......................................................................................................................... 19 5.2建立触发器 . ...................................................................................................................... 20 六、数据库结构的实现 . ................................................................................................................ 21

6.1数据定义 . .......................................................................................................................... 21

6.1.1创建表格SQL 语句 .............................................................................................. 22 6.1.2创建视图SQL 语句 .............................................................................................. 23 6.1.3创建索引SQL 语句 .............................................................................................. 24 6.3数据查询 . .......................................................................................................................... 25 6.4数据更新 . .......................................................................................................................... 25

6.4.1数据添加 . ............................................................................................................... 25 6.4.2数据修改 . ............................................................................................................... 25 6.4.3数据删除 . ............................................................................................................... 26

七、总结......................................................................................................................................... 27

某公司的自助餐管理系统

一、 引言

1.1背景与目的

随着一些公司规模的不断扩大,公司后勤管理工作也日趋繁杂.许多大型公司拥有自己的食堂,这些食堂要实现统一的协调管理,就不得不借助现代化的管理模式— — 网络管理模式。

由于某公司为了提高职工的福利待遇,规定每个员工每天可以在职工食堂用餐两次(每餐3元),可以中午用餐一次,下午用餐一次;也可以集中到中午或下午一次用餐两次。月底进行核算,如果用餐次数不足,餐费不退还职工。公司根据实际的用餐次数支付食堂餐费。

根据题目要求,需要设计并创建该公司的自助餐管理系统,这样不仅提高了工作效率,也避免了以前手工作业的麻烦,从而使得管理者能够准确,有效的管理餐饮。

1.2后台数据库SQL Server 2008简介

SQL 全称是“结构化查询语言(Structured Query Language)”,最早的是IBM 的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE 语言。SQL 语言结构简洁,功能强大,简单易学,所以自从IBM 公司1981年推出以来,SQL 语言,得到了广泛的应用。

SQL 是高级的非过程化编程语言,允许用户在高层数据结构上工作。SQL 不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL 语言作为数据输入与管理的接口。它以记录集合作为操纵对象,所有SQL 语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL 语句的输出作为另一条SQL 语句的输入,所以SQL 语言可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的一个单独事件只需要一个SQL 语句就可以达到目的,这也意味着用SQL 语言可以写出非常复杂的语句。

二、 系统需求分析

随着21世纪的到来,人们更深切地感受到了计算机在生活和工作中的作用

越来越重要,越来越多职业需要具有计算机的应用技能。掌握计算机是职业的雪要,更是事业发展的需要。

信息在社会和经济的发展中所起的作用越来越为人们所重视。信息资源的开发利用水平已成为衡量一个国家综合国力的重要标志之一。在计算机的三大主要

应用领域(科学计算、数据处理与过程控制)中,数据处理的比重占70%左右。计算机作为信息处理的工具,为适应数据处理需求的迅速提高,满足各类系统对数据处理的要求,在文件系统的基础上发展起了数据库系统。

随着计算机计算机技术的飞速发展,计算机在企业管理中应用及普及,利用计算机实现企业信息管理势在必行。本课题以企业食堂为对象,作为要面对大量的课程设计项目及相关信息的处理,这就需要一个课程设计管理系统来提高管理工作的效率。通过本系统,可以做到信息的规范管理、科学统计和快速查询,从而减少管理工作方面的工作量。

数据处理技术已深入到我们工作和生活的方方面面,而数据库技术是数据处理不可缺少的手段。随着数据库技术的发展,面向对象的数据库、分布式数据库、多媒体数据库、数据库开发工具的研究方兴未艾,这些技术的发展使用软件的开发速度更快、成本更低、质量更好、功能更强。

管理信息系统是一门新兴的、集管理科学、信息科学、系统科学及计算机科学为一体的综合性学科,研究的是信息管理活动的全过程,以便有效的管理信息,提供各类管理决策信息,辅助企业进行现代化管理。管理信息系统它具备数据处理、计划、控制、预测和辅助决策功能,具体作用如下5点内容:

(1)用统一标准处理和提供信息,排除使用前后矛盾的不完整的数据。 (2)完整、及时提供在管理及决策中需要的数据。 (3)利用指定的数据关系分析数据,客观预测未来。

(4)向各级管理机构提供不同详细程度的报告,缩短分析和解释的时间。 (5)用最低的费用最短的时间提供尽可能精确、可靠的信息,以便使决策

者选择最佳的实施方案,以提高企业的经济效益。

2.1系统功能分析

系统开发的总体任务是受用计算机信息管理技术,实现公司的自助餐管理各种信息的系统化,规范化,自动化,提高公司食堂管理的效率。

对应用系统项目的开发,首先要对程序要实现的功能和目标进行整体分析和规划,确保在后期开发中不会出现遗漏或重大缺陷。因此在软件开发中,要严格按照软件工程的流程进行系统的分析和设计

系统功能分析是在系统开发的总体任务的基本上完成的。 主要功能:

1、职工信息管理 2、职工食堂信息管理 3、成本核算管理

其中主要任务为职工信息管理和成本核算管理。 总的功能特点:

● 完善、全面的综合查询 ● 报表翔实,实用性强

2.21子模块功能分析

职工信息管理:对来自客户端的不同用户进行权限审查,限定对数据库的访问级

职工用餐信息管理:记录员工用餐的次数,包括每日用餐次数和每月的用餐次数;

本日用餐次数:记录本日用餐次数,每增加一个便同步使每月用餐次数也增

加一次,每日用餐次数不大于2次。

成本核算管理: 对成本利润的综合分析。成本包括公司的本月开销和之前月份

公司开销的统计记录;

公司本月开销:统计公司本月的开销,员工本月消费一次则增长3元的开销。 公司每月开销:记录之前每月的开销情况。

2.2系统功能模块设计

对上述各项功能进行集中、分块分析,按照结构化程序设计的要求,得到如图所示的这个系统的功能模块图

2.21系统功能管理模块

2.3数据流图

【注释:数据流图,简称DFD, 是SA 方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型】

数据流程图是组织中信息运动的抽象,是管理信息系统逻辑模型的主要形

式。它可以综合的反映出信息在系统中的流动、处理和存储情况,具有良好的抽象性和概括性。它在调查的基础上,从系统的科学性、管理的合理性、实际运行的可行性角度出发,将信息处理功能和彼此之间的联系自顶向下、逐层分解,从逻辑上精确地描述系统应具有的数据加工、数据输入、数据输出、数据存储及数据来源和去向(外部实体)等项目。数据流程图和系统的物理描述无关,它所描述的内容不涉及技术细节,而是面向用户的,即使完全不懂信息技术的用户也容易理解。因此,数据流程图成为系统分析员与用户进行交流的有效手段,同时也成为系统设计的主要依据之一。

用户的需求具体体现在各种信息的提供、保存、更新和查询等方面,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据、数据结构及数据处理的流程,组成一份详尽的数据字典,为数据库的具体设计打下基础。

数据流图表达了数据和处理之间的关系。数据流图是有层次之分的,越高层次的数据流图表现的业务逻辑越抽象,越底层次的数据流图表现得业务逻辑越具体。

在仔细的分析调查有关食堂管理信息需求的基础上,得到如下图所示的这个系统所处理的数据流程。

根据以上的分析,我们可以先画出分流程图,然后可以综合分流程图,画出整个系统操作的业务流程图

2.3.1交易数据流图

2.3.2整体流图

整体流图简图:

2.4可行性分析

可行性分析是系统分析阶段的重要活动,是对系统进行全面、概要的分析。它的任务是确定项目开发是否必要和可行。它的主要目标是:进一步明确系统的目标、规模和功能,对系统开发背景、必要性和意义进行调查分析,并根据需要和可能提出拟开发系统的初步方案和计划,明确问题,对所提供系统大致规模和目标的几个有关约束条件进行论证,并且提出系统的逻辑模型和各种可能的方案,从而为系统开发项目的决策提供科学依据。

其主要从三个方面进行研究:

(1)技术可行性:对现有技术进行评价,以明确能否利用现有技术进行系统开发及系统实施。计算机网络技术的发展和计算机硬件性价比的不断提升,使计算机全面应用于医院管理的各个环节成为可能。C/S开发模式、COM 、DCOM 技术在国内各行各业的信息管理系统开发中已经被广泛采用,实践证明这些技术都非常适合食堂管理系统的开发。

(2)经济可行性:对组织的经济状况和投资能力进行分析,对系统建设、运行和维护费用进行评估,对系统建成后可能取得的社会及经济效益进行估计。连锁餐饮企业整体规模庞大,个体规模小而营管理相对简单统一,开发成本不高,一旦开发成功,即能直接应用在所有同种食堂。

(3)营运可行性:指系统对组织机构的影响,对现有人员和机构、设施、环境等的适应性以及进行人员培训补充计划的可行性。连锁餐饮企业整体规模庞大,个体规模小而营管理相对简单统一。所以食堂系统的计算机信息管理人才、计算机硬件设备、操作员的计算机应用能力都为系统的运行过程提供了可靠保证。

2.5数据字典

由于数据流程图只是对数据处理及彼此之间的联系进行说明,未对数据的详细内容及数据的加工过程进行说明,而这正是数据字典所要表达的。数据字典是关于数据信息的集合,也就是对数据流程图中包含的所有元素的定义的集合。它能将数据流程图中全部数据流及其组成部分的数据元素、数据存储、数据加工等描述清楚,便于后续工作—系统设计的进行。

数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。数据字典通常包括数据项、数据结构、数据流、数据存诸和处理过程5个部分。其中数据项是最小组成单位,若干数据项组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储和逻辑内容。

针对一般食堂管理信息系统的需求,通过对食堂管理工作过程的内容和数据流程分析,设计如下所示的数据项和数据结构:

数据结构名称:职工用餐卡信息

含义说明:这里指的是职工用来使用付款的工具卡的一系列信息,它记录了

包括它本身以及持卡者的一些信息

包括的数据项有:

1) 卡号

(消费者使用的用来付款的卡的编号,与消费者办卡的先后顺序有关 别名Card_number 字符型 长度6) 2) 余额(今日剩余用餐量)

(消费者卡中所剩的金钱数量,别名Balance 字符型 长度 6) 3) 办卡日期

(消费者办卡的日期,别名Card_date 日期型 长度 8) 4) 持卡者姓名

(拥有信息卡的消费者的名称,别名 Person_name 字符型 长度 10) 5) 花费(用餐次数统计)

(消费者所消费的金钱数量 别名 Consume 字符型 长度 20)

数据结构名称:员工信息

含义说明:消费者群体之一,可以自由选择消费方式,办过卡用卡交易或者

用现金交易

包括的数据项有: 1) 工号

(职工在公司所编的号码 别名 S_number 字符型 长度 6) 2) 部门

(职工所在的部门的名称 别名 S_system 字符型 长度 16) 3) 职位

(职工所担任的职位 别名 S_class 字符型 长度 20) 4) 姓名

(职工的姓名 别名 S_name 字符型 长度 10) 5) 性别

(职工的性别 别名 S_sex 字符型 长度 4) 6) 地址

(职工的所在地址 别名 S_adress 字符型 长度 20) 7) 联系方式

(职工的手机号码 别名 S_tel 字符型 长度 20)

三、概念结构设计

这一设计阶段是在需求分析的基础上,设计出能满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。

将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。它是整个数据库设计的关键。

概念结构设计的特点是能真实、充分的反映现实世界,包括事物和事物的联系,能满足用户对数据的处理要求,是对现实世界的一个真实的模型。易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库设计成功的关键。易于改正,当应用环境和应用要求改变时,易于对概念模型修改和扩充。易于向关系、网状、层次等各种数据模型转换。

概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。概念结构是对现实世界的一种抽象。所谓抽象是对实际的人、物、事和概念进行人为处理,抽取所关心的共同特性,忽略非本质的细节,并把这些特性用各种概念准确的加以描述。

概念结构设计通常分为四种方法:自顶向下,即首先定义全局概念结构的框架,然后逐步细化。自底向上,即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构。逐步扩张,首先定义最重要的核心概念结构,然后向外扩张。混合策略,即自顶向下和自底向上结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。通常分为两步,第一步是抽象数据并设计局部视图,第二步是集成局部视图,得到全局视图。

下面首先对实体和其属性加以描述,再写出系统的分E-R 图,进而合并成为整体的E-R 图。

3.1构思ER D 的四条原则

原则1:能独立存在的事物,例如人、物、事、地、团体、机构、活动、事

项等等,在其有多个由基本项描述的特性需要关注时,就应把它作为实体。

原则2:两个或多个实体间的关联与结合,如主管、从属、组成、占有、作

用、配合、协同等等,当需要予以关注时,应作为联系。联系通常是某类行为动作,ERD 中关注的是其状态与结果而非其过程。

原则3:实体的属性是实体的本质特征。实体应有标识属性(能把不同个体

区分开来的属性组),并指定其中一个作为主标识。联系的属性是联系的结果或状态。属性具有如下几个特点:a. 非多值性;b. 非复合性;c. 非导出性。而实体的属性还应有非关联性。

原则4(一事一地原则):所有基本项在同一E-R 图中作为属性要在仅在一个

地方出现

3.2 设计E -R 图

根据上面的设计规划出的实体有:卡信息实体、学生信息实体、教师信息实体、消费者实体、包房信息实体、订餐信息实体、消费情况实体、管理员信息实体。各个实体具体的描述E-R 图及其之间的关系描述如下。

3.2.1分E -R 图

图3-1 为卡信息实体E-R 图

图3-2 为职工信息实体E-R 图

图3-3 为消费情况实体E-R 图

图3-4 为卡信息实体、职工信息实体、消费者实体关系E-R 图

四、逻辑结构设计

现在需要把上面设计好的数据库概念结构转化为SQL Server 2008数据库系

统所支持的实际数据库模型,也就是数据库的逻辑结构。此部分使用PowerDesigner 进行数据库结构设计,最终导出物理结构模型和逻辑结构模型,

并生成SQL Server 2008数据库文件。

4.1 一般逻辑模型设计:

4.1.1 由ERD 导出一般关系模型的四条原则

原则1:E-R 图中的每一个独立实体变换为一个关系,其属性变为关系的属性,其主标识变为关系的主码。

原则2:E-R 图中的从实体及相应的“的”联系变换为一个关系,从实体的属性加上主体关系的主码构成这个关系的属性。如果“的”联系是1:1的,则以主实体关系的主码(作为外来码)为这个关系的主码;如果“的”联系是1:M 的,则以主实体关系的主码加上同一主实体个体联系的不同从属实体个体赖以相互区分的属性组,组成该关系的主码。

原则3:1:M 联系通过在“多”实体关系中增加相联系的“1”实体关系的主码及联系本身的属性来表达。其中“1”实体主码为外来码。

原则4:M :M 联系转换成一个独立的关系,被联系实体关系的主码(作为外来码)和联系本身的属性作为该关系的属性,被联系实体关系的主码组成其复合主码。

4.1.2 数据库初步的关系框架(E-R 图向关系模型转化)

关系模型转化

消费情况

(日期 用餐次数 剩余次数 ) 消费

(日期 消费序号) 消费者

(消费序号 姓名 性别 消费类别 消费者类别) 属于

(员工号 员工信息

(员工号 部门 职位 姓名 性别 地址 联系方式) 使用

(卡号 卡信息

(卡号 余额 办卡日期 持卡者姓名 花费) 持有

(卡号

4.1.3数据模型优化

数据库逻辑设计的结果不是唯一的,为了进一步提高数据库应用系统的

性能,还应该根据应用需要适当地修改、调整数据模型的结构,这就是数据模型的优化。关系数据模型的优化通常以规范化理论为指导,方法为: 1、确定数据依赖

2、对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系 冗余数据和冗余联系容易破坏数据为的完整性,给数据库维护增加困难,应当予以消除。经过规范化理论得出,原关系模式之间的数据依赖已经达到极小化,没有冗余的联系,消除冗余的E-R 图称为基本E-R 图 3、按照数据依赖的理论对关系模式逐一进行分析,考察是否存在部分函数依赖,传递函数依赖,多值依赖等,确定各关系模式分别属于第几范式。

4、按照需求分析阶段得到的处理要求,分析对于这样的应用环境这些模式是否合适,确定是否要对某些模式进行合并或分解。

5、对关系模式进行必要的分解,提高数据操作的效率和存储空间的利用率。

根据需求分析阶段系统的功能分析,这样的应用环境,这些模式可以完成包括消费者信息管理,预订信息管理,成本核算管理,审查工作,库存管理这些模块的要求,分析结果中可在设计用户子模式中对不同级别的用户定义不同的view 。

优化后的关系模式: 消费情况

(日期 员工用餐次数 消费序号) 消费者

(消费序号 姓名 性别 消费类别 消费者类别) 属于

(员工号 组成

(员工号 员工信息

(学号 部门 职位 姓名 性别 地址 联系方式) 使用

(卡号 员工号) 卡信息

(卡号 余额 办卡日期 持卡者姓名 花费) 持有

(卡号

4.2具体逻辑模型设计

在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。

公司自助餐管理系统数据库中各个表格的设计结果如下面的几个表格所示。

每个表格表示在数据库中的一个表。

表4-1 为创建消费情况表ConsumeSituation

表4-2 为创建消费者表Consumer

表4-3 为创建员工信息表Worker

表4-4 为创建消费卡信息表Card

创建消费卡信息表Card

表4-5 为创建管理查询表Manage

创建管理查询表Manage

表 4-6 为创建属于表Attribute

表 4.13 为创建使用表Use

创建使用表

Use

表 4.14为创建持有表Hold

4.3设计用户子模式

将概念模型转换为全局逻辑模型后,还应该根据局部应用需求,结合具体DBMS 的特点,设计用户的外模式。

目前关系数据库管理系统一般都提供了视图(View )概念,可以利用这一功能设计更符合局部用户需要的用户外模式。

定义数据库全局模式主要是从系统的时间效率、空间效率、易维护等角度出发。由于用户外模式与模式是相对独立的,因此在定义用户外模式时可以注重考虑用户的习惯与方便。包括:

1) 使用更符合用户习惯的别名。

在合并各分E —R 图时,曾做了消除命名冲突的工作,以使数据库系统中同一关系和属性具有唯一的名字。这在设计数据库整体结构时是非常必要的。用View 机制可以在设计用户View 时重新定义某些属性名,使其与用户一致,以方便使用。

2) 可以对不同级别的用户定义不同的View ,以保证系统的安全性。 3) 简化用户对系统的使用。

如果某些局部应用中经常要使用某些很复杂的查询,为了方便用户,可以将这些复杂查询定义为视图,用户每次只对定义好的视图进行查询,大大简化了用户的使用

● 消费者查询信息所建立的视图

1) 员工查询自己卡中余额

✧ 员工查询视图S_Balance

2)管理员查询消费者信息

查询员工的信息

五、物理结构设计

数据库在物理设备上的存储结构与存取方法称为数据库物理的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取最适合应用要求的物理结构的过程,就是数据库的物理设计。

数据库的物理设计通常分为两步:

1) 确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;

2) 对物理结构进行评价,评价的重点是时间和空间效率。

如果评价结果满足原设计要求,则可进入到物理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型。

5.1建立索引

建立索引是加快查询速度的有效手段。用户可以根据应用环境的需要,在基本表上建立一个或多个索引,以提供多种存取路径,加快查找速度。

一般来说,建立与删除索引由数据库管理员DBA 或表的属主(owner ),即建立表的人,负责完成。系统在存取数据时会自动选择合适的索引作为存取路径,用户不必也不能显示地选择索引。

索引的选择方法,一般来说:

1. 如果一个(或一组) 属性经常在查询条件中出现, 则考虑在这个(或这组) 属性上建立索引(或组合索引) ;

2. 如果一个属性经常作为最大值或最小值等聚集函数的参数,则考虑在这个属性上建立索引;

由上所述建立以下索引

◆ 为库存信息表Stock 建立索引

1) 按Trade_name,stock_number,建立聚簇索引,

2) 按entertime 升序,建立唯一索引

◆ 为消费情况表ConsumeSituation 建立索引

1) 按Total 建立聚簇索引

2) 按Date 升序,建立唯一索引

◆ 为订餐信息表book_eat建立索引

1) 按Consumer_name,Booktime 建立聚簇索引

2) 按Consumer_number升序,建立唯一索引

◆ 为卡信息表Card 建立索引

1) 按Balance ,Consume建立聚簇索引

2) 按Card_number升序,建立唯一索引

◆ 为学生信息表Student 建立索引

1) 按S_name建立聚簇索引

◆ 为学生信息表Teacher 建立索引

1) 按T_name建立聚簇索引

5.2建立触发器

触发器(Trigger )是用户定义在表上的一类由事件驱动的特殊过程。一旦定义,任何用户对表的增、删、改操作均由服务器自动激活相应得触发器,在DBMS 核心层进行集中的完整性控制。触发器类似于约束,但是比约束更加灵活,可以实施比FOREIGN KEY 约束,CHECK 约束更为复杂的检查和操作,具有更精细和更强大的数据控制能力。触发器的执行,是由触发事件激活的,并由数据库服务器自动执行的。一个数据表上可能定义了多个触发器,比如BEFORE 触发器,多个AFTER 触发器等。同一个表上的多个触发器激活时遵循如下执行顺序:

(1) 执行该表上的BEFORE 触发器;

(2) 激活触发器的SQL 语句;

(3) 执行该表上的AFTER 触发器。

对于同一个表上的多个BEFORE (AFTER )触发器,遵循“谁先创建谁先执行”的原则,即按照触发器创建的先后顺序执行。有些RDBMS 是按照触发器的名称的字母排序顺序执行触发器。

● 定义AFTER 行级触发器,当管理员表Manager 的工资发生变化后就自动在工

资变化表Inc_log中增加一条相应的记录

首先建立工资变化表Inc_log

CREATE TABLE Inc_log

(Manager_number varchar(6) REFERENCES Manager(Manager_number), Income int,

Manager_name varchar(6),

Date TIMESTAMP

);

接着建立触发器 Insert_Inc

CREATE TRIGGER Insert_Inc

AFTER INSERT ON Manager

FOR EACH ROW

AS BEGIN

INSERT INTO Inc_log VALUES(

NEW. Manager_number,NEW.Income,

CURRENT_USER,CURRENT_TIMESTAMP);

END;

CREATE TRIGGER Update_Inc

AFTER UPDATE ON Manager

FOR EACH ROW

AS BEGIN

IF(NEW.IncomeOLD.Income)THEN INSERT INTO Inc_log VALUES(

NEW. Manager_number,NEW. Income,

CURRENT_USER,CURRENT_TIMESTAMP);

END IF;

END;

六、数据库结构的实现

经过前面的系统需求分析和概念结构设计以后,得到数据库逻辑结构,数据库物理结构。现在就可以在SQL Server 2008数据库系统中,实现上面设计的数据库结构。这一步是利用SQL Server 2008数据库系统中的SQL 查询分析器实现的。

6.1数据定义

关系数据库系统支持三级模式结构,其模式、外模式和内模式中的基本对象有表、视图和索引。因此SQL 的数据定义功能包括模式定义、表定义、视图和索引的定义,如下表所示。

6.1.1创建表格SQL 语句

下面给出创建这些表格的SQL 语句:

1) 为创建消费情况表ConsumeSituation

CREATE TABLE ConsumeSituation

(Date datetime PRIMARY KEY,

Total bigint NOT NULL,

Consumer_number varchar(6) NOT NULL,

FOREIGN KEY (Consumer_number) REFERENCES

Consumer(Consumer_number),

);

2) 为创建员工表Consumer

CREATE TABLE Consumer

(Consumer_number varchar(6) PRIMARY KEY,

Consumer_name varchar(10) NOT NULL,

Consumer_sex varchar(4),

Consume_sort varchar(10),

Consumer_sort varchar(10),

);

3) 为创建员工卡信息表Card

CREATE TABLE Card

(Card_number varchar(6) PRIMARY KEY,

Balance varchar(6) NOT NULL,

Card_date datetime,

Person_name varchar(10),

Consume varchar(20),

);

4) 为创建管理查询表Manage

CREATE TABLE Manage

(Manager_number varchar(6) NOT NULL,

Date datetime NOT NULL,

PRIMARY KEY (Manager_number, Date),

Foreign key (Manager_number) references

Manager(Manager_number),

foreign key (Date) references ConsumeSituation(Date) );

5) 为创建属于表Attribute

CREATE TABLE Attribute

(S_number varchar(8) NOT NULL,

Consumer_number varchar(6) NOT NULL,

PRIMARY KEY (S_number),

FOREIGN KEY (Consumer_number) REFERENCES

Consumer(Consumer_number)

);

6) 为创建组成表Compose

CREATE TABLE Compose

(T_number varchar(6) NOT NULL,

Consumer_number varchar(6) NOT NULL,

PRIMARY KEY (T_number),

FOREIGN KEY (Consumer_number) REFERENCES

Consumer(Consumer_number)

);

7) 为创建使用表Using

CREATE TABLE Using

( S_number varchar(8) NOT NULL,

Card_number varchar(6) NOT NULL,

PRIMARY KEY (Card_number),

FOREIGN KEY (S_number) REFERENCES

Student(S_number)

);

8) 为创建持有表Hold

CREATE TABLE Hold

(Card_number varchar(6) NOT NULL,

T_number varchar(6) NOT NULL,

PRIMARY KEY (Card_number),

FOREIGN KEY (T_number) REFERENCES

Teacher(T_number)

);

6.1.2创建视图SQL 语句

视图是从一个或几个基本表(或视图)导出的的表。它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。所以基本表中数据发生变化,从视图中查询出的数据也就随之改变了。从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化。

视图还拥有以下优点:

1) 视图能够简化用户的操作

2) 视图使用户能以多种角度看待同一数据

3) 视图对重构数据库提供了一定程度的逻辑独立性

4) 视图能够对机密数据提供安全保护

5) 适当的利用视图可以更清晰的表达查询

● 消费者查询信息所建立的视图

1) 员工查询自己卡中余额(剩余用餐次数)

员工查询视图S_Balance

CREATE VIEW S_Balance(sno,sname,cno,balance)

AS

SELECT S_number,S_name,Card_number,Balance

FROM Student,Card

● 管理员查询信息所建立的视图

1) 食堂总支出

CREATE VIEW Trade_money(Trademoney,entertime,outtime)

AS

SELECT Price*(Enter_number-stock_number),entertime,outtime

FROM Stock

2) 管理员查询消费者信息

查询员工的信息

CREATE VIEW Select_student

AS

SELECT Consumer_number, Consume_sort,

S_number,S_name,S_sex,class,S_system, S_dorm, S_tel

FROM Consumer, Student

WHERE Consumer_sort='员工'

6.1.3创建索引SQL 语句

◆ 为消费情况表ConsumeSituation 建立索引

1) 按Total 建立聚簇索引

CREATE CLUSTER INDEX Cosi_total ON

ConsumeSituation (Total)

2) 按Date 升序,建立唯一索引

CREATE UNIQUE INDEX Cosi_date ON

ConsumeSituation (Date)

◆ 为卡信息表Card 建立索引

1) 按Balance ,Consume建立聚簇索引

CREATE CLUSTER INDEX card_bal ON Card (Balance)

CREATE CLUSTER INDEX card_con ON Card (Consume)

2) 按Card_number升序,建立唯一索引

CREATE UNIQUE INDEX book_cono ON Card (Card_number)

◆ 为员工信息表Worker 建立索引

按S_name建立聚簇索引

CREATE CLUSTER INDEX Worker_name ON Worker (S_name)

6.3数据查询

数据查询是数据库的核心操作。SQL 提供了SELECT 语句进行数据库的查询,该语句具有灵活的使用方式和丰富的功能。SELECT 语句既可以完成简单的单表查询,也可以完成复杂的连接查询和嵌套查询。

◆ 消费者管理信息查询

员工信息查询

查询关于公司员工的所有信息:

SELECT *

FROM Worker,Using

WHERE Worker.S_number=

(SELECT S_number FROM Using WHERE Card_number IN

(SELECT Card_number FROM Card))

◆ 成本查询

查询2014年11月的成本

SELECT sum(Trademoney )+ sum_income

FROM Trade_money , sum_money

WHERE entertime>2014-11-1 AND entertime

◆ 效益查询

查询2014年11月的效益

SELECT sum(Total)-sum(Trademoney )- sum_income

FROM Trade_money , ConsumeSituation, sum_money

WHERE entertime>2014-11-1 AND entertime2014-11-1 AND Date

6.4数据更新

6.4.1数据添加

● 消费者信息添加

员工信息添加

将一个新员工信息元组(员工号:20140101;姓名:张三;性别:男;部门:09;职位:项目负责人;地址:解放路095;联系方式:[1**********])插入到Student 表中。

INSERT

INTO Worker(S_number,S_name,S_sex,class,S_system,S_dorm,S_tel)

V ALUES ('20140101','张三',' 男','09',' 项目负责人',' 解放路095','[1**********]')

6.4.2数据修改

● 消费者信息修改

员工信息修改

将一个员工(S_number)为20140101的员工信息元组Student 中班级修改

为20141201

UPDATE Worker

SET class=20141201

WHERE S_number=20140101

6.4.3数据删除

消费者信息删除

员工信息删除

将一个员工号(S_number)为20140101的员工信息元组Worker 中删除 DELETE

FROM Worker

WHERE S_number=20140101

七、总结

通过这一个学期的大型数据库设计课程,让我深刻体会到了数据库的相关知识以及数据库课程设计的全过程,需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库实施以及未能考虑的数据库的运行和维护。并且学会了熟练使用PowerDesigner 数据库设计工具进行数据库的逻辑模型设计。

在数据库设计的过程中,需求分析和概念设计可以独立于任何数据库管理系统进行,逻辑结构设计与物理结构设计与DBMS 密切相关。

数据库的表现形式是指面向用户的数据表现,这就要求在进行数据库设计时候要考虑实体的一些特性,其中包括层、属性与实体联系等

随着计算机软硬件的不断发展,信息系统在客户管理中的应用已成必然。由于管理工作复杂,政策性强,客户关系也不断复杂化,依赖人为因素较多,使系统管理的需求定义比较困难,必须进行反复迭代

而通过这一学期的努力,记得刚开始做数据库设计的时候,觉得好难,加上专业知识方面的有限,不过这样更锻炼了自己的毅力和意志,有助于形成吃苦耐劳,认真负责的工作态度。在今后学习中要继续发扬这种态度,多接触些新的技术,不断完善自己

最后要感谢学校和老师给我这一次锻炼的机会,让自己更加有信心面向未来。

大型数据库开发与设计

题 目: 某公司的自助餐管理系统 学 号: 姓 名: 班 级:

目录

一、 引言 . .................................................................................................................................. 1

1.1背景与目的 . ........................................................................................................................ 1 1.2后台数据库SQL Server 2008简介 ................................................................................... 1 二、 系统需求分析 . .................................................................................................................. 1

2.1系统功能分析 . .................................................................................................................... 2

2.21子模块功能分析 . ...................................................................................................... 3 2.2系统功能模块设计 . ............................................................................................................ 4

2.21系统功能管理模块 . .................................................................................................. 4 2.3数据流图 . ............................................................................................................................ 5

2.3.1交易数据流图 . ......................................................................................................... 6 2.3.2整体流图 . ................................................................................................................. 7 2.4可行性分析 . ........................................................................................................................ 8 2.5数据字典 . ............................................................................................................................ 8 三、概念结构设计 . .......................................................................................................................... 9

3.1构思ERD 的四条原则 . .................................................................................................... 10 3.2 设计E -R 图................................................................................................................... 10

3.2.1分E -R 图 . ............................................................................................................ 10

四、逻辑结构设计 . ........................................................................................................................ 12

4.1 一般逻辑模型设计: . ................................................................................................... 13

4.1.1 由ERD 导出一般关系模型的四条原则 ............................................................. 13 4.1.2 数据库初步的关系框架(E-R 图向关系模型转化) . ....................................... 13 4.1.3数据模型优化 . ....................................................................................................... 14 4.2具体逻辑模型设计 . .......................................................................................................... 14 4.3设计用户子模式 . .............................................................................................................. 18 五、物理结构设计 . ........................................................................................................................ 19

5.1建立索引 . .......................................................................................................................... 19 5.2建立触发器 . ...................................................................................................................... 20 六、数据库结构的实现 . ................................................................................................................ 21

6.1数据定义 . .......................................................................................................................... 21

6.1.1创建表格SQL 语句 .............................................................................................. 22 6.1.2创建视图SQL 语句 .............................................................................................. 23 6.1.3创建索引SQL 语句 .............................................................................................. 24 6.3数据查询 . .......................................................................................................................... 25 6.4数据更新 . .......................................................................................................................... 25

6.4.1数据添加 . ............................................................................................................... 25 6.4.2数据修改 . ............................................................................................................... 25 6.4.3数据删除 . ............................................................................................................... 26

七、总结......................................................................................................................................... 27

某公司的自助餐管理系统

一、 引言

1.1背景与目的

随着一些公司规模的不断扩大,公司后勤管理工作也日趋繁杂.许多大型公司拥有自己的食堂,这些食堂要实现统一的协调管理,就不得不借助现代化的管理模式— — 网络管理模式。

由于某公司为了提高职工的福利待遇,规定每个员工每天可以在职工食堂用餐两次(每餐3元),可以中午用餐一次,下午用餐一次;也可以集中到中午或下午一次用餐两次。月底进行核算,如果用餐次数不足,餐费不退还职工。公司根据实际的用餐次数支付食堂餐费。

根据题目要求,需要设计并创建该公司的自助餐管理系统,这样不仅提高了工作效率,也避免了以前手工作业的麻烦,从而使得管理者能够准确,有效的管理餐饮。

1.2后台数据库SQL Server 2008简介

SQL 全称是“结构化查询语言(Structured Query Language)”,最早的是IBM 的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE 语言。SQL 语言结构简洁,功能强大,简单易学,所以自从IBM 公司1981年推出以来,SQL 语言,得到了广泛的应用。

SQL 是高级的非过程化编程语言,允许用户在高层数据结构上工作。SQL 不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL 语言作为数据输入与管理的接口。它以记录集合作为操纵对象,所有SQL 语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL 语句的输出作为另一条SQL 语句的输入,所以SQL 语言可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的一个单独事件只需要一个SQL 语句就可以达到目的,这也意味着用SQL 语言可以写出非常复杂的语句。

二、 系统需求分析

随着21世纪的到来,人们更深切地感受到了计算机在生活和工作中的作用

越来越重要,越来越多职业需要具有计算机的应用技能。掌握计算机是职业的雪要,更是事业发展的需要。

信息在社会和经济的发展中所起的作用越来越为人们所重视。信息资源的开发利用水平已成为衡量一个国家综合国力的重要标志之一。在计算机的三大主要

应用领域(科学计算、数据处理与过程控制)中,数据处理的比重占70%左右。计算机作为信息处理的工具,为适应数据处理需求的迅速提高,满足各类系统对数据处理的要求,在文件系统的基础上发展起了数据库系统。

随着计算机计算机技术的飞速发展,计算机在企业管理中应用及普及,利用计算机实现企业信息管理势在必行。本课题以企业食堂为对象,作为要面对大量的课程设计项目及相关信息的处理,这就需要一个课程设计管理系统来提高管理工作的效率。通过本系统,可以做到信息的规范管理、科学统计和快速查询,从而减少管理工作方面的工作量。

数据处理技术已深入到我们工作和生活的方方面面,而数据库技术是数据处理不可缺少的手段。随着数据库技术的发展,面向对象的数据库、分布式数据库、多媒体数据库、数据库开发工具的研究方兴未艾,这些技术的发展使用软件的开发速度更快、成本更低、质量更好、功能更强。

管理信息系统是一门新兴的、集管理科学、信息科学、系统科学及计算机科学为一体的综合性学科,研究的是信息管理活动的全过程,以便有效的管理信息,提供各类管理决策信息,辅助企业进行现代化管理。管理信息系统它具备数据处理、计划、控制、预测和辅助决策功能,具体作用如下5点内容:

(1)用统一标准处理和提供信息,排除使用前后矛盾的不完整的数据。 (2)完整、及时提供在管理及决策中需要的数据。 (3)利用指定的数据关系分析数据,客观预测未来。

(4)向各级管理机构提供不同详细程度的报告,缩短分析和解释的时间。 (5)用最低的费用最短的时间提供尽可能精确、可靠的信息,以便使决策

者选择最佳的实施方案,以提高企业的经济效益。

2.1系统功能分析

系统开发的总体任务是受用计算机信息管理技术,实现公司的自助餐管理各种信息的系统化,规范化,自动化,提高公司食堂管理的效率。

对应用系统项目的开发,首先要对程序要实现的功能和目标进行整体分析和规划,确保在后期开发中不会出现遗漏或重大缺陷。因此在软件开发中,要严格按照软件工程的流程进行系统的分析和设计

系统功能分析是在系统开发的总体任务的基本上完成的。 主要功能:

1、职工信息管理 2、职工食堂信息管理 3、成本核算管理

其中主要任务为职工信息管理和成本核算管理。 总的功能特点:

● 完善、全面的综合查询 ● 报表翔实,实用性强

2.21子模块功能分析

职工信息管理:对来自客户端的不同用户进行权限审查,限定对数据库的访问级

职工用餐信息管理:记录员工用餐的次数,包括每日用餐次数和每月的用餐次数;

本日用餐次数:记录本日用餐次数,每增加一个便同步使每月用餐次数也增

加一次,每日用餐次数不大于2次。

成本核算管理: 对成本利润的综合分析。成本包括公司的本月开销和之前月份

公司开销的统计记录;

公司本月开销:统计公司本月的开销,员工本月消费一次则增长3元的开销。 公司每月开销:记录之前每月的开销情况。

2.2系统功能模块设计

对上述各项功能进行集中、分块分析,按照结构化程序设计的要求,得到如图所示的这个系统的功能模块图

2.21系统功能管理模块

2.3数据流图

【注释:数据流图,简称DFD, 是SA 方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型】

数据流程图是组织中信息运动的抽象,是管理信息系统逻辑模型的主要形

式。它可以综合的反映出信息在系统中的流动、处理和存储情况,具有良好的抽象性和概括性。它在调查的基础上,从系统的科学性、管理的合理性、实际运行的可行性角度出发,将信息处理功能和彼此之间的联系自顶向下、逐层分解,从逻辑上精确地描述系统应具有的数据加工、数据输入、数据输出、数据存储及数据来源和去向(外部实体)等项目。数据流程图和系统的物理描述无关,它所描述的内容不涉及技术细节,而是面向用户的,即使完全不懂信息技术的用户也容易理解。因此,数据流程图成为系统分析员与用户进行交流的有效手段,同时也成为系统设计的主要依据之一。

用户的需求具体体现在各种信息的提供、保存、更新和查询等方面,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据、数据结构及数据处理的流程,组成一份详尽的数据字典,为数据库的具体设计打下基础。

数据流图表达了数据和处理之间的关系。数据流图是有层次之分的,越高层次的数据流图表现的业务逻辑越抽象,越底层次的数据流图表现得业务逻辑越具体。

在仔细的分析调查有关食堂管理信息需求的基础上,得到如下图所示的这个系统所处理的数据流程。

根据以上的分析,我们可以先画出分流程图,然后可以综合分流程图,画出整个系统操作的业务流程图

2.3.1交易数据流图

2.3.2整体流图

整体流图简图:

2.4可行性分析

可行性分析是系统分析阶段的重要活动,是对系统进行全面、概要的分析。它的任务是确定项目开发是否必要和可行。它的主要目标是:进一步明确系统的目标、规模和功能,对系统开发背景、必要性和意义进行调查分析,并根据需要和可能提出拟开发系统的初步方案和计划,明确问题,对所提供系统大致规模和目标的几个有关约束条件进行论证,并且提出系统的逻辑模型和各种可能的方案,从而为系统开发项目的决策提供科学依据。

其主要从三个方面进行研究:

(1)技术可行性:对现有技术进行评价,以明确能否利用现有技术进行系统开发及系统实施。计算机网络技术的发展和计算机硬件性价比的不断提升,使计算机全面应用于医院管理的各个环节成为可能。C/S开发模式、COM 、DCOM 技术在国内各行各业的信息管理系统开发中已经被广泛采用,实践证明这些技术都非常适合食堂管理系统的开发。

(2)经济可行性:对组织的经济状况和投资能力进行分析,对系统建设、运行和维护费用进行评估,对系统建成后可能取得的社会及经济效益进行估计。连锁餐饮企业整体规模庞大,个体规模小而营管理相对简单统一,开发成本不高,一旦开发成功,即能直接应用在所有同种食堂。

(3)营运可行性:指系统对组织机构的影响,对现有人员和机构、设施、环境等的适应性以及进行人员培训补充计划的可行性。连锁餐饮企业整体规模庞大,个体规模小而营管理相对简单统一。所以食堂系统的计算机信息管理人才、计算机硬件设备、操作员的计算机应用能力都为系统的运行过程提供了可靠保证。

2.5数据字典

由于数据流程图只是对数据处理及彼此之间的联系进行说明,未对数据的详细内容及数据的加工过程进行说明,而这正是数据字典所要表达的。数据字典是关于数据信息的集合,也就是对数据流程图中包含的所有元素的定义的集合。它能将数据流程图中全部数据流及其组成部分的数据元素、数据存储、数据加工等描述清楚,便于后续工作—系统设计的进行。

数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。数据字典通常包括数据项、数据结构、数据流、数据存诸和处理过程5个部分。其中数据项是最小组成单位,若干数据项组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储和逻辑内容。

针对一般食堂管理信息系统的需求,通过对食堂管理工作过程的内容和数据流程分析,设计如下所示的数据项和数据结构:

数据结构名称:职工用餐卡信息

含义说明:这里指的是职工用来使用付款的工具卡的一系列信息,它记录了

包括它本身以及持卡者的一些信息

包括的数据项有:

1) 卡号

(消费者使用的用来付款的卡的编号,与消费者办卡的先后顺序有关 别名Card_number 字符型 长度6) 2) 余额(今日剩余用餐量)

(消费者卡中所剩的金钱数量,别名Balance 字符型 长度 6) 3) 办卡日期

(消费者办卡的日期,别名Card_date 日期型 长度 8) 4) 持卡者姓名

(拥有信息卡的消费者的名称,别名 Person_name 字符型 长度 10) 5) 花费(用餐次数统计)

(消费者所消费的金钱数量 别名 Consume 字符型 长度 20)

数据结构名称:员工信息

含义说明:消费者群体之一,可以自由选择消费方式,办过卡用卡交易或者

用现金交易

包括的数据项有: 1) 工号

(职工在公司所编的号码 别名 S_number 字符型 长度 6) 2) 部门

(职工所在的部门的名称 别名 S_system 字符型 长度 16) 3) 职位

(职工所担任的职位 别名 S_class 字符型 长度 20) 4) 姓名

(职工的姓名 别名 S_name 字符型 长度 10) 5) 性别

(职工的性别 别名 S_sex 字符型 长度 4) 6) 地址

(职工的所在地址 别名 S_adress 字符型 长度 20) 7) 联系方式

(职工的手机号码 别名 S_tel 字符型 长度 20)

三、概念结构设计

这一设计阶段是在需求分析的基础上,设计出能满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。

将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。它是整个数据库设计的关键。

概念结构设计的特点是能真实、充分的反映现实世界,包括事物和事物的联系,能满足用户对数据的处理要求,是对现实世界的一个真实的模型。易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库设计成功的关键。易于改正,当应用环境和应用要求改变时,易于对概念模型修改和扩充。易于向关系、网状、层次等各种数据模型转换。

概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。概念结构是对现实世界的一种抽象。所谓抽象是对实际的人、物、事和概念进行人为处理,抽取所关心的共同特性,忽略非本质的细节,并把这些特性用各种概念准确的加以描述。

概念结构设计通常分为四种方法:自顶向下,即首先定义全局概念结构的框架,然后逐步细化。自底向上,即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构。逐步扩张,首先定义最重要的核心概念结构,然后向外扩张。混合策略,即自顶向下和自底向上结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。通常分为两步,第一步是抽象数据并设计局部视图,第二步是集成局部视图,得到全局视图。

下面首先对实体和其属性加以描述,再写出系统的分E-R 图,进而合并成为整体的E-R 图。

3.1构思ER D 的四条原则

原则1:能独立存在的事物,例如人、物、事、地、团体、机构、活动、事

项等等,在其有多个由基本项描述的特性需要关注时,就应把它作为实体。

原则2:两个或多个实体间的关联与结合,如主管、从属、组成、占有、作

用、配合、协同等等,当需要予以关注时,应作为联系。联系通常是某类行为动作,ERD 中关注的是其状态与结果而非其过程。

原则3:实体的属性是实体的本质特征。实体应有标识属性(能把不同个体

区分开来的属性组),并指定其中一个作为主标识。联系的属性是联系的结果或状态。属性具有如下几个特点:a. 非多值性;b. 非复合性;c. 非导出性。而实体的属性还应有非关联性。

原则4(一事一地原则):所有基本项在同一E-R 图中作为属性要在仅在一个

地方出现

3.2 设计E -R 图

根据上面的设计规划出的实体有:卡信息实体、学生信息实体、教师信息实体、消费者实体、包房信息实体、订餐信息实体、消费情况实体、管理员信息实体。各个实体具体的描述E-R 图及其之间的关系描述如下。

3.2.1分E -R 图

图3-1 为卡信息实体E-R 图

图3-2 为职工信息实体E-R 图

图3-3 为消费情况实体E-R 图

图3-4 为卡信息实体、职工信息实体、消费者实体关系E-R 图

四、逻辑结构设计

现在需要把上面设计好的数据库概念结构转化为SQL Server 2008数据库系

统所支持的实际数据库模型,也就是数据库的逻辑结构。此部分使用PowerDesigner 进行数据库结构设计,最终导出物理结构模型和逻辑结构模型,

并生成SQL Server 2008数据库文件。

4.1 一般逻辑模型设计:

4.1.1 由ERD 导出一般关系模型的四条原则

原则1:E-R 图中的每一个独立实体变换为一个关系,其属性变为关系的属性,其主标识变为关系的主码。

原则2:E-R 图中的从实体及相应的“的”联系变换为一个关系,从实体的属性加上主体关系的主码构成这个关系的属性。如果“的”联系是1:1的,则以主实体关系的主码(作为外来码)为这个关系的主码;如果“的”联系是1:M 的,则以主实体关系的主码加上同一主实体个体联系的不同从属实体个体赖以相互区分的属性组,组成该关系的主码。

原则3:1:M 联系通过在“多”实体关系中增加相联系的“1”实体关系的主码及联系本身的属性来表达。其中“1”实体主码为外来码。

原则4:M :M 联系转换成一个独立的关系,被联系实体关系的主码(作为外来码)和联系本身的属性作为该关系的属性,被联系实体关系的主码组成其复合主码。

4.1.2 数据库初步的关系框架(E-R 图向关系模型转化)

关系模型转化

消费情况

(日期 用餐次数 剩余次数 ) 消费

(日期 消费序号) 消费者

(消费序号 姓名 性别 消费类别 消费者类别) 属于

(员工号 员工信息

(员工号 部门 职位 姓名 性别 地址 联系方式) 使用

(卡号 卡信息

(卡号 余额 办卡日期 持卡者姓名 花费) 持有

(卡号

4.1.3数据模型优化

数据库逻辑设计的结果不是唯一的,为了进一步提高数据库应用系统的

性能,还应该根据应用需要适当地修改、调整数据模型的结构,这就是数据模型的优化。关系数据模型的优化通常以规范化理论为指导,方法为: 1、确定数据依赖

2、对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系 冗余数据和冗余联系容易破坏数据为的完整性,给数据库维护增加困难,应当予以消除。经过规范化理论得出,原关系模式之间的数据依赖已经达到极小化,没有冗余的联系,消除冗余的E-R 图称为基本E-R 图 3、按照数据依赖的理论对关系模式逐一进行分析,考察是否存在部分函数依赖,传递函数依赖,多值依赖等,确定各关系模式分别属于第几范式。

4、按照需求分析阶段得到的处理要求,分析对于这样的应用环境这些模式是否合适,确定是否要对某些模式进行合并或分解。

5、对关系模式进行必要的分解,提高数据操作的效率和存储空间的利用率。

根据需求分析阶段系统的功能分析,这样的应用环境,这些模式可以完成包括消费者信息管理,预订信息管理,成本核算管理,审查工作,库存管理这些模块的要求,分析结果中可在设计用户子模式中对不同级别的用户定义不同的view 。

优化后的关系模式: 消费情况

(日期 员工用餐次数 消费序号) 消费者

(消费序号 姓名 性别 消费类别 消费者类别) 属于

(员工号 组成

(员工号 员工信息

(学号 部门 职位 姓名 性别 地址 联系方式) 使用

(卡号 员工号) 卡信息

(卡号 余额 办卡日期 持卡者姓名 花费) 持有

(卡号

4.2具体逻辑模型设计

在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。

公司自助餐管理系统数据库中各个表格的设计结果如下面的几个表格所示。

每个表格表示在数据库中的一个表。

表4-1 为创建消费情况表ConsumeSituation

表4-2 为创建消费者表Consumer

表4-3 为创建员工信息表Worker

表4-4 为创建消费卡信息表Card

创建消费卡信息表Card

表4-5 为创建管理查询表Manage

创建管理查询表Manage

表 4-6 为创建属于表Attribute

表 4.13 为创建使用表Use

创建使用表

Use

表 4.14为创建持有表Hold

4.3设计用户子模式

将概念模型转换为全局逻辑模型后,还应该根据局部应用需求,结合具体DBMS 的特点,设计用户的外模式。

目前关系数据库管理系统一般都提供了视图(View )概念,可以利用这一功能设计更符合局部用户需要的用户外模式。

定义数据库全局模式主要是从系统的时间效率、空间效率、易维护等角度出发。由于用户外模式与模式是相对独立的,因此在定义用户外模式时可以注重考虑用户的习惯与方便。包括:

1) 使用更符合用户习惯的别名。

在合并各分E —R 图时,曾做了消除命名冲突的工作,以使数据库系统中同一关系和属性具有唯一的名字。这在设计数据库整体结构时是非常必要的。用View 机制可以在设计用户View 时重新定义某些属性名,使其与用户一致,以方便使用。

2) 可以对不同级别的用户定义不同的View ,以保证系统的安全性。 3) 简化用户对系统的使用。

如果某些局部应用中经常要使用某些很复杂的查询,为了方便用户,可以将这些复杂查询定义为视图,用户每次只对定义好的视图进行查询,大大简化了用户的使用

● 消费者查询信息所建立的视图

1) 员工查询自己卡中余额

✧ 员工查询视图S_Balance

2)管理员查询消费者信息

查询员工的信息

五、物理结构设计

数据库在物理设备上的存储结构与存取方法称为数据库物理的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取最适合应用要求的物理结构的过程,就是数据库的物理设计。

数据库的物理设计通常分为两步:

1) 确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;

2) 对物理结构进行评价,评价的重点是时间和空间效率。

如果评价结果满足原设计要求,则可进入到物理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型。

5.1建立索引

建立索引是加快查询速度的有效手段。用户可以根据应用环境的需要,在基本表上建立一个或多个索引,以提供多种存取路径,加快查找速度。

一般来说,建立与删除索引由数据库管理员DBA 或表的属主(owner ),即建立表的人,负责完成。系统在存取数据时会自动选择合适的索引作为存取路径,用户不必也不能显示地选择索引。

索引的选择方法,一般来说:

1. 如果一个(或一组) 属性经常在查询条件中出现, 则考虑在这个(或这组) 属性上建立索引(或组合索引) ;

2. 如果一个属性经常作为最大值或最小值等聚集函数的参数,则考虑在这个属性上建立索引;

由上所述建立以下索引

◆ 为库存信息表Stock 建立索引

1) 按Trade_name,stock_number,建立聚簇索引,

2) 按entertime 升序,建立唯一索引

◆ 为消费情况表ConsumeSituation 建立索引

1) 按Total 建立聚簇索引

2) 按Date 升序,建立唯一索引

◆ 为订餐信息表book_eat建立索引

1) 按Consumer_name,Booktime 建立聚簇索引

2) 按Consumer_number升序,建立唯一索引

◆ 为卡信息表Card 建立索引

1) 按Balance ,Consume建立聚簇索引

2) 按Card_number升序,建立唯一索引

◆ 为学生信息表Student 建立索引

1) 按S_name建立聚簇索引

◆ 为学生信息表Teacher 建立索引

1) 按T_name建立聚簇索引

5.2建立触发器

触发器(Trigger )是用户定义在表上的一类由事件驱动的特殊过程。一旦定义,任何用户对表的增、删、改操作均由服务器自动激活相应得触发器,在DBMS 核心层进行集中的完整性控制。触发器类似于约束,但是比约束更加灵活,可以实施比FOREIGN KEY 约束,CHECK 约束更为复杂的检查和操作,具有更精细和更强大的数据控制能力。触发器的执行,是由触发事件激活的,并由数据库服务器自动执行的。一个数据表上可能定义了多个触发器,比如BEFORE 触发器,多个AFTER 触发器等。同一个表上的多个触发器激活时遵循如下执行顺序:

(1) 执行该表上的BEFORE 触发器;

(2) 激活触发器的SQL 语句;

(3) 执行该表上的AFTER 触发器。

对于同一个表上的多个BEFORE (AFTER )触发器,遵循“谁先创建谁先执行”的原则,即按照触发器创建的先后顺序执行。有些RDBMS 是按照触发器的名称的字母排序顺序执行触发器。

● 定义AFTER 行级触发器,当管理员表Manager 的工资发生变化后就自动在工

资变化表Inc_log中增加一条相应的记录

首先建立工资变化表Inc_log

CREATE TABLE Inc_log

(Manager_number varchar(6) REFERENCES Manager(Manager_number), Income int,

Manager_name varchar(6),

Date TIMESTAMP

);

接着建立触发器 Insert_Inc

CREATE TRIGGER Insert_Inc

AFTER INSERT ON Manager

FOR EACH ROW

AS BEGIN

INSERT INTO Inc_log VALUES(

NEW. Manager_number,NEW.Income,

CURRENT_USER,CURRENT_TIMESTAMP);

END;

CREATE TRIGGER Update_Inc

AFTER UPDATE ON Manager

FOR EACH ROW

AS BEGIN

IF(NEW.IncomeOLD.Income)THEN INSERT INTO Inc_log VALUES(

NEW. Manager_number,NEW. Income,

CURRENT_USER,CURRENT_TIMESTAMP);

END IF;

END;

六、数据库结构的实现

经过前面的系统需求分析和概念结构设计以后,得到数据库逻辑结构,数据库物理结构。现在就可以在SQL Server 2008数据库系统中,实现上面设计的数据库结构。这一步是利用SQL Server 2008数据库系统中的SQL 查询分析器实现的。

6.1数据定义

关系数据库系统支持三级模式结构,其模式、外模式和内模式中的基本对象有表、视图和索引。因此SQL 的数据定义功能包括模式定义、表定义、视图和索引的定义,如下表所示。

6.1.1创建表格SQL 语句

下面给出创建这些表格的SQL 语句:

1) 为创建消费情况表ConsumeSituation

CREATE TABLE ConsumeSituation

(Date datetime PRIMARY KEY,

Total bigint NOT NULL,

Consumer_number varchar(6) NOT NULL,

FOREIGN KEY (Consumer_number) REFERENCES

Consumer(Consumer_number),

);

2) 为创建员工表Consumer

CREATE TABLE Consumer

(Consumer_number varchar(6) PRIMARY KEY,

Consumer_name varchar(10) NOT NULL,

Consumer_sex varchar(4),

Consume_sort varchar(10),

Consumer_sort varchar(10),

);

3) 为创建员工卡信息表Card

CREATE TABLE Card

(Card_number varchar(6) PRIMARY KEY,

Balance varchar(6) NOT NULL,

Card_date datetime,

Person_name varchar(10),

Consume varchar(20),

);

4) 为创建管理查询表Manage

CREATE TABLE Manage

(Manager_number varchar(6) NOT NULL,

Date datetime NOT NULL,

PRIMARY KEY (Manager_number, Date),

Foreign key (Manager_number) references

Manager(Manager_number),

foreign key (Date) references ConsumeSituation(Date) );

5) 为创建属于表Attribute

CREATE TABLE Attribute

(S_number varchar(8) NOT NULL,

Consumer_number varchar(6) NOT NULL,

PRIMARY KEY (S_number),

FOREIGN KEY (Consumer_number) REFERENCES

Consumer(Consumer_number)

);

6) 为创建组成表Compose

CREATE TABLE Compose

(T_number varchar(6) NOT NULL,

Consumer_number varchar(6) NOT NULL,

PRIMARY KEY (T_number),

FOREIGN KEY (Consumer_number) REFERENCES

Consumer(Consumer_number)

);

7) 为创建使用表Using

CREATE TABLE Using

( S_number varchar(8) NOT NULL,

Card_number varchar(6) NOT NULL,

PRIMARY KEY (Card_number),

FOREIGN KEY (S_number) REFERENCES

Student(S_number)

);

8) 为创建持有表Hold

CREATE TABLE Hold

(Card_number varchar(6) NOT NULL,

T_number varchar(6) NOT NULL,

PRIMARY KEY (Card_number),

FOREIGN KEY (T_number) REFERENCES

Teacher(T_number)

);

6.1.2创建视图SQL 语句

视图是从一个或几个基本表(或视图)导出的的表。它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。所以基本表中数据发生变化,从视图中查询出的数据也就随之改变了。从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化。

视图还拥有以下优点:

1) 视图能够简化用户的操作

2) 视图使用户能以多种角度看待同一数据

3) 视图对重构数据库提供了一定程度的逻辑独立性

4) 视图能够对机密数据提供安全保护

5) 适当的利用视图可以更清晰的表达查询

● 消费者查询信息所建立的视图

1) 员工查询自己卡中余额(剩余用餐次数)

员工查询视图S_Balance

CREATE VIEW S_Balance(sno,sname,cno,balance)

AS

SELECT S_number,S_name,Card_number,Balance

FROM Student,Card

● 管理员查询信息所建立的视图

1) 食堂总支出

CREATE VIEW Trade_money(Trademoney,entertime,outtime)

AS

SELECT Price*(Enter_number-stock_number),entertime,outtime

FROM Stock

2) 管理员查询消费者信息

查询员工的信息

CREATE VIEW Select_student

AS

SELECT Consumer_number, Consume_sort,

S_number,S_name,S_sex,class,S_system, S_dorm, S_tel

FROM Consumer, Student

WHERE Consumer_sort='员工'

6.1.3创建索引SQL 语句

◆ 为消费情况表ConsumeSituation 建立索引

1) 按Total 建立聚簇索引

CREATE CLUSTER INDEX Cosi_total ON

ConsumeSituation (Total)

2) 按Date 升序,建立唯一索引

CREATE UNIQUE INDEX Cosi_date ON

ConsumeSituation (Date)

◆ 为卡信息表Card 建立索引

1) 按Balance ,Consume建立聚簇索引

CREATE CLUSTER INDEX card_bal ON Card (Balance)

CREATE CLUSTER INDEX card_con ON Card (Consume)

2) 按Card_number升序,建立唯一索引

CREATE UNIQUE INDEX book_cono ON Card (Card_number)

◆ 为员工信息表Worker 建立索引

按S_name建立聚簇索引

CREATE CLUSTER INDEX Worker_name ON Worker (S_name)

6.3数据查询

数据查询是数据库的核心操作。SQL 提供了SELECT 语句进行数据库的查询,该语句具有灵活的使用方式和丰富的功能。SELECT 语句既可以完成简单的单表查询,也可以完成复杂的连接查询和嵌套查询。

◆ 消费者管理信息查询

员工信息查询

查询关于公司员工的所有信息:

SELECT *

FROM Worker,Using

WHERE Worker.S_number=

(SELECT S_number FROM Using WHERE Card_number IN

(SELECT Card_number FROM Card))

◆ 成本查询

查询2014年11月的成本

SELECT sum(Trademoney )+ sum_income

FROM Trade_money , sum_money

WHERE entertime>2014-11-1 AND entertime

◆ 效益查询

查询2014年11月的效益

SELECT sum(Total)-sum(Trademoney )- sum_income

FROM Trade_money , ConsumeSituation, sum_money

WHERE entertime>2014-11-1 AND entertime2014-11-1 AND Date

6.4数据更新

6.4.1数据添加

● 消费者信息添加

员工信息添加

将一个新员工信息元组(员工号:20140101;姓名:张三;性别:男;部门:09;职位:项目负责人;地址:解放路095;联系方式:[1**********])插入到Student 表中。

INSERT

INTO Worker(S_number,S_name,S_sex,class,S_system,S_dorm,S_tel)

V ALUES ('20140101','张三',' 男','09',' 项目负责人',' 解放路095','[1**********]')

6.4.2数据修改

● 消费者信息修改

员工信息修改

将一个员工(S_number)为20140101的员工信息元组Student 中班级修改

为20141201

UPDATE Worker

SET class=20141201

WHERE S_number=20140101

6.4.3数据删除

消费者信息删除

员工信息删除

将一个员工号(S_number)为20140101的员工信息元组Worker 中删除 DELETE

FROM Worker

WHERE S_number=20140101

七、总结

通过这一个学期的大型数据库设计课程,让我深刻体会到了数据库的相关知识以及数据库课程设计的全过程,需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库实施以及未能考虑的数据库的运行和维护。并且学会了熟练使用PowerDesigner 数据库设计工具进行数据库的逻辑模型设计。

在数据库设计的过程中,需求分析和概念设计可以独立于任何数据库管理系统进行,逻辑结构设计与物理结构设计与DBMS 密切相关。

数据库的表现形式是指面向用户的数据表现,这就要求在进行数据库设计时候要考虑实体的一些特性,其中包括层、属性与实体联系等

随着计算机软硬件的不断发展,信息系统在客户管理中的应用已成必然。由于管理工作复杂,政策性强,客户关系也不断复杂化,依赖人为因素较多,使系统管理的需求定义比较困难,必须进行反复迭代

而通过这一学期的努力,记得刚开始做数据库设计的时候,觉得好难,加上专业知识方面的有限,不过这样更锻炼了自己的毅力和意志,有助于形成吃苦耐劳,认真负责的工作态度。在今后学习中要继续发扬这种态度,多接触些新的技术,不断完善自己

最后要感谢学校和老师给我这一次锻炼的机会,让自己更加有信心面向未来。


相关文章

  • 邀请函拨冗
  • 尊敬的李明先生: 为进一步促进我省教育改革和发展, 交流彼此研究成果,我所决定于2012年12月10 日至12月20日在5大学学术交流中心举办河北省第三届教育发展与研究理论报告会,恭请 您就我省教育发展的现状与发展发表高见.务请拨冗出席,如 ...查看


  • 有关衡水中学资料总结
  • 有关衡水中学资料总结 一.教学 1.课堂教学,培养学生各种能力的主渠道在课堂.衡水中学的每节课 40 分钟, 2."两个对待":把每节自习都当做考试对待,把每次考试都当作高考对待, 真正做到"自习考试化, 考试 ...查看


  • 最全的建行岗位考试大综合,含五个岗位的考题
  • 普通柜员模拟测试题 一.单项选择题(在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内.错选.多选或未选均无分.每小题2分,共40分) 1.客户办理业务时,普通柜员应( )接过客户证件.现金或者单据 A.双手 ...查看


  • 河北省衡水中学90%的重本率是这样炼成的!
  • 河北省衡水中学90%的重本率是这样炼成的! 关于衡水中学的争议从来没有停下,于此同时,这所中学创造的高考奇迹一而再地刷新,在高压教育环境下,衡水中学是怎样生存与发展的? 01 教学 1.课堂教学,培养学生各种能力的主渠道在课堂.衡水中学的每 ...查看


  • 调查问卷(餐饮)
  • 餐饮市场调查问卷 尊敬的先生/女士,您好!希望您据实填写以下内容.我们承诺仅将收集到的信息用作统计调查研究,所有涉及个人的信息将严格保密,感谢您的配合. (未标注题目均为单选题) 1.您经常有外出进行饮食的需求吗?: A.每月少于1次 B. ...查看


  • 暨南大学图书馆答题系统部分题目
  • 问题1. 我馆的数据库统一检索平台能检索以下哪些资源? A. 维普 B. 读秀 C. Wiley-blackwell D. JSTOR 答案:ABCD 问题2. 文献传递可为读者获取以下哪些单位的文献? A. 大英图书馆 B. 美国国会图书 ...查看


  • 证券交易历年真题及答案5
  • 证券交易历年真题及答案5 一.单选题(以下备选答案中只有一项最符合题目要求) 1.下列关于证券公司与客户之间的清算与交收的说法,错误的是( ). A.证券公司作为结算参与人与客户之间的清算交收,是整个结算过程不可缺少的环节 B.证券公司与其 ...查看


  • 10论文选题2
  • 管理系2010级人力资源管理专业学年论文.毕业论文参考题 目 一.学年论文工作说明: 为提高论文质量,管理系实行学年论文与毕业论文同一导师指导的方式.总结以往导师分配中的弊端,本届毕业生学年论文(毕业论文)采取随机抽取的原则(班长进行抽签) ...查看


  • 主题餐厅创业计划书
  • 毕业综合实践调研报告 课题名称: 小火车主题餐厅 系 部: 经贸管理系 班 级: 电商10D1班 姓 名: 吴焱 鲁静 徐苗 诸昊杰 学 号: 19 09 21 35 指导教师: 周 芳 2012 年 11月 8日 摘 要 当今,在汇集众多 ...查看


热门内容