Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Postgres e a história dos bancos de dados relacionais

Postgres e a história dos bancos de dados relacionais

Sobre a história do surgimento dos bancos de dados, a teoria relacional e o surgimento do PostgreSQL.

Palestra realizada no PGConf.Brasil 2019: https://pgconf.com.br/2019/

Fábio Telles Rodriguez

August 03, 2019
Tweet

More Decks by Fábio Telles Rodriguez

Other Decks in Programming

Transcript

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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)
  6. 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
  7. 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)
  8. 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
  9. 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=
  10. 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
  11. 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
  12. 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
  13. 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
  14. INGRES Os herdeiros do INGRES: • Informix • Sybase •

    SQL Server • NonStop SQL • Postgres
  15. 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)
  16. 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+
  17. 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
  18. 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
  19. 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
  20. Postgres Global Development Team (1997) Thomas Lockhart Jolly Chen Vadim

    Mikheev Andrew Yu Tom Lane Bruce Momjian Marc Fournier
  21. 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
  22. 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!
  23. 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)
  24. 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
  25. 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)
  26. 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)
  27. 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