当前位置:   article > 正文

PostgreSQL特性总结_postgre 特点

postgre 特点

1 阅读About Chinese Community_PostgreSQL中文社区 世界上功能最强大的开源数据库相关材料,并总结PostgreSQL的特性

PostgreSQL有众多功能,具有标准兼容性、自由开源性以及高度可定制性。

PostgreSQL可在所有主要操作系统(即Linux,UNIX(AIX,BSD,HP-UX,SGI IRIX,Mac OS X,Solaris,Tru64)和Windows等)上运行。PostgreSQL支持文本,图像,声音和视频,并包括用于C/C++,Java,Perl,Python,Ruby,Tcl和开放数据库连接(ODBC)的编程接口。PostgreSQL支持SQL的许多功能,例如复杂SQL查询、SQL子选择、外键、触发器、视图、事务、多进程并发控制。PostgreSQL 是全功能的自由软件数据库,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。在PostgreSQL中,表可以设置为从“父”表继承其特征,可以安装多个扩展以向PostgreSQL添加附加功能。PostgreSQL适合严格追求数据安全保障的交易类业务;PostgreSQL基于物理复制,严格保证主备数据一致;PostgreSQL复制延迟低,通常毫秒级复制延迟;PostgreSQL非常情况下故障恢复快,归档日志回放速度70MB/s以上;PostgreSQL严格遵循SQL标准(相对于MySQL),可以有效防止非法数据入库以及返回错误的结果。PostgreSQL是完全的事务安全性数据库,完整地支持外键、联合、视图、触发器和存储过程(并支持多种语言开发存储过程)。它支持了大多数的SQL:2008标准的数据类型,包括整型、数值型、布尔型、字节型、字符型、日期型、时间间隔型和时间型,它也支持存储二进制的大对像,包括图片、声音和视频。

作为一种企业级数据库,PostgreSQL以它所具有的各种高级功能而自豪,像多版本并发控制(MVCC)、按时间点恢复(PITR)、表空间、异步复制、嵌套事务、在线热备、复杂查询的规划和优化以及为容错而进行的预写日志等。它支持国际字符集、多字节编码并支持使用当地语言进行排序、大小写处理和格式化等操作。它也在所能管理的大数据量和所允许的大用户量并发访问时间具有完全的高伸缩性。目前已有很多PostgreSQL的系统在实际生产环境下管理着超过4TB的数据。

PostgreSQL对SQL标准高度兼容,它实现的功能完全遵守于ANSI-SQL:2008标准。目前完全支持子查询(包括在FROM中的子查询)、授权读取和可序列化的事务隔离级别。同时PostgreSQL也具有完整的关系数据库系统的目录功能,它支持单数据库的多模式功能,每一个目录可通过SQL标准中定义的字典信息模式进行访问。Data集成性功能包括(复合)主键、含有严格约束或级联更新和删除功能的外键、录入检查约束、唯一性约束和非空约束。PostgreSQL也具有很多扩展模块和更高级的功能。其中有为方便使用的通过序列实现的自增字段、 允许返回部分记录集的LIMIT/OFFSET选项,也支持复合、唯一、部分和函数式索引,索引并支持B-Tree、R-Tree、Hash或GiST存储方式。

PostgreSQL的存储过程开发可以使用众多的程序语言,包括Java、Perl、Python、Ruby、Tcl、C/C++和自带的PL/pgSQL,其中的PL/pgSQL与Oracle的PL/SQL很相似,内置了数百个函数,功能从基本的算术计算和字符串处理到加密逻辑计算并与Oracle有高度兼容性。触发器和存储过程可以使用C语言开发并可以作为内部库文件加载至数据库内部,开发上的巨大灵活性扩展了数据库能力。相应地,PostgreSQL也包括一套框架允许开发人员定义和创建他们自己的可在函数中使用数据类型,也可以定义操作符新的处理方式,具有了这样的能力后,PostgreSQL现已具有了各种高级数据类型,包括几何图形、空间地理、网络地址甚至于ISBN/ISSN(国际标准书号/国际标准序列号),这些都可以加入至系统中。由于有很多的存储过程语言可以使用,这样也产生了很多的库接口,这样允许各种编译型或是解释型的语言在PostgreSQL进行使用,包括Java(JDBC)、ODBC、Perl、Python、Ruby、C、C++、PHP、Lisp、Scheme和Qt等。最重要的一点是PostgreSQL的源代码可以自由获取,它的授权是在非常自由的开源授权下,这种授权允许用户在各种开源或是闭源项目中使用、修改和发布PostgreSQL的源代码。用户对源代码的可以按用户意愿进行任何修改、改进。因此,PostgreSQL不仅是一个强大的企业级数据库系统,也是一个用户可以开发私用、网络和商业软件产品的数据库开发平台。

