关于关系数据库
每个组织都有必须存储和管理的信息以满足其要求。例如,公司必须收集和维护其员工的人力资源记录。这些信息必须可供需要的人使用。
信息系统是存储和处理信息的正式系统。信息系统可以是一组纸板箱,其中包含马尼拉文件夹以及如何存储和检索文件夹的规则。然而,当今大多数公司都使用数据库来自动化其信息系统。数据库是被视为一个单元的有组织的信息集合。数据库的目的是收集、存储和检索相关信息以供数据库应用程序使用。
数据库管理系统(DBMS)
数据库管理系统 (DBMS)是控制数据存储、组织和检索的软件。
通常,DBMS 具有以下元素:
-
内核代码
该代码管理 DBMS 的内存和存储。
-
元数据存储库
该存储库通常称为数据字典。
-
查询语言
这种语言使应用程序能够访问数据。
数据库应用程序是与数据库交互以访问和操作数据的软件程序。
第一代数据库管理系统包括以下类型:
-
分层的
分层数据库以树结构组织数据。每个父记录都有一个或多个子记录,类似于文件系统的结构。
-
网络
网络数据库类似于分层数据库,只不过记录具有多对多关系而不是一对多关系。
先前的数据库管理系统以严格的、预定的关系存储数据。由于不存在数据定义语言,因此更改数据结构很困难。此外,这些系统缺乏简单的查询语言,这阻碍了应用程序的开发。
关系模型
EF Codd 在其 1970 年的开创性论文“大型共享数据库的数据关系模型”中定义了一个基于数学集合论的关系模型。如今,最广泛接受的数据库模型是关系模型。
关系数据库是符合关系模型的数据库。关系模型主要有以下几个方面:
-
结构
明确定义的对象存储或访问数据库的数据。
-
运营
明确定义的操作使应用程序能够操作数据库的数据和结构。
-
诚信规则
完整性规则管理对数据库的数据和结构的操作。
关系数据库以一组简单关系存储数据。关系是一组元组。元组是一组无序的属性值。
表是行(元组)和列(属性)形式的关系的二维表示。表中的每一行都有相同的列集。关系数据库是以关系(表)形式存储数据的数据库。例如,关系数据库可以在员工表、部门表和工资表中存储有关公司员工的信息。
关系数据库管理系统(RDBMS)
关系模型是关系数据库管理系统(RDBMS)的基础。RDBMS 将数据移入数据库、存储数据并检索数据,以便应用程序可以操作它。
RDBMS 区分以下类型的操作:
-
逻辑运算
在这种情况下,应用程序指定需要什么内容。例如,应用程序请求员工姓名或将员工记录添加到表中。
-
物理操作
在这种情况下,RDBMS 确定应该如何完成操作并执行操作。例如,在应用程序查询表之后,数据库可能会使用索引来查找所请求的行,将数据读入内存,并在将结果返回给用户之前执行许多其他步骤。RDBMS 存储和检索数据,以便物理操作对于数据库应用程序是透明的。
Oracle 数据库是一个 RDBMS。实现用户定义类型、继承和多态性等面向对象功能的 RDBMS 称为对象关系数据库管理系统 (ORDBMS)。Oracle数据库将关系模型扩展为对象关系模型,使得在关系数据库中存储复杂的业务模型成为可能。
Oracle 数据库简史
Oracle 数据库的当前版本是超过 35 年创新开发的成果。
Oracle 数据库发展的亮点包括:
-
甲骨文公司成立
1977 年,Larry Ellison、Bob Miner 和 Ed Oates 创办了软件开发实验室咨询公司,后来成为 Relational Software, Inc. (RSI)。1983 年,RSI 更名为 Oracle Systems Corporation,后来更名为 Oracle Corporation。
-
第一个商用 RDBMS
1979 年,RSI 推出了 Oracle V2(版本 2),作为第一个商用的基于SQL的 RDBMS,这是关系数据库历史上的里程碑事件。
-
Oracle 数据库的便携式版本
Oracle Version 3 于 1983 年发布,是第一个在大型机、小型机和个人计算机上运行的关系数据库。数据库采用C语言编写,可以移植到多个平台。
-
并发控制、数据分布和可扩展性的增强
版本 4 引入了多版本读取一致性。版本 5 于 1985 年发布,支持客户端/服务器计算和分布式数据库系统。版本 6 增强了磁盘 I/O、行锁定、可扩展性以及备份和恢复。此外,版本 6 还引入了PL/SQL语言的第一个版本,这是 SQL 的专有过程扩展。
-
PL/SQL 存储的程序单元
1992年发布的Oracle7引入了PL/SQL存储过程和触发器。
-
对象和分区
Oracle8作为对象关系数据库于1997年发布,支持许多新的数据类型。此外,Oracle8 支持大表的分区。
-
互联网计算
Oracle8i 数据库于 1999 年发布,提供了对 Internet 协议的本机支持和对 Java 的服务器端支持。Oracle8i 专为互联网计算而设计,使数据库能够部署在多层环境中。
-
Oracle 真正应用集群 (Oracle RAC)
Oracle9i 数据库于 2001 年引入了 Oracle RAC,使多个实例能够同时访问单个数据库。此外,Oracle XML 数据库 ( Oracle XML DB ) 引入了存储和查询 XML 的功能。
-
网格计算
Oracle 数据库 10g 于 2003 年引入了网格计算。该版本使组织能够通过构建基于低成本商用服务器的网格基础架构来虚拟化计算资源。一个关键目标是使数据库能够自我管理和自我调整。Oracle 自动存储管理 (Oracle ASM)通过虚拟化和简化数据库存储管理帮助实现了这一目标。
-
可管理性、可诊断性和可用性
Oracle 数据库 11g于 2007 年发布,引入了许多新功能,使管理员和开发人员能够快速适应不断变化的业务需求。适应性的关键是通过整合信息并尽可能使用自动化来简化信息基础设施。
-
接入云端
Oracle Database 12c于 2013 年发布,专为云而设计,具有新的多租户架构、内存列存储以及对 JSON 文档的支持。Oracle Database 12c帮助 DBA 更有效地利用其 IT 资源,同时继续降低成本并提高最终用户的服务水平。
-
集成和内存性能
Oracle Database 18c 简化了与 Microsoft Active Directory 等目录服务的集成。它还引入了利用内存的功能,不仅可以用于列数据模型,还可以用于高速行访问。
-
增强稳定性
Oracle Database 19c 是Oracle Database 12c(版本 12.2)产品系列的长期支持版本。此版本的主要关注点是稳定性。Oracle Database 19c 还对 JSON 和 Active Data Guard 等功能进行了一些小但重要的改进。