©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret...

33
©Prof. Lineu Mialare Aula 8 - 1/33 Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP Campus de Caraguatatuba Tecnólogo em Análise e Desenvolvimento de Sistemas 1 0 Semestre de 2013

Transcript of ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret...

Page 1: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I

Banco de Dados I – BD I Prof. Lineu Mialaret

Aula 8: Modelo Relacional

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP

Campus de Caraguatatuba

Tecnólogo em Análise e Desenvolvimento de Sistemas

10 Semestre de 2013

Page 2: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 2/33Banco de Dados I

Modelo Físico

Modelo Lógico

Modelo ConceitualRequisito

s

+

Regras de

Negócio

BD Operacional

Visão de Negócio

Visão de Sistema

Desenvolvimento de um um Aplicativo de Banco de Dados (1) A

liseP

roje

to

Modelo Funcional

Page 3: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 3/33Banco de Dados I

Desenvolvimento de um um Aplicativo de Banco de Dados (2)

M

Page 4: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 4/33Banco de Dados I

Introdução (1)

O Modelo Relacional estabeleceu-se como o primeiro modelo de dados consolidado para aplicações comerciais.

Os primeiros SGBD´s tiveram por base o Modelo Hierárquico e o Modelo Rede. Esses dois antigos modelos de dados estão mais próximos da implementação no nível físico que o Modelo Relacional.

Existe uma base teórica fundamental no Modelo Relacional, a qual apóia o desenvolvimento de Aplicativos de Banco de Dados Relacionais e permite o processamento eficiente das necessidades de manipulação de informações de seus usuários.

Atualmente, o Modelo Relacional está presente em numerosas aplicações no âmbito de aplicações tradicionais de processamento de dados.

Page 5: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 5/33Banco de Dados I

O Modelo Relacional foi introduzido pelo pesquisador da IBM Edward Codd, em 1970, e gerou uma grande quantidade de pesquisa acadêmica ao longo da década de 70.

A Relational Model for Large Shared Data Banks, Communications of the ACM, 13(6), June 1970, artigo disponível na página da matéria.

Características marcantes desse modelo de dados:

formal por natureza

com estruturas de dados simples e uniformes.

O Modelo Relacional baseia-se na teoria matemática de conjuntos, onde os dados de um determinado domínio de conhecimento são representados por meio de uma coleção de relações ou tabelas.

É o modelo lógico de BD mais utilizado comercialmente. Hoje existem dezenas de SGBD´s relacionais no mercado, para todas as plataformas de hardware e software existentes.

Ex: Oracle, Sybase, Microsoft, etc.

Introdução (2)

Page 6: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 6/33Banco de Dados I

Modelo Relacional - Conceitos (1)

Um domínio D é um conjunto de valores atômicos, ou seja, cada valor nesse domínio é indivisível. Um tipo de dado ou formato é também associado a cada domínio.

Exemplo: conjunto dos números inteiros, das cores disponíveis, dos brasileiros,

etc.

Produto cartesiano: Sejam D1,D2,D3,...,Dk domínios de tipos de dados. O produto cartesiano representado por

D1 x D2 x D3 x ... x Dk

é o conjunto de todas as k-tuplas (a1,a2,...,ak) onde cada ai Di. Exemplo: Sejam

k = 2 (denominado de grau da relação)

D1 = {0,1}

D2 = {a,b,c}

Então R = {(0,a), (0,b), (0,c), (1,a), (1,b), (1,c)} é uma relação.

Uma relação r é um subconjunto do produto cartesiano de domínios.

Page 7: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 7/33Banco de Dados I

Um Banco de Dados Modelo Relacional consiste numa coleção de tabelas (relacionais), cada uma das quais designadas com um nome único.

Uma linha numa tabela representa um relacionamento entre um conjunto de valores.

Uma vez que essa tabela representa uma coleção de tais relacionamentos, há uma estreita correspondência entre o conceito de tabela e o conceito matemático de relação, a partir da qual se originou o nome desse modelo de dados.

Seja a tabela Conta apresentada a seguir na próxima transparência. Ela possui três colunas: numero_conta, nome_agencia e saldo. Essas colunas são denominadas de atributos.

Para cada atributo da tabela Conta há um conjunto de valores permitidos, ou seja, o domínio do atributo.

Por exemplo, para o atributo numero_conta, o domínio é o conjunto de todos os números de contas permitidos.

Modelo Relacional - Conceitos (2)

Page 8: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 8/33Banco de Dados I

Modelo Relacional - Conceitos (3)

Exemplo da relação ou tabela Conta.

numero_conta nome_agencia saldo

Page 9: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 9/33Banco de Dados I

