apostila2 intr bd_tecinformatica_necioveras

31
Notas Didáticas Prof. Luiz Camolesi Jr. Pg. 1 Parte IV (Projeto Lógico de BD Relacional) Projeto Lógico de BD Relacional 31 páginas Colaborador: Prof. Osvaldo K .Takai INTRODUÇÃO NOTAÇÃO MATEMÁTICA CHAVES RESTRIÇÕES DE INTEGRIDADE OPERAÇÕES E ÁLGEBRA RELACIONAIS MAPEAMENTO (M-ER PARA M-RELACIONAL) NORMALIZAÇÃO SGBDR (CARACTERÍSTICAS) EXEMPLOS DE ÁLGEBRA RELACIONAL EXERCÍCIOS IV

Upload: leearagao

Post on 21-May-2015

581 views

Category:

Documents


4 download

DESCRIPTION

Banco de Dados ll

TRANSCRIPT

Page 1: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 1 – Parte IV (Projeto Lógico de BD Relacional)

Projeto Lógicode BD Relacional

31 páginas

Colaborador: Prof. Osvaldo K .Takai

♦♦ IINNTTRROODDUUÇÇÃÃOO

♦♦ NNOOTTAAÇÇÃÃOO MMAATTEEMMÁÁTTIICCAA

♦♦ CCHHAAVVEESS

♦♦ RREESSTTRRIIÇÇÕÕEESS DDEE IINNTTEEGGRRIIDDAADDEE

♦♦ OOPPEERRAAÇÇÕÕEESS EE ÁÁLLGGEEBBRRAA RREELLAACCIIOONNAAIISS

♦♦ MMAAPPEEAAMMEENNTTOO ((MM--EERR PPAARRAA MM--RREELLAACCIIOONNAALL))♦♦ NNOORRMMAALLIIZZAAÇÇÃÃOO

♦♦ SSGGBBDDRR ((CCAARRAACCTTEERRÍÍSSTTIICCAASS))♦♦ EEXXEEMMPPLLOOSS DDEE ÁÁLLGGEEBBRRAA RREELLAACCIIOONNAALL

♦♦ EEXXEERRCCÍÍCCIIOOSS

IV

Page 2: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 2 – Parte IV (Projeto Lógico de BD Relacional)

1 - INTRODUÇÃO

Proposto originalmente por E. F. Codd durante seu trabalho no Laboratório de Pesquisasda IBM em San Jose na segunda metade da década de 60, o Modelo Relacional se baseia emconceitos matemáticos para proporcionar uma representação confiável para Bancos de Dados. Desdesua implantação no primeiro SGBDR (Sistema de Gerenciamento de Bancos de Dados Relacionais)da IBM denominado System R, várias melhorias têm sido incluídas ao modelo, o que o torna aindaatual e o mais utilizado no mercado.

O Modelo de Dados Relacional representa os dados em um BD através de um conjunto deRelações (tabelas). Estas relações contêm informações sobre entidades ou relacionamentosexistentes no domínio da aplicação utilizada como alvo para a modelagem. Informalmente umarelação pode ser considerada como uma tabela de valores, onde cada linha desta tabela representauma coleção de valores de dados interrelacionados. Estes conjuntos de valores podem estarrepresentando uma instância de uma entidade ou relacionamento da aplicação. Os nomes fornecidosàs tabelas e às suas colunas podem auxiliar na compreensão do significado dos valores armazenadosem cada uma das suas linhas. Em terminologia do Modelo Relacional, cada linha da relação édenominada de Tupla, o nome da coluna é denominado Atributo da relação.

FCODIGO FNOME FCATEGORIA FCIDADEF1 Santos 20 PiracicabaF2 Machado 10 São PauloF3 Almeida 30 São PauloF4 Ferreira 20 CampinasF5 Rodrigues 30 São Carlos

O Domínio consiste de um grupo de valores atômicos a partir dos quais um ou maisatributos (ou colunas) retiram seus valores reais. Como por exemplo o domínio do atributoFCIDADE consiste no conjunto de todos os nomes legais de cidades.

O Esquema de uma Relação consiste de um conjunto de atributos que descrevem ascaracterísticas dos elementos a ser modelados. É denotado por R(A1, A2, ...., An), onde cadaatributo Ai toma seus valores a partir de um domínio Di; e R é o nome da relação. O número deatributos na relação n, consiste no grau da relação. Os domínios a partir dos quais os atributos darelação retiram seus valores não precisam ser necessariamente distintos. Como exemplo o esquemada relação apresentada na figura anterior é dado por:

Fornecedor (FCodigo, FNome, FCategoria, FCidade)Como Esquema de um BD Relacional entende-se o conjunto de intenções (Esquemas

das Relações) definidas para todas as relações da Base, e um conjunto de restrições de integridade.Sobre os nomes fornecidos aos atributos, é permitido àqueles que representem conceitossemelhantes, possuir ou não o mesmo nome em diferentes relações. Da mesma forma, atributosrepresentando conceitos diferentes podem possuir o mesmo nome. O conjunto de restrições deintegridade define regras básicas que os valores dos atributos devem obedecer quando apareceremem uma relação.

A Instância de uma Relação consiste no conjunto de valores que cada atributo, definidono esquema, assume em um determinado instante, formando o conjunto de tuplas. Ou seja, as

Page 3: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 3 – Parte IV (Projeto Lógico de BD Relacional)

instâncias das relações formam os dados que são armazenados no BD. As relações apresentam asseguintes características:

a). Não há tuplas duplicadas em uma relação;b). Ordem das tuplas na relação não é relevante para diferenciar as relações;c). Os valores dos atributos devem ser atômicos, não sendo divisíveis emcomponentes.

2 – NOTAÇÃO MATEMÁTICAAs seguintes notações serão utilizadas para apresentar alguns conceitos do modelo

relacional:

• Uma relação esquema R de grau n é representada como R(A1, A2, ..., An).• Uma tupla t em uma relação r(R) é representada como t=<v1, v2, ..., vn>, onde vi é o valor

correspondente para atributos Ai. Será utilizado as seguintes notações para se referir aosvalores dos componentes de tuplas:• t[Ai] indica o valor de vi em t para o atributo Ai.• t[Au, Aw, ..., Az] onde Au, Aw, ..., Az é uma lista de atributos de R, indica o conjunto

de valores <vu, vw, ..., vz> de t correspondentes aos atributos especificados na lista.• As letras maiúsculas como Q, R e S denotam nomes de relação.• As letras minúsculas como q, r e s denotam instâncias de relação.• As letras minúsculas como t, u e v denotam tuplas.

Uma relação r (ou instância de relação) da relação esquema R(A1, A2, ..., An), tambémdenotado por r(R), é um conjunto de tuplas r={t1,t2,...,tm}. Cada tupla t é uma lista ordenada de nvalores t=<v1,v2,...,vn>, onde cada valor vi, 1 <= i <= n, é um elemento do dom(Ai) ou um valorespecial null. São utilizadas, com freqüência, o termo intenção da relação para o esquema R eextensão da relação para a instância r(R).

Um esquema da base de dados relacional S é um conjunto de relações esquemas S={R1,R2, ..., Rm} e um conjunto de restrições de integridade RI. Uma instância da base de dadosrelacional DB de S é um conjunto de instâncias de relações DB={r1, r2, ..., rm} tal que ri é umainstância de Ri e que satisfaz as restrições de integridade especificadas em RI.

Uma relação esquema R, denotada por R(A1, A2, ..., An), é um conjunto de atributosR={A1,A2,..., An}. Cada atributo Ai indica o nome do papel de algum domínio D na relação esquemaR. D é chamado domínio de Ai e denotado por dom(Ai). Uma relação esquema é utilizada paradescrever uma relação e R é o nome dessa relação. O grau de uma relação é o número de atributosda relação.

Page 4: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 4 – Parte IV (Projeto Lógico de BD Relacional)

3 - CHAVES

Chave é um conjunto de atributos de uma relação e que pode ser utilizado para arealização de qualquer operação que envolva atributos e valores de atributos.

Super Chave é o maior conjunto de atributos para manipulação e/ouidentificação univocamente de uma tupla em uma relação.

