第一章 绪论
一、数据库系统概述
基本概念:
- 数据:描述事物的符号记录,包括数字、文字、图形、图像、音频、视频、学生的档案记录等
- 数据的含义称为数据的语义
- 数据库:长期储存在计算机内、有组织的、可共享的大量数据的集合
- 数据库管理系统:位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据
数据库管理系统的主要功能:
- 数据定义功能
- 数据组织、存储和管理
- 数据操纵功能
- 数据库的事务管理和运行管理
- 数据库的建立和维护功能
数据管理技术的产生和发展:
- 人工管理阶段:处理方式为批处理,由用户进行数据管理,数据无共享,不独立,完全依赖于程序,且数据由自己控制
- 文件系统阶段:处理方式为联机实时处理、批处理,由文件系统进行数据管理,数据只面向某一应用,独立性差,且由应用程序控制
- 数据库系统阶段:练级实时处理、分布处理、批处理,由数据库管理系统进行管理,数据面向现实世界,高度物理独立性和一定逻辑独立性,并且由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力
独立性:数据的物理结构或逻辑结构发生变化后是否会影响到应用程序
数据库系统的特点相比起人工管理和文件系统的特点:
- 数据结构化:数据库中的数据面向的是整个组织或企业,且数据之间是具有联系的
- 数据共享性高:可以被多个用户共享使用,减少数据冗余
- 数据独立性高:物理独立性指应用程序与数据的物理结构相互独立;逻辑独立性指应用程序与数据库的逻辑结构相互独立
二、数据模型
数据模型:对现实世界数据特征的抽象,用以抽象,表示和处理现实世界中的数据和信息,是数据库系统的核心和基础
需要满足的要求:
- 能比较真实地模拟现实世界
- 容易为人所理解
- 便于在计算机上实现
两种(三种)数据模型
概念模型
也称信息模型,按用户的观点对数据和信息建模,用于数据库设计
逻辑模型
按计算机系统的观点对数据建模,主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。
物理模型
是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法。
两步抽象:客观对象->概念模型->DBMS支持的数据模型
(现实世界抽象为信息世界,信息世界转换为机器世界)
数据模型的组成要素
数据模型通常由数据结构、数据操作、数据的完整性约束条件组成
**数据结构:**描述数据库的组成对象,以及对象之间的联系。描述的内容:
- 与对象的类型、内容、性质有关
- 与数据之间的联系有关
**数据操作:**查询、更新(插入删除修改),是对系统动态特性的描述
**数据完整性约束条件:**一组完整性规则的集合。
- 完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则,用于限制数据库状态及其变化以保证数据的正确有效和相容
1、概念模型
现实世界到机器世界的一个中间层次,用于信息世界的建模
基本概念:
- 实体(Entity):客观存在并可相互区别的事物,具体的人、事、物等
- 属性(Attribute):实体所具有的某一特征,一个实体可以有若干个属性
- 码(Key):唯一标识实体的属性集
- 实体型(Entity Type):用实体名及其属性名集合来抽象和刻画同类实体,例如学生(学号,姓名,性别,出生年月,所在院系)就是一个实体型
- 实体集(Entity Set):同一类型实体的集合称为实体集,例如全体学生就是一个实体集
- 联系(Relationship):现实世界中事物内部和之间的联系,在信息世界中反映为实体内部和之间的联系
联系
实体之间的联系有一对一、一对多、多对多联系
实体内部的联系指组成实体的各属性之间的关系
实体-联系方法(Entity-Relationship Approach,E-R模型)
注意:这里方框型的是实体型,也就是一整个同类实体,而不仅仅只有一个。这会在一对一/一对多填数字的时候有影响。
小技巧:对于线上是m,n还是1,我们可以找出对应的关系两边的两个实体型,例如如果是商店和职工的关系,我们可以先把商店作为主体,职工作为客体,可以得到:同一个商店(商店编号、商店名、地址都固定)可以聘用多个不同属性的员工(不同姓名、性别、编号等等的员工),因此在靠近职工处的先上填的是n。而反过来将职工作为主体,商店作为客体,就可以得到一个员工(编号、姓名、性别都固定)最多只能被一个商店聘用,所以靠近商店处的线填的就是1。再举个例子:商店和商品,一个商店可以拥有n种商品,因此靠近商品处的数是n;而一种商品(注意这里是一种,不是一个,因为两个相同的商品,它们的属性也是相同的,因此可以归类为同一种商品)可以出现在多个商店中,因此靠近商店位置的线上填入的也是m
2、逻辑模型
如何在机器世界中表达低层数据结构和高层数据结构?
常用数据模型:
格式化模型:
- 层次模型
- 网状模型
关系模型
对象模型:
- 面向对象数据模型
- 对象关系数据模型
关系模型的数据结构
用户观点下的数据结构是一张二维表
- 关系:一个关系对应通常说的一张表
- 元组:表中的一行即为一个元组
- 主码:码键,表中的某个属性组,可以唯一确定一个元组
- 域:一组具有相同数据类型的值的集合,属性的取值范围来自某个域
- 分量:元组中的一个属性值
- 关系模式:对关系的描述,例如:学生(学号,姓名,年龄,性别,系名,年级)
关系必须是规范化的,满足一定的规范条件(最基本:每个分量必须是不可分割的数据项)
关系模型的操作
存取路径对用户隐蔽,用户只要指出干什么,不必详细说明怎么干
关系的完整性约束条件
- 实体完整性
- 参照完整性
- 用户定义的完整性
关系模型的优缺点
优点:
- 建立在严格的数学概念的基础上
- 概念单一
- 关系模型的存取路径对用户透明
缺点:
- 存取路径对用户透明,查询效率往往不如格式化数据模型
- 为提高性能,必须对用户的查询请求进行优化,增加了开发DBMS的难度
三、数据库系统的结构
数据库系统通常采用三级模式结构,是数据库系统内部的系统结构
从最终用户看的结构:
- 单用户结构
- 主从式结构
- 分布式结构
- 客户-服务器
- 浏览器-应用服务器/数据库服务器多层结构等
模式和实例
**模式:**数据库逻辑结构和特征的描述,不涉及具体值,反映的是数据的结构及其联系,相对稳定
包括数据的逻辑结构、数据之间的联系、数据有关的完整性、
安全性要求
一个数据库只有一个模式
模式与具体的应用程序、物理存储细节无关
**实例:**反映数据库某一时刻的状态,是一个具体值,同一模式可以有很多个实例
三级模式结构:
外模式
子模式/用户模式
数据库用户使用的局部数据的逻辑结构和特征的描述
地位:介于模式和应用之间。
模式与外模式:一对多
外模式与应用:一对多
外模式的用途:保证数据库安全性,每个用户只能看见和访问外模式中的数据
内模式
数据物理结构和存储方式的描述,数据在数据库内部的表示方式
一个数据库只有一个内模式
二级映像
二级映像实现这三个抽象层次的联系和转换
外模式/模式映像
模式/内模式映像
同一个模式可以有任意多个外模式,每个外模式数据库都有一个外模式/模式映像
可以保证数据的独立性(模式改变时,仅需改变外模式/模式映像)
模式/内模式映像定义了数据全局逻辑结构与存储结构之间的对应关系,这种映像在数据库中是唯一的
保证数据的物理独立性(当数据库的存储结构改变了,只需要修改模式/内模式映像)
四、数据库系统的组成
软硬件平台
硬件:
- 足够大的内存
- 足够的大的磁盘或磁盘阵列等设备
- 较高的通道能力,提高数据传送率
软件:
- 数据库管理系统
- 支持数据库管理系统运行的操作系统
- 与数据库接口的高级语言及其编译系统
- 以数据库管理系统为核心的应用开发工具
- 为特定应用环境开发的数据库应用系统
人员
- 数据库管理员
- 系统分析员和数据库设计人员
- 应用程序员
- 最终用户
数据库管理员
决定数据库内容结构,安全性要求和完整性约束条件,监控数据库的使用和运行,改进和重组
系统分析员/数据库设计人员
系统分析员:负责需求分析/规范说明,与管理员结合确定硬软件配置;
数据库设计人员:参加用户需求调查和系统分析,确定数据库中的数据,各级模式
应用程序员
编写应用程序的程序模块,进行调试和安装
最终用户
通过应用系统的用户接口使用数据库