56
第 6 第 第第第第第第第第第 6.1 第第 6.2 第第第第 6.3 第第第第第第 6.4 第第第第第第 6.5 第第第第 6.6 第第第第第 6.7 ORACLE 第第第第第 6.8 第第第第( Data Dictionary)

第 6 章 数据库的设计与维护

Embed Size (px)

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 Presentation

Citation preview

Page 1: 第 6 章 数据库的设计与维护

第 6 章 数据库的设计与维护6.1 概述6.2 需求分析6.3 概念结构设计6.4 逻辑结构设计 6.5 物理设计6.6 实现与维护6.7 用ORACLE建立数据库 6.8 数据字典(Data Dictionary)

Page 2: 第 6 章 数据库的设计与维护

数据库的设计步骤需求收集和分析 :用户关心什么、用户要什么结果设计概念结构:存什么、关系(联系)如何、 E/R图是各种数据模型的共同基础设计逻辑结构:用什么数据模型、数据库的模式( database schema)、用户子模式设计物理结构:数据怎么存、根据 DBMS产品、环境特点物理实现:运行 DDL、装入测试数据、应用程序

Page 3: 第 6 章 数据库的设计与维护

6.1 概述 -- 数据库的设计步骤第 0步

规划

第 4步物理设计

第 3步逻辑设计

第 2步概念设计

物理数据结构

需求说明书

信息结构

逻辑数据库结构( DBMS 能 处 理的)应用程序说明书

第 1步需求描述和分析

硬件和OS特性

返回章

总体信息需求

Page 4: 第 6 章 数据库的设计与维护

6.2 需求分析 6.2.1 需求的收集

需求的分析整理 评审

6.2.2 数据字典

返回章

Page 5: 第 6 章 数据库的设计与维护

需求的分析处理 业务流程分析 :数据流图( DFD )

分析结果的描述 除了 DFD 以外 , 还要用一些规范表格进行补充描述

输入处理

查找分析

输出处理

存 储 文件

Page 6: 第 6 章 数据库的设计与维护

评审 确认某一阶段的任务是否全部完成 保证设计质量 常常导致设计过程的回溯与反

返回节

Page 7: 第 6 章 数据库的设计与维护

数据字典 数据需求写成文档 对数据库数据描述的集中管理 存贮和检索元数据

返回节

Page 8: 第 6 章 数据库的设计与维护

6.3 概念结构设计 6.3.1 概念模型 6.3.2 概念设计的主要步骤

返回章

Page 9: 第 6 章 数据库的设计与维护

6.3.1 概念模型概念模型 :表达概念设计结果的工具 概念模型 应具备的特征 :有丰富的语义表达能力 易于交流和理解 易于变动 易于向各种数据模型转换

ER 模型

返回节

Page 10: 第 6 章 数据库的设计与维护

6.3.2 概念设计的主要步骤进行数据抽象 , 设计局部概念模式 将局部概念模式综合成全局概念模式 评审

Page 11: 第 6 章 数据库的设计与维护

用 ER 方法进行数据库的概念设计 (1) 设计局部 ER 模式

(2) 设计全局 ER 模式。 (3) 全局 ER 模式的优化

Page 12: 第 6 章 数据库的设计与维护

设计局部 ER 模式① 确定局部结构范围② 实体定义③ 联系定义:映射基数、联系命名④ 属性分配

Page 13: 第 6 章 数据库的设计与维护

设计全局 ER 模式 局部 ER 模式综合成单一的全局概念结构

确定公共实体类型 局部 ER 模式的合并 消除冲突 :属性冲突 、结构冲突、命名冲突 全局 ER 模式的优化 实体类型的合并 冗余属性的消除 冗余联系的消除

Page 14: 第 6 章 数据库的设计与维护

例子:冗余联系的消除

返回节

Page 15: 第 6 章 数据库的设计与维护

6.4 逻辑结构设计 6.4.1 逻辑设计环境 6.4.2 关系数据库的逻辑设计

返回章

Page 16: 第 6 章 数据库的设计与维护

6.4.1 逻辑设计环境输入 独立于 DBMS 的概念模式 处理需求 DBMS 特性

输出 DBMS 可处理的模式 子模式 应用程序设计指南 物理设计指南

返回节

Page 17: 第 6 章 数据库的设计与维护

6.4.2 关系数据库的逻辑设计