Uma relação pode ter várias chaves para identificação unívoca de suastuplas, onde cada uma é denominada de Chave Candidata. Entre as chavescandidatas é escolhida uma pelo DBA (durante a fase de projeto lógico) para sersuportada pelo SGBD e assim, é mantido automaticamente a restrição deunicidade. Esta chave escolhida é denominada de Chave Primária. Desta forma,uma relação nunca apresentará tuplas repetidas em sua instância, o que significa apossibilidade de identificação de cada tupla separadamente uma da outra.

Da relação apresentada para fornecedores, o conjunto {FCODIGO} é achave primária da relação, uma vez que dois fornecedores não apresentarão omesmo código. Qualquer outro conjunto de atributos da relação FORNECEDORque contenha FCODIGO, como por exemplo {FCODIGO, FNOME, FCIDADE} é uma chavecandidata, no entanto a escolha da chave primária é sempre objetivando minimizar sua quantidadede atributos. Quando uma chave primária for constituída por mais de um atributo da relação esta édenominada de Chave Primária Composta, caso contrário e denominada Chave PrimáriaSimples.

Entre as Chaves Candidatas, aquelas não escolhidas para ser a Chave Primária sãodenominadas de Chaves Alternativas e podem ser utilizadas como chaves de consultas, chaves deordenação lógica (em consultas por formulários e/ou relatórios) ou chaves de ordenação física dasrelações em termos de arquivos de dados.

As Chaves que não pertencem aos conjunto de Chaves Candidatas, ou seja, são chaves quenão permitem a identificação individual das tuplas de relação, são denominadas de ChavesSecundárias.

Um conjunto de atributos Fk em um esquema da relação R1 é uma Chave Estrangeira deR1 se os atributos em Fk possuem o mesmo domínio que os atributos da chave primária de umarelação R2 e os valores de Fk em uma tupla de R1 devem ser os mesmos que ocorrem em tuplas deR2 ou serem nulos, e neste caso é dito que os atributos da Fk se referenciam à relação R2.Importante observar que uma chave estrangeira pode referenciar à sua própria relação, e que tambémnão é necessário aparecer também como chave na relação R1. Para exemplificar o conceito de chaveestrangeira, considere as relações abaixo sobre Peças e Fornecedores, e das peças fornecidas porcada fornecedor (as chaves de cada relação se encontram grifadas):

FORNECEDOR(FCODIGO, FNOME, FCATEGORIA, FCIDADE);

PEÇA (PCODIGO, PNOME, PCOR, PESO, PCIDADE);

FP (FPCODIGO, FCODIGO, PCODIGO, QTDE);

Entre as relações anteriores, pode-se observar que FCODIGO e PCODIGO quandoaparecem na relação FP são chaves estrangeiras desta relação pois são chaves primárias das relaçõesFORNECEDOR e PEÇA, respectivamente.

Page 5: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 5 – Parte IV (Projeto Lógico de BD Relacional)

4 - RESTRIÇÕES DE INTEGRIDADE

São normas estabelecidas para a manter a integridade dosdados armazenados no Banco de Dados. As principais restrições deintegridade são:

Restrição de Domínio: os valores de atributos devem sercoerentes com os domínios correspondentes. Cada Atributos de umarelação é definido com base em um domínio de valores (exemplos:Idade, seu domínio são os números inteiros positivos; Salários, seudomínio são os números reais positivos).

Restrição de Chave Primária (unicidade): cada valor de chave primária deve ser únicodentro de seu escopo (a relação a que pertence).

Restrição de Entidade: o valor de uma chave primária nunca deve ser nulo. O valor nulonão permite a identificação de uma tupla.

Restrição de Referência: toda referência a uma tupla através de chave estrangeira deveser verificada, ou seja, toda tupla referenciada deve previamente existir no Banco de Dados a menosque esta restrição seja explicitamente desprezada pelo usuário do Banco de Dados.

Outras restrições são denominadas de Restrições Semântica, que podem ou não seremespecificadas ou garantidas por um BD Relacional. Estas restrições ditas semânticas se referem maisespecificamente sobre valores ou características que determinados atributos podem assumir nocontexto de uma determinada aplicação.

As Restrições Semânticas consistem em definir intervalos de valores para os atributos,limites, condições de existência, e outras. Exemplos:- Salário: valores no intervalo de 150,00 a2400,00 reais; Categoria: Senior se tempo de trabalho >20, Pleno se tempo de trabalho é >10, Júniorcaso contrário.

5 – OPERAÇÕES E ÁLGEBRA RELACIONAISAs operações no Modelo Relacional abordam 4 categorias. Todas estas operações devem

obedecer as restrições de integridade, no entanto quando estas restrições forem violadas em algumasdas operações, o SGBD pode tomar uma ação adaptativa (que permitirá a execução da operação maiscom algumas restrições) ou uma ação de esclarecimento da impossibilidade de execução.

Inserção

Remoção

Atualização

Inserção

Remoção

Atualização

União

Interseção

Diferença

Produto Cart.

Estrutura Dados Conjunto Tabela

Seleção

Projeção

Junção

Page 6: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 6 – Parte IV (Projeto Lógico de BD Relacional)

ESTRUTURA: as operações sobre a estrutura apoiam os DBAs na tarefa de definição emanutenção do Esquema de Dados Relacional.

INSERÇÃO : adição de novas tabelas ao Esquemade Dados. Exemplo: adição de uma relação de funcionários eseus correspondentes atributos (nome, endereço, idade,salário, cargo).

REMOÇÃO : retirada de tabelas e atributos.Exemplo: a retirada de uma relação empresas_estrangeirasque não tem mais utilizada no Banco de Dados (neste casotodas as suas tuplas são retiradas desde que não violem asrestrições de referências) ou mesmo de certos atributos deuma relação.

ATUALIZAÇÃO: adição de atributos às tabelas existentes no Esquema de Dados.Exemplo: colocação de novos atributos (tempo de serviço e estado civil) na relação funcionários.

É importante salientar que as operações sobre estrutura (atingindo o Esquema de Dados)permitem ao DBA adaptar o Banco de Dados às novas necessidades de informação de uma empresa.

Apesar de oferecerem esta facilidade, estas operações não devem ser utilizadas paracorrigir erros decorrentes das fases de projeto, pois sua utilização trás prejuízos (altos custos demanutenção corretiva) à empresa e desvaloriza os profissionais envolvidos.

DADOS: operações sobre as tuplas de uma relação já existente no Banco de Dados

INSERÇÃO: adição de uma ou mais tuplasem uma relação. A ação do SGBD diante de um erroda operação pode ser: rejeitar a operação, ou pedirpara corrigir o campo que provocou a violação.Exemplo: Dada uma relação funcionários definida noEsquema de Dados, pode-se inserir os dados de umapessoa recém contratada (Nome: João da Silva,Idade: 34, Endereço: Rua 4 Nro. 8 Cidade Rio Claro,Salário: , Cargo: Operador de torno CNC).

REMOÇÃO: retirada de tuplas de uma relação. Aação do SGBD diante de um erro da operação pode ser: rejeitara operação; realizar uma série de remoções em cascata;modificar os valores dos atributos referenciados queprovocaram a violação (trocando por nulo, ou para um valorque faz referência a outra tupla válida de uma relação).Exemplo: Dada uma relação funcionários definida no Esquemade Dados, pode-se retirar os dados de uma pessoa dispensada(Nome: Maria da Silva, Idade: 26, Endereço: Rua 4 Nro. 8Cidade Rio Claro, Salário: 1000, Cargo: Manobrista de D8).

Relação

Banco deDados

Relaçãotupla

Relação

tupla

Page 7: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 7 – Parte IV (Projeto Lógico de BD Relacional)

ATUALIZAÇÃO: alteração de algum valor deatributo de uma tupla. A alteração do valor de uma chaveprimária segue como se fosse uma remoção seguida deuma posterior inserção. Exemplo: Dada uma relaçãofuncionários definida no Esquema de Dados, pode-secorrigir, atualizar ou mesmo estabelecer algumainformação antes desconhecida, como o salário de João daSilva (Salário: 1200,00).

A Álgebra Relacional apresenta uma série de operadores que aplicados a umadeterminada relação, ou seja, sobre o seu conjunto de tuplas, resultam em uma outra relação. Osoperadores da álgebra relacional podem ser divididos em dois grupos:

i). Operadores de Conjuntos: são operadores típicos definidos pela álgebra paraconjunto, tais como união, interseção, diferença e produto cartesiano.

ii). Operadores de Tabelas: são operadores especiais definidos especialmente para amanipulação de tuplas, tais como, Select, Project e Join.

