第11章数据库设计详解.ppt
文本预览下载声明
;数据库设计过程:;?数据库设计的基本任务:
根据一个单位的信息需求、处理需求和数据库的支撑环境(包括DBMS、操作系统、网络和硬件),设计出数据模式(包括外模式、逻辑(概念)模式和内模式)以及典型的应用程序。;?数据库设计方法:
?以信息需求为主,兼顾处理需求,这种方法称为面向数据的设计方法;
?以处理需求为主,兼顾信息需求,这种方法称为面向过程的设计方法。
; ?数据库设计也和其他工程设计一样,具有三个特征:
?反复性。数据库设计不可能“一气呵成”,需要反复推敲和修改才能完成。
?试探性。设计过程往往是一个试探的过程。在设计过程中,有各式各样的要求和制约因素,它们之间往往是矛盾的。
?分步进行。数据库设计常常由不同的人员分阶段进行。这样做,一是由于技术上分工的需要;二是为了分段把关,逐级审查,保证设计的质量和进度。;11.2 数据库概念设计;?设计方法
?集中式模式设计法
首先将需求说明综合成一个一致的、统一的需求说明,然后,在此基础上设计一个单位的全局数据模式,再根据全局数据模式为各个用户组或应用定义外模式。
这种方法强调统一,对各用户组和应用可能照顾不够,一般用于小的、不太复杂的单位。;?视图集成法
视图集成法以各部分的需求说明为基础,按照统一的要求和规范,分别设计各自的局部模式。这些局部模式实际上相当于各部分的视图,然后再以这些视图为基础,集成为一个全局模式。
视图集成法比较适合于大型数据库的设计,可以多组并行进行,可以免除综合需求说明的麻烦。目前,视图集成法用得较多。
;数据库概念设计的步骤:
局部视图设计、视图集成 。 ;11.2.2 视图设计; 某保险公司雇佣多名业务员开展保险业务。一名业务员可以为多名客户服务;一个客户也可以通过多个业务员购买多种保险;每个客户在每次购买保险时通过一个业务员与保险公司签订合同。图中显示一张经过简化的该保险公司的个人保险投保合同书,请根据这张合同书所提供的???息设计数据库,对保险业务合同数据进行管理。;【实例】保险业务管理 ;? 需求分析;?保险业务管理涉及到的数据有:
?合同数据
?保险数据
?投保人数据
?被保险人数据
?业务员数据;?保险业务管理的处理需求有:
?查询所有已签的个人保险投保合同情况
?查询能够保险的所有项目
?查询所有投保人情况
?查询所有被保险人情况
?查询业务员情况
… ;一、局部视图设计
1.确定局部视图的设计范围
略。
2.确定实体及实体的主键
该保险业务涉及到的实体有:
?个人保险投保合同书,存放保险公司与投保人签订的所有个人保险投保合同。主键:保险合同号
?投保人,存放所有投保人的信息。主键:投保人号
?被保险人,存放所有被保险人的信息。主键:被保险人号
?业务员,存放所有业务员的基本信息。主键:业务员工号
?保险,存放所有能够提供的保险内容。主键:保险号;?定义联系
?识别联系的元数(单元、二元、多元)。
?识别联系的类型(一对一、一对多、多对多)
?确定实体在联系中的参与度(用m : n 表示)
;? 二元联系
1)1:1;11.2.2 视图设计;11.2.2 视图设计;b.其中只有一个实体是强制的;11.2.2 视图设计;11.2.2 视图设计;一种方法:;教师;2)1:N 联系;? 多端的实例是强制性的;11.2.2 视图设计;11.2.2 视图设计;? 多端的实例是非强制性的;11.2.2 视图设计;学号;3) M:N 联系;教师号;4) 自联系(一元联系、递归联系);教师号;4. 给实体及联系加属性(非标识属性);【实例】保险业务管理(续)
如果一份合同只能购买一种保险,而每种保险可以被不同的合同购买。则保险实体和合同实体之间是一对多联系。; 每个客户只和一名业务员签订保险合同,而一名业务员可以为多名客户服务,也就是可以签订多份保险合同;则业务员实体和合同实体之间是一对多联系。 ; 每份合同只有一个投保人,而每个投保人可以购买多种保险,即可签订多份保险合同。则投保人实体和合同实体之间是一对多联系。 ; 被投保人是依赖于投保人的,因此,被保险人是一个弱实体。如果投保人只能为一个被保险人购买保险,而每个被保险人只能有一个投保人。则投保人实体和被投保人之间是一对一联系。
;(4)给实体及联系加上描述属性
根据个人保险投保合同书的内容,我们可以
显示全部