什么是数据字典
编辑IBM计算词典中定义的数据字典或元数据存储库是“有关数据的信息的集中存储库,例如含义、与其他数据的关系、来源、用法和格式”。Oracle将其定义为具有元数据的表的集合。该术语可以具有与数据库和数据库管理系统(DBMS)相关的几个密切相关的含义之一:
- 一个文档描述的数据库数据库或集合
- 确定其结构所需的DBMS的一个组成部分
- 一块中间件延伸或取代了一个DBMS的本机的数据字典
文档
编辑术语数据字典和数据存储库表示比目录更通用的软件实用程序。甲目录被紧密耦合与DBMS软件。它将存储在其中的信息提供给用户和DBA,但主要由DBMS本身的各种软件模块访问,例如DDL和DML编译器、查询优化器、事务处理器、报告生成器和约束执法者。另一方面,数据字典是一种存储元数据的数据结构,即关于信息的(结构化)数据。独立数据字典或数据存储库的软件包可以与DBMS的软件模块进行交互,但它主要供计算机系统的设计者、用户和管理员用于信息资源管理。这些系统维护有关系统硬件和软件配置、文档、应用程序和用户的信息以及与系统管理相关的其他信息。
如果数据字典系统仅由设计人员、用户和管理员使用,而不由DBMS软件使用,则称为被动数据字典。否则,它被称为活动数据字典或数据字典。更新被动数据字典时,它是手动完成的,独立于对DBMS(数据库)结构的任何更改。使用活动数据字典时,首先更新字典,结果DBMS中会自动发生更改。
数据库用户和应用程序开发人员可以从权威的数据字典文档中受益,该文档对一个或多个数据库的组织、内容和约定进行了编目。这通常包括各种表(记录或实体)及其内容(字段)的名称和描述以及其他详细信息,例如每个数据元素的类型和长度。数据字典可以提供的另一个重要信息是表之间的关系。这有时在实体关系图中被引用,或者如果使用集合描述符,标识哪些集合数据库表参与。
在活动数据字典中,可以对底层数据施加约束。例如,范围可能被强加在数据元素(字段)中的数字数据的值上,或者表中的记录可能被强制参与与另一个记录类型的集合关系。此外,分布式DBMS可能具有在其活动数据字典中描述的某些位置细节(例如,表的物理位置)。
数据字典由系统生成的命令文件在数据库中创建的记录类型(表)组成,为每个支持的后端DBMS量身定制。Oracle有一个“sys”用户的特定视图列表。这允许用户查找所需的确切信息。命令文件包含用于CREATETABLE、CREATEUNIQUEINDEX、ALTERTABLE(用于参照完整性)等的SQL语句,使用该类型数据库所需的特定语句。
对于此类文件的详细程度,没有通用标准。
中间件
编辑在构建数据库应用程序时,引入一个额外的数据字典软件层,即中间件,与底层DBMS数据字典进行通信是很有用的。这种“高级”数据字典可以提供额外的特性和一定程度的灵活性,超出了本地“低级”数据字典的限制,其主要目的是支持DBMS的基本功能,而不是要求一个典型的应用。例如,高级数据字典可以提供定制的替代实体关系模型,以适应共享公共数据库的不同应用程序。扩展到数据字典中也可协助查询优化反对分布式数据库。此外,DBA功能通常使用与活动数据字典紧密耦合的重组工具实现自动化。
旨在快速应用程序开发的软件框架有时包括高级数据字典工具,它可以xxx减少构建菜单、表单、报告和数据库应用程序的其他组件(包括数据库本身)所需的编程量。例如,PHPLens包含一个PHP类库,用于自动为多个数据库可移植地创建表、索引和外键约束。另一个基于PHP的数据字典,RADICORE工具包的一部分,自动生成程序对象,脚本,以及用于具有数据验证和复杂连接的菜单和表单的SQL代码。对于ASP.NET环境,BaseOne的数据字典为自动数据库创建、数据验证、性能增强(缓存和索引利用)、应用程序安全性和扩展数据类型提供了跨DBMS设施。可视化DataFlex功能提供使用DataDictionaries作为类文件的能力,以在用户界面和底层数据库之间形成中间层。目的是创建标准化规则以维护数据完整性并在一个或多个相关应用程序中执行业务规则。
一些行业使用通用数据字典作为技术标准,以确保系统之间的互操作性。例如,房地产行业遵守RESO的数据字典,全国房地产经纪人协会通过其政策手册要求其MLS遵守该字典。这个MLS本地数据库的中间映射层得到了为MLS组织提供API服务的软件公司的支持。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/124591/