• Nenhum resultado encontrado

Banco de Dados I Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 3) Clodis Boscarioli

N/A
N/A
Protected

Academic year: 2021

Share "Banco de Dados I Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 3) Clodis Boscarioli"

Copied!
18
0
0

Texto

(1)

Clodis Boscarioli

Módulo II: Modelagem

Entidade-Relacionamento versus Relacional

(Aula 3)

Banco de Dados I 2007

(2)

Agenda:



Exercícios de Mapeamento ME-R para MR;



Restrições de Domínio;



Restrições de Chave e em Valores Null;



Integridade Referencial;



Asserções;



Gatilhos;

(3)

Introdução

 Em um banco de dados relacional existem muitas relações, e as tuplas destas relações estão, em geral, relacionadas de diversas maneiras.

 Existem muitas limitações ou restrições em relação ao valores reais permitidos em um banco de dados. Estas limitações ou restrições são derivadas do mundo real.

 Podem ser:

 Restrições inerentes baseadas em modelo (uma relação não

pode ter tuplas repetidas)

 Restrições baseadas em esquema;  Restrições baseadas em aplicação.

(4)

Introdução

 Fornecem meios para assegurar que mudanças feitas no banco de dados, por usuários autorizados, não resultem em perda da

consistência dos dados.

 Resguardam o banco de dados contra danos acidentais.  Restrições no modelo entidade-relacionamento:

 Declarações de chave: o conjunto de inserções válidas e

atualizações é restrito àquelas que não criam duas entidades com o mesmo valor numa chave candidata.

 Forma de um relacionamento: restringe os conjuntos

relacionamentos legais entre entidades de uma coleção de conjuntos-entidade.

 Uma restrição de integridade pode ser um predicado arbitrário pertencente ao banco de dados. No entanto, os predicados

arbitrários podem ser custosos em relação a testes. Deve-se optar por restrições de integridade que possam ser testadas com a

(5)

Restrições de Domínio

 São a forma mais elementar de restrições de integridade.

 São testadas facilmente pelo sistema toda vez que um novo item de dado é inserido no banco de dados.

 Vários atributos podem ter o mesmo domínio.

 A própria definição de restrição de domínio permite testar os valores inseridos no banco de dados.

 Dentro de cada tupla, o valor de cada atributo A deve ser um valor atômico no domínio dom(A).

(6)

Restrições de Domínio

 A cláusula check (SQL)

 Permite determinar um predicado que deva ser satisfeito por

qualquer valor designado a uma variável.

 Exemplo:

 Garantir que o domínio relativo ao turno de trabalho de um operário

contenha somente valores maiores que um dado valor (turno mínimo).

 Sintaxe:

create domain número_conta char(10)

constraint teste_nulo_numero_conta check(value not null) create domain tipo_conta char(10)

(7)

Restrições de Chave e em Valores Null



Sempre existe um sub-conjunto de atributos de um

esquema de relação R com a propriedade de que duas

tuplas, em qualquer estado da relação r de R, não

tenham as mesmas combinações de valores para esses

atributos.



Seja SK este subconjunto de atributos; então, para

quaisquer tuplas distintas t1 e t2 em um estado (ou

instância) da relação r de R, tem-se a restrição que:

t1[SK] <> t2[SK]



Valores nulos não se aplicam a chaves e a atributos

definidos como not null (restrição de integridade de

entidade).

(8)

Nova definição...



Um esquema de banco de dados relacional S é um

conjunto de esquemas de relação S = {R1, R2, ..., Rm} e

um conjunto de restrições de integridade IC.



Uma instância de um banco e dados relacional DB de S

é um conjunto dos estados da relação DB = {r1, r2, ...,

rm} de forma que cada ri seja uma instância de Ri, e de

maneira que os estado da relação ri satisfaçam as

(9)

Adendo: A Junção Natural (

|X|

)



A junção natural (natural join) é uma operação binária

que nos permite combinar certas seleções e um produto

cartesiano em uma única operação.



Forma-se um produto cartesiano de duas relações e

promove-se uma seleção de tuplas, obedecendo à

equivalência dos atributos que aparecem em ambas

as relações e, finalmente, remove-se os atributos em

duplicidade.

(10)

Integridade Referencial



Utilizadas para garantir que um valor que aparece em

uma relação para um dado conjunto de atributos

também apareça para um certo conjunto de atributos em

outra relação.



Considere um par de relações r(R) e s(S) e a junção

natural r |x| s. Pode existir uma tupla tr em r que não

possa ser combinada a nenhuma tupla em s. Isto é, não

existe nenhum ts em s tal que tr[R ∩ S] = ts[R ∩ S]. Tais

tuplas são chamadas tuplas pendentes.



Dependendo do conjunto de entidades ou de

relacionamentos que está sendo modelado, tuplas

pendentes podem ou não ser aceitáveis.

(11)

Integridade Referencial

 Suponha que existe uma tupla r na relação conta, com

t1[nome_agência] = “Agência Cascavel”, mas que não exista uma tupla na relação agência para “Agência Cascavel”. Esta é uma situação indesejável.

 Espera-se que a relação agência possua todas as agências do banco. Portanto, a tupla t1 faz referência a um conta de agência inexistente. É desejável a implementação de uma regra de

