数据库对象是数据库的组成部分,是指在数据库中可以通过 SQL 进行操作和使用的对象。本章节主要介绍 OceanBase 数据库 MySQL 模式下所支持的数据库对象类型、存储方式和数据库对象之间的依赖。
OceanBase 数据库 MySQL 模式下的数据库对象主要包括:表(Table)、视图(View)、索引(Index)、分区(Partition)、序列(Sequence)、触发器(Trigger)以及存储程序等。
MySQL 模式下的用户(User)在被赋予相关权限后可以连接数据库、访问或操作数据库对象。库(Database) 是数据库对象的集合,用于权限管理和命名空间隔离。Schema 是 Database 的同义词,SQL 中可以使用 Schema 关键字代替 Database 关键字,例如使用 CREATE SCHEMA
代替 CREATE DATABASE
等。
OceanBase 数据库 MySQL 模式下所支持的数据库对象类型。
有关 OceanBase 数据库 MySQL 模式下的数据库对象的详细信息如下表所示。
对象类型 | 描述 |
---|---|
表(Table) | 数据库里最基础的存储单元,表里的数据由行和列组织排列的。 |
视图(View) | 视图是一个虚拟的表,其内容由查询定义。 同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集合的形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。 |
索引(Index) | 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的指定信息。 例如,想按指定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。 |
分区(Partition) | OceanBase 数据库可以把普通的表的数据按照一定的规则划分到不同的区块内,同一区块的数据物理上存储在一起。这种划分区块的表叫做分区表。 与 Oracle 中的 Partition 概念相同,在 OceanBase 数据库中只有水平分区,表的每一个分区包含一部分记录。根据行数据到分区的映射关系不同,分为 Hash 分区、Range 分区(按范围)和 List 分区等。 每一个分区,还可以用不同的维度再分为若干分区,叫做二级分区。例如,交易记录表按照用户 ID 分为若干 Hash 分区,每个一级 Hash 分区再按照交易时间分为若干二级 Range 分区。 |
存储程序(Stored Program) | 存储程序(Stored Program)是一组为了完成指定功能的 SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并指定参数(如果该存储过程带有参数)来调用执行它。 存储程序是可编程的函数,在数据库中创建并保存,由 SQL 语句和控制结构组成。 |