Page 18: 第 6 章 数据库的设计与维护

关系数据库的逻辑设计 1. 导出初始关系模式

一个实体类型转换成一个关系模式 一个联系类型转换成一个关系模式

2. 规范化处理 确定规范级别 : 3NF 或 BCNF 是适当的

标准 实施规范化处理

3. 模式评价 功能评价 性能评价 返回节

Page 19: 第 6 章 数据库的设计与维护

6.5 物理设计 逻辑数据库结构 物理数据库结构 6.5.1 物理设计的步骤 6.5.2 物理设计环境 6.5.3 物理设计性能的测量

返回章

Page 20: 第 6 章 数据库的设计与维护

6.5.1 物理设计的步骤 五步 、可能要反复多次 1. 存贮记录结构设计 2. 确定数据存放位置 3. 访问方法的设计 4. 完整性和安全性考虑 5. 程序设计

返回节

Page 21: 第 6 章 数据库的设计与维护

6.5.2 物理设计环境 引进的新参数 :物理设备量限制、时间特性及所有的运行要求 输出 :物理数据库结构说明书 ,包括存贮记录格式、存贮记录位置分布及访问方法。它能满足所有的操作需求并给出对硬件、软件系统的约束

返回节

Page 22: 第 6 章 数据库的设计与维护

6.5.3 物理设计性能的测量 1. 查询响应时间 2. 更新事务的开销 3. 报告生成的开销 4. 改组频率和开销5. 主存贮空 6. 辅助存贮空间

返回节

Page 23: 第 6 章 数据库的设计与维护

6.6 实现与维护 6.6.1 数据库的实现6.6.2其它设计工作 6.6.3 运行与维护

返回章

Page 24: 第 6 章 数据库的设计与维护

6.6.1 数据库的实现 建立实际数据库结构 测试数据库结构装入数据

返回节

Page 25: 第 6 章 数据库的设计与维护

6.6.2其它设计工作 数据库的再组织设计 故障恢复方案设计 安全性考虑 事务控制

返回节

Page 26: 第 6 章 数据库的设计与维护

6.6.3 运行与维护 维护数据库的安全性与完整性 监测并改善数据库性能 增加新功能 修改错误

返回节

Page 27: 第 6 章 数据库的设计与维护

6.7 用 ORACLE 建立数据库6.7.1 数据库结构和空间管理 6.7.2 用 ORACLE 建立和修改数据库 6.7.3 初始化参数文件

返回章

Page 28: 第 6 章 数据库的设计与维护

6.7.1 数据库结构和空间管理ORACLE 物理数据库结构 :数据文件、日志文件和控制文件 逻辑数据库结构 :一个或多个表空间 数据库模式对象(即表、视图、索引、聚集、

序列、存储过程)

Page 29: 第 6 章 数据库的设计与维护

数据库、表空间和数据文件

Page 30: 第 6 章 数据库的设计与维护

1. 物理结构 数据文件 :一个或多个 ,物理地存储 一个数据文件仅与一个数据库相联系 一旦建立,数据文件不能改变大小 一个表空间(数据库存储的逻辑单位)由一

个或多个数据文件组成

日志文件 控制文件

Page 31: 第 6 章 数据库的设计与维护

2. 逻辑结构 表空间 :数据库可逻辑地划分为一个或多个表空间。 每一个表空间是由一个或多个数据文件组成

段、范围和数据块 段 :由一个或多个范围组成,分为数据段、

索引段、回滚段和临时段 范围 :存储空间分配的一个逻辑单位 ,由连续的数据块所组成

数据块 : I/O 的最小单位 (3) 模式和模式对象

Page 32: 第 6 章 数据库的设计与维护

模式和模式对象表 视图 :用一个查询定义,基于表聚集 :一组表 索引 序列生成器 同义词 程序单元 数据库链

返回节

Page 33: 第 6 章 数据库的设计与维护

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]

Page 34: 第 6 章 数据库的设计与维护

建立数据库 –续 ( 关键字和参数 )

