codecamp

PostgreSQL 教程

什么是数据库?

 数据库(Database)是按照数据结构来组织,存储和管理数据的仓库的。

每个数据库都有一个或多个不同的API,用于创建,访问,管理,搜索和复制所保存的数据。

我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。

所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,收集集合代数等数学概念和方法来处理数据库中的数据。

ORDBMS(对象关系数据库系统)是面向对象技术与传统的关系数据库相结合的生成物,查询处理是ORDBMS的重要组成部分,其性能优劣将直接影响到DBMS的性能。

ORDBMS在原来关系数据库的基础上,增加了一些新的特性。

RDBMS是关系数据库管理系统,是建立实体之间的联系,最后得到的是关系表。

OODBMS面向对象数据库管理系统,将所有实体都看着对象,将这些对象类进行封装,对象之间的通信通过消息OODBMS对象关系数据库在替换还是关系数据库。

ORDBMS术语

在我们开始学习PostgreSQL数据库前,让我们先了解下ORDBMS的一些术语:

  • 数据库:数据库是一些关联表的集合。
  • 在一个数据库中的表看起来像一个简单的电子表格。
  • 列:一列(数据元素)包含了相同的数据,例如某些的数据。
  • 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  • 冗余:存储双向数据,冗余降低了性能,但提高了数据的安全性。
  • 主键:主键是唯一的。一个数据表中只能包含一个主键。您可以使用主键来查询数据。
  • 外键:外键用于关联两个表。
  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  • 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。
  • 与实体初始是关系模型必须满足的共识约束条件,目的是保证数据的一致性。

PostgreSQL特征

  • 函数:通过函数,可以在数据库服务器端执行指令程序。
  • 索引:用户可以自定义索引方法,或使用内置的B树,哈希表与GiST索引。
  • 通常由INSERT或Update语句触发。多版本并发控制:PostgreSQL使用多版本。每个用户提供一个数据库的“快照”,用户在事务内部进行的每个修改,对于其他的用户都不可见,直到该事务成功提交。
  • 规则:规则(RULE)允许一个查询能被重组,通常用于实现对视图(VIEW)的操作,如插入(INSERT),更新(UPDATE),删除(DELETE)。
  • 数据类型:包括文本,任意精度的数值数组,JSON数据,枚举类型,XML数据等。
  • 全文检索:通过Tsearch2或OpenFTS,8.3版本中内嵌Tsearch2。
  • NoSQL:JSON,JSONB,XML,HStore本机支持,至NoSQL数据库的外部数据包装器。
  • 数据仓库:能平滑迁移至同属PostgreSQL生态的GreenPlum,DeepGreen,HAWK等,使用FDW进行ETL。


Linux 上安装 PostgreSQL
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

PostgreSQL 更多内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }