introdução a banco de dados - leorodriguesbdo.com.br 07 - modelo relacional.pdf · calculo...

33
Prof.: Leonardo Rodrigues Ribeiro Disciplina: Banco de Dados IFBA – Campus Brumado *

Upload: others

Post on 06-Jun-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

Prof.: Leonardo Rodrigues Ribeiro

Disciplina: Banco de Dados

IFBA – Campus Brumado

*

Page 2: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*O modelo relacional foi proposto por Edgar Codd em

1970, como uma nova maneira de representação de

dados.

*Codd mostrou que uma visão relacional dos dados

permite a sua descrição em uma maneira natural e

simples.

*Em complementação, apresentou bases para tratar

problemas como redundância e consistência.

*Codd definiu uma álgebra relacional e provou, por meio

de sua equivalência com o cálculo relacional, que ela era

relacionalmente completa, dando fundamentação

teórica ao modelo relacional.

Page 3: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*O modelo relacional mostrou ser uma excelente opção,

superando os modelos mais usados àquela época: o de

redes e o hierárquico.

*A maior vantagem do modelo relacional sobre seus

antecessores:

*A representação simples dos dados

*A facilidade com que consultas complexas podem ser

expressas.

Page 4: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

* Em meados dos anos 70 foram desenvolvidos os primeiros sistemas

relacionais em projetos da IBM, como o Sistema-R, e da Universidade de

Berkeley (Califórnia), que deu origem ao sistema Ingres.

* O uso deste modelo intensificou-se e a partir dos anos 80, o modelo

relacional passou a ser dominante na área de banco de dados

* Vários são os fornecedores atuais, dentre os quais podemos citar IBM,

Microsoft, Sybase e Oracle, este último uma empresa que começou

naquela época e que hoje é provavelmente a líder do mercado de banco

de dados relacionais.

* Existem também sistemas como FireBird, MySQL e PostGres, que com a

nova tendência de software livre, vêm sendo utilizados por várias

empresas.

* Ainda existem sistemas legados mantidos nos modelos antigos, como o IMS

DBMS da IBM no modelo hierárquico e o IDS e IDMS no modelo de redes.

* Há também uma nova abordagem que vem sendo bastante explorada: o

modelo orientado a objetos, que tem com exemplos o Objectstore e o

Versant, o DB4o .

Page 5: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*No modelo relacional a principal construção para

representação dos dados é a RELAÇÃO:

*Uma tabela com linhas não ordenadas e colunas.

*Uma relação consiste de um esquema e de uma

instância.

*O esquema de uma relação é inváriavel ao longo do

tempo, sendo modificado apenas por comandos

específicos.

*Um exemplo de esquema de relação é:

Estudante (id: string, nome: string, login: string, idade:

integer, nota: real).

Nome da relaçãoAtributo ou campo da relação Domínio

Page 6: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*A instância de uma relação é o conjunto de linhas,

também denominadas tuplas ou registros, distintas

entre si, que compõem a relação em um dado momento.

*Uma instância é variável.

*A instância de uma relação deve seguir sempre o seu

respectivo esquema, respeitando o número de atributos

definidos, bem como os seus domínios.

Page 7: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*Exemplo de uma instância da relação Estudante.

*O número de tuplas que uma dada instância possui denomina-se cardinalidade da relação e o número de atributos é o seu grau.

*A instância de relação Estudante tem cardinalidade 3 e grau 5. Note que a cardinalidade é variável, mas o grau não.

*Um banco de dados relacional é um conjunto de uma ou mais relações com nomes distintos. O esquema do banco de dados relacional é a coleção dos esquemas de cada relação que compõe o banco de dados.

id nome login idade nota

112221 Maria maria@if 18 7.6

112222 João joso@if 18 8.0

112223 José jose@if 19 9.2

Tupla

Page 8: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*Álgebra Relacional é uma linguagem de consulta formal,

