Buscar

Projeto de Banco de Dados

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Désiré NGuessan
1
Projeto de Banco de Dados
– Etapa 1 – 
Modelagem Conceitual
NGUESSAN.DESIRE@POLI.USP.BR
1
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
2
Modelagem Conceitual
D O objetivo NÃO É:
Descrever a estrutura do 
armazenamento do banco
de dados.
I Requisitos de um modelo conceitual:
 - clareza (facilidade de compreensão)
 - exatidão (formal)
C O objetivo É:
Representar a semântica da
informação, independente de
considerações de eficiência.
2
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
3
Análise de Requisitos
O Projeto Conceitual inicia a partir da especificação dos requisitos e resulta em uma descrição em alto nível da estrutura do banco de dados, independente do Sistema de Gerenciamento de Banco de Dados (SGBD) adotado para implementá-lo. 
O propósito do projeto conceitual é descrever o conteúdo de informação do banco de dados ao invés das estruturas de armazenamento que serão necessárias para gerenciar essa informação
3
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
4
Análise de Requisitos
Um esquema conceitual é uma descrição em alto nível da estrutura do banco de dados
Um modelo conceitual é usado para descrever os esquemas conceituais. Como modelos conceituais temos por ex. Modelo Entidade-Relacionamento, Modelo Orientado a Objeto e suas derivações como OMT-G e o modelo OMT
4
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
5
Análise de Requisitos
Requisitos dos Dados
Entrada: Universo de Discurso (UdD)
“realidade”da organização
Informaçao a ser tratada com todas suas propriedades, restrições
Processo
Coleta e análise
Entrevistas, documentos, formulários
Resultado
Descrição “aproximativa”, ling. natural
5
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
6
Modelagem Conceitual
Abordagem: E-R
Introduzido por Peter Chen no artigo:
The Entity-Relationship Model - Toward a Unified View of Data, Transactions on Database Systems, 1(1), March 1976.
O modelo ER é uma técnica de modelagem conceitual com representação gráfica utilizada durante a fase de projeto conceitual para entendimento do mundo real.
6
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
7
 Modelagem Conceitual
Abordagem: E-R
Padrão para a modelagem conceitual de Sistema de Banco de Dados 
Principais Características:
Utilização de poucos conceitos
Excelente representação gráfica 
Facilidade de compreensão
Elementos Básicos
Entidade
Atributo
 Relacionamento
Cardinalidade
7
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
8
 Modelagem Conceitual
Abordagem: E-R
Descrição conceitual do BD de forma independente de implementação de um SGBD
Registra que dados podem aparecer no BD
não registra como os mesmos estarão armazenados no SGBD
8
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
9
 Modelagem Conceitual
Abordagem: E-R
Técnica mais conhecida: Abordagem Entidade-Relacionamento (ER)
 Uso do DER (Diagrama ER)
Modelo Conceitual = modelo de dados abstrato
9
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
10
Abordagem: E-R
Elementos Básicos:
 Entidade
Conjunto de objetos (concreto ou abstrato) do mundo real que possuem características comuns.
		
10
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
11
Abordagem: E-R
Elementos Básicos:
 Entidade
Notação:		
PESSOA
CIDADE
Entidades
PESSOA
DEPARTAMENTO
11
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
12
Abordagem: E-R
Elementos Básicos:
 Entidade
Notação de ocorrência:		
Tarso
 Alberto
 Ana
Pessoa
Porto Alegre
 São Paulo
Belo Horizonte
Cidade
Ocorrências 
da entidade
12
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
13
Abordagem: E-R
Elementos Básicos:
 Relacionamento
É a representação de uma associação entre duas ou mais entidades
		
13
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
14
Abordagem: E-R
Elementos Básicos:
 Relacionamento - Notação:
PESSOA
CIDADE
Residência
Tarso
Alberto
Ana
Porto Alegre
 São Paulo
Belo Horizonte
14
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
15
Abordagem: E-R
Elementos Básicos:
Diagrama de Ocorrências de entidades e relacionamentos são representados:
Ocorrências de entidades (círculo vazado)
Ocorrência de relacionamento (círculo preto)
15
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
16
Abordagem: E-R
Elementos Básicos:
Diagrama de Ocorrências de entidades e relacionamentos são representados:
entidade
FUNCIONÁRIO
relacionamento
LOTAÇÃO
entidade
DEPARTAMENTO
f1
f2
f3
f4
f5
d1
d2
d3
f1,d1
f3,d1
f4,d2
f5,d3
16
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
17
Abordagem: E-R
Elementos Básicos:
 Relacionamento
Auto-Relacionamento 
Relacionamento entre ocorrências de uma mesma entidade
Cada entidade tem um papel 
função que uma instância da entidade cumpre dentro de uma instância do relacionamento
		
17
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
18
Abordagem: E-R
Elementos Básicos:
 Relacionamento
		