CONJUNTO: operações que se aplicam a duas relações que obedecem à "compatibilidadede união", ou seja, ambas as relações devem apresentar atributos que pertençam respectivamente aosmesmos domínios. Em termos das relações (A e B) usadas nas operações:

- ambas podem estar fisicamente armazenadas no mesmo Banco de Dados; ou- estarem fisicamente armazenadas em diferentes Bancos de Dados; ou- uma estar armazenada e a outra ser originária (relação resultante) de uma operaçãode conjunto anteriormente executada; ou- ambas serem resultantes de operações de conjunto realizadas anteriormente.

UNIÃO (∪): o resultado da união deduas relações consiste no conjunto de todas astuplas das duas relações, porém sem redundânciade tuplas. Importante salientar que duas tuplassão semelhantes quantos todos os valores deatributos forem iguais em seus respectivosatributos. Exemplo: União de uma relação dosfuncionários da matriz de São Paulo com arelação dos funcionários da filial de Campinas.Existe a possibilidade de execução da UniãoExclusiva (∪|) na qual as tuplas repetidas nãoaparecem na resultante.

Relaçãovalor

Relação

A

Relação

B

Relação

Resultantetupla x

tupla x

tupla x

Page 8: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 8 – Parte IV (Projeto Lógico de BD Relacional)

INTERSEÇÃO (∩): o resultado dainterseção de duas relações consiste no conjuntode todas as tuplas que pertençam às duasrelações. Exemplo: Interseção da relação dosfuncionários com idade maior que 35 anos coma relação dos funcionários com salário acima de1500,00 reais. O resultado será uma relaçãocom os funcionários com idade maior que 35anos e que recebem acima de 1500,00 reais.

DIFERENÇA (-): a diferençaentre duas relações é relação resultanteformada pelas tuplas que pertencem a umarelação e que não pertencem a outra.Diferença entre as relações A e B (A - B) é oconjunto de tuplas que aparecem na relaçãoA e não aparece na relação B. Diferençaentre as relações B e A (B - A) é o conjuntode tuplas que aparecem na relação B e nãoaparecem na relação A. Exemplo: Diferençada relação dos funcionários com idade maiorque 35 anos com a relação dos funcionárioscom salário acima de 1500,00 reais. O resultado será uma relação com os funcionários com idademaior que 35 anos e que não recebem acima de 1500,00 reais.

