PostgreSQL的学习心得和知识总结(一)|简介和学习资源分享

回顾基础知识

一、什么是数据库?

数据库是由一组数据构成的有序的集合,这些数据被存放在结构化的数据表里面,表之间相互关联 反映客观事物间的本质联系。数据库系统提供数据安全控制和完整性控制。

对于数据库的概念,没有一个完全固定的定义,随着数据库历史的发展,定义的内容也有很大的差异,其中一种比较普遍的观点认为,数据库(DataBase,DB)是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。它是一个按数据结构来存储和管理数据的计算机软件系统。即数据库包含两层含义:保管数据的“仓库”以及数据管理的方法和技术。

数据库的特点如下:

  • 实现数据共享,减少数据冗余
  • 采用特定的数据类型
  • 具有较高的数据独立性
  • 具有统一的数据控制功能

二、什么是表?

在关系数据库中,数据库表是一系列二维数组的集合,用来存储数据和操作数据的逻辑结构。它由纵向的列和横向的行组成,行被称为记录,是组织数据的单位;列被称为字段,每一列表示记录的一个属性,都有相应的描述信息 ,如数据类型、数据宽度等。
在这里插入图片描述

三、什么是数据类型?

数据类型决定了数据在计算机中的存储格式,代表不同的信息类型。常用的数据类型有:整数数据类型,浮点数数据类型,精确小数类型,二进制数据类型,日期/时间数据类型,字符串数据类型。
表中得每一个字段就是某种指定数据类型,比如 “编号”字段为整数数据,“性别”字段为字符型数据。
在这里插入图片描述

四、什么是主键?

主键(PRIMARY KEY)又称主码,用于唯一地标识表中的每一条记录。可以定义表中的一列或多列为主键,主键列上没有两行相同的值,也不能为空值。假如,下表给每一个作者分配一个“编号”,该编号作为表数据表的主键,如果出现相同的值,将提示错误,系统不能确定查询的究竟是哪一条记录;如果把作者的“姓名”作为主键,则不能出现重复的名字,这与现实不相符合,因此“姓名”字段不适合做为主键。

五、什么是数据库系统?

数据库系统是由硬件部分和软件部分共同组成。

硬件 主要用于存储数据库中的数据:计算机、存储设备等
软件 DBMS、支持DBMS运行的OS、支持多种语言进行应用开发的访问技术

数据库系统有3个主要的组成部分

  1. 数据库:用于存储数据的地方。
  2. DBMS:用于管理数据库的软件。
  3. 数据库应用程序:为了提高数据库系统的处理能力所使用的管理数据库的软件补充。

DB 提供了一个存储空间用以存储各种数据,可以将DB视为一个存储数据的容器。一个数据库可能包含许多文件,一个 数据库系统(DBS)中通常包含许多数据库。
DBMS 是由用户创建、管理和维护数据库时所使用的软件,位于用户和OS之间,对数据库进行统一管理。它能定义数据存储结构,提供数据的操作机制,维护数据库的安全性、完整性和可靠性。
数据库应用程序(DB app) 虽然已经有了DBMS,但是在很多情况下 DBMS无法满足对数据管理的要求。DB app的使用可以满足对数据管理的更高要求,还可以使数据管理过程更加直观和友好。它负责与DBMS进行通信,访问和管理DBMS中存储的数据,允许用户插入、修改和删除DB中的数据。

他们的关系如下图所示:
在这里插入图片描述

六、什么是SQL?

对数据库进行查询和修改操作的语言叫做SQL。SQL的含义是结构化查询语言 (Structure Query Language)。SQL语言包含4个部分:

  • 数据定义语言(DDL):DROP、CREATE、ALTER等语句
  • 数据操作语言(DML):INSERT(插入)、UPDATE(修改)、DELETE(删除)语句
  • 数据查询语言(DQL):SELECT语句。
  • 数据控制语言(DCL):GRANT、REVOKE、COMMIT、ROLLBACK等语句。

七、数据库访问技术

不同的程序设计语言会有不同的数据库访问技术,程序语言通过这些技术,执行SQL语句,进行数据库管理,主要的数据库访问技术如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


什么是PostgreSQL

它是以UCB计算机系开发的 POSTGRES,现在已经更名为PostgreSQL,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。PostgreSQL是一个包含关系模型和支持SQL标准查询语言的DBMS(数据库管理系统) ,它支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQL 可以用许多方法扩展,比如, 通过增加新的数据类型、函数、操作符、聚集函数、索引。免费使用、修改、和分发 PostgreSQL,不管是私用、商用、还是学术研究使用。一言以蔽之:先进可靠、性能优良且开源免费。在这里插入图片描述

client/server 软件