porém procedimental, ou seja, o usuário dá as instruções

ao sistema para que o mesmo realize uma sequência de

operações na base de dados para calcular o resultado

desejado.

*Álgebra Relacional

*Operacional

*Calculo Relacional

*Declarativo

Quero um misto quente

Quero duas fatias de

pão de forma,

recheadas com uma

fatia de queijo e

uma fatia de presunto.

Tudo isto bem

tostado.

Page 9: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*A álgebra relacional é uma forma de cálculo

sobre conjuntos ou relações.

Page 10: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*SELEÇÃO

*Seleciona tuplas que satisfaçam à condição de

seleção.

Page 11: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*SELEÇÃO

Page 12: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*PROJEÇÃO

*Projeta as colunas solicitadas, ou seja, gera novas

relações excluindo alguns atributos.

*Obs.: linhas duplicadas são eliminadas

Page 13: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*PROJEÇÃO

Page 14: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*PROJEÇÃO

Page 15: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*PRODUTO CARTESIANO X

*Retorna todas as combinações de tuplas de duas Relações.

* As relações não precisam ter atributos comuns.

*Tuplas da relação resultante

* Todas as combinações de tuplas possíveis entre as relações participantes.

Page 16: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*PRODUTO CARTESIANO X

Page 17: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*PRODUTO CARTESIANO X

Page 18: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*PRODUTO CARTESIANO X

Page 19: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*UNIÃO

*Retorna a união das tuplas de duas relações com eliminação automática de duplicatas.

*Produz como resultado uma Relação que contém todas as linhas da primeira Relação seguidas de todas as linhas da segunda tabela.

*Obs: As relações devem possuir o mesmo número de atributos.

Page 20: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*UNIÃO

*Resultado de Alunos Professores.

Page 21: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

**DIFERENÇA

*Retorna as tuplas presentes em R1 e ausentes em R2.

*Obs.: É uma operação que requer como operandos duas relações

união-compatíveis, ou seja, estruturalmente idênticas.

Page 22: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

** INTERSEÇÃO

*Retorna as tuplas comuns a R1 e R2.

*Esta é uma operação adicional que produz como resultado uma tabela que contém, sem repetições, todos os elementos que são comuns às duas tabelas fornecidas como operandos. As tabelas devem ser união-compatíveis.

Page 23: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*Um bom SGBD deve evitar a entrada de informação

incorreta ou inconsistente em sua base de dados,

garantindo, com isso, a qualidade da informação

inserida.

*Uma restrição de integridade (RI) é uma condição

especificada no esquema da base de dados para

restringir a informação a ser armazenada.

*Se uma instância da base de dados satisfaz todas as

RIs especificadas, então ela é uma instância válida.

*Um bom SGBD garante as RIs, não permitindo a

existência de instâncias inválidas.

Page 24: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*As RI são especificadas e conferidas em 2 momentos

diferentes:

*especificação da RI: se dá na definição do esquema da

base de dados pelo usuário ou pelo administrador da

base de dados (DBA);

*conferência das RIs: é feita pelo banco de dados toda

vez que uma relação é modificada por uma aplicação

sendo executada.

*O modelo relacional permite a especificação de vários

tipos de RIs.

Page 25: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*As restrições de chave serve para garantir que as

tuplas de uma relação sejam únicas.

*Chave Candidata – é um conjunto mínimo de atributos

que devem ter valores diferentes em todas as tuplas

de uma instância da relação.

*requisitos:

*não podem existir 2 tuplas diferentes com os mesmos

valores para estes atributos, ou seja, a chave identifica

unicamente qualquer tupla da relaçãoválida;

*ao retirar-se qualquer atributo componente da chave,

ela deixa de identificar unicamente as tuplas.

Page 26: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*Pela definição de relação, é sempre garantida a

existência de uma chave. Entretanto, cada relação

pode conter várias chaves candidatas.

*Cabe ao DBA escolher dentre elas aquela que será a

