fundamentos de banco de dados e modelagem de dados 4... · disciplina: fundamentos de banco de...

36
Universidade Federal de Mato Grosso Instituto de Computação Pós Graduação Lato Sensu em Banco de Dados Fundamentos de Banco de Dados e Modelagem de Dados Prof. Dr. Josiel Maimone de Figueiredo [email protected] Abril - 2015

Upload: duongque

Post on 07-Jun-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Universidade Federal de Mato GrossoInstituto de ComputaçãoPós Graduação Lato Sensu em Banco de Dados

Fundamentos de Banco de Dadose

Modelagem de Dados

Prof. Dr. Josiel Maimone de [email protected]

Abril - 2015

Page 2: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Pós Graduação Lato Sensu em Banco de DadosDisciplina: Fundamentos de Banco de Dados e

Modelagem de Dados

Aula 4 Modelagem de Dados com Modelo Relacional

Abril – 2015

Page 3: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Tópicos

➔ Conceitos básicos➔ O que é Modelagem Lógica

➔ Modelo Relacional➔ Mapeamento: Conceitual para Lógica

➔ MER Modelo Relacional→

➔ Exemplos➔ Exercícios

Page 4: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

O que é Modelagem➔ Arquitetura de Banco de Dados

SGBD

Conexão

Aplicação

Visão

Conceitual

Física

Lógica

MER ou UML

Modelo Relacional

Page 5: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

O que é Modelagem

SGBD

Conexão

Aplicação

Visão

Conceitual

Física

Lógica

Para implementar os sistemas temos de

usar uma linguagem de programação

é preciso modelar a manipulação dos dados pela linguagem

Diagrama de Classes

Page 6: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

O que é Modelagem

SGBD

Conexão

Aplicação

Visão

Conceitual

Física

Lógica

Para armazenar os dados temos de

usar um SGBD é preciso modelar conforme

modelo de dados do SGBDModelo RelacionalModelo Relacional-ObjetoModelo Orientado a

Objetos

Page 7: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

O que é Modelagem

SGBD

Conexão

Aplicação

Visão

Conceitual

Física

Lógica

É preciso transformar os dados da aplicação para permitir o armazenamento

Modelo de Persistênciamapeamento entre

modelos

Page 8: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Artefatos

[Amber2001]

Page 9: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

9

Modelo Relacional

➔ Edgar Codd

➔ Pai do Modelo Relacional

➔ IBM San Jose

➔ Em 1970, Codd publicou:“A Relational Model of Data for Large Shared Data Banks.”

➔ Um modelo formal, baseado na teoria matemática dos conjuntos

Page 10: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

10

Histórico Modelo Relacional

➔ Primeiras implementações➔ System R – IBM

➔ Criou linguagem SEQUEL➔ Ingres – Berkeley

➔ Michael Stonebraker➔ Eugene Wong

➔ Principais produtos:

Page 11: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

11

Conceitos do Modelo Relacional

➔ Trabalha somente com Relações ou Tabelas

➔ O conceito de relação permite representar:➔ uma entidade

➔ um relacionamento

➔ Esquema Relacional

➔ conjunto de relações semanticamente ligadas por seus domínios de definição

Page 12: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

12

Conceitos do Modelo Relacional

➔ Uma Relação é composta por:➔ Um nome

➔ que deve ser único no mesmo esquema➔ Um conjunto de tuplas (ou registros ou linhas)

➔ que ocorrem em qualquer ordem➔ Um conjunto de atributos (ou campos ou colunas)

➔ cada atributo possui um domínio dom(a→i)

➔ cada atributo possui valor atômico➔ o número de atributos é o grau da relação➔ um subconjunto dos atributos deve possuir a

propriedade de identificar a tupla➔ atributo chave

Page 13: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

13

Conceitos do Modelo Relacional

➔ Tipos de atributos chave➔ Super-chave

➔ conjunto de atributos que identifica uma tupla.➔ Chave candidata ou secundária

➔ conjunto minimal de atributos que mantem a propriedade de identificação da tupla.

➔ Chave primária (pk)➔ chave candidata escolhida para ser utilizada

identificador.➔ Chave estrangeira (fk)

➔ um campo cujo valor referencia uma chave (primária ou secundária).

Page 14: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

14

Modelo Relacional

