MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados...
Transcript of MATA60 BANCO DE DADOSformas.ufba.br/dclaro/mata60/Aula 5 - Modelo Relacional.pdf · Modelo de dados...
MATA60 – BANCO DE DADOS Aula 5- Modelo Relacional
Prof. Daniela Barreiro Claro
Histórico
Modelo em Redes e Hierárquico
Modelo Relacional
Restrições de Integridade
Chaves
Agenda
2 de X FORMAS - UFBA
Sistema de Arquivos
BD em Rede
BD Hierárquico
BD Relacional
Histórico dos Modelos
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
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
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
Histórico dos Modelos
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
Modelo Hierárquico
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
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
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
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
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
Modelo em Redes
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
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
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
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
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
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)
Relação r(R)
Conjunto de tuplas: r = {t1,t2, ..., tm}
Cada tupla é uma lista ordenada de valores: t = <v1,v2,
..., vn>
Modelo Relacional
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
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
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
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
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
Esquema de um BD Relacional
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
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
Restrições de integridade referencial
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
Instância de um BD Relacional
1
4
5
5
5
Houston
Instância de um BD Relacional
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
Restrições de integridade referencial com opções de remoção
n
p
p
b b
b b
b
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)
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)
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
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
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
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
Facebook: /formasresearchgroup Twitter: /formasresearch
Semantic Formalisms and Applications Research Group
FORMAS - UFBA
Formas.ufba.br/dclaro
Disciplina: MATA60