C/S是一种网络架构,通常在该网络架构下软件分为client 和 server两部分:
服务器是整个应用系统资源的存储与管理中心,多个客户端则各自处理相应的功能,共同实现完整的应用。在客户/服务器结构中,客户端用户的请求被传送到数据库服务器,数据库服务器进行处理后,将结果返回给用户,从而减少了网络数据传输量。
用户使用应用程序时,首先启动客户端通过有关命令告知服务器进行连接以完成各种操作,而服务器则按照此请求提供相应的服务。每一个客户端软件的实例都可以向一个服务器或应用程序服务器发出请求。
C/S的特点指的是 client和server程序不在同一台计算机 上运行,这些client和server程序通常归属于不同的计算机。这种架构通过不同的途径可以用于很多不同类型的应用程序。

例如:网页,当用户在网站上买书时,电脑上的网络浏览器为一个client。同时,组成网站的电脑、数据库和app就被当做server。当用户的网页浏览器向网站请求搜索一个图书时,网站服务器从其数据库里面找到所有该类型的图书信息,组合成一个网页 送还给用户的浏览器。server端一般使用高性能的计算机,并配合使用不同类型的数据库(例:oracle或者postgresql等)。而client则需要安装专门的软件(例:浏览器)。

postgresql的优势

1. 价格:对多数个人是免费的
2. 速度:运行速度快。比MySQL 它在复杂数据查询方面的速度是相当快的(它是多进程的),在并发量高时 其总体处理速度比普通的DBMS要快的多
3. 容易使用:复杂程度低,简单易学(本人不敢苟同啊!!!)
4. 可移植性:可以在众多不同的OS平台上工作
5. 丰富的接口:提供了用于C、C++、Java、PHP、Python、TCL和Ruby、perl的API
6. 支持查询语言:它可以利用标准的SQL语法编写支持ODBC(开放式数据库连接)的应用程序
7. 相互配合的开源软件较多:有很多分布式集群软件(例:pgpool、pgcluster、slony和plploxy等),很容易做读写分离、负载均衡和数据水平拆分等
8. 安全性和连接性:十分安全、灵活的权限和密码系统,允许基于主机的验证。连接到server时,所有的密码传输都采用加密形式,从而保证密码安全。并且由于pg是网络化的,因此可以在任何地方访问Internet,提高数据共享的效率。

2019年11月16日22:50:56

学习资料大全 分享

下面看一下有关的postgresql的链接:
2019年12月7日12:00:28
最新版本文档说明:

  1. https://www.postgresql.org/docs/12/index.html
    这是最重要的阅读资料和文档说明,注:英文说明
  2. 官方ABOUT:https://www.postgresql.org/about/
  3. ReleaseNotes:https://www.postgresql.org/docs/9.6/static/release.html
  4. 数据库排行:http://db-engines.com/en/ranking
  5. PostgreSQL 10.1 手册 这个是国内相关人员的翻译版本(中文手册),大家可以直接参见这个就可以,但是建议:大家还是要好好学习英语,毕竟内核是人家开发的,我们为了国产数据库的研发 就必须要克服这个困难!!!
  6. http://www.postgres.cn/v2/about 这个国内社区,需要大家注册一下(2019年12月7日12:06:32截止此时,这个数目也不是很大 慢慢来吧)
  7. https://github.com/digoal/blog/blob/master/README.md 这是德哥的博客和资料的分享,初学者可以先看看上面的资料等
  8. 小宇带你学内核分析,我初学postgresql的学习视频 唯一不足的地方就是:不全 但是我还是希望大家要学习里面的方法。链接:https://v.youku.com/v_show/id_XMTg1NzAxNjM4NA==.html
  9. 官网: PostgreSQL
  10. git仓库:git 仓库
  11. 代码文档:PostgreSQL Source Code
  12. 官方wiki:PostgreSQL Wiki

下面分享一下一些学习的书籍:(还是那句老话 书不在多,而在于一本好书 精读

  • PostgreSQL数据库内核分析 这是我今年大学毕业进入公司的第一本教材,非常不太适合初学者 但是确实十分的经典!!!注:此书的对应版本太老,学习的时候要及时关注于一些新的变化。
  • PostgreSQL修炼之道:从小工到专家 这本书非常适合上手
  • PostgreSQL技术内幕:查询优化深度探索 这本书需要大家到时候配合着内核分析一起研读
  • PostgreSQL实战 这本书也可以单独开上一个线程并发研读
  • Postgresql11 从入门到精通 非常适合小白,先补一补基础的知识(配合着上面我说的中文手册 效果更佳)
  • 数据查询优化器的艺术 详细讲解查询优化方面的理论

最后看一下我们PostgreSQL与MySQL的一些异同:
PostgreSQL 与 MySQL 相比,优势何在?

猜你喜欢

转载自blog.csdn.net/weixin_43949535/article/details/103089939