Você está na página 1de 51

MODELO RELACIONAL

Profa. Thalita S.R. Pimenta

BREVE HISTRICO Foi introduzido por Codd (1970)

Tornou-se um padro de fato para aplicaes comerciais, devido a sua simplicidade e performance. Padro este que ainda persiste at hoje.

Modelo Relacional

um modelo formal, baseado na teoria matemtica das relaes. Fortemente fundamentada na lgebra Relacional e no Clculo Relacional.

Um dos SGBD's precursores que implementaram este modelo foi o System R (IBM). Baseado em seus conceitos surgiram: DB2 (IBM), SQLDS (IBM), Oracle, Informix, Ingres, Sybase entre outros.

Modelo Relacional
O Modelo Relacional representa a base de dados como uma coleo de relaes. Uma relao concebida como uma tabela de valores, cada linha da tabela representa uma coleo de valores de dados relacionados.

Modelo Relacional
Estes valores podem ser interpretados como fatos que descrevem uma entidade ou um relacionamento do mundo real. Os nomes de tabelas e nomes de colunas servem tambm para auxiliar na interpretao do significado dos valores em cada linha de cada tabela

Modelo Relacional
Na terminologia do Modelo Relacional, uma linha chamada TUPLA, o cabealho de uma coluna chamado ATRIBUTO A tabela chamada RELAO. Os tipos de dados que descrevem os tipos de valores que podem aparecer em cada coluna so chamados de DOMNIO.

Domnio
Um domnio D um conjunto de valores atmicos, isto , cada valor do domnio indivisvel segundo o contexto sobre o qual o modelo concebido. Um mtodo comum de especificar um domnio consiste em especificar o tipo de dado segundo o qual os valores dos dados que formam o domnio so estabelecidos.

Modelo Relacional
Exemplos: Alunos_Matrculas: Conjunto de 5 dgitos vlidos como matrcula Alunos_Datas_Nascimento: Conjunto de datas vlidas

Domnio
Alm de nome, tipo de dado e formato, informaes adicionais podem ser fornecidas para facilitar a interpretao dos valores do domnio. Exemplos: Alunos_Datas_Nascimento: Conjunto de datas compreendidas entre 01/01/1950 e 31/12/1982. Alunos_Sexo: Deve ser M ou F.

Relao
Uma relao R, denotada por R(A1, A2, . . . , An), representa uma relao de nome R e uma lista de atributos A1, A2, . . . , An. Cada atributo Ai refere-se a um domnio correspondente D na relao R. D chamado de domnio de Ai e denotado por dom(Ai). O grau da relao R o nmero de atributos que ela contm.

Relao
Exemplo: ALUNO ( Matrcula, Nome, DataNascimento, Sexo ) ALUNO o nome da Relao e seu grau 4 porque tem quatro atributos. Seus domnios so: dom ( Matrcula ) = Matrculas dom ( Nome ) = Nomes dom ( DataNascimento ) = Datas_Nascimento

Tupla
Uma instncia r de uma relao R(A1, A2, . . . , An), tambm denotada por r(R), um conjunto de n-tuplas r = { t1, t2, ..., tm }. Cada n-tupla t uma lista ordenada de n valores t = <v1, v2, ..., vn>, onde cada valor vi, 1<i<n, um elemento do domnio dom (Ai) ou nulo.

Exemplo

Tupla e Instncia
A instncia de uma relao em um determinado momento reflete somente as tuplas vlidas que representam um estado particular do mundo real. Em geral, como o estado do mundo real muda, muda tambm a instncia da relao, transformando-se em outro estado.

Esquema
Entretanto, o esquema da relao, R, relativamente esttico e raramente muda, como por exemplo, quando adicionamos um novo atributo para representar uma nova informao que no existia originalmente.

Domnio
possvel que vrios atributos, de uma mesma relao ou de relaes diferentes, compartilhem o mesmo domnio. Os atributos indicam diferentes interpretaes para o domnio. Por exemplo, o domnio Datas_Nascimento para o atributo DataNascimento da relao ALUNO significa a data de nascimento do aluno, j para a relao PROFESSOR, representar a data de nascimento do professor

