序言
提到学历代码时,我们通常看到的是01、02、03…… ,需要知道具体的意思时,可以从字典中得知,01表示小学,02表示初中,03表示高中……
这就是大家通常所认为的数据字典,不管是专业人士还是业务人员,都喜欢这么说。但这是数据字典吗?非也。oracle数据库对数据字典的定义:数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。数据字典是任何关系数据库的重要组成部分。它提供了有关不同数据库表之间关系的信息,有助于以易于搜索的方式组织数据,并防止数据冗余问题。可惜的是,大多数数据库用户看不到它。通常,只有数据库管理员与数据字典交互。
一、什么是数据字典
数据字典是包含数据库元数据的一个文件或一组文件。数据字典包含有关数据库中其他对象的记录,例如:数据所有权、与其他对象的数据关系以及位置信息等。
数据字典是指对数据项,数据结构,数据流,数据存储,处理逻辑,外部实体等的定义和描述. 数据字典的目的是对数据中的每个元素进行详细说明。
数据字典是用户可以访问的记录和应用程序源数据的目录. 活动数据字典是指数据字典,当修改或应用程序结构时,其内容可以由DBMS自动更新。
数据字典的主要作用: 数据字典和数据流程图共同构成了系统的逻辑模型. 没有流程图数据字典就很难运行. 没有数据字典,数据流图并不严格。
二、数据字典的内容
数据字典是结构化分析方法(数据流分解方法)的基本手段。数据字典应当是具体数据或数据流、数据处理或者存储、数据分解等数据流图中出现的所有命名元素的详细定义。包括这些元素的:
(1)名称(包括其正式名称、别名和编号等等);
(2)属性(是处理、数据流、数据文件,还是数据源等等);
(3)描述(是指其目的、功能等简要说明);
(4)该元素的确切定义(元素的具体内容组成,包括数据结构,类型,值的范围、条件等等);
(5)位置(数据流的上游和下游;处理的编号,输入,输出;数据元素属于哪个数据结构、物理位置等。);
(6)其他:其他附加约束信息,如数据的流量、处理的性能等等。
三、数据字典的形式及应用
数据字典是关于数据库中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础,并在数据库设计过程中不断修改、充实、完善。这是数据库设计中数据字典的主要作用。开发和维护人员在遇到不了解的条目的时候,可以通过数据字典得到相应条目的解释,比如数据的类型,可能预先定义的值,及相关的文字性描述。这些解释可以减少数据之间的不兼容现象。
例如,商业银行包含客户信息的数据库可以具有客户名称、出生日期、街道地址、金融储蓄、账户和信用卡号、贷款等属性。
每个属性在电子表格中占据一行,而不同的列提供了描述该属性的元素(记录、数据类型、位置、是可选的还是必需的等)。
对于大多数关系数据库管理系统(RDBMS),数据库管理系统软件需要数据字典来访问数据库中的数据。例如,Oracle软件必须读写Oracle DB。但是,它只能通过为特定数据库创建的数据字典来实现这一点。
例如,上述银行的数据库示例,管理员希望确定哪个表包含有关贷款的信息。他有根据地猜测表中很可能包含单词“LOAN”,然后对数据字典发出以下查询(第一个查询是针对Oracle DB的,而第二个查询是针对SQL Server DB的):
- SELECT * FROM DBA_TABLES WHERE TABLE_NAME LIKE '%LOAN%';
- SELECT * FROM SYSBJECTS WHERE TYPE='U' AND NAME LIKE '%LOAN%'。
四、综述
数据字典可以是主动的,也可以是被动的。数据库的结构可能需要更改,例如添加新的属性或删除一些过时的属性。如果数据库管理字典在数据字典中自动更新了这些更改,则数据字典是主动的。相反,如果数据库管理将数据字典作为一个单独的实体来维护,并且必须手动更新,则将其称为被动数据字典。当数据库和字典中的数据不再匹配时,被动数据字典不但需要额外的同步工作,而且还容易出错。