chave primária.

*Por exemplo, na relação Estudantes, se nome fosse

escolhido como chave primária, não seria possível a

existência de estudantes homônimos, o que talvez não

refletisse corretamente os requisitos do sistema.

*A chave primária não pode assumir valor null.

Page 27: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*A especificação de uma chave e de uma chave

primária em SQL é feita respectivamente, pelos

comandos UNIQUE e PRIMARY KEY.

*O uso de CONSTRAINT no comando serve para nomear

uma restrição, facilitando sua identificação para

impressão de mensagens de erro numa eventual

ocorrência de violação.

*CREATE TABLE Inscricao (stdid CHAR(20), id CHAR(20),

grau CHAR(2),UNIQUE (id, grau), CONSTRAINT

InscricaoKey PRIMARY KEY (id) )

Page 28: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*A chave estrangeira é um conjunto de atributos de

uma relação que é usado para fazer referência a uma

tupla de outra relação, correspondendo à chave

primária da relação referenciada.

*A chave estrangeira deve conter o mesmo número de

atributos da chave primária da outra relação, e seus

respectivos domínios, mas não necessariamente os

mesmos nomes.

*Pode assumir valor null.

*Para garantir a consistência de uma relação se uma

relação é modificada a outra também deve ser

checada e modificada.

Page 29: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*Se todas as restrições de chave estrangeiras definidas no

banco de dados são garantidas, a sua integridade referencial

é alcançada, ou seja, garante-se que não há referências

pendentes.

id nome login idad

e

not

a

112221 Maria maria@if 18 7.6

112222 João joso@if 18 8.0

112223 José jose@if 19 9.2

id grau stdid

Informática T 112221

Português M 112221

História M 112223

Redes T 112222

Chave estrangeira

Chave primária

Page 30: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*O comando FOREIGN KEY identifica a chave

estrangeira na criação da relação.

*CREATE TABLE Incricao (stdid CHAR(20), id CHAR(20),

grau CHAR(2), PRIMARY KEY (stdid,id), FOREIGN KEY

(stdid) REFERENCES Estudante )

Page 31: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*Restrições de domínio, de chave primária e de chave

estrangeiras são consideradas como parte

fundamental do modelo de dados relacional

*Outras restrições mais genéricas são:

*definição de intervalos de valores para determinados

atributos.

*As restrições de tabelas são associadas a um única

tabela e são checadas sempre que a tabela é

alterada.

*As restrições de assertivas são associadas a várias

tabelas e são checadas sempre que uma destas

tabelas é modificada.

Page 32: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*As RIs são especificadas quando uma relação é criada e são checadas sempre que uma relação é modificada.

*Sempre que um comando de inserção, exclusão ou atualização causa uma violação de RI, ele é rejeitado.

*A linguagem SQL provê alternativas de tratamento para estas violações. São elas:

*Rejeitar a remoção da tupla de Estudante que é referenciada por Inscricao;

*Remover também todas as tuplas de Inscricao que referenciam a tupla de Estudante a ser removida;

*Atribuir um valor padrão válido ao stdid das tuplas de Inscricao que referenciam a tupla de Estudante a ser removida;

*Atribuir o valor null ao stdid das tuplas de Inscricao que referenciam a tupla de Estudante removida, denotando ‘desconhecido’ ou ‘não aplicável’;

Page 33: Introdução a Banco de Dados - leorodriguesbdo.com.br 07 - Modelo Relacional.pdf · Calculo Relacional *Declarativo Quero um misto quente Quero duas fatias de pão de forma, recheadas

*

*Os comandos em SQL para implementar estas ações

são:

*NO ACTION, que é a opção padrão e que rejeita a

operação sendo executada;

*CASCADE, que remove a tupla da relação referenciada e

todas as tuplas que fazem referência à ela;

*SET NULL / SET DEFAULT , que atribui um valor à chave

estrangeira da tupla referenciada.