Slide 1

Slide 1 text

Postgres e a história dos bancos de dados relacionais Por Fábio Telles Rodriguez

Slide 2

Slide 2 text

Fábio Telles Rodriguez • Consultor pela Timbira • DBA Oracle e PostgreSQL + 15 anos • Colaborador da Comunidade Brasileira de PostgreSQL • Blog: savepoint.blog.br • email: [email protected] • Twitter: @telles • Telegram: @fabio_telles

Slide 3

Slide 3 text

Agenda 60’s - Os primeiros bancos de dados 70’s - A Teoria Relacional 80’s - O surgimento do Postgres 90’s - De Berkeley para o mundo 00’s - O fortalecimento da comunidade 10’s - Brigando com gigantes

Slide 4

Slide 4 text

Há muito tempo… surge a IBM

Slide 5

Slide 5 text

Surge a IBM • 1884 - Herman Hollerith cria a “Tabulating Machine Company”, com uma máquina de tabular dados para o censo demográfico de 1890 nos EUA usando cartões perfurados • 1911 - É criada a Computing-Tabulating-Recording Company (CTR) • 1924 - A CTR muda o nome para International Business Machine

Slide 6

Slide 6 text

Os anos 60 • A era dos mainframes e supercomputadores • Computadores passar a ter uso civil além de militar • Surgimento dos primeiros HD’s na IBM • Surgimento dos primeiros SGDBs • Surgimento da cultura Hacker, particularmente no MIT

Slide 7

Slide 7 text

Onde guardar os dados Antes dos anos 60 • Cartões perfurados • Tambor magnético • Fitas magnéticas (acesso sequencial) A partir dos anos 60 • Discos magnéticos (acesso aleatório)

Slide 8

Slide 8 text

IBM 350 ● Lançado em 1956 ● 4,4MB ● 50 discos de 61cm ● 2 cabeças de leitura ● 1200rpm ● 8,8KB/s ● seek time 600ms ● 971Kg ● 5KVA ● 150cm X 170cm X 70cm ● USD 9.200 em 1956 ou USD 88.000 em 2019

Slide 9

Slide 9 text

Como guardar os dados Antes do anos 60 • Arquivos texto com campos de tamanho fixo • Acesso a dados feitos 100% via código na aplicação A partir dos anos 60 • Modelo em rede ou navegacional • Modelo hierárquico • (COBOL -> CODASYL) • Primeiros SGDBs (Sistemas Gerenciadores de Bancos de Dados)

Slide 10

Slide 10 text

IBM Information Management System • Criado pela IBM para o projeto Apolo da NASA em 1966 • Seu maior legado foi ter atrasado os planos da IBM em adotar o modelo relacional

Slide 11

Slide 11 text

Edgar Frank “Ted” Codd

Slide 12

Slide 12 text

Edgar Frank “Ted” Codd Algumas publicações na IBM: • 1969 - Derivability, Redundancy and Consistency of Relations Stored in Large Data Banks. (publicação interna na IBM) • 1970 - A Relational Model of Data for Large Shared Data Banks • 1971 - A Data Base Sublanguage Founded on the Relational Calculus • 1972 - Relational Completeness of Data Base Sublanguages • 1974 - Interactive Support for Non-Programmers: The Relational and Network Approaches (c/ C. J. Date) • 1981 - The Capabilities of Relational Database Management Systems https://dblp.org/pers/hd/c/Codd:E=_F=

Slide 13

Slide 13 text

Michael Ralph Stonebraker

Slide 14

Slide 14 text

MIchael Ralph Stonebraker • 1971 - Professor na Universidade de Berkeley • 1973 - Interactive Graphics and Retrieval System ou INGRES • 1980 - Relational Technology Incorporated ⇒ Ingres ⇒ ASK Computer Systems ⇒ Computer Associates ⇒ Ingres Corporation ⇒ Actian ⇒ ParAccel ⇒ Actian X • 1986 - POST inGRES • 1992 - Illustra Information Technologies ⇒ Informix ⇒ IBM • 1996 - Cohera (Mariposa) ⇒ PeopleSoft ⇒ Oracle

Slide 15

Slide 15 text