PESSOA
CASAMENTO
marido
esposa
18
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
19
Abordagem: E-R
Elementos Básicos:
 Diagrama de Ocorrência
		
p1
p2
p3
p4
p5
p1,p2
p4,p5
marido
esposa
esposa
marido
19
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
20
Abordagem: E-R
Elementos Básicos:
Cardinalidade
Cardinalidade (mínima, máxima) de entidade em relacionamento:
número (mínimo, máximo) de ocorrências de entidade associadas a uma ocorrência da entidade em questão através do relacionamento
Cardinalidade (multiplicidade) de mapeamento
20
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
21
Abordagem: E-R
Elementos Básicos:
Cardinalidade
Funcionário
Departamento
 Lotação
n
1
Onde:
n = muitos = 5 ou 10 ou 350...
Ocorrência de Funcionário pode estar associada no máximo a 1 ocorrência de Departamento
21
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
22
Abordagem: E-R
Elementos Básicos:
Relacionamentos Binários
Relacionamento cujas ocorrências contém duas ocorrências de entidade
Classificação
n:n (muitos-para-muitos)
1:n (um-para-muitos)
1:1 (um-para-um)
22
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
23
Abordagem: E-R
Elementos Básicos:
Relacionamentos Binários
Relacionamentos 1:1 (um-para-um)
Pessoa
casamento
marido
esposa
1
1
 Cardinalidades máximas expressam que PESSOA pode possuir no máximo 1 marido e que PESSOA pode possuir no máximo 1 esposa
23
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
24
Abordagem: E-R
Elementos Básicos:
Relacionamentos Binários
Relacionamentos 1:n (um-para-muitos)
Aluno
Curso
Inscrição
n
1
Empregado
Supervisão
supervisor
supervisionado
1
n
24
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
25
Abordagem: E-R
Elementos Básicos:
Um aluno pode estar inscrito em no máximo 1 curso mas um curso pode ter diversos alunos
Um empregado supervisor pode supervisionar no máximo n empregados, mas um empregado não supervisor pode ser supervisionado por 1 único supervisor 
25
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
26
Abordagem: E-R
Elementos Básicos:
Relacionamentos Binários
Relacionamentos n:n (muitos-para-muitos)
Produto
Composição
composto
componente
n
n
Médico
Paciente
Consulta
n
n
26
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
27
Exercício: 
Desenhar um diagrama ER que contemple as seguintes 
regras:
Cada cidade deve ter uma ou mais ruas. Cada rua deve estar em uma cidade.
Cada rua deve ter um ou mais prédios. Cada prédio deve estar em uma rua.
Cada prédio pode ter um ou mais apartamentos. Cada apartamento deve estar em um prédio.
Cada rua deve estar localizada em um bairro. Cada bairro pode ter uma ou mais ruas.
Abordagem Entidade-Relacionamento
Désiré NGuessan
28
Cidade
Cidade-Rua
Apartamento
Bairro
Rua
Prédio
1
n
Rua-Predio
1
n
Predio-Apto
n
1
Rua-Bairro
n
1
Désiré NGuessan
29
Modelagem Conceitual
Estudo de caso 1: Administradora de imóveis.
- A administradora trabalha tanto com administração de condomínios, quanto com a administração de aluguéis.
- Uma entrevista com o gerente da administradora resultou nas seguintes informações:
- A administradora administra condomínios formados por unidades condominiais.
- Cada unidade condominial é de propriedade de uma ou mais pessoas. Uma pessoa pode possuir diversas unidades.
- Cada unidade pode ser alugada para no máximo uma pessoa. Uma pessoa pode alugar diversas unidades.
Désiré NGuessan
30
Condomínio
Cond-Unid
Inquilino
Unidade
Proprietário
1
n
Unid-Proprietário
n
n
Inquilino-Unid
n
1
Désiré NGuessan
31
Abordagem: E-R
Elementos Básicos:
 Atributos
A cada entidade (ou relacionamento) podem estar associados um ou mais atributos que representam suas propriedades elementares.
Definem os valores que são associados às ocorrências das entidades a partir de determinados domínios
31
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
32
Abordagem: E-R
Elementos Básicos:
 Atributos
PESSOA
Nome
Data de Nascimento
32
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
33
Abordagem: E-R
Elementos Básicos:
Atributos (continuação...)
Um atributo deve ser associado a um relacionamento quando não for possível associá-lo a uma entidade
Classificação (<p1, c1>) = 10 
PILOTO
CIRCUITO
 Corrida
