Sei sulla pagina 1di 33

up n e s

Banco de Dados I
Modelo Relacional

Ronaldo Celso Messias Correia

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Modelo Relacional
Foi introduzido por Codd (1970) Comeou a ser realmente utilizado nas empresas a
partir de 1987 Tornou-se um padro de fato para aplicaes comerciais, devido a sua simplicidade e performance. Padro este que ainda persiste at hoje 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), SQL-DS (IBM), Oracle, Informix, Ingres, Sybase entre outros
Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Modelo Relacional
O modelo relacional representa os dados num banco de
dados como uma coleo de tabelas (relaes) Cada tabela ter um nome, que ser nico, e um conjunto de atributos com seus respectivos nomes e domnios Todos os valores de uma coluna so do mesmo tipo de dados Terminologia:

Tabela chamada de Relao Linha chamada de Tupla Coluna chamada de atributo CPF
015425446

Esquema
Nr_Conta
5418-7

Nome
Jos

Rua
Rua das Flores

Cidade
So Paulo

Nr_Conta
5418-7 4876-9

Saldo
541,20 145,00

Maria
Jos

154879984
015425446

Rua Linda
Rua das Flores

Bauru
So Paulo

4876-9
8745-6

8745-6

235,90

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

Instncia

up n e s
Modelo Relacional
Exemplo de uma tabela:
Atributo Nome

Tupla Relao

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Domnios
Modelo relacional considera sempre que
os valores so indivisveis atmicos Um Domnio um conjunto de valores atmicos Exemplos de domnio

Nomes de Alunos Cdigos de Disciplinas Idade: inteiro entre 16 e 70


Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Domnios
Especificao do Domnio

Nome Definio lgica


Nomes de Alunos: conjunto de todos os nomes

possveis para pessoas Cdigos de Disciplinas: conjunto dos cdigos das disciplinas oferecidas

Tipo de dado e/ou formato de dado


Nomes de Alunos string de 60 caracteres Cdigos de Disciplinas string com trs letras

seguidas de quatro dgitos: MAT8850


Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Esquema de Relaes
Um esquema de relao R denotado por
R(A1,A2,...,An), onde R representa um conjunto de atributos: R = {A1,A2,...,An} O grau de uma relao o nmero de atributos que seu esquema contm

Dom(Ai) - Domnio do Atributo Ai Exemplo

Uma relao de Alunos que tenha os atributos Nome do aluno, RG e Idade, tem o seguinte esquema: Aluno(Nome, RG, Idade)
Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Esquema de Relaes
Um esquema de relao R denotado por
R(A1,A2,...,An), onde R representa um conjunto de atributos: R = {A1,A2,...,An} O grau de uma relao o nmero de atributos que seu esquema contm

Dom(Ai) - Domnio do Atributo Ai Exemplo

Uma relao de Clientes que tenha os atributos Nome do Cliente, RG e Idade, tem o seguinte esquema: Cliente(Nome, RG, Idade)
Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Esquemas e Especificao dos domnios
Especificao dos domnios:

Nomes do Cliente: conjunto de todos os nomes possveis para pessoas strings de 60 caracteres RG: conjunto dos RGs vlidos no Brasil nmeros de 9 dgitos Idade: conjunto de idades possveis para clientes inteiro entre 0 e 100 Cliente={Nome, RG, Idade} Dom(Nome) = Nomes dos Clientes Dom(RG) = RG Dom(Idade) = Idade
Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

Esquema da relao Cliente:

Domnios dos atributos de Cliente

up n e s
Relaes
Relao r - Instncia do Esquema de Relao R(A1, A2, ..., An) Um instante (snapshot) de relao r, do esquema R(A1, A2, ...,An),
denotado por r(R), o conjunto de n-tuplas r = {t1,t2,...,tn}. Cada tupla t uma lista ordenada de valores t = <v1,v2,...,vn> Uma instncia r(R) um subconjunto do produto cartesiano dos domnios de R r(R) C (Dom(A1) X Dom(A2) X ... X Dom(An)) Exemplo: Esquema da Relao Cliente: Cliente = {Nome, RG, Idade} Possvel relao: R(Cliente) = {<Carlos, 222345, 19>, <Antonio, 672561, 34>, <Jos, 37321, 66>}

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Aspectos Importantes das Relaes
A ordem das tuplas e dos atributos da relao no tem
importncia

Matematicamente no existe a idia de ordem em conjuntos OBS: na implementao de um SGBDR existe uma ordem fsica de armazenamento das tuplas, determinando uma ordem na recuperao das informaes