MIchael Ralph Stonebraker • 2001 - Professor no MIT • 2003 - StreamBase Systems ⇒ TIBCO Software • 2005 - Vertica (C-Store) ⇒ HP • 2006 - Morpheus • 2008 - Paradigm4 (SciDB) • 2009 - VoltDB (H-Store) • 2013 - Tamr

Slide 16

Slide 16 text

Os anos 70 Projeto Ingres System-R (DB2) Oracle Mantenedor Berkeley University IBM Software Development Laboratories (SDL) Início 1973 1981 1977 Primeira versão 1974 1981 1979 Linguagem QUEL SEQUEL (SQL) SEQUEL (SQL) Plataforma Mini Mainframe Mini

Slide 17

Slide 17 text

SQL x QUEL "Along those lines, there was this whole other development, which was the INGRES project at U.C. Berkeley. The INGRES project had a language called QUEL. They started a company that implemented QUEL. QUEL fought SQL tooth-and-nail, and explained how QUEL was better than SQL in many different ways, and in fact it is better at doing aggregates. There are lots of areas where QUEL is better. Some people at Ingres now feel that the reason that they were less than successful is because they fought SQL rather than embraced it, so this gave Oracle a chance to differentiate themselves. " Jim Gray, em “The 1995 SQL Reunion: People, Projects, and Politics” https://www.mcjones.org/System_R/SQL_Reunion_95/SRC-1997-018.pdf

Slide 18

Slide 18 text

INGRES Os herdeiros do INGRES: ● Informix ● Sybase ● SQL Server ● NonStop SQL ● Postgres

Slide 19

Slide 19 text

Fases do PostgreSQL 1973 a 1985: Ingres (Berkeley) 1986 a 1994: Postgres (Berkeley) 1994 a 1995: Postgres95 (Jolly Chen e Andrew Yu) 1996 em diante: PostgreSQL (PGDG)

Slide 20

Slide 20 text

POSTGRES

Slide 21

Slide 21 text

POSTGRES Um projeto ambicioso: ● Supporting ADTs in a Database System ○ Complex Objects (i.e., nested or non-first-normal form data)* ○ User-Defined Abstract Data Types and Functions* ○ Extensible Access Methods for New Data Types* ○ Optimizer Handling of Queries with Expensive User-Defined Functions ● Active Databases and Rules Systems (Triggers, Alerts)* ○ Rules implemented as query rewrites+ ○ Rules implemented as record-level triggers+ ● Log-centric Storage and Recovery ○ Reduced-complexity recovery code by treating the log as data,* using non-volatile memory for commit status+ ○ No-overwrite storage and time travel queries+

Slide 22

Slide 22 text

POSTGRES ● Support for querying data on new deep storage technologies, notably optical disks* ● Support for multiprocessors or custom processors* ● Support for a variety of language models ○ Minimal changes to the relational model and support for declarative queries* ○ Exposure of “fast path” access to internal APIs, bypassing the query language+ ○ Multi-lingual support+ * 1986 - The design of Postgres, M. Stonebraker and L. A. Rowe + 1991 - The Postgres next generation database management system, M. Stonebraker and G. Kemnitz

Slide 23

Slide 23 text

Postgres + SQL SQL se torna um padrão ANSI e ISO DB2, Oracle e outros bancos de dados adotam o SQL Em 1994, o projeto Postgres se encerra em Berkeley 2 alunos recém formados decidem implementar a linguagem SQL no Postgres

Slide 24

Slide 24 text

Postgres95 Sem constraints (FKs, PKs, CHECKs) Sem INNER JOINs Sem NULL Sem MVCC Sem Window Functions

Slide 25

Slide 25 text

A escolha do novo nome...

Slide 26

Slide 26 text

A escolha do novo nome... From: Tom Lane Subject: The name of the game Date: 2006-07-13 03:42:54 It might help to explain that the pronunciation is "post-gres" or "post-gres-cue-ell", not "post-gray-something". I heard people making this same mistake in presentations at this past weekend's Postgres Anniversary Conference :-( Arguably, the 1996 decision to call it PostgreSQL instead of reverting to plain Postgres was the single worst mistake this project ever made. It seems far too late to change now, though. regards, tom lane

Slide 27

Slide 27 text

