Do que vamos falar .. O Modelo Relacional . .. ... . Administrativia Modelagem e Administração de Dados em PostgreSQL Fundamentos e práticas em bases de dados livres Leandro Guimarães Faria Corcete DUTRA 1 Comunidade Brasileira de PostgreSQL 2 ArsData 3 Atech Fundação Aplicação de Tecnologias Críticas . . . . . . Conferência PostgreSQL Brasil 2007PostgreSQL BR, ArsData & Atech Leandro Guimarães Faria Corcete DUTRA Modelagem e Administração de Dados em PostgreSQL Do que vamos falar .. O Modelo Relacional . .. ... . Administrativia Modelagem e administração, não diagramação e mapeamento Modelagem é muito mais que diagramação. Mapeamento torna a administração impossível. SQL não é relacional e contém muitos limites arbitrários. . Leandro Guimarães Faria Corcete DUTRA Modelagem e Administração de Dados em PostgreSQL . . . . . PostgreSQL BR, ArsData & Atech Do que vamos falar .. O Modelo Relacional . .. ... . Administrativia Escolhendo ferramentas Diagramadores têm de suportar dicionários de dados. Mapeadores têm de passar do modelo de dados para o de classes. . Leandro Guimarães Faria Corcete DUTRA Modelagem e Administração de Dados em PostgreSQL . . . . . PostgreSQL BR, ArsData & Atech Do que vamos falar .. O Modelo Relacional . .. ... . Administrativia O problema da gestão de dados Linus e os dados …o git é um projeto simples, com estruturas de dados estáveis e razoavelmente bem documentadas. …sou grande proponente de projetar o código em torno dos dados, em vez do contrário, e creio que é uma das razões para o git ter tido bastante sucesso. …a diferença entre um mau e um bom programador é se considera o código ou as estruturas de dados mais importantes. Maus programadores preocupam-se com código. Bons programadores preocupam-se com estruturas de dados e seus relacionamentos. — Torvalds, Linux. . Leandro Guimarães Faria Corcete DUTRA Modelagem e Administração de Dados em PostgreSQL . . . . . PostgreSQL BR, ArsData & Atech Do que vamos falar .. O Modelo Relacional . .. ... . Administrativia O problema da gestão de dados Um clássico Mostra-me teus fluxogramas e esconda-me tuas tabelas, e continuarei no escuro. Mostra-me tuas tabelas, e… não precisarei de teus fluxogramas: serão óbvios. — Brooks, Frederick Phillips, Jr.: The Mythical Man-Month. . Leandro Guimarães Faria Corcete DUTRA Modelagem e Administração de Dados em PostgreSQL . . . . . PostgreSQL BR, ArsData & Atech Do que vamos falar .. O Modelo Relacional . .. ... . Administrativia O Modelo Relacional Abstrato Independência de dados Sem limites arbitrários . Leandro Guimarães Faria Corcete DUTRA Modelagem e Administração de Dados em PostgreSQL . . . . . PostgreSQL BR, ArsData & Atech Do que vamos falar .. O Modelo Relacional . .. ... . Administrativia Componentes Componentes do modelo relacional Bases de dados ou conjuntos organizados de dados. Esquemas ou espaços de nomes para os objetos de dados. Domínios ou listas de valores aceitáveis numa determinada variável. Operadores ou operações possíveis sobre determinado domínio. Tipos de dados ou domínio mais os operadores correspondentes. Relvars ou variáveis de relação, ou estruturas de tabelas. Relações ou tabelas, com n atributos. Restrições de integridade de dados ou regras de negócio. . Leandro Guimarães Faria Corcete DUTRA Modelagem e Administração de Dados em PostgreSQL . . . . . PostgreSQL BR, ArsData & Atech Do que vamos falar .. O Modelo Relacional . .. ... . Administrativia Restrições de integridade Declaração de regras como restrições Restrições são declarativas mas aplicação é procedural. Centralização das regras no servidor de dados. Formalização das regras na análise. Dizer o quê em vez de como facilita a otimização. . Leandro Guimarães Faria Corcete DUTRA Modelagem e Administração de Dados em PostgreSQL . . . . . PostgreSQL BR, ArsData & Atech Do que vamos falar .. O Modelo Relacional . .. ... . Administrativia Restrições de integridade Tipos de restrições de integridade de tipo é a definição do próprio tipo. de atributo é a definição do tipo dum atributo. de relvar é uma restrição sobre uma relação. de base de dados é uma restrição sobre várias relações. . Leandro Guimarães Faria Corcete DUTRA Modelagem e Administração de Dados em PostgreSQL . . . . . PostgreSQL BR, ArsData & Atech Do que vamos falar .. O Modelo Relacional . .. ... . Administrativia Domínios, operadores e tipos de dados Tipos de dados em SQL Tipos de dados simples são muito poucos mesmo para começar uma aplicação muito simples. Falta de extensibilidade significa que muitas vezes não se conseguem criar tipos específicos para a aplicação. Extensibilidade de baixo nível exige programação em linguagens de sistema (C, D &c) — o ISO SQL não tem a capacidade de gerar seus próprios tipos! DOMAINS e TYPES SQL são apenas gambiarra que precisam ser combinadas para serem úteis. . Leandro Guimarães Faria Corcete DUTRA Modelagem e Administração de Dados em PostgreSQL . . . . . PostgreSQL BR, ArsData & Atech Do que vamos falar .. O Modelo Relacional . .. ... . Administrativia Domínios, operadores e tipos de dados Problemas da extensibilidade de tipos Violar o padrão SQL com linguagens proprietárias de extensão (C#, PL/SQL). Violar o padrão com definições diferentes de tipos (objetos &c). Exigir linguagens de baixo nível como C ou D em vez do próprio SQL/PSM. . Leandro Guimarães Faria Corcete DUTRA Modelagem e Administração de Dados em PostgreSQL . . . . . PostgreSQL BR, ArsData & Atech Do que vamos falar .. O Modelo Relacional . .. ... . Administrativia Domínios, operadores e tipos de dados Problemas da implementação Cobre poucos valores através de ENUM. TYPE não usa CONSTRAINTs. DOMAIN não implementa operadores. Combinando primeiro TYPE, depois DOMAIN. . Leandro Guimarães Faria Corcete DUTRA Modelagem e Administração de Dados em PostgreSQL . . . . . PostgreSQL BR, ArsData & Atech Do que vamos falar .. O Modelo Relacional . .. ... . Administrativia Outras restrições Outras restrições de integridade NOT NULL ajuda a normalização e evita surpresas. Chaves primárias transformam simples tabelas em relvars. Chaves estrangeiras ou integridade referencial. CHECK pode ser usado para implementar outras restrições, com limites. Gatilhos embora procedurais tapam alguns buracos. Algumas restrições ficam de fora. . Leandro Guimarães Faria Corcete DUTRA Modelagem e Administração de Dados em PostgreSQL . . . . . PostgreSQL BR, ArsData & Atech Do que vamos falar .. O Modelo Relacional . .. ... . Administrativia Administrativia Dicionários de dados são essenciais. Diagramas podem, e devem, ser gerados automaticamente. Ferramentas de modelagem podem unificar modelos de diversas bases. . Leandro Guimarães Faria Corcete DUTRA Modelagem e Administração de Dados em PostgreSQL . . . . . PostgreSQL BR, ArsData & Atech Do que vamos falar .. O Modelo Relacional . .. ... . Administrativia Administrativia Glossários são úteis. Dicionários de tipos de dados são essenciais. Dicionário geral de dados dão mais trabalho. Diagramas te promovem: AutoDoc! . Leandro Guimarães Faria Corcete DUTRA Modelagem e Administração de Dados em PostgreSQL . . . . . PostgreSQL BR, ArsData & Atech