Suponha que D1 denote esse conjunto de valores de contas permitidos, D2 identifique o conjunto de todas as agências e D3 o conjunto de todos os valores de saldos permitidos.

Qualquer linha da tabela Conta consiste necessariamente de uma tupla (v1,v2,v3) em que v1 é um numero de conta, (ou seja, v1 está no domínio D1), v2 é o nome de uma agência e v3 representa um valor de saldo.

Em geral, a tabela Conta é um subconjunto de

D1 x D2 x D3

Uma tabela de n atributos deve ser um subconjunto de

D1 x D2 x ... x Dn

Matematicamente se define uma relação como um subconjunto de um produto cartesiano de uma lista de domínios.

Em essência, tabelas são relações, e pode-se usar os termos matemáticos relação e tupla como sinônimos de tabela e linha.

Modelo Relacional - Conceitos (4)

Page 10: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 10/33Banco de Dados I

Formalmente, dados os conjuntos D1,D2,…,Dn, uma relação r é um subconjunto de D1 x D2 x … x Dn

Assim, uma relação pode ser entendida como um subconjunto de tuplas (a1,a2,…,an) onde cada ai Di

Exemplo: sejam os valores dos seguintes atributos:

nome_cliente = {Jones, Smith, Curry, Lindsay} endereco_cliente = {Main, North, Park} cidade_cliente = {Harrison, Rye, Pittsfield}

Então r = { (Jones, Main, Harrison), (Smith, North, Rye),

(Curry, North, Rye), (Lindsay, Park, Pittsfield) }

é uma relação sobre o produto cartesiano de:

nome_cliente x endereco_cliente x cidade_cliente

Modelo Relacional - Conceitos (5)

Page 11: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 11/33Banco de Dados I

Características dos Atributos

Cada atributo (coluna) de uma relação (tabela) tem um nome.

O conjunto de valores permitidos para cada atributo é chamado de domínio do atributo.

Os valores dos atributos devem ser atômicos, ou seja, os atributos são indivisíveis.

Por exemplo: atributos multivalorados não são atômicos

atributos compostos não são atômicos.

O valor especial nulo (null) faz parte de qualquer domínio.

Page 12: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 12/33Banco de Dados I

Esquema de Relação

Um esquema de relação R, denotado por R(A1,A2,...,An) é um

conjunto de atributos {A1,A2,...,An}.

Cada atributo Ai é o nome do papel desempenhado por algum

domínio Di no esquema de relação R. O domínio Di é chamado de

domínio de Ai e é denotado por dom(Ai).

Um esquema de relação é usado para descrever esquematicamente uma relação (tabela).

O nome da relação é R e o número de atributos n no esquema é denominado de grau da relação.

Exemplo:

ESTUDANTE(Nome, CPF, Tel_Res, Endereco, Tel_Trab, Idade, CR) ou

Estudante(Nome, CPF, Tel_Res, Endereco, Tel_Trab, Idade, CR)

Page 13: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 13/33Banco de Dados I

Instância de Relação (1)

Uma instância da relação r de um esquema de relação R(A1, A2,...,An), denotado por r(R), é um conjunto de tuplas (linhas) r = {t1,t2,...,tm}.

Cada tupla é uma lista ordenada de n valores t = {v1,v2,...,vn} onde cada valor vi é um elemento de um domínio dom(Ai) ou um valor nulo (null) especial.

São também usados os termos intenção da relação para o esquema R e extensão da relação para uma instância r(R) da relação.

Portanto, uma instância de relação r(R) é tal que

r(R) (dom(A1) X dom(A2) X ... X dom(An))

ou seja, um subconjunto do produto cartesiano de uma lista de domínios

Page 14: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 14/33Banco de Dados I

Instância de Relação (2)

Exemplo de uma Instância de uma Relação.

Page 15: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 15/33Banco de Dados I

Os valores correntes (instância da relação) são especificados por uma tabela.

Um elemento t da instância de relação r(R) é uma tupla, representada por uma linha da tabela.

JonesSmithCurry

Lindsay

nome_cliente

MainNorthNorthPark

endereco_cliente

HarrisonRyeRye

Pittsfield

cidade_cliente

Cliente

atributos

tuplas

Instância de Relação (3)

relação

Page 16: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 16/33Banco de Dados I

A ordem das tuplas é irrelevante (as tuplas ou linhas da tabela podem ser armazenadas em qualquer ordem arbitrária).

Exemplo: a relação Conta com as suas tuplas desordenadas.

Características de uma Relação (1)

numero_conta nome_agencia saldo

Conta

Page 17: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 17/33Banco de Dados I

