1-3-3

来源:百度文库 编辑:神马文学网 时间:2024/04/29 19:56:20

1.3.1 数据抽象的过程
1.四种模型的定义
(1)表达用户需求观点的数据全局逻辑结构的模型,称为“概念模型”。
(2)表达计算机实现观点的DB全局逻辑结构的模型,称为“逻辑模型”。
(3)表达用户使用观点的DB局部逻辑结构的模型,称为“外部模型”。
(4)表达DB物理结构的模型,称为“内部模型”。

2.四种模型之间的相互关系
',1)">
3.数据抽象的过程
(1)第1步:根据用户需求,设计数据库的概念模型,这是一个“综合”的过程(第1步称为DB的概念设计)。
(2)第2步:根据转换规则,把概念模型转换成数据库的逻辑模型,这是一个“转换”的过程。
(3)第3步:根据用户的业务特点,设计不同的外部模型,给程序员使用。也就是应用程序使用的是数据库的外部模型。外部模型与逻辑模型之间的对应性称为映像(第2、3步称为DB的逻辑设计)。
(4)第4步:数据库实现时,要根据逻辑模型设计其内部模型。内部模型与逻辑模型之间的对应性称为映像(第4步称为DB的物理设计)。
1.3.2 概念模型
1.概念模型的特点
(1)概念模型表达了数据的整体逻辑结构,它是系统用户对整个应用项目涉及的数据的全面描述。
(2)概念模型是从用户需求的观点出发,对数据建模。
(3)概念模型独立于硬件和软件。硬件独立意味着概念模型不依赖于硬件设备,软件独立意味着该模型不依赖于实现时的DBMS软件。因此硬件或软件的变化都不会影响DB的概念模型设计。
(4)概念模型是数据库设计人员与用户之间进行交流的工具。
2.ER模型
(1)ER图举例',2)">
(2)ER图的描述
①用矩形框表示(考虑问题的对象)。
②菱形框表示联系类型(实体间联系)。
③椭圆形框表示实体类型和联系类型的属性。
④相应的命名均记入各种框中。
⑤对于实体标识符的属性,在属性名下画一条横线。
⑥实体与属性之间,联系与属性之间用直线连接。
⑦联系类型与其涉及的实体类型之间也以直线相连,用来表示它们之间的联系,并在直线端部标注联系的类型(1:1,1:N或M:N)。
3.ER模型的两个明显优点
(1)一是简单,容易理解,真实地反映用户的需求。
(2)二是与计算机无关,用户容易接受。
(3)因此ER模型已成为软件工程的一个重要设计方法。
4.ER模型的缺点
(1)ER模型只能说明实体间语义的联系,还不能进一步说明详细的数据结构。
(2)数据库设计时,先设计ER模型,再转换成关系模型。
1.3.3 逻辑模型
1.逻辑模型的特点
(1)逻辑模型表达了DB的整体逻辑结构,是设计人员对整个应用项目数据库的全面描述。
(2)逻辑模型是从数据库实现的观点出发,对数据建模。
(3)逻辑模型独立于硬件,但依赖于软件(DBMS)。
(4)逻辑模型是数据库设计人员与应用程序员之间进行交流的工具。
2.层次模型(hierarchical model)
(1)层次模型的概念
①用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次模型。
②树的结点是记录类型,每个非根结点有且只有一个父结点。
③上一层记录类型和下一层记录类型之间的联系是1:N联系。
(2)层次模型实例


(3)层次模型的特点
①记录之间的联系通过指针来实现,查询效率较高。
②用户和设计者面对的是逻辑数据而不是物理数据,用户不必花费大量的精力考虑数据的物理细节。
③逻辑数据与物理数据之间的转换由DBMS完成。
(4)层次模型的缺点
①一是只能表示1:N联系,虽然系统有多种辅助手段实现M:N联系,但较复杂,用户不易掌握。
②二是由于层次顺序的严格和复杂,引起数据的查询和更新操作很复杂,因此应用程序的编写也比较复杂。
3.网状模型(network model)
(1)网状模型的概念
①用有向图结构表示实体类型及实体间联系的数据模型称为网状模型。
②1969年,CODASYL组织提出DBTG报告中的数据模型是网状模型的主要代表。
(2)网状模型例子
',3)">',4)">
(3)网状模型的特点
①记录之间联系通过指针实现,M:N联系也容易实现,查询效率较高。
②致命的缺点是数据结构复杂和编程复杂。
4.关系模型(relational model)
(1)关系模型的概念
①关系模型的主要特征是用二维表格表达实体集。
②与前两种模型相比,数据结构简单,容易为初学者理解。
③关系模型是由若干个关系模式(relational schema)组成的集合。
④关系模式相当于前面提到的记录类型,它的实例称为关系(relation),每个关系实际上是一张二维表格(table)。
(2)关系模型实例',5)">
(3)关系模型的特点
①关系模型和层次、网状模型的最大差别是用关键码而不是用指针导航数据。
②其表格简单,用户易懂。
③用户只需用简单的查询语句就可以对数据库进行操作,并不涉及存储结构、访问技术等细节。
④关系模型是数学化的模型,由于把表格看成一个集合,因此集合论、数理逻辑等知识可引入到关系模型中来。
(4)三种逻辑数据模型的比较

