目录:点我
一、数据库基本概念
1. 数据
数据(Data)是数据库中存储的基本对象,是描述事物的符号记录。数据可以是数字、文字、图形、图像、声音等。数据有多种形式,有语义,有结构。
2. 数据库
数据库(DataBase,DB)是存放数据的仓库,是长期存储在计算机内有组织的大量的共享的数据集合,可供各种用户共享,具有最小冗余度和较高数据独立性。
数据库的其它定义:
- DB 是存储在计算机系统中的数据。
- DB 是一个计算机化的记录存储的系统。
- DB 是相关文件的集合以及一组允许用户存取、修改这些文件的程序。
- DB 是供某个特定机构的应用系统使用的可操作数据的集合。
- DB 可看作是“各种数据用户都可去钓鱼的水库”。
3. 数据库管理系统
数据库管理系统(DataBase Management System,DBMS)是指数据库系统中管理数据的软件系统,是数据库系统的核心组成部分。对数据库的一切操作(定义、查询、更新及各种控制),都是通过DBMS进行的。
主要功能有:
- 建立:定义、组织和存储数据。
- 使用:增删改查。
- 维护:保证数据的安全性和完整性。
4. 数据库系统
数据库系统(DataBase System,DBS)是采用了数据库技术的计算机系统,包括 DB、DBMS、开发工具、 应用系统、硬件、软件、用户和数据库管理员(DBA)。
5. 数据处理与数据管理
- 数据处理:是对各种形式的数据进行收集、储存、加工和传播的一系列活动的总和。
- 数据管理:是指数据的分类、组织、编码、存储、维护、检索等操作,是数据处理的核心。
- 数据库技术是数据管理的高级技术。
二、数据管理技术的发展阶段
1. 人工管理阶段
背景:
- 外存:只有磁带、卡片和纸带
- 软件:无数据管理方面的软件
- 数据处理方式:批处理
特点:
- 数据不保存在机器中。
- 应用程序管理数据:没有专有的软件对数据进行管理,应用程序要规定数据的逻辑结构和物理结构。
- 数据不具有独立性:数据的逻辑结构或物理结构发生变化后,必须对应用程序做相应的修改。
- 数据不共享:数据面向程序,即一组数据对应一个程序,当多个应用涉及相同数据时,程序之间有大量的冗余数据。
2. 文件系统阶段
背景:
- 外存:已有磁盘等直接存取设备
- 软件:出现了高级语言和操作系统
- 数据处理方式:批处理、联机实时处理
特点:
- 数据可长期保存:在外存的磁盘中。
- 由文件系统管理数据:按文件名访问,按记录存取,使得应用程序不数据之间有了一定的独立性,数据间的联系弱。
- 数据共享性差,冗余度大:一个文件基本上对应一个应用程序,不同的应用程序具有相同的数据时,造成数据的冗余,以及由于重复存储,各自管理造成数据的不一致性。
- 数据独立性差:一旦数据的逻辑结构改变,必须修改应用程序,修改文件结构的定义。
3. 数据库系统阶段
标志:
- 1968年,美国 IBM 公司推出层次模型的 IMS 系统。
- 1969年,美国数据系统语言协会的数据库任务组 发表关于网状模型的 DBTG 报告。
- 1970年,美国 IBM 公司的 Codd 提出关系模型, 奠定了关系数据库的理论基础。
背景:
- 硬件:已有大容量磁盘等直接存取存储设备,硬件价格下降。
- 软件:软件价格上升,编制和维护系统及应用软件所需成本增加。
- 数据处理方式:联机实时处理要求更多,提出和考虑分布处理。
特点:
- 克服缺陷:数据库技术在文件系统基础上发展起来,克服了文件系统的冗余、不一致和联系弱等缺陷。
- 高速发展:随着 1980 年甲骨文推出 Oracle,IBM 推出 DB2,数据库技术进入了高速发展的黄金时代。
三、数据库系统特点
1. 数据库系统的特点
数据库(DB)是存放数据的仓库,是长期存储在计算机内有组织的大量的共享的数据集合,具有最小冗余度和较高数据独立性。实现了整体数据的结构化,具有共享性高、独立性高等特点。下面详细进行介绍:
- 数据整体结构化:数据模型不仅描述数据本身的特点,还描述数据之间的联系。
- 数据共享性高,冗余度低,易扩充:数据面向整个系统,不是面向应用的,所以多应用多用户可共享数据,减少冗余,避免数据的不一致性。容易增加新的应用,易于扩充。
- 数据独立性高:数据在磁盘上的物理存储和逻辑结构改变,应用程序不用变。数据与程序独立,把数据的定义从程序中分离,简化程序的编写和维护工作。
- 数据由 DBMS 统一管理和控制:提供统一的数据管理和控制功能,即数据的恢复、并发控制、数据完整性和数据安全性。
2. 数据库技术发展的高级阶段
随着计算机技术及数据处理需求的发展变化,涌现出百花齐放、百家争鸣的数据库新技术。
20 世纪 80 年代之后数据管理进入高级数据库技术阶段,相继出现了面向对象数据库、XML 数据库、NoSQL 数据库、分布式数据库、内存数据库以及云数据库等数据库新技术。
四、数据模型
1. 数据模型的定义
- 模型:是现实世界中对象特征的模拟和抽象。
- 数据模型:也是一种模型,是对现实世界数据特征的抽象。
数据模型应该满足三个要求:
- 真实地模拟现实世界。
- 容易理解。
- 便于计算机上实现。
2. 数据模型的种类
- 概念模型:是从用户角度在信息世界对数据建模。
- 逻辑模型:是从系统角度在机器世界对数据建模。
3. 数据模型的组成
- 数据结构:是所研究对象类型的集合,即对实体类型和实体间联系的表达和实现。
- 数据操作:是指对数据库中各对象允许执行的操作的集合,包括检索和更新两类。
- 数据完整性约束:给出数据及其联系应具有的制约和依存规则,保证数据的正确、有效、相容。
五、数据描述
计算机不能直接处理现实世界中的具体事物,需要借助数据模型这个工具来抽象和表示数据。
1. 数据描述的术语
信息世界的术语:
- 实体:可以相互区别的客观事物和概念的抽象。
- 实体集:性质相同的同类实体的集合。
- 实体标识符:能唯一标识每个实体的属性或属性集。
- 属性:对实体某一特征的描述。
- 域:属性的取值范围。
- 联系:分为实体内部的联系和实体之间的联系。
- 实体内部的联系:指的是实体各属性之间的联系。
- 实体之间的联系:指的是不同实体集之间的联系。
机器世界的术语:
- 字段:标记实体属性的命名单位,也称为数据项(属性)。
- 记录:字段的有序集合(实体)。
- 文件:同一类记录或不同类记录集合(实体集)。
- 关键码(key):能唯一标识文件中每条记录的字段或字段集(实体标识符)。
2. 实体之间的联系
- 一对一联系:A 中任意实体至多对应 B 中的一个实体,反之 B 中的任意实体至多对应 A 中的一个实体。
- 一对多联系:A 中至少有一个实体对应 B 中的多个实体,反之 B 中的任意实体至多对应 A 中的一个实体。
- 多对多联系:A 中任意实体至少有一个实体对应 B 中的多个实体,反之 B 中至少有一个实体对应 A 中的多个实体。
六、概念模型
1. 定义
为正确直观地反映客观事物及其联系,按用户观点对数据和信息建模型,称之为概念模型。
概念模型是现实世界到机器世界的一个中间层次。
2. 特点
- 用于建立信息世界的数据模型,是现实世界的第一层抽象。
- 是独立于计算机系统的模型。
- 强调语义表达功能,概念简单、清晰,易于用户理解,是用户和 DB 设计人员之间交流的语言,是 DB 设计人员进行数据库设计的工具。
3. 实体联系模型
常用的概念模型—实体联系模型(Entity relationship model),简称 E-R 模型。E-R 模型提供了表示实体、属性、联系的方法。
E-R模型中的三要素:
- 实体(Entity):表示可相互区别的客观事物。
- 属性(Attributes):表示客观事物的特征 。
- 联系(Relations):表示客观事物之间的关系。
实体联系模型使用实体联系图( E-R 图)描述现实世界:
- 用矩形表示实体。
- 用椭圆表示属性。
- 用菱形表示实体间的联系。
- 属性和实体间用无向边连接。
- 实体和联系间用无向边连接(同时在边上标明联系的类型)。
举例:
七、层次模型
数据模型是数据库系统的核心和基础。按计算机系统的观点对数据建模称为逻辑模型,层次模型是数据库系统中最早出现的逻辑模型。
1. 数据结构
层次数据模型用树形结构组织数据,它是以记录类型为结点,以结点间联系为边的有序树。
层次数据模型适合表示记录间的一对多联系。
层次模型主要的数据操作有数据查询、数据插入、数据删除和数据修改,这些操作在树型结构上很容易实现。
- 插入操作:没有相应的双亲结点不能插入子结点。
- 删除操作:删除双亲结点则相应的子女结点也被删除。
2. 特点
- 优点:层次模型本身比较简单;记录之间的联系通过指针实现,查询效率较高。
- 缺点:适合表示记录间的一对多联系,而多对多的联系会出现数据冗余;结构严格、复杂,因此编程复杂;对插入和删除操作限制比较多。
八、网状模型
数据模型是数据库系统的核心和基础。按计算机系统的观点对数据建模称为逻辑模型,网状模型是比层次模型更具有普遍性的逻辑模型。
1. 数据结构
网状数据模型用图形结构表示实体及实体间的联系,它是以记录类型为结点,以结点间联系为边的有向图。
网状模型主要的操作有数据查询、数据插入、数据删除和数据修改,这些操作在图形结构上能够实现。
网状模型的数据操作也要满足模型的完整性约束条件:
- 支持记录码的概念,码是唯一标识记录的数据项集合。
- 保证联系中双亲记录和子女记录之间是一对多的联系 。
- 支持双亲记录和子女记录之间的某些约束条件。
2. 特点
- 优点:在两个结点之间可以有两种或多种联系,M : N 联系容易实现;记录之间的联系通过指针实现,存取(查询)效率较高。
- 缺点:结构比较复杂,编程复杂,程序员必须熟悉数据库的逻辑结构,不利于用户掌握。
九、关系模型
数据模型是数据库系统的核心和基础。按计算机系统的观点对数据建模称为逻辑模型,关系模型是最重要的一种逻辑模型。
1. 数据结构
用二维表来表示实体集,用外键表示实体间的联系,这样的数据模型称为关系数据模型。
- 关系:一个关系对应通常说的一张表。
- 元组:表中的一行即为一个元组。
- 属性:表中的一列即为一个属性。
- 主码:表中某个属性组,可以唯一确定一个元组。
- 域:属性的取值范围。
- 关系模式:二维表的表头那一行。
关系模型的数据结构是规范化的二维表。
关系模型的主要操作有数据查询、数据插入、数据删除和数据修改,这些操作在表上很容易实现。
关系模型的完整性约束条件包括实体完整性、参照完整性、用户定义的完整性三大类。
2. 特点
- 优点:
- 关系模型建立在严格的数学概念基础上。
- 关系模型概念单一, 结构简单,清晰,用户易懂易用。
- 关系模型的存取路径对用户透明,具有更高的数据独立性和更好的安全保密性。
- 缺点:由于存取路径对用户透明,查询效率往往不如非关系数据模型高。
关系模型是最重要的一种数据模型。关系模型与层次模型和网状模型相比具有明显的优点,深受用户欢迎。基于关系模型的关系数据库成为最重要和应用最广泛的数据库。
十、数据库系统三级模式
数据库系统内部的系统结构通常采用三级模式结构,即模式、外模式和内模式。
1. 结构
- 型(Type):是指对某一类数据结构和属性的说明。
- 值(Value):是型的一个具体赋值。
- 模式(Schema):是数据库中全体数据的逻辑结构和特征的描述。
- 实例(Instance):是模式的一个具体值,同一模式有很多实例。
三级模式:
- 外部级(外模式):最接近于用户的一级数据库,是用户看到和使用的局部数据的逻辑结构和特征的描述,又称用户视图。外模式是模式的子集。 一个数据库可以有多个外模式。
- 概念级(模式):介于用户级和物理级之间,是所有用户的公共数据视图(全局的数据视图),是数据库管理员看到和使用的数据库。一个数据库只存在一个DBA视图,即一个数据库只有一个模式。
- 内部级(内模式):内模式也称为存储模式, 是数据物理结构和存储方式的描述。一个数据库只有一个内模式。
2. 结构示例
3. 实例
十一、数据库系统的两级映像
数据库系统的三级模式是数据的三个抽象级别,在三级模式之间提供了两级映像进行联系和转换。
1. 外模式/模式映像
- 在外模式和模式之间存在外模式/模式映像,用于定义外模式和模式间的对应关系。
- 一个模式可以有多个外模式,每一个外模式,数据库系统都有一个外模式/模式映像。
- 外模式/模式映像通常包含在各自外模式的描述中。
2. 模式/内模式映像
- 在模式和内模式之间存在模式/内模式映像,用于定义模式和内模式间的对应性。定义了数据库全局逻辑结构与存储结构之间的对应关系。
- 数据库只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的。
- 模式/内模式映像通常包含在模式描述中。
3. 两级映像图示
十二、数据独立性
数据库系统的三级模式是数据的三个抽象级别,在三级模式之间提供了两级映像进行联系和转换,三级模式和两级映像使数据具有独立性。
三个抽象级间通过两级映像进行相互转换,使得数据库的三级模式形成一个统一整体,保证了数据的独立性。
数据独立性是指应用程序与数据间相互独立,不受影响。分为逻辑独立性和物理独立性两级。
1. 逻辑独立性
对模式的修改尽量不影响外模式,从而应用程序不必修改,保证数据与程序的逻辑独立性,称为数据库的逻辑独立性。
2. 物理独立性
对内模式(存储结构)的修改尽量不影响模式,对于外模式和应用程序的影响更小,应用程序不必修改,保证数据与程序的物理独立性,称为数据库的物理独立性。
十三、数据库系统组成
数据库系统由数据库、数据库管理系统、应用程序和数据库管理员组成。
1. 数据库系统的软件和硬件
数据库系统的软件主要包括:
- 数据库管理系统(DBMS)。
- 操作系统(OS)。
- 各种与数据库接口的高级语言及编译系统。
- 应用开发工具。
- 数据库应用系统。
数据库系统的硬件主要包括:
- CPU。
- 内存。
- 外存 I/O 设备。
- 数据通道等设备。
数据库主要包括物理数据库、描述数据库。其中物理数据库是应用数据的集合,是 DB 的主体。描述数据库是各级数据结构的描述,由数据字典(DD)系统管理。
2. 数据库系统的人员
开发、管理和使用数据库系统的人员主要包括:
- 系统分析员:负责应用系统的需求分析和规范说明,确定系统的硬件软件配置,参与数据库系统的概要设计。
- 数据库设计人员:负责数据库中数据的确定,各级模式的设计,参加用户需求调查和系统分析,进行数据库设计。
- 应用程序员:负责设计和编写应用系统的程序模块、调试和安装。
- 数据库管理员(DBA):
- 模式定义,决定数据库中信息内容和结构。
- 内模式定义,决定数据库的存储结构和存取策略。
- 根据要求修改数据库的模式和内模式。
- 对数据库访问的权限,定义数据的安全性。
- 完整性约束条件的说明。
- 监控数据库的使用和运行(处理出现的问题)。
- 数据库的改进和重组重构(改进数据库设计)。
- 最终用户:通过应用系统的用户接口使用数据库。常用的接口方式有浏览器、菜单驱动、表格操作、图形显示等,以简明直观的表示方式显示数据。
- 偶然用户:企业中高级管理人员,不常访问数据库,但访问时往往需要不同的数据库信息。
- 简单用户:多数用户是简单用户,工作是通过应用程序的友好界面查询和修改数据库中的数据。
- 复杂用户:工程师、科学家等人员,熟悉 DBMS 的各种功能,可直接用 DML 语言访问数据库,用 API 编写自己的程序。
各种人员的数据视图: