数据库的相关概念
- 数据独立性:指应用程序与数据库的数据结构之间相互独立。
- 数据库(DB):DB是长期存储在计算机内、有组织的、统一管理的相关数据的集合。
- 数据库管理系统(DBMS):是位于用户和操作系统之间的一层数据库管理软件,它为用户或应用程序提供访问DB的方法。
- 数据库系统(DBS):是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即它是采用数据库技术的计算机系统。
- 数据库技术:是研究数据库的结构、存储、设计、管理和使用的一门软件学科。
数据描述
数据描述历经三个阶段:概念设计、逻辑设计和物理设计。
概念设计和逻辑设计的术语对应关系:
概念设计 | 逻辑设计 |
实体(客观存在、可以互相区别的事物称为实体) | 记录(字段的有序集合称为记录) |
属性(实体有很多特性,一个特性称为一个属性) | 字段(标记实体属性的命名单位) |
实体集(性质相同的同类实体的集合) | 文件(同一类记录的集合称为文件) |
实体标识符(能唯一标识实体的属性或属性集) | 关键码(能唯一标识每条记录的字段或字段集) |
物理设计中的数据描述即为:位、字节、字、块、桶、卷。
数据联系的描述:
联系:是实体键的相互关系。与一个联系相关的实体集个数,成为联系的元数。例如有一元联系、二元联系、三元联系等。
数据抽象的级别
根据数据抽象级别定义了4种模型:概念数据模型、逻辑数据模型、外部数据模型和内部数据模型。
概念模型:
表达用户需求观点的数据全局逻辑结构称为概念模型。概念模型的抽象级别最高。
现在采用的概念模型主要是实体联系模型(ER图)。ER图有三个基本成分:
- 矩形框:用于标识实体模型(考虑问题的对象);
- 菱形框:用于表示联系模型(实体间联系);
- 椭圆形框:用于表示实体类型与联系类型的属性。
概念模型的四个特点:
- 表达了数据的整体逻辑结构;
- 从用户需求的观点出发,对数据建模;
- 独立于硬件和软件;
- 是数据库设计人员和用户之间进行交流的工具;
逻辑模型:
表达计算机实现观点的DB全局逻辑结构的模型称为逻辑模型。
逻辑模型具有下列特点:
- 表达了DB的整体逻辑结构,是设计人员对整个应用项目数据库的全面描述。
- 从数据库实现的观点出发对数据建模;
- 独立于硬件,但依赖于软件(DBMS);
- 是数据库设计人员和应用程序员之间交流的工具。
逻辑模型主要有层次、网状、关系和对象模型四种。
项目 | 层次模型 | 网状模型 | 关系模型 | 对象模型 |
创始 | 1968年 | 1969年 | 1970年 | 20世纪80年代 |
数据结构 | 复杂(树结构) | 复杂(有向图结构) | 简单(二维表) | 复杂(嵌套、递归) |
数据联系 | 通过指针 | 通过指针 | 通过表间的公共属性 | 通过对象标识 |
查询语言 | 过程性语言 | 过程性语言 | 非过程性语言 | 面向对象语言 |
优点 | 与文件系统相比查询效率较高 | M:N联系容易实现查询效率较高 | 操作简单,数据结构简单 | 具有丰富的表达能力 |
缺点 | 只能表示1:N的关系;层间关系复杂程序编写复杂 |
数据结构复杂,编程复杂 | 复杂问题领域不如对象模型 | m模型相对复杂,涉及的知识比较多 |
外部模型:
表达用户使用观点的DB局部逻辑结构的模型称为外部模型。
外部模型有以下几个特点:
- 是逻辑模型的一个子集;
- 独立于硬件,但依赖于软件;
- 反映了用户使用数据库的观点;
外部模型的优点:
- 简化了用户的观点;
- 有助于数据库的安全性维护;
- 是对概念模型的支持;
内部模型:
表达DB物理结构的模型称为内部模型。
内部模型又称为物理模型,是数据库最底层的抽象,它描述数据在磁盘或磁带上的存储方式、存取设备和存取方法。内部模型是和硬件和软件紧密相连的。
三层模式和两级抽象
三层模式体系结构
从用户(或应用程序)到数据库之间,DB的数据结构描述有三个层次:
- 外模式是用户和数据库系统的接口,是用户用到的那部分数据的描述;
- 逻辑模式是数据库中全部数据的整体逻辑结构的描述;
- 内模式是数据库在物理存储方面的描述。
三层模式体系结构有三个特点:
- 用户使用DB的数据操纵语言(DML)语句对数据库进行操作,实际上是对外模式的外部记录进行操作。例如读取一个记录值,实际读到的是一个外部记录值,而非数据库的内部记录值。有了外模式,程序员不必关心逻辑模式。实际上外模式是逻辑模式的逻辑子集。
- 逻辑模式必须不涉及存储结构、访问技术等细节。
- 内模式不涉及物理设备的约束。比内模式更接近物理存储和访问的那些软件机制是操作系统的一部分。
两级映像
- 外模式/逻辑模式映像:存在于外模式和逻辑模式之间,用于定义外模式和逻辑模式之间的对应性。这个映像一般是放在外模式中描述的。
- 逻辑模式/内模式映像:存在于逻辑模式和内模式之间,用于定义逻辑模式和内模式之间的对应性。这个映像一般是放在内模式中描述的。
高度的数据独立性
数据独立性是指应用程序与数据库的数据结构之间相互独立。在修改数据结构时,尽可能不修改应用程序。
- 物理数据独立性:如果数据库的内模式要修改,即数据库的物理结构有所变化,那么只要对逻辑模式/内模式映像做相应修改,可以使逻辑模式保存不变,当然对外模式和应用程序影响更小。这称为达到了物理独立性。
- 逻辑数据独立性:如果数据库的逻辑模式要修改,只要对外模式/逻辑模式映像做相应修改,可以使外模式和应用程序尽可能保存不变,这时称达到了逻辑独立性。