绪论
数据库
数据库的四个基本概念
数据
说明:数据是数据库中存储的基本对象(元素)。
定义:描述 事物的符号记录 称为数据。
描述:
- 现实世界:自然语言
- 认知表现:概念模型、逻辑模型
- 计算机中:物理模型
数据的解释:对数据含义的说明。(如 93 个一表示一门成绩,也可表示体重等)
数据的含义:又称为数据的语义,数据与其语义不可分割。
记录:是计算机中表示和存储数据的一种格式或一种方法。
数据库(DataBase,DB)
定义:数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的 数据模型 组织、描述和储存,具有冗余度(redundancy)、较高的数据独立性(data independency)和易扩展性(scalability),并可为各种用户分享。
特点: 有组织、可共享、长期存储 、低冗余、便于使用和管理。
数据库管理系统(DataBase Management System,DBMS)
定义:是位于用户与操作系统之间的一层数据管理软件。
主要任务:如何科学组织和存储数据,如何高效获取和维护数据。
功能:
- 数据定义的功能
- 数据组织、存储和管理
- 数据操纵功能
- 数据库的事务管理和运行
- 数据库的建立和维护功能
- 其他功能(通信、数据交换、异构数据库的互访和操作)
数据库系统(DataBase System,DBS)
定义:是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DataBase Administrator,DBA)组成的存储、管理、处理和维护数据的系统。
又有定义:是指在计算机系统中引入数据库后的系统,一般由 数据库、数据库管理系统、操作系统、开发工具、应用系统、数据库管理员、用户 构成。
数据库管理技术的演变
人工管理阶段 | 文件系统阶段 | 数据库系统阶段 | ||
---|---|---|---|---|
背景 | 应用背景 | 科学计算 | 科学计算、数据管理 | 大规模数据管理 |
硬件背景 | 无直接存取存储设备 | 磁盘、磁鼓 | 大容量磁盘、磁盘阵列 | |
软件背景 | 没有操作系统 | 有文件系统 | 有数据库管理系统 | |
处理方式 | 批处理 | 联机实时处理、批处理 | 联机实时处理、分布处理、批处理 | |
特点 | 数据的管理者 | 用户(程序员) | 文件系统 | 数据库管理系统 |
数据面向的对象 | 某一应用程序 | 某一应用 | 现实世界(一个部门、企业、跨国组织等) | |
数据的共享程度 | 无共享、冗余度极大 | 共享性差、冗余度大 | 共享性高、冗余度小 | |
数据的独立性 | 不独立、完全依赖于程序 | 独立性差 | 具有高度的物理独立性和一定的逻辑独立性 | |
数据的结构化 | 无结构 | 记录内有结构、整体无结构 | 整体结构化、用数据模型描述 | |
数据控制能力 | 应用程序自己控制 | 应用程序自己控制 | 由数据可管理系统提供数据安全性、完整性、并发控制和恢复能力 |
与文件系统的根本区别 :实现整体数据的结构化
数据模型
数据模型:是对现实世界数据特征的抽象。
现有的数据库系统均是基于某种数据模型。
数据模型是数据库系统的核心和基础。
两类数据模型
概念模型 :也称信息模型,是按用户的观点来对数据和信息建模,主要用于数据库设计。
逻辑模型和物理模型
- 逻辑模型:是按计算机系统的观点对数据建模,主要用于数据库管理系统的实现。包括层次模型、网状模型、关系模型、面向对象模型、对象关系数据模型、半结构化数据模型等
- 物理模型:是对数据最底层的抽象,它描述数据在系统内部的表示方式和存取方法,或在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。
概念模型
基本概念
- 实体(E):客观存在并可相互区别的事物称为实体。如:一个职工、一个部门等。
- 属性:实体所具有的某一特性称为属性。如:学生实体可以由学号、姓名、性别、出生日期等属性组成。
- 码(key):唯一标识实体的属性称为码。如:学号是学生实体的码,学号可唯一标识一名学生。
- 实体型:用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。如:学生(学号,姓名,性别,出生日期)。
- 实体集:同一类型实体的集合称为实体集合。如:全体学生就是一个实体集。
- 联系(R):实体间的联系一般指不同实体集之间的联系。实体之间的联系有一对一,一对多和多对多等多种类型。
概念模型的表示方法 :实体—联系方法,改方法用 E-R 图来描述现实世界的概念模型,E-R 方法也称为 E-R 图。
数据模型的组成要素
- 数据结构:描述数据库的组成对象以及对象之间的联系。是所描述的对象类型的集合,是对系统静态特性的描述。
- 数据操作:是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及操作有关的规则。
- 数据的完整性约束:数据的完整性约束是一组完整性的规则。例如,在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。
常用的数据模型
数据库领域中主要的逻辑数据模型有:
- 层次模型
- 网状模型
- 关系模型
- 面向对象数据模型
- 对象关系数据模型
- 半结构化数据模型
其中层次模型和网状模型统称为格式化模型。
在格式化模型中实体用记录表示,实体的属性对应记录的数据项(或字段)。实体之间的联系在格式化模型中转换成记录之间的亮亮关系。
在格式化模型中数据结构的单位是基本层次联系。所谓 基本层次联系 是指两个记录以及它们之间的一对多(包括一对一)的联系。
层次模型
在数据库中定义满足下面两个条件的基本层次联系的集合为层次模型
- 有且只有一个结点没有双亲结点,这个结点称为根结点;
- 根以外的其他结点有且只有一个双亲结点。
网状模型
在数据库中定义满足下面两个条件的基本层次联系的集合为层次模型
- 允许一个以上的结点无双亲;
- 一个结点可以有多于一个的双亲。
关系模型
关系数据模型是把现实世界信息需求的数据逻辑结构归结为满足一定条件的二维表的模型。一个二维表就是一个关系,描述问题的所有二维表的集合就构成了一个关系数据库。
术语
- 关系:一个关系对应通常说的一张表。如下表即为一个关系。
- 元组:表中的一行即为一个元组。
- 属性:表中的一列即为一个属性。如下表对应有五个属性(学号,姓名,年龄,性别,系名)。
- 码:也成为码键。表中的某个属性组,它可以唯一确定一个元组。如表中学号可以唯一确定一名学生,也就是本关系的码。
- 域:域是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。如人的年龄一般在 1~120 岁之间。
- 分量:元组中的一个属性值。
- 关系模式:对关系的描述,一般表示为:关系名(属性 1,属性 2,……,属性 n)。如表中的关系可以描述为:学生( 学号 ,姓名,年龄,性别,系名)
学号 | 姓名 | 年龄 | 性别 | 系名 |
---|---|---|---|---|
2024001 | 咸鱼 | 18 | 男 | 心理学 |
…… | …… | …… | …… | …… |
关系模型要求关系必须是规范化的,最重要的就是 关系的每一个分量都必须是一个不可分的数据项 ,也就是不可以表中有表。
数据库系统的结构
三级模式
在描述数据库的结构和特征时,引入 模式 (Schema)的概念,不涉及具体对象的值,从整体抽象地描述对象及其之间的联系。模式的一个具体值称为模式的一个实例,同一个模式可以有很多实例。 模式是相对稳定的,实例是动态变动的 。
通常从三个视角描述数据库,形成数据库的三个层次的模式:
- 局部视角(从某个用户的逻辑视角): 外模式 ,子模式或用户模式。
- 全局视角(从所有用户的逻辑视角): 模式 或逻辑模式。
- 物理储存视角: 内模式 或储存模式。
- 模式 :模式又称逻辑模式,是数据库中全体数据的 整体逻辑结构和特征 的描述,是所有用户全局视角的公共数据视图。它包含数据的逻辑结构(数据项及其名字、类型、取值范围)、数据间联系、 数据的完整性和安全性等要求。它不涉及数据的物理存储细节和硬件环境。也与具体的应用程序、所使用的开发工具无关。
- 外模式 :外模式又称子模式或用户模式,是数据库用户能够看见和使用的 局部数据的逻辑结构和特征 的描述。是某个数据库用户局部视角的数据视图,是与某一应用有关的数据的逻辑表示。外模式通常是模式的子集,一个数据库可以有多个外模式。 同一外模式可以为某个用户的多个应用系统使用,一个应用程序只能使用一个外模式 。
- 内模式 :内模式又称存储模式,是数据 物理结构和存储方式 的描述,是数据在物理存储视角即数据库内部的表示方式。它定义所有内部记录存储方式、索引和文件的组织方式,以及数据控制方面的细节。 一个数据库只有一个内模式 。
外模式可以有多个,内模式只能有一个
两级映射与数据独立性
数据按外模式的描述提供给用户,按内模式的描述存储在磁盘中 。
模式 提供了连接外模式和内模式这两级的 中间描述 ,并使得两级中任何一级的改变都不受另一级的牵制。
外模式/模式映像
一个数据库有多个外模式 。对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式的对应关系。当模式改变时,由数据库管理员对各个外模式/模式映像做相应的修改,可以使外模式不变,保证了数据与程序的逻辑独立性—— 数据的逻辑独立性 。
模式/内模式映像
一个数据库只有一个模式,也只有一个内模式。 这一映像是唯一的 ,用于定义数据全局逻辑结构与存储结构之间的对应关系。当数据库存储结构改变时,由数据库管理员对模式/内模式映像做相应的修改即可,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性—— 数据的物理独立性 。
数据和程序之间的独立性使得数据的定义和描述可以从应用程序中分离出去。同时,由于数据的存取由数据库管理,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。
数据库系统的组成
硬件平台及数据库
- 足够大的内存,存放 OS、DBMS 的核心模块,数据缓冲区和应用程序。
- 足够大的磁盘或磁盘阵列等设备存放数据库,足够大的磁带(或光盘)作数据备份。
- 系统有较高的通道能力,以提高数据传送率。
软件
- DBMS。
- 支持 DBMS 运行的 OS。
- 具有与数据库接口的高级语言及其编译系统,便于开发应用程序。
- 以 DBMS 为核心的应用开发工具。
- 为特定应用环境开发的数据库应用系统。
人员
数据库管理员(DataBase Administrator,DBA)
- 决定数据库中的信息内容和结构。
- 决定数据库的存储结构和存取策略。
- 定义数据的安全性要求和完整性约束条件。
- 监控数据库的使用和运行。
- 数据库的改进和重组、重构。
系统分析员和数据库设计人员
应用程序员
用户
- 偶然用户:不经常访问数据库。
- 简单用户:数据库的多数最终用户都是简单用户。
- 复杂用户:工程师、科学家等有较高科学技术背景的人员。