Classificação
33
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues
ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
34
Abordagem: E-R
Elementos Básicos:
Atributos (continuação...)
Um atributo deve ser associado a um relacionamento quando não for possível associá-lo a uma entidade
consulta (<m1, p1>) = 20/8 
MÉDICO
PACIENTE
consulta
Data/hora
34
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
35
Abordagem: E-R
Elementos Básicos:
Atributos (continuação...)
Nome (1,1)
FUNCIONÁRIO
Sobrenome (1,n)
Telefone (0,n)
(1,1)  atributo monovalorado e obrigatório 
(0,1)  atributo monovalorado e opcional(idade)
(1,n)  atributo multivalorado e obrigatório
(0,n)  atributo multivalorado e opcional 
35
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
36
Abordagem: E-R
Elementos Básicos:
Atributos (continuação...)
Atributo identificador
 Um identificador é um atributo ou (menor) grupo de atributos que determina univocamente uma entidade.
 Toda entidade deve possuir um identificador, podendo este ser simples ou composto, além de interno ou externo.
36
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
37
Abordagem: E-R
Elementos Básicos:
Atributos (continuação...)
FUNCIONÁRIO
Matrícula
Nome
Atributo identificador
simples
37
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
38
Abordagem: E-R
Elementos Básicos:
Atributos (continuação...)
Prateleira
Capacidade
Numero do corredor
Numero da prateleira
Identificador
composto por vários atributos
38
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
39
Abordagem: E-R
Elementos Básicos:
 Generalização/Especialização
Permite atribuir propriedades particulares a um subconjunto das ocorrências (especializadas) de uma entidade genérica
É associada a idéia de Herança de propriedades 
39
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
40
Abordagem: E-R
Elementos Básicos:
 Generalização/Especialização
Tipo de organizaçao
Filial
Pessoa 
Física
Cliente
1
n
Pessoa.
 Jurídica
O cliente é dividido em dois subconjuntos cada um com propriedades próprias 
CNPJ
Nome
Codigo
CPF
Sexo
40
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
41
Abordagem: E-R
Elementos Básicos:
 Generalização/Especialização
Parcial
Total
41
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
42
Abordagem: E-R
Elementos Básicos:
 Generalização/Especialização
Total
Pessoa 
Física
Cliente
Pessoa.
 Jurídica
Indica que Todo cliente é pessoa física ou pessoa jurídica 
t
42
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
43
Abordagem: E-R
Elementos Básicos:
 Generalização/Especialização
Parcial
Motorista 
Funcionário
Secretária
Indica que nem todo funcionário é motorista ou secretária
p
43
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
44
Construindo o Modelos E-R:
Considerações a serem observadas:
 Um modelo ER é formal
Diferentes leitores de um mesmo modelo ER devem entender exatamente a mesma coisa de DER:
Envolvidos na confecção e uso de DER devem ser treinados.
Muitas vezes usado informalmente para reunir idéias e, usuários finais concordam e aprovam sem entender efetivamente o que foi modelado.
44
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
45
Construindo o Modelos E-R:
ER tem poder de expressão limitado:
Não representa todas as restrições (de integridade) e propriedades que um BD deseja : 
Pessoa
casamento
marido
esposa
1
1
45
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
46
Construindo o Modelos E-R:
Estratégias de Modelagem:
Processo incriminável com seqüência de passos
Gradativamente o modelo vai sendo enriquecido
Fontes de informações:
Partindo de descrições de dados existentes
Sistemas existentes
Partindo do conhecimento de pessoas
Novos sistemas
46
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
47
Construindo o Modelos E-R:
Partindo de descrições de dados existentes:
Para este caso aplica-se a estratégia bottom-up: de baixo para cima:
Primeiro são identificados os atributos;
Os atributos são agregados em entidades
As entidades são relacionadas e generalizadas
47
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
48
Construindo o Modelos E-R:
Partindo do conhecimento de pessoas:
Para este caso aplica-se:
Estratégia descendente (Top-down): de cima para baixo 
Estratégia (Inside-out)
48
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
49
Construindo o Modelos E-R:
Estratégia descendente (Top-down): de cima para baixo:
Modelagem Superficial – DER
pouco detalhado na seguinte seqüência:
Enumeração de entidades
Identificação de relacionamentos e hierarquias de generalização/especialização entre as entidades para cada relacionamento identificar a cardinalidade máxima
Determinação dos atributos de entidades e relacionamento
Determinação dos identificadores de entidades e relacionamentos 
Modelagem Detalhada
49
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
50
Construindo o Modelos E-R:
Estratégia (Inside-out): de dentro para fora:
O processo inicia com a identificação de uma entidade particularmente importante no modelo, e que supõe-se, estará relacionada a muitas outras entidades
A partir daí, são procurados atributos, entidades relacionadas generalizações e especializações da entidade em foco
E assim recursivamente até obter-se o modelo completo
50
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
51
51
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
52
codigotipo
tamanho
1
n
n
n
1
1
n
1
n
1
1
n
1
n
1
n
1
n
n
1
LOCAÇAO
VEICULO
CAMIONETA CARGA
TIPO
VEICULO
AUTOMOVEL
CAMIONETA DE PASS. 
REVISAO
RESERVA
MOTORISTA
CLIENTE
FILIAL
P FISICA
P JURIDICA
passageiro
porta
capacidade
cor
motor
placa
chassi
data
numhoras
codigo
52
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
53
 
