SlideShare une entreprise Scribd logo
1  sur  127
Télécharger pour lire hors ligne
PostgreSQL 介绍

刘鑫 <march.liu@gmail.com.com>

     PostgreSQL 特色及最新版


        July 20, 2010




                         .   .   .   .   .   .
我不认为这是在吹牛!




  PostgreSQL: The world’s most advanced open source database
                http://www.postgresql.org




                                         .   .    .   .   .    .
1975 - 1977




                                  INGRES 项目1




     1
         urlhttp://db.cs.berkeley.edu//papers/ERL-M85-95.pdf.
                                                       .        .   .   .   .
1983




       分布式数据库




                .   .   .   .   .   .
1983




       有序关系




              .   .   .   .   .   .
1983




       抽象数据类型




                .   .   .   .   .   .
1984




       QUEL as a data type




                             .   .   .   .   .   .
1986 年




                伯克利系的数据库研究项目:POSTGRES                                 2




    2
        urlhttp://www.pgsqldb.org/pgsqldoc-cvs/history.html
                                                       .      .   .       .   .   .
感谢领导




       Michael Stonebraker




                             .   .   .   .   .   .
感谢国家




       防务高级研究项目局(DARPA)




                    .   .   .   .   .   .
继续感谢国家




         陆军研究办公室(ARO)




                    .   .   .   .   .   .
不过都是美国的




          国家科学基金(NSF)




                    .   .   .   .   .   .
感谢民企,不过也是美国的




          ESL , Inc




                      .   .   .   .   .   .
1987 年




         第一个“演示性”系统




                  .   .   .   .   .   .
1988 年




         ACM-SIGMOD 大会




                         .   .   .   .   .   .
1989 年




         发布版本 1




                  .   .   .   .   .   .
1990 年




         发布版本 2




                  .   .   .   .   .   .
1991 年




         发布版本 3




                  .   .   .   .   .   .
1990 年




         发布版本 2




                  .   .   .   .   .   .
POSTGRES 在许多研究或实际的应用中得到了应用




                  .   .   .   .   .   .
财务数据分析系统




           .   .   .   .   .   .
喷气引擎性能监控软件包




          .   .   .   .   .   .
小行星跟踪数据库




           .   .   .   .   .   .
医疗信息数据库




          .   .   .   .   .   .
地理信息系统




         .   .   .   .   .   .
大学教学




       .   .   .   .   .   .
Illustra Information Technologies Illustra Information Technologies
           (后来并入 Informix)拿到代码并使之商业化




                                             .   .    .    .    .     .
1992 年




         成为 Sequoia 2000 科学计算项目的首要数据管理器。




                              .   .   .   .   .   .
1994 年




         Postgres 项目终止于 4.2 版




                           .    .   .   .   .   .
情何以堪……




  据说是因为用户太多了,作者觉得耽误了学术研究……




                  .   .   .   .   .   .
感谢香港!




 Andrew Yu 和 Jolly Chen 向 POSTGRES 中增加了 SQL 语言的解
                  释器,开源成为 Postgres 95




                                .   .   .   .   .   .
记得先感谢国家!




       PostgreSQL 的历程开始了!




                      .     .   .   .   .   .
完备的关系模型




          .   .   .   .   .   .
面向对象支持




         .   .   .   .   .   .
丰富的数据类型,针对多种行业的业务需要




              .   .   .   .   .   .
各种 contrib 的强力支持




               .   .   .   .   .   .
强大的 OLAP 支持




              .   .   .   .   .   .
强大的服务器端开发能力




          .   .   .   .   .   .
性能稳定,抗压能力好




         .   .   .   .   .   .
支持完整的关系数据模型




          .   .   .   .   .   .
基本的表 / 字段结构




              .   .   .   .   .   .
基本的主外键约束




           .   .   .   .   .   .
check 约束




           .   .   .   .   .   .
存储过程




       .   .   .   .   .   .
触发器




      .   .   .   .   .   .
可靠的索引支持




          .   .   .   .   .   .
各种内置的通用和专用类型




          .    .   .   .   .   .
数值——浮点和整形




            .   .   .   .   .   .
鄙视没有精确实数的“企业级”平台




       数值——精确实数 Numeric




                     .    .   .   .   .   .
出于兼容目的 varchar




                 .   .   .   .   .   .
二进制对象




        .   .   .   .   .   .
无限文本 Text




            .   .   .   .   .   .
丰富的几何类型,点、线,各种几何形状……




              .   .   .   .   .   .
位串 bits




          .   .   .   .   .   .
时间日期 / 时段类型




              .   .   .   .   .   .
IP




     .   .   .   .   .   .
