大学计算机基础第7章数据库.ppt_第1页
大学计算机基础第7章数据库.ppt_第2页
大学计算机基础第7章数据库.ppt_第3页
大学计算机基础第7章数据库.ppt_第4页
大学计算机基础第7章数据库.ppt_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第 七 章 数据库设计基础,本章主要内容: 7.1 数据库系统的基本概念 7.2 数据模型 7.3 关系代数 7.4 数据库的设计与管理,7.1 数据库系统的基本概念,7.1.1 数据和数据库 7.1.2 数据库管理系统 7.1.3 数据管理技术的发展 7.1.4 数据库系统 7.1.5 数据库系统的内部结构体系,数据,信息,客观实体存在方式或运动状态的描述。,对现实世界中客观事物的符号表示。可以是数值数据,也可以是非数值数据,如声音、图像等。 数据有一定的结构,包含类型和数据值两个属性,有型(Type)和值(Value)的区分,7.1.1 数据和数据库,数据库(DataBase,DB),C.J.Date对数据库的定义: 存储在磁鼓、磁盘和其它外存介质上的数据集合; 存在以这种数据为背景运行的若干个批应用程序,对其进行检索、修改、插入和删除,另外可能有一些联机用户从远程终端与数据库相互作用; 数据库是集成的,即包含许多用户的数据,每个用户只享用其中的小部分,且不同用户使用的部分数据以多种方式重叠即单独的数据片能够被许多不同用户共享。,数据库的特点,数据按一定的数据模型组织、描述和存储 可为各种用户共享 冗余度较小 数据独立性高 易扩展,7.1.2 数据库管理系统(DBMS),DataBase Management System, DBMS 负责对数据的存储、检索、修改以及安全保护等 主要功能: (1)数据定义功能 (2)数据库管理功能 (3)数据库的建立和维护功能 (4)通信功能 目前流行的数据库管理系统多为关系型数据库系统,如Oracle、Sybase、SQL Server 、Access等。 数据库管理员DBA(Database Administrator),数据库管理技术的发展,7.1.3 数据管理技术的发展,数据管理是数据处理的中心问题,是指对数据的分类、组织、编码、存储、检索和维护的技术。,一、人工管理阶段,硬件背景 无大容量外存 软件背景 无操作系统 应用背景 科学计算 数据管理特点 : 数据与程序不具有独立性。一组数据对应一组程序。 数据不长期保存。 系统中没有对数据进行管理的软件。由程序设计人员自负其责。,一、人工管理阶段,二、文件管理阶段,硬件背景 出现大容量外存 软件背景 出现了操作系统 应用背景 科学计算,数据处理 数据管理特点 数据以文件形式存储,可长期存储在外存上 程序和数据有一定的独立性 数据冗余、程序与数据还是相互依赖、缺少数据控制手段,二、文件管理阶段,三、数据库系统阶段,硬件背景 大容量磁盘 软件背景 有数据库管理系统 应用背景 大规模管理 数据库管理的特点 实现数据共享,减少数据冗余。 采用特定的数据模型。 具有较高的数据独立性。 有统一的数据控制功能。,按照一定规则存储在一起的数据集合,对数据库进行管理及对数据库数据进行操作的管理系统,数据库的根本目标是解决数据的共享,物理 独立性,当数据的存储结构改变时,其逻辑结构可以不变,基于逻辑结构的应用程序不必修改,逻辑 独立性,当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序也可以不必修改,数据的独立性,四、分布式数据库系统阶段,是数据库技术和网络技术相结合的产物 数据管理特点 : 局部自主。每个节点有自己的数据库管理系统,可以独立的处理本地事务,节点之间可以互相访问。 可靠性高。个别节点出现故障不会影响整个系统。 灵活方便。数据处理可以分散到各个节点,缓解单个节点的压力。 易于扩展。,7.1.4 数据库系统,数据库系统(DataBase System,DBS) 数据库系统是指引入了数据库之后的计算机系统 由数据库(数据)、数据库管理系统及相关软件、硬件系统、操作系统、数据库管理员和用户组成的。 数据库管理系统是数据库系统的核心。,利用数据库系统开发的解决实际应用问题的软件系统,7.1.5 数据库系统的体系结构,1、三级模式 (1)模式 ( Schema,也称逻辑模式或概念模式) 数据库中全体数据的逻辑结构描述,是所有用户的公共数据视图。 一个数据库只有一个模式。,(2)外模式(也称为子模式或用户模式) 用户能够看见和使用的局部数据的逻辑结构的描述,是数据和用户的数据视图,是与某一应用有关的数据的逻辑表示。 外模式是模式的子集。 一个模式可以有多个外模式。一个应用程序只能使用一个外模式。,(3)内模式(也称存储模式) 数据库在物理存储器上具体实现的描述,是数据在数据库内部的表示方法,也是数据物理结构和存储方式的描述。 一个数据库只有一个内模式。,2、二级映像 (1)外模式/模式映像 外模式/模式映像描述数据库系统的每个局部逻辑结构与全局逻辑结构之间的联系。 对于每个外模式,系统都要有一个外模式/模式映像定义这个外模式与模式之间的对应关系。 当模式改变时,外模式/模式的映象要作相应的改变,以保证外模式保持不变。,(2)模式/内模式的映像 模式/内模式映像描述数据库系统的全局逻辑结构和物理结构之间的联系。 模式/内模式映像是唯一的。 当数据库的存储结构改变了,模式/内模式的映象也必须作相应的修改,使得模式保持不变。 正是由于这二级映象功能,使得数据库系统中数据具有较高的逻辑独立性和物理独立性。,7.2 数据模型,7.2.1 数据模型的基本概念 7.2.2 E-R模型 7.2.3 层次模型 7.2.4 网状模型 7.2.5 关系模型,7.2.1数据模型的基本概念,客观世界的事物转化成计算机中的数据分为两个阶段:,现实世界,信息世界,计算机世界,信息世界, 实体(entity):客观存在并且可以相互区别的东西称为实体。实体可以是可触及的对象,例如一个男学生,一辆汽车等。也可以是抽象的事件,如一次足球比赛,一次借书等。 实体集(entity set):性质相同的同类实体的集合,称为实体集。例如所有的男学生,全国足球锦标赛的所有比赛等。, 属性(attributes):实体有很多特性,每一个特性称为属性。每个属性有一个值域,值域的类型可以是整数型、实数型或字符串型等。例如学生有姓名、年龄、性别等属性,相应值域的类型分别是字符串、整数和字符串型。 码(key):能唯一标识实体集中每个实体的属性或属性集称为实体的码,也称标识符。例如学生的姓名(不允许重名)可以作为学生实体的码。,机器世界, 字段(field):标识实体属性的符号集称为字段,或数据项。 它是可以命名的最小信息单位。 例如学生有学号、姓名、年龄、性别等字段。 记录(record):字段的有序集合称为记录。 一般用一个记录描述一个实体,所以记录又称为能完整地描述一个实体的符号集。 例如一个学生的记录,由有序字段集组成:(学号、姓名、年龄、性别)。, 文件(file):同一类记录的汇集称为文件。 文件是描述实体集的,所以它又可定义为描述一个实体集的所有符号集。 例如所有的学生记录组成了一个学生文件。 关键字(key):能唯一标识文件中每个记录的字段或字段集称为文件的关键字,也称码。,机器世界和信息世界的术语对应关系,数据模型分类,概念数据模型(独立于计算机系统,只是用来描述信息结构) 实体联系模型 结构数据模型 关系模型 网状模型 层次模型 面向对象模型,客观世界的事物转化成计算机中的数据分为两个阶段: 把现实世界中的客观对象抽象为概念模型; 把概念模型转换为某一DBMS支持的数据模型。,数据模型三要素,1数据结构:数据结构用于描述系统的静态特性。是所研究的对象类型(object type)的集合。 2数据操作:用于描述系统的动态特性。数据库主要有检索和更新(包括插入、删除、修改)两大类操作。 3.数据的约束条件:是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则。,7.2.2 E-R模型(实体-联系模型),实体:客观存在并且能够相互区分的事物。 如商品、库存、职员等 属性:实体某一方面特性的描述。 如商品的属性:编号、名称、生产日期、生产厂商 职员的属性:姓名、年龄、性别、电话等 属性值:属性具体的值。 如某个职员的姓名属性的值是“张丽”,性别是“女” 属性值的域:属性值的取值范围。 性别属性值的域是“男”,“女”,实体型:一个实体就是一些具体属性值的集合,而属性的集合则描述了某类实体的共同特征,称为实体型 如:教师(教师编号,教师姓名,性别,出生年份,工作年限,工资)就是一个实体型 实体集:同类型实体的集合。 如一个公司的所有职员就是一个实体集 联系:在现实世界中事物间的联系称为联系,实体间的联系,(1)一对一联系 如果对于实体集A中的每个实体,实体集B 中至多有一个(可以没有)与之相对应,反之亦然,则称实体集A与实体集B具有一对一联系,记作:1:1。 例如:学院的集合和院长的集合 (2)一对多联系 如果对于实体集A中的每个实体,实体集B中有n个实体(n0)与之相对应,反过来,实体集B中的每个实体,实体集A中至多只有一个实体与之联系, 则称实体集A与实体集B具有一对多联系。记作:1:n。 例如:学院的集合和班级的集合 (3)多对多联系 如果对于实体集A中的每个实体,实体集B中有n个实体(n0)与之相对应,反过来,实体集B中的每个实体,实体集A中也有m个实体(m0)与之联系,则称实体集A与实体集B具有多对多联系,记作:m:n 例如:学生的集合和学生社团的集合,实体集1,联系名,实体集2,1,1,1:1联系,实体集1,联系名,实体集2,m,n,m:n联系,实体集1,联系名,实体集2,1,n,1:n联系,实体间的联系,E-R图的画法,实体:用矩形表示实体,矩形内写上实体名字。 属性:用椭圆形表示属性,椭圆形内写上属性的名称。为简化起见,通常可以省略实体的属性。 联系:用菱形表示联系,菱形内写上联系名。 实体与属性之间的联接关系:用无向线段连接实体及其属性。联系也有属性,也可以用无向线段表示 实体与联系间的联接关系:用无向线段表示。,E-R图示例,以教学情况为例来建立概念模型: 其中涉及的对象(实体型)有学生、教师、课程, 实体间的联系包括选课、授课联系。 学校开设若干门课程, 每位教师可以教授任意门课程, 每门课程只有一位老师授课, 每个学生可以选修任意门课程, 每门课程可由任意名学生选修。,学校教学情况E-R图,7.2.3 层次模型,用树状结构表示实体及实体间的联系。 方框代表实体,连线代表联系,层次模型,层次模型特点: (1)有且仅有一个结点无父结点,该结点称为根; (2)根以外的其他节点有且只有一个双亲节点。 (3)所有结点都可以有若干个子结点 层次模型表示1:n联系非常简便,这是它的突出优点,但是它不能直接表示m:n的联系。,用网状结构表示实体及实体间的联系。,网状模型有如下几个特点: (1)可以有一个或多个结点没有父亲结点。 (2)至少有一个结点有多个父亲结点。 能表示多对多联系,7.2.4网状模型,元组,属性,7.2.5 关系模型(重点),1、关系模型的数据结构 是用二维表来表示实体本身及其相互之间的联系 一个二维表称作一个关系,由行与列构成。 元组:表中的一行(一条记录) 属性:表中的一列(字段、数据项),关系模式 关系的属性名表 R(A1, A2, , An) 举例: 学生课程(学号,姓名,所在学院,院地址,课程号,课程名,学习成绩),在关系模型中,实体是用关系来表示的,如: 学生(学号,姓名,性别,年龄,系别) 课程(课程号,课程名,课时) 实体间的联系也是用关系来表示的,如: 选课关系(学号,课程号,成绩) 通常,一对一联系和一对多联系隐含在实体对应的关系中,可以不必再用关系表示。,关系具有以下六条性质: (1)属性的不可分割性 (2)属性名的不可重复性 (3)属性的次序无关性 (4)元组的个数有限性 (5)元组的不可重复性 (6)元组的次序无关性,不是一个关系,2、关系操作,关系操作采用集合操作,即操作的对象和结果都是集合。 关系模型中常用的关系操作包括:选择、投影、连接、除、并、交、差等查询操作和增、删、改操作两大部分。查询的表达能力是其中最主要的部分。 详细参阅关系代数部分。,3、关系中的数据约束,(1)实体完整性基本关系的主属性不能取空值 一个基本关系通常对应现实世界的一个实体集。例如,学生关系对应于学生的集合。 现实世界中实体是可以区分的,即它们具有某种唯一性标识。 关系模型中由主码作为唯一性标识。 主码不能取空值。因为主码取空值说明存在某个不可标识的实体。,(2)参照完整性 若基本关系R中含有与另一基本关系S的主码Ks相对应的属性组F(F称为R的外部码),则对于R中每个元组F上的值必须为: 或者取空值(F的每个属性值均为空值); 或者等于S中某个元组的主码值。 关系S的主码Ks和F定义在同一个(或一组)域上,主关键字,外部关键字,示例:参照完整性,部门关系(部门号,部门名称),主码是部门号 职工关系(职工号,姓名,部门号),主码是职工号,部门号是它的外部码。 在职工关系中职工关系中每个元组的部门号取值允许有两种可能: 取空值。这说明这个职工尚未分配到某个部门; 若取非空值,则部门号的值必须是部门关系中某个元组中的部门号值,表示此职工不可能分配到一个不存在的部门中,即参照的部门关系中一定存在一个元组,它的主码值等于职工关系中的外部码值。,(3)用户定义的完整性 用户定义的完整性则是针对某一数据库的约束条件,由应用环境决定。它反映某一具体应用所涉及的数据必须满足的语义要求,例: 课程(课程号,课程名,学分) “课程名”属性必须取唯一值,不能为空 非主属性“课程名”也不能取空值 “学分”属性只能取值1,2,3,4,实体完整性,用户定义完整性,关系数据库已成为目前应用最广泛的数据库系统,如现在广泛使用的: 小型数据库系统Foxpro、Access 大型数据库系统Oracle、Informix、Sybase、SQL Server,、DB2等都是关系数据库系统。,7.3 关系代数,7.3.1 传统的集合运算 7.3.2 专门的关系运算 7.3.3 关系数据库规范化理论,7.3.1传统的集合运算(数学集合论),每个关系可以看作是若干元组(行)的集合。 设R和S均为n目关系。 1、交(intersection)运算 将两个关系中的公共元组构成新的关系。 关系R与S的交记作: RS=t|tRtS 其结果仍为n目关系,由既属于R又属于S的元组组成。,RS,n目指属性的个数(即列)的个数为n,属性域相同,R,S,R S,2、并(union) 是将两个关系中的所有元组构成新的关系,并且运算的结果中必须消除重复值。 关系R和S的并记作: RS=t|tRtS 其结果仍为n目关系,由属于R或属于S的元组组成。,R,S,RS,R,S,R-S,4、广义笛卡儿积(Extended Cartesian Product),R:n目关系,k1个元组 S:m目关系,k2个元组 RS 列:(n+m)列的元组的集合 元组的前n列是关系R的一个元组 后m列是关系S的一个元组 行:k1k2个元组,R,S,R S,7.3.2专门的关系运算,1、选择运算 在指定的关系中选取所有满足给定条件的元组,构成一个新的关系。 这个新的关系是原关系的一个子集。 记作: Rg = r | r R g(r)为真 或g (R) = r | r R g(r)为真 R是关系名 g为一个逻辑表达式,由逻辑运算符或and(与)、或or(或)、或not(非)连接各算术比较表达式组成 为选择运算符,关系 Student,例1:Sdept = IS (Student) 在关系Student中,查询所在系为IS的所有学生,例2 查询年龄小于20岁的学生 Sage 20(Student) 或 4 20(Student) 结果:,A5(R),A5 C=7(R),R,例3,选择运算是从行的角度进行的运算,2、投影运算(Projection),投影运算是从给定的关系中保留指定的属性子集而删去其余属性的操作。 设定某关系 R(X),X是R的属性集,A是X的一个子集,则R在A上的投影可表示成: A(R) tA | tR 其中tA表示只取元组 t中相应A属性中的分量。,例:设有学生关系Student,Student,例 查询学生的姓名和所在系 即求Student关系上学生姓名和所在系两个属性上的投影,即: Sname,Sdept(Student),投影操作主要是从列的角度进行运算,联接运算是从两个关系的笛卡儿积中选取属性间满足一定条件的元组,可记作: 其中A是关系R中的属性组,B是关系S中的属性组,它们的属性可比较,为算术比较运算符(即,=,)。,3、联接运算(Join),为“”的连接运算称为等值连接:,关系运算等值连接运算,自然连接是一种特殊的等值连接。 要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。,关系运算自然连接运算,图书借阅系统 三张表:book、student、borrow,查询借阅了书号为ISDN100的学生的姓名和班级 查询借阅了书名为计算机应用基础的学生信息,7.3.3关系数据库的规范化理论,一、问题: 关系数据库是由若干个相关的表组织存储数据的。当数据库中需要存储大量相关数据的时候,各个关系表中可能产生字段和数据的重复,数据冗余大,数据的更新不一致等。 如果一个关系模式设计得不好,将会产生数据冗余、异常、不一致等问题。 数据重复存放造成空间浪费称为“数据冗余”。 数据冗余将对系统的性能产生重大影响。,关系模式的冗余和异常问题,例: 设有一个关系模式R(教师名称,地址, 课程号, 课程名称),想一想,这个模式在使用过程中会出现哪些问题?,数据冗余。如果一个教师教几门课程,那么这个教师的地址就要重复几次存储。 操作异常。由于数据的冗余,在对数据操作时会引起各种异常: 修改异常。如教师t1教三门课程,在关系中就会有三个元组。如果他的地址变了,这三个元组中的地址都要改变。若有一个元组中的地址未更改,就会造成这个教师的地址不惟一,产生不一致现象。 插入异常。如果一个教师刚调来,尚未分派教学任务,那么要将教师的姓名和地址存储到关系中去时,在属性课程号和课程名称上就没有值(空值)。 删除异常。如果要取消教师t3的教学任务,那么就要把这个教师的元组删去,同时也把t3的地址信息从表中删去了。,解决方法:把关系模式 R分解为以下两个关系模式:,“分解”是解决冗余的主要方法,也是规范化的一条原则。,冗余和异常是否还存在?,规范化的基本思想,逐步消除不合理的数据依赖,使模式中的个关系模式达到某种程度的“分离”。,二、函数依赖,1、函数依赖 2、完全函数依赖 3、传递依赖,三、关系范式,1、第一范式(1NF) 对于给定的关系R,如果R中每个属性都是不可再分的,则称关系R属于第一范式,记作:R1NF。 例:将下表规范成lNF。,2、第二范式(2NF) 若R1NF,且每一个非主属性完全依赖主属性(主关键字),则为第二范式,记作R2NF。,学生表,学生表,成绩表,3、第三范式(3NF) 若R2NF,且每一个非主属性既不部分依赖于主关键字,也不传递依赖于主关键字,则称R为第三范式,记作R3NF,藏书信息表,藏书信息表,类别名,第一范式,第二范式,第三范式,约束渐强,关系数据库的规范化理论,7.4 数据库设计,7.4.1 数据库设计概述 7.4.2 数据库设计的需求分析 7.4.3 数据库概念设计 7.4.4 数据库的逻辑设计 7.4.5 数据库的物理

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论