6.5 数据字典 1、 数据字典(系统目录)中存储了数据库对象的各类描述信息和DBMS所需的控制信息,全称数据库元数据;- p! v3 X9 N |6 n, c7 W
2、 数据库对象的各类描述信息:包括外模式、模式、内模式以及它们之间的映射的描述;6 i: ~: m b q% w. }$ u
3、 DBMS所需的控制信息:包括查询优化、安全性检查、用户权限验证等;
+ C- B( v# G* O' C* \4 } 4、 数据字典主要包括:9 k, A5 V* @$ |& [; p" d1 B2 F
(1) 关系模式信息;
L1 V5 \' {) ^6 b" o (2) 与视图描述有关的信息;' \" T: S/ h; ^4 _7 {8 W. s
(3) 关系的存储结构和存取方法信息;
`9 l7 j2 N8 A: Y9 n8 t4 |" N6 T (4) 完整性约束信息;
9 Q" ]+ c. T2 D5 K0 q( ?& S! g (5) 安全性有关信息;' h- F, J+ ~- j* [
(6) 数据库运行统计信息;9 e& F8 u6 B4 U4 o+ E
6.6 数据库物理设计+ z! q2 T* P( I+ |4 [
6.6.1 设计步骤和内容
# i) j9 x& J1 F& d 1、 数据库物理结构设计:在具体的硬件环境、OS、DBMS约束下,根据数据库逻辑设计结果,设计合适的数据库物理结构。目标是存储空间占用少、访问效率高和维护代价低;
8 e5 |; @: ?1 h0 x4 K6 a' q( R5 W( }) ]7 ` 2、 一旦选定了硬件平台、OS和DBMS,数据库的数据存储和存取方式等可用的物理模式也就随之确定了;
$ r* k4 s+ M2 [! I 3、 数据库物理设计主要包括以下步骤:
; ^6 K7 ]5 v6 s% U (1) 数据库逻辑模式调整:将数据库逻辑模式及其视图转换为DBMS支持的基本表和视图,并利用DBMS提供的完整性机制设计业务规则;! [1 ~: S, ~6 L
(2) 文件组织与存取设计:配置基本表的文件组织形式,据实际情况为基本表设计合适的存取方法和路径;5 e4 V3 P' |' F, O. i U
(3) 数据分布设计:
; m! S# @! l4 A! D- W (4) 安全模式设计:
8 F, D# [% B1 ?; W2 {6 a (5) 确定系统配置:
3 \& }+ ]" `% L6 X# q2 I, X# `0 x (6) 物理模式评估:
! t( ^) I6 Y4 ]2 o 6.6.2 数据库逻辑模式调整
- l2 M$ A' a' x5 C 1、 物理数据库设计首先需要根据数据库逻辑结构信息,设计目标DBMS平台支持的基本表的模式信息,这些模式信息代表了所要开发的具体目标数据库的结构,这个过程称为数据库逻辑模式调整,主要包括如下设计内容:
0 ~* P$ {6 x1 A K5 P (1) 实现目标数据库基本表和视采用目标DBMS所支持的建表方法,设计基本表及其面向模型的完整性约束;
, G# h; |6 C4 a (2) 设计基本表业务规则;
7 i6 C! R: N* G- |0 D3 d# s) k0 `* l 6.6.3 DB文件组织与存取设计
c* a2 U0 f; q- l 1、分析事务的数据访问特性
7 X$ J5 q9 G: t5 _' g( m (1) 使用事务-基本表交叉引用矩阵,分析系统内数据库事务对各个基本表的访问情况,确定事务访问了哪些基本表,对这些基本表执行了何种操作,并进一步分析各操作涉及到的基本表属性;% g. k) \' R- K
(2) 估计各事务的执行频率;
9 M# m$ p n, p6 ? (3) 对每张基本表,汇总所有作用于该表上的各事务的操作频率信息;1 B; P/ g6 J* h" L( Q" s$ l
2、 了解并选择数据库文件结构
" }( G: w$ ~- Z1 X3 U* F1 S (1) 如果数据库中的一个基本表中的数据量很少,并且操作非常频繁,该基本表可采用堆文件组织方式;
7 u4 k! h X9 S0 o# w$ @" ] (2) 顺序文件支持基于查找码的顺序访问,也支持快速二分查找;7 B0 x2 M) \9 y
(3) 如果用户查询是基于散列域值的等值匹配,特别是如果访问顺序是随机的,散列文件比较合适。但散列文件组织不适合以下情况:
@# c' B9 Z7 t5 A. j; N. T: | (A) 基于散列值域的非精确查询;
, x4 X2 u# b8 e& h W (B) 基于非散列域进行查询时;! ?. [+ i; U$ ^$ d' i" j* u8 h
(4) B-树和B+树文件是实际数据库系统中使用非常广泛的索引文件结构,适合于定义在大数据量基本表上、基于查找码的等值查询等;& M& R1 [$ I( K7 [* Y6 M- t1 s
(5) 如果某此重要而频繁的用户查询经常需要进行多表连接操作,可考虑将这些基本表组织为聚集文件;
8 C+ W/ y! T/ ~3 k. ^$ w- M" K 3、 设计存取路径:4 \# j# t, I& L0 K" D8 b" s
(1) 为数据库文件设计合理的物理存储位置;
" s# w/ x2 S/ u0 b1 S Z' } (2) 为基本表设计索引机制:索引可以提高文件存取速度,改善访问性能,但索引由DBMS管理,它的建立、维护需要一定的系统开销,数据的操作会引起索引的重新调整,还占用一定的存储空间,可根据如下原则决定是否为一个基本表建立索引:, K& E( L- @ ?- i
(A) 对于经常需要查询、连接、统计操作,且数据量大的基本表可考虑建立索引,而对于经常执行插入、删除、更新操作或小数据量的基本表应尽量不建立索引;) }+ ]% X/ N) e7 M& a
(B) 一个基本表上除了可以建立一个聚集索引外,还可以建立多个非聚集索引,但索引越多,对表内数据更新所需的开销越大,对于一个更新频繁的表应少建或不建索引;& b$ T* J' F! N9 \) c
(C) 索引可以由用户根据需要随时创建或删除,以提高数据查询性能; |