Modelo Relacional
-
Upload
kyra-chavez -
Category
Documents
-
view
27 -
download
0
description
Transcript of Modelo Relacional
Introdução à Manipulação de Dados 1
Modelo Relacional
Uma base de dados é
uma colecção de uma ou mais relações com nomes distintos
Uma relação é uma tabela com linhas e colunas
Introdução à Manipulação de Dados 2
Esquema da Relação (tabela)
Descreve as colunas da tabela
Especifica o nome da relação; o nome de cada campo (coluna ou atributo); o domínio de cada campo
tipo de dados (inteiro, texto, ...) tamanho (nº caractéres)
Introdução à Manipulação de Dados 3
Instância da Relação
É um conjunto de tuplos ou registos
Cada tuplo tem o mesmo número de campos que o esquema da relação
Pode ser vista como uma tabela onde cada tuplo é uma linha e todas as linhas têm o mesmo número de campos
Relação = Instância da Relação
Introdução à Manipulação de Dados 4
Exemplo
id nome data_nasc telefone
1236 Luís 12/6/69 213458791
3728 Maria 4/10/72 266748393
2867 Rute 30/4/70 289821346
3462 João 4/10/72 212914038
Campos (atributos ou colunas)
nomes dos campos
Tuplos ou registos
Tabela
Introdução à Manipulação de Dados 5
Características
Uma relação é um conjunto de tuplos únicos
não existem duas linhas iguais
a ordem de apresentação das linhas não é importante
Restrições de domínio os valores que aparecem em cada coluna devem
respeitar o domínio definido no esquema
Definições Grau = número de atributos Cardinalidade = número de tuplos
Introdução à Manipulação de Dados 6
Esquema de tabelas
DEA
Esquemade
tabelas
Desenho
Introdução à Manipulação de Dados 7
Esquema de tabelas (ETb): regras O esquema de tabelas (ETb) define as tabelas relacionais,
atributos e o acesso aos dados (chaves).
Cada entidade e associação do DEA poderia originar uma tabela, mas assim obteríamos um número desnecessariamente grande de tabelas.
O objectivo é optimizar o número de tabelas, garantindo que não há atributos com valores indefinidos.
nome tabela
chave primária
atributosdescritores
chaves externas
atributos identificadores
chave primária de outra tabela
Introdução à Manipulação de Dados 8
ETb: associação 1:1Caso 1
Associação 1:1 obrigatória nos dois sentidos.
Uma tabela
Livro
código_livro
títuloeditoraanoarmárioprateleiratipo
Livro Posição arquivo1 1
arquivado
Livro = @código_livro + título + editora + anoPosição_arquivo = @código_arquivo + tipocódigo_arquivo = armário + prateleira
Introdução à Manipulação de Dados 9
ETb: associação 1:1 Uma associação 1:1 obrigatória nos dois sentidos pode originar
duas tabelas, dependendo da importância de cada objecto no sistema.
Duas tabelas, cada uma com uma chave externa.
Condutornúmero_condutor
nomemoradasalário
Condutor Camião1 1
conduz
Condutor = @número_condutor + nome + morada + salárioCamião = @matrícula + marca + carga
matrícula
Camião
marcacarga
matrícula
número_condutor
Introdução à Manipulação de Dados 10
ETb: associação 1:1 Uma associação 1:1 obrigatória só num sentido.
Duas tabelas e uma chave externa na tabela correspondente à entidade obrigatória na associação.
Apartamentocódigo_apartamento
áreanúmero_divisões
Apartamento Garagem1 1
tem
Apartamento = @código_apartamento + área + número_divisõesGaragem = @código_garagem + número_lugares + área
Garagem
Nota: os atributos não podem ter valores nulos.
código_apartamento
código_garagem
número_lugaresárea
Introdução à Manipulação de Dados 11
ETb: associação 1:1 Uma associação 1:1 opcional nos dois sentidos.
Três tabelas, uma por cada entidade e uma para a associação.
Apartamentocódigo_apartamento
áreanúmero_divisões
Apartamento Garagem1 1
tem
Apartamento = @código_apartamento + área + número_divisõesGaragem = @código_garagem + número_lugares + área
Tem (propriedade)
Há garagens que pertencem a pessoas sem apartamento.
Garagem
número_lugaresárea
código_garagemcódigo_apartamentocódigo_garagem
Introdução à Manipulação de Dados 12
ETb: associação 1:NCaso 2
Uma associação 1:N obrigatória nos dois sentidos.
Duas tabelas. A tabela de baixo na hierarquia fica com a chave da tabela de cima na hierarquia.
Clientenúmero_cliente
nomemorada
Cliente Apólice1 N
subscreve
Cliente = @número_cliente + nome+ moradaApólice = @número_apólice + capital + prémio + unidade_risco
Apólice
capitalprémiounidade_risco
número_apólice
número_cliente
Introdução à Manipulação de Dados 13
ETb: associação 1:N Uma associação 1:N obrigatória só num sentido.
Duas tabelas. A tabela subalterna na hierarquia fica com chave externa.
Clientenúmero_cliente
nomemorada
Cliente Aluguer1 N
efectua
Cliente = @número_cliente + nome+ moradaAluguer = @número_aluguer + data + situação
Aluguer
datasituação
número_aluguer
número_cliente
Introdução à Manipulação de Dados 14
ETb: associação 1:N Uma associação 1:N obrigatória no outro sentido.
Três tabelas. Uma para cada entidade e uma para a associação.
Departamentonúmero_departamento
nomelocalização
Departamento Empregado1 N
trabalha
Departamento = @número_departamento + nome + localizaçãoEmpregado = @número_empregado + nome + morada + salário
Empregado
número_departamentonúmero_empregado
Trabalhanúmero_empregado
nomemoradasalário
Introdução à Manipulação de Dados 15
ETb: associação 1:N Uma associação 1:N opcional nos dois sentidos.
Três tabelas.
Enfermaria Paciente1 N
contém
Enfermaria = @número_enfermaria + tipo + localPaciente = @código_paciente + nome + morada + ...
Enfermarianúmero_enfermaria
tipolocal
número_enfermariacódigo_paciente
Contém Paciente
código_paciente
nomemorada...
Um paciente pode ser interno ou externo.
Introdução à Manipulação de Dados 16
ETb: associação N:MCaso 3
Uma associação N:M qualquer que seja o grau mínimo.
Três tabelas, uma por cada entidade e uma cuja chave é a concatenação das chaves das entidades envolvidas na associação.
Produto FornecedorN M
fornece
Produto = @código_produto + nome + quantidadeFornecedor = @número_fornecedor + nome +morada + telefone + fax
Produtocódigo_produto
nomequantidade
código_produtonúmero_fornecedor
Fornece Fornecedor
número_fornecedornomemoradatelefonefax
Introdução à Manipulação de Dados 17
ETb: entidade associativaCaso 5
Entidade associativa, qualquer que seja o grau da associação.
Três tabelas.
Produto = @código_produto + descrição + peso + corEncomenda = @número_encomenda + data_emissão +
data_recepçãoPedido = @número_pedido + quantidade_pedidanúmero_pedido = número_encomenda + código_produto
Encomendanúmero_encomenda
data_emissãodata_recepção
número_encomendacódigo_produto
Pedido Produto
código_produto
descriçãopesocor
quantidade_pedida
Encomenda
Pedido
ProdutoN M
Introdução à Manipulação de Dados 18
ETb: entidade associativaOutro exemplo:
Médico_família = @número_médico + nome + morada + especialidade
Doente = @número_doente + nome + morada + regimeTrata = @código_tratamento + data_tratamentocódigo_tratamento = número_médico + número_doente
Médico famílianúmero_médico
nomemoradaespecialidade
número_médiconúmero_doente
Trata Doente
número_doente
nomemoradaregime
data_tratamento
Médico família
Trata
DoenteN1
Introdução à Manipulação de Dados 19
ETb: associação unáriaCaso 6
Associação unária de 1:1
Duas tabelas.
Pessoa = @número_BI + nome + morada + altura
Pessoanúmero_BI
nomemoradaaltura
número_BI_esposanúmero_BI_marido
Casamento
Pessoa
é casado(esposa)
(marido)
Uma (instância de) pessoa pode desempenhar um de dois papéis: esposa ou marido.
1
1
Introdução à Manipulação de Dados 20
ETb: associação unáriaCaso 7
Associação unária de 1:N
Origina uma tabela.
Empregado = @número_empregado + nome + morada + categoria
Empregadonúmero_empregado
nomemoradacategorianúmero_orientador
Empregado
orienta(orientador)
(orientando)
O empregado senior “orienta-se” a si próprio.
N
1
Introdução à Manipulação de Dados 21
Exemplo
BI
nomemoradadata_nasctelefone
Cliente
n_quarto
n_camassituaçãocategoriapreçodescrição
Quarto
n_reserva
nomedias_reservadosdata_chegadahora_chegada
Reserva
n_quartoBI
n_factura
datavalor_total
n_reservaBI
Factura
n_pedido
datahora
n_quarto
Pedido despertar