一、数据库系统的标准结构
(一)数据库系统的分层抽象
DBMS管理数据的三个层次
- External Level = User Level
某一用户能够看到与处理的数据,全局数据的一部分(全局数据中的某个映射) - Conceptual Level = Logic level
从全局角度理解/管理的数据,含相应的关联约束 - Internal Level = Physical level
存储在介质上的数据,含存储路径,存储方式,索引方式等
(二)数据(视图)与模式
数据与数据的结构——模式
- 模式(Schema)
对数据库中数据所进行的一种结构性的描述;所观察到数据的结构信息 - 视图(view)/数据(Data)
某一种表现形式表现出来的数据库中的数据
模式是对视图和数据的抽象,视图和数据是对模式的一种实例化表示。(模式下的一种数据)
(三)三级模式(三级视图)两层映像
- External Schema —— (External) View
某用户能够看到与处理的数据的结构描述 - Conceptual Schema —— Conceptual View
从全局角度理解/管理的数据的结构描述,含相应的关联约束体现在数据之间的内在本质联系。 - Internal Schema —— Internal View
存储在介质上的数据的结构描述,含存储路径、存储方式、索引方式等
【从结构的角度来考虑叫做模式,从存储的数据的角度来考虑叫做视图】
如果简单的说模式Schema的话是Conceptual全局模式,如果简单的说视图View的话,指的是外部视图External(因为最终展现给用户的是外部视图)
(四)数据库系统的标准结构
对于Internal View的结构化描述,在Internal View外部框起来的叫做其Internal Schema(也称为存储模式、存储结构)
上面黑色的是用户对应用程序的开发。
当开发应用程序的时候不是依据Conceptual View来开发的,而是根据External View来开发的。
原因:两个独立性
(五)两个独立性
【相当于封装】
- 逻辑数据独立性
当概念模型变化时,可以不改变外部模式(只需改变ECMapping),从而无需改变应用程序 - 物理数据独立性
当内部模型变化时,可以不改变概念模式(只需改变CIMapping),从而不改变外部模式
二、什么是数据模型
(一)数据模型的概念
数据模型vs模式vs数据???
模式是用来描述数据的结构的,数据模型是用来描述模式的结构的。
数据模型:
- 规定模式统一描述方式的模型,包括:数据结构、操作和约束
- 数据模型是对模式本身结构的抽象,模式是对数据本身结构的抽象
eg:
关系模型:所有模式都可为抽象表Table的形式【数据结构】,而每一个具体的模式都是拥有不同列名的具体的表。对这种表形式的数据有哪些【操作】和【约束】
(二)三大经典数据模型
- 关系模型:表的形式组织数据
- 层次模型:树的形式组织数据
- 网状模型:图的形式组织数据
相当于一个空的已经划分好的表,关系模型的模式就是往表里填表头,关系模型的数据就是根据填的表头再往里填数据。
对每个结点的结构描述称作实体型,通常是描述一条记录的结构的形式。链接两个实体型的叫做系型,指出了两个实体型的联系,一般用指针实现。
根据指针的指向来确定每个数据的含义。
对于网状模型来讲,指针是需要用户来建立的,不建立指针是找不到数据的。
【尽管层次模型和网状模型使用的不多了,但是这种思想应该了解】
三、数据库系统的演变
【要深刻的理解为什么从一个阶段发展到了另一个阶段】
最开始是文件系统,一开始OS使应用程序和磁盘读写隔离开,直接使用OS的文件系统部分,文件是OS管理数据的一种方式,基于OS进行编写。
数据和应用程序紧耦合,bad
OS的文件读写操作针对的不是应用程序了,而是DBMS,然后DBMS提供一种语言来具体操作数据,应用程序使用数据库语言时,DBMS将其翻译成底层的操作。
记录是依靠用户建立指针进行的,每次只能进行一条记录的操作。
数据是靠表进行描述的,数据之间的关联关系也是靠表中的属性进行描述的。数据的检索不需要指针。只需要告诉DBMS我要作什么,具体要做什么需要DBMS来进行。消除了指针。
关系的第一范式就是数据项的不可再分性。比如说姓名,就只能有一个如果下面再有firstname 、lastname就不可以。要不就是只有name,要不就是只有firstname和lastname。
不允许复合属性。而且一个记录不是一个单一的数据值而是多个也不行,这样也不满足第一范式,必须是单一的数据值
关系数据库发展成对象关系数据库、面向对象数据库就是根据上面的不足来实现的,用对象来封装复合属性、多值属性,结构对象就是复合属性所对应的,聚集对象就是一个对象的值集合所对应的。
除了数据本身以外还对数据的含义以标记的形式反映出来。XML数据库和关系模型之间的转化也是需要考虑的内容。
总结
三级模式两层映像——主要实现了数据库物理独立性和逻辑独立性。
数据库的物理独立性指的是存储在磁盘上的数据可以使用任意一种DBMS进行管理,逻辑独立性指的是当全局模式发生改变时,不需要改变应用程序的模型。然后就是数据模型的分类。