教材:数据库系统教程(第三版)湖南工业大学计算机与通信学院数据库原理第一章数据库概论(2)教学内容:数据描述:数据模型:数据库管理系统(DBMS)各阶段中数据描述的术语,概念设计中实体间联系的描述。数据模型,逻辑模型的形式定义,ER模型,层次模型、网状模型、关系模型和面向对象模型的数据结构以及联系的实现方式。一、数据模型的概念:模型(model):对现实世界的抽象。数据模型:描述数据库的结构和语义,对现实世界的数据进行抽象。从现实世界的信息到数据库存储的数据以及用户使用的数据是一个逐步抽象过程。目前广泛使用的数据模型有4种:概念数据模型(实体联系模型)逻辑数据模型(结构数据模型)外部数据模型(概念模型的支持)内部数据模型(物理模型)§1.4数据模型数据抽象的过程(1)定义1.7–表达用户需求观点的数据全局逻辑结构的模型,称为“概念模型”。–表达计算机实现观点的DB全局逻辑结构的模型,称为“逻辑模型”。–表达用户使用观点的DB局部逻辑结构的模型,称为“外部模型”。–表达DB物理结构的模型,称为“内部模型”。数据抽象的过程(2)综合转换应用1应用3应用2逻辑模型内部模型外部模型3外部模型2外部模型1映像映像DB概念模型用户需求用户需求用户1用户3用户2用户需求图1.12四种模型之间的相互关系数据抽象的过程(3)第1步:根据用户需求,设计数据库的概念模型,这是一个“综合”的过程。第2步:根据转换规则,把概念模型转换成数据库的逻辑模型,这是一个“转换”的过程。第3步:根据用户的业务特点,设计不同的外部模型,给程序员使用。第4步:数据库实现时,要根据逻辑模型设计其内部模型。独立于计算机系统的模型,用于建立信息世界的数据模型。表达了数据的整体逻辑结构,它是系统用户对整个应用项目涉及的数据的全面描述。从用户需求的观点出发,对数据建模。数据库设计人员与用户之间进行交流的工具。概念数据模型在ER模型中有四个基本成分:矩形框表示实体类型;菱形框表示联系类型(实体间的联系);椭圆形框表示实体类型和联系类型的属性;用直线连接:实体与属性;联系与属性;实体与实体;相应的命名均记入各种框中。对于关键码的属性,在属性名下划一横线。1、概念数据模型--实体联系模型(ER模型)ER模型是P.P.Chen于1976年提出的。这个模型直接从现实世界中抽象出实体类型及实体间联系,然后用实体联系图(ER图)表示数据模型。设计ER图的方法称为ER方法。收银员商品PN顾客销售M数量三元联系:商店商品仓库进货PNM数量三元联系:建立ER模型的步骤如下:首先确定实体类型和联系类型,接着把实体类型和联系类型组合成ER图;然后确定实体类型和联系类型的属性,再确定实体类型的键,在属于键的属性名下划一横线。举例:P17图1.132.逻辑数据模型:在选定DBMS软件后,就要将概念模型按照选定的DBMS的特点转换成逻辑模型。逻辑数据模型包含:数据结构、数据操作和数据完整性约束。逻辑模型具有下列特点:(1)逻辑模型表达了DB的整体逻辑结构,但它是设计人员对整个应用项目数据库的全面描述。(2)逻辑模型是从数据库实现的观点出发,对数据建模。(3)逻辑模型独立于硬件,但依赖于软件(DBMS)。(4)逻辑模型是数据库设计人员与应用程序员之间进行交流的工具。逻辑数据模型主要有:层次模型网状模型(网络模型)关系模型对象模型(1)层次模型:用树型结构表示实体类型及实体之间联系的模型称为层次模型。①定义:层次模型是以记录型为结点,记录型之间的联系为边的有向树结构。②层次模型的特点:只有一个根结点无父结点。每个非根结点只有一个父结点;上一层记录类型和下一层记录类型间联系是1:N联系。系记录型教研室记录型教师简介记录型开设课程记录型人事记录型工资记录型开设记录型层次模型的优点:易于实现,查询效率高。缺点:M:N联系较难实现,编写应用程序也复杂。⑵网状模型用有向图结构表示实体类型及实体间联系的模型称为网状模型。①定义:网状模型是以记录型为结点,记录型之间的联系为边的有向图结构。②网状模型的特点:允许有一个以上的结点无双亲;结点可以有多于一个的双亲;结点间可有两种或多种联系。学习教师课程学生网状模型的优点:容易实现M:N联系,查询效率高。缺点:程序员必须熟悉数据库的逻辑结构才能编写相应的应用程序。⑶关系模型用二维表格结构来表示实体集,外键表示实体间联系的模型称为关系模型。关系模型是由若干个关系模式组成的集合,关系模式相当于记录类型,它的每一个实例称为关系。每个关系实际上就是一张二维表格。关系模型和层次、网络模型的最大差别是用关键码而不是用指针导航数据,表格简单,用户易懂,编写程序是并不涉及存储结构、访问技术等问题。学生关系模式S(SNO,SNAME,AGE,SEX,SDEPT)课程关系模式C(CNO,CNAME,CDEPT,TNAME)学习关系模式SC(SNO,CNO,GRADE)SNOSNAMEAGESEXSDEPTS1程宏19男计算机S3刘莎莎18女通讯S4李刚畸20男法学S6蒋天云19男国际贸易S9王莉21女计算机CNOCNAMECDEPTTNAMEC2离散数学计算机汪宏伟C3高等数学通讯钱红C4数据结构计算机马良C1计算机原理计算机李兵SNOCNOGRADES3C387S1C288S4C379S9C483S1C376S6C368S1C178S6C188S3C264S1C486S9C278关系模型的特点关系模型和层次、网状模型的最大差别是用关键码而不是用指针导航数据,其表格简单,用户易懂,用户只需用简单的查询语句就可以对数据库进行操作,并不涉及存储结构、访问技术等细节。关系模型是数学化的模型。由于把表格看成一个集合,因此集合论、数理逻辑等知识可引入到关系模型中来。⑷面向对象模型面向对象模型较完整地描述了现实世界的数据结构,能支持各类新的应用需求所满足的数据类型、能表达递归和嵌套的数据结构。面向对象模型的基本概念是:对象、类。类StudentSNOSNAMESEXAGE类COURSECNOCNAMETEACHER类SCSNOCNOGRADE四种逻辑模型的比较层次模型网状模型关系模型面向对象模型创始1968年IBM公司的IMS系统1969年CODASYL的DBTG报告(1971年通过)1970年E.F.Codd提出关系模型20世纪80年代数据结构复杂(树结构)复杂(有向图结构)简单(二维表)复杂(嵌套、递归)数据联系通过指针通过指针通过表间的公共属性通过对象标识查询语言过程性语言过程性语言非过程性语言面向对象语言典型产品IMSIDS/ⅡIMAGE/3000IDMSTOTALOracleSybaseDB2SQLServerInformixONTOSDB盛行期20世纪70年代70年代至80年代中期80年代至现在90年代至现在外部模型图1.18所示的关系模型由TEACHER、COURSE、STUDENT和SC等四个关系模式组成。外部模型中的模式称为“视图”(View)。学生视图STUDENT_VIEW(S#,SNAME,C#,CNAME,SCORE,T#,TNAME)教师视图TEACHER_VIEW(T#,TNAME,C#,CNAME,S#,SNAME,SEX,SCORE)外部模型外部模型具有如下的特点:(1)外部模型是逻辑模型的一个逻辑子集。(2)外部模型独立于硬件,依赖于软件。(3)外部模型反映了用户使用数据库的观点。从整个系统考察,外部模型具有下列优点:(1)简化了用户的观点。(2)有助于数据库的安全性保护。(3)外部模型是对概念模型的支持。内部模型内部模型又称为物理模型,是数据库最低层的抽象,它描述数据在磁盘或磁带上的存储方式(文件的结构)、存取设备(外存的空间分配)和存取方法(主索引和辅助索引)。内部模型是与硬件和软件紧密相连的。在层次、网状模型设计时,要精心设计内部模型,以提高系统的效率。但随着计算机软、硬件性能的大幅度提高,并且目前占绝对优势的关系模型是以逻辑级为目标,因而可以不必考虑内部级的设计细节,由系统自动实现。三层模式和两级映像(1)三层模式体系结构定义1.9从用户(或应用程序)到数据库之间,DB的数据结构描述有三个层次:①外模式是用户与数据库系统的接口,是用户用到的那部分数据的描述。外模式由若干个外部记录类型组成。②逻辑模式是数据库中全部数据的整体逻辑结构的描述。它由若干个逻辑记录类型组成,还包含记录间联系、数据的完整性、安全性等要求。③内模式是数据库在物理存储方面的描述,定义所有内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。三层模式和两级映像(2)三层模式体系结构具有以下特点:(1)用户使用DB的数据操纵语言(DML)语句对数据库进行操作,实际上是对外模式的外部记录进行操作。(2)逻辑模式必须不涉及到存储结构、访问技术等细节。数据按外模式的描述提供给用户,按内模式的描述存储在磁盘中,而逻辑模式提供了连接这两级的相对稳定的中间观点,并使得两级中任何一级的改变都不受另一级的牵制。(3)内模式并不涉及到物理设备的约束。三层模式和两级映像(3)两级映像定义1.10三层模式之间存在着两级映像:①外模式/逻辑模式映像存在于外部模式和逻辑模式之间,用于定义外模式和逻辑模式之间的对应性。这个映像一般是放在外模式中描述的。②逻辑模式/内模式映像存在于逻辑模式和内模式之间,用于定义逻辑模式和内模式之间的对应性。这个映像一般是放在内模式中描述的。数据库的三层模式和两级映像结构称为“数据库的体系结构”,有时亦称为“三层模式结构”,或“数据抽象的三个级别”。这个结构早先是在1971年通过的DBTG报告中提出,后来收入在1975年的ANSI/X3/SPARC报告中。高度的数据独立性定义1.11数据独立性是指应用程序和数据库的数据结构之间相互独立,不受影响。在修改数据结构时,尽可能不修改应用程序,则称系统达到了数据独立性目标。(1)物理数据独立性:对内模式的修改尽量不影响逻辑模式、外模式和应用程序,我们称数据库达到了物理数据独立性(简称物理独立性)。(2)逻辑数据独立性:对逻辑模式的修改尽量不影响外模式和应用程序,我们称数据库达到了逻辑数据独立性(简称逻辑独立性)。数据库的三层模式结构是一个理想的结构,使数据库系统达到了高度的数据独立性。高度的数据独立性(2)用户(应用程序)…用户记录…外部记录…逻辑记录…内部记录…物理记录结构一致,只是数据传输问题。结构不一致,除了数据传输,还需格式转换。结构一致,只是数据传输问题。外模式/逻辑模式映像逻辑模式/内模式映像外模式逻辑模式内模式DB图1.21数据抽象各个层次中记录的联系§3数据库管理系统(DBMS)一、DBMS的工作模式应用程序DBMSDB数据请求低层指令数据(处理结果)数据(查询结果)DBOSDBMS数据字典应用程序DB的系统缓冲区外模式模式内模式用户访问数据的过程:二、DBMS的主要功能1.数据库的定义功能-使用DDL2.数据库的操纵功能-使用DML3.数据库的保护功能4.数据库的维护功能数据库的恢复;数据库的并发控制;数据完整性控制;数据安全性控制;DBMS的其他保护功能还有系统缓冲区的管理以及数据存储的某些自适应调节机制等。包括数据库的数据载入、转换、转储,数据库的改组以及性能监控等功能。5.数据字典存放三层结构定义的数据库称为数据字典,对数据库的操作要通过DD才能实现三、DBMS的模块组成从模块结构来观察,DBMS由两大部分组成:查询处理器和存储管理器。(1)查询处理器有四个主要成分:DDL编译器,DML编译器,嵌入式DML的预编译器及查询运行核心程序。(2)存储管理器有四个主要成分:权限和完整性管理器,事务管理器,文件管理器及缓冲区管理器。查询处理器存储管理器应用程序目标码嵌入型DML预编译器DML编译器DDL编译器查询运行核心程序权限和完整性管理器事务管理器缓冲区管理器文件管理器数据库管理系统:模块结构§3DBS的组成(1)DBS是采用了数据库技术的计算机系统。DBS是一个实际可运行的,按照