数据库基本术语
数据字典:
- 数据库管理系统工作的依据
- 数据库借助数据字典来理解数据库中数据的组织,并完成对数据库中数据的管理和维护
- 由数据库管理系统自动生成并维护的一组表或视图
数据库管理系统(DBMS)
- 对数据进行管理的软件系统
- 数据库系统的核心组成部分
- 总是基于数据模型
- 可分为:关系型(最流行)、网状型、层次型、面向对象型
- 主要目标:使数据作为一种可管理的资源来处理
数据库系统(DBS)
- 构成:数据库、数据库管理系统(及开发工具)、应用系统、数据库管理员
- 组成:硬件平台、数据库、软件系统、应用系统、相关人员
数据库模式(三级模式)
- 概念模式(模式)
- 对数据库中全局数据逻辑结构的描述
- 全体用户公共的数据视图
- 主要描述数的概念记录类型及其关系,以及数据间的一些语义约束
- 外模式(子模式/用户模式):用户级
- 数据库用户(应用程序员和最终用户)的数据视图
- 通常为模式的子集,模式:外模式 = 1:n;
- 根据用户在应用需求、看待数据的方式等不同存在差异
- 提供子模式数据描述语言(子模式DDL)来定义子模式
- 保证数据库安全性
- 依赖于特定的外模式,定义在逻辑结构之上,独立于存储模式和存储设备
- 内模式(存储模式):物理级
- 模式:内模式 = 1:1
- 数据物理结构和存储方式的描述
- 不涉及物理描述和设备约束
- 提供内模式数据描述语言(内模式DDL)来定义内模式
- 依赖于全局逻辑结构,独立于外模式和存储设备
数据库的二级映像
- 为了实现用户和数据之间的透明化
- 能够逻辑地、抽象地处理数据
- 保证了数据库系统中的数据具有较高的逻辑独立性和物理独立性
- 实质上是一种对应关系,双方如何进行数据转换,并定义转换规则
- 外模式/模式映像:保证了数据与程序的逻辑独立性
- 模式/内模式映像:保证了数据和程序的物理独立性
数据模型
- 用于提供信息表示和操作手段的形式架构
- 按应用层次分为:
- 概念数据模型:面向客观世界、面向用户;现实世界——>机器世界
- 逻辑数据模型:面向数据库系统模型,能在数据库中表示,概念模型——>计算机
- 层次模型:树结构
- 关系模型:二维表
- 网状模型:图结构
- 面向对象模型:对象
- 物理数据模型:面向计算机物理表示,数据模型在计算机物理结构上的表示
- 三大要素:数据结构、数据操纵、数据完整性
数据完整性约束
- 实体完整性
- 具有唯一标志
- 主属性不能为空
- 参照完整性
- 外键与主码之间的引用规则
- 例:学生关系的“专业号”引用了专业关系的“专业号”,则学生的“专业号”必须依据专业的“专业号”取值
- 用户定义完整性
- 针对某一关系数据库的约束条件
- 反映某一具体应用所涉及的数据必须满足的语义要求
- 例:学生的年龄为2位数,用户将其定义在15-24之间
联机事务处理和联机分析处理
- 联机事务处理(OLTP)
- 最底层的应用
- 主要用于完成数据库应用系统的各项业务处理
- 优点:提高了工作效率和工作质量
- 缺点:产生大量数据
- 联机分析处理(OLAP)
- 从各方面观察数据,达到深入了解数据的目的
- 反映用户环境真实的方方面面
- 从领导和决策出发,全面、真实、直观地反映经营活动的各个方面
数据仓库
- 整合存在于多种数据库中的数据,可以对多种业务数据进行筛选和整合,可以用于数据分析、数据挖掘、数据报表。
- 特点
- 面向主题
- 数据仓库的数据被划分为一个一个的主题域,是数据进行分析归类的标识
- 具有独立性和完整性
- 数据信息按主题进行组织,为按主题进行决策提供信息
- 完整 性
- 进入仓库前需经过系统加工、汇总、整理
- 数据仓库建设中最关键、最复杂的一步
- 完成了元数据从面向应用到面向主题的转换
- 稳定性
- 数据只读,主要操作为查询操作,不能进行修改和删除
- 当数据超过数据仓库的存储期限时,会从当前数据仓库中删除
- 时变性
- 存储的数据包括 了企业各个历史时期的数据
- 存储的大量历史数据、当前数据、综合数据是不断变化的
- 引起变化的因素:新数据的引入、旧数据的删除、重新综合数据
- 面向主题
Oracle基本术语
数据字典
- 由一系列拥有数据库元数据信息的数据字典表和用户可以读取的数据字典视图组成,存放在SYSTEM表空间中
- 主要内容
- 系统空间信息
- 所有迷失对象的信息
- 例程运行的性能和统计信息
- Oracle用户的名字
- 用户访问或使用的审计信息
- 用户及角色被授予的权限信息
- 列的约束信息的完整性
- 列的缺省值
数据文件
- 特征:
- 1数据库:多数据文件;1数据文件:1数据库
- 设置,使其在数据库控件用完的情况下自动扩展
- 1表空间 = 1/多数据文件组成
- 大小表示方式:字节、数据块(最小的数据组织单位,由DB_BLOCK_SIZE确定)
控制文件
1.一个很小的二进制文件,维护着数据库的全局物理结构,用以支持数据库成功地启动和运行
2. 只要数据库是打开的,控制文件就必须处于可写的状态
3. 主要包含以下信息:
1. 数据库名称
2. 数据库数据文件和日志文件的名称和位置
3. 数据库建立日期
4. 日志历史
5. 归档日志信息
6. 表空间信息
7. 数据文件脱机范围
8. 数据文件拷贝信息
9. 备份组和备份块信息
10. 备份数据文件和重做日志信息
11. 当前日志序列数
12. 检查点信息
日志文件
- 用于记录对数据库的所有修改信息
- 是保证数据库安全和数据库备份与恢复的文件
- 主要在数据库出现故障时使用
- 至少有两个日志文件组,每组有1或多个日志成员
- 确定正在使用哪个日志组:v$log
- 确定正在使用哪个日志文件: v$logfile
- 强行进行日志切换:alter system switch logfile
- 查询运行模式:v$database
- 历史日志信息:v$log_history
- 采用镜像
- 模式:归档模式和非归档模式
- 由重做记录(重做条目)组成
- 不仅能够保护数据文件,还能够保护回滚段数据
数据文件、控制文件、日志文件以及一些其他的文件(参数文件、备份文件等)构成了Oracle数据库的物理存储结构
表空间
- 最大的逻辑结构
- 表空间是一个或多个数据文件的集合,所有的数据对象都被逻辑地存放在指定的表空间中
- 通常包括
- system、sysaux、temp三个默认表空间
- 一个或多个临时表空间
- 一个撤销表空间
- 几个应用程序专用的表空间
- 表空间的类型
- 系统表空间:
- system、sysaux表空间
- 所有数据库必需且自动创建的
- 一般存放Oracle的数据字典表及相应数据
- 永久性表空间
- 保存永久性数据
- 除撤销表空间、相对于临时表空间而言,其他表空间都是永久表空间
- 临时表空间
- 主要在查询带有排序算法时使用
- 用完之后立即释放
- 撤销表空间
- 自动撤销管理(SMU)
- 用撤销表空间来存储、管理撤销数据
- 使用撤销数据来隐式或显式的回退术语、提供数据的读一致性、帮助数控从逻辑错误中恢复、实现闪回查询
- 手动撤销管理(RBU):回滚段管理方式
- 只能采用一种撤销空间管理方式,由参数UNDO_MANAGEMENT确定
- 设置为AUTO:SMU
- 设置为MANUAL:RBU
- 自动撤销管理(SMU)
- 大文件表空间和小文件表空间
- 大文件表空间
- 为大型数据库设计的
- 来减少文件的数量,从而减少更新时间(因为:更新数据文件头部信息)
- 对应一个单一的数据文件或临时文件
- 小文件表空间
- 默认创建的表空间的类型
- 最多放置64K个数据文件
- 大文件表空间
- 系统表空间:
- 表空间的状态
- 可以控制表空间的可用性和安全性
- 为相关的备份恢复等工作提供保障
- 状态:
- 读写状态:默认,有相关权限的用户即可读写
- 只读状态:任何用户均无法写入和修改
- 脱机状态:暂时不被用户访问
- system表不能被设置为只读和脱机状态
- 临时表不能设置为只读状态
- 表空间的作用
- 控制用户所占用的空间配置
- 控制数据库所 占用的磁盘空间
- 将表空间设置为只读而保证大量的静态数据不被修改
- 将表空间的数据和索引数据分别存储在不同的表空间中,提高数据库的I/O性能
- 将不同表的数据、分区表的不同分区的数据存储在不同对的表空间中,提高I/O性能,有利于数据库的部分备份和恢复等管理工作
- 提供了一个备份和恢复的单位,Oracle提供了按表空间备份和恢复的功能
段
- 用于存储表空间中某一种特定的具有独立存储结构的对象的所有数据,不连续
- 由一个或多个区组成
- 包含表空间中一种指定类型的逻辑存储结构
- 已数据区为单位分配空间
- 类型
- 数据段
- 存储表中的所有数据
- 在用户创建表时,,就会在该用户的默认表空间中分配一个同名的数据段
- 创建了几个表,就有几个数据段
- 段的增大通过增加取得个数实现,区的大小是块的整数倍
- 索引段
- 用于存储索引的所有数据
- 创建索引时,自动分配一个索引段
- 临时段
- 存储排序操作所产生的临时数据
- 使用order by进行排序或汇总时,自动创建一个临时段
- 临时表空间是共用的
- 回滚段
- 存储用户数据被修改之前的值
- 每个数据数据库至少拥有一个回滚段
- 数据段
区
- 由物理上连续存放的块构成
- 存储分配的最小单位
块
- 最小的数据管理单位、执行输入输出操作时的最小单位(操作系统块)
- 可以在 create database 创建数据库实例时指定,最小为2K,最大为64K
- 数据块具有相同的结构,其基本结构由以下几个部分组成:
- 块头部:一般的属性信息:块的物理地址、块所属的段的类型
- 表目录:该表的信息
- 行目录:存储该块中有效的行信息
- 空闲空间:尚未使用的存储空间
- 行空间:块中已使用的存储空间,在行空间中存储了表或索引的数据
- 注意
- 块头部、表目录、行目录组成了块的头部信息区,不存放实际的数据库数据,起引导系统读取数据的作用。若头部信息区损坏,则整个数据块将失效
- 空闲空间和行空间共同构成块的存储区,其总和就是块的总容量