DB 名 :为所要建立的数据库的名字 CONTROLFILE REUSE :重新使用由初始化参数 CONTROL_FILES 所标识的已存在的控制文件 LOGFILE :指定用作日志文件的一个或多个文件 MAXLOGFILES :指定数据库可建的日志文件组的最大值 MAXLOGMEMBERS;指定日志文件组的最大的成员数 MAXLOGHISTORY :指定归档日志文件的最大数目 MAXLOGMEMBERS;指定日志文件组的最大的成员数 DATAFILE :指定用作为数据文件的一个或多个文件 ARCHIVELOG :为日志文件组建立归档方式 CHARACTER SET :指定数据库用于存储数据的字符

Page 35: 第 6 章 数据库的设计与维护

建立数据库例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

Page 36: 第 6 章 数据库的设计与维护

2. 更改数据库命令 常用的部份语法格式如下:ALTER DATABASE [DB 名 ][MOUNT[EXCLUSIVE][PARALLEL]][ADDLOGFILE[THREAD 整数 ][GROUP 整数 ] 文件说明,… ]RENAME FILE ’ 文件名’ TO ’ 文件名’ ,… ][ENABLE[PUBLIC]THREAD整数 ]RENAME GLOBAL_NAME TO DB 名[域名 ]

Page 37: 第 6 章 数据库的设计与维护

更改数据库命令 -- 关键字和参数说明

DB 名 : 标识要更改的数据库 NOUNT:装配数据库 ( 实例未装配该数据库时 )实例已装配时可使用以下选项:ADDLOGFILE:加一个或多个日志文件组到指定的线索 RENAME :对数据库文件或日志文件成员换名 已装配数据库并已打开,可使用下列选项 :DISNABLE/ENABLE :使指定的线索不可实施 / 可实施 RENAME GLOBAL_NAME:修改数据库的全局名

Page 38: 第 6 章 数据库的设计与维护

更改数据库命令:例子例 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’

Page 39: 第 6 章 数据库的设计与维护

更改数据库命令:例子 例 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

Page 40: 第 6 章 数据库的设计与维护

更改数据库命令:例子例 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

Page 41: 第 6 章 数据库的设计与维护

3. 控制文件 - 语法格式语法格式如下:CREATE CONTROLFILE[REUSE][SET]DATABASE DB 名LOGFILE[GROUP 整数 ] 文件说明,… [RESETLOGS][NOTRESETLOGS]DATAFILE 文件说明,…[MAXLOGFILES 整数 ][MAXLOGMEMBERS 整数 ][MAXLOGHISTORY 整数 ][MAXDATAFILES 整数 ][MAXINSTANCES 整数 ][ARCHIVELOG]

Page 42: 第 6 章 数据库的设计与维护

3. 控制文件 - 关键字和参数说明

REUSE: 说明由初始化参数 CONTROL_FILES 所标识的控制文件可被重用 SET DATABASE:修改数据库的名字 DATABASE: 指定数据库的名字 ,该参数值必须是已存在的数据库名 LOGFILE:为数据库指定日志文件组 RESETLOGS :忽略 LOGFILE 子句所列的文件的内容 NORESETLOGS: 说明在 LOGFILE 子句中全部文件在最后一次打开数据库中使用 DATAFILE: 指定数据库的数据文件 ,必须列出全部数据文件

Page 43: 第 6 章 数据库的设计与维护

例 : 重建一控制文件 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

Page 44: 第 6 章 数据库的设计与维护

4. 表空间 -- 建立表空间命令 CREATE TABLESPACE 表空间名 DATAFILES 文件说明,…[DEFAULT STORAGE 存贮子句 ]

[OFFLINE]

关键字和参数说明:表空间名:为所建立的表空间的名字。DATAFILE :指定组成表空间的数据文件或文件。DEFAULT STORAGE :为在该表空间中建立的全部对象指定缺少的存储参数,由存储子句指定。STORAGE 存储子句用于指定存储特征,该子句可出现在建立或更改下列对象的命令中:聚集、索引、滚回段、快照、快照日志、表和表空间。

Page 45: 第 6 章 数据库的设计与维护

STORAGE 子句的语法 STORAGE([INITINAL 整数 [K][M]]

[NEXT 整数 [K][M]][MINEXTENTS整数 ]

[MAXEXTENTS 整数 ][PCTINCREASE 整数 ]

[OPTIMAL[ 整数 [K][M]][NULL]]

[FREELISTS 整数 ][FREELIST GROUPS 整数 ]…)

Page 46: 第 6 章 数据库的设计与维护

