一、数据库绪论
1.数据库系统概述
数据(Data)
Q: 什么是数据
A: 数据(Data)是数据库中存储的基本对象。数据包括数字、文字、图形、图像、音频、视频、学生的档案记录等
数据库(Database)
Q: 什么是数据库
A: 数据库(Database)是长期储存在计算机内、有组织的、可共享的大量数据的集合。
Q: 数据库有什么基本特征
- 数据按一定的数据模型组织、描述和储存
- 冗余度较小
- 较高数据独立性
- 易扩展
- 可为各种用户共享
数据库管理系统(DBMS)
Q: 什么是数据库管理系统 (DBMS)
A:是位于用户与操作系统之间的一层数据管理软件是基础软件,是一个大型复杂的软件系统。它主要用于科学地组织和存储数据、高效地获取和维护数据。
数据库管理系统的主要功能
1. 数据定义功能
- 提供数据定义语言(DDL)
- 定义数据库中的数据对象
2.数据组织、存储和管理
- 分类组织、存储和管理各种数据
- 确定组织数据的文件结构和存取方式
- 实现数据之间的联系
- 提供多种存取方法提高存取效率
3.数据操纵功能
- 提供数据操纵语言(DML)
- 实现对数据库的基本操作 (查询、插入、删除和修改)
4.数据库的事务管理和运行管理
- 数据库在建立、运行和维护时由数据库管理系统统一管理和控制
- 保证数据的安全性、完整性、多用户对数据的并发使用发生故障后的系统恢复
数据库系统(DBS)
Q: 数据库系统由什么构成
- 数据库
- 数据库管理系统(及其应用开发工具)
- 应用程序
- 数据库管理员
2.数据库系统的特点
数据结构化
- 数据的整体结构化是数据库的主要特征之一。
- 它不再仅仅针对某一个应用,而是面向全组织。
- 不仅数据内部结构化,整体也是结构化的,数据之间具有联系。
数据的共享性高,冗余度低且易扩充
数据面向整个系统,可以被多个用户、多个应用共享使用。
数据共享的好处:
- 减少数据冗余,节约存储空间。
- 避免数据之间的不相容性与不一致性。
- 使系统易于扩充。
数据独立性高
数据独立性由数据库管理系统的二级映像功能来保证,它主要分为:物理独立性和逻辑独立性。
- 物理独立性:指用户的应用程序与数据库中数据的物理存储是相互独立的,当数据的物理存储改变了,应用程序不用改变。
- 逻辑独立性:指用户的应用程序与数据库中数据的逻辑结构是相互独立的,当数据的逻辑结构改变了,应用程序不用改变。
数据由数据库管理系统统一管理和控制
数据库管理系统提供的数据控制功能:
- 数据的安全性(Security)保护:
- 保护数据以防止不合法的使用造成的数据的泄密和破坏。
- 数据的完整性(Integrity)检查:
- 保证数据的正确性、有效性和相容性。
- 并发(Concurrency)控制:
- 对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。
- 数据库恢复(Recovery):
- 将数据库从错误状态恢复到某一已知的正确状态。
二、数据模型
Q: 什么是数据模型
A:数据模型是对现实世界数据特征的抽象,通俗地讲数据模型就是现实世界的模拟。数据模型是数据库系统的核心和基础。
Q: 数据模型有什么要求
- 能比较真实地模拟现实世界
- 容易为人所理解
- 便于在计算机上实现
Q: 数据模型分为哪几类
A:数据模型分为两类(两个不同的层次)。一类为概念模型,另一类为逻辑模型和物理模型。
1.概念模型
Q: 什么是概念模型
A:概念模型,也称信息模型,它是按用户的
观点来对数据和信息建模,用于数据库设计。
Q: 概念模型有什么用
- 概念模型用于信息世界的建模
- 是现实世界到机器世界的一个中间层次
- 是数据库设计的有力工具
- 数据库设计人员和用户之间进行交流的语言
Q: 概念模型有什么要求
- 较强的语义表达能力。
- 简单、清晰、易于用户理解。
Q: 概念模型如何表示
A:实体-联系方法
信息世界中的基本概念
- 实体(Entity):客观存在并可相互区别的事物称为实体。
- 属性(Attribute):实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。
- 码(Key):唯一标识实体的属性集称为码。例如学号是学生实体的码。
- 域(Domain):属性的取值范围称为该属性的域。
- 实体型(Entity Type) :具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
- 实体集(Entity Set):同型实体的集合称为实体集。
- 联系(Relationship) :在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。
- 实体内部的联系通常是指组成实体的各属性之间的联系。实体之间的联系通常是指不同实体集之间的联系。实体之间的联系有一对一、一对多和多对多等多种类型。
2.数据模型
Q: 数据模型由什么组成
A:数据模型由数据结构、数据操作、数据的完整性约束条件组成。
数据结构
数据模型的数据结构描述数据库的组成对象,以及对象之间的联系。数据结构是对系统静态特性的描述。
数据操作
对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则,它是对系统动态特性的描述。
数据操作的类型:
- 查询
- 更新(包括插入、删除、修改)
数据的完整性约束条件
- 是一组完整性规则的集合
- 用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。
Q: 什么是完整性规则
A:完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则。
3.常见的数据模型
- 层次模型
- 网状模型
- 关系模型
- 面向对象数据模型
- 对象关系数据模型
- 半结构化数据模型
层次模型
Q: 什么是层次模型
A:满足下面两个条件的基本层次联系的集合就是层次模型
- 有且只有一个结点没有双亲结点,这个结点称为根结点。
- 根以外的其它结点有且只有一个双亲结点。
- 层次模型是数据库系统中最早出现的数据模型
- 层次模型用树形结构来表示各类实体以及实体间的联系
网状模型
Q: 什么是网状模型
A:满足下面两个条件的基本层次联系的集合就是层次网状模型
- 允许一个以上的结点无双亲。
- 一个结点可以有多于一个的双亲。
- 网状数据库系统采用网状模型作为数据的组织方式
关系模型
Q: 什么是关系模型
A:使用表格表示实体和实体之间关系的数据模型称之为关系数据模型。
- 关系数据库系统采用关系模型作为数据的组织方式
- 在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
关系模型的数据结构
- 关系:一个关系对应通常说的一张表。
- 元组:表中的一行即为一个元组。
- 属性:表中的一列即为一个属性,给每一个属性起一个名称即属性名。
- 主码:也称码键,表中的某个属性组,它可以唯一确定一个元组。
- 域:是一组具有相同数据类型的值的集合,属性的取值范围来自某个域。
- 分量:元组中的一个属性值。
- 关系模式:对关系的描述。
三、数据库系统的结构
1.数据库系统模式的概念
模式
- 数据库逻辑结构和特征的描述
- 是型的描述,不涉及具体值
- 反映的是数据的结构及其联系
- 模式是相对稳定的
实例
- 模式的一个具体值
- 反映数据库某一时刻的状态
- 同一个模式可以有很多实例
- 实例随数据库中的数据的更新而变动
2.数据库系统的三级模式结构
模式(也称逻辑模式)
Q: 什么是模式
A:模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
- 一个数据库只有一个模式
- 模式是数据库系统模式结构的中间层
外模式(也称子模式或用户模式)
Q: 什么是外模式
A:外模式是数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
- 外模式介于模式与应用之间。
- 是保证数据库安全性的一个有力措施。
- 每个用户只能看见和访问所对应的外模式中的数据
内模式(也称存储模式)
Q: 什么是内模式
A:内模式是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
- 一个数据库只有一个内模式。
3.数据库的二级映像功能与数据独立性
外模式/模式映像
保证了数据的逻辑独立性
- 当模式改变时,数据库管理员对外模式/模式映象作相应改变,使外模式保持不变
- 应用程序是依据数据的外模式编写的,应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性
模式/内模式映像
保证数据的物理独立性
- 当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变。
- 应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。
四、数据库系统的组成
- 数据库
- 数据库管理系统(及其开发工具)
- 数据库管理员
- 应用程序