Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Banco de Dados I
Modelo Relacional
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
Instncia
up n e s
Modelo Relacional
Exemplo de uma tabela:
Atributo Nome
Tupla Relao
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
up n e s
Domnios
Especificao do Domnio
possveis para pessoas Cdigos de Disciplinas: conjunto dos cdigos das disciplinas oferecidas
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
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
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
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>}
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
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
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
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
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:
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
up n e s
Mapeamento Modelo E-R para Modelo Relacional MER - modelo conceitual:
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
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)
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}
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}
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}
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;
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
up n e s
Etapas do Mapeamento
Etapa 7:
up n e s
Etapas do Mapeamento
especializaes Tabelas para a entidade genrica e as entidades especializadas Tabelas apenas para as entidades especializadas
up n e s
Etapas do Mapeamento
Alternativa 1:
up n e s
Etapas do Mapeamento
Alternativa 2:
up n e s
Etapas do Mapeamento
Alternativa 3:
Tabelas apenas para as entidades especializadas No deve ser aplicado para especializaes parciais
up n e s
Exerccio 1
up n e s
Exerccio 2