43
MATA60 BANCO DE DADOS Aula 5- Modelo Relacional Prof. Daniela Barreiro Claro

MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

MATA60 – BANCO DE DADOS Aula 5- Modelo Relacional

Prof. Daniela Barreiro Claro

Page 2: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Histórico

Modelo em Redes e Hierárquico

Modelo Relacional

Restrições de Integridade

Chaves

Agenda

2 de X FORMAS - UFBA

Page 3: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Sistema de Arquivos

BD em Rede

BD Hierárquico

BD Relacional

Histórico dos Modelos

Page 4: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um banco de dados, isto é, dados, relacionamentos, semântica e restrições; Esquema – Descrição de um BD; Metadados – Conjunto de esquemas e restrições de um BD;

Instância - É o conjunto de dados armazenados no BD em um determinado instante (base de dados).

Histórico dos Modelos

Page 5: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Modelos conceituais (modelos semânticos) – Descrevem a realidade observada – Exemplos: Modelo E-R , diagrama de classes UML Modelos lógicos – Também chamados de modelos de implementação. – Nível de abstração inferior ao modelo conceitual. – Podem ser classificados como: . modelos lógicos baseados em objetos; . modelos lógicos baseados em registros; – O banco de dados ZIM é o único modelo lógico associado ao modelo conceitual E-R;

Histórico dos Modelos

Page 6: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Modelo de rede – Baseado em redes Modelo baseado em listas invertidas. Exemplo: ADABAS Modelo hierárquico – Baseado na estrutura de árvore Modelo Relacional - Introduzido por Codd em 1970. A estrutura de dados é uma relação Modelos OO – Exemplo: O2 e Jasmine Modelos Objeto-Relacional - Exemplo: Oracle 8i

Histórico dos Modelos

Page 7: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Histórico dos Modelos

Page 8: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Modelo Hierárquico

Desenvolvido na década de 60 para gerir

grande quantidade de dados em projetos de

manufatura

Representada por uma árvore de ponta cabeça

Segmento é análogo ao registro

Conjunto de relacionamentos 1-para-N entre os

segmentos

Page 9: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Modelo Hierárquico

Page 10: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Base para os modelos atuais

Desvantagens do modelo hierárquico:

Implementação complexa

Difícil de gerenciar

Falta independência estrutural

Sem padrões de implementação

Modelo Hierárquico

Page 11: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Exemplo de um BD Hierárquico

21 Pessoal 142 25 Financeiro 143 28 Técnico 144

032 J Silva 380

112 R Pinto 390 121 V Simão 905

130 J Neves 640

092 R Silva 480

089 C Melo 520 074 M Reis 400

Departamento

Empregado

Page 12: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Desenvolvido para representar relacionamentos complexos

de dados de modo mais eficaz.

Aumenta desempenho do banco de dados

Impõe um padrão de banco de dados

Conference on Data Systems Languages (CODASYL) criou o

DBTG

Database Task Group (DBTG): Ambiente definido para

facilitar o desenvolvimento de banco de dados

Modelo em Redes

Page 13: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Esquema

Organização conceitual de todo o banco de dados na

visão do administrador.

Sub-esquema

Visão parcial dos dados pelos programas

Linguagem de gestão de dados (DML)

Define o ambiente em que os dados são manipulados

Modelo em Redes

Page 14: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Possui similiaridades com o modelo

Registro pode ter mais de um pai

Coleção de registros usando o tipo de relacionamento 1:N

Possui dois tipos de registros

Proprietário

Equivalente aos pais no modelo hierárquico

Membro

Equivalente aos filhos no modelo hierárquico

Modelo em Redes

Page 15: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Modelo em Redes

Page 16: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Desvantagens do modelo Rede

Complexo

Falta de ferramenta de consultas ad hoc

Mudança estrutural no banco de dados pode gerar

problemas em todos os programas.

Modelo em Redes

Page 17: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Exemplo de um BD de Rede

21 Pessoal 142

25 Financeiro 143

28 Técnico 144