PILOTO Num-cad Nome CPF Endereço

João0101 123456 Recife

0035 José 234567 São Paulo

.

.

.

0987 Pedro 567890 Recife

Atributos

Tuplas

ChavePrimária

Chave Candidata

Conceitos do Modelo Relacional

Page 15: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

15

Modelo Relacional

➔ Restrições de Integridade:➔ Integridade de Entidade

➔ o valor da chave não pode ser nulo

➔ Integridade de Unicidade da Chave➔ em uma relação o valor da chave tem de ser

mantido único

k(ai)=k(a

j) i=j↔

➔ Integridade Referencial➔ uma chave estrangeira só pode assumir um valor

existente na chave primária que é referenciada

fk(a) = pk(a) ou fk(a) = nulo

Page 16: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

16

Modelo Relacional

ESTRUTURAS OPERADORES RESTRIÇÕES

RelaçãoAtributoDomínio

Chave PrimáriaChave Estrangeira

UniãoInterseçãoDiferençaSeleçãoProjeçãoJunçãoDivisão

Integridade de:DomínioEntidade

Referencial

Conceitos do Modelo Relacional

Page 17: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Mapeamento Conceitual Lógico→

Apesar de certas equivalências entre os Modelos Conceituais (MER ou UML) com o Modelo Lógico Relacional

o processo de mapeamento pode gerar, para um mesmo Modelo Conceitual, vários Modelos Lógicos

Page 18: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Mapeamento Conceitual Lógico→

Entidade

para cada entidade gera-se uma tabela equivalente

A chave da entidade é chave da tabela. Ex:

Pacienteidade

nome

Paciente = {nome, idade}

Page 19: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Mapeamento Conceitual Lógico→

Entidade para cada entidade gera-se uma tabela equivalente. a chave da entidade é chave da tabela. atributos monovalorados geram campos equivalentes.

Ex:

Pacientepeso

nome

Paciente = {nome, peso}

Page 20: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Mapeamento Conceitual Lógico→

Paciente

nome

Paciente = {nome, tel1,tel2, tel3}

atributo2telefone

Entidade atributos multivalorados

1º caso – gera-se um campo para cada ocorrência2º caso – gera-se uma tabela para o campo

Ex:

Paciente = {nome}Telefone = {nome, tel}

Page 21: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Mapeamento Conceitual Lógico→

Paciente = {nome, peso, rua,bairro,cidade, uf}

Entidade atributos compostos

1º caso – gera-se um campo para cada subatributo2º caso – gera-se uma tabela para o campo

Ex:

Paciente = {nome, peso}Endereço = {nome, rua,bairro,cidade, uf}

Paciente

rua

bairroendereço

cidade

uf

peso

nome

Page 22: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Mapeamento Conceitual Lógico→

Paciente = {nome, dataNascimento}

Entidade atributos derivados

caso o processamento para gerar o valor do atributo seja complexo,

• então seu valor é armazenado em um campo equivalente

• senão o valor é obtido em tempo de execução. Ex:

Pacienteidade

dataNascimento

Page 23: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Mapeamento Conceitual Lógico→

Relacionamento O mapeamento depende do tipo da cardinalidade ou

multiplicidade.

Page 24: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Mapeamento Conceitual Lógico→

Disciplina= {num, nome}

Relacionamento Muitos para Muitos

Gera-se uma nova tabela que equivale ao relacionamento e sua chave é composta pelas chaves das entidades.

Ex:

DisciplinaAluno CursouMN

cod numnome nome

Aluno = {cod, nome}

Cursou= {numDisciplina, codAluno}

Page 25: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Mapeamento Conceitual Lógico→

Curso= {num, nome}

Relacionamento Um para Muitos

gera-se uma chave estrangeira na tabela que equivale ao lado 1.

Ex:

CursoAluno Faz1N

cod numnome nome

Aluno = {cod, nome, curso}

Page 26: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Mapeamento Conceitual Lógico→

Carro= {placa, modelo,dono}

Relacionamento Um para Um

gera-se uma chave estrangeira em alguma das tabelas• sugere-se

• a que possui menor cardinalidade• a que possui participação total

Ex:

CarroPessoa Possui11

cod placanome modelo

Pessoa = {cod, nome}

Page 27: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Mapeamento Conceitual Lógico→

