数据库是数据管理的有效技术, 是计算机科学的重要分支。
首先介绍一些数据库最常用的术语和基本概念。
数据、数据库、数据库管理系统和数据库系统是数据库技术中的4个基本概念。
数据(data)
数据是数据库中存储的基本对象。
广义上,数据的种类很多, 如文本(text),图形(graph)、图像(image)、音频(audio)、视频(video)等。
可以对数据做如下定义:描述事物的符号记录称为数据。
数据和关于数据的解释是不可分的。数据的含义称为数据的语义,数据与其语义是不可分的。
数据库(DataBase ,DB)
数据库,顾名思义,是存放数据的仓库。
严格地讲,数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和存储。具有较小的冗余度(redundancy)、较高的数据独立性(data independency)和易扩展性(scalability), 并可为各种用户共享。
概括地讲, 数据库数据具有永久存储、有组织和可共享三个基本特点。
数据库管理系统(DataBase Management System, DBMS)
数据库管理系统就是一个科学地组织和存储数据,高效地获取和维护数据的系统软件。
数据库管理系统的主要功能包括以下几个方面:
数据库系统(DataBase System, DBS)
数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DataBase Administrator, DBA)组成的存储、管理、处理和维护数据的系统。
在一般不引起混淆的情况下, 人们常常把数据库系统简称为数据库。
数据库管理技术经历了人工管理、文件系统、数据库系统三个阶段。
与人工管理和文件系统相比, 数据库系统的特点主要有以下几个方面:
数据结构化
数据库系统实现整体数据的结构化,这是数据库的主要特征之一, 也是数据库系统与文件系统的本质区别。
数据的共享性高、冗余度低且易扩充
数据独立性高
数据由数据库管理系统统一管理和控制
综上所述, 数据库是长期存储在计算机内有组织、大量、共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。数据库管理系统在数据库建立、运用和维护时对数据库系统进行统一控制, 以保证数据的完整性和安全性, 并在多用户同时使用数据库时进行并发控制, 在发生故障后对数据库进行恢复。
数据模型(data model)也是一种模型, 它是对现实世界数据特征的抽象。也就是说数据模型是用来描述数据、组织数据和对数据进行操作的。
通俗的讲数据模型就是对现实世界的模拟。
现有的数据库系统均是基于某种数据模型的。数据模型是数据库系统的核心和基础。
数据模型应满足三方面要求:
根据模型应用的不同目的, 可以将这些模型分为两大类:
概念模型(conceptual model)
它是按用户的观点来对数据和信息建模, 主要用于数据库设计。
逻辑模型和物理模型
为了把现实世界的具体事务抽象、组织为某一数据库管理系统支持的数据模型,人们常常首先将现实世界抽象为信息世界, 然后将信息世界转化为机器世界。如下图所示:
概念模型实际上是现实世界到机器世界的一个中间层次。
概念模型用于信息世界的建模, 是现实世界到信息世界的第一层抽象。
1.信息世界中的基本概念
实体(entity):
客观存在并且可以相互区别的事务称为实体。
可以是具体的人、事、物也可以是抽象的概念或联系, 如:一个学生、一门课、学生的一次选课、教师与院系的工作关系。
属性(attribute)
实体所具有的某一特性称为属性。
一个实体可以由若干个属性来刻画。如:学生可以由学号、姓名、性别、出生年月等属性组成。
码(key)****
唯一标识实体的属性集称为码。
例如学号是学生实体的码。身份证号和学号也是学生的码
实体型(entity type)
用实体名及其属性名集合来抽象和刻画的同类实体, 称为实体型。
例如:学生(学号,姓名,性别,所在院系)。
实体集(entity set)
同一类型实体的集合称为实体集。
例如, 全体学生就是一个实体集。
联系(relationship)
在现实世界中,事务内部以及事务之间是有联系的,这些联系同在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。
实体内部的联系通常是指组成实体的个属性之间的联系, 实体之间联系通常是指不同实体集之间的联系。
实体之间的联系具有:、一对一、一对多、多对多等多种类型
概念模型的一种表示方法:实体-联系方法
概念模型是对信息世界建模, 所以概念模型应该能够方便、准确地表示出上述信息世界中地常用概念。概念模型的表示方法很多最常用的是实体-联系方法(Entity-Relationship approach)。该方法用E-R图来描述现实世界的概念模型, E-R方法也称为E-R模型。以下是一张ER图:
数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成。
数据库领域中主要的逻辑模型有:
其中层次模型和网状模型统称为个格式化模型。
层次数据库采用层次模型作为数据的组织方式。
层次模型用树形结构来表示各类实体以及实体间的联系。 现实世界中许多实体之间的联系本来就呈现出一种很自然的层次关系,如行政机构、家族关系等。
1.层次模型的数据结构
在数据库中定义满足下面两个条件的基本层次联系的集合为层次模型:
在层次模型中, **每个节点表示一个记录类型, 记录类型之间的联系用节点之间的连线(有向边)表示, 这种联系是父子之间的一对多的联系。**这就使得层次数据库只能处理一对多的实体联系。
层次模型的数据操纵与完整性约束
层次模型的数据操纵主要有查询、插入、三处和更新。进行插入、删除、更新
层次模型的优缺点:
有点:
缺点:
网状模型的数据结构
在数据库中, 把满足以下两个条件的基本层次联系集合称为网状模型:
表示方式(与层次数据模型相同)
实体型:用于记录类型描述。
每个节点表示一个记录类型。
属性:用字段描述。
每个记录类型可包含若干个字段。
联系:用结点之间的连线表示记录(类)型之间的一对多的父子联系。
层次模型中的子女节点与双亲节点的联系是唯一的, 而在网状模型中这种联系可以不唯一。
网状模型的数据操纵与完整性约束
网状模型的优缺点
优点:
缺点:
关系数据库系统采用关系模型作为数据的组织方式。
关系模型的数据结构
关系模型要求关系必须是规范化的, 即要满足一定的规范条件,这规范条件中最基本的一条就是, 关系的每一个分量必须是一个不可分的数据项。
关系模型的数据操纵
查询、插入、删除、更新。
数据操作是集合操作, 操作对象和操作结果都是关系, 即若干元组的集合
存取路径对用户隐蔽, 用户只要指出“干什么”或者“找什么”,不必详细说明“怎么干”或者"怎么找"
完整性约束
关系模型的优缺点
优点:
关系模型域格式化模型不同, 它是建立在严格的数学概念基础上的。
关系模型的概念单一
关系模型的存取路径对用户透明:
具有跟高的数据独立性,更好的安全保密性
简化了程序员的工作和数据库开发建立的工作
缺点:
键值对模型
能够灵活地管理非结构化数据
文档模型
能够灵活地管理半结构化数据
图模型
能够灵活地管理强关联数据(社交网络,知识图谱等)
不同角度:
数据库系统的内部系统结构:
从数据库应用开发人员角度来看, 数据库通常采用三级模式结构
数据库系统外部的体系结构
在数据库模式中有型和值得概念。
模式
通常都具有相同的特征, 即采用三级模式结构并提供两级映像功能。
模式
外模式
外模式也称子模式或用户模式, 它是数据库用户能够看见和使用的局部的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
外模式通常是模式的子集。一个数据库可以有多个外模式。一个外模式也可以为多个应用系统所使用。
外模式是保证数据库安全的一个有力措施,每个用户只能砍价和访问所对应的外模式中的数据,数据库照片那个的其余数据是不可见的。
数据库管理系统提供外模式数据定义语言(外模式DDL)来严格地定义外模式。
内模式
内模式也称存储模式, 一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内的组织方式。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OJOmVrjE-1584242746792)(C:\Users\12505\AppData\Local\Temp\1583806016500.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8yRaZaka-1584242746794)(C:\Users\12505\AppData\Local\Temp\1583808298892.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-70KFNzou-1584242746797)(C:\Users\12505\AppData\Local\Temp\1583806182998.png)]
外模式/模式映像
模式描述的是数据的全局逻辑结构, 外模式描述的是数据的局部逻辑结构。
一个模式可以有任意多个外模式。
对于每个外模式, 数据库系统都有一个外模式/模式映像, 它定义了该外模式与模式之间的对应关系。这些映像通常包含在各自外模式的描述中。
当模式改变时(如增减新的属性、关系),管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变,医用程序也不必修改,保证了数据与程序的逻辑独立性。
模式/内模式映像
数据库只有一个模式, 也只有一个内模式, 所以模式/内模式映像是唯一的。
它定义了数据全局逻辑结构与存储结构之间的对应关系。该映像通常包含在模式的描述中。
当数据库存储结构改变时, 由数据库管理员对模式/内模式映像作相应改变,可以保持模式不变,从而应用程序也不改变。保证了数据与程序的物理独立性。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XbfSLKzJ-1584242746799)(C:\Users\12505\AppData\Local\Temp\1583807046356.png)]
数据库系统一般由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员构成。
软件
数据库系统的软件主要包括:
人员
人员主要包括:
----
- 数据库管理员:
职责:
- 决定数据库中的信息内容和结构
- 决定数据库的存储结构和存取策略
- 定义数据的安全性要求和完整性约束条件
- 监控数据库的使用和运行
- 数据库的改建和重组、重构
- 系统分析员和数据库设计人员
- 应用程序员
负责设计和编写应用系统的程序模块, 并进行调试和安装。
- 用户:
- 偶然用户
- 简单用户
- 复杂用户