UUID




       .   .   .   .   .   .
全文索引




       .   .   .   .   .   .
数组




     .   .   .   .   .   .
组合类型




       .   .   .   .   .   .
……




     .   .   .   .   .   .
PostgreSQL 可以强大到成为一个开发平台。




                  .   .   .   .   .   .
简单查询




       .   .   .   .   .   .
标准的 JOIN 关联查询




            .   .   .   .   .   .
子查询




      .   .   .   .   .   .
统一友好的基本格式是后续内容的基础




             .   .   .   .   .   .
这个其实没啥可惊喜的……




        基本的 group by 支持




                          .   .   .   .   .   .
在 8.4 版经历了一次性能优化




   确认:PG 的 Group By 是根据存储分区进行并行计算的。




                        .   .   .   .   .   .
说实话有些我还没弄懂 ==




         丰富的统计函数支持




                     .   .   .   .   .   .
Window 功能




            .   .   .   .   .   .
强劲的并发能力是复杂数据挖掘的保障




             .   .   .   .   .   .
强大的文本处理能力




            .   .   .   .   .   .
无限 TEXT




          .   .   .   .   .   .
正则表达式




        .   .   .   .   .   .
全文检索




       .   .   .   .   .   .
中文分词




       .   .   .   .   .   .
友好的函数调用方式,有效提升开发能力




             .   .   .   .   .   .
标量函数调用的缩写方式




          select foo();




                          .   .   .   .   .   .
常见的函数调用方式




        select foo(...) from ...;




                                    .   .   .   .   .   .
函数可以返回一个结果集,作为数据集操作
     select ... from foo();




                    .   .   .   .   .   .
支持命名参数和变参!




         .   .   .   .   .   .
当然,基本的 out 参数什么的,也都没有问题




                .   .   .   .   .   .
函数定义(含代码块封装格式)

CREATE FUNCTION h e l l o ( ) RETURNS TEXT AS $$
    SELECT ’ H e l l o w o r l d ’ AS r e s u l t ;
$$ LANGUAGE SQL ;




                                      .   .   .   .   .   .
安装 PLSQL




           .   .   .   .   .   .
9.0 中已经是默认安装




           .   .   .   .   .   .
在函数中使用 PLSQL




               .   .   .   .   .   .
基本格式




       .   .   .   .   .   .
变量处理




       .   .   .   .   .   .
隐式游标循环




         .   .   .   .   .   .
逻辑判断




       .   .   .   .   .   .
显式游标




       .   .   .   .   .   .
可写游标




       .   .   .   .   .   .
嵌套游标




       .   .   .   .   .   .
return




         .   .   .   .   .   .
return query




               .   .   .   .   .   .
return next




              .   .   .   .   .   .
异常与错误处理




          .   .   .   .   .   .
事务




     .   .   .   .   .   .
安装新语言




        .   .   .   .   .   .
PL/Python




            .   .   .   .   .   .
PL/Perl




          .   .   .   .   .   .
PL/Sh




        .   .   .   .   .   .
PL/Java




          .   .   .   .   .   .
自由扩展的接口




          .   .   .   .   .   .
数据分区




       .   .   .   .   .   .
分区场景中的索引




           .   .   .   .   .   .
分区场景中的查询




           .   .   .   .   .   .
冷备




     .   .   .   .   .   .
热备与温备




        .   .   .   .   .   .
slony-i




          .   .   .   .   .   .
standby




          .   .   .   .   .   .
standby 策略




             .   .   .   .   .   .
standby 策略




             .   .   .   .   .   .
索引的影响




        .   .   .   .   .   .
性能剖分




       .   .   .   .   .   .
数据库分切对性能的影响




          .   .   .   .   .   .
缓存




     .   .   .   .   .   .
锁与连接状态




         .   .   .   .   .   .
postgresql.conf




                  .   .   .   .   .   .
pg hba.conf




              .   .   .   .   .   .
其它认证方式




         .   .   .   .   .   .
设计大局观




        .   .   .   .   .   .
可靠性




      .   .   .   .   .   .
开发




     .   .   .   .   .   .
Map Reduce 与 OLAP




                    .   .   .   .   .   .
无限位串




       .   .   .   .   .   .
搜索引擎




       .   .   .   .   .   .

Contenu connexe

Similaire à PostgreSQL Introduction V0.1

软件开发工程化的个人体验
软件开发工程化的个人体验软件开发工程化的个人体验
软件开发工程化的个人体验March Liu
 
Xcode tutorial
Xcode tutorialXcode tutorial
Xcode tutorialMarch Liu
 