2 回答以下问题并汇总在一个Markdown文件中

2.1试述关系模型的概念

关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。关系模型是指用二维表的形式表示实体和实体间联系的数据模型。在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。

关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。关系模型的概念单一,无论实体还是实体之间的联系都用关系表示,操作的对象个操作的结果都是关系,所以其数据结构简单、清晰、用户易懂易用。关系模型的存取路径对用户透明,从而具有更高的数据独立性,更好的安全保密性,也简化了程序员的工作和数据开发建立的工作。当然,关系数据库模型也有缺点,其中最主要的缺点是,由于存取路径对用户透明,查询效率往往不如非关系型数据库。因此为了提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。

2.2关系模型的三个要素

关系数据结构、关系操作、关系的完整性约束。

关系模型中只包含单一的数据结构----关系,在用户看来关系模型中数据的逻辑结构是一张扁平的二维表。关系的操作对象和结果都是集合。实体完整性:主属性不能为空,主码不相等。参照完整性:例如,学生(学号、姓名、专业号),专业(专业号,专业名),学生关系中的专业号需要参照专业关系中的专业号,称学生关系中的专业号是学生关系的外码,专业关系是被参照关系,学生关系为参照关系,外码与主码不一定要同名,学生关系中的外码取值要么为空值,要么为专业关系中对应专业号的值。用户定义完整性:例如,学生的成绩取值范围在0~100之间。

2.3关系的完整性约束有哪些

实体完整性、参照完整性、用户定义完整性。

实体完整性(Entity integrity)是指关系的主关键字不能重复也不能取“空值"。参照完整性(Referential Integrity)是定义建立关系之间联系的主关键字与外部关键字引用的约束条件。用户定义完整性(user defined integrity)则是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。

2.4试述SQL语言的特点

第一,综合统一。sql可以独立完成数据库生命周期的全部活动,包括定义关系模式、录入数据、建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作。

第二,高度非过程化。非关系型模型的数据操纵语言是面向过程的语言,用其完成用户请求时,必须指定存取路径。而用sql进行数据操作,用户只需提出做什么,而不必指明怎么做。

第三,面向集合的操作方式。sql采用集合操作方式,不仅查找结果可以是元组的集合,而且插入、删除、更新操作的对象也可以是元组的集合。

第四,以同种语法结构提供多种使用方式。比如用户可以在键盘中直接输入sql指令操作数据库,也可以把sql语句嵌入到高级语言程序中。

第五,语言简洁,易学易用。sql功能强,但完成核心功能的动词不多,而且语法简单,接近英语口语,易学习,易使用。

2.5基本关系有哪些性质?

列是同质的,既每一列中的分量为同一类型的数据,来自同一个域;不同的列可出自同一个域,称其中的每列为一个属性,不同的属性的要给予不同的属性名;列的顺序无所谓,即列的次序可以任意交换;任意两个元组不能完全相同;行的顺序无所谓,即行的次序可以任意交换;不允许“表中套表”,即分量必须取原子值,每一个分量必须是不可分的数据项。

2.6什么是等值连接?什么是自然连接?

等值连接:“=”的连接,是关系运算-连接运算的一种常用的连接方式,是条件连接(或称θ连接)在连接运算符为“=”号时,即θ=0时的一个特例。

自然连接:在等值连接的情况下,当连接属性X与Y具有相同属性组时,把在连接结果中重复的属性列去掉。即如果R与S具有相同的属性组Y,则自然连接可记作:R*S={t r⌒ts |tr∈R∧ts∈S∧tr[Y]=ts[Y]}。自然连接是在广义笛卡尔积R×S中选出同名属性上符合相等条件元组,再进行投影,去掉重复的同名属性,组成新的关系。

等值连接中不要求相等属性值的属性名相同,而自然连接要求相等属性值的属性名必须相同,即两关系只有在同名属性才能进行自然连接。等值连接不将重复属性去掉,而自然连接去掉重复属性,也可以说,自然连接是去掉重复列的等值连接。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/493066
推荐阅读
相关标签
  

闽ICP备14008679号