数据库设计实例需求分析 概念结构 逻辑结构

合集下载

王珊数据库原理6

王珊数据库原理6

– 设计人员缺少用户的专业知识,不易理解用 户的真正需求,甚至误解用户的需求。
– 新的硬件、软件技术的出现也会使用户需求 发生变化。
需求分析的难点(续)
解决方法
– 设计人员必须采用有效的方法,与用户不断 深入地进行交流,才能逐步得以确定用户的 实际需求
6.2 需求分析
6.2.1 需求分析的任务
需求分析的重点(续)
处理要求
– 对处理功能的要求 – 对处理的响应时间的要求 – 对处理方式的要求(批处理 / 联机处理)
新系统的功能必须能够满足用户的信息要求、
处理要求、安全性与完整性要求。
三、需求分析的难点
确定用户最终需求的难点
– 用户缺少计算机知识,开始时无法确定计算 机究竟能为自己做什么,不能做什么,因此 无法一下子准确地表达自己的需求,他们所 提出的需求往往不断地变化。
其中学生管理子系统开发小组通过进行进一步的需求 调查,明确了该子系统的主要功能是进行学籍管理和 课程管理,包括学生报到、入学、毕业的管理,学生 上课情况的管理。通过详细的信息流程分析和数据收 集后,他们生成了该子系统的数据流图。
6.2 需求分析
6.2.1 需求分析的任务
6.2.2 需求分析的方法 6.2.3 数据字典
处理过程(续)
数据存储“学生登记表”可如下描述: 数据存储: 学生登记表 说明: 记录学生的基本情况 流入数据流:…… 流出数据流:…… 组成: …… 数据量: 每年3000张 存取方式: 随机存取
处理过程(续)
– 各个部门输入和使用什么数据
– 如何加工处理这些数据
– 输出什么信息
– 输出到什么部门
– 输出结果的格式是什么
调查与初步分析用户需求(续)

数据库设计

数据库设计

