数据库复习——一二章
第一章 绪论
1.1数据库系统概论
数据库的四个基本概念
数据(Data):描述事物的符号记录
数据库(DataBase,DB):数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
数据库管理系统(DataBase Management System,DBMS):位于用户与操作系统之间的一层数据管理软件。
数据库系统(DataBase System,DBS):数据库系统是由数据库、数据库管理系统、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统。
数据库管理系统的主要功能
(1)数据定义功能:提供数据定义语言(Data Definition Language,DDL),对数据库中的数据对象的组成与结构进行定义。
(2)数据组织、存储和管理:要确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据间的联系。
(3)数据操纵功能:提供数据操纵语言(Data Manipulate Language,DML),操纵数据,实现对数据库的基本操作,如增删改查等。
(4)数据库的事务管理和运行管理:数据库在建立、运用和维护时有数据库管理系统统一管理和控制,以确保事务的正常运行,保证数据的安全性、完整性、多用户对数据的并发使用以及发生事故后的系统恢复。
(5)数据库的建立和维护功能
(6)其他功能
数据库系统的特点
- 数据结构化。数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。
- 数据的共享性高,冗余度低且易扩充。数据共享可以大大减少数据冗余,节约存储空间,还能避免数据之间的不相容性与不一致性。
- 数据独立性高。包括物理独立性和逻辑独立性
物理独立性:用户应用程序和数据库中的数据的物理存储是独立的
逻辑独立性:用户应用程序和数据库的逻辑结构是独立的
- 数据由数据库管理系统统一管理和控制。数据由数据库管理系统统一管理和控制。数据的安全性保护,完整性检查,并发控制,数据库恢复。
1.2两类数据模型
什么是数据模型?
数据模型是对现实世界数据特征的抽象。数据模型是数据库系统的核心和基础。
数据模型的组成要素
数据结构、数据操作、数据的完整性约束条件
数据模型的分类
根据模型应用的不同目的,可分为第一类概念模型(也称信息模型,例如E-R图),主要用于数据库设计。第二类逻辑模型和物理模型。
逻辑模型包括层次模型、网状模型、关系模型等,是按计算机系统的观点对数据建模,主要用于数据库管理系统的实现。物理模型是对数据最底层的抽象。
1.3 事务
事务的本质
1.事务的本质是:当应用程序访问数据库的时候,事务能够简化我们的编程模型,不需要我们去考虑各种各样的潜在错误和并发问题。可以想一下当我们使用事务时,要么提交,要么回滚。因此事务本质上是为了应用层服务的,而不是伴随着数据库系统天生就有的。
2.事务是数据库操作的最小逻辑工作单元,是一系列SQL操作的集合
ACID
事务管理:原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持续性(Durability)
原子性:针对一个事务中的操作,要么全部成功要么全部失败
一致性:在一个事务中的重复读取,只要该事务没进行操作,读取的状态应该是一致的,修改也是
隔离性:不同的事务之间,相互不影响数据应该是隔离的
持续性:事务结束后不会随着外界原因导致数据丢失
ACID在MySql中的实现
原子性 : undo log(回滚日志)记录着对数据的操作日志,事务回滚后会根据undo log回滚
一致性 : 其他三种特性保证了一致性(原子性,持久性,隔离性)
隔离性 : MVCC (多版本并发控制),同时要看隔离级别(四种),越高性能越低
持续性 : mysql是并不会第一时间进行刷库,而是进行日志记录(redo log),日志的记录是远比刷库快的,在mysql重启时会检查redo log,检查刷库失败的数据
第二章 关系数据库
2.1 关系
单一的数据结构->关系:现实世界的实体以及实体间的各种联系均用关系来表示
数据的逻辑结构->二维表:从用户角度,关系模型中数据的逻辑结构是一张二维表。
关系模型建立在集合代数的基础上
2.2关系数据库
在一个给定的应用领域中,表示所有实体及实体之间联系的关系的集合构成一个关系数据库。(关系数据库系统是支持关系模型的数据库系统)
2.3关系模型中的三类完整性约束条件
实体完整性规则:若属性A是基本关系R的主属性,则A不能取空值。
参照完整性规则:若属性F是基本关系R的外码,他与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值。
用户定义的完整性规则:针对某一具体关系数据库的约束条件,他反映某一具体应用所涉及的数据必须满足语义要求。