数据库系统概论
数据库系统概论
绪论
数据、数据库、数据库管理系统、数据库系统的概念
-
数据
数据是数据库的基本存储对象,描述事物符号记录称为数据,数据的符号可以是数字、图片、视频等,数据的含义是称为数据的语义,数据与其语义是不可分的。
-
数据库
数据库是长期存储在计算机内有组织、可共享的大量数据集合。数据库中的数据按照一定的数据模型来组织、描述、和存储,具有较小的数据冗余性、较高的数据独立性、易扩展性并被各种用户共享
-
数据库管理系统
数据库管理系统DBMS是位于用户和操作系统之间的一层数据管理软件,数据库管理系统和操作系统一样是计算机基础软件,比如Mysql,Oracle等等
-
数据库系统
数据库系统是由数据库、数据库管理系统、应用程序和数据库管理员DBA组成的存储、管理、处理、维护数据的系统
数据库产生
数据库技术应数据管理任务的需要而产生,数据管理是指对数据进行分类、组织、编码、存储、检索和维护
数据的处理指对数据进行收集、存储、加工和传播
数据库系统的好处
使用数据库可以大大提高应用开发效率
当数据逻辑结构发生改变时,不必修改程序只需要修改很少的应用程序
可以减少数据库管理员维护系统的负担
数据库管理系统主要功能
-
数据库定义功能
-
数据组织、存储和管理功能
-
数据操纵功能
-
数据库的事物管理和运行管理
-
数据库的建立和维护功能
-
其它功能
比如不同数据库之间的访问和相互操作等
数据库系统的三个阶段
-
人工管理阶段
发生在20世纪50年代中期以前,主要用于科学计算,没有直接存储设备,没有操作系统,处理方式是批处理
-
特点
-
数据不保存
主要用于科学计算,用完就撤走,不需要长期存储
-
应用程序管理数据
数据需要应用程序自己设计、定义管理,不仅要设计逻辑结构、还要物理结构
-
数据不共享
数据是对应于一个应用程序的,当多个应用需要数据的时候就得在各自定义、无法相互使用
-
数据不具有独立性
当数据的逻辑结构和物理结构发生改变时,应用程序也要对相应的修改,数据完全依赖应用程序
-
-
-
文件管理阶段
用于科学计算、数据管理,可以使用磁盘、磁鼓进行存储,有文件操作系统,处理方式是联机实时处理、批处理
-
特点
-
数据可以长期存储
-
由文件系统管理数据
文件系统把数据组织成相互独立的数据文件,利用按文件名访问、按记录进行存储的管理技术,提供了对文件进行打开、关闭、修改、添加、删除等存取方式
-
-
缺点
-
数据共享性差、冗余度大
文件系统的一个文件是对应一个应用程序的,当不同应用需要相同数据的时候,需要各自建立各自的文件,而不能共享相同的数据
-
数据独立性差
当数据的逻辑结构发生改变时,应用程序中的结构也需要进行修改,应用程序对数据的使用也需要进行改变
-
-
-
数据库管理阶段
在20世纪60年代后期,主要用于大规模的数据管理、有大容量磁盘、磁盘阵列、数据库管理系统、处理方式为联机实时处理、分布式处理、批处理
-
特点
-
数据结构化
数据库系统实现整体数据的结构化,所谓整体结构化是指数据库中的数据不仅针对某一个应用,而是面向整个组合和企业的。
这是数据库系统与文件系统的本质区别
-
数据共享性高、冗余度低且易扩展
数据共享可以大大减少数据冗余,节约存储空间。数据共享还能避免数据之间的不容性和不一致性,容易增加新的应用使用数据库系统弹性大、易于扩展
-
数据独立性高
物理独立性:应用程序与数据库中物理存储是相互独立的,也就是说数据库在计算机中怎么存储是由数据库管理系统管理的,用户不需要了解,只需要处理数据的逻辑结构,这样当数据的物理存储改变时应用程序不需要改变。
逻辑独立性: 应用程序与数据库中的逻辑结构相互独立,逻辑结构改变时,程序不用改变
-
数据由数据库管理系统管理和控制
数据安全性的保护:防止数据不会被泄露和破坏
数据完整的保护:数据的正确性、有效性和相容性
并发控制:对应用进行并发操作数据库时,对数据加以控制和协助,保证并发操作的正确
数据库恢复:当计算机发生硬件故障、软件故障时能够将数据库从错误状态恢复到某一正确状态
-
-
-
文件系统与数据库系统有什么联系和区别
-
区别
文件系统是面向某一个应用的,文件的共享性差、冗余度大、独立性差、文件的记录虽然有结构,但是文件的整体无结构,所谓面向某一个应用指数据库只针对某一个应用程序使用。
数据库系统是整体结构化的,是面向整个组织和企业的,数据共享性高、冗余度小、具有较高的物理独立性和逻辑独立性,数据用数据模型来组织、描述,由数据库管理系统提供数据的安全性、完整性、并发性、恢复能力
-
联系
文件系统和数据库系统都是计算机系统中管理数据的软件
文件系统是操作系统的重要组成部分,而DBMS是独立于操作系统的软件,数据库中的组织和存储的功能是由文件系统实现的,因此DBMS与文件系统是紧密相连的
-
-
举出适用于文件系统和适用于数据库系统的应用例子
-
文件系统
小型应用都把数据存储在文件系统中,比如手机短信、微信的数据,一般来说功能简单、比较固定的应用适用于文件系统
-
数据库系统
绝大部分现实情形都可以使用数据库系统,比如库存信息管理系统、图书管理系统等
-
数据模型
数据模型是对现实世界的抽象,是数据库中用于提供信息表示和操作手段的形式架构。
满足数据模型的三要素:
比较真实的模拟现实世界
容易被人所理解
便于在计算机上实现
-
数据模型的概念、作用
数据模型是对现实世界进行抽象的有力工具,是数据库中用于提供信息表示和操作手段的形式架构。
数据模型是数据库系统的基础,任何一个DBMS都某一个数据模型为基础
-
两类数据模型
根据应用不同目的划分
-
概念模型
也称为信息模型,它是按照用户的观点来对数据和信息建模,主要用于数据库的设计,主要用于数据库设计
-
物理模型、逻辑模型
-
逻辑模型
主要包括层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型,它是按照计算机的观点来对数据建模,主要用于数据库管理系统的实现
-
物理模型
对数据底层的抽象,描述数据在系统内部的表示方式和存取方法,或在磁盘和磁带上的存储方式或存取方法,是面向计算机系统的,它是数据库管理系统的任务
-
-
-
概念模型
模型之间的转换:
首先将现实世界抽象为信息世界,在将信息世界转化为机器世界现实世界到概念模型的转换由数据库设计人员完成,从概念模型到逻辑模型的转换由数据库设计人员完成,从逻辑模型到物理模型由数据库管理系统完成
-
信息世界的概念
-
实体
客观存在并且相互区别的事物称为实体,比如一个学生
-
属性
实体所具有的某一特性称为属性,比如学生有学号、姓名就是属性
-
码
能够唯一标识实体的属性称为码
-
实体型
用实体名和属性名集合来抽象刻画同类实体,称为实体型
-
实体集
通一类型的实体集合称为实体集
-
联系
实体内部的联系和实体之间的联系,实体内部的联系指实体属性之间的联系,实体外部的联系指实体与实体之间的联系有一对一、一对多、多对多
-
-
概念模型的表示方法
最常用的是ER图用来描述实体世界的联系模型,ER方法也称为ER模型
-
-
什么是概念模型、概念模型的作用
-
概念模型
概念模型是现实世界到机器世界的中间层次,用于信息世界的建模
-
概念模型的作用
是数据库计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言
-
-
数据模型组成要素
-
数据结构
数据结构描述数据库的组成对象以及数据对象之间的联系
-
数据操作
对数据库中各种对象(型)的实例(值)允许执行的操作集合,包括操作及有关的操作规则
-
数据的完整性约束条件
给定数据型中数据及其联系所具有的制约和依存规则,用于限定符合数据模型的数据库状态以及状态的变化
-
-
常用数据模型
-
层次模型
层次模型用树型结构表示各类实体以及实体间的联系。
层次模型中一个结点表示一个记录类型,记录之间的联系用连线表示,这种联系是一对多的,在层次模型中只能处理一对多的实体联系。
现实世界中有行政结构、学校层次、家族等实例。
-
层次模型满足条件
有且只有一个结点没有双亲结点,这个结点称为根节点
根以外的其他结点有且只有一个双亲结点 -
数据操作
主要包增、删、改、查
-
完整性约束
如果没有相应的双亲结点就不能插入它的子女节点
如果删除双亲结点,那么子女结点也被一起删除 -
优缺点
-
优点
数据结构简单
查询效率高,优于关系模型,低于网状模型
有良好的完整性支持 -
缺点
不能处理多对多的联系
子女结点必须通过双亲结点
层次命令趋于程序化
-
-
-
网状模型
采用网作为数据的组织方式,典型代表是DBTG系统
现实世界中有学生选课、航空路线、学生宿舍等实例
-
网状模型满足条件
允许一个以上结点无双亲
一个结点可以有多个双亲 -
数据操作的限制
支持记录码的概念,码用来标识唯一数据项的集合
保证一个联系中双亲记录和子女记录之间是一对多的联系
保证双亲记录和子女记录之间的某些约束条件 -
优缺点
-
优点
能够更为直接的描述现实世界
具有良好的性能、存储效率高 -
缺点
结构比较复杂,不利于用户掌握
DDL、DML复杂,并且要嵌入某一高级语言中
记录之间的联系通过存储路径
-
-
-
关系模型
由关系据结构、关系操作集合、关系完整性三部分组成,在用户观点下关系模型是一张二维的表格,它有行和列组成
-
术语
-
关系(一张二维表)
一个关系对应通常说的一张表
-
元组(记录或行)
表中的一行称为一个元组
-
属性(列)
表中一列即为属性
-
码(主键)
码也称为码键,唯一确定一个元组
-
域
属性的取值范围
-
分量(一条记录的一个列值)
元组中的一个属性值
-
关系模式(表头)
对关系的描述,一般表示为关系名(属性1、属性2…)
关系模式要求关系必须是规范化的,关系的每一个分量必须是不可分的数据项,表中不能再有数据表
-
-
完整性约束
- 实体完整性
- 参照完整性
- 用户定义完整性
-
优缺点
-
优点
关系模型与格式化模型不同,它是严格按照数学概念基础上的
关系模型概念单一,实体和实体之间的联系都使用关系表示
存取路径对用户隐藏,从而具有更高的数据独立性、更好的安全性、也简化了开发建立的工作 -
缺点
查询效率不如非关系数据模型
-
-
-
面向对象数据模型
-
对象关系数据模型
-
半结构化数据模型
-
数据库系统的结构
开发人员度看数据库通常采用三级模式结构,这是数据库系统内部的结构
从用户角度看数据库分为单用户结构、主从结构、分布式结构、客户-服务器、浏览器-应用服务器,这是数据库系统的外部结构
-
三级模式结构
三级模式的优点:数据库系统在这三级模式之间提供了两级映射,正是这两级映射保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性
-
模式
模式也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,一个数据库只有一个模式
一个模式的一个具体值称为实例,同一个模式可以有多个实例,模式是相对稳定的,实例是相对变动的
-
外模式
也称为子模式或用户模式,它是数据库用户能够看到的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据逻辑表示。
一个模式可以有多个外模式,一个应用程序只能使用一个外模式,它是模式的子集
-
内模式
也称为存储模式,一个数据库只有一个内模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式
-
-
二级映射
-
外模式/模式映像
对于每一个外模式,数据库系统都有一个外模式/模式的映像,它定义了外模式与模式之间的对应关系。
逻辑独立性:
当数据库的逻辑结构发生改变时,由数据库管理员对外模式/模式映射进行相应的改变,可以使外模式保持不变,应用程序也不必修改,这就是数据库与程序的逻辑独立性 -
模式/内模式映像
数据库中只有一个模式和一个内模式,所以模式/内模式的映像是唯一的
物理独立性:
当数据库的存储结构发生改变时,由数据库管理员对模式/内模式映射进行相应的改变,可以使模式保持不变,应用程序也不必改变,这就是数据库与程序的物理独立性 -
为什么数据库系统具有数据与程序的独立性
DBMS在三级模式之间提供的两级映像保证了数据库系统中数据能够具有较高逻辑独立性和物理独立性
-
数据库系统组成部分
-
数据库系统组成部分
数据库系统由数据库、数据库管理系统、应用系统、数据库管理员和用户构成
-
人员
-
数据库管理员
全面管理和控制数据库系统具体职责:
决定数据库的信息内容和结构
数据库的存取结构和存取策略
数据的安全性要求和完整性约束
监控数据的使用和运行
数据库系统的改变和重组重构 -
系统分析员
应用系统的分析和规范说明,和DBA相结合,确定系统的硬件软件配置,并参与数据库系统的概要设计
-
数据库人员
数据的确定和数据库各级模式的设计,参加用户需求调查和系统分析
-
应用程序员
负责设计和编写应用系统的程序模块,并进行调试和安装
-
用户
-
偶然用户
每次访问数据库需要不同的数据库信息
-
简单用户
查询和更新数据库
-
复杂用户
能直接使用数据库编写自己的应用程序
-
-