STORAGE 子句 -- 关键字和参数说明 INITIAL: 指定对象的第一个范围的大小 NEXT: 指定分配给对象的下一范围的大小 PCTINCREASE: 指定第二个范围之后的每一个范围为前一个范围的增长的百分数 MINEXTENTS: 指定在建立段时可分配的范围的总数 OPTIMAL:为回滚段指定一个适宜的大小 FREELIST GROUP:为表、聚集或索引指定自由表的组数 FREELISTS:为表、聚集或索引的每一自由表组指定自由表的数目 在建立表空间中其它选项的作用 ONLINE:使建立的表空间在建立之后 , 用户立即可用 OFFLINE:使建立的表空间在建立之后该表空间不能立即使用

Page 47: 第 6 章 数据库的设计与维护

例:建立表空间 在数据库中建立名为 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

Page 48: 第 6 章 数据库的设计与维护

4. 表空间—修改表空间命令ALTER TABLESPACE 表空间名[ADD DATAFILE 文件说明,… ]

[DENAME DATAFILE’ 文件名’,… TO ’ 文件名’,… ]

[DEFAULT STORAGE 存贮子句 ]

[OFFLINE [TEMPORARY][IMMEDIATE]]

[BEGIN BACKUP]

Page 49: 第 6 章 数据库的设计与维护

修改表空间命令 -- 关键字和参数说明

关键字和参数说明 :表空间名 :为所要更改的表空间的名字。ADD DATAFILE: 将由文件说明所指定的数据文件加到该表空间 RENAME DATAFILE: 对表空间的一个或多个数据文件换名 DEFAULT STORAGE:为在该表空间中以后建立的对象指定新的缺省存储参数 ONLINE :使表空间在线。 OFFLINE:使表空间离线 ,防止对它的段的存取BEGIN BACKUP: 它意味对组成该表空间的数据文件要执行在线后备 END BACKUP: 它意味表空间的在线后备完成

Page 50: 第 6 章 数据库的设计与维护

例:修改表空间命令例 6.14:通知数据库 ,开始后备。 ALTER TABLESPACE accounting BEGIN BACKUP

例 6.15:通知数据库 ,后备完成。 ALTER TABLESPACE acounting END BACKUP

例 6.16: 将表空间 ACCOUNTING 的数据文件’ DISKA:PAY1.DAT’改名为’DISKB:RECEIVE.DAT’:

Page 51: 第 6 章 数据库的设计与维护

例:修改表空间命令使表空间离线;

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

Page 52: 第 6 章 数据库的设计与维护

4. 表空间—删除表空间命令 语法格式如下:DROP TABLESPACE 表空间名[INCLUDING CONTENTS[CASCADE CONSTRAINTS]]

例 6. 17 :删除 MFRG 表空间及其全部内容。 DROP TABLESPACE MFRG

INCLUDING CONTENTS CASCADE CONSTRAINTS

返回节

Page 53: 第 6 章 数据库的设计与维护

6.7.3 初始化参数文件 参数文件包含 :一个实例所启动的数据库名字;在 SGA 中存储结构使用多少内存 ; 在填满在线日志文件后作什么; 数据库控制文件的名字和位置; 在数据库中专用回滚段的名字。

Page 54: 第 6 章 数据库的设计与维护

参数文件例子 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 是手工的。)

返回节

Page 55: 第 6 章 数据库的设计与维护

6.8 数据字典 (Data Dictionary) 关于数据的数据—元数据、只读 ,允许查询 1 数据字典的结构 :基本表和用户可存取的视图组成 2 数据字典的使用 :数据库打开时,数据字典总是可用的,它驻留在 SYSTEM表空间中 动态性能表 :虚表,记录当前数据库的活动

Page 56: 第 6 章 数据库的设计与维护

数据字典视图示例 视图名 说明ALL_CATALOG 为用户可存取的全部表、视图和序列。ALL_COL_PRIVS 在列上授权 ,该用户或 PUBLIC 是被授与者。ALL_SYNONYM 用户可存取的全部同义词。DBA_CONSTRAINTS 在数据库全部表上的约束定义。DBA_DATA_FILES 关于数据文件的信息。DBA_ROLE_PRIVS 授权给用户或角色的角色的说明。DBA_TABLES 在数据库中全部表的说明。DBA_USERS 关于数据库全部用户的信息。 USER_CATALOG 为用户所持有的表、视图、同义词

返回章