032 J Silva 380

112 R Pinto 390

121 V Simão 905

130 J Neves 640

092 R Silva 480

089 C Melo 520

074 M Reis 400

Departamento

Empregado

Page 18: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Desenvolvido por E. F. Codd (IBM) em1970

Tabela (relações)

Matriz consiste de linha/coluna.

Cada linha na relação é chamada de tupla.

Considerado impraticável em 1970.

Modelo conceitualmente simples, mas usa

intensivamente o processamento do computador.

Modelo Relacional

Page 19: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Modelo Relacional

O modelo relacional representa um banco de dados como um conjunto de relações

Informalmente, uma relação é uma tabela de valores, onde cada linha representa uma coleção de dados relacionados

Cada linha de uma tabela representa um “fato” que tipicamente corresponde a uma entidade ou relacionamento do mundo real

Page 20: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Modelo Relacional

Representação do BD como uma coleção de RELAÇÕES

Entidade(tipo Entidade)=relação

Instância de uma entidade (entidades)=tupla

Empregado CPF NOME TEL Endereço

859 Daniela 3241 Rua I

675 Pedro 3455 Rua H

Relação atributos

tup

las

Page 21: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Modelo Relacional

Esquema de relação

Descreve a relação

R(A1,A2, ...,An), onde:

R Nome da relação

Ai Nome de um atributo

n Grau da relação

Cada Atributo Ai é o nome de um papel desempenhado por algum domínio D no Esquema da relação R

Exemplo:

Estudante(matricula, nome, telresidencial, endereço, idade, CR)

Page 22: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Relação r(R)

Conjunto de tuplas: r = {t1,t2, ..., tm}

Cada tupla é uma lista ordenada de valores: t = <v1,v2,

..., vn>

Modelo Relacional

Page 23: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

A Relação

As tuplas de uma relação não são ordenadas

Registros em um arquivo são ordenados de acordo com

a posição em que são armazenados no disco

Daniela Claro 305-61-2425 373-1616 Rua H, 3456 32836636 null 9.50

Page 24: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

A Relação

Uma tupla é uma lista ordenada de valores

O valor de cada atributo em uma tupla é atômico Atributos compostos e multivalorados não são permitidos

O valor especial null é utilizado para representar valores não conhecidos ou não

aplicáveis a uma determinada tupla

Page 25: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Restrições de Integridade

Restrições de domínio

Especificam que o valor de cada atributo A de uma relação deve ser um valor

atômico do domínio dom(A)

Restrições de chave

Por definição todas as tuplas são distintas

Um conjunto de atributos SK de um esquema de relação R tal que, para duas tuplas

quaisquer t1 e t2 de r(R), t1[SK] t2[SK] é uma super-chave de R

Super-chave default: todos os atributos

Uma chave de R é uma super-chave com a propriedade adicional de que nenhum

de seus subconjuntos também seja uma super-chave de R

{SSN,Name,Age} = super-chave; {SSN} = chave

Page 26: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Restrições de Integridade

Restrições de chave

Um esquema de relação pode ter mais de uma chave chaves candidatas

Dentre as chaves candidatas de um esquema de relação, uma delas é

indicada como chave primária e as demais constituem as chaves

alternativas

Page 27: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Restrições de Integridade

Restrições em valores null

Especifica se a um atributo é permitido ter valores null

Exemplo:

Todo Estudante deve ter um nome válido, não-null

Page 28: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Esquema de um BD Relacional

Page 29: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Restrições de Integridade

Além das restrições de domínio e de chave as

seguintes restrições de integridade são parte do

modelo relacional:

Restrição de integridade de entidade

Nenhum componente de uma chave primária pode ser nulo

Page 30: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Restrições de Integridade

Restrição de integridade referencial Usada para manter a consistência entre tuplas de duas relações

Uma tupla em uma relação que se refere a outra relação deve referenciar uma tupla existente nesta outra relação

Aparecem devido aos relacionamentos entre entidades