PRODUTO CARTESIANO (X): aplica-se a duasrelações que não necessitam ser "compatíveis para união",resultando em uma relação que apresenta tuplas formadas pelacombinação de todas as tuplas de uma relação com todas astuplas da outra relação (R(A1, A2, ..., An) X S(B1, B2, ..., Bm) =

Relação Produto(A1, A2, ..., An, B1, B2, ...,Bm). Exemplo:Produto Cartesiano de uma relação de todos os alunos doterceiro ano de seu curso com uma relação com todas asdisciplinas do terceiro ano de seu curso. O resultado será umarelação de todos os alunos do terceiro ano e suas disciplinas.

Relação

A

Relação

B

Relação

Resultantetupla xtupla y

tupla x

tupla y

tupla xtupla y

Relação

A

Relação

BRelação

B - A

Relação

A - B

RelaçãoB

RelaçãoA

RelaçãoResultante

Page 9: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 9 – Parte IV (Projeto Lógico de BD Relacional)

TABELA: operações que se aplicam a quaisquer relações.

SELEÇÃO (σ): operação aplicada sobreuma relação de modo a selecionar um sub-conjuntode tuplas (com todos os seus atributos) que satisfaçama um determinada condição (simples ou composta). Osub-conjunto selecionado forma uma relaçãoresultante temporária. Esta condição aplica-se apenasem uma única relação sendo verificadaindividualmente para cada tupla da relação. Exemplo:Dado uma relação dos funcionários da empresa,selecionar aqueles que recebem salário > 1000,00reais.

A operação SELECT é denotada por:

σ<condição de seleção> (<nome da relação>)

onde o símbolo σ é usado para denotar o operador SELECT, e a condição de seleção éuma expressão Booleana especificada sobre atributos da relação especificada.

A relação resultante da operação SELECT tem os mesmos atributos da relaçãoespecificada em <nome da relação>. A expressão Booleana especificada em <condição de seleção> éconstruída a partir de cláusulas da forma:

<nome de atributo> <operador de comparação> <valor constante>, ou<nome de atributo> <operador de comparação> <nome de atributo>

Onde <nome de atributo> é o nome de um atributo da <nome da relação>, <operador decomparação> é normalmente um dos operadores relacionais {=, <, ≤, ≥, ≠} e <valor constante> é umvalor constante. As cláusulas podem ser utilizadas em conjunto com os operadores lógicos {AND,OR NOT}, seguindo a Lógica Booleana, para formar uma condição de seleção composta.

Exemplo, suponha que se deseja selecionar as tuplas de todos os empregados que outrabalham no departamento 4 e faz mais de 2500 ou trabalha no departamento 5 e faz mais que 3000.Neste caso, pode-se especificar a consulta da seguinte forma:

σ(NDEP = 4 AND SALÁRIO > 2500) OR (NDEP = 5 AND SALÁRIO > 3000) (EMPREGADO)

O operador SELECT é comutativo; isto é,

σ<cond1> (σ<cond2> (R))= σ<cond2> (σ<cond1> (R))

Assim, uma seqüência de SELECTs pode ser aplicado em qualquer ordem. Além disso,pode-se sempre trocar operadores SELECT em cascata com a conjuntiva AND; isto é:

σ<cond1> (σ<cond2> (...σ<condn> (R) ...))=σ<cond1> AND <cond2> AND ... AND <condn>(R)

RelaçãoOrigem Relação

Resultante

Page 10: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 10 – Parte IV (Projeto Lógico de BD Relacional)

PROJEÇÃO (π atributos): operaçãoaplicada sobre uma relação de modo a selecionaros atributos de uma relação de acordo com umalista de atributos oferecida. Os atributos sãoexibidos na mesma ordem que aparecem na lista.Como resultado tem-se uma relação onde nãoexistem repetições de tuplas. Exemplo: Projetarapenas o nome, idade e salário de uma relação defuncionários.

A relação resultante é uma tabela semrepetições. Caso na lista de atributos estiverincluída a chave primária da relação então tem-secerteza que não há repetições.

A forma geral do operador PROJECT é:π <lista de atributos> (<nome da relação>)

onde π é o símbolo usado para representar o operador PROJECT e <lista de atributos> éuma lista de atributos da relação especificada por <nome da relação>. A relação resultante temapenas os atributos especificados em <lista de atributos> e aparecem na mesma ordem que aparecemna lista. Assim, o grau é igual ao número de atributos em <lista de atributos>.

Convém salientar que, caso a lista de atributos não contenha atributos chaves, então éprovável que tuplas duplicadas apareçam no resultado. A operação PROJECT removeimplicitamente quaisquer tuplas duplicadas, tal que o resultado da operação PROJECT seja umconjunto de tuplas e assim, uma relação válida.

O número de tuplas na relação resultante sempre será igual ou menor que a quantidade detuplas na relação original.

Note-se que: π <lista1> (π <lista2> (R)) = π <lista1> (R)

caso <lista2> contém os atributos de <lista1>; caso contrário, o lado esquerdo daigualdade acima estará incorreta. A comutatividade não é válida para PROJECT.

JUNÇÃO (! condição): operação utilizadapara combinar tuplas relacionadas (via chaveprimária/chave estrangeira) de duas ou mais relações demodo a estabelecer virtualmente uma única tupla. Estacombinação é realizada de acordo com uma condiçãoindicada. Exemplo: Junção da relação de peçasfornecidas com a relação de fornecedores (em comum asduas relações possuem o código do fornecedor). Arelação resultante terá tuplas contendo o código dofornecedor, demais atributos do fornecedor e osatributos de peça, estando juntas apenas as peças e seusrespectivos fornecedores. Tuplas cujos valores dos atributos join são null não aparecem no resultado.

A operação Junção (“join”) onde a condição for uma expressão explícita de comparaçãoqualquer (=, <, <=, >, >=, <>) é denominada de Theta Join (θθθθ! condição), exemplo:fornecedor.código <> peça.código. Quando o operador de comparação for o de igualdade, teremos o

RelaçãoOrigem

Atr

ibut

o a

Atr

ibut

o b

Atr

ibut

o c

Atr

ibut

o a

Atr

ibut

o b

Atr

ibut

o c

RelaçãoResultante

a, b, c

Relação

ARelação

B

Relação Resultante

Page 11: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 11 – Parte IV (Projeto Lógico de BD Relacional)

Equi Join (=! condição) (exemplo: fornecedor.código = peça.código) Como resultado de um EquiJoin teremos tuplas apresentando pares de atributos com valores idênticos. O Natural Join (*!condição) consiste em uma operação na qual do cruzamento de uma chave primaria e uma chaveestrangeira, apenas a chave primária aparece na relação resultante. Quando os atributos sobre osquais se aplicam o Natural Join apresentarem o mesmo nome em ambas as relações, a condição doJoin pode ser totalmente omitida.

A forma geral da operação JOIN sobre duas relações R(A1, A2, ..., An) e S(B1, B2, ..., Bm) é: R ! S

<condição join>

O resultado de JOIN é uma relação Q com n+m atributos Q(A1, A2, ..., An, B1, B2, ..., Bm)nesta ordem; Q tem um tupla para cada combinação de tuplas uma de R e uma de S onde quer

que a combinação satisfaça a condição join. Esta é a principal diferença entre CARTESIANPRODUCT e JOIN; em JOIN, apenas combinações de tuplas que satisfazem a condição join é queaparecerá no resultado, já no CARTESIAN PRODUCT, todas as combinações de tuplas sãoincluídas no resultado. A condição join é especificada sobre atributos de R e de S, e é avaliada paracada combinação de tuplas.

Uma condição join tem a forma: <condição> AND <condição> AND ... AND <condição>,onde cada condição é da forma Ai θ Bj, Ai é um atributo de R, Bj é um atributo de S, Ai e Bj têm omesmo domínio e θ é um dos operadores de comparação {=, <, ≤, >, ≥, ≠}.

Outras formas explícitas de variações da operação de “join” são:

• LEFT OUTER JOIN : Exemplo - A LEFT OUTER JOIN B permite a junção darelação A com a relação B, sendo colocadas nas relação resultante todas as tuplasda relação A mesmo que não tenham correspondentes na relação B.

• RIGHT OUTER JOIN : Exemplo - A RIGHT OUTER JOIN B permite a junção darelação A com a relação B, sendo colocadas nas relação resultante todas as tuplasda relação B mesmo que não tenham correspondentes na relação A.

• FULL OUTER JOIN : Exemplo - A FULL OUTER JOIN B permite a junção darelação A com a relação B, sendo colocadas nas relação resultante todas as tuplasda relação A e da relação B mesmo que não tenham correspondentes.

Na relação resultante de um Outer Join, os atributos de tuplas que não possuemcorrespondente são apresentados com o valor nulo (NULL). Exemplo:

Fcodigo Fnome Fcategoria Fcidade Cod_Peça Preço Qtde.F1 Santos 20 Piracicaba 12 1,40 230F2 Machado 10 São Paulo 45 3,20 450F3 Almeida 30 São Paulo 71 5,00 78F4 Ferreira 20 Campinas NULL NULL NULLF5 Rodrigues 30 São Carlos NULL NULL NULL

Tabela Resultante da Operação:- Fornecedor LEFT OUTER JOIN Peça

Page 12: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 12 – Parte IV (Projeto Lógico de BD Relacional)

6 - MAPEAMENTO (M-ER P/ M-RELACIONAL)

O Modelo Entidade Relacionamento éresponsável por realizar uma representação dosdados de uma determinada aplicação a um nívelmais conceitual, um pouco distante da forma comoos seus elementos serão efetivamenteimplementados. Os modelos baseados em registros,entre eles o relacional, fornece uma representaçãodos dados de forma mais próxima como estes seencontrarão quando forem definidos os arquivospara o BD.

Os passos necessários para se realizar o mapeamento da modelagem conceitual(representado pelo DER) para a modelagem lógica são:

• Regra 1: Cada Tipo deEntidade é mapeado em umaRelação.

• Regra 2: Os Tipos deAtributos (mono-valorados e nãocompostos) de Tipos de Entidadespresentes no DER são mapeados emAtributos de Relação. OsIdentificadores são mapeados em Chaves Primárias.

• Regra 3: Para cada Tipo deEntidade Fraca é mapeado uma Relaçãocontendo todos os Atributos referentes aosTipos de Atributos da Entidade (inclusiveidentificador) e acrescido de uma chaveestrangeira referente à chave primária doTipo de Entidade Forte. Os Tipos deEntidades Fracas somente poderão sermapeados após os Tipos de EntidadesFortes.

MERM-REL

ab

c

a b c

E

E

ab

c

a f dE1 d

E

E1 f

Page 13: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 13 – Parte IV (Projeto Lógico de BD Relacional)

• Regra 4: Para Tipos deRelacionamentos Unários eBinários (cardinalidade máxima1:1 e cardinalidade mínima 1:1)existe a possibilidade demapeamento dos Tipos deEntidades envolvidos em umaúnica Relação (contrariando a regra1).

• Regra 5: Tipos deRelacionamentos Unários eBinários (cardinalidade máxima1:1 e cardinalidade mínima 0:0,0:1 ou 1:0) são mapeados atravésda colocação da chave primária(pertencente a uma das relaçõesenvolvidas) na forma de chaveestrangeira na outra relação.Preferivelmente a relação do lado0 (ou seja, aquela que mapeia oTipo de Entidade comcardinalidade mínima 1) deve receber a chave primária da outra relação.

• Regra 6: Tipos deRelacionamentos Unários e Binários(cardinalidade máxima 1:N ou N:1 ecardinalidade mínima 1:1, M:1 ou 1:M)são mapeados através da colocação dachave primária de uma das relaçõesenvolvidas como chave estrangeira naoutra relação. Obrigatoriamente arelação do lado N (ou seja, aquela quemapeia o Tipo de Entidade comcardinalidade máxima 1) deve receber achave primária da outra relação.

ab

c

a b c d fE1E2

d

E2

E1 f1:1

1:1

R

ab

c

E1_R

d

E2

E1 f0:1

1:1

R

f d a

ab

c

E1_R

d

E2

E1 f1:N

1:1

R

f d a

Page 14: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 14 – Parte IV (Projeto Lógico de BD Relacional)

• Regra 7: Tipos deRelacionamentos Unários eBinários (cardinalidade máxima1:N ou N:1 e cardinalidademínima 0:0, 1:0, 0:1, 0:M ouM:0) são mapeados em relações“especiais” contendo uma chaveprimária criada artificialmente eas chaves primárias das duasrelações envolvidas.Opcionalmente a chave primáriapode ser formada pelacomposição das duas chavesestrangeiras. Outra forma demapeamento é utilizar a regra 6 tendo como diferença um dos lados do Tipo de Relacionamento queterá a cardinalidade máxima 0 e não 1.

• Regra 8: Tipos de RelacionamentosUnários e Binários (cardinalidade máxima M:Ne independente da cardinalidade mínima) sãomapeados em relações “especiais” contendo umachave primária criada artificialmente e as chavesprimárias das relações envolvidas.Opcionalmente a chave primária pode serformada pela composição das chavesestrangeiras.

• Regra 9: Tipos de Relacionamentos Ternários (cardinalidade máxima M:N:P eindependente da cardinalidade mínima) e Tipos de Relacionamentos Quaternários (cardinalidade

máxima M:N:P:Q e independente dacardinalidade mínima) são mapeados emrelações “especiais” contendo uma chaveprimária criada artificialmente e as chavesprimárias das relações envolvidas.Opcionalmente a chave primária pode serformada pela composição das chavesestrangeiras.

• Regra 10: Os Tipos deAtributos (mono-valorados e nãocompostos) de Tipos de Relacionamentos(Unários, Binários, Ternários ouQuaternários) presentes no DER são

mapeados em Atributos das Relações que respectivamente mapeiam os Tipos de Relacionamentos.

ab

c

R

d

E2

E1 f0:N

1:1

R

r f a

ab

c

R

d

E2

E1 f0:N

1:M

R

r f a

a

b

c

R

d

E2

E1 f

R

a b f h

E3h

Page 15: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 15 – Parte IV (Projeto Lógico de BD Relacional)

• Regra 11: Os Tipos de Atributos (multi-valorados) de Tipos de Entidades e Tipos deRelacionamentos (Unários, Binários, Ternários ou Quaternários) presentes no DER são mapeados deduas formas:

• Regra 11.1: Não tendo

conhecimento da quantidade deocorrências envolvidas então omapeamento estabelece uma Relação“especial” contendo a chave primária darelação envolvida (isto é, a relaçãomapeada do Tipo de Entidade a quepertence o Tipo de Atributo Multi-valorado) e o próprio Atributo querepresenta o Tipo de Atributo Multi-valorado. Ambos os atributos podemformar a chave primária composta darelação. Caso o Tipo de Atributo Multi-valorado seja composto então seu componentes são incluídos na relação estabelecida.

• Regra 11.2: Tendo

conhecimento da quantidade deocorrências envolvidas entãoestabelece-se esta quantidade deatributos na relação que representao Tipo de Entidade do respectivoTipo de Atributo. (opção menos

aconselhável)

• Regra 12: As Abstrações de Generalização/Especialização são mapeadas de seisformas:

• Regra 12.1: Os Tipos deEntidades genéricos são mapeados comseus Tipos de Atributos, Identificadorese os predicados das especializações(que são também atributos de relação).Os Tipos de Entidades específicos sãomapeados com seus Tipos de Atributose o identificador do Tipo de Entidadegenérico. Bom p/ especializaçãoexclusiva.

ab

c

a b

E

E

E_c

a c

ab

c

E a b c1 c2 c3

E

ab

EG

a b pEG

E1 E2fd

p

a d E1

a f E2

Page 16: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 16 – Parte IV (Projeto Lógico de BD Relacional)

• Regra 12.2: Os Tipos deEntidades genéricos são mapeadoscom seus Tipos de Atributos,Identificadores mais sem ospredicados das especializações. OsTipos de Entidades específicos sãomapeados com seus Tipos deAtributos e o identificador do Tipo deEntidade genérico. Bom p/especialização com sobreposição.Opcionalmente, o predicado pode sermapeado como se fosse um Tipo deAtributo Multi-Valorado (regra 11).

•Regra 12.3: Os Tiposde Entidades genéricos e os Tiposde Entidades específicos sãomapeados em uma mesma Relação(mapeamento de Tipos deAtributos, Identificadores e opredicado da especialização). Bomquando os Tipos de Entidadesespecíficos não possuírem muitosTipos de Atributos ou quandoalguns Tipos de Entidadesespecíficos não possuírem Tipos deAtributos.

• Regra 12.4: Os Tipos deEntidades genéricos e os Tipos deEntidades específicos são mapeados emuma mesma Relação (mapeamento deTipos de Atributos, Identificadores massem o predicado da especialização).Bom quando os Tipos de Entidadesespecíficos não possuírem muitos Tiposde Atributos ou quando alguns Tipos deEntidades específicos não possuíremTipos de Atributos e p/ especializaçãocom sobreposição.

ab

EG

a b EG

E1 E2fd

p

a d E1

a f E2

ab

EG

E1 E2fd

p

a b p d fEG_E1_E2

ab

EG

E1 E2fd

p

a b d fEG_E1_E2

Page 17: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 17 – Parte IV (Projeto Lógico de BD Relacional)

• Regra 12.5: Os Tipos deEntidades genéricos e os Tipos deEntidades específicos são mapeados emuma mesma Relação (mapeamento deTipos de Atributos, Identificadores e decada situação do predicado daespecialização que terão valoressim/não).

•Regra 12.6: Os Tipos deEntidades específicos são mapeados emRelações (mapeamento dos Tipos deAtributos próprios, Tipos de Atributos doTipo de Entidade genérico e oIdentificador). Bom quando é freqüente ointeresse do usuário pela totalidade dainformações de uma Entidade. Nãopermite conhecer a especialidade de umaEntidade.

Total Parcial Exclusiva SobreposiçãoRegra 12.1 Bom Ideal Bom Nunca

Regra 12.2 Bom Ideal Nunca BomRegra 12.3 Ideal Bom Bom Nunca

Regra 12.4 Ideal Bom Ideal BomRegra 12.5 Bom Bom Nunca BomRegra 12.6 Bom Nunca Bom Nunca

• Observações: Para critérios estabelecidos pelo usuários (isto é, não existem predicados)as regras 12.2 e 12.6 são aconselhadas. Identificadores de Tipos de Entidades específicos sãomapeados como chaves candidatas.

ab

EG

E1 E2fd

p

a b p1 p2 p3 d fEG_E1_E2

ab

EG

a b dE1

E1 E2fd

p

a b fE2

Page 18: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 18 – Parte IV (Projeto Lógico de BD Relacional)

• Regra 13: Na Abstração de Composição/Decomposição, o mapeamento dos Tipos deEntidades compostos e os Tipos de Entidades componentes segue as seguintes opções:

• Regra 13.1: Caso aAbstração seja de composição físicaentão o mapeamento da Abstração é omapeamento dos Tipos deRelacionamentos de composição queestão implicitamente representados pelaAbstração. Dependendo dacardinalidade mínima destes Tipos deRelacionamentos utiliza-se a regra 6 oua regra 7. Outra opção é mapear aAbstração em um Relação contendo aschaves primárias das Relaçõesenvolvidas (isto é, relações mapeadasdos Tipos de Entidade compostos ecomponentes) e opcionalmente atributosde quantidade para cada chave primária.

• Regra 13.2: Caso a Abstração sejade composição lógica então o mapeamento daAbstração é o mapeamento dos Tipos deRelacionamentos de composição comcardinalidades máximas N:M, indenpendenteda cardinalidade mínima destes Tipos deRelacionamentos, ou seja utiliza-se a regra 8.

•Regra 13.3: Caso a Abstração sejade composição com dependência existencialentão o mapeamento da Abstração é omapeamento dos Tipos de Relacionamentosde composição ligados a Tipos de EntidadesFracas, ou seja utiliza-se a regra 3.

ab

EG

E1 E2fd

h m(f) física

ab

EG

E1 E2fd

h mr1 r2

1:1 1:1

?:N ?:N

ab

EG

E1 E2fd

h m(l) lógica

ab

EG

E1 E2fd

h mr1 r2

?:M ?:M

?:N ?:N

ab

EG

E1 E2fd

h m(cd) com dependência

ab

EG

E1 E2fd

h mr1 r2

Page 19: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 19 – Parte IV (Projeto Lógico de BD Relacional)

• Regra 13.4: Caso a Abstração seja de composição sem dependência existencial então omapeamento da Abstração seque a regra 13.1 ou 13.2, dependendo da Abstração ser física ou lógica.

• Observação: A Abstração de Composição ser total ou parcial não muda a estrutura domapeamento mas sua interpretação.

• Regra 14: As Abstrações deAgregação são mapeadas em relações“especiais” contendo uma chave primáriacriada artificialmente e as chaves primáriasdas duas relações envolvidas. Esta regratem prioridade sobre as regras 4, 5, 6 e 7.A Abstração poderá ter seus própriosTipos de Atributos que devem sermapeados para a Relação que representa aAbstração. O Tipo de RelacionamentoUnário ou Binário englobado pelaAgregação poderá ser mapeado pelaRelação da Agregação caso seus Tipos deAtributos possam ser repassados para a Agregação. Exemplo: Agregação Aula entre T.E. Professor(Nome), T.R. Ministra (Livro Texto) e T.E. Disciplina (Sigla). A Agregação Aula possui T.A . Data,Horário e Sala.

• Regra 15: As Abstrações de Derivação são mapeadas em Atributos que terão seusvalores estabelecidos por cálculos executados por procedimentos pré-programados.

• Regra 16: As Abstrações de Divisão (Agregação de Atributos) são mapeadas emAtributos que correspondem aos Tipos de Atributos componentes.

• Regra 17: As Abstrações de Tempo são mapeadas em relações “especiais” contendo achave primária da relação envolvida, opróprio atributo temporal e doisatributos que determinam o intervalode tempo válido para cada valor doatributo temporal.

a

c

X

d

E2

E1 f

R

x a f h m

h

X

m

ab

c

a b

E

E

E_c

a c Tempo Tempo Início Fim

Page 20: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 20 – Parte IV (Projeto Lógico de BD Relacional)

7 - NORMALIZAÇÃO

É de fundamental importância definir esquemas relacionais de tal forma que a consistêncianos dados seja mantida em todo o BD. O controle da consistência dos dados pode ser exercido peloGerenciador, pelo aplicativo, ou pela própria estrutura do BD. De uma forma geral o controle deconsistência obtido pela estrutura do BD é mais eficiente pois normalmente não implica em perda dedesempenho por parte de Gerenciador durante a sua execução.

O Modelo Relacional, devido à sua natureza inerentemente formal, dispõe de umferramental conceitual que permite modelar diversas formas de controle de consistência. O controleatravés da própria estrutura do BD é obtido no Modelo Relacional construindo-se as relaçõessegundo regras que garantam a manutenção de certas propriedades. As relações que atendem a umdeterminado conjunto de regras diz-se estarem em uma determinada Forma Normal.

O processo de Normalização pode ser considerado como a aplicação de uma série deregras, que constituem as Formas Normais que irão provocar a decomposição de esquemas de dadosinsatisfatório de algumas relações, em novas relações. A Normalização também permite aoprogramador controlar o quanto da consistência é garantida pela maneira de estrutura do BD, equanto deve ser responsabilidade dos aplicativos e/ou do SGBD. No entanto deve ser realizadaalguma ponderação: normalizar demais diminui a eficiência dos aplicativos e de menos abre flancospara inconsistências.

Uma das maneiras de controlar a consistência é através de Dependências Funcionais

existentes entre os atributos armazenados. A Dependência Funcional baseia-se no reconhecimentoque os valores de alguns atributos podem ser determinados a partir de outros pelo SGBD, e portantodeve ser avaliado e informado pelo programador ao BD. Se o valor de um conjunto de atributos Apermite descobrir o valor de um outro conjunto de atributos B, diz-se que A determinafuncionalmente B, ou que B depende de A. A representação gráfica para esta dependência é aseguinte : A → B.

As dependências funcionais são informações semânticas fornecidas pelo projetista,portanto fazem parte do Esquema de Dados, ou seja, refletem a intenção do projetista no instante emque realizou a definição do BD. Para um controle da consistência é necessário conhecerem-se todasas dependências funcionais. Sendo uma informação semântica, todas deveriam ser fornecidas peloprojetista. No entanto, é possível inferir dependências funcionais a partir de outras já conhecidas.Desta forma, partindo-se de um conjunto básico, é possível ampliá-lo através de um conjunto de 6regras de inferência. É importante observar que não se pode inferir todas, apenas aquelas que podemser obtidas através desse conjunto de regras. Assim, elaborar um conjunto inicial o mais completopossível é de importância fundamental para se controlar consistência adequadamente.

As 6 regras de inferência para as Dependências Funcionais são as seguintes:

a). Reflexiva : Se A ⊃ B ==> B → Ab). Aumentativa: Se A → B ==> AC → Bc). Separação: Se A → BC ==> A → B, A → Cd). Aditiva: Se A → B, A → C ==> A → BCe). Transitiva: Se A → B, B → C ==> A → Cf). Pseudo-Transitiva: Se A → B, BC → D ==> AC → D

