匿名用户openGauss数据库的主要逻辑对象有哪些?
Tablespace,Datafile Segment,Table, Block
评论
有用 0数据库的逻辑对象都大差不差吧,接楼上再补充几个: 索引、视图、序列、存储过程及函数,甚至database 都属于其定义的逻辑对象吧~
评论
有用 0openGause的逻辑结构跟其他数据库还是有些区别的,openGause相对Oracle来说,逻辑结构和物理结构并不是有严格明确的区分,openGause的逻辑结构主要有:
1、block,默认8KB,是数据库管理的基本单位。
2、table,openGause中,table只能属于一个database,也只能对应到一个tablespac里。
3、datafile segment,数据库文件,一般情况下一个table对应一个数据文件。
4、database,用于管理各类数据库对象,以database为隔离单元,实现各个database之间的相互隔离。database中的对象是可以分布在多个tablespace中的。
5、tablespace,即表空间,这个跟Oracle或者其他数据库相差比较大,tablespace可以理解为一个目录,主要存放数据库的各种物理文件,每个表空间里可以存放多个database的相关的物理文件,所以openGause的逻辑结构理解起来是比较别扭的,希望我没搞错。
评论
有用 0看官网文档,如下图描述还是比较清晰的:

基本概念
数据库(Database)
数据库是存储在一起的相关数据的集合,这些数据可以被访问,管理以及更新。
数据库用于管理各类数据对象,与其他数据库隔离。创建数据对象时可以指定对应的表空间,如果不指定相应的表空间,相关的对象会默认保存在PG_DEFAULT空间中。数据库管理的对象可分布在多个表空间上。
数据块(Block)
数据块是数据库管理的基本单位,默认大小为8KB。
行(ROW)
一行(元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
列(Cloumn)
每一列被当作是一个字段。每个字段中的值代表一种类型的数据。例如,一个表可能有3个字段:姓名、城市和国家。这个表就会有3列,一列代表姓名,一列代表城市,一列代表国家。表中的每一行包含3个字段的内容,姓名字段包含姓名,城市字段包含城市,国家字段包含国家。
表(Table)
表是由行与列组合成的,是数据库中用来存储数据的对象,是整个数据库系统的基础。
每张表只能属于一个数据库,也只能对应到一个表空间。每张表对应的数据文件必须在同一个表空间中。
数据文件(Datafile Segment)
通常每张表只对应一个数据文件。如果某张表的数据大于1GB,则会分为多个数据文件存储。
表空间(Tablespace)
在openGauss中,表空间是一个目录,在物理数据和逻辑数据间提供了抽象的一层,为所有的数据库对象分配存储空间,里面存储的是它所包含的数据库的各种物理文件。由于表空间是一个目录,仅是起到了物理隔离的作用,其管理功能依赖于文件系统。
表空间可以存在多个,创建好之后,创建数据库对象时可以指定该对象所属的表空间。
模式(schema)
数据库对象集,包括逻辑结构,例如表、视图、序、存储过程、同义名、索引及数据库链接。
事务(Transaction)
数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。
同时,事务也是恢复和并发控制的基本单位,必须具备ACID特性,即:
- 原子性(Atomicity):一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。
- 一致性(Consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
- 隔离性(Isolation):一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
- 持久性(Durability):持久性也称永久性(Permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
评论
有用 0
墨值悬赏