Todo atributo possui valor atmico Cada atributo numa relao tem um nome que nico
dentro da relao Todas as tuplas devem ser nicas (conjunto) A fundamentao matemtica est sempre presente

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Restries das Relaes
A ordem das tuplas e dos atributos da relao no tem
importncia Restrio de domnio: o valor de cada atributo A deve ser um valor atmico pertencente a Dom(A) Restrio de unicidade: deve ser possvel identificar univocamente cada tupla da relao

para garantir esta propriedade: especifica-se uma Restrio de Unicidade definio de superchaves e chaves

Restrio de vazio para atributo: determina quando o


valor especial null ou no permitido para um atributo

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Conceitos de Chaves
Chave designa o conceito de item de busca, ou seja, um dado que
ser empregado nas consultas base de dados. um conceito lgico da aplicao Superchave

Conjunto de um ou mais atributos que, tomados coletivamente nos permite identificar de maneira unvoca uma tupla em um conjunto de tuplas Uma superchave pode ter atributos redundantes uma superchave da qual no se pode retirar nenhum atributo e ainda preservar a propriedade de identificao unvoca (superchave mnima) uma superchave para qual nenhum subconjunto possa ser uma superchave. a chave candidata que escolhida pelo projetista para identificar tuplas dentro de um conjunto de tuplas
Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

Chave

Chave Candidata

Chave primria

up n e s
Conceitos de Chaves e ndice
Convenciona-se sublinhar os atributos que compem a chave
primria. Ex.:Empregado (Matrcula, Nome, Endereo, Funo,Salrio) Um mesmo atributo pode ter nomes diferentes nas diversas relaes em que participa. Ex.: Empregado (Matrcula, Nome, Endereo, Funo, Salrio, Dep) e Departamento(CodDepart, Nome, Endereo) Atributos que representam diferentes conceitos podem ter o mesmo nome ndice um recurso fsico visando otimizar a recuperao de uma informao, via um mtodo de acesso. Seu objetivo principal est relacionado com a performance de um sistema Uma chave pode ser utilizada como ndice, mas um ndice no necessariamente uma chave A forma de criao do ndice depende do ambiente relacional

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Restries de Integridade
Regras a respeito dos valores que podem ser armazenados nas relaes

objetivo: garantir consistncia quando definidas, devem ser sempre satisfeitas na base de dados Toda tupla tem um conjunto de atributos que a identifica de maneira nica na relao

Unicidade da Chave:

Integridade de Entidade

Nenhum valor de chave primria poder ser NULO Se a chave for composta por mais de um atributo, nenhum deles pode ser nulo
Uma relao pode ter um conjunto de atributos que contm valores com mesmo domnio de um conjunto de atributos que forma a chave primria de uma outra relao. Este conjunto chamado chave estrangeira Utilizada para manter consistncia entre tuplas de duas relaes No pode existir na chave estrangeira um valor que no exista na tabela na qual ela chave primria Define que se uma tupla t1 em uma relao R1 faz referncia a uma relao R2, ento t1 deve fazer referncia a uma tupla existente em R2

Integridade Referencial

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Restries de Integridade Referencial
Um conjunto de atributos FK do esquema da relao R1 uma
Chave Estrangeira de R1, que faz referncia relao R2, se ele satisfazer as duas regras seguintes:

Os atributos de FK compatvel em domnio com a chave primria PK de R2 O valor dos atributos FK numa tupla ti qualquer da relao R1: ou igual ao valor do atributos PK de alguma tupla tj da relao R2 (ti[FK] = tj[PK]), ou nulo (ti[FK] = null) Indicao da chave estrangeira esquema da relao:

Exemplo:

Departamento = {Codigo, NomeD} Empregado = {NomeE, Departamento}

Integridade Semntica: Define aspectos comportamentais do BD.


So especificadas e impostas dentro dos programas de aplicao. Exemplo: O salrio de um empregado no deveria exceder do supervisor do empregado
Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
As 12 Regras de Codd
Codd, ao definir o modelo relacional, estabeleceu um conjunto de 12 regras para a
determinao de um banco de dados ser realmente relacional As regras so:

Toda informao num banco de dados relacional apresentada a nvel lgico por valores em tabelas Todo dado em um banco de dados relacional tema garantia de ser logicamente acessvel, recorrendo-se a uma combinao do nome da tabela, um valor de chave e o nome da coluna Tratamento sistemtico de valores nulos (ausncia de dado) O dicionrio de dados (catlogo) relacional ativo baseado no modelo relacional O SGBD relacional deve ter uma linguagem para definio, detalhamento e manipulao de dados Tratamento das atualizaes de vises dos dados Tratamento de alto nvel para insero, atualizao e eliminao de dados Independncia dos dados fsicos (mudana na memria e no mtodo de acesso) Independncia dos dados lgicos (mudanas de qualquer tipo nas tabelas bsicas, ex: diviso de uma tabela por linha ou coluna) Independncia das restries de integridade Independncia de distribuio No subverso das regras de integridade ou restries quando se utiliza uma linguagem de baixo nvel