Page 21: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 21 – Parte IV (Projeto Lógico de BD Relacional)

As Formas Normais apresentam-se identificadas através de números e devem ser seguidassegundo a seqüência abaixo:

Importante: Seguindo-se as regras de mapeamento estabelecidas anteriormente pode-selevar as relações de um Banco de Dados até a 3FN ou FNBC (Forma Normal de Boyce-Codd).

Primeira Forma Normal

Para o Modelo Relacional a Forma Normal mais importante consiste da Primeira FormaNormal, pois é considerada parte da própria definição de uma relação. Uma relação se encontra naPrimeira Forma Normal (1FN) se todos os domínios de atributos possuem apenas valores atômicos

(indivisível), e que os valores de cada atributo na tupla seja um valor simples. A 1FN não permite aconstrução de relações que apresentem atributos compostos e nem possibilita a existência deatributos multivalorados em suas tuplas. Os únicos valores de atributos permitidos devem sersimples e atômicos.

Para Normalizar para a Primeira Forma Normal deve-se:

A). Atributos Compostos - cada um dos atributos compostos (ou não atômicos)devem ser "divididos" em seus atributos componentes.

B). Atributos Multi-valorados -

b.1) Quando a quantidade de valores for pequena e conhecida a priori, substitui-se oatributo multivalorado por um conjunto de atributos de mesmo domínio, cada ummonovalorado representando uma ocorrência do valor.