Postgres Global Development Team (1997) Thomas Lockhart Jolly Chen Vadim Mikheev Andrew Yu Tom Lane Bruce Momjian Marc Fournier

Slide 28

Slide 28 text

Postgres Global Development Team (2006)

Slide 29

Slide 29 text

Versões do PostgreSQL 6.0 (1.09) em 1996 6.1 e 6.2 em 1997 6.3 e 6.4 em 1998 6.5 em 1999 7.0 em 2000 7.1 em 2001 7.2 e 7.3 em 2002 7.4 em 2003 8.0 em 2005 Crash Aderência ao padrão SQL Melhoria na performance, administração e manutenção Versão nativa para Windows

Slide 30

Slide 30 text

Versões do PostgreSQL

Slide 31

Slide 31 text

No Brasil (PGCon.Brasil 2007)

Slide 32

Slide 32 text

No Brasil (PGConf.Brasil 2018)

Slide 33

Slide 33 text

No Brasil ★ Listas por email a partir de 1999 ○ pgsql-pt-geral em https://www.postgresql.org/list/ ★ Grupo no telegram c/ 1817 inscritos ○ https://t.me/postgresqlbr ★ PGCon Brasil 2007 - São Paulo / SP ★ PGCon Brasil 2008 e 2009 - Campinas / SP ★ PGBR Brasil 2011 - São Paulo / SP ★ PGBR Brasil 2013 - Porto Velho / RO ★ PGBR Brasil 2015 e 2017 - Porto Alegre / RS ★ PGConf BRasil 2018 - São Paulo / SP ★ PGDays em todo país!

Slide 34

Slide 34 text

Why Postgres is so cool? Comunidade Liberdade Qualidade Bacon

Slide 35

Slide 35 text

Comunidade 1996-04-23 Jolly Chen wrote: I’ve posted a TODO list on the postgres95 web site (http://s2k-ftp.CS.Berkeley.EDU:8000/postgres95/www/todo.html) I’ve casually sorted the list by priority and I have some editorial comments on some of them. If all the items on the TODO list were completed, postgres95 would be much improved, and would really be a viable replacement for commercial RDBMSs in some settings. Some of the items require quite a bit of work and deep knowledge of postgres95 internals, though. We would need a few contributors with quite a lot of volunteer hours to make this happen anytime soon. (A large number of contributors each with only a little bit of time to contribute would not be equivalent)

Slide 36

Slide 36 text

Cultura e a ética Hacker ● Acesso a tecnologia deve ser ilimitado ● O conhecimento deve ser livre ● Promover a descentralização ● Meritocracia (julgamento independente de cor, credo, raça, sexo, etc) ● Você deve criar arte e beleza ao resolver problemas técnicos ● A tecnologia deve promover a liberdade e o bem estar das pessoas

Slide 37

Slide 37 text

Liberdade ● Código aberto com licença aberta e permissiva (BSD Like) ● Não existe um “dono” ● Comunicação aberta ● Ferramentas abertas ● Aberto para novos desenvolvedores ● Regras claras e objetivas para todos (commitfest)

Slide 38

Slide 38 text

Postgres middle circle (how)

Slide 39

Slide 39 text

Forks https://wiki.postgresql.org/wiki/PostgreSQL_derived_databases • AgensGraph (orientado a grafos) • Aurora (AWS) • BDR (replicação multimaster) • CitusDB (BI) • EnterpriseDB (compatibilidade com Oracle) • HadoopDB (cluster shared nothing) • PipelineDB (streaming) • PostgresX2 (cluster) • Pivotal (BI) • Redshift (BI) • ToroDB (document model)

Slide 40

Slide 40 text

Desenvolvimento aberto Empresas que patrocinam o PostgreSQL:

Slide 41

Slide 41 text

Qualidade ● Projeto visionário ● Fazer a coisa certa ● Código limpo e bem escrito ● Foco na confiabilidade e capacidade de manutenção ● Rock Solid Database

Slide 42

Slide 42 text

Bacon

Slide 43

Slide 43 text

Cenário atual

Slide 44

Slide 44 text

O futuro é livre!

Slide 45

Slide 45 text

Perguntas

Slide 46

Slide 46 text