O documento discute generalização e especialização em bancos de dados. Apresenta recomendações para construção de tabelas em diferentes tipos de relacionamentos e exemplos de como modelar entidades genéricas e especializadas.
3. prof. Gustavo Zimmermann | contato@gust4vo.com
#FicaDica [1/4]
Banco de Dados II – Aula 3: Generalização e Especialização
Recomendações construção de Tabelas
(1 : 1):
Se houver relacionamento 1:1, verifique se
não é melhor unir as 2 tabelas em uma
única tabela.
4. prof. Gustavo Zimmermann | contato@gust4vo.com
Banco de Dados II – Aula 3: Generalização e Especialização
Recomendações construção de Tabelas
(1 : N) ou (N : 1) :
A chave estrangeira é colocada sempre na
tabela do lado N do relacionamento.
#FicaDica [2/4]
5. prof. Gustavo Zimmermann | contato@gust4vo.com
Banco de Dados II – Aula 3: Generalização e Especialização
Recomendações construção de Tabelas
(N : N):
Relacionamentos N:N sempre geram uma
terceira tabela, com as chaves primárias das
2 tabelas originais.
#FicaDica [3/4]
6. prof. Gustavo Zimmermann | contato@gust4vo.com
Banco de Dados II – Aula 3: Generalização e Especialização
Recomendações construção de Tabelas
Documentação:
Sempre escreva e guarde o esquema
relacional do seu banco de dados antes de
gerar as suas tabelas.
#FicaDica [4/4]
8. prof. Gustavo Zimmermann | contato@gust4vo.com
Banco de Dados II – Aula 3: Generalização e Especialização
Generalizações/Especializações
Uma Entidade pode possuir propriedade iguais, e outra parte com
propriedades diferentes, por exemplo: Entidade Cliente pode ser
Pessoa Física ou Jurídica. Como pessoa Física Nome, CPF e RG,
como pessoa Jurídica os dados serão Nome, CNPJ e IE. Pessoa
Física e Jurídica tem o Nome em comum, porém CPF, RG, CNPJ e
IE são diferentes para cada subgrupo. A esses subgrupos
chamamos de Especialização, e o símbolo utilizado é o
triangulo.
Definição
9. prof. Gustavo Zimmermann | contato@gust4vo.com
Banco de Dados II – Aula 3: Generalização e Especialização
Generalizações/Especializações
Definição
Cliente
codCliente
Nome
Filial possui
1 N
RG
CPF
Física
CNPJ
IE
Jurídica
Pessoa
10. prof. Gustavo Zimmermann | contato@gust4vo.com
Banco de Dados II – Aula 3: Generalização e Especialização
Generalizações/Especializações
Definição
Cliente
codCliente
Nome
Pessoa Física Pessoa Jurídica
CPF
RG IE
CNPJ
Filial possui
1 N
Generalização
Especializações
11. prof. Gustavo Zimmermann | contato@gust4vo.com
Banco de Dados II – Aula 3: Generalização e Especialização
Generalizações/Especializações
Aplicação : aplicações
codCliente Tipo Endereco Telefone Nome CPF RG CNPJ IE
1 Física Rua dos Bobos, 0 5188745698
Joana Mendes
Oliveira
245548265898 5218796385 0
2 Juridica
R. David Canabarro,
75 - Centro, Novo
Hamburgo - RS
5130660405
Escolas e
Faculdades QI -
Novo Hamburgo
933218260011
05
00212248814
3 Física
Rua Nabulco Morais,
245
5130258962
Roberto Rogerio
Lopes
25014539878 9852347563
Cliente
[1/2] Criar uma única tabela para todas as especializações e incluir um campo diferenciador: Seria
juntar todos os tipos de Cliente, em uma única tabela e acrescentar mais um campo para identificar o
Cliente.
12. prof. Gustavo Zimmermann | contato@gust4vo.com
Banco de Dados II – Aula 3: Generalização e Especialização
Generalizações/Especializações
Aplicação : aplicações
codCliente Nome Endereco Telefone
1
Joana Mendes
Oliveira
Rua dos Bobos,
0
5188745698
2
Escolas e
Faculdades QI -
Novo
Hamburgo
R. David
Canabarro, 75 -
Centro, Novo
Hamburgo - RS
5130660405
3
Roberto
Rogerio Lopes
Rua Nabulco
Morais, 245
5130258962
Cliente
[2/2] Criar uma tabela para cada especialização e definir mais um campo identificador.
codPessoa CPF RG codCliente
1 245548265898 5218796385 1
2 25014539878 9852347563 3
ClienteFisico
codEmpresa CNPJ IE codCliente
1 93321826001105 00212248814 2
ClienteJuridico
13. prof. Gustavo Zimmermann | contato@gust4vo.com
Banco de Dados II – Aula 3: Generalização e Especialização
Generalizações/Especializações
Especialização : total ou parcial
Especialização Total (T) é quando uma entidade possui obrigatoriamente uma
ligação com a entidade genérica, ou seja, para cada ocorrência da entidade
genérica existe sempre ocorrência em uma das entidades especializada.
Cliente
codCliente
Nome
Pessoa Física Pessoa Jurídica
CPF
RG IECNPJ
T
14. prof. Gustavo Zimmermann | contato@gust4vo.com
Banco de Dados II – Aula 3: Generalização e Especialização
Generalizações/Especializações
Especialização : total ou parcial
Especialização Parcial (P) é quando uma entidade não tem obrigatoriamente
uma ligação com a entidade genérica, ou seja, nem toda ocorrência da entidade
genérica corresponde a uma entidade especializada.
Funcionario
codFuncionario
Nome
Engenheiro Medico
CREA Especialidade
CRM
P
15. prof. Gustavo Zimmermann | contato@gust4vo.com
EXERCÍCIO 1
Construir um banco de dados para agenciamento de empregados Uma
empresa de agenciamento de empregados pretende informatizar o seu
cadastro de profissionais e candidatos a empregos temporários. Seu
objetivo é construir um banco de dados onde possa manter os dados
cadastrais dos profissionais e seus contratos temporários com as
empresas clientes. O profissional é identificado pelo seu CPF e, além dessa
informação, ficam registrados o seu nome, endereço, nascimento e
profissão. Os contratos de empregados temporários são feitos
individualmente (um contrato para cada profissional) com as empresas
clientes. Cada contrato é identificado por um número único e nele são
registrados a empresa contratante, a vigência do contrato (data de início e
de término) e o valor pago por hora trabalhada. As empresas clientes são
identificadas por um CNPJ e possuem um nome e endereço.
Banco de Dados II – Aula 3: Generalização e Especialização
Generalizações/Especializações
16. prof. Gustavo Zimmermann | contato@gust4vo.com
nome
cnpj
EXERCÍCIO 1 : possível resolução
Banco de Dados II – Aula 3: Generalização e Especialização
Generalizações/Especializações
Profissional
Empresa
Cliente
pertence
N 1
Contrato
atende
1
1
(0 : N) (0 : 1)
(0 : 1)
(1 : 1)
cpf nome
endereco
dataNasc
numContrato
valorHoravigencia
dataInicio
dataTermino
1
profissao
DER
endereco telefone
17. prof. Gustavo Zimmermann | contato@gust4vo.com
EXERCÍCIO 1 : possível resolução
Banco de Dados II – Aula 3: Generalização e Especialização
Generalizações/Especializações
2
cpf nome profissao endereco dataNasc cnpj
Profissional
TABELAS
cnpj nome endereco telefone
Empresa
numContrato valorHora dataInicio dataTermino cpf
Contrato
18. prof. Gustavo Zimmermann | contato@gust4vo.com
EXERCÍCIO 2
A fim de gerenciar as vendas em uma loja, os seguintes requisitos devem ser
atendidos:
• Vendas são efetuadas por um vendedor em um determinado momento (indicado por
uma data e um horário). Vendedores recebem um salário base e comissão sobre as
vendas, a qual representa 10% do valor da venda.
• Vendedores possuem matricula, nome, endereço, telefone e CPF. Vendedores podem
possuir mais de um telefone.
• Vendas podem ser à vista ou a prazo. Vendas a prazo possuem parcelas de pagamento,
com sua data de vencimento e valor.
• Vendas podem ou não estar relacionadas a um Cliente. Vendas em dinheiro nem sempre
estão relacionadas a um Cliente.
• Clientes são cadastrados com seu Nome, CPF, Identidade, Endereço e Telefone. Clientes
podem possuir mais de um telefone.
• Vendas envolvem produtos, sendo que para cada venda a quantidade vendida do
produto deve ser registrada.
• Produtos possuem código, descrição, preço e quantidade em estoque.
Banco de Dados II – Aula 3: Generalização e Especialização
Generalizações/Especializações
19. prof. Gustavo Zimmermann | contato@gust4vo.com
EXERCÍCIO 3
Uma vídeo locadora trabalha com o aluguel de DVDs, CDs e cartuchos de jogos.
Todos os 3 tem um código , o titulo que o descreve e a categoria.
Adicionalmente, os DVDs e os CDs possuem a sinopse e os artistas principais. Já
os cartuchos de jogos, possuem adicionalmente apenas o nome do fabricante. A
locadora empresta apenas para os clientes cadastrados. Nome, endereço, data de
nascimento e telefones dos clientes ficam anotados em uma ficha junto com um
código numérico sequencial atribuído ao cliente no momento do cadastro. Cada
cliente pode alugar um ou mais objetos de locação (DVD, CD ou Cartucho), sendo
que cada um destes só pode ser alugado por apenas 1 cliente em um
determinado momento (data). É interesse da locadora, entretanto, manter um
histórico dos aluguéis já realizados, a fim de gerenciar o perfil dos seus clientes.
Banco de Dados II – Aula 3: Generalização e Especialização
Generalizações/Especializações
20. prof. Gustavo Zimmermann | contato@gust4vo.com
EXERCÍCIO 4
A sua empresa de informática foi contatada por um cliente importante para desenvolver um site na
Internet para um gerenciador de conteúdo de eventos culturais. Esta empresa irá centralizar neste website
a informação de diversos eventos que ocorrem em todo o país. Os eventos podem ser a realização de
shows musicais com bandas (ou cantores) nacionais e internacionais; partidas de um campeonato de
algum esporte (futebol, vôlei, basquete, etc); apresentações de grupos de teatros; apresentações de grupos
circenses; realização de convenções de empresas; congressos e simpósios específicos de alguma área do
conhecimento. Para cada evento é necessário manipular informações sobre o local, período, cidade e
estado; a programação do evento (lembre-se que um evento pode ser de três dias e, em cada dia, podem
ocorrer diversas atividades em diferentes horários (ou com colisão de horários)). Neste website deverá ser
possível realizar a inscrição para o evento ou efetuar a compra de ingressos. Os ingressos, quando for o
caso, deverão ter os preços cadastrados de acordo com o local do evento e com as diferentes opções de
acomodações, tais como, cadeiras, arquibancada, mezanino, área VIP, etc. O website deverá permitir a
geração de diversos relatórios específicos para cada evento com as informações gerais, pessoas inscritas,
ingressos vendidos, programação completa, etc
Banco de Dados II – Aula 3: Generalização e Especialização
Generalizações/Especializações