banco de dados ii: generalização e especialização (aula 3)
TRANSCRIPT
Aula 3: Generalização e Especialização prof. Gustavo Zimmermann
Recomendações construção de tabelas
prof. Gustavo Zimmermann | [email protected]
#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.
prof. Gustavo Zimmermann | [email protected]
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]
prof. Gustavo Zimmermann | [email protected]
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]
prof. Gustavo Zimmermann | [email protected]
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]
Generalização/Especialização funcionamento
prof. Gustavo Zimmermann | [email protected]
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
prof. Gustavo Zimmermann | [email protected]
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
prof. Gustavo Zimmermann | [email protected]
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
prof. Gustavo Zimmermann | [email protected]
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
93321826001105 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.
prof. Gustavo Zimmermann | [email protected]
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
prof. Gustavo Zimmermann | [email protected]
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 IE CNPJ
T
prof. Gustavo Zimmermann | [email protected]
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
prof. Gustavo Zimmermann | [email protected]
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
prof. Gustavo Zimmermann | [email protected]
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
valorHora vigencia
dataInicio
dataTermino
1
profissao
DER
endereco telefone
prof. Gustavo Zimmermann | [email protected]
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
prof. Gustavo Zimmermann | [email protected]
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
prof. Gustavo Zimmermann | [email protected]
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
prof. Gustavo Zimmermann | [email protected]
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
<fim /> bora pra casa!