8门编程语言的设计思考
8门编程语言的设计思考8门编程语言的设计思考
8门编程语言的设计思考Ray Song
 
Unixtoolbox zh cn
Unixtoolbox zh cnUnixtoolbox zh cn
Unixtoolbox zh cnxdboy2006
 
unix toolbox 中文版
unix toolbox 中文版unix toolbox 中文版
unix toolbox 中文版Jie Bao
 
Emacs Introduction
Emacs IntroductionEmacs Introduction
Emacs IntroductionMarch Liu
 
Python速成指南
Python速成指南Python速成指南
Python速成指南March Liu
 
C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述Xiaozhe Wang
 
Excel+ppt+word2003使用技巧方法大全
Excel+ppt+word2003使用技巧方法大全Excel+ppt+word2003使用技巧方法大全
Excel+ppt+word2003使用技巧方法大全0hanfeng0
 
Linux 期末報告
Linux 期末報告Linux 期末報告
Linux 期末報告米米 林
 
Postgre sql intro 0
Postgre sql intro 0Postgre sql intro 0
Postgre sql intro 0March Liu
 
R Language definition
R Language definitionR Language definition
R Language definition湘云 黄
 
神经网络与深度学习
神经网络与深度学习神经网络与深度学习
神经网络与深度学习Xiaohu ZHU
 
Socrates Used PostgreSQL and SQLAlchemy
Socrates Used PostgreSQL and SQLAlchemySocrates Used PostgreSQL and SQLAlchemy
Socrates Used PostgreSQL and SQLAlchemyMarch Liu
 
Mongo db &lamp;redis,nosql
Mongo db &lamp;redis,nosqlMongo db &lamp;redis,nosql
Mongo db &lamp;redis,nosqltaocheng1989
 
Crosstool ng
Crosstool ngCrosstool ng
Crosstool ngcri fan
 
Crosstool ng
Crosstool ngCrosstool ng
Crosstool ngcri fan
 
Java eye新闻月刊 -_2010年01月_-_总第23期
Java eye新闻月刊 -_2010年01月_-_总第23期Java eye新闻月刊 -_2010年01月_-_总第23期
Java eye新闻月刊 -_2010年01月_-_总第23期JianXiong Ma
 

Similaire à PostgreSQL Introduction V0.1 (20)

软件开发工程化的个人体验
软件开发工程化的个人体验软件开发工程化的个人体验
软件开发工程化的个人体验
 
Xcode tutorial
Xcode tutorialXcode tutorial
Xcode tutorial
 
8门编程语言的设计思考
8门编程语言的设计思考8门编程语言的设计思考
8门编程语言的设计思考
 
unixtoolbox_zh_CN
unixtoolbox_zh_CNunixtoolbox_zh_CN
unixtoolbox_zh_CN
 
Unixtoolbox zh cn
Unixtoolbox zh cnUnixtoolbox zh cn
Unixtoolbox zh cn
 
unix toolbox 中文版
unix toolbox 中文版unix toolbox 中文版
unix toolbox 中文版
 
Emacs Introduction
Emacs IntroductionEmacs Introduction
Emacs Introduction
 
Python速成指南
Python速成指南Python速成指南
Python速成指南
 
C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述
 
Twido programming guide
Twido programming guideTwido programming guide
Twido programming guide
 
Excel+ppt+word2003使用技巧方法大全
Excel+ppt+word2003使用技巧方法大全Excel+ppt+word2003使用技巧方法大全
Excel+ppt+word2003使用技巧方法大全
 
Linux 期末報告
Linux 期末報告Linux 期末報告
Linux 期末報告
 
Postgre sql intro 0
Postgre sql intro 0Postgre sql intro 0
Postgre sql intro 0
 
R Language definition
R Language definitionR Language definition
R Language definition
 
神经网络与深度学习
神经网络与深度学习神经网络与深度学习
神经网络与深度学习
 
Socrates Used PostgreSQL and SQLAlchemy
Socrates Used PostgreSQL and SQLAlchemySocrates Used PostgreSQL and SQLAlchemy
Socrates Used PostgreSQL and SQLAlchemy
 
Mongo db &lamp;redis,nosql
Mongo db &lamp;redis,nosqlMongo db &lamp;redis,nosql
Mongo db &lamp;redis,nosql
 
Crosstool ng
Crosstool ngCrosstool ng
Crosstool ng
 
Crosstool ng
Crosstool ngCrosstool ng
Crosstool ng
 
Java eye新闻月刊 -_2010年01月_-_总第23期
Java eye新闻月刊 -_2010年01月_-_总第23期Java eye新闻月刊 -_2010年01月_-_总第23期
Java eye新闻月刊 -_2010年01月_-_总第23期
 