53
Désiré NGuessan
54
Projeto de Banco de Dados
– Etapa 2 – 
Projeto Lógico:
Abordagem Relacional 
NGUESSAN.DESIRE@POLI.USP.BR
54
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
55
Especificação de BD relacional
A especificação de um banco de dados relacional (chamada de esquema do banco de dados) deve conter no mínimo a definição dos Seguintes:
 Tabelas que formam o banco de dados
 Colunas que as tabelas possuem
 Restrições de integridade
55
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
56
Exemplo de Esquema	
Emp(CodigoEmp,Nome,CodigoDepto,CategFuncional,CIC)
CodigoDepto referência Dept
Dept (CodigoDepto,Nome)
Chave Estrangeira
Chave Primaria
56
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
57
Vantagens: 
Entidades e relacionamentos são representados através de Tabelas
 Trabalha com relações e não com registros
 Evita a declaração de ligações e conectores no nível conceitual
57
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
58
Vantagens: 
Simetria completa nas consultas
Não há problemas de redundância 
Não há a necessidade de se preverem conectores (ligações adicionais) na consulta
Linguagens completas para manipulação de dados (fundamentação matemática)
 Não são fortemente acopladas a uma LP
 Linguagens de mais alto nível, se comparadas com uma LP procedural tradicional 
58
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
59
Mapeamento ER em Relacional
Objetivos:
Obter um BD que:
 Tenha bom desempenho nas instruções de consulta e alteração de dados
 Simplifique o desenvolvimento e manutenção de aplicações
Princípios:
 Evitar junções
 Diminuir o número de chaves
 Evitar campos opcionais
 
59
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
60
Mapeamento ER em Relacional
 Fase de Preparação:
Substituir alguns relacionamentos por chaves estrangeiras
 Encontrar/substituir identificadores
 “Normalizar” entidades
 
60
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
61
Mapeamento ER em Relacional
 Fase de Mapeamento
transformar entidades e relacionamentos em relações (Tabelas)
 
61
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
62
Preparação
Eliminação de identificadores externos:
Eliminar o Relacionamento, substituindo-o por uma nova versão da Entidade que contém somente identificadores internos
Incluir como atributo(s) da nova versão da entidade o(s) atributo(s) identificador(es) da entidade que participava externamente da identificação;
Criar novo identificador na nova Entidade, composto dos atributos internos identificadores originais, mais os novos atributos.
 
62
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
63
Preparação
Eliminação de Atributos Multivalorados:
Como Alternativas
Criar uma nova Entidade, relacionada à entidade original
Identificação da nova Entidade pode ser o próprio atributo, ou um identificador externo
Substituir por n atributos fixos, desde que se saiba e possa limitar o valor de “n”atributos.
 
63
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
64
Preparação
Eliminação de Atributos Multivalorados:
 
CI
Nome
Dependentes (0,n)
Telefones(0,3)
CI
Num
Nome
Fone1
Fone2
Fone3
Depend
Nome
64
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que
de ser realizado pela equipe do projeto
Désiré NGuessan
65
Mapeamento de Entidade
CI
Num
Nome
Fone1
Fone2
Fone3
Depend
Nome
Func (CI, Nome, Fone1, Fone2, Fone3)
Depend (CI, Num, Nome)
65
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
66
Mapeamento de Relacionamento
Relacionamento sao Implementadas usando chaves estrangeiras:
Identificadores das entidades participantes
Três Técnicas
Tabela Própria
Aconselhado para cardinalidades máximas N:M
 Colunas Adicionais em Tabela de Entidade
 aconselhado para cardinalidades máximas 1:1 e 1:N
 Fusão de Tabelas de Entidades
	 aconselhado para alguns casos de cardinalidades máximas 1:1
 
66
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
67
Mapeamento de Relacionamento
Tabela Própria:
Transformar o relacionamento em tabela contendo:
 Atributos identificadores das entidades participantes da relação
Definí-las como chaves estrangeiras
 Atributos do relacionamento, se existirem
 Identificação
Relacionamento é identificado por entidades participantes?
Composição dos identificadores das Entidades
Relacionamento é identificado por composição das entidades participantes e atributos do relacionamento?
Composição dos identificadores das entidades e destes atributos
 
67
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
68
Mapeamento de Relacionamento
Tabela Própria:
 
Engenheiro
CodE
Nome
Projeto
Funcao
Titulo
CodP
n
n
Engenheiro (CodE,Nome)
Projeto (CodP, Titulo)
EP (CodE, CodP,funcao)
CodE referencia Engenheiro
CodP referencia Projeto
EP
68
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
69
Mapeamento de Relacionamento
Adição de Colunas:
Cada entidade é mapeada em uma tabela distinta
 identificador = identificador da entidade
 alterações de identificador por razões de desempenho
Em uma das tabelas é incluído um ou mais atributos, correspondentes aos atributos que compõem a chave primária da outra tabela, e defini-los como chave estrangeira
Casos recomendados
todos os casos 1:N
casos 1:1
• (0-1):(0-1)
• (0-1):(1-1)
 