integridade que proíba tupla pendentes desse tipo.

 No entanto, nem todos os tipos de tuplas pendentes são indesejáveis.  Suponha que exista uma tupla t2 na relação agência, com

t2[nome-agência] = “Agência Toledo”, mas não há nenhuma tupla da relação conta com referência à agência Toledo. Esse caso indica que a

(12)

Integridade Referencial



Diferença entre as duas situações:



o atributo nome-agência do Esquema_conta é uma

chave estrangeira cuja referência é a chave primária

do Esquema_agência.



O atributo nome_agência do Esquema_agência não é

uma chave estrangeira.



Seja r1(R) e r2(R) relações com chaves primárias K1 e

K2, respectivamente. Dizemos que um subconjunto α de

R2 é uma chave estrangeira associada a K1 em relação a

r1 se é garantido que, para todo t2 em r2, existe uma

tupla t1 em r1, tal que t1[K1] = t2[α].



Exigências destes tipo são chamadas de regras de

(13)

Integridade Referencial no ME-R



Se derivarmos nosso esquema de banco de dados

relacional a partir de diagramas E-R, então toda relação

resultante de um conjunto de relacionamentos possui

regras de integridade.



Outra fonte de regras de integridade são os conjuntos

(14)

Modificações no Banco de Dados

 Modificações no banco de dados podem originar violação das regras de integridade referencial.

 Suponha a integridade referencial existente entre r1 e r2, onde r2 detém a chave estrangeira α em relação a chave primária K de r1.

 Inserção: se uma tupla t2 é inserida em r2, o sistema deve

garantir que exista uma tupla t1 em r1 tal que t1[K] = t2[α]

 Remoção: se uma tupla t1 é removida de r1, o sistema deve

tratar também o conjunto de tuplas em r2 que se referem a t1.

 Atualização:

 Se uma tupla t2 da relação r2 é atualizada e a atualização modifica

valores da chave estrangeira, então é feita uma verificação similar à inserção.

 Se uma tupla t1 da relação r1 é atualizada e a atualização modifica

os valores de uma chave primária, então deverá ser feita uma verificação similar à realizada para a remoção.

(15)

Asserções

 Uma asserção é um predicado que expressa uma condição que desejamos que seja sempre satisfeita no banco de dados.

 Restrições de domínio e regras de integridade referencial são formas especiais de asserções.

 Exemplos de outras asserções:

 A soma de todos os totais em empréstimo de cada uma das

agências deve ser menor que a soma de todos os saldos das contas dessa agência.

 Todo empréstimo deve ter ao menos um cliente que mantenha

uma conta com saldo mínimo de mil reais.

 Quando uma asserção é criada, o sistema verifica sua validade. Se as asserções são válidas, então qualquer modificação posterior do banco de dados será permitida somente quando não violar a

(16)

Gatilhos (Triggers)



Um gatilho é um comando que é executado pelo sistema,

automaticamente, em conseqüência de uma modificação

no banco de dados.



Exigências:



Especificar as condições sob as quais o gatilho deve

ser executado;



Especificar as ações que serão tomadas quando um

gatilho for disparado.



Exemplo:



Ao invés de permitir saldos negativos em conta, o

banco pode criar condições para que a conta corrente

seja zerada e o saldo negativo seja transformado em

um empréstimo.

(17)

Dependência Funcional

(18)

Referências



Sistemas de Banco de Dados. (Cap. 6) Abraham

Silberchatz, Henry F. Korth e S. Sudarshan. 3ª Edição.

Makron Books, 1999.



Introdução a Banco de Dados (Apostila). (Cap. 5-6)

Osvaldo Kotaro Takai, Isabel Cristina Italiano, João

Eduardo Ferreira. DCC-IME-USP, 2005.



Sistemas de Banco de Dados. (Cap. 5 e 10) Ramez

Elsmari e Shamkant B. Navathe. 4ª Edição. Editora

Pearson Addison Wesley, 2005.

Referências

Documentos relacionados

seria usada para o parafuso M6, foram utilizadas as equações 14 e 15, referentes aos parafusos de 8 mm de diâmetro e folga entre parafuso e furo de 0,5 mm, que definem,

No entanto, os resultados apresentados pelo --linalol não foram semelhantes, em parte, aos do linalol racêmico, uma vez que este apresenta um efeito vasorelaxante em anéis de

Resumo: O presente trabalho corresponde a um estudo empírico descritivo e exploratório que aborda comportamentos e falas de atores políticos que participaram do processo legislativo

As micotoxinas são compostos químicos tóxicos provenientes do metabolismo secundário de fungos filamentosos e conhecidas pelos danos causados à saúde humana e

onde Qe são as forças de origem externa ao sistema e Qc são as forças de reação. Estas equações não podem ser utilizadas diretamente, pois as forças de

Este presente artigo é o resultado de um estudo de caso que buscou apresentar o surgimento da atividade turística dentro da favela de Paraisópolis, uma

As principais indicações para a realização foram a suspeita de tuberculose (458 pacientes) e uso de imunobiológicos (380 pacientes).. A maior prevalência de resultado positivo

Quando Goffman (1985) fala em palco e cenário, atores e platéia, papéis e rotinas de representação, necessidade, habilidades e estratégias dramatúrgicas,