Module 02 · Using Relational Databases
Database Objects and Hierarchy (Including Schemas)数据库对象与层级结构(含模式)
欢迎学习数据库对象与层级结构。通过本指南,您将能够描述数据库对象的层级组织方式,理解数据库实例(Instance)的重要性,定义关系型数据库,并深入掌握模式(Schema)的功能与用法。
数据库对象的层级结构
关系型数据库管理系统(RDBMS)包含大量对象。为了便于数据库工程师和管理员(DBA)进行安全管理、维护及访问控制,这些对象被组织在严密的层级结构中。
1. 数据库实例 (Instance)
实例是 RDBMS 结构的起点,是组织数据库及其包含内容的核心方式。
- 定义:一个逻辑边界,用于组织数据库对象并设置配置参数。
- 隔离性:在同一台物理服务器上可以创建多个实例,每个实例都拥有独立的数据库服务器环境,相互隔离。
- 配置:每个实例内的数据库拥有唯一的名称、系统编目表(System Catalog Tables,用于跟踪库内对象)以及独立的配置文件。
- 云端定义:在云数据库中,“实例”通常指代服务的特定运行副本。
- 注意:并非所有 RDBMS 都使用实例概念,部分系统通过特定的数据库来管理配置信息。
2. 关系型数据库 (Relational Database)
关系型数据库由用于数据存储、管理和检索的对象组成。
- 对象分类:包括系统定义(内置)对象和用户定义对象。
- 核心目标:通过建立表间关系来减少数据冗余并提高数据完整性。
- 分布式数据库:表和对象分布在不同但互连的计算机系统上。
模式 (Schema):逻辑组织的基石
模式(Schema) 是数据库内部的一种特殊对象,用于对其他对象进行逻辑分组。
核心功能
- 命名空间隔离:提供命名上下文。使用模式名作为限定符,可以区分不同模式下同名的对象。
示例:通过
internal和external模式名,可以区分internal.sales(内部销售表)和external.sales(外部销售表),从而避免多应用存储时的命名冲突。 - 逻辑分组:模式可以包含表、视图、别名(Nicknames)、触发器、函数、数据包等。
- 隐式与显式分配:
- 显式:创建对象时直接指定模式名。
- 隐式:未指定时,对象自动分配给当前模式(通常是当前登录用户的用户名)。
模式的分类
| 模式类型 | 包含内容 | 用途 |
|---|---|---|
| 用户模式 (User Schema) | 表、视图、函数、触发器等用户定义对象。 | 存放业务数据与逻辑。 |
| 系统模式 (System Schema) | 数据库用户列表、访问权限、索引信息、分区详情、用户定义数据类型等。 | 存储配置信息和元数据(Metadata)。 |
数据库分区 (Partitioning)
对于需要存储海量数据的表,可以采用分区关系型数据库技术。
- 实现方式:将大表拆分为多个逻辑分区,每个分区包含整体数据的子集。
- 应用场景:广泛用于数据仓库、业务智能(BI)数据分析等涉及大数据量的场景,旨在显著增强系统性能。
常见数据库对象详解
数据库设计的过程本质上就是定义这些对象及其相互关系。
- 表 (Tables):由行和列构成的逻辑结构,是数据存储的核心。
- 约束 (Constraints):执行业务规则的手段。
- 示例:强制要求“员工编号”必须唯一。
- 索引 (Indexes):一组指针,用于提升查询性能并确保数据唯一性。
- 视图 (Views):表示一个或多个表中数据的另一种方式。
- 注意:视图是逻辑结构而非实际存在的表,不需要永久存储空间。
- 别名 (Aliases):对象的替代名称,通常用于提供更简短、简单的引用方式。
对象管理与 DDL
用户可以通过图形化管理工具、脚本或 API 来创建和管理上述对象。
数据定义语言 (DDL):
在使用 SQL 管理对象时,主要使用 DDL 语句:
CREATE:创建新对象。ALTER:修改现有对象结构。
总结回顾
- 实例是逻辑与配置的边界。
- 关系型数据库是用于存储、管理和访问数据的相关对象集合。
- 模式提供了逻辑分组机制,隔离命名空间。
- 用户模式存放业务对象,系统模式存放元数据。
- 分区技术通过将大表拆分来优化大数据量下的性能。