mysql表的依赖关系_2.1.1 主要系统表功能及依赖关系(1)

2.1.1  主要系统表功能及依赖关系(1)

在PostgreSQL 8.4.1中,共有42张系统表和17张系统视图,系统视图是建立在基本系统表之上的。本节将对主要的系统表进行介绍,其他系统表将在后续章节中分别予以介绍。

1.pg_namespace

系统表pg_namespace用于存储命名空间。命名空间是SQL92模式下层的结构:每个名字空间有独立的关系、类型等集合,但并不会相互冲突。PostgreSQL的名字空间层次是:数据库.模式.表.属性。

当要访问一个对象时,PostgreSQL会按以下名字空间顺序进行搜索:

特殊名字空间(special),仅用于创建模式。

临时表的名字空间(TEMP)。

系统表的名字空间。

pg_namespace中每一个元组都对应一个名字空间,每一个名字空间都被分配一个OID(对象标识符,用于在整个数据库系统中***地标识一个数据库对象,包括数据库、表、视图、索引等,在2.2节中会进一步介绍)作为***标识,并且存储在对应元组的隐藏属性(PostgreSQL中每个元组都有几个用户不可见的属性,用于记录一些系统级的信息)中。每个元组(名字空间)包含的属性如表2-1所示。

表2-1  pg_namespace属性表

fe8f32752f30b7b87f74730bc3cae7ee.png

2.pg_tablespace

pg_tablespace存储表空间信息,将表放置在不同的表空间有助于实施磁盘文件布局。pg_tablespace在整个数据集簇里只有一份,也就是说同一个数据集簇内的所有数据库共享一个pg_tablespace表,而不是每个数据库都有自己的pg_tablespace表。

PostgreSQL里的表空间允许数据库管理员在文件系统里定义代表数据库对象的文件的存放位置。通过使用表空间,管理员可以控制一个PostgreSQL中数据的磁盘布局,即可以通过表空间将PostgreSQL系统的数据分布在不同的磁盘位置上。这样做有两个用处。***,如果初始的集簇所在的分区或者卷用光了空间,而又无法扩展该分区或卷的空间,那么可以通过表空间去利用另一个分区的空间;第二,表空间允许管理员根据数据库对象的使用模式安排数据位置,从而优化性能。比如,一个使用很频繁的索引可以放在非常快并且可靠的磁盘上(如一种非常贵的固态设备)。而一个存储归档的数据、很少使用的或者对性能要求不高的表可以存储在一个相对便宜但速度比较慢的磁盘系统上。

pg_tablespace中每一个元组都对应一个表空间,每一个表空间都被分配一个OID作为***标识,并且存储在对应元组的隐藏属性中。每个元组(表空间)包含的属性如表2-2所示。

表2-2  pg_tablespace属性表

a41f178140ca0976c90340a5fe25b18d.png

3.pg_database

pg_database中存放了当前数据集簇中数据库的信息,它也是一个在整个集簇范围内共享的系统表。该表中每一个元组就表示集簇中的一个数据库,每一个数据库都被分配一个OID作为***标识,并且存储在对应元组的隐藏属性中。每个元组(数据库)包含的属性如表2-3所示。

表2-3  pg_datebase属性表

348c46dfe171deb83bc2c355424efbf2.png

【责任编辑:云霞 TEL:(010)68476606】

点赞 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值