绪论
一、数据库概念
1.数据库
定义:是长期储存在计算机内、有组织的、可共享的大量数据的集合。
基本特征:数据按一定的数据模型组织、描述和储存;可为各种用户共享;冗余度较小;数据独立性较高;易扩展
2.数据库管理系统
位于用户与操作系统之间的一层数据管理软件
用途:n科学地组织和存储数据、高效地获取和维护数据;n数据定义功能;n数据组织、存储和管理;n数据操纵功能;n数据库的事务管理和运行管理;n数据库的建立功能;n其它功能
3.数据库系统
构成:数据库,数据库管理系统,应用程序,数据库管理员,硬件平台及数据库,软件,人员
4.数据库管理技术的发展:人工管理阶段,文件系统阶段,数据库系统阶段
5.数据库系统的特点
- 数据结构化
- 数据的共享性高,冗余度低且易扩充
- 数据独立性高,包括物理独立性与逻辑独立性
- 数据由数据库管理系统统一管理和控制
6.数据库管理系统提供的数据控制功能
(1)数据的安全性(Security)保护
保护数据以防止不合法的使用造成的数据的泄密和破坏。
(2)数据的完整性(Integrity)检查
保证数据的正确性、有效性和相容性。
(3)并发(Concurrency)控制
对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。
(4)数据库恢复(Recovery)
将数据库从错误状态恢复到某一已知的正确状态。
二、数据模型
1.概念模型:
概念模型的一种表示方法:实体-联系方法
实体之间的联系有一对一、一对多和多对多等多种类型
2.数据模型的组成要素
- 数据结构:n描述数据库的组成对象,以及对象之间的联系
- 数据操作:
- 查询
- 更新(包括插入、删除、修改)
- 数据的完整性约束条件
三、常用的数据模型
1.层次模型(最早出现的数据模型,用树形结构来表示各类实体以及实体间的联系)
(1).满足下面两个条件的基本层次联系的集合为层次模型
a.有且只有一个结点没有双亲结点,这个结点称为根结点
b.根以外的其它结点有且只有一个双亲结点
(2).层次模型中的几个术语:根结点,双亲结点,兄弟结点,叶结点
(3)层次模型的数据操纵:查询,插入,删除,更新
(4)层次模型的完整性约束条件
- 无相应的双亲结点值就不能插入子女结点值
- 如果删除双亲结点值,则相应的子女结点值也被同时删除
- 更新操作时,应更新所有相应记录,以保证数据的一致性
2.网状模型
(1)满足下面两个条件的基本层次联系的集合:
a. 允许一个以上的结点无双亲;
b. 一个结点可以有多于一个的双亲。
(2)用网状模型间接表示多对多联系
方法: 将多对多联系直接分解成一对多联系
3.关系模型
(1)数据的逻辑结构是一张二维表,它由行和列组成。
(2)
- 关系(Relation):一个关系对应通常说的一张表
- 元组(Tuple):表中的一行即为一个元组
- 属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名
- 主码(Key):也称码键。表中的某个属性组,它可以唯一确定一个元组
- 域(Domain):是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
- 分量:元组中的一个属性值。
- 关系模式:对关系的描述
- 关系名(属性1,属性2,…,属性n)
例如:学生(学号,姓名,年龄,性别,系名,年级)
(3)关系的规范化条件:关系的每一个分量必须是一个不可分割的数据项,不允许表中还有表。
(4)关系的完整性约束条件
- 实体完整性
- 参照完整性
- 用户定义的完整性
四、数据库系统的结构
1.数据库系统的三级模式结构:模式,外模式,内模式
(1)模式:数据库中全体数据的逻辑结构和特征的描述;v一个数据库只有一个模式;是数据库系统模式结构的中间层
(2)外模式(子模式或用户模式):n局部数据的逻辑结构和特征的描述;n模式与外模式的关系:一对多;n外模式与应用的关系:一对多
(3)内模式:n是数据物理结构和存储方式的描述;v一个数据库只有一个内模式
(4)二级映象:
- 外模式/模式映像:保证数据的逻辑独立性
- 模式/内模式映像:保证数据的物理独立性
五、数据库系统的组成
(1).数据库管理员(DBA)具体职责
a. 决定数据库中的信息内容和结构
b. 决定数据库的存储结构和存取策略
c. 定义数据的安全性要求和完整性约束条件
d.监控数据库的使用和运行
- 周期性转储数据库:数据文件;日志文件
- 系统故障恢复
- 介质故障恢复
- 监视审计文件
e. 数据库的改进和重组
- 性能监控和调优
- 定期对数据库进行重组织,以提高系统的性能
- 需求增加和改变时,数据库须需要重构造
(2).系统分析员
- 负责应用系统的需求分析和规范说明
- 与用户及数据库管理员结合,确定系统的硬软件配置
- 参与数据库系统的概要设计
(3).数据库设计人员
- 参加用户需求调查和系统分析
- 确定数据库中的数据
- 设计数据库各级模式
(4).应用程序员
- 设计和编写应用系统的程序模块
- 进行调试和安装