Coursera 笔记

Module 02 · Using Relational Databases

Database Objects and Hierarchy (Including Schemas)数据库对象与层级结构(含模式)

Coursera ↗

欢迎学习数据库对象与层级结构。通过本指南,您将能够描述数据库对象的层级组织方式,理解数据库实例(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:修改现有对象结构。

总结回顾

  • 实例是逻辑与配置的边界。
  • 关系型数据库是用于存储、管理和访问数据的相关对象集合。
  • 模式提供了逻辑分组机制,隔离命名空间。
  • 用户模式存放业务对象,系统模式存放元数据。
  • 分区技术通过将大表拆分来优化大数据量下的性能。