Table Of ContentModelagem
de Banco
de Dados
Paulo Henrique Cayres
A RNP – Rede Nacional de Ensino
e Pesquisa – é qualificada como
uma Organização Social (OS),
sendo ligada ao Ministério da
Ciência, Tecnologia e Inovação
(MCTI) e responsável pelo
Programa Interministerial RNP,
que conta com a participação dos
ministérios da Educação (MEC), da
Saúde (MS) e da Cultura (MinC).
Pioneira no acesso à Internet no
Brasil, a RNP planeja e mantém a
rede Ipê, a rede óptica nacional
acadêmica de alto desempenho.
Com Pontos de Presença nas
27 unidades da federação, a rede
tem mais de 800 instituições
conectadas. São aproximadamente
3,5 milhões de usuários usufruindo
de uma infraestrutura de redes
avançadas para comunicação,
computação e experimentação,
que contribui para a integração
entre o sistema de Ciência e
Tecnologia, Educação Superior,
Saúde e Cultura.
Ministério da
Cultura
Ministério da
Saúde
Ministério da
Educação
Ministério da
Ciência, Tecnologia
e Inovação
Modelagem
de Banco
de Dados
Paulo Henrique Cayres
Modelagem
de Banco
de Dados
Paulo Henrique Cayres
Rio de Janeiro
Escola Superior de Redes
2015
Copyright © 2015 – Rede Nacional de Ensino e Pesquisa – RNP
Rua Lauro Müller, 116 sala 1103
22290-906 Rio de Janeiro, RJ
Diretor Geral
Nelson Simões
Diretor de Serviços e Soluções
José Luiz Ribeiro Filho
Escola Superior de Redes
Coordenação
Luiz Coelho
Edição
Lincoln da Mata
Coordenador Acadêmico da Área de Desenvolvimento de Sistemas
John Lemos Forman
Equipe ESR (em ordem alfabética)
Adriana Pierro, Celia Maciel, Cristiane Oliveira, Derlinéa Miranda, Edson Kowask,
Elimária Barbosa, Evellyn Feitosa, Felipe Nascimento, Lourdes Soncin, Luciana Batista,
Luiz Carlos Lobato, Renato Duarte e Yve Abel Marcial.
Capa, projeto visual e diagramação
Tecnodesign
Versão
1.0.0
Este material didático foi elaborado com fins educacionais. Solicitamos que qualquer erro encon-
trado ou dúvida com relação ao material ou seu uso seja enviado para a equipe de elaboração de
conteúdo da Escola Superior de Redes, no e-mail [email protected]. A Rede Nacional de Ensino e
Pesquisa e os autores não assumem qualquer responsabilidade por eventuais danos ou perdas, a
pessoas ou bens, originados do uso deste material.
As marcas registradas mencionadas neste material pertencem aos respectivos titulares.
Distribuição
Escola Superior de Redes
Rua Lauro Müller, 116 – sala 1103
22290-906 Rio de Janeiro, RJ
http://esr.rnp.br
[email protected]
Dados Internacionais de Catalogação na Publicação (CIP)
C385m Cayres, Paulo Henrique
Modelagem de banco de dados / Paulo Henrique Cayres. – Rio de Janeiro: RNP/ESR, 2015.
182 p. : il. ; 28 cm.
ISBN 978-85-63630-50-6
1. Modelagem de dados. 2. Banco de dados. 3. Sistema de gerenciamento de banco de
dados (SGBD). 4. PostgreSQL. I. Titulo.
CDD 005.743
Sumário
Escola Superior de Redes
A metodologia da ESR ix
Sobre o curso x
A quem se destina x
Convenções utilizadas neste livro xi
Permissões de uso xi
Sobre o autor xii
1. Modelagem e uso de Bancos de Dados – Visão geral
Exercício de nivelamento – Modelagem de dados 1
Introdução a Banco de Dados 1
Sistema Gerenciador de banco de dados 3
Arquitetura de um SGBD 3
Organização de SGBDs 4
Modelo hierárquico 4
Modelo em rede 5
Modelo relacional 5
Modelo Orientado a Objetos 6
Modelo Objeto-Relacional 6
Modelo NoSQL 6
Sistema de Informação 7
Desenvolvimento de SI 8
Desenvolvimento de software x SGBD 8
iii
Modelos de Sistema 9
Funcional 9
De dados 10
Comportamental 10
Projeto de banco de dados 10
Etapas da modelagem do banco de dados 11
Primeira Etapa – Análise de Requisitos 12
Exemplo de Minimundo: EMPRESA 13
Segunda Etapa – Análise e projeto 13
Atividade de Fixação 13
2. Modelo conceitual: DER
Diagrama Entidade Relacionamento: DER 15
Componentes do DER 16
Relacionamentos 19
Ferramentas CASE 24
Notações 25
A ferramenta brModelo 26
Refinamento do modelo conceitual 27
Generalização/especialização 27
Tipos de generalização/especialização 29
Entidade associativa 31
Dados Temporais 32
Normalização 33
Exercícios de Fixação – Refinamento do Modelo Conceitual - DER 40
3. O Modelo Lógico
Decisões sobre o modelo 41
Somente entidade tem atributos? 41
Atributo multivalorado? 42
Quando transformar um atributo em entidade? 42
Relacionamentos 43
Coleção de Relações 44
Restrições de Integridade 45
Modelo Conceitual (DER) x Modelo Lógico 46
Entidades e atributos 47
iv
Relacionamentos binários 47
Relacionamento n-ário, onde n > 2 49
Relacionamento unário (ou recursivo) 49
Generalização ou especialização 50
Atributo multivalorado 51
Quadro resumo 51
Exercícios de Fixação – Comandos DDL para criação do Banco de Dados 53
4. Modelo Físico
O modelo físico 55
Structured Query Language (SQL) 57
PostgreSQL 58
Características do PostgreSQL 59
Criação do banco de dados 59
Alteração do banco de dados 64
Exclusão do banco de dados 65
Esquema de banco de dados 65
Criando tabelas no banco de dados 67
Alteração de tabelas no banco de dados 72
Exclusão de tabelas no banco de dados 73
Domínios 74
Sequência 74
Script SQL/DDL do banco de dados 77
Exercícios de Fixação – Comandos DDL para criação do banco de dados 78
5. Comandos DML – CRUD
e operações sobre conjuntos
Operações CRUD 79
INSERT 80
Uso do campo serial 81
Validação de chave primária 81
Validação da chave estrangeira 82
Validação da restrição NOT NULL 82
Validação da restrição de domínio (tipo de dado) 83
UPDATE 84
v
DELETE 84
TRUNCATE 85
SELECT 85
Operadores 86
Operadores negativos 87
Comandos especiais 87
ORDER BY 88
LIMIT 89
Junção de tabelas 89
Junção Interna 90
Junção Cruzada 91
Junção natural 92
Autojunções 92
Junções equivalentes x não equivalentes 93
Junção externa 95
Operações sobre conjuntos 95
6. Funções agregadas e nativas
Exercício de nivelamento 99
Funções agregadas 99
Agrupamento 101
Funções Nativas 104
Informações do sistema e de sessão 104
Manipulação de data/hora 104
Manipulação de String 107
Manipulação de números 108
Outras funções 110
Atividade de Fixação 111
7. Subconsultas, índices e visões
Exercício de nivelamento 113
Subconsultas 113
Subconsulta Escalar 114
Subconsulta ÚNICA LINHA 116
Cláusulas IN 116
Cláusulas NOT IN 116
vi