浅谈数据库设计 数据库设计属于系统设计的范畴,通常把使用数据的系统称为数据库应用系统,把数据库应用系统的设计简称为数据库设计。数据库设计把数据库应用系统分为需求分析阶段、概念结构设计、逻辑结构设计、物理结构设计、数据库实施阶段、数据库运行与维护六个阶段。下面简要介绍各个步骤的主要任务及方法。 1.需求分析阶段 需求分析是在项目确定之后,用户和设计人员通过详细的调查研究,充分了解用户的组织机构、业务规则、数据需求等等。所谓需求是指用户对软件的功能和性能的要求,就是用户希望软件能做什么事情,完成什么样的功能,达到什么性能。需求分析是数据库设计最基础的工作,如果这个阶段的工作不准确或有误,那么后面几个阶段的任务就会有偏差,如果到测试阶段才发现错误再去更改必然会付出很大的代价,因此必须高度重视这个阶段的人任务。需求分析阶段的后期编写系统分析报告,主要包括:系统的概况、目标、范围、现状等;系统及子系统的结构说明;系统的功能划分;系统的组织机构联系图;数据流程图;功能模块图及数据字典等内容。然后将此需求分析报告提交给用户的决策部门讨论审查,通过审查以后的需求分析报告作为今后各阶段设计和工作的依据。 例如:公司职工人事档案资料繁多,查询、统计、更新等各方面工作都不能更快更好进行,急需一管理系统实现人事资料的录入、维护、统计、查询等工作,明确要求后将具体事项形成书面报告审查后作为今后设计的依据。 2.概念结构设计 概念结构设计的目标是产生出一个能反映组织信息需求的概念模型,其特点有简单明确表示用户业务数据需求、数据之间的联系、数据约束条件等。概念结构的策略有四种自顶向下、自底向上、逐步扩张、混合策略。概念结构设计的最著名、最常用的方法是实体-联系方法,简称e-r方法。它虽然只有几个基本元素(实体、属性、联系),但能够表达现实世界复杂的数据、数据之间的关系和约束条件。 e-r图设计是对需求分析阶段所得到的数据进行分类、聚集、概括,确定实体、属性和联系,具体步骤如下: 2.1选择局部应用 数据流图是对业务处理过程从高层到底层的一级级抽象,高层抽象流图一般反映系统的概貌,对数据的引用较为笼统,选择适当层次的数据流图,让这一层的每一部分对应一个局部应用,实现某一项功能。 2.2逐一设计局部e-r图 规划好各个局部应用之后,对每一个局部应用设计局部e-r图,按照局部应用的数据流图,从数据字典中提取数据,使用抽象机制,确定局部应用中的实体、实体的属性、实体标示符、实体间的联系和类型,但是许多实物是实体还是属性没有明确的界定,要根据具体情况判断,一般来说,属性不能再分,属性也不能和其他实体发生联系,因为联系是实体和实体间的联系。 2.3 e-r图合并 根据局部应用设计好的局部e-r图之后,就可以对各局部e-r图进行合并,合并的目的是在合并过程中解决局部e-r图之间存在的冲突,消除存在的信息冗余,使之成为供用户理解的统一的、精练的全局概念模型。对所有的局部e-r图合并之后,就形成了全局e-r图,从而完成了概念结构设计。 3.逻辑结构设计 逻辑结构设计是在概念结构设计的基础上进行的数据模型设计,一般有层次、网状模型和关系模型,现在绝大多数dbms都是基于关系模型的,此阶段的主要任务有确定数据模型、将e-r图转换为指定的数据模型、确定完整性约束、确定用户视图。 例如:部门(1)————职工(m)。 4.物理结构设计 在实现数据库逻辑结构设计之后,就要确定数据库在计算机中的具体存储。数据库在计算机物理设备上的存储结构与存取方法称为数据库的物理结构。数据库的物理设计完全依赖于给定的数据库软件和硬件设备。层次和网状模型物理设计比较复杂,而关系dbms对物理设计要求很少,由dba来实现。物理结构设计需要确定数据分布、确定存储结构、确定存取方式。 5.数据库实施阶段 确定了数据库的逻辑结构和物理结构以后,可以利用dbms提供的数据定义语言建立数据库的结构。 例如:create table 职工库。 (职工编号 char(6) not null, 姓名 char(8) not null, 性别 char(2), 所属部门 char(10), primarykey key (职工编号)); 当数据库的结构建成之后,就可向数据库中加载数据,由于数据库中的数据量非常大,为了避免浪费大量人力财力时间等,通常专门设计一个录入子系统来提高效率,满足用户的要求。该子系统一般包括数据录入、录入过程的数据校验、代码转换、数据完整性约束、安全性检查等功能。 6.数据库的运行与维护 数据库设计与应用开发工作完成之后系统便进入运行与维护阶段。为保证数据库系统的安全稳定运行,需要综合考虑可能遇到的各种问题,指定详尽的运行计划和应对措施。任何因素导致系统初选问题,都可能给用户带来损失。 数据库的运行与维护阶段主要任务有: 6.1维护数据的安全性和数据完整性 为保障系统的稳定运行,必须制定运行策略。数据库的运行离不开用户的访问和操作,安全性策略包括网络安全、用户的权限管理、设备的安全及数据的安全等方面。按照设计阶段提供的安全和故障规范。实施授权和设定密码,并经常检查系统的安全性和可靠性,实施备份、恢复和数据重组的任务。 6.2监测并改变数据库性能 经常对数据库存储空间的状况和响应速度进行评价分析,确定优化和改善的措施,及时调整系统的运行状况。 6.3数据库的维护 在数据库系统的运行过程中,可能会由于某些原因需要修改数据库的结构,称为数据库的重构,重构包括表结构的修改和视图的修改。还要根据用户环境的扩大,适时的向数据库增加一些新的数据和功能。 6.4及时修改错误 系统运行过程中难免发生一些错误,需要及时运行修改错误,弥补设计时的欠缺。 本论文主要讲述了数据库设计的简单步骤。系统设计为整个程序构建了骨架,而各个功能模块实现各个细节部分。系统的详细设计根据系统分析阶段的结论将系统具体化,并完成了各个模块的添加、修改、删除与查询的功能,直到最后形成一个完整的可行性的数据库管理系统。 [科]

数据库课件第6章 关系数据库设计

数据库课件第6章 关系数据库设计

“学生”是该系统的一个核心数据结构,它可以描述如 下: 数据结构: 学生 含义说明: 是教学管理子系统的主体数据结构, 定义了一个学生的相关信息。 组成: 学号,姓名,性别,年龄,所在系,年级
2.分析得到系统的信息需求


