banco de dados ii: generalização e especialização (aula 3)

21
Aula 3: Generalização e Especialização prof. Gustavo Zimmermann

Upload: gustavo-zimmermann

Post on 13-Jan-2017

1.791 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Banco de Dados II: Generalização e Especialização (aula 3)

Aula 3: Generalização e Especialização prof. Gustavo Zimmermann

Page 2: Banco de Dados II: Generalização e Especialização (aula 3)

Recomendações construção de tabelas

Page 3: Banco de Dados II: Generalização e Especialização (aula 3)

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.

Page 4: Banco de Dados II: Generalização e Especialização (aula 3)

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]

Page 5: Banco de Dados II: Generalização e Especialização (aula 3)

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]

Page 6: Banco de Dados II: Generalização e Especialização (aula 3)

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]

Page 7: Banco de Dados II: Generalização e Especialização (aula 3)

Generalização/Especialização funcionamento

Page 8: Banco de Dados II: Generalização e Especialização (aula 3)

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

Page 9: Banco de Dados II: Generalização e Especialização (aula 3)

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

Page 10: Banco de Dados II: Generalização e Especialização (aula 3)

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

Page 11: Banco de Dados II: Generalização e Especialização (aula 3)

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.

Page 12: Banco de Dados II: Generalização e Especialização (aula 3)

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

Page 13: Banco de Dados II: Generalização e Especialização (aula 3)

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

Page 14: Banco de Dados II: Generalização e Especialização (aula 3)

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

Page 15: Banco de Dados II: Generalização e Especialização (aula 3)

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

Page 16: Banco de Dados II: Generalização e Especialização (aula 3)

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

Page 17: Banco de Dados II: Generalização e Especialização (aula 3)

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

Page 18: Banco de Dados II: Generalização e Especialização (aula 3)

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

Page 19: Banco de Dados II: Generalização e Especialização (aula 3)

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

Page 20: Banco de Dados II: Generalização e Especialização (aula 3)

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

Page 21: Banco de Dados II: Generalização e Especialização (aula 3)

<fim /> bora pra casa!