Plus de March Liu

Jaskell Core Parsec
Jaskell Core ParsecJaskell Core Parsec
Jaskell Core ParsecMarch Liu
 
轻量级文本工具集
轻量级文本工具集轻量级文本工具集
轻量级文本工具集March Liu
 
奇点与未来
奇点与未来奇点与未来
奇点与未来March Liu
 
尼尔盖曼的美国众神
尼尔盖曼的美国众神尼尔盖曼的美国众神
尼尔盖曼的美国众神March Liu
 
创业项目中常见的技术和管理债务
创业项目中常见的技术和管理债务创业项目中常见的技术和管理债务
创业项目中常见的技术和管理债务March Liu
 
It工程师的职业成长
It工程师的职业成长It工程师的职业成长
It工程师的职业成长March Liu
 
PostgreSQL 9 1 新特性
PostgreSQL 9 1 新特性PostgreSQL 9 1 新特性
PostgreSQL 9 1 新特性March Liu
 
Python 数据库技术讲座(二)
Python 数据库技术讲座(二)Python 数据库技术讲座(二)
Python 数据库技术讲座(二)March Liu
 
Python 数据库技术讲座(一)
Python 数据库技术讲座(一)Python 数据库技术讲座(一)
Python 数据库技术讲座(一)March Liu
 
Python 数据库技术
Python 数据库技术Python 数据库技术
Python 数据库技术March Liu
 
PostgreSQL 9 的 standby 集群实践
PostgreSQL 9 的 standby 集群实践PostgreSQL 9 的 standby 集群实践
PostgreSQL 9 的 standby 集群实践March Liu
 
PostgreSQL 9 Standby
PostgreSQL 9 StandbyPostgreSQL 9 Standby
PostgreSQL 9 StandbyMarch Liu
 
基于 PostgreSQL 的关系型数据库方案
基于 PostgreSQL 的关系型数据库方案基于 PostgreSQL 的关系型数据库方案
基于 PostgreSQL 的关系型数据库方案March Liu
 
1 Python简介
1 Python简介1 Python简介
1 Python简介March Liu
 
3 Python开发风格与建议
3 Python开发风格与建议3 Python开发风格与建议
3 Python开发风格与建议March Liu
 
Perl 6 news at 2010-06
Perl 6 news at 2010-06Perl 6 news at 2010-06
Perl 6 news at 2010-06March Liu
 

Plus de March Liu (16)

Jaskell Core Parsec
Jaskell Core ParsecJaskell Core Parsec
Jaskell Core Parsec
 
轻量级文本工具集
轻量级文本工具集轻量级文本工具集
轻量级文本工具集
 
奇点与未来
奇点与未来奇点与未来
奇点与未来
 
尼尔盖曼的美国众神
尼尔盖曼的美国众神尼尔盖曼的美国众神
尼尔盖曼的美国众神
 
创业项目中常见的技术和管理债务
创业项目中常见的技术和管理债务创业项目中常见的技术和管理债务
创业项目中常见的技术和管理债务
 
It工程师的职业成长
It工程师的职业成长It工程师的职业成长
It工程师的职业成长
 
PostgreSQL 9 1 新特性
PostgreSQL 9 1 新特性PostgreSQL 9 1 新特性
PostgreSQL 9 1 新特性
 
Python 数据库技术讲座(二)
Python 数据库技术讲座(二)Python 数据库技术讲座(二)
Python 数据库技术讲座(二)
 
Python 数据库技术讲座(一)
Python 数据库技术讲座(一)Python 数据库技术讲座(一)
Python 数据库技术讲座(一)
 
Python 数据库技术
Python 数据库技术Python 数据库技术
Python 数据库技术
 
PostgreSQL 9 的 standby 集群实践
PostgreSQL 9 的 standby 集群实践PostgreSQL 9 的 standby 集群实践
PostgreSQL 9 的 standby 集群实践
 
PostgreSQL 9 Standby
PostgreSQL 9 StandbyPostgreSQL 9 Standby
PostgreSQL 9 Standby
 
基于 PostgreSQL 的关系型数据库方案
基于 PostgreSQL 的关系型数据库方案基于 PostgreSQL 的关系型数据库方案
基于 PostgreSQL 的关系型数据库方案
 
1 Python简介
1 Python简介1 Python简介
1 Python简介
 
3 Python开发风格与建议
3 Python开发风格与建议3 Python开发风格与建议
3 Python开发风格与建议
 
Perl 6 news at 2010-06
Perl 6 news at 2010-06Perl 6 news at 2010-06
Perl 6 news at 2010-06
 

PostgreSQL Introduction V0.1