Ordenao das tuplas na relao


Uma relao definida como um conjunto de tuplas. Matematicamente, elementos de um conjunto no tm nenhuma ordem entre si, portanto, tuplas em uma relao no tm uma ordem particular. Entretanto, em um arquivo, registros so fisicamente armazenados no disco de tal forma que existe a uma ordem entre os registros.

Ordenao das tuplas na relao


Esta ordem indica o primeiro, segundo, etc., e o ltimo registro no arquivo. Assim, quando listamos o contedo de uma relao como uma tabela, as linhas aparecem em uma determinada ordem. A ordenao das tuplas no faz parte da definio relacional, porque a relao tenta representar fatos em um nvel lgico ou abstrato. Muitas ordens lgicas podem ser especificadas em uma relao.

Valores nas tuplas


Cada valor em uma tupla um valor atmico, isto , indivisvel no contexto do modelo relacional. Portanto, atributos compostos e multivalorados no so permitidos. A est a importncia das tcnicas de normalizao. Os valores de alguns atributos em uma tupla em particular podem ser desconhecidos ou no existirem para esta tupla. Um valor especial, denominado nulo, usado para estes casos

Tuplas

Nomes dos atributos podem ser qualificados com o nome da relao a que pertencem, por exemplo: ALUNO.Matrcula, ALUNO.Nome, etc.

RESTRIES NO MODELO RELACIONAL


Restries de domnio Restries de domnio especificam que o valor de cada atributo A deve ser um valor atmico pertencente ao domnio dom(A) para este atributo. Os tipos de dados associados a domnios incluem os numricos inteiros, reais, caracteres, strings de tamanho fixo, strings de tamanho varivel, data, etc. Os domnio podem ainda especificar um conjunto de valores vlidos explicitamente identificados.

Restries de Chave ( Chave Primria = Primary Key ) Uma relao definida como um conjunto de tuplas. Por definio, todos os elementos do conjunto so distintos, portanto, todas as tuplas em uma relao devem tambm ser distintas. Isto significa que no pode haver duas tuplas com a mesma combinao de valores para todos os atributos.

Restrio de Integridade de Entidade

A restrio de integridade de entidade estabelece que o valor para a chave primria no pode ser nulo. Isto porque o valor da chave primria usado para identificar individualmente tuplas de uma relao. Restries de chave e restries de integridade de entidade so especificadas para cada relao individualmente.

Restrio de Integridade Referencial

A restrio de integridade referencial especificada entre duas relaes e usada para manter a consistncia entre as tuplas dessas duas relaes. A restrio de integridade referencial estabelece que uma tupla em uma relao que se refere a outra relao deve se referir a uma tupla existente da outra relao.

Chave Estrangeira ( Foreign Key )


As duas condies citadas a seguir, estabelecem a restrio de integridade referencial entre duas relaes R1 e R2. Um atributo, ou conjunto de atributos, FK em uma relao R1, (so) uma chave estrangeira de R1 se:

Chave Estrangeira ( Foreign Key )


1. O(s) atributo(s) FK tem o mesmo domnio do(s) atributo(s) da chave primria PK da relao R2; diz-se que o(s) atributo(s) FK refere(m)-se relao R2.
2. O(s) valor(es) de FK na tupla t1 de R1 existe(m) como o valor de uma PK em alguma tupla de R2 ou nulo. Formalmente: t1 [FK] = t2 [PK].

Importante

Em um banco de dados de muitas relaes, existem geralmente muitas restries de integridade referencial. Para especificar estas restries, deve-se primeiro ter uma clara compreenso do significado do papel de cada atributo das vrias relaes do esquema do banco de dados. As restries de integridade referencial surgem dos relacionamentos entre as entidades.

Restries

Todas as restries de integridade devem ser especificadas se desejamos manter as restries para todas as instncias do banco de dados. Portanto, em um sistema relacional, a linguagem de definio de dados (DDL) deve prover recursos para especificar os vrios tipos de restries para que o sistema gerenciador do banco de dados possa cumprilos automaticamente

