o modelo relacional - instituto de computaçãocmbm/mc536/teoria... · modelo relacional proposto...
TRANSCRIPT
![Page 1: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/1.jpg)
O Modelo Relacional
Jaudete Daltio
Slides: Prof. André Santanchè e Patrícia CavotoInstituto de Computação – UNICAMP - Agosto 2015
![Page 2: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/2.jpg)
Modelo Relacional
▪ Proposto por E. F. Codd em 1970 no artigo▫ “A Relational Model for Large Shared Data
Banks”
▪ Por que estudar ?▫ Modelo mais amplamente utilizado por SGBDs▫ Sistemas legados▫ Base para tecnologias emergentes
![Page 3: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/3.jpg)
Modelo Relacional
▪ Baseado no conceito de relação
○ Teoria relacional foi construída a partir do conceito de conjuntos matemáticos
▪ Representa o banco de dados como uma coleção
de relações
![Page 4: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/4.jpg)
Banco de Dados Relacional▪ Banco de Dados Relacional
▫ conjunto de esquemas S = {R1, R2,..., Rn}▫ conjunto de restrições de integridade RI
▪ Estado ou instância do Banco de Dados Relacional▫ conjunto de estados da relação DB = {r1, r2,..., rn}
▫ ri é instância de Ri▫ Estados de ri satisfazem restrições de integridade
(Elmasri, 2010)
![Page 5: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/5.jpg)
Relação - Teoria relacional
▪ Considerando os conjuntos S1, S2,..., Sn (não necessariamente distintos)
▪ R é uma relação destes n conjuntos se:▫ for uma relação de n tuplas em que:
◦ primeiro elemento for de S1◦ segundo elemento for de S2◦ ...
▪ R é um subconjunto do produto cartesiano S1 ×
S2 ×... × Sn
(Codd, 1970)
![Page 6: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/6.jpg)
▪ Conjunto não ordenado de tuplas▪ Tupla: conjunto ordenado de atributos
▪ Os dados em cada tupla representam certos fatos que correspondem a entidades ou relacionamentos no mundo modelado
▪ Composta por○ Esquema○ Instâncias: conjunto de tuplas
Relação
![Page 7: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/7.jpg)
Relação▪ Relação = conjunto não ordenado de tuplas
○ Não existem tuplas duplicadas
▪ Tupla = conjunto ordenado de atributos○ Valores de atributos são atômicos e
monovalorados
![Page 8: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/8.jpg)
Esquema de uma Relação
▪ Notação▫ Conjunto finito ordenado de atributos▫ Denotado por R(A1, A2, ..., An)▫ R ⇨ nome da relação▫ A1, A2, ..., An ⇨ atributos da relação
▪ Exemplo▫ Livro (ISBN, Título, Autor, Ano, Categoria)▫ Estudante(Nome, CPF,tel, end)
![Page 9: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/9.jpg)
Esquema – Domínio
▪ Conjunto de valores atômicos (indivisíveis)▪ D(Ax) – domínio do atributo Ax
▪ Um domínio tem uma definição lógica▫ D(CPF)
▪ Um domínio está associado a um tipo de dados▫ D(Título)▫ D(Ano)
![Page 10: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/10.jpg)
Esquema de uma Relação
▪ Notação Usual:▫ Nome da relação e atributos + domínios/tipos▫ Exemplo:
◦ LIVRO (ISBN: string, Título: string, Autor: string, Ano: integer, Categoria: string)
![Page 11: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/11.jpg)
EsquemaNome do Atributo
▪ Indica o significado dos valores do atributo▪ Designa o papel realizado por um domínio na
relação
![Page 12: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/12.jpg)
Relaçãoou Estado associado ao Esquema
▪ Uma relação r de um esquema R(A1, A2, ..., An)▫ também indicado por r(R)▫ conjunto de tuplas r={t1,t2,...,tn} em que
◦ ti lista ordenada de valores t=<V1, V2, ..., Vn> em que
◦ Vi é um elemento de dom(Ai) ou um valor nulo◦ t[Ai] ou t.Ai → valor do atributo i
◦ t[i] → notação alternativa (posicional)
(Elmasri, 2010)
![Page 13: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/13.jpg)
Tupla
▪ Esquema relação▪ Tupla
▫ t[Categoria] ▫ t[Ano] ▫ t[2]
ISBN Título Autor Ano Categoria
9580471444 Vidas Secas Graciliano Ramos 1938 Romance
958047950X Agosto Rubem Fonseca 1990 Romance
0554253216 Micrographia Robert Hooke 1665 Ciências
![Page 14: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/14.jpg)
Relação - Teoria relacional
▪ Considerando os conjuntos S1, S2,..., Sn (não necessariamente distintos)
▪ R é uma relação destes n conjuntos se:▫ for uma relação de n tuplas em que:
◦ primeiro elemento for de S1◦ segundo elemento for de S2◦ ...
▪ R é um subconjunto do produto cartesiano S1 ×
S2 ×... × Sn
(Codd, 1970)
![Page 15: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/15.jpg)
Termos Formais e Informais
![Page 16: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/16.jpg)
Banco de Dados Relacional▪ Banco de Dados Relacional
▫ conjunto de esquemas S = {R1, R2,..., Rn}▫ conjunto de restrições de integridade RI
▪ Estado ou instância do Banco de Dados Relacional▫ conjunto de estados da relação DB = {r1, r2,..., rn}
▫ ri é instância de Ri▫ Estados de ri satisfazem restrições de integridade
(Elmasri, 2010)
![Page 17: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/17.jpg)
Restrições de Integridade
▪ Devem ser verdadeiras para cada instância do banco de dados
▪ Restrições:▫ de domínio▫ de chave▫ de integridade de entidades▫ de integridade referencial▫ dependência de inclusão
![Page 18: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/18.jpg)
Restrições de Domínio
▪ Valores dos atributos devem ser atômicos▪ Valor do atributo:
▫ tem que ser do domínio do atributo▫ pode ser nulo (se permitido pelo atributo)
![Page 19: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/19.jpg)
Importância do Nulo
▪ Nulo indica valor:▫ desconhecido▫ não disponível▫ indefinido (não se aplica à tupla)
(Elmasri, 2010)
![Page 20: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/20.jpg)
Restrições de Chave
▪ Chave: identifica univocamente tuplas ▪ Superchave
▫ conjunto de atributos de uma relação▫ não existem duas tuplas em uma relação com a
mesma superchave▪ Chave
▫ Conjunto mínimo de atributos que que atende à “condição mínima”:◦ Se qualquer atributo for removido deixa de
ser chave
![Page 21: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/21.jpg)
ExemploSuperchave e Chave
![Page 22: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/22.jpg)
Chave Primária
▪ Chave cujos valores distinguem uma tupla das demais dentro de uma relação
▪ Identifica a tupla de forma única▪ Usada como referência a partir de outra tupla▪ Atributos da chave primária são sublinhados
▫ LIVRO (ISBN, Título, Categoria, Autor, Ano)▫ HORARIO (Cod-disc, turma, semestre, hora, sala)
![Page 23: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/23.jpg)
Integridade de Entidade
▪ Valor da chave primária não pode ser nulo▫ já que chave primária identifica tuplas
(Elmasri, 2010)
![Page 24: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/24.jpg)
Chave Estrangeira
▪ Conjunto de campos em uma relação que é usado para fazer referência à chave primária da segunda relação
▪ Funciona como um ‘ponteiro lógico’(Ramakrishman, 2003)
![Page 25: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/25.jpg)
Chave EstrangeiraPessoa usa Armário
ARMÁRIO(Código, Tamanho, Usuário)
Código Nome Telefone
1525 Asdrúbal 5432-1098
1637 Doriana 9876-5432
1701 Quincas 8765-4321
2042 Melissa 7654-3210
2111 Horácio 6543-2109
PESSOA Código Tamanho Usuário
1A simples 1637
2A duplo (nulo)
1B simples (nulo)
2B duplo 2111
ARMÁRIO
PESSOA(Código, Nome,
Telefone)
![Page 26: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/26.jpg)
Chave EstrangeiraPessoa usa Armário
ARMÁRIO(Código,
Tamanho)
Código Tamanho
1A simples
2A duplo
1B simples
2B duplo
ARMÁRIO
Código Nome Telefone
1525 Asdrúbal 5432-1098
1637 Doriana 9876-5432
1701 Quincas 8765-4321
2042 Melissa 7654-3210
2111 Horácio 6543-2109
PESSOA
PESSOA(Código, Nome,
Telefone)
USA(CodPessoa, CodArmário, Data, Hora)
CodPessoa CodArmário Data Hora
1637 1A 03/08 10:20
2111 2B 03/08 11:45
USA
![Page 27: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/27.jpg)
Integridade Referencial
▪ Tupla deve referenciar tupla existente▪ Valor de cada chave estrangeira deve
corresponder à chave primária de relação referenciada (ou ser nulo)
![Page 28: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/28.jpg)
Dependênciade inclusão
▪ Notação:○ R1[XYZ] is contained in R2[ABC]○ R1 e R2 são nomes de esquemas e XYZ, ABC
atributos associados a tais esquemas▪ Dada esta forma genérica, nada impede R1 e R2
corresponderem a um único esquema▪ O domínio de XYZ precisa ser o mesmo de ABC▪ O nome “de inclusão” significa que só posso
incluir uma tupla em r1 depois que a tupla correspondente em r2 for incluída. Da mesma forma, ao eliminar a tupla em r2, é necessário eliminar a(s) tupla(s) correspondente(s) em R1
![Page 29: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/29.jpg)
Exemplos
Pessoa (RG, nome, data-nasc)Animal (ID, raça, data-nasc)
Animal(data-nasc) ⊆ Pessoa(data-nasc)
![Page 30: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/30.jpg)
Exemplos
Pessoa (RG, nome, data-nasc) e Animal (ID, raça, data-nasc)Animal(data-nasc) ⊆ Pessoa(data-nasc)
Suponha que a relação Pessoa tenha apenas 1 pessoa nascida em 18 de agosto. Se eu eliminar esta pessoa, automaticamente todos os animais com aquela data de nascimento serão também eliminadosSe eu quiser inserir um Animal com data 24 de março, e não houver ninguém nascido nesta data, o animal não poderá ser inserido
![Page 31: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/31.jpg)
Exemplos
Note que a dependência de inclusão é a forma genérica de ligar relações, mesmo sem que haja integridade referencial
A integridade referencial é um tipo de dependência de inclusão
![Page 32: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/32.jpg)
Dependências de inclusão
Planta(Nome_cientifico, cor, altura-max, gosto, peso-medio)
Planta(altura-max) ⊆ Planta(peso-medio)
![Page 33: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/33.jpg)
Dependências de inclusão
Planta(Nome_cientifico, cor, altura-max, gosto, peso-medio)
Nada impede que se estabeleça uma dependência como
Planta(altura-max) ⊆ Planta(peso-medio)
Ou seja, dependências de inclusão podem ser definidas dentro de um único esquema.
![Page 34: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/34.jpg)
Exercício
Seja um diagrama ER que tenha os seguintes elementos
Faça o mapeamento para o esquema relacional correspondente
Escreva todas as dependências de inclusão correspondentes
![Page 35: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/35.jpg)
Exercício
![Page 36: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/36.jpg)
Exercício
![Page 37: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/37.jpg)
O que lembrar
▪ Esquema R(A1, A2, ..., An)▪ Tupla
▫ t=<V1, V2, ..., Vn>▫ Vi é um elemento de dom(Ai)
▪ Relação r(R)▫ Conjunto de tuplas r={t1,t2,...,tn}
![Page 38: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/38.jpg)
O que lembrar
▪ Restrições▫ de domínio▫ de chave▫ de integridade de entidades▫ de integridade referencial▫ dependência de inclusão
![Page 39: O Modelo Relacional - Instituto de Computaçãocmbm/MC536/teoria... · Modelo Relacional Proposto por E. F. Codd em 1970 no artigo “A Relational Model for Large Shared Data Banks”](https://reader034.vdocuments.site/reader034/viewer/2022050206/5f599536f7c2696e7666da89/html5/thumbnails/39.jpg)
O que lembrar▪ Banco de Dados Relacional
▫ conjunto de esquemas S = {R1, R2,..., Rn}▫ conjunto de restrições de integridade RI
▪ Estado do Banco de Dados Relacional▫ conjunto de estados da relação DB = {r1, r2,..., rn}
▫ ri é instância de Ri▫ Estados de ri satisfazem restrições de integridade