b.2) Quando a quantidade de valores for muito variável, desconhecida ou grande,retira-se da relação o atributo multivalorado, e cria-se uma nova relação que tem omesmo conjunto de atributos chave, mais o atributo multivalorado também comochave, mas tomado como monovalorado.

A primeira Forma Normal é uma das maneiras de controlar a consistência através daprópria estrutura do sistema, sendo também fundamental para a conceituação do sistema, e é exigidapor todos os SGBD’s Relacionais comuns. O SGBD Relacional e a teoria correspondente que não

1 F N F N B C

2 F N

3 F N

M a i o r I m p a c t o

M e n o r I m p a c t o

4 F N

5 F N

Page 22: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 22 – Parte IV (Projeto Lógico de BD Relacional)

exigem a 1FN são designados como NF2 ("Non First Non Form"). Relações que não estão na 1FNsão chamadas de "Nested Relations" ( relações dentro de relações). Exemplo 1:

Aluno (Não 1FN)Nome Idade Data Nasc. Disciplinas Nro. Matr.

Após transformação temos:

Aluno (1FN)Nome Idade Dia Nasc. Mês Nasc. Ano Nasc. Nro. Matr.

Aluno_Disciplina (1FN)Nome Disciplina

Exemplo 2:

Paciente (Não 1FN)Nome Graus das Lentes Tipo Sangüíneo

Após transformação temos:

Paciente (1FN)Nome GrauEsq GrauDir Tipo Sangüíneo

Segunda Forma Normal

Uma relação está na Segunda Forma Normal (2FN) quando:

- estiver na Primeira Forma Normal e;- todos os atributos que não participam da chave primária são dependentes

funcionalmente 1 (diretos ou transitivos) de toda a chave primária.

1 Dependência Funcional: Se o valor de uma Atributo A permite descobrir o valor de um outro Atributo B,dizemos que A determina funcionalmente B (A → B). Exemplo: Nro_Matrc → Nome_aluno, idade, curso, e assimsempre que o Nro_Matr se repetir tem-se a repetição de Nome_aluno, idade e curso.

Page 23: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 23 – Parte IV (Projeto Lógico de BD Relacional)

Para Normalizar para a Segunda Forma Normal deve-se :

a). Verificar os grupos de atributos que dependem da mesma parte da chave;b). Retirar da relação todos os atributos de um desses grupos;c). Criar uma nova relação, que contem esse grupo como atributo não chave, e os

atributos que determinam esse grupo como chave;d). Repetir estes procedimentos para cada grupo, até que todas as relações somente

contenham atributos que dependam de toda a chave primária.Exemplo:

Ministra (2FN)Professor Sigla da Disciplina Livro Texto

Turma (Não 2FN)Número da Turma Sigla da Disciplina Sala de Aula Nro. Horas

Com a seguinte lista de Dependências Funcionais:Professor → Sigla da Disciplina ( Cada professor pode lecionar apenas uma disciplina)Sigla da Disciplina → Livro Texto, Nro. HorasNúmero da Turma, Sigla da Disciplina → Sala de Aula

Relações que não estão na 2FN podem apresentar problemas de inconsistência devido aduplicidade dos dados e a perda de dados em operações de remoção/alteração (Exemplo: Adisciplina TGS não sendo oferecida para nenhuma turma este ano/semestre leva a remoção da quintatupla desta relação, o que ocasionará a perda da quantidade de horas da disciplina TGS pois estainformação não se encontra em outra relação ou tupla)

Número da Turma Sigla da Disciplina Sala de Aula Nro. Horas

1 TLP II 21 42 TLPII 23 41 SBD 12 32 SBD 22 31 TGS 15 4

Após a transformação temos:

Ministra (2FN)Professor Sigla da Disciplina Livro Texto

Page 24: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 24 – Parte IV (Projeto Lógico de BD Relacional)

Turma (2FN)Número da Turma Sigla da Disciplina Sala de Aula

Disciplina (2FN)Sigla da Disciplina Nro. Horas

