一. 数据库的四个基本概念
1. 数据
什么是数据?数据就是数据库存储的基本对象,描述事物符号记录称为数据。这些符号既可以是数字也可以是文字、图形、图像、音频、视频等。
什么是数据的结构化
在计算领域中,结构化数据是指按照预定格式和模式组织的数据。这样的组织形式使得数据可以被有效地查询和分析。结构化数据与非结构化数据相对,非结构化数据是没有特定内部结构的数据,例如文本、图片和视频等。
结构化数据的好处是什么
-
高效查询
-
数据完整性
-
减少数据冗余
什么是数据的物理独立性
数据的物理独立性是指用户的应用程序与数据库中数据的物理存储是相互独立的.
也就是说当数据的物理存储改变了,应用程序不用改变。
具体地说,如果数据库的物理设计或存储结构发生变化(例如,文件被重新组织或索引结构被修改),那么与数据库交互的应用程序不需要进行任何修改。这样的设计允许数据库管理员进行优化、重新组织和维护操作,而不影响到正在运行的应用程序。
什么是数据的逻辑独立性
数据的逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的.
也就是说数据的逻辑结构改变了,用户程序也可以不变。
总的来说,数据的独立性是由数据库管理系统提供的二级映像功能来保证的。
2. 数据库
什么是数据库(DB)
数据库,就是长期存储在计算机内有组织、可共享的大量数据的集合。
数据库的基本特征
- 数据按一定的数据模型组织、描述和储存
- 可为各种用户共享
- 冗余度较小
- 数据独立性较强
- 易扩展
3. 数据库管理系统
什么是数据库管理系统(DBMS)
- 数据库管理系统是位于用户与操作系统之间的一层数据管理软件。
数据库管理系统的用途
- 科学地组织和存储数据、高效地获取和维护数据
数据库管理系统的主要功能
- 数据定义功能
- 数据组织、存储和管理
- 数据操纵功能
- 数据库的事务管理和运行管理
- 数据库的建立和维护功能
- 其他功能
4. 数据库系统
什么是数据库系统(DBS)
在计算机系统中引入数据库后的系统构成数据库系统
数据库系统的组成有哪些
- 数据库
- 数据库管理系统(即其开发工具)
- 应用系统
- 数据库管理员(DBA)
二. 数据模型
1.数据模型的组成三要素
数据结构、数据操纵和完整性约束三部分组成,称为数据模型的三要素
什么是数据结构
数据库的数据结构,通常是指数据库系统用于存储、组织和检索数据的内部结构。这些结构为数据库提供了高效的数据存取方式。常见的数据库数据结构有B树、B+树、哈希表、位图索引等。
那么,数据库的数据结构与通常所说的数据结构之间的主要区别是什么呢?
通常的数据结构:主要用于程序中的数据组织和操作。例如,链表和数组可以帮助程序员在内存中组织数据并进行各种操作。
数据结构是对系统静态特性的描述。
总而言之,数据库的数据结构主要关注持久化存储中的高效数据操作,而通常的数据结构更关注程序设计和内存中的数据操作。
什么是数据操纵
数据操纵是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。
数据操纵是对系统动态特性的描述。
什么是完整性约束
数据库的完整性约束是数据库管理系统为了确保存储的数据的准确性、一致性和有效性所设置的一些规则和条件。
为什么要有完整性约束
完整性约束其实是为了确保数据的准确性和一致性,确保用户插入的数据始终是准确的,另一点,完整性约束可以防止错误操作对数据造成的损坏。
2. 数据建模
什么是数据建模
数据建模就是把现实中具体的事物进行抽象、组织为某一种数据库管理系统支持的数据模型,这个过程称为数据建模。
如何进行数据建模
数据建模分为两个步骤:
- 将现实世界中的客观对象抽象为概念模型
- 把概念模型转换为某一数据库管理系统支持的数据模型
3. 概念模型
什么是概念模型
概念模型(Conceptual Model),也常被称作“概念数据模型”或“逻辑模型”,是用于描述现实世界的数据和它们之间关系的高级表示。它为数据的结构和意义提供了一个抽象视图,通常独立于任何特定技术或存储机制。
概念模型有什么用处
由于概念模型是对现实的抽象,通过抽象表示可以帮助项目团队、终端用户更好的理解沟通需求,有助于识别关键的实体、属性和关系。
信息世界中的一些基本概念
实体:客观存在并可相互区别的事物称为实体。可以是具体的人、事、物或抽象的概念。
属性:实体所具有的某一特性称为属性。
码:唯一标识实体的属性集称为码。
实体集:客观存在并可相互区别的事物称为实体。
实体内部的联系:是指组成实体各属性之间的联系。
实体之间的联系:是指组成实体各属性之间的联系。
如何用E-R图来表示概念模型
4. 逻辑模型和物理模型
逻辑模型主要有哪些
逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于数据库管理系统的实现。
什么是物理模型
物理模型是对数据数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。
5. 最常用的数据模型
非关系模型有哪些
- 层次模型
- 网状模型
层次模型
用树形结构来表示各类实体和实体间的联系。
层次模型的优点
结构简单、效率高、提供了良好的完整性支持。
层次模型的缺点
多对多联系无法表示、插入删除麻烦、编程复杂。
网状模型
- 允许一个以上的节点五双亲。
- 一个节点可以有多个双亲。
网状模型的优点
能更直接描述现实世界,具有良好的性能,存取效率高。
网状模型的缺点
结构比较复杂,网状模型的DDL,DML复杂,用户不容易掌握应用程序编写负担重。
什么是关系模型
关系模型是由E.F. Codd在1970年提出的,它为现代关系型数据库管理系统(RDBMS)提供了理论基础。关系模型主要基于集合理论和数学逻辑,并使用了一系列的概念来描述数据结构和操作。
关系数据模型的数据结构
涉及的概念
关系(Relation)
-
一个关系代表一个表。它由一系列的元组(行)组成,这些元组共享相同的属性(列)。
-
关系也可以说是一个有序的属性集合,其中每个属性都有一个唯一的名称和与之相关联的数据类型。
元组(Tuple)
-
元组其实就是表中的一行。
-
一个元组在关系中是唯一的,不允许有重复的元组。
属性(Attribute)
-
属性代表表中的一列
-
每个属性都有一个相关的域(或称为数据类型),这个域定义了属性的取值范围。
码(KEY)
-
码是用于唯一标识关系中的元组(即记录或行)的属性集合。
-
一个关系可以有多个码。
主码(Candidate Key)
- 主码是关系中的一个特殊的码,它可以唯一地标识关系中的每个元组。
- 一个关系可以有多个主码。
主键(Primary Key)
- 主键是关系中选定的一个主码,用于唯一地标识关系中的每个元组。
- 一个关系只能有一个主键。
- 主键的值必须是唯一的,并且不能为NULL。
外码(Foreign Key)
- 外码是一个或多个属性,它们在一个关系中与另一个关系的主键相对应。
- 外码用于建立和维护两个关系之间的连接。
外键(Alternate Key)
- 在某些文献中,外键被用作“外码”的同义词。但在其他文献中,外键指的是除主键外的其他主码。为了避免混淆,建议始终明确使用“外码”和“主码”这两个术语。
主码,主键有什么区别吗?
主码是关系中的一个属性集合,它可以唯一地标识关系中的每个元组。而主键是从关系的主码中选择的一个,在一个关系中只能有一个主键。
结论:所有主键都是主码,但并非所有主码都是主键。主键是特定选择的主码,用于作为表中数据的主要识别机制。
主码都是码吗?
在数据库领域,“码”(Key)是用于标识关系中的元组(即行)的属性的集合。主码(Candidate Key)是其中一个特殊类型的"码"。
因此,**所有的主码都是"码",但并非所有的"码"都会被选择为主键。**简而言之,"主码"是那些可以被选为主键的"码"的统称。
关系最基本的规范条件
关系的每一个分量必须是一个不可分的数据项,不允许表中还有表。
下图中的工资和扣除是可分数据项,不符合关系模型要求
让我们再回顾一下关系数据模型常见的关系术语:
这里我再详细解释一下,什么是关系名、关系模式和分量
-
关系名:比如你有两个表,一个学生表,一个是课程表,关系名(表的名称)可以帮助你在查询或引用时识别特定的关系。
-
关系模式:关系模式描述了关系的结构,包括关系名和它的属性集合以及这些属性的数据类型。例如,一个“学生”关系模式可能为
学生(学号 INT, 姓名 VARCHAR, 出生日期 DATE)
。 -
分量:分量是关系中的基本组成元素。更具体地说,每个关系都有一组属性,每个属性都有一个与之关联的域。这些属性和它们的域就是关系的分量。在某些文献中,分量也可能专指关系中的某个特定属性的取值范围或实际值。
关系数据模型的操纵
数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合。
- 查询、插入、删除、更新
关系数据模型的约束条件
- 实体完整性、参照完整性、用户定义完整性
关系数据模型的存储结构
- 实体及实体间的联系都用表来表示
表以文件形式存储
- 有的数据库管理系统一个表对应一个操作系统
- 有的数据库管理系统自己设计文件结构
关系数据模型的优缺点
优点:
- 建立在严格的数学概念的基础上
- 概念单一
- 实体和各类联系都用关系表示
- 对数据的检索结果也是关系
- 关系模型的存取路径对用户隐蔽
- 具有更高的数据独立性,更好的安全保密性
- 简化了程序员的工作和数据库开发建立的工作
缺点
-
存取路径对用户透明导致查询效率往往不如非关系数据模型
-
为提高性能,必须对用户的查询请求进行优化增加了开发DBMS的难度
6. 数据库系统的三级模式结构
什么是数据库系统的三级模式结构
数据库系统的三级模式结构是为了分离用户视角和物理存储,从而实现数据抽象、隔离和独立性的一种结构。
从数据管理系统角度看,数据库系统通常采用三级模式结构,是数据库系统内部的系统结构。
从数据库最终用户角度看(外模式),数据库系统结构分为:
- 单用户结构
- 主从式结构
- 分布式结构
- 客户/服务器
- 浏览器/应用服务器/数据库服务器多层结构等
数据库系统模式的概念
什么是型、值
[1] 型(Type)
-
型,有时也被称为“数据类型”或“域”,定义了一个数据项可能的取值范围和该数据项上允许的操作。也可以说是对某一类数据结构和属性的说明。
-
常见的数据类型包括:整数、浮点数、字符串、日期、时间等。
[2] 值(Value)
- 值是数据库中存储的实际数据(是型的具体赋值)。
- 每个值都属于某个特定的型。例如,数字“123”可能是一个整数型的值,而“hello”是一个字符串型的值。
什么是模式、实例
[1] 模式(概念模式)(Schema)
-
模式是数据库逻辑结构和特征的描述(数据项的名字、类型、取值范围等)
-
模式是对型的描述
-
一个数据库只有一个模式
[2] 实例(Instance)
-
实例是某一特定时间点上数据库的具体内容
-
同一个模式可以有很多实例
-
实例随数据库中数据的更新而变动
简而言之,模式定义了数据库"应该是什么样子"或"可以包含什么",而实例描述了数据库"目前是什么样子"或"目前包含什么"。
三级模式结构包含哪些
数据库系统的三级模式结构是指数据库系统是由模式、外模式、内模式三级构成。
什么是外模式
外模式也称为子模式或用户模式。是指数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述。
什么是内模式
内模式也称为存储模式。是指数据在数据库内部的表示方式,常见的存储方式有,顺序存储、按照B树结构存储,按hash方法存储等。
模式与外模式的关系
- 模式与外模式的关系:一对多
- 通常情况下,外模式是模式的子集
- 一个数据库可以有多个外模式
外模式与应用的关系
- 外模式与应用的关系:一对多
- 同一外模式也可以为某一用户的多个应用系统所使用
- 一个应用程序只能使用一个外模式
数据库的二级映像与数据独立性
二级映像存在的目的
二级映像旨将逻辑数据结构与物理存储结构分离。
什么是二级映像
在数据库系统中,两种主要的映像或映射层:
- 外/概念映射:将用户视图(外模式)映射到整个数据库的逻辑结构(概念模式)。
- 概念/内部映射:将逻辑结构(概念模式)映射到物理存储结构(内部模式)。
通过这两级映射,数据库系统能够将用户如何看待数据(即用户视图)与数据的物理存储方式分离开。
什么是外/概念映射
外/概念映射是一个过程,它定义了如何将外模式转化为概念模式。换句话说,当一个用户根据其外模式进行查询或更新时,数据库系统使用外/概念映射来确定如何在整个数据库(即概念模式)中执行这些操作。
什么是概念/内部映射
概念/内部映射定义了如何将概念模式中的数据转化为其在物理存储设备上的实际存储格式。当数据库系统需要读取或写入数据时,它使用这个映射来确定数据在物理存储上的确切位置。
外/概念映射:将用户视图(外模式)映射到整个数据库的逻辑结构(概念模式)。
- 概念/内部映射:将逻辑结构(概念模式)映射到物理存储结构(内部模式)。
通过这两级映射,数据库系统能够将用户如何看待数据(即用户视图)与数据的物理存储方式分离开。
什么是外/概念映射
外/概念映射是一个过程,它定义了如何将外模式转化为概念模式。换句话说,当一个用户根据其外模式进行查询或更新时,数据库系统使用外/概念映射来确定如何在整个数据库(即概念模式)中执行这些操作。
什么是概念/内部映射
概念/内部映射定义了如何将概念模式中的数据转化为其在物理存储设备上的实际存储格式。当数据库系统需要读取或写入数据时,它使用这个映射来确定数据在物理存储上的确切位置。