Database Principles
数据库原理
1.数据库概论
数据库以及相关概念
- 数据(data):信息的表现形式和载体。
- 数据库(database):长期存储在计算机内,有组织的,统一管理的相关数据的集合。
- 数据库管理系统(DBMS):位于用户与操作系统逐之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立,查询,更新及各种数据控制。
- 数据库系统(DBS):采用数据库技术的计算机系统。
- 数据库技术:研究数据库结构,存储设计管理和使用的一门软件学科。
高级数据库阶段
对象数据库技术
- 面向对象与数据库技术结合的产物
主要特征
- 可以完整的描述现实数据结构,以及数据之间嵌套递归的联系。
- 具有封装性和继承性,提高了软件的可重用性
分布式数据库系统
主要特征:
- 数据物理上分布在不同场地,逻辑上是一个整体 。
- 每个场地可以执行局部应用,也可以执行全部应用
3.。 各地计算机由数据通信网络联系,本地计算机不能完成的任务可以通过通信网络获取其他场地支持。
开放数据库互联技术
- 用于单个应用程序访问不同的数据库
- XML数据库技术
- 灵活
现代信息集成技术
- 数据仓库
- 连及分析处理技术
- 数据挖掘
数据描述
数据描述有两种形式:物理数据描述和逻辑数据描述。
- 物理数据描述:数据在存储设备上的存储方式的描述。
- 逻辑数据描述:程序员或者用户用以操作的数据形式的描述,是抽象的概念化数据。
概念设计中的数据描述
- 实体(entity)
- 实体集 (entity set)
- 属性(attribute)
- 实体标识符(identifier)
逻辑设计中的数据描述
- 字段(Field)
- 记录(Record)
- 文件(file)
- 关键码(Key)
物理设计中的概念描述
- 物理存储介质层次,可分为以下六类
- 高速缓冲存储器(cache)
- 主存储器(main menory)
- 快擦鞋存储器(flash memory)
- 磁盘存储器(magnetic disk)
- 光存储器(optical sstorage)
- 磁带(tape storage)
- 物理存储中的数据描述
- 位(bit)
- 字节(byte)
- 字(word)
- 块( Block)
- 桶 (bucket)
- 卷(volume)
数据联系的描述
联系:是实体之间的互相关系。
联系的元数:与一个联系有关的实体集个数。
- 二元联系的三种类型
- 一对一联系
- 一对多联系
- 多对多联系
数据抽象过程
模型(model): 是对现实世界的抽象。使用数据模型(data model)的概念描述数据库的结构和语义,对现实世界的数据进行抽象。
- 概念模型:用来表达用户需求观点的数据全局逻辑结构模型称为概念模型
- 逻辑模型:表达计算机实现观点的DB全局逻辑结构的模型
- **外部模型:**表达用户使用观点DB局部逻辑结构的模型
- 内部模型:表达DB物理结构的模型
他们之间的关系如图所示
概念模型
概念模型抽象级别最高,具有以下特点:
- 表达了数据的整体逻辑结构,他是系统用户对整个应用项目涉及的数据的全面描述
- 从用户需求的观点出发对数据建模
- 独立于硬件和软件。
- 是数据库设计人员与用户之间进行交流的工具。
现在采用的概念模型主要是实体联系模型(ER)(Entity Relationship Ship)
ER图有三个基本成分
- 矩形框:表示实体类型
- 菱形框:表示联系类型
- 椭圆形框:表示实体类型和联系类型的属性
ER图的优点
- 简单易理解,真实反应客户需求
- 与计算机无关,客户容易接受
ER图的缺点
- 只能说明实体间语义的练习,不能说明详细的数据结构
逻辑模型
- 逻辑模型的特点
- 表达了DB整体的逻辑结构
- 从数据库实现的观点出发对数据建模
- 独立于硬件,依赖于软件(DBMS)
- 是数据库设计人员与应用程序猿之间进行交流的工具
逻辑模型的种类
- 层次模型
- 网状模型
- 关系模型
- 对象模型
三层模式和两级映像
- 型和值
- 型:对一类数据的结构和属性的说明
- 值:是型的一个具体赋值
- ==模式==
定义:数据模型使用DB的数据定义语言(DDL),定义后的内容称为模式。
- 描述数据库逻辑结构和特征
- 对”型“的描述
- 反映数据结构及其联系
- 相对稳定
- 以某一种数据模型为基础
- 三层模式:在数据库设计中,有时会使用三层模式来描述数据库的结构和组织方式。这通常涉及到将数据库划分为三个不同的层次或组件:外部模式、概念模式和内部模式。
外部模式(External Schema):也称为用户视图或子模式,是用户或应用程序能够直接访问和操作的部分数据库。每个外部模式都是特定用户或应用程序对数据库的定制视图。
概念模式(Conceptual Schema):也称为全局模式或逻辑模式,是数据库的整体逻辑结构和组织方式的抽象表示。它描述了数据库中的所有数据对象、它们之间的关系以及约束条件。
内部模式(Internal Schema):也称为存储模式,是数据库在物理存储层面的表示。它描述了数据在存储介质上的存储方式、索引结构等细节。
- 两级映像
数据库管理系统
DBMS的工作模式
- 接受应用程序的数据请求和处理请求
- 将用户的数据请求(高级指令)转换成复杂的机器代码(低层指令)3
- 实现对数据库的操作
- 从对数据库的操作中接受查询结果
- 对查询结果进行处理(格式转换)
- 将处理结果返回给用户
DBMS的主要功能
- 数据库的定义功能(DDL,(Data Definition
数据库三层结构、两级映像、定义数据的完整性约anguage束、保密限制约束等 - 数据库的操纵功能(DML,data manipul
ation language
检索:查询,更新::插入、删除、更新 - 数据库的保护功能
恢复,并发控制,完整性,安全性 - 数据库的维护功能(Utilities
数据载入、转换、转储等 - 数据字典(DD
数据库系统
DBS的组成
- 数据库
- 硬件
- 软件
- 数据管理员
DBS的全局结构
DBS结构的分类
- 层次数据库结构(Hierarchical Database Structure):
- 层次数据库结构是最早期的数据库组织方式之一,它使用树状结构来组织数据。每个节点可以有一个或多个子节点,但每个节点只有一个父节点。
- 典型的例子是IBM的IMS(Information Management System)数据库系统。
- 网络数据库结构(Network Database Structure):
- 网络数据库结构扩展了层次数据库的概念,允许一个节点有多个父节点,形成一个图状结构。这种结构提供了更灵活的数据组织方式。
- CODASYL(Conference on Data Systems Languages)标准定义了一种常见的网络数据库模型,例如IDMS(Integrated Data Management System)。
- 关系数据库结构(Relational Database Structure):
- 关系数据库结构是当前最常用的数据库组织方式之一。它基于关系模型,使用表格(称为关系)来表示数据,并使用关系之间的键值关联来建立数据之间的联系。
- 关系数据库的代表性产品包括Oracle、MySQL、SQL Server等。
- 面向对象数据库结构(Object-Oriented Database Structure):
- 面向对象数据库结构将面向对象编程的思想引入数据库系统,允许将复杂数据结构和对象存储在数据库中,并支持面向对象的查询和操作。
- 典型的面向对象数据库系统包括ObjectDB、db4o等。
- 文档数据库结构(Document Database Structure):
- 文档数据库结构是一种非常灵活的数据库组织方式,它使用文档来存储数据,文档可以是JSON、XML等格式。
- MongoDB是一种常见的文档数据库系统。
- 键-值存储结构(Key-Value Store Structure):
- 键-值存储结构是一种简单的数据库组织方式,它使用键值对来存储数据,其中每个键都唯一地标识一个值。
- Redis、Amazon DynamoDB等是常见的键-值存储数据库系统。
2.关系模型和关系运算理论
关系模型的基本概念
定义:用二维表格表示实体集,用关键码表示实体之间联系的数据模型称为关系模型(Relational Model)。
- 非平凡的函数依赖
如果X→Y,但Y不包含于X,则称 X→Y是非平凡的函数依赖。
- 平凡的函数依赖
如果X→Y,但Y包含于X,则称 X→Y是平凡的函数依赖。
- 决定因子
如果X→Y,则X称为决定因子。
关键码
- 超键(super)
在关系中能唯一标识元组的属性或属性集称为关系模式的超键。
- 候选键(Candidate)
不含有多余属性的超键称为侯选建
- 主键(primary)
用户选作元组标识的候选键称为主键
- 外键(foreign)
若模式R中属性K是其他模式的主键,则K在R中称为外键。
关系
定义:一个属性相同的元组的集合。
规范性限制
关系中每一个属性值都是不可分解的;
关系中不允许出现重复元组,即不允许出现相同的元组;
由于关系是一个集合,因此不考虑元组间的顺序,即没有行序;
元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序。
3类完整性规则
实体完整性给规则
要求关系中元组在组成主键的属性上不能有空值。如果出现空值,那么主键值就起不了惟一标识元组的作用。
参照完整性规则
如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值。
用户定义的完整性规则
用户可以针对具体的数据约束,设置完整性规则,由系统来检验实施,以使用统一的方法处理它们,不再由应用程序承担这项工作。
关系模式
在关系模型中,记录类型称为关系模式,而关系模式的集合就是数据库的概念模式。
关系模式与关系
关系模式是型,是对关系的描述,是静态的,稳定的。关系是值,由赋予它的元组语义来确定的,是动态的,不断变化的关系是关系模式在某一时刻的状态或内容
关系代数
关系代数表达式的优化