Terceira Forma Normal

Um relação é considerada estar na Terceira Forma Normal (3FN), quando:

- estiver na Segunda Forma Normal e;- todos os atributos que não participam da chave primária são dependentes não

transitivos de toda a chave primária.

Para Normalizar para a Terceira Forma Normal deve-se:

a). Verificar um grupo de atributo que depende não diretamente da chave;b). Retirar da relação esse grupo de atributos;c). Criar uma nova relação que contem esse grupo de atributos, e defina com chave,

os atributos dos quais esse grupo depende diretamente;d). Repetir os passos anteriores até que todos os atributos restantes na relação original

dependam diretamente de toda a chave primária.

Exemplo:

Ministra (Não 3FN)Professor Sigla da Disciplina Livro Texto

Turma (3FN)Número da Turma Sigla da Disciplina Sala de Aula

Disciplina (3FN)Sigla da Disciplina Nro. Horas

Page 25: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 25 – Parte IV (Projeto Lógico de BD Relacional)

Com a seguinte lista de Dependências Funcionais:

Professor → Sigla da Disciplina ( Cada professor pode lecionar apenas uma disciplina)Sigla da Disciplina → Livro Texto, Nro. HorasNúmero da Turma, Sigla da Disciplina → Sala de Aula

Relações que não estão na 3FN podem apresentar problemas de inconsistência devido aduplicidade dos dados e a perda de dados em operações de remoção/alteração (Exemplo: A licençada Professora Sandra pode levar a remoção da quinta tupla desta relação o que ocasionará a perdado livro texto da disciplina TEL pois esta informação não se encontra em outra relação ou tupla)

Professor Sigla da Disciplina Livro Texto

André TLP II AJoão SBD DMaria ADB CMário SBD DSandra TEL E

Após a transformação temos:

Ministra (3FN)Professor Sigla da Disciplina

Turma (3FN)Número da Turma Sigla da Disciplina Sala de Aula

Disciplina (3FN)Sigla da Disciplina Livro Texto Nro. Horas

Forma Normal de Boyce-Codd

Um relação é considerada estar na Forma Normal de Boyce-Codd (FNBC), quando:

- estiver na Primeira Forma Normal ; e- Para cada chave candidata, todos os atributos que não participam da chave candidata

são dependentes não transitivos de toda a chave candidata.

Page 26: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 26 – Parte IV (Projeto Lógico de BD Relacional)

Para Normalizar para a Forma Normal de Boyce-Codd segue-se os mesmos passos daTerceira Forma Normal. Para Relações que tenham apenas uma chave candidata que corresponde aprópria chave primária, a FNBC reduz-se à 3FN.

Exemplo:

Aloca (Não FNBC)Sala Professor Sigla Disc. Dia_Hora Nro. Alunos

Chave Primária: Sala , Professor, Sigla Disc.Chave Candidata: Sala, Sigla Disc.

Com a seguinte lista de Dependências Funcionais:

Sala, Professor, Sigla Disc. → Dia_HoraSala, Sigla Disc. → Nro. Alunos

Após a transformação temos:

Aloca1 (FNBC)Sala Professor Sigla Disc. Dia_Hora

Aloca2 (FNBC)Sigla_Disc. Sala Nro. Alunos

Quarta Forma Normal

Uma relação está na Quarta Forma Normal (4FN) quando:

- se não possuir dois ou mais Atributos multi-valorados independentes.2

Para Normalizar para a Quarta Forma Normal deve-se :

a). Colocar cada atributo multi-valorado em uma relação, como na 1FN - b.2

2 Multi-Dependência Funcional: Se cada valor de uma Atributo A permite descobrir um conjunto depossíveis valores de um outro Atributo B, dizemos que A determina multi-funcionalmente B (A "" B). Exemplo:Nome_Prof "" Disciplina, e assim sempre que o Nome_Prof for pesquisado poderá ser obtido os nomes de suasdisciplinas.

Page 27: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 27 – Parte IV (Projeto Lógico de BD Relacional)

Observação: Para se verificar a 4FN a relação deve ter no mínimo três atributos.Exemplo:

Professor (Não 4FN)Nome Disciplina Orientado

Com a seguinte lista de Multi-Dependências Funcionais:

Nome "" Disciplina (Cada professor pode ministrar várias disciplinas)Nome "" Orientado (Cada professor pode orientar vários alunos)

Relações que não estão na 4FN podem apresentar problemas de inconsistência devido aduplicidade dos dados. Exemplo:

Nome Disciplina Orientado

Luiz SBD PauloLuiz SBD JoséJoão TLP I AntônioJoão TLP II AntônioJoão ADM AntônioAna TEL Silvio

Após a transformação temos:

Professor_disciplina (4FN)Nome Disciplina

Professor_orientado (4FN)Nome Orientado

Quinta Forma Normal

O conjunto de relações do BD está na Quinta Forma Normal (5FN) quando:

- Dado o conjunto de multi-dependências funcionais do BD, não se estabelece umciclo de multi-dependência entre pelo menos 3 atributos, ou os Atributos de um ciclo estão namesma relação.

Para Normalizar para a Quinta Forma Normal deve-se :

Page 28: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 28 – Parte IV (Projeto Lógico de BD Relacional)

a). Colocar todos os atributo multi-valorado que pertencem à um mesmo ciclo emuma relação.

Exemplo:

Professor_apostila (Não 5FN)Nome Apostila

Professor_disciplina (Não 5FN)Nome Disciplina

Disciplina_apostila (Não 5FN)Apostila Disciplina

Com a seguinte lista de Multi-Dependências Funcionais :Nome "" Disciplina (Cada professor pode ministrar várias disciplinas)Nome "" Apostila (Um grupo de professor pode elaborar uma apostila)Disciplina "" Apostila (Cada disciplina pode ter um certo número de apostilas)Apostila "" Nome (Cada apostila pode ser elaborada por vários professores)

Após a transformação temos:

Atividade (5FN)Nome Disciplina Apostila

O processo de normalização é aplicado em uma relaçãopor vez. Durante o processo a relação vai sendo "quebrada",criando-se outras relações. Geralmente o processo de normalização érealizado em etapas começando através das formas normais menosrígidas, e depois através de refinamentos sucessivos, chegar até umanormalização considerada satisfatória para a aplicação.

A decisão de normalizar ou não uma relação é um compromisso entre garantir aeliminação de inconsistências no BD e alcançar a eficiência de acesso. A normalização para formasapoiadas em dependências funcionais evita inconsistências, usando para isso a própria construção doBD. Se a mesma consistência puder ser garantida pelos aplicativos, a normalização correspondentenão precisa ser realizada.

Page 29: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 29 – Parte IV (Projeto Lógico de BD Relacional)

8 - SGBDR (CARACTERÍSTICAS)

Característica 1 (Estrutura da Informação): Toda informação é apresentada explicitamenteem nível lógico e exatamente de uma maneira - valores em tabelas.

Característica 2 (Acesso Garantido): Toda informação tem a garantia de ser logicamenteacessível recorrendo-se a operações e uma combinação de nomes de tabelas, valores de atributos enomes de colunas.

Característica 3 (Tratamento Sistemático dos Valores Nulos): Deve-se permitir arepresentação de valores nulos de um modo homogêneo para qualquer domínio. Zero não é valornulo.

Característica 4 (Meta-Dados Representado por tabelas): Todas as informações geradaspela execução dos comandos da DDL formam o Esquema de Dados, que é internamente mantidopelo SGBDR na forma de Tabelas.

Característica 5 (Sublinguagem Detalhada): Deve haver uma linguagem expressa por umasintaxe bem definida e que seja detalhada para suportar: - Definição de Dados - Definição de Visão -Manipulação de Dados (interativo ou programado) - Restrições de Integridade - Autorização -Limites de Transações.

Característica 6 (Atualização de Visão): Todas as Visões são passíveis de atualizações,inclusões e remoções com o efeito de melhoria dos serviços do BD.

Característica 7 (Operações de Alto Nível): Inserções, Atualizações e eliminações tratamrelações básicas, relações derivadas e relações do Esquema de forma homogênea possibilitando umaprendizado mais rápido e um tratamento uniforme das otimizações internas.

Característica 8 (Independência de Dados Físicos): Deve existir um limite claro e precisoentre os aspectos lógicos e os aspectos físicos e de desempenho, de modo que, os programasaplicativos permaneçam inalterados sempre que forem realizadas mudanças na representação emmemória ou nos métodos de acesso.