Disciplina= {num, nome}

Relacionamento➔ Quando possui atributos, eles acompanham a chave

estrangeira

Ex:

DisciplinaAluno CursouMN

cod numnome nome

Aluno = {cod, nome}

Cursou= {numDisciplina, codAluno, nota, freq}

nota freq

Page 28: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Mapeamento Conceitual Lógico→

Compra= {codCliente, codProduto, codFuncionario}

Relacionamento grau > 2 Gera-se uma nova tabela cuja chave é composta pelas

chaves das entidades participantes do relacionamento

Ex:

FuncionárioCliente compra

Produto

Page 29: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Mapeamento Conceitual Lógico→

➔ Entidade Fraca

➔ A tabela equivalente à entidade fraca tem a chave composta pela chave dela mesma mais a chave da entidade forte.

➔ Ex:

TurmaDisciplina possui Turmapossui

Turma= {num, codDisciplina, hora}

num hora

Page 30: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Mapeamento Conceitual Lógico→

FuncionárioCliente

Pessoa

➔ Generalização / Especialização

➔ 1º caso:➔ cria-se uma tabela para cada entidade.➔ a chave das especializações é uma chave

estrangeira da generalização.➔ Ex:

dataNasc

cod

salario

nome

Cliente= {cod, dataNasc}

Pessoa = {cod, nome}

Funcionario= {cod, salario}

Page 31: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Mapeamento Conceitual Lógico→

➔ Generalização / Especialização

➔ 2º caso:➔ cria-se uma tabela para cada especialização.➔ todos os atributos da generalização são replicados

nas especializações.➔ Ex:

FuncionárioCliente

Pessoa

dataNasc

cod

salario

nome

Cliente= {cod, nome, dataNasc}

Funcionario= {cod, nome, salario}

Page 32: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Mapeamento Conceitual Lógico→

➔ Generalização / Especialização

➔ 3º caso:➔ cria-se uma tabela para a generalização com

atributos booleanos representando as instâncias das especializações.

➔ Ex:

FuncionárioCliente

Pessoa

dataNasc

cod

salario

nome

Pessoa = {cod, nome, dataNasc, salario, cliente, funcionario}

Page 33: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Mapeamento Conceitual Lógico→

➔ Generalização / Especialização

➔ 4º caso:➔ cria-se uma tabela para a generalização com um

atributo informando o tipo da instância.➔ Ex:

FuncionárioCliente

Pessoa

dataNasc

cod

salario

nome

Pessoa = {cod, nome, dataNasc, salario, tipo}

Page 34: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Mapeamento Conceitual Lógico→

➔ Abstração de Agregação➔ 1º caso – os atributos do relacionamento podem ser

levados para a agregação➔ O relacionamento não é mapeado➔ Cria-se uma nova tabela cuja chave é composta pelas

chaves das entidades

MédicoPaciente atende

Consulta

data

Consulta= {codPaciente, codMedico, data}

Page 35: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Mapeamento Conceitual Lógico→

➔ Abstração de Agregação➔ 2º caso – os atributos do relacionamento não podem ser

levados para a agregação➔ O relacionamento é mapeado também➔ Cria-se uma nova tabela cuja chave é composta pelas

chaves das entidades

DisciplinaProfessor ministra

Aula

data

Aula= {codProfessor, codDisciplina, data}Ministra = {codProfessor, codDisciplina, livroTexto}

livroTexto

Page 36: Fundamentos de Banco de Dados e Modelagem de Dados 4... · Disciplina: Fundamentos de Banco de Dados e Modelagem de Dados Aula 4 ... (MER ou UML) com o Modelo Lógico Relacional o

Exercício1) Para o mapeamento da Generalização para o Relacional comente:

➔ todos os mapeamentos servem para todos os tipos de cobertura?

➔ Qual tem melhor desempenho?

2) Para as tabelas a seguir gere um possível MER

Cliente = {códigoCliente, nomeCliente, telefone,numCarro}

Funcionário={código,nome,especialidade,telefone}

Conserto={codFuncionário,codCarro,dataConserto,descrição}

Carro={códigoCarro,modelo,anoFabricação,fabricante}

UsouPeça={codFunc,codCarro,dataConserto, codPeça, qtde}

Peça = {cod, nome, fabricante}