Requisitos de uma relação ou tabela (relacional) no Modelo Relacional:

as linhas (tuplas) da tabela contém dados sobre uma ou mais entidades

as colunas da tabela contém dados sobre atributos de uma entidade

as células da tabela só podem conter um único valor

todos os valores de uma coluna são do mesmo tipo

cada coluna tem um nome único

a ordem das colunas não é importante

a ordem das linhas (tuplas) não é importante

não pode haver duas linhas (tuplas) idênticas.

Características de uma Relação (2)

Page 18: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 18/33Banco de Dados I

Um Exemplo de uma Relação: Empregado (1)

JacksonMurugan40

CopleyAlea300

CalderaJerry700

AbermanyMary100

SobreNomePreNomeNumeroEmpregado

Page 19: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 19/33Banco de Dados I

Um Exemplo de uma Relação: Employee (2)

Page 20: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 20/33Banco de Dados I

Jackson299-909040

Copley610-9850300

Caldera215-7789700

Abermany335-6421,

454-9744

100

LastNamePhoneEmployeeNumber

Cells of the table hold a single value

Um Exemplo de uma Tabela Não Relacional (1)

Page 21: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 21/33Banco de Dados I

Abermany335-6421100

Jacksoni299-909040

Copley610-9850300

Caldera215-7789700

Abermany335-6421100

LastNamePhoneEmployeeNumber

No two rows may be identical

Um Exemplo de uma Tabela Não Relacional (2)

Page 22: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 22/33Banco de Dados I

Terminologia no Modelo Lógico Relacional

CampoRegistroArquivo

ColunaLinhaTabela

AtributoTuplaRelação

Sinônimos no Modelo Relacional:

Page 23: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 23/33Banco de Dados I

Relational Database

A relational database consists of multiple relations. Information about an enterprise is broken up into parts, with each

relation storing one part of the information. A bank system example:

Account: stores information about accounts Depositor: stores information about which customer owns which

account Customer: stores information about customers

Storing all information as a single relation such as Bank(account-number,balance,customer-name,...)

results in: repetition of information (e.g. two customers own an account) the need for null values (e.g. represent a customer without an account).

Normalization theory (Database Course II) deals with how to design relational well suited schemas.

Page 24: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 24/33Banco de Dados I

Notação do Modelo Relacional (1)

Um esquema de relação R de grau n é representado como R(A1,A2,...,An).

Uma tupla numa instância de relação r(R) é representada como t = {v1,v2,...,vn} onde cada vi é o valor correspondente ao atributo Ai.

t[Ai] refere-se ao valor vi na tupla t para o atributo Ai.

t[Au,Av,...,Az], onde Au,Av,...,Az são atributos de R, refere-se à subtupla de valores <vu,vv,...,vz> da tupla t correspondente.

Letras maiúsculas (Q, R, S) denotam nomes de relações.

Letras minúsculas (q, r, s) denotam instâncias de relações.

As letras (t, u, v) denotam as tuplas.

Page 25: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 25/33Banco de Dados I

Em geral, o nome de uma relação como por exemplo ESTUDANTE indica a instância corrente da relação, enquanto que ESTUDANTE(Nome,CPF,RG,Endereço,...) refere-se ao esquema da relação.

Nomes de atributos são algumas vezes qualificados com o nome da relação (tabela) à qual eles pertencem.

Exemplo: ESTUDANTE.Nome

ESTUDANTE.CPF

Estudante.Endereco

Notação do Modelo Relacional (2)

Page 26: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 26/33Banco de Dados I

Uma relação é definida como um conjunto de tuplas distintas. Superchave (SK): são subconjuntos de atributos de um esquema de

relação R com a propriedade de que duas tuplas não têm a mesma combinação de valores para esses atributos.

Para quaisquer duas tuplas distintas t1 e t2 numa instância r da relação R,

t1[SK] t2[SK]

Todo esquema de relação tem pelo menos uma superchave, que é aquela constituída pelo conjunto de todos os seus atributos.

Chave (K): num esquema de relação R, a chave K é uma superchave mínima, isto é, uma superchave da qual não se pode remover nenhum atributo, ou do contrário se tem um conjunto de atributos que não se constitui numa superchave.

Exemplo: {CPF} é uma chave de ESTUDANTE, e qualquer conjunto de atributos

que inclua CPF, tal como por exemplo {CPF,Nome,Idade} é uma superchave de ESTUDANTE.

Chaves no Modelo Relacional (1)

Page 27: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 27/33Banco de Dados I

Chave Candidata: uma chave é determinada pelo significado dos atributos no esquema da relação. Em geral, um esquema de relação pode ter mais de uma chave, como por exemplo {CPF} e {RG}. Neste caso, cada uma das chaves é chamada de chave candidata. Chaves candidatas devem superchaves mínimas.