69
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
70
Mapeamento de Relacionamento
Adição de Colunas - (1,n)
 
Departamento
CodD
Nome
Empregado
Data
Nome
CodE
1
n
Departamento (CodD Nome)
Empregado (CodE, Nome, CodD,Data)
CodD referencia Departamento
D_E
70
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
71
Mapeamento de Relacionamento
Adição de Colunas – (1,1)
 
Homem
RG
Nome
Mulher
Data
Nome
RG
0,1
0,1
Homem (RG, Nome)
Mulher (RGM, Nome, RGH, ,Data, regime)
RGH referencia Homem
H_M
Regime
71
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
72
Mapeamento de Relacionamento
Fusão de Tabelas de Entidades:
Criação de uma única tabela, contendo todos os atributos das duas Entidades
 identificador = identificador de uma das entidades
 escolha arbitrária
 Caso recomendado
 caso (1-1) : (1-1)
Cardinalidade Minima de ambas as entidades é 1
 
72
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
73
Mapeamento de Relacionamento
Fusão de Tabelas – (1,1):(1,1)
 
Conferência
Cod
Nome
Comissao
End
1,1
1,1
Conferência (Cod, Nome,Data, End)
Organizacao
Data
73
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
74
Mapeamento de Generalização
Há duas alternativas principais:
Usa de uma tabela para cada entidade participante
Uso de uma única tabela para toda hierarquia de Generalização/Especialização
 
