6.5 数据字典 1、 数据字典(系统目录)中存储了数据库对象的各类描述信息和DBMS所需的控制信息,全称数据库元数据;+ K8 |+ I3 i" z5 i# V0 f5 M
2、 数据库对象的各类描述信息:包括外模式、模式、内模式以及它们之间的映射的描述;
1 f1 U* B3 q. e8 U, o- Y' S 3、 DBMS所需的控制信息:包括查询优化、安全性检查、用户权限验证等;
2 b, b0 d; x* A 4、 数据字典主要包括:
0 j: H5 f# ]' ]/ F (1) 关系模式信息;
- X& V0 Z# y. A. } (2) 与视图描述有关的信息;
3 j( ~, m% x# V, I4 q (3) 关系的存储结构和存取方法信息;6 N! M M1 W1 F; Y' Z+ G
(4) 完整性约束信息;. E p1 D8 a' e# |
(5) 安全性有关信息;! e8 y& L- o, Q+ N' r! O
(6) 数据库运行统计信息;( [$ D9 g4 f; g* O) Q/ ]
6.6 数据库物理设计$ ~( c# R& J5 h# X/ X: X" h
6.6.1 设计步骤和内容% B, W! O9 X0 j4 E$ \. |) i. j
1、 数据库物理结构设计:在具体的硬件环境、OS、DBMS约束下,根据数据库逻辑设计结果,设计合适的数据库物理结构。目标是存储空间占用少、访问效率高和维护代价低;: k8 j @+ j9 d3 Y8 O
2、 一旦选定了硬件平台、OS和DBMS,数据库的数据存储和存取方式等可用的物理模式也就随之确定了;
* O8 S( K/ H: _6 ]9 I 3、 数据库物理设计主要包括以下步骤:
K5 w/ V, c. W0 t8 w% ~/ Q (1) 数据库逻辑模式调整:将数据库逻辑模式及其视图转换为DBMS支持的基本表和视图,并利用DBMS提供的完整性机制设计业务规则;
, X0 y6 i5 C+ u" X3 F (2) 文件组织与存取设计:配置基本表的文件组织形式,据实际情况为基本表设计合适的存取方法和路径;
1 R6 U' ^) r& e! R9 g; h (3) 数据分布设计:' [$ t) O2 s! U6 }' S, u
(4) 安全模式设计:! I' G" F# i- E1 i1 ~2 _5 S
(5) 确定系统配置:6 }; ?( v. y3 A
(6) 物理模式评估:
" T( W7 [) e( J' U 6.6.2 数据库逻辑模式调整& e X# s2 F% F' i% k
1、 物理数据库设计首先需要根据数据库逻辑结构信息,设计目标DBMS平台支持的基本表的模式信息,这些模式信息代表了所要开发的具体目标数据库的结构,这个过程称为数据库逻辑模式调整,主要包括如下设计内容:& t" v4 @- Y& W6 n$ ?1 h
(1) 实现目标数据库基本表和视图:采用目标DBMS所支持的建表方法,设计基本表及其面向模型的完整性约束;
6 a `' d4 K; y) e. c# d9 e (2) 设计基本表业务规则;! b' H7 a. v+ r4 A& p
6.6.3 DB文件组织与存取设计
. k$ ^! B. q6 E; T! N 1、分析事务的数据访问特性
% f! X8 Q5 N1 |& f6 |" R/ T- U (1) 使用事务-基本表交叉引用矩阵,分析系统内数据库事务对各个基本表的访问情况,确定事务访问了哪些基本表,对这些基本表执行了何种操作,并进一步分析各操作涉及到的基本表属性;( Y, j/ Q4 e- Q& F- x2 y
(2) 估计各事务的执行频率;
. f) z/ P7 s- |; n) r6 r, @" R (3) 对每张基本表,汇总所有作用于该表上的各事务的操作频率信息;6 T: T' g2 l* |; r# `
2、 了解并选择数据库文件结构8 k8 X2 w) C% G: V; D4 P; f
(1) 如果数据库中的一个基本表中的数据量很少,并且操作非常频繁,该基本表可采用堆文件组织方式;
0 h% c; A( Q' j7 O3 J/ x (2) 顺序文件支持基于查找码的顺序访问,也支持快速二分查找;
6 }: R! \5 g5 O O( W (3) 如果用户查询是基于散列域值的等值匹配,特别是如果访问顺序是随机的,散列文件比较合适。但散列文件组织不适合以下情况:
8 y0 J1 |- h+ l8 d; t (A) 基于散列值域的非精确查询;7 X) f- R/ A M7 L c& A
(B) 基于非散列域进行查询时;3 j$ K+ L" E% m$ p
(4) B-树和B+树文件是实际数据库系统中使用非常广泛的索引文件结构,适合于定义在大数据量基本表上、基于查找码的等值查询等;
, }6 a$ T7 v( @ (5) 如果某此重要而频繁的用户查询经常需要进行多表连接操作,可考虑将这些基本表组织为聚集文件;
2 J3 h0 m. l1 l/ e' s) E 3、 设计存取路径:& k M, n! d6 Y3 x! M& b" w
(1) 为数据库文件设计合理的物理存储位置;
( P8 N/ [! j" x (2) 为基本表设计索引机制:索引可以提高文件存取速度,改善访问性能,但索引由DBMS管理,它的建立、维护需要一定的系统开销,数据的操作会引起索引的重新调整,还占用一定的存储空间,可根据如下原则决定是否为一个基本表建立索引:& S; {+ t) g" T
(A) 对于经常需要查询、连接、统计操作,且数据量大的基本表可考虑建立索引,而对于经常执行插入、删除、更新操作或小数据量的基本表应尽量不建立索引;
) ~ b) V+ P' A& C. T (B) 一个基本表上除了可以建立一个聚集索引外,还可以建立多个非聚集索引,但索引越多,对表内数据更新所需的开销越大,对于一个更新频繁的表应少建或不建索引;
% @1 Q4 w. P$ {8 @0 { (C) 索引可以由用户根据需要随时创建或删除,以提高数据查询性能; |