Seja FK um conjunto de atributos de um esquema de relação R1 definido sobre o mesmo domínio dos atributos da chave primária PK de outro esquema R2. Então, para qualquer tupla t1 de R1:

t1[FK] = t2[PK], onde t2 é uma tupla de R2 ou

t1[FK] é nulo

Page 31: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Restrições de integridade referencial

Page 32: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

A restrição de integridade referencial pode ser expressa pela notação

R1[FK] R2[PK],

onde PK é a chave primária de R2 e FK é a chave estrangeira de R1

Exemplos:

EMPLOYEE[DNO] DEPARTMENT[DNUMBER]

WORKS_ON[ESSN] EMPLOYEE[SSN]

WORKS_ON[PNO] PROJECT[PNUMBER]

Restrições de Integridade

Page 33: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Instância de um BD Relacional

1

4

5

5

5

Houston

Page 34: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Instância de um BD Relacional

Page 35: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Opções de Exclusão da RIR

A cada RIR R1[FK] R2[PK] é possível associar uma opção de remoção que

especifica como a remoção de uma tupla de R2 é executada em relação a R1

As opções de remoção possíveis são:

bloqueio

propagação

substituição por nulos

Notação:

R1[FK] R2[PK],

onde op {b, p, n}

op

Page 36: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Restrições de integridade referencial com opções de remoção

n

p

p

b b

b b

b

Page 37: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Operações sobre Relações

As operações sobre um BD relacional podem ser

classificadas em:

Operações de recuperação (consulta)

Operações de atualização

Operações de atualização (sobre tuplas):

Inserção (insert)

Remoção (delete)

Modificação (modify)

Page 38: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Operações sobre Relações

Operações de atualização

Restrições de integridade não podem ser violadas

Inserção

Restrição de Dominio: valor fora do dominio

Restrição de Chave: valor ja’ existe

Restrição de integridade de entidade: se chave for null

Restrição de integridade referencial: se chave estrangeira referencia tupla

inexistente

Ação default: rejeitar inserção (com explicação)

Page 39: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Operações sobre Relações

Operações de atualização

Restrições de integridade não podem ser violadas

Remoção

Restrição de integridade referencial: tupla deletada é

referenciada por chaves estrangeiras

Ação default: rejeitar inserção (com explicação)

Segunda opção: propagar remoção de tuplas que violem uma

restrição de integridade referencial

Terceira Opção: Modificar o valor da chave estrangeira para nulo

Page 40: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Operações sobre Relações

Operações de atualização

Restrições de integridade não podem ser violadas

Modificação

Modificar o valor de um atributo que nao e’ chave primaria ou

estrangeira não causa problemas (se o valor for do domínio, e, se

for null, que este valor seja permitido)

Modificar a chave primaria e’ igual a remover uma tupla e inserir

outra

Modificar chave estrangeira: SGBD deve verificar se novo valor do

atributo referencia tupla existente

Page 41: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

41

Resumindo...

Restrição de Domínio

O valor de cada atributo deve ser um valor atômico

Restrição de chaves e valores nulos

Duas tuplas distintas não podem ter valores idênticos para todos os

atributos da chave

Chave Primária=atributo-chave, Chaves candidatas

Se um atributo tiver que ter um valor ele será definido como NOT NULL

Restrição de Integridade de Entidade

Nenhum valor de chave primária pode ser NULL

Page 42: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

42

Resumindo...

Restrição de Integridade Referencial

É classificada entre duas relações

Mantém a consistência entre tuplas nas duas relações

Cada tupla em uma relação que faz referência a outra

relação deve-se referir a uma tupla existente nessa

relação

Chave estrangeira é o atributo da relação R1 que se

refere à chave primaria de R2

Q Prof. Daniela Barreiro Claro

Page 43: MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados – uma coleção de conceitos que são usados para descrever a estrutura de um

Facebook: /formasresearchgroup Twitter: /formasresearch

Semantic Formalisms and Applications Research Group

FORMAS - UFBA

Formas.ufba.br/dclaro

Disciplina: MATA60