74
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
75
Mapeamento de Generalização
Cliente
Cod
Nome
PJuridica
Tipo
Cliente (Cod, Nome)
PFisica( Cod, CPF, Sexo)
PJuridica( Cod, CGC, Tipo)
Uma Tabela Para
Cada Entidade
CGC
PFisica
Sexo
CPF
75
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
76
Mapeamento de Generalização
Cliente
Cod
Nome
PJuridica
Tipo
Cliente (Cod, Tipo Nome, CPF, Sexo, CGC, TipoPJ)
Uma Única Tabela
CGC
PFisica
Sexo
CPF
76
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
77
Emp (CodigoEmp,Tipo,Nome,CIC,CodigoDepto,CartHabil, CREA,CodigoRamo)
CodigoDepto Referencia Depto
CodiRamo Referencia Ramo
Depto (CodigoDepto,Nome)
Ramo(CodigoRamo,Nome)
ProcessTexto(CodigoProc, Nome)
Dominio(CodigoEmp, CodigoProc)
CodigoEmp referencia Emp
CodigoProc referencia ProcessTexto
Projeto (CodigoPro, Nome)
Participação (CodigoEmp, CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Esquema Relacional Correspondente 
77
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
78
Projeto de Banco de Dados
– Etapa 2 – 
Projeto Lógico
NGUESSAN.DESIRE@POLI.USP.BR
78
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
79
Modelo Relacional
Criado por Edgar Codd (1970)
Lab. Pesquisa IBM/San Jose - Califórnia
Utilizado
em empresas a partir de 1987
Objetivos
Independência de dados
Reduzir inconsistências 
79
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
80
Modelo Relacional
São conjuntos de dados vistos segundo um conjunto de tabelas - as operações sobre as mesmas são feitas por linguagens que manipulam a álgebra relacional, não sendo procedurais (ou seja, manipulando conjuntos de uma só vez).
80
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
81
Modelo Relacional
Abordagem Relacional:
Abordagem de modelagem de dados usada nos Sistemas de Gerência de Banco de Dados do tipo relacional
Modelagem em nível lógico e não conceitual
81
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
82
Modelo Relacional
Características do Modelo:
Aspectos Estruturais: 
 dados do BD em tabelas
Aspectos de Integridade: 
tabelas satisfazem restrições
Aspectos de Manipulação: 
operadores de manipulação derivam tabelas de outras tabelas
82
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
83
Modelo Relacional
Aspectos Estruturais:
Tabela/Relação
 Atributos
 Chaves
 Domínio
83
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
84
Modelo Relacional
Relação:
Uma relação R sobre uma coleção de conjuntos D1, D2, . . ., Dn é um subconjunto do produto cartesiano D1 X D2 X . . . X Dn.
Exemplo: Relação NomeCliente - Nro. Conta
84
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
85
Modelo Relacional
Relação:
 João
 Paulo
 Maria
 Marta
100
200
300
NomeCliente
NroConta
85
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
86
Modelo Relacional
Tabelas
 Representação usual de uma relação
 Cada qual designada por um nome único
 Composta por:
 linhas (tuplas)
 Uma linha numa tabela representa um relacionamento entre conjunto de valores
 colunas (atributos)
Relacionadas através de 
 Chaves estrangeiras
86
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
87
Modelo Relacional
Tabelas
Cardinalidade da relação: número de tuplas da tabela
 Grau da relação: número de colunas da tabela
 O número de conjuntos sobre o qual a relação (tabela) está definida.
 unária, binária, ..., n- ária
87
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
88
Modelo Relacional
Atributo
Representa o uso de um domínio dentro de uma relação
 Vários atributos podem pertencer a um mesmo dominio
 Em uma tabela, representa a descrição (cabeçalho) das colunas
 Exemplo: relação Clientes
88
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
89
Modelo Relacional
Estrutura de DB Relacional
Num
Nome
Status
Cidade
C1
Santo
devedor
Sao Paulo
C2
Souza
Com credito
Campinas
C3
Silva
Com credito
Campinas
C4
Soares
Inativo
São Paulo
Nome de Atributo
Tuplas
Cardinalidade
Grau
Valor do atributo
89
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
90
Terminologia
Profissional
Acadêmico
Tabela
Relação
Linha ou Registro
Tupla
Coluna ou Campo
Atributo
Valor do Campo
Valor do atributo
Identificador exclusivo
Chave Primaria
Conjunto de Valores Validos
Domínio
90
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
91
Modelo Relacional
Chave
 Conceito usado para especificar restrições de integridade básicas de um SGBD relacional
 permite a identificação de tuplas em uma tabela
 permite o estabelecimento de relacionamentos entre tabelas
91
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
92
Modelo Relacional
Chave
 Três tipos:
 Chave primária
 Chave alternativa
 Chave estrangeira
92
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
93
Modelo Relacional
Chave Primaria:
 Uma chave primária é uma coluna ou uma combinação de colunas cujos valores distinguem uma linha das demais dentro de uma tabela
 Identifica univocamente uma tupla
93
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
94
Chave Primaria:
CodEmp
NoDepen
Nome
Tipo
DataNasc
C1
01
Santo
filho
12/01/87
C1
02
Maria
filha
20/12/98
C3
01
Silva
esposa
04/05/68
C4
01
Soares
filho
06/10/90
Dependente
Chave Primaria
94
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
95
Modelo Relacional
Chave Estrangeira:
 Uma coluna ou uma combinação de colunas, cujos valores aparecem necessariamente na chave primária de uma tabela
 Mecanismo que permite a implementação de relacionamentos
em um banco de dados relacional
95
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
96
Chave Estrangeira :
CodEmp
Nome
CodDpto
Categoria
Cic
E1
Santo
D1
344334
E2
Maria
D2
C5
565565
E3
Silva
D2
C5
787877
E4
Soares
D1
C2
990909
CodDpto
NomeDpto
D1
compras
D2
engenharia
D3
vendas
CodigoDepto em EMP é uma chave estrangeira em relação a tabela DEPTO
DEPTO
EMP
96
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
97
Projeto de Banco de Dados
 Linguagem - SQL
NGUESSAN.DESIRE@POLI.USP.BR
97
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
98
 
 SQL 
SQL (Structured Query Language) é uma linguagem comercial de definição e manipulação de dados relacionais
Inicialmente chamada de SEQUEL
origem: Sistema R (IBM)
Structured Query Language
Padrão de fato para bancos de dados relacionais
Ex.: Oracle, SQL/Server, DB2, Sybase, Ingres, etc.
1986: padrão ANSI (SQL1)
Modificado em 89
outros padrões: SQL2 (92), SQL3 (99)
98
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
99
Componentes do SQL 
DDL (Data Definition Language)
criação, atualização e remoção de relações e índices
visões, etc
DML (Data Manipulation Language)
consultas
inserção, atualização e remoção de tuplas
controle de transações
embutida vs interativa
DCL (Data Control Language)
segurança
integridade
99
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
100
Componentes do SQL 
SQL DDL – Criando Tabelas
CREATE TABLE <nome-tabela>
(<nome-atributo> <tipo> [NOT NULL [PRIMARY KEY]] 
[,<nome- atributo > <tipo> [NOT NULL [UNIQUE]]]...
)
100
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
101
Componentes do SQL 
SQL DDL – Criando Tabelas
CREATE TABLE Cliente1
(
CodCliente int NOT NULL,
Nome varchar(50),
CPF varchar(11) NULL,
DataCadastro datetime NOT NULL DEFAULT (getdate()),
Cidade varchar(20) NULL,
UF char(2) NULL,
País varchar(20) DEFAULT ('Brasil')
)
NULL ou NOT NULL, indicando se esta permite valores nulos ou não.
Character Varying (x) [VARCHAR] – armazena exatamente o número de caracteres digitados
101
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
102
Componentes do SQL 
SQL DDL – Removendo Tabelas
DROP TABLE <nome-tabela>
Drop Table Cliente1
102
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
103
Componentes do SQL 
SQL DDL – Alterando Tabelas
ALTER TABLE [banco_dados.[owner.]]nome_tabela
{
[ALTER COLUMN nome_coluna
{novo_tipo_de_dados [(precisão[, escala])]
| ADD {nome_coluna dados_coluna
| [WITH CHECK | WITH NOCHECK]}
103
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
104
Componentes do SQL 
SQL DDL – Alterando Tabelas
ALTER TABLE [banco_dados.[owner.]]nome_tabela
{
[ALTER COLUMN nome_coluna
{novo_tipo_de_dados [(precisão[, escala])]
| ADD {nome_coluna dados_coluna
| [WITH CHECK | WITH NOCHECK]}
104
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
105
Componentes do SQL 
SQL DDL – Alterando Tabelas
ALTER TABLE Cliente
ADD ender varchar(50) NULL
ALTER TABLE Cliente
ALTER COLUMN CIDADE VARCHAR (25)
105
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
106
Componentes do SQL 
SQL DDL – Alterando Tabelas
ALTER TABLE Cliente
ADD ender varchar(50) NULL
ALTER TABLE Cliente
ALTER COLUMN CIDADE VARCHAR (25)
106
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
107
DML
 Data Manipulation Language
Inserindo Linhas
O comando INSERT insere linhas em uma tabela. A forma mais simples do comando
INSERT insere somente uma linha , dados os valores.
Sintaxe
INSERT [INTO] nome_tabela (colunas)
 VALUES (valores)
107
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
108
DML
 Data Manipulation Language
Inserindo Linhas
O comando INSERT insere linhas em uma tabela. A forma mais simples do comando
INSERT insere somente uma linha , dados os valores.
Sintaxe
INSERT [INTO] nome_tabela (colunas)
 VALUES (valores)
Onde:
nome_tabela é o nome da tabela que deseja incluir os dados.
colunas são os nomes das colunas da tabela que deseja acrescentar os dados.
valores são os conteúdos de cada coluna.
108
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
109
DML
 Data Manipulation Language
Exemplos
INSERT into Funcionario
values (1, 'Primeiro Funcionário', 2, 122, 234.23,
'01/01/1998', '01/01/1998', 'M')
INSERT into Funcionario (CodFuncionario, Nome, CodDepartamento, Sexo,Salario, DataAdmissao) values (2, 'Segundo Funcionário', 1, 'F', 4360.00, '01/01/1996')
Nesse caso, os nomes das colunas que serão inseridas são especificados entre parênteses após o nome da tabela. A ordem não precisa ser a mesma das colunas na tabela. Mas a ordem dos valores em VALUES corresponde à ordem dos nomes de colunas informados.
109
Quando se vai gerenciar um projeto, um grande desafio
é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
110
DML
 Data Manipulation Language
Exemplos
insert INTO Vehiculo (placa,chassi,motor,cor,codigotipo,codigofilial)
 values ('dav002', '00000102','00000303','prata','P2', 'SP18 ‘ )
110
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
111
insert INTO Vehiculo (placa,chassi,motor,cor,codigotipo,codigofilial) values ('dav002', '00000102','00000303','prata','P2', 'SP18 ‘ )
111
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
112
DML
 Data Manipulation Language
Excluindo Linhas
O comando DELETE exclui permanentemente uma ou mais linhas de uma tabela, baseado em alguma condição.
Sintaxe
DELETE FROM nome_tabela WHERE condicao
Onde:
nome_tabela é o nome da tabela que deseja excluir os dados.
condicao é condição para selecionar as dados que deseja excluir.
112
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
113
DML
 Data Manipulation Language
Excluindo Linhas
Exemplo
DELETE from CopiaCliente
 where Codigo = 2
Note que a exclusão não pode ser desfeita.
Para excluir todas as linhas de uma tabela, existe a opção. comando DELETE sem condição WHERE:
DELETE from CopiaCliente
113
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
114
 delete from vehiculo where placa ='dav0001'
114
Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto
Désiré NGuessan
115
SQL DML
 Data Manipulation Language 
Consulta simples
O comando SELECT recupera dados de uma ou mais tabelas. A sua sintaxe mais simples pode ser resumida da forma:
Sintaxe Geral:
SELECT <atributos> [INTO <nova_tabela>]
 FROM <relações>
 [WHERE <condições>]
 [ORDER BY <atributos-ordenacao> [descending]]
 [GROUP BY <formato-agrupamento> 
 [HAVING <condicoes>]]
Désiré NGuessan
116
SQL DML
 Data Manipulation Language 
Consulta simples (continuação)
onde
A lista_de_colunas especifica quais colunas serão retornadas como resultado, separadas por vírgulas ou um asterisco (*) que indica todas as colunas da tabela.
A cláusula FROM, com uma lista_de_tabelas, especifica quais tabelas serão consultadas.
A cláusula WHERE especifica condições que devem ser satisfeitas pelas linhas das tabelas.
O comando Select pode ser utilizado para mostrar o conteúdo de variáveis, valores iterais, etc...
Désiré NGuessan
117
SQL DML
 Data Manipulation Language 
Consulta simples (continuação)
Cláusula Where
condições
operadores lógicos (AND, OR, NOT), parênteses, operadores comparadores (<, >, <>, = , etc)
constantes, atributos, operadores aritméticos
between (>= and <=)
LIKE
% : substitui cadeias de caracteres
_ : substitui caracteres
subconsultas
Désiré NGuessan
118
SQL DML
 Data Manipulation Language 
Consulta simples (continuação)
Cláusula order by condições
ordenação das tuplas resultado em função de um ou mais atributos
opcional
ORDER BY<atr> [<ord>] [,<atr> [<ord>] ...]
<atr> ::= atributo
<ord> ::= ASC (default) 
	 DESC 
Ex.: Select * from Compradores order by Nome DESC 
Désiré NGuessan
119
SQL DML
Désiré NGuessan
120
SQL DML
 Funções Matemáticas 
ABS(valor) retorna o valor absoluto (sem sinal) de um item.
POWER(valor,p) retorna o valor elevado à potência p.
ROUND(valor,n) arredonda o valor para n casas decimais.
SQRT (valor) retorna a raiz quadrada do valor especificado.
PI valor constante 3.141592563589793
Por exemplo, para arredondar o valor do preço de cada livro para duas casas decimais, pode ser feito o seguinte:
Select price Preço , ROUND(price, 1) "Preço com 1 casa decimal", title Título from titles
Désiré NGuessan
121
SQL DML
Désiré NGuessan
122
SQL DML
 Funções de Manipulação de String
 
ASCII(caractere) 
retorna o código ASCII de um caractere.
CHAR(inteiro)
retorna o caractere, dado o seu código ASCII
LOWER(expr)
 converte para minúsculas
UPPER(expr)
 converte para maiúsculas
LTRIM(expr) 
retira espaços à esquerda
RTRIM(expr) 
retira espaços à direita
REPLICATE(expr, n)
 repete uma expressão n vezes
Désiré NGuessan
123
SQL DML
 Funções de Manipulação de String
 
SUBSTRING(expr,início,tamanho)
extrai uma parte de uma string desde início e com tamanho caracteres
RIGHT(expr,n)
 retorna n caracteres à direita da string
REVERSE(expr) 
inverte uma string
CHARINDEX('caractere', expr) 
retorna a posição de um caractere dentro da string
SPACE(n)
 retorna uma string com n espaços
Désiré NGuessan
124
 
Selecione todos os departamentos cujo orçamento mensal seja maior que 100000. Apresente o Nome de tal departamento e seu orçamento anual, que será obtido multiplicando-se o orçamento mensal por 12.
SELECT DEPNOME, DEPORCA * 12 FROM DEPT
	 WHERE DEPORCA > 100000;
Désiré NGuessan
125
 
Apresente todos os salários existentes na empresa, porém omita eventuais duplicidades.
Resp: A cláusula Distinct elimina duplicidades, significando que somente relações distintas serão apresentadas como resultado de uma pesquisa.
 SELECT DISTINCT EMPSERV FROM EMP;
Désiré NGuessan
126
 
Apresente os nomes e funções da cada funcionário contidos na tabela empresa, porém classificados alfabeticamente (A..Z) e depois alfabeticamente invertido (Z..A).
Resp: A cláusula Order By modificará a ordem de apresentação do resultado da pesquisa (ascendente ou descendente).
 		SELECT EMPNOME, EMPSERV
		 FROM EMP ORDER BY EMPNOME;
 
		 SELECT EMPNOME, EMPSERV
		 FROM EMP ORDER BY EMPPNOME DESC;
 
Désiré NGuessan
127
 
 SELECT EMPNOME, EMPSALA FROM EMP
	 WHERE EMPSALA BETWEEN 	500 AND 1000;
 SELECT EMPNOME, DEPNUME FROM EMP
 WHERE DEPNUME IN (10,30);
 SELECT EMPNOME, EMPSERV
 FROM EMP
 WHERE EMPNOME LIKE 'F%';
 
 SELECT EMPNOME, EMPSERV
 FROM EMP
 WHERE EMPCOMI IS NULL;
O símbolo "%" pode ser usado para construir a pesquisa ("%" = qualquer sequência de nenhum até vários caracteres).
Désiré NGuessan
128
 
 Operadores Negativos
Operador 	Descrição
	<>				diferente
	not nome_coluna = 	diferente da coluna
	not nome_coluna > 		não maior que
	not between 			não entre dois valores 					informados
	not in 				não existente numa 					dada lista de valores
	not like				diferente do padrao de 					caracteres informado
	is not null			não é um valor nulo
Désiré NGuessan
129
 
 Operadores Negativos
Operador 	Descrição
	<>				diferente
	not nome_coluna = 	diferente da coluna
	not nome_coluna > 		não maior que
	not between 			não entre dois valores 					informados
	not in 				não existente numa 					dada lista de valores
	not like				diferente do
padrao de 					caracteres informado
	is not null			não é um valor nulo

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais