postgresql体系的简单介绍

postgreSQL数据库有什么用啊?

优点事实上, PostgreSQL 的特性覆盖了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备, 比如 IP 类型和几何类型等;其次,PostgreSQL 是全功能的自由软件数据库,很长时间以来,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。直到最近才有 Inprise 的 InterBase 以及 SAP 等厂商将其原先专有软件开放为自由软件之后才打破了这个唯一。最后,PostgreSQL拥有一支非常活跃的开发队伍,而且在许多黑客的努力下,PostgreSQL 的质量日益提高。

创新互联建站-专业网站定制、快速模板网站建设、高性价比延川网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式延川网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖延川地区。费用合理售后完善,十载实体公司更值得信赖。

从技术角度来讲,PostgreSQL 采用的是比较经典的 C/S (client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。为了便于客户端的程序的编写,由数据库服务器提供了统一的客户端 C 接口。而不同的客户端接口都是源自这个 C 接口,比如 ODBC,JDBC,Python,Perl ,Tcl,C/C++,ESQL 等, 同时也要指出的是,PostgreSQL 对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。这一点也可以说是 PostgreSQL 一大优点。

缺点

从 Postgres 开始,PostgreSQL 就经受了多次变化。

首先,早期的 PostgreSQL 继承了几乎所有 Ingres, Postgres, Postgres95 的问题:过于学院味,因为首先它的目的是数据库研究,因此不论在稳定性, 性能还是使用方便方面,长期以来一直没有得到重视,直到 PostgreSQL 项目开始以后,情况才越来越好,目前,PostgreSQL 已经完全可以胜任任何中上规模范围内的应用范围的业务。目前有报道的生产数据库的大小已经有 TB 级的数据量,已经逼近 32 位计算的极限。不过学院味也给 PostgreSQL 带来一个意想不到的好处:大概因为各大学的软硬件环境差异太大的缘故,它是目前支持平台最多的数据库管理系统的一种,所支持的平台多达十几种,包括不同的系统,不同的硬件体系。至今,它仍然保持着支持平台最多的数据库管理系统的称号。

其次,PostgreSQL 的确还欠缺一些比较高端的数据库管理系统需要的特性,比如数据库集群,更优良的管理工具和更加自动化的系统优化功能 等提高数据库性能的机制等。

常见的数据库应用系统有哪些?

IBM 的DB2。

关系数据库领域的开拓者和领航人

Oracle

大型的数据库系统。

Informix

目的是为Unix等开放操作系统提供专业的关系型数据库产品。

Sybase

Sybase首先提出Client/Server 数据库体系结构的思想,并率先在Sybase SQLServer 中实现。

SQL Server

最初由微软和IBM合作开发完成OS/2。后微软同Sybase 签订了合作协议,使用Sybase的技术开发基于OS/2平台的关系型数据库——SQL Server。

PostgreSQL

目前PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。

mySQL

目前MySQL被广泛地应用在Internet上的中小型网站中。(开放源码、体积小、速度快、总体拥有成本低)

Access数据库

界面友好、易学易用、开发简单、接口灵活。

Access主要适用于中小型应用系统,或作为客户机/服务器系统中的客户端数据库。

常用数据库系统简介

码字不容易啊,望采纳。

ORACLE (甲骨文,美国)

优点:产品系列齐全,几乎囊括所有应用领域,大型,完善,安全,可以支持多个实例同时运行,功能强。能在所有主流平台上运行(包括 windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。

缺点:价格成本,服务费用,后期产品追加费用,管理维护相对麻烦,对硬件的要求高。

几乎匹配所有动态网页设计,性能优越。

SQLSERVER(微软,美国)

优点:简单,界面友好,上手容易,只能在WINDOWS平台下使用。一般用于.net 程序设计。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。

缺点:windows平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理大数据量的关键业务时。

网页设计多与C#(也是微软的)经典组合,不过也是几乎开放所有开发语言接口

MYSQL (被oracle收购,收购后的新版已出,市场反应一般)

优点:免费,功能不错,是开源的,体积小,并发执行的数据库,如今mysql逐渐体现出性价比高的优势。

缺点:稳定性有待考量,面对大量数据的处理能力有限,并发性处理的机制不健全。

网页开发mysql的应用还是很多的,应用比较广泛。

DB2 (IBM 美国)

优点:优点很多啦,与oracle一样是大型以及超大型的数据库,能力当然很好啦,企业解决方案很牛X,在金融和电信方运用DB2的很多,最适于海量数据。DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器,而国内到97年约占5%。不过与oracle相比db2的应用相对较窄,一是价钱很贵,二是主要面向大型企业,市场份额还是oracle最高,所以db2专家较少,很吃香的。

以db2的优质能力相对海量并发的web服务和访问比较轻松啦。

Access(微软,美国):

优点:操作简洁、方便,不用依赖Server也可以对数据进行操作。

缺点:安全性不够,如果做为服务器的话,对服务器要求很高,否则容易造成 MDB 损坏,高强度操作适应性差,不能将 VBA 代码开发的软件系统直接编译成 EXE 可执行文件,不能脱离 ACCESS 或者 ACCESS RUNTIME 环境,该环境相对其他软件体积较大(50M左右),每个数据库文件最大限制只有2G,对于大型网站显然不能够胜任。

我接触的access应用比较少啦,关于开发的不了解了。

Sybase(Sybase 美国):

优点:操作简单,管理相对容易,对新手很好理解,上手快,曾经的sybase还是挺辉煌的,sybase 数据仓库还是挺不错,大数据的解决方案也不错,与oracle,db2齐名,但是之后似乎难以追随市场的脚步了。

缺点:Sybase使用的编程接口不是开放的,没有使用SQL92等相关的标准,因此编制存储程序和触发器所用的Transact-SQL也是它们自己专用的。 优化器(OPTIMIZER)不能有效的支持复杂的查询(ComplexQueries)。应用程序中稍微复杂一些的SQL语句,Sybase的优化器就无法妥善优化处理。已经退出主流数据库市场,市场份额缩水严重,被SAP收购后前途待观望。

web应用还是比较广泛的啦。

informix(被IBM收购):

优点:如今被IBM定位为作为IBM在线事务处理(OLTP)旗舰级数据服务系统,使用不是很广泛,IBM对Informix和DB2都有长远的规划,两个数据库产品互相吸取对方的技术优势。

缺点:INFORMIX是以小型数据库起家,所以其产品设计到目前为止仍有许多小型数据库的限制。许多用户都曾遇到INFORMIX在数据存储、日志管理、备份、恢复等方面的问题。Informix的扩展并行选项在支持多用户并发访问时存在困难。INFORMIX由于缺乏对大量数据的管理经验,所以其优化器技术也不能针对大量数据做优化。 小型企业可以尝试使用。

postgresql(美国):

优点:轻盈好用的数据库,有点很多,如优化排序性能,内存占用更少;表继承(很强),提高加锁效率和并发度;创建索引过程中允许INSERT/UPDATE/DELETE等等。

缺点:不足之处就是大数量的场景有待市场检验,目前触及海量数据的案例较少。

如果对你有帮助.请点击我的回答下方【选为满意回答】按钮

数据库的类型都有哪些?

数据库有两种类型,分别是关系型数据库与非关系型数据库。

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。

关系型数据库主要有:

Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等等。

非关系型数据库主要有:

NoSql、Cloudant、MongoDb、redis、HBase等等。

扩展资料:

非关系型数据库的优势:

1、性能高:NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高。

2、可扩展性好:同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。

关系型数据库的优势:

1、可以复杂查询:可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。

2、事务支持良好:使得对于安全性能很高的数据访问要求得以实现。

参考资料来源:百度百科-数据库

如何找到PostgreSQL数据库上次更新的时间

方法一:通过查找表数据文件方式

这种方法通过查找表的数据文件的方式从而确定表的创建时间,但是这种方法并不能准备查询表的创建

时间,而且有时候,这种方法得到的信息还有可能是错误的,下面大致演示下。

--1.1 创建表并插入数据

francs= create table test_ctime (id int4 primary key ,name varchar(32));

NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "test_ctime_pkey" for table "test_ctime"

CREATE TABLE

francs= insert into test_ctime select generate_series(1,10000),'create_time test';

INSERT 0 10000

francs= \d test_ctime;

Table "francs.test_ctime"

Column | Type | Modifiers

--------+-----------------------+-----------

id | integer | not null

name | character varying(32) |

Indexes:

"test_ctime_pkey" PRIMARY KEY, btree (id)

francs= \dt+ test_ctime;

List of relations

Schema | Name | Type | Owner | Size | Description

--------+------------+-------+--------+--------+-------------

francs | test_ctime | table | francs | 536 kB |

(1 row)

备注:表创建好了,接下来演示如何定位表的物理文件。

--1.2 定位表所在的表空间

francs= select relname,relfilenode,reltablespace from pg_class where relname='test_ctime';

relname | relfilenode | reltablespace

------------+-------------+---------------

test_ctime | 24650 | 0

(1 row)

备注:在 PostgreSQL 的逻辑结构体系中,表位于数据库中,同时表位于表空间上,面表空间对应系统上一个

文件目录,每个表由一个或者多个文件组成; 根据上面的结果,表 test_ctime 的 reltablespace

值为 0,表示位于所属数据库的默认表空间,注意 relfilenode 值为 24650。

--1.3 查询数据库 francs 的默认表空间

francs= select oid,datname,dattablespace from pg_database where datname='francs';

oid | datname | dattablespace

-------+---------+---------------

16386 | francs | 16385

备注:上面查出数据库 francs 的默认表空间的 oid 为 16385。

--1.4 查找 oid 为 16385 的表空间

francs= select oid,* from pg_tablespace where oid=16385;

oid | spcname | spcowner | spcacl | spcoptions

-------+------------+----------+-----------------------------------------+------------

16385 | tbs_francs | 10 | {postgres=C/postgres,francs=C/postgres} |

(1 row)

备注:查了半天才查到表 test_ctime 的默认表空间为 tbs_francs,这里之所以饶这么大圈,是为

了展示 postgresql 中的一些逻辑结构关系,如果自己对环境比较熟悉,可以直接定位到

哪个表空间。

--1.5 查询表空间 tbs_francs 对应的物理目录

francs= \db

List of tablespaces

Name | Owner | Location

------------+----------+------------------------------------------

pg_default | postgres |

pg_global | postgres |

tbs_francs | postgres | /database/1922/pgdata1/pg_tbs/tbs_francs

(3 rows)

备注:表空间 tbs_francs 的数据目录为 /database/1922/pgdata1/pg_tbs/tbs_francs。

--1.6 进入数据目录

[postgres@redhat6 16386]$ cd /database/1922/pgdata1/pg_tbs/tbs_francs

[postgres@redhat6 tbs_francs]$ ll

total 4.0K

drwx------. 4 postgres postgres 4.0K May 22 10:35 PG_9.2_201204301

[postgres@redhat6 tbs_francs]$ cd PG_9.2_201204301/

[postgres@redhat6 PG_9.2_201204301]$ ll

total 16K

drwx------. 2 postgres postgres 12K Jun 26 19:03 16386

drwx------. 2 postgres postgres 4.0K May 22 10:37 pgsql_tmp

备注:根据前面的步骤 1.3 查询的信息知道 16386 为数据库 francs 的 oid。 再根据步骤 1.2 的信息知道

表 test_ctime 的 relfilenode 值为 24650

--1.7 查找表 test_ctime 的数据文件

[postgres@redhat6 16386]$ ll 24650

-rw-------. 1 postgres postgres 512K Jun 26 18:57 24650

备注:根据数据文件 24650 知道表的创建时间为 2012-06-26 18:57。但这种方法并不准确,因为

表上的操作可能导致表重新生成文件,接着演示。

--1.8 cluster 表

francs= cluster verbose test_ctime using test_ctime_pkey;

INFO: clustering "francs.test_ctime" using index scan on "test_ctime_pkey"

INFO: "test_ctime": found 0 removable, 10000 nonremovable row versions in 64 pages

DETAIL: 0 dead row versions cannot be removed yet.

CPU 0.00s/0.03u sec elapsed 0.08 sec.

CLUSTER

francs= select relname,relfilenode,reltablespace from pg_class where relname='test_ctime';

relname | relfilenode | reltablespace

------------+-------------+---------------

test_ctime | 24655 | 0

(1 row)

备注:表 test_ctime 经过 cluster 操作后,重新生成了数据文件,文件号由原来的 24650 变成了 24655

--1.9 系统上再次查询表数据文件

[postgres@redhat6 16386]$ ll 24650

-rw-------. 1 postgres postgres 0 Jun 26 19:19 24650

[postgres@redhat6 16386]$ ll 24655

-rw-------. 1 postgres postgres 512K Jun 26 19:19 24655

备注:显然新文件的时间 24655 并不是表 test_ctime 的初始创建时间。

--1.10 vacuum full 表

francs= vacuum full test_ctime;

VACUUM

francs= select relname,relfilenode,reltablespace from pg_class where relname='test_ctime';

relname | relfilenode | reltablespace

------------+-------------+---------------

test_ctime | 24659 | 0

(1 row)

备注: vacuum full 操作后,同样产生了新文件,新文件号为 24659

--1.11 系统上再次查询表数据文件

[postgres@redhat6 16386]$ ll 24659

-rw-------. 1 postgres postgres 512K Jun 26 19:22 24659

常用的数据库有哪几种?试着阐述每种数据库的特点和使用范围

关系数据库、非关系型数据库。

1、关系数据库

特点:数据集中控制;减少数据冗余等。

适用范围:对于结构化数据的处理更合适,如学生成绩、地址等,这样的数据一般情况下需要使用结构化的查询。

2、非关系数据库

特点:易扩展;大数据量,高性能;灵活的数据模型等。

使用范围:据模型比较简单;需要灵活性更强的IT系统;对数据库性能要求较高。

扩展资料:

非关系数据库的分类:

1、列存储数据库

这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra, HBase, Riak。

2、文档型数据库

文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB, MongoDb. 国内也有文档型数据库SequoiaDB,已经开源。

参考资料来源:百度百科-数据库

参考资料来源:百度百科-NoSQL


网站名称:postgresql体系的简单介绍
文章起源:http://cdiso.cn/article/dscjgjo.html

其他资讯