Raros so os bancos de dados que se enquadram em mais do que 10 destas regras


Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Mapeamento Modelo E-R para Modelo Relacional MER - modelo conceitual:

Modelo Relacional - modelo fsico:


pode ser usado para especificar conceitualmente a estrutura dos dados de uma aplicao
pode ser usado para suportar a implementao de Aplicaes necessrio que exista um SGBD que se apie no modelo relacional: um SGBDR

Mapeamento: permite que se traduzam esquemas


concebidos com um modelo de contedo semntico mais alto para um esquema utilizando um modelo fsico, preservando as propriedades do modelo semntico (mais rico)
Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Mapeamento Modelo E-R para Modelo 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 prestabelecidas
Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Um Simples Exemplo de Mapeamento

Funcionrio(CIC,Nome,Data_Nasc)

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Etapas do Mapeamento
Etapa 1:

Para cada entidade E no modelo ER criada uma tabela T1 no Modelo Relacional que inclua todos os atributos simples de E Para cada atributo composto, so inseridos apenas os componentes simples de cada um Um dos atributos chaves de E deve ser escolhida como a chave primria de T1

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

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Etapas do Mapeamento
Etapa 2:

Para cada entidade fraca EF com entidade proprietria E no modelo ER, criada uma tabela T1 no Modelo Relacional incluindo todos os atributos simples de EF Para cada atributo composto, so inseridos apenas os componentes simples de cada um A chave primria desta relao T1 ser composta pela chave parcial da entidade fraca EF mais a chave primria da entidade proprietria E
Dependente = {DependNome, FNmero, DataNiver, Parentesco}

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Etapas do Mapeamento
Etapa 3:

Para cada relacionamento regular com cardinalidade 1:1 entre entidades E1 e E2 que geraram as tabelas T1 e T2 respectivamente, devemos escolher a chave primria de uma das relaes (T1, T2)e inser-la como chave estrangeira na outra relao; Se um dos lados do relacionamento tiver participao total e outro parcial, ento interessante que a chave do lado com participao parcial seja inserido como chave estrangeira no lado que tem participao total;

Funcionrio = {FNmero, FNome, Endereo, Salrio} Departamento = {DNmero, Dnome, FNmero, DataIni}
Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Etapas do Mapeamento
Etapa 4:

Para cada relacionamento regular com cardinalidade 1:N entre entidades E1 e E2 respectivamente e que geraram as tabelas T1 e T2 respectivamente, deve-se inserir a chave primria de T1 como chave estrangeira em T2
Departamento = {DNmero, Dnome, FNmero, DataIni} Projeto = {PNmero, Pnome, DNro}

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Etapas do Mapeamento
Etapa 5:

Para cada relacionamento regular com cardinalidade N:N entre entidades E1 e E2, cria-se uma nova tabela T1, contendo todos os atributos do relacionamento mais o atributo chave de E1 e o atributo chave de E2 A chave primria de T1 ser composta pelos atributos chave de E1 e E2;

Participar = {FNum, PNum, horas}

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Etapas do Mapeamento
Etapa 6:

Para cada relacionamento n-rio, n > 2, cria-se uma tabela T1, contendo todos os atributos do relacionamento A chave primria de T1 ser composta pelos atributos chaves das entidades participantes do relacionamento

Oferecer = {OCod, CCod, FNum, Horrio}

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Etapas do Mapeamento
Etapa 7:

Existem duas maneiras de tratar atributos multivalorados no mapeamento:


Sabendo uma estimativa do nmero de ocorrncias do atributo. Assim, pode-se adicionar relao quantos atributos forem necessrios Caso do nmero de ocorrncias do atributo seja indefinido, criase uma nova relao.

LocalDep = {DNmero, Localizao}

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

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Etapas do Mapeamento

Etapa 8: Mapeamento de Especializaes

Trs alternativas para mapeamento


Tabela nica para entidade genrica e suas

especializaes Tabelas para a entidade genrica e as entidades especializadas Tabelas apenas para as entidades especializadas

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Etapas do Mapeamento

Alternativa 1:

Tabela nica para entidade genrica e suas especializaes

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Etapas do Mapeamento

Alternativa 2:

Tabelas para a entidade genrica e as entidades especializadas

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Etapas do Mapeamento

Alternativa 3:

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

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Exerccio 1

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

up n e s
Exerccio 2

Ronaldo Celso Messias Correia ronaldo@fct.unesp.br

Potrebbero piacerti anche