Chave Primária (PK): uma das chaves candidatas escolhida para identificar distintamente as tuplas da relação.

Por convenção, representa-se a chave primária sublinhando-se os atributos que a compõem.

As chaves candidatas que não são selecionadas são denominadas de Chaves Alternativas.

Chaves no Modelo Relacional (2)

Page 28: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 28/33Banco de Dados I

Aspectos de integridade de um Modelo Relacional de Banco de Dados constituem-se num dos mais importantes princípios da construção do mesmo.

Esses aspectos são materializados por meio de restrições de integridade impostas ao modelo.

Dessa forma pode-se esquematizar resumidamente um Banco de Dados Relacional da seguinte forma:

Aspectos de Integridade (1)

Page 29: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 29/33Banco de Dados I

As restrições de integridade resguardam o Banco de Dados contra danos acidentais.

Elas dizem respeito à correção, consistência e segurança, por exemplo, dos dados armazenados.

A garantia da integridade é a garantia de que o estado dos dados do Banco de Dados está sempre coerente com a realidade para o qual o mesmo foi projetado e criado.

Não basta apenas ter um esquema com os dados eficientemente bem estruturados, se não existir nenhum controle sobre os valores dos mesmos.

Se não há o gerenciamento de integridade, pode-se ter situações como a ocorrência de dados desconhecidos, como por exemplo: a ausência de valor em atributos significativos, como empregado sem

código e relacionamentos incorretos ou inexistentes, ou a ocorrência de situações não triviais, como departamentos

sem gerente ou alguém sendo gerente de mais de um departamento.

Aspectos de Integridade (2)

Page 30: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 30/33Banco de Dados I

Restrições de Integridade (1)

Restrições de integridade - Restrição de domínio:

Os valores de cada atributo Ai devem ser atômicos e pertencer a um determinado (domínio) dom(Ai).

Restrição de chave: Todo esquema de relação deve ter uma chave e os valores

destas chaves devem ser distintos. Restrição de integridade de entidade:

Nenhum valor de chave primária pode ser nulo (null), porque este valor identifica a tupla numa relação.

Restrição de integridade referencial: Especificada para manter a consistência entre tuplas de duas

relações. Uma tupla numa relação que se refere a uma outra relação deve se referir a uma tupla existente naquela relação. A integridade referencial é especificada através do conceito de chave estrangeira (FK, “foreign key”).

Page 31: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 31/33Banco de Dados I

Chave Estrangeira (FK): Sejam dois esquemas de relações R1 e R2. Um atributo de R2 é dito ser chave estrangeira (ou atributo transposto ou atributo de ligação) se ele, podendo ou não ser chave primária de R2, é chave primária de R1. Os esquemas de relações R1 e R2 não são necessariamente distintos.

Exemplo:

Restrições de Integridade (2)

r1

r2

Page 32: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 32/33Banco de Dados I

Se uma instância de relação r2 inclui uma chave estrangeira correspondente a chave primária de uma instância de relação r1, então todo valor da chave estrangeira de r2 deve ser: igual ao valor da chave primária em alguma tupla de r1, isto é,

t1[PK] = t2[FK]. Diz-se que a tupla t2 referencia ou se refere à tupla t1, ou

totalmente nulo (null), ou seja, cada valor do atributo que participa da chave estrangeira deve ser nulo.

Num Banco de Dados com muitas relações, haverá usualmente muitas restrições de integridade referencial. Para especificar estas restrições, deve-se primeiro ter um claro entendimento do significado de cada conjunto de atributos nos diversos esquemas de relação do Banco de Dados.

Restrições de integridade referencial geralmente surgem dos relacionamentos entre as entidades representadas pelos esquemas de relação.

Restrições de Integridade (3)

Page 33: ©Prof. Lineu MialaretAula 8 - 1/33Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 8: Modelo Relacional Instituto Federal de Educação,

©Prof. Lineu MialaretAula 8 - 33/33Banco de Dados I

Restrições de integridade semântica: ou regras de negócio, são as restrições especificadas e mantidas num Banco de Dados Relacional, por exemplo, ou pelos programas de aplicação ou implementadas pelo próprio SGBD (Sistema Gerenciador de Banco de Dados com capacidade ativa), por meio de: Visões (views)

Gatilhos (triggers)

Procedimentos Armazenados (stored procedures).

Exemplos: “o salário de um empregado não deve ser maior do que o salário do

seu supervisor”

“o número máximo de horas por semana que um empregado pode trabalhar em projetos é 56”.

Restrições de Integridade (4)