数据库系统的数据库架构是以数据库管理系统(DBMS )支持的格式的语言编写的结构。 术语“架构”是指将数据组织为如何构建数据库的蓝图。 对于关系数据库,它分为数据库表。 数据库架构的正式定义是一组表达式(语句),称为应用于数据库的完整性约束。 这些一致性约束确保了架构各部分之间的兼容性。 所有的约束都可以用同一种语言表达。 数据库可以被认为是实现数据库语言的结构。 创建的概念架构的状态转换为显式映射,即数据库架构。 这展示了真实世界中的实体是如何在数据库中建模的。
数据库架构基于数据库管理员对可能的APP应用程序的了解,指定可以访问数据库的事实或最终用户可能感兴趣的事实。数据库架构的概念与谓词运算的理论概念相同这个“理论”模型与数据库非常接近,可以随时视为数学对象。 因此,架构可以包含特定于APP应用程序的完整性约束和特定于特定数据库类型的约束的表达式。 所有这些都用相同的数据库语言表示。 在关系数据库中,方案是表、字段、关系模型、视图、索引、包、过程、函数、队列、触发器、类型、序列、物化视图、同义词、日期
数据库通常将架构存储在数据字典中。 架构由文本数据库语言定义,但该术语通常用于指向数据库结构的图形描述。 也就是说,架构是定义数据库中对象的数据库结构。
在Oracle数据库系统中,“架构”一词的含义略有不同。
模式整合的理想需求
以下要求会影响生成的模型的详细结构: 虽然有些APP应用程序不需要满足所有这些条件,但这四个要求是最佳的。
重叠保存
输入映射中指定的每个重复元素也属于数据库模式关系。
扩展重叠保存
与源重复元素相关联的特定于源的元素将传递到数据库架构。
正规化
在数据库模式下,源数据中的独立实体和关系不应按相同的关系分组。 特别是,如果组共享独立的实体或关系,请不要将源特定的模式元素与重复的模式元素分组。
最小性
如果删除数据库架构中的元素,则数据库架构是不可取的。
两种模式集成的示例
假设你想要一个中介(数据库)模型,它将两个旅行数据库,Go-travel和Ok-travel集成在一起。
Go-travel数据库有两种关系:
go-flight(f-num,time,meal )是/否)
go-price(f-num,date,price ) )。
(f-num是航班号) ) )。
Ok-travel数据库中只有一个关系:
确定ok-flight(f-num,date,time,price,nonstop ) yes/no ) )
Ok-travel模式和Go-travel模式重复信息可以在中介模式下表示:
flight(f-num、date、time、price ) )。
Oracle数据库特异性
在Oracle数据库的上下文中,方案对象是逻辑数据存储结构。
Oracle数据库将每个数据库用户的单独方案相关联。 架构包含架构对象的集合。 架构对象的示例包括:
表)。
视图。
序列(序列) )。
同义词(synonyms ) )
索引(索引) )。
集群(集群) )。
数据库链接(数据库链接)。
“快照”。
进程(procedures )。
函数。
包(包)。
另一方面,非方案对象可能包含:
用户(users )。
角色) )。
上下文(contexts )。
目录对象(目录对象) )。
架构对象与磁盘上包含信息的物理文件没有一一对应关系。 但是,Oracle数据库在逻辑上将方案对象存储在数据库的表空间中。 每个对象的数据包含在表空间的一个或多个数据文件中。 对于某些对象(如表、索引和集群),数据库管理员可以指定Oracle RDBMS为表空间数据文件中的对象分配的磁盘空间数。
方案和表空间之间不需要的关系:表空间可以包含来自不同方案的对象,单个方案中的对象可以位于不同的表空间中。