adm开头的那些都是系统视图,不是系统表
ADM开头的系统视图,都在华为云:
路径(GaussDB官方文档-->开发指南-->开发指南(分布式_V2.0-8.x)-->系统表和系统视图-->系统视图)
https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0990.html
比如这些:
表里面的行也叫tuple,tuple是元祖的意思
schema也叫namespace
database也叫catalog
一个数据库cluster包括最多128个database
每个database包括多个schema
数据库的对象存储在schema里面
这些对象包括table index view function sequence
一个数据库可以在多个表空间里
一个表空间可以横跨多个数据库
每一个数据库也可以横跨多个表空间
数据库的对象由多个数据文件组成
形成同一张表的数据文件是不能跨tablespace的
多个用户和多个数据库
一个单实例对应一个database cluster
一个database cluster 由多个users和多个databases组成
users和databases可以共同同一套openguass实例和相关配置文件
user1可以访问database1和databasen,user2可以访问database1和databasen,
其中database1和databasen的数据是相互隔离的,但这些用户是共享整个opengauss实例中的所有database的
opengauss支持的集簇(database cluster)最多包含128个database
每一个database由多个schema组成
数据库中的对象实际上就是存储在schema里面
对象包括table、index、view、function、sequence等,表、索引、视图、函数、序列
一个database cluster里面包含了多个表空间,
每一个表空间横跨多个database
每一个数据库也可以横跨多个表空间
数据库的一个对象,是由多个数据文件组成
比如,一个表由多个数据文件组成
形成同一个表的数据文件,是不能够跨tablespace的
一个表是分区表,它由多个数据文件,它的多个数据文件是不能跨越tablespace的
也就是分区表,它是有多个数据文件,普通表,可能是有一个数据文件,不管是普通表还是分区表,它的所有数据文件都是在一个表空间里面的,也就是在同一个tablespace的
也就是一张表,不管它是不是分区表,都是只能在一个表空间里面的。其实表空间的物理存在,一般表现为一个文件,这个表是分区表,可能就是这个表空间文件里面的多个子文件,如果这个表是个普通表,不是分区表,那么就是在这个表空间文件里面的单个子文件。
理论上,分区表的不同分区可以分布在不同的表空间中,但实际中的设定,应该是以同一个分区表的不同分区是应该分布在同一个表空间中的。
一个分区表的形成的多个数据文件,是不能跨tablespaces的,对于opengauss来说是这样。
表空间存储的是数据库的实际的数据文件。
opengauss使用schema对数据库做逻辑分割。
schema在功能上类似于操作系统的目录
同一个database cluster内,也就是数据库实例内,database和database之间的数据是隔离的。
同一个database内,schema和schema之间的数据不是严格分离的。
用户根据自己的权限,来访问一个或多个schema
这样多个用户可以使用同一个数据库
在数据库内,创建一个用户,会自动创建一个与用户名同名的schema,用户如果有权限,也可以自己单独创建schema。这个有点像Linux系统中,创建一个用户,就会在/home目录下创建一个这个用户的家目录的情况。
在数据库创建用户时,系统会自动帮助用户在当前数据库中创建一个同名的schema,数据库对象默认创建在数据库搜索路径(search_path)中的第一个schema内。数据库默认具有一个名为public的schema,且默认所有用户的搜索路径都包含该schema
创建一个用户,系统就会自动创建一个与用户名相同的schema,所以一般,在DBeaver中,看到很多schema,而且每个schema都有名称,基本上每个schema的所有者的名称,也就是owner的名称也就是schema的名称,所有写sql语句的时候,就可以加条件owner = 'schema_name' 和 owner in 'schema_name'
schema可以rename和指定owner
初始用户是omm
数据库系统和操作系统不是一回事