Nome Data Criador ComentárioTabela

Nome Nome Tipo deColuna Tabela Dados

Nome Nome UnívocoColuna Tabela Nome Nome Data Criador

Tabela Programa

Tabelas Colunas

ÍndicesAplicativos

Page 30: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 30 – Parte IV (Projeto Lógico de BD Relacional)

Característica 9 (Restrições Semânticas Embutidas): As Restrições de IntegridadeSemântica devem ser definidas pela Sub-linguagem de Banco de Dados e armazenada no dicionáriode dados, não nos programas aplicativos.

Característica 10 (Distribuição Transparente): Aplicativos permanecem inalterados quandoa distribuição de dados é introduzida ou os dados são redistribuídos, devido a flexibilidade e poderdos operadores relacionais.

Característica 11 (Não Subversão): Não pode existir nenhuma interface, linguagem ououtra forma de interação que permita a qualquer usuário subverter a integridade e segurança doBDR.

9 – EXEMPLO DE ÁLGEBRA RELACIONAL

EMPREGADOPNOME MNOME SNOME NSS DATANASC ENDEREÇO SEXO SALARIO NSSSUPER NDEPJohn B Smith 123456789 09-JAN-55 R. A, 1 M 3000 333445555 5Franklin T Wong 333445555 08-DEZ-45 R. B, 2 M 4000 888665555 5Alícia J Zelaya 999887777 19-JUL-58 Av. C, 3 F 2500 987654321 4Jennifer S Wallace 987654321 20-JUN-31 Trav. D, 4 F 4300 888665555 4Ramesh K Narayan 666884444 15-SET-52 R. E, 5 M 3800 333445555 5Joyce A English 453453453 31-JUL-62 R. F, 6 F 2500 333445555 5Ahmad V Jabbar 987987987 29-MAR-59 Av G, 7 M 2500 987654321 4James E Borg 888665555 10-NOV-27 Av H, 8 M 5500 null 1

DEPARTAMENTODNOME DNÚMERO SNNGER DATINICGER

Pesquisa 5 333445555 22-MAI-78Administrativo 4 987654321 01-JAN-85Gerencial 1 888665555 19-JUN-71

PROJETOPNOME PNÚMERO PLOCALIZAÇÃO DNUMProdutoX 1 Bellaire 5ProdutoY 2 Sugarland 5ProdutoZ 3 Houston 5Automação 10 Stafford 4Reorganização 20 Houston 1Beneficiamento 30 Stafford 4

DEPENDENTENSSEMP NOMEDEPENDENTE SEXO DATANIV RELAÇÃO

333445555 Alice F 05-ABR-76 FILHA333445555 Theodore M 25-OUT-73 FILHO333445555 Joy F 03-MAI-48 ESPOSA987654321 Abner M 29-FEV-78 MARIDO123456789 Michael M 01-JAN-78 FILHO123456789 Alice F 31-DEZ-78 FILHA123456789 Elizabeth F 05-MAI-57 ESPOSA

Consulta 1: Encontrar o nome e o endereço de todos os empregados que trabalham para odepartamento 'Pesquisa'.

• PESQUISA_DEPTO←σ←σ←σ←σ DNOME = 'Pesquisa' (DEPARTAMENTO)• PESQUISA_DEPTO_EMPS←←←←(PESQUISA_DEPTO !!!! DNÚMERO = NDEP EMPREGADO)

• RESULT←π←π←π←π PNOME, SNOME, ENDEREÇO (PESQUISA_DEPTO_EMPS)

Consulta 2: Para todo projeto localizado em 'Stafford', listar o número do projeto, o número dodepartamento responsável, e o sobrenome, endereço e data de nascimento do gerenteresponsável pelo departamento.

LOCAIS_DEPTODNÚMERO DLOCALIZAÇÃO1 Houston4 Stafford5 Bellaire5 Sugariand5 Houston

TRABALHA_EMNSSEMP PNRO HORAS

123456789 1 32.5123456789 2 7.5666884444 3 40.0453453453 1 20.0453453453 2 20.0333445555 2 10.0333445555 3 10.0333445555 10 10.0333445555 20 10.0999887777 30 30.0999887777 10 10.0987987987 10 35.0987987987 30 5.0987654321 30 20.0987654321 20 15.0888775555 20 null

Page 31: Apostila2 intr bd_tecinformatica_necioveras

Notas Didáticas

Prof. Luiz Camolesi Jr.Pg. 31 – Parte IV (Projeto Lógico de BD Relacional)

• STAFFORD_PROJS←σ ←σ ←σ ←σ PLOCALIZAÇÃO = 'Stafford' (PROJETO)• CONTR_DEPT←←←←(STAFFORD_PROJS !!!! DNUM = DNÚMERO DEPARTAMENTO)• PROJ_DEPT_MGR←←←←(CONTR_DEPT !!!! SSNGER = NSS EMPREGADO)

• RESULT←π←π←π←π PNÚMERO, DNUM, SNOME, ENDEREÇO, DATANASC (PROJ_DEPT_MGR)

Consulta 3: Encontrar os nomes de empregados que trabalham em todos os projetos controladospelo departamento 5.

• DEPT5_PROJS(PNO)←π←π←π←π PNÚMERO (σσσσ DNUM=5 (PROJETO)))• EMP_PROJ(NSS, PNO)←π←π←π←π NSSEMP, PNRO (TRABALHA_EM)• RESULT_EMP_SSNS←←←←EMP_PROJ ÷÷÷÷ DEPT5_PROJS

• RESULT←π←π←π←π SNOME, PNOME (RESULT_EMP_SSNS * EMPREGADO)

Consulta 4: Fazer uma lista de números de projetos no qual um empregado, cujo sobrenome é'Smith', trabalha no projeto ou é gerente do departamento que controla o projeto.

• SMITH(NSSEMP)← π← π← π← π NSS (σσσσ SNOME='Smith' (EMPREGADO))• SMITH_WORKER_PROJS← π← π← π← π PNRO (TRABALHA_EM * SMITH)• MGRS←π←π←π←π SNOME, DNÚMERO (EMPREGADO !!!! NSS = SNNGER DEPARTAMENTO)• SMITH_MGS←σ←σ←σ←σ SNOME = 'Smith' (MGRS)• SMITH_MANAGED_DEPTS(DNUM)←π←π←π←π DNÚMERO (SMITH_MGRS)• SMITH_MGR_PROJS(PNRO)←π←π←π←π PNÚMERO (SMITH_MANAGED_DEPTS * PROJETO)• RESULT←←←←(SMITH_WORKER_PROJS ∪∪∪∪ SMITH_MGR_PROJS)

Consulta 5: Listar os nomes de todos os empregados com dois ou mais dependentes.

Esta consulta não pode ser realizada usando apenas a álgebra relacional. Deve-se utilizar aoperação FUNCTION com a função de agregação COUNT, que não é da álgebra relacional. Nasformulações que se seguirão, assume-se que dependentes de um mesmo empregado possuem nomesdistintos.

• T1(NSS, NO_DE_DEPS)←←←←NSSEMP ℑℑℑℑ COUNT NOMEDEPENDENTE (DEPENDENTE)• T2←σ←σ←σ←σ NO_DE_DEPS > 2 (T1)• RESULT←π←π←π←π SNOME, PNOME (T2 * EMPREGADO)

Consulta 6: Listar os nomes dos empregados que não possuem dependentes.• TODOS_EMPS←π←π←π←π NSS (EMPREGADO)• EMPS_COM_DEPS(NSS)←π←π←π←π NSSEMP (DEPENDENTE)• EMPS_SEM_DEPS←←←←(TODOS_EMPS - EMPS_COM_DEPS)• RESULT←π←π←π←π SNOME, PNOME (EMPS_SEM_DEPS * EMPREGADO)

Consulta 7: Listar os nomes dos gerentes que têm ao menos um dependente.• MGRS(NSS)←π←π←π←π SNNGER (DEPARTAMENTO)• EMPS_COM_DEPS(NSS)←π←π←π←π NSSEMP (DEPENDENTE)• MGRS_COM_DEPS←←←←(MGRS ∩∩∩∩ EMPS_COM_DEPS)• RESULT←π←π←π←π SNOME, PNOME (MGRS_COM_DEPS * EMPREGADO)