PARTE - 2
Mapeamento Modelo E-R para Modelo Relacional

MAPEAMENTO E-R -> RELACIONAL Para cada modelo conceitual E-R pode existir vrios modelos Relacionais. A maioria das ferramentas de modelagem conceitual automatizam o mapeamento. Porm importante conhecer as etapas deste mapeamento. A definio equivocada do modelo Relacional afeta a estrutura de todo o projeto.

Muitas vezes a maneira como implementar as tabelas no modelo relacional dependem de decises de projeto e no de regras pr-estabelecidas.

Um simples exemplos de mapeamento

ETAPAS DO MAPEAMENTO
ETAPA 1 Mapear todos os conjuntos de entidades no fracas. Caso exista atributo composto, inclua todos os atributos elementares Escolha um dos atributos chave de E como chave primria para a relao

Funcionrio = {FNmero, FNome, Endereo, Salrio} Departamento = {DNmero, DNome} Projeto = {PNmero, PNome}

ETAPA 2 Para cada conjunto de entidade fraca F no esquema ER cria-se uma relao R formada por todos os atributos do conjunto de entidade fraca, mais os atributos que so chave das entidades regulares com as quais a entidade se relaciona.

Dependente = {DependNome, FNmero, DataNiver, Parentesco}

ETAPA 3
Relacionamentos de cardinalidade 1 para 1 devem ser identificados e escolhida a entidade que receber os atributos do relacionamento, assim como qual a entidade que receber a chave estrangeira.

Funcionrio = {FNmero, Endereo, Salrio} Departamento = {DNmero, FNmero, DataIni}

FNome,

Dnome,

ETAPA 4
Para cada conjunto relacionamento de cardinalidade 1 para N, a chave primria da entidade que participa com cardinalidade N ter a chave primria da outra entidade como chave estrangeira.

Departamento = {DNmero, Dnome, FNmero, DataIni} Projeto = {PNmero, Pnome, DNro}

ETAPA 5 Para cada relacionamento binrio M:N cria-se uma nova relao

Participar = {FNum, PNum, horas}

ETAPA 6 Um relacionamento ternrio produzir uma relao

Oferecer = {OCod, CCod, FNum, Horrio}

ETAPA 7
Existem duas maneiras de tratar atributos multivalorados no mapeamento: 1) Sabendo uma estimativa do nmero de ocorrncias do atributo. Assim, pode-se adicionar relao quantos atributos forem necessrios. 2) Caso do nmero de ocorrncias do atributo seja indefinido, cria-se uma nova relao.

LocalDep = {DNmero, Localizao}

Departamento = {DNmero, Dnome, FNmero, DataIni, local1, local2, local3}

MAPEAMENTO ESPECIALIZAES
Trs alternativas para mapeamento

DE

1. tabela nica para entidade genrica e suas especializaes 2. tabelas para a entidade genrica e as entidades especializadas

3. tabelas apenas especializadas

para

as

entidades

Alternativa 1
Tabela nica para entidade genrica e suas especializaes

Alternativa 2
Tabelas para a entidade genrica e as entidades especializadas

Alternativa 3
Tabelas apenas para as entidades especializadas No deve ser aplicado para especializaes parciais

EXERCCIO
Aplique todos os passos para o mapeamento E-R -> Relacional.

Comentrios sobre Exerccio


Esquema muito simples de ser gerado; Aplicao da etapa 1, abordada na aula passada, define praticamente todas as tabelas; O fato do modelo E-R ter sido representado atravs de uma ferramenta, facilita consideravelmente o processo de mapeamento;

Exemplos de Relaes do Modelo


PILOTO(COD_PILOTO, COD_PAIS) NOME, DATA_NASC, COD_EQUIPE,

EQUIPE(COD_EQUIPE, NOME, NOME, COD_PAIS) PAIS(COD_PAIS, NOME, POPULACAO) CIRCUITO(COD_CIRCUITO, NOME, EXTENSAO, COD_PAIS)

Você também pode gostar