1.3.4 外部模型
1.外部模型的引出
(1)在应用系统中,常常是根据业务的特点划分成若干个业务单位。
(2)每一个业务单位都有特定的约束和需求。
(3)可以为不同的业务单位设计不同的外部模型。
2.实例
(1)由TEACHER、COURSE、STUDENT和SC等四个关系模式组成。
(2)为学生应用子系统设计一个外部模型(视图,view):STUDENT_VIEW(S#,SNAME,AGE,SEX,C#,CNAME,SCORE,T#,TNAME)。
(3)为教师应用子系统设计一个外部模型:TEACHER_VIEW(T#,TNAME,TITLE,C#,CNAME,S#,SNAME,SCORE)。
(4)视图只是一个定义,视图中的数据可以从逻辑模型的数据库中得到。
3.外部模型的特点
(1)外部模型是逻辑模型的一个逻辑子集。
(2)外部模型独立于硬件,依赖于软件。
(3)外部模型反映了用户使用数据库的观点。
4.外部模型的优点
(1)简化了用户的观点。
①外部模型是针对具体用户应用需要的数据而设计的。
②与该用户无关的数据就不必放入。
③这样用户就能比较简便地使用数据库。
(2)有助于数据库的安全性保护。
①用户不能看的数据,不放入外部模型。
②这样就提高了系统的安全性。
(3)外部模型是对概念模型的支持。
①如果用户使用外部模型得心应手。
②那么说明当初根据用户需求综合成的概念模型是正确的、完善的。
1.3.5 内部模型
(1)内部模型又称为物理模型,是数据库最低层的抽象。
(2)它描述数据在磁盘或磁带上的存储方式(文件的结构)、存取设备(外存的空间分配)和存取方法(主索引和辅助索引)。
(3)内部模型是与硬件和软件紧密相连的。
(4)因此,从事这个级别的设计人员必须具备全面的软、硬件知识。
(5)在层次、网状模型设计时,要精心设计内部模型,以提高系统的效率。
(6)但关系模型是以逻辑级为目标,因而可以不必考虑内部级的设计细节,由系统自动实现。
(7)这也是关系数据库能取代层次、网状系统并能得到广泛应用的重要原因之一。
1.3.6 三层模式和两级映像
1.三层模式体系结构
(1)从模型到模式。
①在用户(或应用程序)到数据库之间。
②DB的数据结构有三个层次(外部模型、逻辑模型和内部模型)。
③用DB的数据定义语言(Data Definition Language,简记为DDL)定义以后。
④称为“模式”(Schema,即外模式、逻辑模式和内模式)。
(2)DB的数据结构描述的三个层次。
①外模式。
a.外模式是用户与数据库系统的接口。
b.是用户用到的那部分数据的描述。
c.外模式由若干个外部记录类型组成。
②逻辑模式。
a.逻辑模式是数据库中全部数据的整体逻辑结构的描述。
b.它由若干个概念记录类型组成。
c.还包含记录间联系、数据的完整性安全性等要求。
③内模式。
a.内模式是数据库在物理存储方面的描述。
b.定义所有内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。
(3)三层模式体系结构的特点。
①用户使用DML语句对外模式的外部记录进行访问。
a.用户使用DB的数据操纵语言(Data Manipulation Language,简记为DML)语句对数据库进行操作。
b.实际上是对外模式的外部记录进行操作。
c.例如读一个记录值,实际上用户读到的是一个外部记录值(即逻辑值),而不是数据库的内部记录值。
②程序员只需关心外模式。
a.有了外模式后,程序员不必关心逻辑模式,只与外模式发生联系。
b.按照外模式的结构存储和操纵数据。
c.实际上,外模式是逻辑模式的逻辑子集。
③逻辑模式不涉及到存储结构、访问技术等细节。
a.数据按外模式的描述提供给用户,按内模式的描述存储在磁盘中。
b.而逻辑模式提供了连接这两级的相对稳定的中间观点。
c.并使得两级中任何一级的改变都不受另一级的牵制。
④内模式并不涉及到物理设备的约束。
a.比内模式更接近物理存储和访问的那些软件机制是操作系统的一部分(即文件系统)。
b.例如从磁盘读数据或写数据到磁盘上的操作等。
2.两级映像
(1)两级映像的引出。
①由于三层模式的数据结构可能不一致。
②即记录类型、字段类型的命名和组成可能不一样。
③因此需要三层模式之间的映像来说明外部记录、逻辑记录和内部记录之间的对应性。
(2)三层模式之间的两级映像。
①外模式/逻辑模式映像。
a.存在于外部式和逻辑模式之间。
b.用于定义外模式和逻辑模式之间的对应性。
c.这个映像一般放在外模式中描述。
②逻辑模式/内模式映像。
a.存在于逻辑模式和内模式之间。
b.用于定义逻辑模式和内模式之间的对应性。
c.这个映像一般放在内模式中描述的。
1.3.7 高度的数据独立性
1.数据独立性(data independence)。
(1)是指应用程序和数据库的数据结构之间相互独立,不受影响。
(2)在修改数据结构时,尽可能不修改应用程序,则称系统达到了数据独立性目标。
2.数据独立性的两个级别。
(1)物理数据独立性。
①如果数据库的内模式要修改,即数据库的物理结构有所变化。
②那么只要对逻辑模式/内模式映像(即“对应性”)作相应的修改。
③可以使逻辑模式尽可能保持不变。
④也就是对内模式的修改尽量不影响逻辑模式,当然对于外模式和应用程序的影响更小。
⑤这样,我们称数据库达到了物理数据独立性(简称物理独立性)。
(2)逻辑数据独立性。
①如果数据库的逻辑模式要修改,譬如增加记录类型或增加数据项。
②那么只要对外模式/逻辑模式映像作相应的修改。
③可以使外模式和应用程序尽可能保持不变。
④这样,我们称数据库达到了逻辑数据独立性(简称逻辑独立性)。
3.三层模式结构会给系统增加额外开销。
(1)要在系统中保存层级结构、两级映像的内容,并进行管理。
(2)用户与数据库之间数据传输要在三层结构中来回转换,增加了时间开销。
4.数据抽象各个层次中记录的联系。