数据库复习一
# 数据库的四个基本概念:
数据(Data):描述事物的符号记录称为数据
数据库(DB)
- 定义:数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。
- 较小的冗余度
- 较高的数据独立性
- 易扩展性
数据库管理系统(DBMS):计算机的基础软件
- 数据定义功能
- 数据组织、存储和管理
- 数据操纵功能
- 数据库的事务管理和运行管理
- 数据库的建立和维护功能
- 其他功能
数据库系统(DBS):由数据库、数据库管理系统、应用程序和数据管理员组成的存储、管理、处理和维护数据的系统
# 数据库系统的特点:
数据结构化(数据库系统与文件系统的主要区别)
数据的共享性高、冗余度低和易扩展性
数据独立性高
数据由数据库管理系统统一管理和控制
- 数据的安全性 (security) 保护
- 数据的完整性 (integrity) 检查
- 并发 (concurrency) 控制
- 数据库恢复 (recovery)
# 概念模型:
概念模型是信息建模,是对现实世界的事物符号化的描述,为计算机处理做准备
信息世界主要概念:
- 实体 (Entity):客观存在各类事物
- 属性 (Attribute):实体所具有的的特性
- 实体型 (Entity Type):用实体名及属性名集抽象实体
- 实体集 (Entity Set):同型实体的集合
- 码 (Key):能唯一标识实体的属性集
# 用 E-R 图建立概念模型 (Chen 方法)
E-R 模型的概念:属性、联系、关键字 / 码,例图如下:
# 数据模型
数据模型是信息模型 (概念模型) 的数据化,从计算机的角度出发,提供表示和组织数据的方法。
数据模型三要素
- 数据结构:记录间的组织形式。静态
- 数据操纵:建立在特定结构下的操纵实现。动态
- 数据完整性约束:记录内部及记录间的限定
数据模型的分类:
- 层次模型:用树型结构描述
- 网状模型:用图型结构描述
- 关系模型:用表型结构描述
- 面向对象模型:用对象结构描述
优点:
- 能够更为直接地描述现实世界,如一个结点可以有多个双亲
- 具有良好的性能,存取效率较高
缺点:结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握
# 关系模型
数据结构:表(内含属性、主码、元组、分量)
域:属性的取值范围
关系模式:对关系结构的描述,定义如下:
关系名 (属性 1,属性 2,...,属性 n)
例如:学生 (学号,姓名,年龄,性别,系,年级)
存储结构:
实体和联系都作为数据文件来存储
- 实体型:直接用关系 (表) 表示
- 属性:用属性名表示
- 一对一联系:隐含在实体对应的关系中
- 一对多联系:隐含在实体对应的关系中
- 多对多联系:直接用关系表示
概念模型到关系模型的转换
实体 -> 关系;属性 -> 关系属性
实体型的属性转换为关系的属性
实体码转换为关系的码
概念模型到数据模型的转换
1:1 联系
将一端关系模式码连通联系属性放入另一端对应的关系模式中合并
如:一个班级对应一个班长,转换后如下:
班级 (<u> 班号 </u>,系别,班主任,入学时间)
班长 (<u> 学号 </u>,姓名,性别,年龄,<u > 班号 </u>,任期)
任期是班级 - 班长联系的属性
1:m 联系
将 1 端联系的码连通联系属性与 n 端对应的关系模式合并
如:一个部门对应多个职工,转换后如下:
部门 (<u> 部门号 </u>,部门名,电话)
职工 (<u> 职工号 </u>,职工名,职称,部门号,工资)
工资是联系聘用的属性
m:n 联系
m 端和 n 端的码和属性单独成两条关系模式,关系单独成一条关系模式,并与 m 端、n 端的码和关系的属性进行合并
如:一个学生选修多门课,一门课可以多个学生选修,转化后如下:
课程 (<u> 课程号 </u>,课程名,学分,先修课号)
学生 (<u> 学号 </u>,姓名,性别,年龄)
选修 (<u> 学号,课程号 </u>,成绩)
优点:
- 建立在严格的数学概念的基础上
- 概念单一。数据结构简单、清晰,用户易懂易用
- 实体型和各类联系都用关系来表示
- 关系模型的存取路径对用户透明
- 具有了更高的数据独立性
- 简化了数据库开发工作
缺点:存取路径对用户透明导致查询效率往往不如非关系数据模型
数据操纵与完整性约束
- 查询、插入、删除、修改:数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合
- 实体完整性、参照完整性、用户定义完整性
# 数据库系统结构
数据库系统结构的两种划分方法:
- 从数据库管理系统角度看:三级模式结构
- 从数据库最终用户角度看
- 集中式结构 (单用户结构、主从式结构)
- 分布式结构
- 客户 / 服务器结构
- 并行结构
# 一、数据库系统的模式的概念
- 型 (Type): 对某一类数据的结构和属性的说明
- 值 (Value): 是型的一个具体赋值
模式 (Schema)
- 数据库逻辑结和特征的描述
- 是型的描述
- 反映的是数据的结构及其联系
- 模式是相对稳定的
模式的一个实例 (Instance)
- 模式的一个具体值
- 反应数据库某一时刻的状态
- 同一模式可以有很多实例
- 实例随数据库中的数据的更新而改动
# 二、数据库系统的三级结构
# 1、模式 (Schema, 也称逻辑模式)
- 数据库中全体数据的逻辑结构和特征的描述
一个数据库只要一个模式
模式的地位:是数据库系统模式结构的中间层
- 与数据的物理存储细节和硬件环境无关
- 与具体应用程序、开发工具及高级程序设计语言无关
模式的定义:
- 数据的逻辑结构 (数据项名字,类型,取值范围等)
- 数据之间联系
- 数据有关的安全性、完整性要求
# 2、外模式 (External Schema, 也称子模式或用户模式)
- 数据库用户 (包括应用程序和最终用户) 使用的局部数据的逻辑结构和特征描述
外模式的地位:介于模式与应用之间
模式与外模式的关系:一对多
- 外模式通常是模式的子集
- 一个数据库可以有多个外模式
- 对模式中同一数据,在外模式中的结构、类型等都可以不同
外模式与应用的关系:一对多
- 同一外模式可为某一用户的多个应用系统所使用
- 但一个应用程序只能使用一个外模式
外模式的用途:
- 保证数据库安全性的一个有力措施
- 每个用户只能看见和访问所对应的外模式中的数据
# 3、内模式 (Internal Schema, 也称存储模式)
是数据物理结构和存储方式的描述
是数据在数据库内部的表示方式
- 记录的存储方式 (顺序存储,按照 B 树结构存储,按 hash 方法存储)
- 索引的组织方式
- 数据是否压缩存储
- 数据是否加密
一个数据库只有一个内模式
# 4、外模式 / 模式映象
- 定义外模式与模式之间的对应关系
- 每一个外模式都对应一个外模式 / 模式映象
- 映象定义通常包含在各自外模式的用途中
外模式 / 模式映象的用途:保证数据的逻辑独立性
逻辑独立性:当模式改变时,数据库管理员修改的有关的外模式 / 模式映象,使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性
# 5、模式 / 内模式
- 模式 / 内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系
模式 / 内模式映象的用途:保证了数据的物理独立性
物理独立性:当数据库的存储结构改变了,数据库管理员修改模式 / 内模式映象,使模式保持不变,应用程序不受影响。保证了数据与程序的物理独立性。
# 数据库系统的组成
# 数据库管理员:
- 决定数据库中的信息内容和结构
- 决定数据库的存储结构和存取策略
- 定义数据的安全性要求和完整性约束
- 监控数据库的使用和运行
- 数据库的改进和重组
# 系统分析员:
- 负责应用系统的需求分析和规范说明
- 与用户即 DBA 协商,确定系统的硬软件配置
- 参与数据库系统的概要设计
# 数据库设计人员:
- 参与用户需求调查和系统分析
- 确定数据库中的数据
- 设计数据库各级模式
# 应用程序员:
- 设计和编写应用系统的程序模块
- 进行调试和安装