例如: ⑴ 教学管理子系统的信息需求
管理学生、班级、教师、课程、专业和系等信息。 ①学生:学号、姓名、性别、年龄等。 ②班级:班级号、班级名、人数等。 ③教师:教师号、姓名、性别、职称、 电话号码和家 庭地址(城市、区、街道、邮政编码)等。 ④课程:课程号、课程名、学分、周学时、课程类型 (周数)等。 ⑤专业:专业号、专业名、选修门数等。 ⑥系:系号、系名等。
课程号 课程名 总课时
课程
请按键 ★


教授联系的合并
教 学 管 理 子 系 统
教师 m
教授 n 课程
教师 m 教授 n 课程
时间 教室号
合 并 后
时间 评教等级
教师 m
教授 n 课程 评教等级 时间 教室号
请按键 ★
工Hale Waihona Puke 资 及 福 利 子 系 统
合并后生成的全局E-R模型
教师 号
姓 名
性 别


⑵ 消除冗余数据和冗余联系 检查合并后的E-R模型中有无冗余数 据和冗余联系,如有则根据实际情况消 除之。

⑶ 例

教学管理与工资及福利管理子系统中,教 师的职工号存在命名冲突;教师实体存在 结构冲突。

教师 号
姓 名 教师 m 时间
性 别
职 称 电话号 码
n
工作
1
系 系号 系名
教授 教室号 n 课程名 n 课程 m n 学分 m

数据库设计分为几个阶段,各阶段的任务是什么?

数据库设计分为几个阶段,各阶段的任务是什么?

数据库设计分为⼏个阶段,各阶段的任务是什么?
按照规范的设计⽅法,⼀个完整的⼀般分为需求分析、概念结构设计、逻辑结构设计、数据库物理设计、数据库的实施、数据库运⾏与维护六个阶段:
各阶段的任务如下:
1、需求分析:分析⽤户的需求,包括数据、功能和性能需求;
2、概念结构设计:主要采⽤E-R模型进⾏设计,包括画E-R图;
3、逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换;
4、数据库物理设计:主要是为所设计的数据库选择合适的和存取路径;
5、数据库的实施:包括编程、测试和试运⾏;
6、数据库运⾏与维护:系统的运⾏与数据库的⽇常维护。

拓展资料:
(Database Design)是指对于⼀个给定的应⽤环境,构造最优的数据库模式,建⽴数据库及其应⽤系统,使之能够有效地存储数据,满⾜各种⽤户的应⽤需求(信息要求和处理要求)。

在数据库领域内,常常把使⽤数据库的各类系统统称为数据库应⽤系统。

是建⽴数据库及其应⽤系统的技术,是信息系统开发和建设中的核⼼技术。

由于数据库应⽤系统的复杂性,为了⽀持相关程序运⾏,数据库设计就变得异常复杂,因此最佳设计不可能⼀蹴⽽就,⽽只能是⼀种"反复探寻,逐步求精"的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。

数据库设计-逻辑设计

数据库设计-逻辑设计

数据库设计-逻辑设计数据库设计-逻辑设计概念结构设计:定义:将需求分析得到的⽤户需求抽象成信息结构,即概念模型。

概念模型:通常的描述⼯具是E-R模型图。

数据库概念模型的设计⽅法:概念设计的步骤:1. 进⾏数据抽象,设计局部概念模式分解法:将⼀个⼤的需求分解成⼀个个的⼩的需求,具体到单个⽤户的基本需求,为每个⽤户或⽤户组建⽴⼀个对应的局部E-R模型常⽤抽象⽅法:聚集:将若⼲对象和它们之间的联系组合成⼀个新的对象。

例如:学⽣属性信息(学号,姓名,性别)聚集成⼀个学⽣实体。

概括:将⼀组具有某些共同特征的对象合并成更⾼层⾯的对象。

例如:对不同学⽣(本科⽣,研究⽣)统⼀概括出共同特征,并抽象成学⽣实体。

2. 将局部概念模式综合成全局概念模式将各个局部概念模式合并成⼀个全局概念模式。

解决冗余问题解决对象定义不⼀致问题:同名异意,异名同意。

概念设计中涉及到的专有名词:关系:⼀个关系对应⼀张表。

元组:⼀个元组对应表中的⼀⾏记录。

属性:⼀个属性对应表中的⼀列记录。

主属性:候选码中出现的属性。

⾮主属性:没有在任何候选码中出现。

候选码:可以唯⼀标识元组的属性组。

主码:候选码之中的⼀个。

域:属性的取值范围。

分量:元组中的⼀个属性值。

