Modelo Relacional

21
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

description

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. Esquema da Relação (tabela). Descreve as colunas da tabela Especifica o nome da relação; o nome de cada campo (coluna ou atributo); - PowerPoint PPT Presentation

Transcript of Modelo Relacional

Page 1: 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

Page 2: Modelo Relacional

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)

Page 3: Modelo Relacional

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

Page 4: Modelo Relacional

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

Page 5: Modelo Relacional

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

Page 6: Modelo Relacional

Introdução à Manipulação de Dados 6

Esquema de tabelas

DEA

Esquemade

tabelas

Desenho

Page 7: Modelo Relacional

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

Page 8: Modelo Relacional

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

Page 9: Modelo Relacional

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

Page 10: Modelo Relacional

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

Page 11: Modelo Relacional

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

Page 12: Modelo Relacional

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

Page 13: Modelo Relacional

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

Page 14: Modelo Relacional

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

Page 15: Modelo Relacional

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.

Page 16: Modelo Relacional

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

Page 17: Modelo Relacional

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

Page 18: Modelo Relacional

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

Page 19: Modelo Relacional

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

Page 20: Modelo Relacional

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

Page 21: Modelo Relacional

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