第 6 章 数据库的设计与维护
DESCRIPTION
第 6 章 数据库的设计与维护. 6.1 概述 6.2 需求分析 6.3 概念结构设计 6.4 逻辑结构设计 6.5 物理设计 6.6 实现与维护 6.7 用 ORACLE 建立数据库 6.8 数据字典 (Data Dictionary). 数据库的设计步骤. 需求收集和分析 : 用户关心什么、用户要什么结果 设计概念结构: 存什么、关系(联系)如何、 E/R 图是各种数据模型的共同基础 设计逻辑结构: 用什么数据模型、数据库的模式( database schema )、用户子模式 设计物理结构: 数据怎么存、根据 DBMS 产品、环境特点 - PowerPoint PPT PresentationTRANSCRIPT
第 6 章 数据库的设计与维护6.1 概述6.2 需求分析6.3 概念结构设计6.4 逻辑结构设计 6.5 物理设计6.6 实现与维护6.7 用ORACLE建立数据库 6.8 数据字典(Data Dictionary)
数据库的设计步骤需求收集和分析 :用户关心什么、用户要什么结果设计概念结构:存什么、关系(联系)如何、 E/R图是各种数据模型的共同基础设计逻辑结构:用什么数据模型、数据库的模式( database schema)、用户子模式设计物理结构:数据怎么存、根据 DBMS产品、环境特点物理实现:运行 DDL、装入测试数据、应用程序
6.1 概述 -- 数据库的设计步骤第 0步
规划
第 4步物理设计
第 3步逻辑设计
第 2步概念设计
物理数据结构
需求说明书
信息结构
逻辑数据库结构( DBMS 能 处 理的)应用程序说明书
第 1步需求描述和分析
硬件和OS特性
返回章
总体信息需求
6.2 需求分析 6.2.1 需求的收集
需求的分析整理 评审
6.2.2 数据字典
返回章
需求的分析处理 业务流程分析 :数据流图( DFD )
分析结果的描述 除了 DFD 以外 , 还要用一些规范表格进行补充描述
输入处理
查找分析
输出处理
存 储 文件
评审 确认某一阶段的任务是否全部完成 保证设计质量 常常导致设计过程的回溯与反
返回节
数据字典 数据需求写成文档 对数据库数据描述的集中管理 存贮和检索元数据
返回节
6.3 概念结构设计 6.3.1 概念模型 6.3.2 概念设计的主要步骤
返回章
6.3.1 概念模型概念模型 :表达概念设计结果的工具 概念模型 应具备的特征 :有丰富的语义表达能力 易于交流和理解 易于变动 易于向各种数据模型转换
ER 模型
返回节
6.3.2 概念设计的主要步骤进行数据抽象 , 设计局部概念模式 将局部概念模式综合成全局概念模式 评审
用 ER 方法进行数据库的概念设计 (1) 设计局部 ER 模式
(2) 设计全局 ER 模式。 (3) 全局 ER 模式的优化
设计局部 ER 模式① 确定局部结构范围② 实体定义③ 联系定义:映射基数、联系命名④ 属性分配
设计全局 ER 模式 局部 ER 模式综合成单一的全局概念结构
确定公共实体类型 局部 ER 模式的合并 消除冲突 :属性冲突 、结构冲突、命名冲突 全局 ER 模式的优化 实体类型的合并 冗余属性的消除 冗余联系的消除
例子:冗余联系的消除
返回节
6.4 逻辑结构设计 6.4.1 逻辑设计环境 6.4.2 关系数据库的逻辑设计
返回章
6.4.1 逻辑设计环境输入 独立于 DBMS 的概念模式 处理需求 DBMS 特性
输出 DBMS 可处理的模式 子模式 应用程序设计指南 物理设计指南
返回节
6.4.2 关系数据库的逻辑设计
关系数据库的逻辑设计 1. 导出初始关系模式
一个实体类型转换成一个关系模式 一个联系类型转换成一个关系模式
2. 规范化处理 确定规范级别 : 3NF 或 BCNF 是适当的
标准 实施规范化处理
3. 模式评价 功能评价 性能评价 返回节
6.5 物理设计 逻辑数据库结构 物理数据库结构 6.5.1 物理设计的步骤 6.5.2 物理设计环境 6.5.3 物理设计性能的测量
返回章
6.5.1 物理设计的步骤 五步 、可能要反复多次 1. 存贮记录结构设计 2. 确定数据存放位置 3. 访问方法的设计 4. 完整性和安全性考虑 5. 程序设计
返回节
6.5.2 物理设计环境 引进的新参数 :物理设备量限制、时间特性及所有的运行要求 输出 :物理数据库结构说明书 ,包括存贮记录格式、存贮记录位置分布及访问方法。它能满足所有的操作需求并给出对硬件、软件系统的约束
返回节
6.5.3 物理设计性能的测量 1. 查询响应时间 2. 更新事务的开销 3. 报告生成的开销 4. 改组频率和开销5. 主存贮空 6. 辅助存贮空间
返回节
6.6 实现与维护 6.6.1 数据库的实现6.6.2其它设计工作 6.6.3 运行与维护
返回章
6.6.1 数据库的实现 建立实际数据库结构 测试数据库结构装入数据
返回节
6.6.2其它设计工作 数据库的再组织设计 故障恢复方案设计 安全性考虑 事务控制
返回节
6.6.3 运行与维护 维护数据库的安全性与完整性 监测并改善数据库性能 增加新功能 修改错误
返回节
6.7 用 ORACLE 建立数据库6.7.1 数据库结构和空间管理 6.7.2 用 ORACLE 建立和修改数据库 6.7.3 初始化参数文件
返回章
6.7.1 数据库结构和空间管理ORACLE 物理数据库结构 :数据文件、日志文件和控制文件 逻辑数据库结构 :一个或多个表空间 数据库模式对象(即表、视图、索引、聚集、
序列、存储过程)
数据库、表空间和数据文件
1. 物理结构 数据文件 :一个或多个 ,物理地存储 一个数据文件仅与一个数据库相联系 一旦建立,数据文件不能改变大小 一个表空间(数据库存储的逻辑单位)由一
个或多个数据文件组成
日志文件 控制文件
2. 逻辑结构 表空间 :数据库可逻辑地划分为一个或多个表空间。 每一个表空间是由一个或多个数据文件组成
段、范围和数据块 段 :由一个或多个范围组成,分为数据段、
索引段、回滚段和临时段 范围 :存储空间分配的一个逻辑单位 ,由连续的数据块所组成
数据块 : I/O 的最小单位 (3) 模式和模式对象
模式和模式对象表 视图 :用一个查询定义,基于表聚集 :一组表 索引 序列生成器 同义词 程序单元 数据库链
返回节
6.7.2 用 ORACLE 建立和修改数据库
1. 建立数据库命令 命令格式如下:CREATE DATABASE [DB 名 ][CONTROLFILE REUSE][LOGFILE[GROUP 整数 ]< 文件说明 >,…][MAXLOGFILES 整数 ][MAXLOGMEMBERS 整数 ][MAXLOGHISTORY 整数 ][DATAFILE< 文件说明 >,…][MAXDATAFILES 整数 ][MAXINSTANCES 整数 ][ARCHIVELOG][CHARACTER SET 字符集名 ][EXCLUSIVE]其中:文件说明(日志文件组)的格式为:‘文件名’ [ (’文件名’,…) ][SIZE 整数 [K][M][REUSE]文件说明(文件文件)的格式为:‘文件名’ [SIZE 整数 [K][M]][REUSE]
建立数据库 –续 ( 关键字和参数 )
DB 名 :为所要建立的数据库的名字 CONTROLFILE REUSE :重新使用由初始化参数 CONTROL_FILES 所标识的已存在的控制文件 LOGFILE :指定用作日志文件的一个或多个文件 MAXLOGFILES :指定数据库可建的日志文件组的最大值 MAXLOGMEMBERS;指定日志文件组的最大的成员数 MAXLOGHISTORY :指定归档日志文件的最大数目 MAXLOGMEMBERS;指定日志文件组的最大的成员数 DATAFILE :指定用作为数据文件的一个或多个文件 ARCHIVELOG :为日志文件组建立归档方式 CHARACTER SET :指定数据库用于存储数据的字符
建立数据库例CREATE DATABASE NewTest CONTROLFILE REUSE LOGFILE GROUP 1 (‘diskb:log1.log’,’diskc:log1.log’) SIZE 50K, GROUP 2 (‘diskb:log2.log’.’diskc:log2.log’) SIZE 50K MAXLOGFILES 5 MAXLOGHISTORY 100 DATAFILE’diska:dbone.dat’SIZE 2M MAXDATAFILES 10 MAXINSTANCES 2 ARCHIVELOG EXCLUSIVE
2. 更改数据库命令 常用的部份语法格式如下:ALTER DATABASE [DB 名 ][MOUNT[EXCLUSIVE][PARALLEL]][ADDLOGFILE[THREAD 整数 ][GROUP 整数 ] 文件说明,… ]RENAME FILE ’ 文件名’ TO ’ 文件名’ ,… ][ENABLE[PUBLIC]THREAD整数 ]RENAME GLOBAL_NAME TO DB 名[域名 ]
更改数据库命令 -- 关键字和参数说明
DB 名 : 标识要更改的数据库 NOUNT:装配数据库 ( 实例未装配该数据库时 )实例已装配时可使用以下选项:ADDLOGFILE:加一个或多个日志文件组到指定的线索 RENAME :对数据库文件或日志文件成员换名 已装配数据库并已打开,可使用下列选项 :DISNABLE/ENABLE :使指定的线索不可实施 / 可实施 RENAME GLOBAL_NAME:修改数据库的全局名
更改数据库命令:例子例 6.4: 将名为 STOCKS 数据库 , 以专用方式安装。
ALTER DATABASE Stocks MOUNT EXCLUSIVE例 6.5: 对 GROUP 参数值为 3 的日志文件组增加两个成员。
ALTER DATABASE Stocks ADD LOGFILE GROUP 3(‘diska:log3.log’,’diskb:log
3.log’) SIZE 50K
例 6.6: 对日志文件成员换名。 ALTER DATABASE Stocks RENAME FILE’diskb:3.log’TO’diskd:log3.log’
更改数据库命令:例子 例 6.7: 对线索 5增加一日志文件组 ,其 Group 参数值为 4, 包含三个成员。
ALTER DATABASE Stocks ADD LOGFILE THREAD 5 GROUP 4 (‘diska:log4.lo
g’, ‘diskb:log4.log’,’diskc:log4.log’)
例 6.8:使线索 5不能实施。 ALTER DATABASE Stocks DISABLE THREAD 5
例 6.9:使线索 5 可实施 ,使它为任何 ORACLE 实例使用 ,那些实例不要显式地请求该线索。
ALTER DATABASE Stocks ENABLE PUBLIC THREAD 5
更改数据库命令:例子例 6.10: 建立基于文件’ DISKY:DB1.DAT’ 的数据文件’ DISKX:DB1.DAT’ 。
ALTER DATABASE Stocks CREATE DATAFILE’DISKX:DB1.D
AT’AS’DISKY:DB1.DAT’ 例 6.11:修改数据库的全局名。
ALTER DATABASE stocks RENAME GLOBAL_NAME TO Sales.Austalia.acme.com
3. 控制文件 - 语法格式语法格式如下:CREATE CONTROLFILE[REUSE][SET]DATABASE DB 名LOGFILE[GROUP 整数 ] 文件说明,… [RESETLOGS][NOTRESETLOGS]DATAFILE 文件说明,…[MAXLOGFILES 整数 ][MAXLOGMEMBERS 整数 ][MAXLOGHISTORY 整数 ][MAXDATAFILES 整数 ][MAXINSTANCES 整数 ][ARCHIVELOG]
3. 控制文件 - 关键字和参数说明
REUSE: 说明由初始化参数 CONTROL_FILES 所标识的控制文件可被重用 SET DATABASE:修改数据库的名字 DATABASE: 指定数据库的名字 ,该参数值必须是已存在的数据库名 LOGFILE:为数据库指定日志文件组 RESETLOGS :忽略 LOGFILE 子句所列的文件的内容 NORESETLOGS: 说明在 LOGFILE 子句中全部文件在最后一次打开数据库中使用 DATAFILE: 指定数据库的数据文件 ,必须列出全部数据文件
例 : 重建一控制文件 CREATE CONTROLFILE REUSE SET DATABASE orders_2 LOGFILE GROUP 1(‘diskb:log1.olg.’,’diskc:log1.log’) SIZE 50K, GROUP 2(‘diskb:log2.log’,’diskc:log2.log’) SIZE 50K NORESETLOGS DATAFILE’diska:dbone.dat’SIZE 2M MAXLOGFILE 5 MAXLOGHISTORY 100 MAXDATAFILES 10 MAXINSTANCES 2 ARCHIVELOG
4. 表空间 -- 建立表空间命令 CREATE TABLESPACE 表空间名 DATAFILES 文件说明,…[DEFAULT STORAGE 存贮子句 ]
[OFFLINE]
关键字和参数说明:表空间名:为所建立的表空间的名字。DATAFILE :指定组成表空间的数据文件或文件。DEFAULT STORAGE :为在该表空间中建立的全部对象指定缺少的存储参数,由存储子句指定。STORAGE 存储子句用于指定存储特征,该子句可出现在建立或更改下列对象的命令中:聚集、索引、滚回段、快照、快照日志、表和表空间。
STORAGE 子句的语法 STORAGE([INITINAL 整数 [K][M]]
[NEXT 整数 [K][M]][MINEXTENTS整数 ]
[MAXEXTENTS 整数 ][PCTINCREASE 整数 ]
[OPTIMAL[ 整数 [K][M]][NULL]]
[FREELISTS 整数 ][FREELIST GROUPS 整数 ]…)
STORAGE 子句 -- 关键字和参数说明 INITIAL: 指定对象的第一个范围的大小 NEXT: 指定分配给对象的下一范围的大小 PCTINCREASE: 指定第二个范围之后的每一个范围为前一个范围的增长的百分数 MINEXTENTS: 指定在建立段时可分配的范围的总数 OPTIMAL:为回滚段指定一个适宜的大小 FREELIST GROUP:为表、聚集或索引指定自由表的组数 FREELISTS:为表、聚集或索引的每一自由表组指定自由表的数目 在建立表空间中其它选项的作用 ONLINE:使建立的表空间在建立之后 , 用户立即可用 OFFLINE:使建立的表空间在建立之后该表空间不能立即使用
例:建立表空间 在数据库中建立名为 TABSPACE_2 的表空间
CREATE TABLESPACE TABSPACE_2 DATAFILE ’diska:tabspace_file2.dat’SIZE 20M DEFAULT STORAGE(INITIAL 10K NEXT 50K MINEXTENTS 1 MAXEXTENTS 99 PCTINCREASE10) ONLINE
4. 表空间—修改表空间命令ALTER TABLESPACE 表空间名[ADD DATAFILE 文件说明,… ]
[DENAME DATAFILE’ 文件名’,… TO ’ 文件名’,… ]
[DEFAULT STORAGE 存贮子句 ]
[OFFLINE [TEMPORARY][IMMEDIATE]]
[BEGIN BACKUP]
修改表空间命令 -- 关键字和参数说明
关键字和参数说明 :表空间名 :为所要更改的表空间的名字。ADD DATAFILE: 将由文件说明所指定的数据文件加到该表空间 RENAME DATAFILE: 对表空间的一个或多个数据文件换名 DEFAULT STORAGE:为在该表空间中以后建立的对象指定新的缺省存储参数 ONLINE :使表空间在线。 OFFLINE:使表空间离线 ,防止对它的段的存取BEGIN BACKUP: 它意味对组成该表空间的数据文件要执行在线后备 END BACKUP: 它意味表空间的在线后备完成
例:修改表空间命令例 6.14:通知数据库 ,开始后备。 ALTER TABLESPACE accounting BEGIN BACKUP
例 6.15:通知数据库 ,后备完成。 ALTER TABLESPACE acounting END BACKUP
例 6.16: 将表空间 ACCOUNTING 的数据文件’ DISKA:PAY1.DAT’改名为’DISKB:RECEIVE.DAT’:
例:修改表空间命令使表空间离线;
ALTER TABLESPACE ACOUNTING OFFLINE NORMAL
用 OS 命令将’ DISKA:PAY1.DAT’拷贝到’ DISKB:RECEIVE1.DAT’;
用 ALTER TABLESPACE 命名换名 ; ALTER TABLESPACE accounting RENAME DATAFILE’diska:pay1.dat’TO’diskb:receive1.Dat’
将表空间返回到在线。 ALTER TABLESPACE accounting ONLINE
4. 表空间—删除表空间命令 语法格式如下:DROP TABLESPACE 表空间名[INCLUDING CONTENTS[CASCADE CONSTRAINTS]]
例 6. 17 :删除 MFRG 表空间及其全部内容。 DROP TABLESPACE MFRG
INCLUDING CONTENTS CASCADE CONSTRAINTS
返回节
6.7.3 初始化参数文件 参数文件包含 :一个实例所启动的数据库名字;在 SGA 中存储结构使用多少内存 ; 在填满在线日志文件后作什么; 数据库控制文件的名字和位置; 在数据库中专用回滚段的名字。
参数文件例子 db_block_buffers=550 (注:在 SGA 中可缓冲的数据库块的数,它决定了 SGA 的大小。)db_name=ORA7PROD (注:数据库名,最多 8 个字符。)db_domain=US.ACME.COM (注:一个全局数据库名的扩展成分。) license_Max=users=64 (注:在数据库中可建用户的最大数。) log_archive_dest=C:\logarch (注:为归档日志指定磁盘文件缺省位置等。) log_archive_format=arch%s.ora (注:指定归档日志文件的缺省文件名格式。) log_archive_start=TRUE (注: TRUE 指定,实例启动时归档是自动的, FALSE 是手工的。)
返回节
6.8 数据字典 (Data Dictionary) 关于数据的数据—元数据、只读 ,允许查询 1 数据字典的结构 :基本表和用户可存取的视图组成 2 数据字典的使用 :数据库打开时,数据字典总是可用的,它驻留在 SYSTEM表空间中 动态性能表 :虚表,记录当前数据库的活动
数据字典视图示例 视图名 说明ALL_CATALOG 为用户可存取的全部表、视图和序列。ALL_COL_PRIVS 在列上授权 ,该用户或 PUBLIC 是被授与者。ALL_SYNONYM 用户可存取的全部同义词。DBA_CONSTRAINTS 在数据库全部表上的约束定义。DBA_DATA_FILES 关于数据文件的信息。DBA_ROLE_PRIVS 授权给用户或角色的角色的说明。DBA_TABLES 在数据库中全部表的说明。DBA_USERS 关于数据库全部用户的信息。 USER_CATALOG 为用户所持有的表、视图、同义词
返回章