ER图图例说明:矩形:表⽰实体集。

菱形:联系集。

椭圆:实体的属性。

线段:实体与属性之间的联系。

局部概念结构设计:1. 选择局部应⽤:根据系统具体情况,在多层的数据流图中选择⼀个适当层次的数据流图,从该数据流图出发,设计局部E-R模型。

2. 逐⼀设计局部E-R模型:参照数据字典和数据流图,确定每个局部应⽤应该包含那些实体,实体有包含那些属性,以及实体之间的联系和类型。

1. 实体的定义:现实世界中事物。

例如:学⽣2. 属性的定义:描述实体的性质。

例如:学号,姓名,性别联系的定义:实体之间的关系:⼀对⼀;⼀对多;多对多。

例如:⼀个学⽣对应⼀个班级,⼀个班级对应多个学⽣,多个⽼师对应多个班级。

全局概念结构设计:1. 合并局部E-R模型,⽣成初步的全局E-R图。

数据库课程课件_第7章_数据库设计

数据库课程课件_第7章_数据库设计
储和检索各种数据描述,为DBA提供有关的报告。
数据字典是在需求分析阶段建立,并在数据库设计过程中不 断改进、充实和完善。
⑴ 数据项:
数据项是数据的最小单位。
数据项描述={数据项名,含义说明,类型,长度,取值范围, 与其它数据项的逻辑关系} ⑵ 数据结构: 数据结构反映了数据之间的组合关系。
数据结构描述={数据结构名,含义说明,组成,{数据项或数据结
本章特点:实用性较强。
§1、 数据库设计概述 数据库设计是指对于一个给定的应用环境,提供一 个确定最优数据模型与处理模式的逻辑设计,以及一个
确定数据库存储结构与存取方法的物理设计,建立起既
能反映现实世界信息和信息联系,满足用户数据要求和 加工要求,又能被某个数据库管理系统所接受,同时能 实现系统目标,并有效存取数据的数据库。
3、数据流图和数据字典
数据流图DFD有四个基本成分: 用箭头表示数据流、用圆圈表示加工或处理, 用双线段表示文件、用方框表示外部实体。
9页
学籍管理数据流图
毕业证书 新生名单 体检表
毕业登记表
宿舍描述
学生档案
毕业登记表
毕业生名单
录取通知
报到证
学生
1.0
2.0
学生基 本情况
3.0

到 招生 办公室
同意/不同意 接受 核对通知书 体检结果
审 核
9页
ቤተ መጻሕፍቲ ባይዱ
成绩单 教室安排
课程管理 数据流图
教材 教室
选 用 教 材 教 室 安 排 课 程 介 绍
学 生
教师 课程
任 课 教 师 介 绍
考 场 试 卷 成 绩
考 场 安 排
试 卷
成 绩

数据库逻辑结构设计的步骤

数据库逻辑结构设计的步骤嘿,咱今儿个就来聊聊数据库逻辑结构设计的那些事儿!你可别小瞧了这玩意儿,就好像盖房子得先有个稳固的框架一样,数据库的逻辑结构设计那也是至关重要的呢!首先呢,得好好分析需求。

这就好比你要去旅行,得先搞清楚自己想去哪儿,想看啥风景,对吧?得把业务需求摸得透透的,知道都要存啥数据,数据之间有啥关系。

这可不是随随便便就能搞定的,得花心思,费脑筋呢!要是需求没搞清楚,那后面不就乱套啦?然后呢,就是概念结构设计啦。

这就像是给房子画个设计图,把大概的样子勾勒出来。

把各种实体、属性还有它们之间的关系都理清楚。

这可不是一件容易的事儿啊,得有足够的耐心和细心。

就像拼图一样,一块一块地把它们拼凑起来,形成一个完整的概念模型。

接下来呀,就是逻辑结构设计啦。

这可就是真正开始搭建房子的框架啦!把概念模型转化成数据库能够理解的逻辑结构,比如表啦、字段啦啥的。

这可得小心谨慎,不能有丝毫差错。

就好像盖房子用的钢梁,得坚固无比才行呢!再之后呢,就是优化啦。

就像给房子装修一样,得让它更漂亮、更实用。

看看表结构合不合理呀,有没有冗余呀,性能好不好呀。

这可不能马虎,得精益求精,让数据库运行得又快又好。

你想想看,要是数据库逻辑结构设计不好,那以后用起来得多别扭呀!就好像走在一条坑坑洼洼的路上,磕磕绊绊的。

所以呀,每个步骤都不能马虎,都得认真对待。

比如说,要是需求分析没做好,那后面不就全错啦?那不是白费力气嘛!再比如,概念结构设计得乱七八糟,那逻辑结构能好到哪儿去?这就好比根基没打好,房子能牢固吗?总之呢,数据库逻辑结构设计可不是一件简单的事儿,得一步一个脚印,踏踏实实地去做。

每一个环节都不能掉以轻心,都得用心去琢磨。

只有这样,才能设计出一个完美的数据库逻辑结构,让我们的数据能够安全、高效地存储和使用。

你说是不是这个理儿呢?。

数据库需求分析与概念模型设计

数据库需求分析与概念模型设计在现代社会中,数据的重要性越来越被广泛认可。

数据库作为一种高效的数据管理工具,被广泛应用于各种行业和领域。

而在构建一个数据库系统之前,需求分析与概念模型设计是不可或缺的环节。

本文将探讨数据库需求分析的重要性,并介绍概念模型设计的相关知识。

一、数据库需求分析的重要性数据库需求分析是指对用户需求进行梳理、分析和整理的过程。

它能够确保数据库系统能够真正满足用户的需求,并且能够在满足需求的基础上提供高效的数据管理和查询功能。

数据库需求分析包括需求收集、需求组织和需求确认三个阶段。

1. 需求收集需求收集是指通过对用户进行访谈、观察和问卷调查等方式,收集用户需求的过程。

在需求收集阶段,需求分析师需要与用户沟通,了解用户对数据库系统的期望和要求。

通过有效的需求收集,可以确保数据库系统能够真正满足用户的需求,避免后期修改和调整的麻烦。

2. 需求组织需求组织是指将收集到的用户需求进行整理和分类的过程。

在需求组织阶段,需求分析师需要对收集到的需求进行分析和归纳,确定数据库系统所需的功能和特性。

通过有效的需求组织,可以明确数据库系统的目标和范围,为后续的概念模型设计提供基础。

3. 需求确认需求确认是指与用户共同审查和确认需求的过程。

在需求确认阶段,需求分析师需要将整理好的需求与用户进行反馈和讨论,确保需求的准确性和完整性。

通过有效的需求确认,可以建立用户与需求分析师之间的信任,最大程度地减少需求分歧,提高数据库系统的可接受度。

二、概念模型设计的相关知识概念模型设计是指在需求分析的基础上,对数据库的结构和关系进行建模的过程。

它以概念实体和实体之间的关系为核心,描述了数据库中各个元素的属性、关系和行为。

概念模型设计通常使用实体-关系模型(Entity-Relationship Model)进行表示。

1. 实体实体是指现实世界中的一个独立、有明确定义的事物,例如“学生”、“教师”等。

在概念模型设计中,实体用矩形图形表示,每个实体都有一组属性,描述了实体的特征和属性。

第4章数据库设计


D,一个1:1联系可以转换为一个独立的关 系模式,也可以与任意一端对应的关系模 式合并.
转换为一个独立的关系模式:
关系的属性:与该联系相连的各实体的码以及联系
本身的属性
关系的候选码:每个实体的码均是该关系的候选码
与某一端对应的关系模式合并:
合并后关系的属性:加入对应关系的码和联系本身
的属性
合并后关系的码:不变
2.转换原则
A,一个实体型转换为一个关系模式.
关系的属性:实体型的属性 关系的码:实体型的码
例:学生实体可以转换为如下关系模式: 学生(学号,姓名,出生日期,所在系, 年级,平均成绩) 性别,宿舍,班级,档案材料,教师,课程, 教室,教科书都分别转换为一个关系模式.
B,一个m:n联系转换为一个关系模式.
例:"管理"联系为1:1联系,可以有三种转换方 法: (1)转换为一个独立的关系模式:
或 管理(职工号,班级号) 管理(职工号,班级号)
(2)"管理"联系与班级关系模式合并,则只需 在班级关系中加入教师关系的码,即职工号: 班级:(班级号,学生人数,职工号)
( 3)"管理"联系与教师关系模式合并, 则只需在教师关系中加入班级关系的码, 即班级号: 教师:(职工号,姓名,性别,职称,班 级号,是否为优秀班主任)
P58图4.3
4.2 需求分析
需求分析就是分析用户的需要与要求
需求分析是设计数据库的起点 需求分析的结果是否准确地反映用户的实际 要求,将直接影响到后面各个阶段的设计, 并影响到设计结果是否合理和实用
1.需求分析的任务
通过详细调查现实世界要处理的对象 (组织,部门,企业等),充分了解原系 统(手工系统或计算机系统)工作概况, 明确用户的各种需求 在此基础上确定新系统的功能.新系统 必须充分考虑今后可能的扩充和改变,不 能仅仅按当前应用需求来设计数据库

数据库设计-逻辑结构设计

第六章 数据库设计 3
(4)一个1:1联系可转换为一个独立的关系模式,也可与任一 端对应的关系模式合并。 如转换为一个独立的关系模式,则与该联系相连的各实 体的码以及联系本身的属性均转换为关系的属性,每个实体 的码均是该关系的候选码。 如果与某一端对应的关系模式合并,则需要在该关系模 式的属性中加入另一个关系模式的码和联系本身的属性。 例,“管理”联系为1:1联系,我们可以将其转换为一个独 立的关系模式: 管理(职工号,班级号) 或 管理(职工号,班级号)
第六章 数据库设计 4
管理”联系也可以与班级或教师关系模式合并。如果与班 级关系模式合并,则只需在班级关系中加入教师关系的码, 即职工号: 班级:{班级号,学生人数,职工号} 如果与教师关系模式合并,则只需在教师关系中加入班 级关系的码,即班级号: 教师:{职工号,姓名,性别,职称,班级号,是否为 优秀班主任}
6.4 逻辑结构设计 设计逻辑结构应该选择最适于描述与表达相应概念结构 的数据模型,然后选择最合适的DBMS。设计逻辑结构时一般 要分三步进行: ·将概念结构转换为一般的关系、网状、层次模型 ·将转化来的关系、网状、层次模型向特定DBMS支持下的 数据模型转换 ·对数据模型进行优化 1.E-R图向数据模型的转换 关系模型是一组关系模式的集合。E-R图由实体、实体的 属性和实体之间的联系组成。将E-R图转换为关系模型就是将 实体、实体的属性和实体之间的联系转化为关系模式。
第六章 数据库设计
பைடு நூலகம்
1
转换原则: (1)一个实体型转换为一个关系模式。实体的属性就是关 系的属性。实体的码就是关系的码。 例,学生实体可转换为如下关系模式,学号为学生关系的 码: 学生(学号,姓名,出生日期,所在系,年级,平均成绩) 同样,性别、宿舍、班级、档案材料、教师、课程、教 室、教科书都分别转换为一个关系模式。 (2) 一个m:n联系转换为一个关系模式。与该联系相连的 各实体的码以及联系本身的属性均转换为关系的属性。而关 系的码为各实体码的组合。 例,“选修”联系是一个m:n联系,可以将它转换为如下关系 模式,其中学号与课程号为关系的组合码: 选修(学号,课程号,成绩)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库设计实例分析
一、需求分析实例
现要开发高校图书管理系统。经过可行性分析和初步的需求调查,确定了系统的功
能边界,该系统应能完成下面的功能:

(1)读者注册。
(2)读者借书。
(3)读者还书。
(4)图书查询。
1、数据流图
顶层数据流图反映了图书管理系统与外界的接口,但未表明数据的加工要求,需要
进一步细化。根据前面图书管理系统功能边界的确定,再对图书管理系统顶层数据
流图中的处理功能做进一步分解,可分解为读者注册、借书、还书和查询四个子功
能,这样就得到了图书管理系统的第0层数据流图

从图书管理系统第0层数据流图中可以看出,在图书管理的不同业务中,借书、还
书、查询这几个处理较为复杂,使用到不同的数据较多,因此有必要对其进行更深
层次的分析,即构建这些处理的第1层数据流图。下面的图8-7分别给出了借书、
还书、查询子功能的第1层数据流图
2、数据字典
2.1 数据项
数据项名称:借书证号
别名:卡号
含义说明:惟一标识一个借书证
类型:字符型
长度:20
……
2.2 数据结构
(1)名称:读者类别
含义说明:定义了一个读者类别的有关信息
组成结构:类别代码+类别名称+可借阅数量+借阅天数+超期罚款额
(2)名称:读者
含义说明:定义了一个读者的有关信息
组成结构:姓名+性别+所在部门+读者类型
(3)名称:图书
含义说明:定义了一本图书的有关信息
组成结构:图书编号+图书名称+作者+出版社+价格
……
2.3 数据流
(1)数据流名称:借书单
含义:读者借书时填写的单据
来源:读者
去向:审核借书
数据流量:250份/天
组成:借书证编号+借阅日期+图书编号
(2)数据流名称:还书单
含义:读者还书时填写的单据
来源:读者
去向:审核还书
数据流量:250份/天
组成:借书证编号+还书日期+图书编号
……
2.4 数据存储
(1)数据存储名称:图书信息表
含义说明:存放图书有关信息
组成结构:图书+库存数量
说明:数量用来说明图书在仓库中的存放数
(2)数据存储名称:读者信息表
含义说明:存放读者的注册信息
组成结构:读者+卡号+卡状态+办卡日期
说明:卡状态是指借书证当前被锁定还是正常使用
(3)数据存储名称:借书记录
含义说明:存放读者的借书、还书信息
组成结构:卡号+书号+借书日期+还书日期
说明:要求能立即查询并修改
……
2.5 处理过程
(1)处理过程名称:审核借书证
输入:借书证
输出:认定合格的借书证
加工逻辑:根据读者信息表和读者借书证,如果借书证在读者信息表中存在并且没
有被锁定,那么借书证是有效的借书证,否则是无效的借书证。

……
二、概念结构设计实例
1.标识图书管理系统中的实体和属性
参照数据字典中对数据存储的描述,可初步确定三个实体的属性为:
读者:{卡号,姓名,性别,部门,类别、办卡日期,卡状态}
读者类别:{类别代码,类别名称,可借阅天数、可借阅数量,超期罚款额}
图书:{书号,书名,作者,价格,出版社,库存数量}
借还记录:{卡号,书名,借书日期,还书日期}
其中有下划线的属性为实体的码。
2.确定实体间的联系
三、逻辑结构设计实例
1、图书管理系统的关系模型
将在概念结构阶段得到的基本E-R图转换成关系模型,如下表所示:

关系名 属性及码 其他约束条件
读者 借书证号,姓名,性别,部门,类别代码,办证日期,借书证状态 1、 类别代码引用读者类别
关系中的类别代码;

2、 姓名不允许为空;
3、 类别代码不允许为空

读者类别 类别代码,类别名称,可借阅数量,可借阅天数,超期罚款额 类别名称不允为空

图书 书号,书名,作者,价格,出版社,库存数量 1、 书名不允许为空;
2、 库存数量不允许为空

借还 借书证号,书号,借书日期,还书日期 1、 借书证号引用读者关系
中的借书证号;

2、 书号引用图书关系中的
书号
2、将关系设计成SQL Server 2005下相应的表
reader(读者表)

字段名 字段含义 字段类型 长度 小数 是否为空 列级约束

CardID 借书证号(卡号) Char 20 NOT NULL Primarykey

Name 姓名 Char 16 NOT
NULL

Sex 性别 Bit NULL
Dept 部门 Char 30 NULL
ClassID 类别代码 Int NOT NULL Foreign key
references
dzclass(ClassID)
Bzdate 办证日期 datetime NULL

Cardstate 借书证状态(卡状态) bit NULL

表级约束
dzclass(读者类别表)
字段名 字段含义 字段类型 长度 小数 是否为空 列级约束
ClassID 类别代码 Int NOT NULL Primarykey
ClassName 类别名称 Char 16 NOT NULL
PermitDay 可借阅天数 Int NULL
PermitQty 可借阅数量 Int NULL
Penalty 超期罚款额 Money NULL
表级约束
book(图书表)
字段名 字段含义 字段类型 长度 小数 是否为空 列级约束
BookID 书号 Char 20 NOT NULL Primarykey
BookName 书名 varchar 20 NOT NULL
Editer 作者 Varchar 8 NULL
Price 价格 Money NULL
Publisher 出版社 Varchar 20 NULL
Qty 库存数量 Int NOT NULL
表级约束
borrow(借还表)
字段名 字段含义 字段类型 长度 小数 是否为空 列级约束

CardID 借书证号 Char 20 NOT NULL Foreign key
references
reader(CardID)

BookID 书号 char 20 NOT NULL Foreign key
references
book(BookID)

Bdate 借书日期 Datetime NOT NULL

Sdate 还书日期 Datetime NULL
表级约束 Primarykey(CardID,BookID,Bdate)

相关文档
最新文档