项目1数据库系统设计.ppt
项目一 数据库系统设计,清华大学出版社,SQLServer数据库管理与开发案例教程,2,项目一 主要任务,数据库关系规范化数据库应用系统的设计方法学生管理系统设计实例,3,关系数据库模式设计问题,不好的关系模式可能导致以下几个方面的问题:数据冗余插入异常删除异常 修改异常,数据库关系规范化,4,关系模式的规范化,属性之间的联系一对一联系 一对多联系 多对多联系函数依赖平凡的函数依赖与非平凡的函数依赖函数依赖与属性间的联系类型有关 函数依赖是语义范畴的概念 函数依赖关系的存在与时间无关 函数依赖可以保证关系分解的无损连接性,数据库关系规范化,5,关系模式的规范化,函数依赖的基本性质投影性 扩张性 合并性分解性完全函数依赖和部分函数依赖传递函数依赖,数据库关系规范化,6,关系模式的规范化理论,第一范式定义:如果如果关系模式R所有的属性均为简单属性,即每个属性都是不可再分的,则称R属于第一范式,简称NF,记作RNF。规范化:关系模式最基本的要求是必须满足第一范式。凡是非规范化关系必须转化为规范化关系,方法是去掉组项和重复项,将所有数据项都分解成不可再分的最小数据项 注意 NF是最基本的关系模式,任何关系都应遵守。仅满足第一范式的要求是远远不够的,它仍然存在插入异 常、删除异常和更新异常等问题。,数据库关系规范化,7,关系模式的规范化理论,第二范式定义:如果关系模式RNF,R(U,F)中的所有的非主属性都完全函数依赖于任意一个候选关键字,则关系R属于第二范式(Second Normal Form),简称2NF,记作R2NF。规范化:2NF规范化指把NF关系模式通过投影分解,消除非主属性对候选关键字的部分函数依赖,转换成2NF关系模式的集合过程。,数据库关系规范化,8,关系模式的规范化理论,第三范式定义:如果关系模式R2NF,R(U,F)中的所有的非主属性对任何候选关键字都不存在传递函数依赖,则称R是属于第三范式(Third Normal Form),简称3NF,记作R3NF。规范化:3NF的规范化是指2NF关系模式通过投影分解,消除了非主属性对候选关键字的传递函数依赖,而转换成3NF关系模式的集合过程。注意由于3NF关系模式中不存在非主属性对关键字部分依赖和传递函数依赖,因此在很大程度上消除了数据的冗余和更新异常,因此在通常的数据库设计中,一般要求达到3NF。,数据库关系规范化,9,关系模式的规范化理论,BCNF范式定义:如果关系模式RNF,且所有的函数依赖XY(Y不包含X),决定因素X都包含了R的一个侯选码,则称R属于BCNF(Boyce-Codd Normal Form),记作RBCNF。规范化:BCNF的规范化是指把3NF关系模式通过投影分解转换成BCNF关系模式的集合过程。下面以3NF关系模式Sc为例,来说明BCNF规范化的过程。多值依赖与4NF,Page 9,数据库关系规范化,10,定义:设有关系模式R(U),U是属性全集,X,Y,Z是属性集U的子集,且Z=U-X-Y,如果对于R的任一关系,对于X的一个确定值,存在Y的一组值与之对应,且Y的这组值仅仅决定于X的值而与Z值无关,此时称Y多值依赖于X,或者X多值决定Y,记作XY。在多值依赖中,若XY且Z=U-X-Y,则称XY是非平凡的多值依赖,否则称为平凡的多值依赖 第四范式(4NF)的定义:把一个关系模式分解为4NF的方法与分解为BCNF的方法类似,就是当把一个关系模式利用投影的方法消去非平凡且非函数依赖的多值依赖,并具有无损连接性。,关系模式的规范化理论,数据库关系规范化,11,关系模式的规范化理论,4NF的分解:把一个关系模式分解为4NF的方法与分解为BCNF的方法类似,就是当把一个关系模式利用投影的方法消去非平凡且非函数依赖的多值依赖,并具有无损连接性。,数据库关系规范化,12,需求分析概念结构设计逻辑结构设计物理设计数据库实施数据库的运行与维护,数据库的设计方法,数据库应用系统的设计方法,13,需求分析,在需求调研的过程要重点了解用户的如下需求:用户的信息要求 用户的处理要求对数据的安全性、完整性的要求,Page 13,数据库应用系统的设计方法,14,实体联系模型将现实世界中客观存在的事物及它们所具有的特性抽象为信息世界的实体和属性。然后使用实体联系(Entity Relationship,E-R)图表示实体、属性、实体之间的联系(即概念数据模型)最后再将E-R图转换为数据世界中的联系。实体与联系,Page 14,概念结构设计,数据库应用系统的设计方法,15,概念结构设计 实体,实体-现实世界中存在的并可相互区别的事物或概念称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。属性-属性是实体或者联系具有的特征或性质。例如,学生实体的属性有:学号、姓名、性别、籍贯、出生日期等。,数据库应用系统的设计方法,16,概念结构设计 联系,联系-联系是指不同实体之间的关系。在E-R图中,用菱形框表示联系,并将联系名写在菱形框内,并用连线将联系框与它所描述的实体联系起来 一对一联系(1:1)-实体集中的每个实体在实体集中至多有一个实体与之对应关联,反之亦然。则实体集与实体集具有一对一联系,记为1:1一对多联系(1:n)-实体集中的每个实体在实体集中有n个实体(n=0)与之对应关联,反之实体集中的每个实体在实体集中最多有一个实体与之对应关联。则称实体集A与实体集B具有一对多联系,记为1:n。,数据库应用系统的设计方法,17,概念结构设计 联系,多对多联系(m:n)多对多联系(m:n):实体集A中的每个实体,在实体集中有n个实体(n=0)与之对应关联;反之,实体集B中的每个实体,在实体集A中也有m个实体(m=0)与之对应关联,则称实体集A与实体集B具有多对多联系,记为m:n。自身联系自身联系描述的是同一实体集内部各实体之间的联系。Is a 联系描述的是两个实体集之间的父类和子类的关系。多元联系 两个实体集之间的联系称为二元联系,两个以上的实体集之间的联系称为多元联系。,数据库应用系统的设计方法,18,概念结构设计,概念结构的设计方法自顶向下:先定义全局概念模型,然后再逐步细化。自底向上:先定义每个局部的概念结构,然后按一定的规则把它们集成起来,得到全局概念模型。逐步扩张:首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他逐步扩张。首先定概念结构,直至总体概念结构。混合策略:将自顶向下和自底向上方法结合起来使用。概念结构设计的步骤进行数据抽象,设计局部E-R模型。集成各局部E-R模型,形成全局E-R模型。数据抽象与局部E-R模型设计第一步:设计各个局部视图即分E-R图。第二步:集成局部E-R图。,Page 18,概念结构的设计方法和步骤,19,逻辑结构设计,一般逻辑结构设计分为以下3个步骤将概念结构转化为一般的关系、网状、层次模型。将转化来的关系、网状、层次模型向特定DBMS支持下的数据模型转换。对数据模型进行优化。初始化关系模式设计及转换原则一个实体转换为一个关系模式一个m:n联系可以转换为一个关系模式一个1:n联系可以转换为一个关系模式一个1:1联系可以转换为一个独立的关系模式3个或3个以上实体间的一个多元联系转换为一个关系模式。,数据库应用系统的设计方法,20,逻辑结构设计,关系模式的规范化确定数据依赖:写出每个关系模式内部各属性之间的数据依赖以及不同关系模式属性之间数据依赖。各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。对关系模式逐一进行分析,考查是否存在部分函数依赖、传递函数依赖、多值依赖,确定各关系模式分别属于第几范式。分析应用环境,确定是否对关系模式进行合并或分解。对关系模式进行必要的分解或合并,提高数据操作的效率和存储空间的利用率。,数据库应用系统的设计方法,21,逻辑结构设计,关系模式的评价与改进模式的评价:对模式的评价包括设计质量的评价和性能评价两个方面。数据模式的改进:对数据模式 改进可使用合并或分解的方法。,Page 21,数据库应用系统的设计方法,22,数据库物理设计,确定物理结构记录存储结构的设计。关系模式的存取方法选择。评价物理结构,Page 22,数据库应用系统的设计方法,23,数据库实施,建立实际数据库结构 装入数据编制与调试应用程序 数据库试运行整理文档,数据库应用系统的设计方法,24,数据库运行和维护,数据库的安全性、完整性监视并改善数据库性能数据库的重组织和重构造,数据库应用系统的设计方法,25,概念结构设计 学生管理系统(E-R)图,学生管理系统设计实例,26,逻辑结构设计 学生信息数据表,学生信息数据表,学生管理系统设计实例,27,逻辑结构设计 学生成绩&课程表,学生成绩数据表,学生管理系统设计实例,课程表,28,逻辑结构设计 学生学籍变更数据表,学籍变更数据表,学生管理系统设计实例,29,逻辑结构设计 学生奖励数据表,学生奖励数据表,学生管理系统设计实例,30,逻辑结构设计 学生处罚数据表,学生奖处罚数据表,学生管理系统设计实例,31,逻辑结构设计 学生离校数据表,学生离校数据表,学生管理系统设计实例,32,数据实施,数据实施 小结,学生管理系统设计实例,