Notas Didáticas  IV                                              Projeto Lógico                                          d...
Notas Didáticas1 - INTRODUÇÃO           Proposto originalmente por E. F. Codd durante seu trabalho no Laboratório de Pesqu...
Notas Didáticasinstâncias das relações formam os dados que são armazenados no BD. As relações apresentam asseguintes carac...
Notas Didáticas3 - CHAVES           Chave é um conjunto de atributos de uma relação e que pode ser utilizado para arealiza...
Notas Didáticas4 - RESTRIÇÕES DE INTEGRIDADE          São normas estabelecidas para a manter a integridade dosdados armaze...
Notas Didáticas        ESTRUTURA: as operações sobre a estrutura apoiam os DBAs na tarefa de definição emanutenção do Esqu...
Notas Didáticas          ATUALIZAÇÃO: alteração de algum valor deatributo de uma tupla. A alteração do valor de uma chave ...
Notas Didáticas     Relação                                                               INTERSEÇÃO (∩): o resultado da  ...
Notas Didáticas           TABELA: operações que se aplicam a quaisquer relações.   Relação                                ...
Notas Didáticas          PROJEÇÃO (π atributos): operação                            Relação                              ...
Notas DidáticasEqui Join (=_ condição) (exemplo: fornecedor.código = peça.código) Como resultado de um EquiJoin teremos tu...
Notas Didáticas 6 - MAPEAMENTO (M-ER P/ M-RELACIONAL)           O Modelo Entidade Relacionamento é responsável por realiza...
Notas Didáticas                                                                                                     d     ...
Notas Didáticas               • Regra 7: Tipos de    Relacionamentos Unários e                                            ...
Notas Didáticas             • Regra 11: Os Tipos de Atributos (multi-valorados) de Tipos de Entidades e Tipos de  Relacion...
Notas Didáticas                                                                                                      • Reg...
Notas Didáticas          • Regra 12.5: Os Tipos de                                                                    bEnt...
Notas Didáticas         • Regra 13: Na Abstração de Composição/Decomposição, o mapeamento dos Tipos deEntidades compostos ...
Notas Didáticas       • Regra 13.4: Caso a Abstração seja de composição sem dependência existencial então omapeamento da A...
Notas Didáticas7 - NORMALIZAÇÃO           É de fundamental importância definir esquemas relacionais de tal forma que a con...
Notas Didáticas         As Formas Normais apresentam-se identificadas através de números e devem ser seguidassegundo a seq...
Notas Didáticasexigem a 1FN são designados como NF2 ("Non First Non Form"). Relações que não estão na 1FNsão chamadas de "...
Notas Didáticas           Para Normalizar para a Segunda Forma Normal deve-se :               a). Verificar os grupos de a...
Notas DidáticasTurma (2FN)Número da Turma          Sigla da Disciplina           Sala de AulaDisciplina (2FN)Sigla da Disc...
Notas DidáticasCom a seguinte lista de Dependências Funcionais:Professor → Sigla da Disciplina ( Cada professor pode lecio...
Notas Didáticas          Para Normalizar para a Forma Normal de Boyce-Codd segue-se os mesmos passos daTerceira Forma Norm...
Notas Didáticas           Observação: Para se verificar a 4FN a relação deve ter no mínimo três atributos.           Exemp...
Notas Didáticas                  a). Colocar todos os atributo multi-valorado que pertencem à um mesmo ciclo emuma relação...
Notas Didáticas8 - SGBDR (CARACTERÍSTICAS)          Característica 1 (Estrutura da Informação): Toda informação é apresent...
Notas Didáticas           Característica 9 (Restrições Semânticas Embutidas): As Restrições de IntegridadeSemântica devem ...
Notas Didáticas        •    STAFFORD_PROJS←σ PLOCALIZAÇÃO = Stafford (PROJETO)        •    CONTR_DEPT←(STAFFORD_PROJS _ DN...
Próximos SlideShares
Carregando em…5
×

Apostila2 intr bd_tecinformatica_necioveras

743 visualizações

Publicada em

Banco de Dados ll

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
743
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
46
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Apostila2 intr bd_tecinformatica_necioveras

  1. 1. Notas Didáticas IV Projeto Lógico de BD Relacional31 páginasColaborador: 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 Pg. 1 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  2. 2. Notas Didáticas1 - 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 FCIDADE F1 Santos 20 Piracicaba F2 Machado 10 São Paulo F3 Almeida 30 São Paulo F4 Ferreira 20 Campinas F5 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 (Esquemasdas 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 Pg. 2 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  3. 3. Notas Didáticasinstâ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 em componentes.2 – NOTAÇÃO MATEMÁTICA As seguintes notações serão utilizadas para apresentar alguns conceitos do modelorelacional: • 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 aos valores 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. Pg. 3 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  4. 4. Notas Didáticas3 - 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. Pg. 4 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  5. 5. Notas Didáticas4 - 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 RELACIONAIS As operações no Modelo Relacional abordam 4 categorias. Todas estas operações devemobedecer 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. Estrutura Dados Conjunto Tabela Inserção Inserção União Seleção Remoção Remoção Interseção Projeção Atualização Atualização Diferença Junção Produto Cart. Pg. 5 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  6. 6. Notas Didáticas 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 Esquema Relaçãode 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 de Banco deuma relação. Dados 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 erro Relaçãoda operação pode ser: rejeitar a operação, ou pedir tuplapara 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. A Relação ação do SGBD diante de um erro da operação pode ser: rejeitar a operação; realizar uma série de remoções em cascata; modificar os valores dos atributos referenciados que provocaram a violação (trocando por nulo, ou para um valor que faz referência a outra tupla válida de uma relação). tupla Exemplo: Dada uma relação funcionários definida no Esquema de Dados, pode-se retirar os dados de uma pessoa dispensada (Nome: Maria da Silva, Idade: 26, Endereço: Rua 4 Nro. 8 Cidade Rio Claro, Salário: 1000, Cargo: Manobrista de D8). Pg. 6 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  7. 7. Notas Didáticas ATUALIZAÇÃO: alteração de algum valor deatributo de uma tupla. A alteração do valor de uma chave valorprimária segue como se fosse uma remoção seguida de Relaçãouma 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ção de conjunto anteriormente executada; ou - ambas serem resultantes de operações de conjunto realizadas anteriormente. UNIÃO (∪): o resultado da união de Relaçãoduas relações consiste no conjunto de todas as Relaçãotuplas das duas relações, porém sem redundância A Resultantede tuplas. Importante salientar que duas tuplas tupla xsão semelhantes quantos todos os valores deatributos forem iguais em seus respectivos tupla xatributos. Exemplo: União de uma relação dos Relaçãofuncionários da matriz de São Paulo com a Brelação dos funcionários da filial de Campinas.Existe a possibilidade de execução da União tupla xExclusiva (∪|) na qual as tuplas repetidas nãoaparecem na resultante. Pg. 7 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  8. 8. Notas Didáticas Relação INTERSEÇÃO (∩): o resultado da A tupla x Relação interseção de duas relações consiste no conjunto tupla y Resultante de todas as tuplas que pertençam às duas tupla x relações. Exemplo: Interseção da relação dos tupla y funcionários com idade maior que 35 anos com tupla x a relação dos funcionários com salário acima de Relação 1500,00 reais. O resultado será uma relação B com os funcionários com idade maior que 35 tupla y anos e que recebem acima de 1500,00 reais. DIFERENÇA (-): a diferençaentre duas relações é relação resultante Relaçãoformada pelas tuplas que pertencem a uma A-Brelação e que não pertencem a outra. RelaçãoDiferença entre as relações A e B (A - B) é o Aconjunto de tuplas que aparecem na relaçãoA e não aparece na relação B. Diferença Relaçãoentre as relações B e A (B - A) é o conjunto Bde tuplas que aparecem na relação B e nãoaparecem na relação A. Exemplo: Diferença Relaçãoda relação dos funcionários com idade maior B-Aque 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 duas Relação Relaçãorelações que não necessitam ser "compatíveis para união", A Bresultando 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 Resultante Pg. 8 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  9. 9. Notas Didáticas TABELA: operações que se aplicam a quaisquer relações. Relação SELEÇÃO (σ): operação aplicada sobre Origem uma relação de modo a selecionar um sub-conjunto Relação de tuplas (com todos os seus atributos) que satisfaçam Resultante a um determinada condição (simples ou composta). O sub-conjunto selecionado forma uma relação resultante temporária. Esta condição aplica-se apenas em uma única relação sendo verificada individualmente para cada tupla da relação. Exemplo: Dado uma relação dos funcionários da empresa, selecionar aqueles que recebem salário > 1000,00 reais. 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) Pg. 9 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  10. 10. Notas Didáticas PROJEÇÃO (π atributos): operação Relação Relaçãoaplicada sobre uma relação de modo a selecionar Origem Resultanteos atributos de uma relação de acordo com umalista de atributos oferecida. Os atributos sãoexibidos na mesma ordem que aparecem na lista. Atributo b Atributo c Atributo a Atributo b Atributo c Atributo aComo resultado tem-se uma relação onde nãoexistem repetições de tuplas. Exemplo: Projetar a, b, capenas 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 utilizada Relação Relaçãopara combinar tuplas relacionadas (via chaveprimária/chave estrangeira) de duas ou mais relações de A Bmodo 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 seus Relação Resultanterespectivos 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 Pg. 10 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  11. 11. Notas DidáticasEqui 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 querque 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 da relação A com a relação B, sendo colocadas nas relação resultante todas as tuplas da 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 da relação A com a relação B, sendo colocadas nas relação resultante todas as tuplas da 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 da relação A com a relação B, sendo colocadas nas relação resultante todas as tuplas da 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 230 F2 Machado 10 São Paulo 45 3,20 450 F3 Almeida 30 São Paulo 71 5,00 78 F4 Ferreira 20 Campinas NULL NULL NULL F5 Rodrigues 30 São Carlos NULL NULL NULL Tabela Resultante da Operação:- Fornecedor LEFT OUTER JOIN Peça Pg. 11 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  12. 12. Notas Didáticas 6 - MAPEAMENTO (M-ER P/ M-RELACIONAL) O Modelo Entidade Relacionamento é responsável por realizar uma representação dos dados de uma determinada aplicação a um nível mais conceitual, um pouco distante da forma como MER os seus elementos serão efetivamente M-REL implementados. Os modelos baseados em registros, entre eles o relacional, fornece uma representação dos dados de forma mais próxima como estes se encontrarão quando forem definidos os arquivos para 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 de Entidade é mapeado em uma E Relação. a b c b • Regra 2: Os Tipos de E a Atributos (mono-valorados e não compostos) de Tipos de Entidades presentes no DER são mapeados em c Atributos de Relação. Os Identificadores são mapeados em Chaves Primárias. • Regra 3: Para cada Tipo deE1 d Entidade Fraca é mapeado uma Relação a f d E1 f contendo todos os Atributos referentes aos Tipos de Atributos da Entidade (inclusive identificador) e acrescido de uma chave estrangeira referente à chave primária do Tipo de Entidade Forte. Os Tipos de b Entidades Fracas somente poderão ser E a mapeados após os Tipos de Entidades Fortes. c Pg. 12 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  13. 13. Notas Didáticas d • Regra 4: Para Tipos de E1E2 a b c d f E1 f Relacionamentos Unários e Binários (cardinalidade máxima 1:1 1:1 e cardinalidade mínima 1:1) existe a possibilidade de R mapeamento dos Tipos de 1:1 b Entidades envolvidos em uma única Relação (contrariando a regra E2 a 1). c • Regra 5: Tipos de d Relacionamentos Unários e Binários (cardinalidade máxima E1_R E1 f 1:1 e cardinalidade mínima 0:0, f d a 0:1 0:1 ou 1:0) são mapeados através da colocação da chave primária R (pertencente a uma das relações envolvidas) na forma de chave 1:1 b estrangeira na outra relação. Preferivelmente a relação do lado E2 a 0 (ou seja, aquela que mapeia o Tipo de Entidade com c cardinalidade mínima 1) deve receber a chave primária da outra relação. • Regra 6: Tipos de d Relacionamentos Unários e Binários E1 (cardinalidade máxima 1:N ou N:1 eE1_R f cardinalidade mínima 1:1, M:1 ou 1:M) f d a 1:N são mapeados através da colocação da chave primária de uma das relações R envolvidas como chave estrangeira na outra relação. Obrigatoriamente a 1:1 b relação do lado N (ou seja, aquela que a mapeia o Tipo de Entidade com E2 cardinalidade máxima 1) deve receber a c chave primária da outra relação. Pg. 13 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  14. 14. Notas Didáticas • Regra 7: Tipos de Relacionamentos Unários e d Binários (cardinalidade máxima R E1 f 1:N ou N:1 e cardinalidade mínima 0:0, 1:0, 0:1, 0:M ou r f a 0:N M:0) são mapeados em relações “especiais” contendo uma chave R primária criada artificialmente e as chaves primárias das duas 1:1 b relações envolvidas. Opcionalmente a chave primária E2 a pode ser formada pela composição das duas chaves c estrangeiras. Outra forma de mapeamento é utilizar a regra 6 tendo como diferença um dos lados do Tipo de Relacionamento que terá a cardinalidade máxima 0 e não 1. • Regra 8: Tipos de Relacionamentos Unários e Binários (cardinalidade máxima M:N d e independente da cardinalidade mínima) são R E1 f mapeados em relações “especiais” contendo uma r f a 0:N chave primária criada artificialmente e as chaves primárias das relações envolvidas. R Opcionalmente a chave primária pode ser formada pela composição das chaves 1:M b estrangeiras. E2 a c • Regra 9: Tipos de Relacionamentos Ternários (cardinalidade máxima M:N:P e independente da cardinalidade mínima) e Tipos de Relacionamentos Quaternários (cardinalidade máxima M:N:P:Q e independente da d cardinalidade mínima) são mapeados em E1 f relações “especiais” contendo uma chave primária criada artificialmente e as chaves h primárias das relações envolvidas. R E3 Opcionalmente a chave primária pode ser formada pela composição das chaves b estrangeiras. E2R a • Regra 10: Os Tipos de a b f h c Atributos (mono-valorados e não compostos) de Tipos de Relacionamentos (Unários, Binários, Ternários ou Quaternários) presentes no DER são mapeados em Atributos das Relações que respectivamente mapeiam os Tipos de Relacionamentos. Pg. 14 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  15. 15. Notas Didáticas • Regra 11: Os Tipos de Atributos (multi-valorados) de Tipos de Entidades e Tipos de Relacionamentos (Unários, Binários, Ternários ou Quaternários) presentes no DER são mapeados de duas formas: E • Regra 11.1: Não tendo conhecimento da quantidade de a b ocorrências envolvidas então o mapeamento estabelece uma Relação “especial” contendo a chave primária da b relação envolvida (isto é, a relação mapeada do Tipo de Entidade a que E_c E a pertence o Tipo de Atributo Multi- c valorado) e o próprio Atributo que a c representa o Tipo de Atributo Multi- valorado. Ambos os atributos podem formar a chave primária composta da relaçã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: TendoE conhecimento da quantidade de a b c1 c2 c3 b ocorrências envolvidas então E a estabelece-se esta quantidade de atributos na relação que representa c o Tipo de Entidade do respectivo Tipo de Atributo. (opção menos aconselhável) • Regra 12: As Abstrações de Generalização/Especialização são mapeadas de seis formas: • Regra 12.1: Os Tipos de Entidades genéricos são mapeados com b seus Tipos de Atributos, Identificadores EG a e os predicados das especializações (que são também atributos de relação). p Os Tipos de Entidades específicos são mapeados com seus Tipos de Atributos E1 E2 e o identificador do Tipo de Entidade d f genérico. Bom p/ especialização exclusiva. EG E1 E2 a b p a d a f Pg. 15 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  16. 16. Notas Didáticas • Regra 12.2: Os Tipos de b Entidades genéricos são mapeados EG a com seus Tipos de Atributos, Identificadores mais sem os p predicados das especializações. Os Tipos de Entidades específicos são mapeados com seus Tipos de E1 E2 Atributos e o identificador do Tipo de d f Entidade genérico. Bom p/ especialização com sobreposição. E1 E2 Opcionalmente, o predicado pode serEG mapeado como se fosse um Tipo de a b a d a f Atributo Multi-Valorado (regra 11). •Regra 12.3: Os Tipos bde Entidades genéricos e os Tipos EG ade Entidades específicos sãomapeados em uma mesma Relação p(mapeamento de Tipos deAtributos, Identificadores e opredicado da especialização). Bom E1 E2quando os Tipos de Entidades d fespecíficos não possuírem muitosTipos de Atributos ou quandoalguns Tipos de Entidades EG_E1_E2 a b p d fespecíficos não possuírem Tipos deAtributos. b EG a • Regra 12.4: Os Tipos de Entidades genéricos e os Tipos de Entidades específicos são mapeados em p uma mesma Relação (mapeamento de Tipos de Atributos, Identificadores mas E1 E2 sem o predicado da especialização). d f Bom quando os Tipos de Entidades específicos não possuírem muitos Tipos de Atributos ou quando alguns Tipos de EG_E1_E2 Entidades específicos não possuírem a b d f Tipos de Atributos e p/ especialização com sobreposição. Pg. 16 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  17. 17. Notas Didáticas • Regra 12.5: Os Tipos de bEntidades genéricos e os Tipos de EG aEntidades específicos são mapeados emuma mesma Relação (mapeamento de pTipos de Atributos, Identificadores e decada situação do predicado da E1 E2especialização que terão valores d fsim/não). EG_E1_E2 a b p1 p2 p3 d f •Regra 12.6: Os Tipos de b Entidades específicos são mapeados em EG a Relações (mapeamento dos Tipos de Atributos próprios, Tipos de Atributos do p Tipo de Entidade genérico e o Identificador). Bom quando é freqüente o E1 E2 interesse do usuário pela totalidade da d f informações de uma Entidade. Não permite conhecer a especialidade de uma E1 E2 Entidade. a b d a b f Total Parcial Exclusiva Sobreposição Regra 12.1 Bom Ideal Bom Nunca Regra 12.2 Bom Ideal Nunca Bom Regra 12.3 Ideal Bom Bom Nunca Regra 12.4 Ideal Bom Ideal Bom Regra 12.5 Bom Bom Nunca Bom Regra 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. Pg. 17 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  18. 18. Notas Didáticas • 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 a bAbstração seja de composição física EG aentão o mapeamento da Abstração é o (f) físicamapeamento dos Tipos deRelacionamentos de composição que h mestão implicitamente representados pela E1 E2Abstração. Dependendo da d fcardinalidade mínima destes Tipos deRelacionamentos utiliza-se a regra 6 ou ba regra 7. Outra opção é mapear a EG aAbstração em um Relação contendo as 1:1 1:1 r1 r2chaves primárias das Relações ?:Nenvolvidas (isto é, relações mapeadas h ?:N mdos Tipos de Entidade compostos e E1 E2componentes) e opcionalmente atributos d fde quantidade para cada chave primária. b EG a • Regra 13.2: Caso a Abstração seja (l) lógica de composição lógica então o mapeamento da h m Abstração é o mapeamento dos Tipos de E1 E2 Relacionamentos de composição com d f cardinalidades máximas N:M, indenpendente b da cardinalidade mínima destes Tipos de EG a Relacionamentos, ou seja utiliza-se a regra 8. ?:M ?:M r1 r2 ?:N h ?:N m E1 E2 b d f EG a (cd) com dependência h m E1 E2 •Regra 13.3: Caso a Abstração seja d fde composição com dependência existencialentão o mapeamento da Abstração é o bmapeamento dos Tipos de Relacionamentos EG ade composição ligados a Tipos de Entidades r1 r2Fracas, ou seja utiliza-se a regra 3. h m E1 E2 d f Pg. 18 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  19. 19. Notas Didáticas • 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 de XAgregação são mapeadas em relações d“especiais” contendo uma chave primária E1 fcriada artificialmente e as chaves primárias hdas duas relações envolvidas. Esta regra R mtem prioridade sobre as regras 4, 5, 6 e 7.A Abstração poderá ter seus própriosTipos de Atributos que devem ser E2mapeados para a Relação que representa a X a x a f h mAbstração. O Tipo de Relacionamento cUná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 dois Eatributos que determinam o intervalo a bde tempo válido para cada valor doatributo temporal. b E a c E_c a c Tempo Tempo Início Fim Pg. 19 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  20. 20. Notas Didáticas7 - 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 Funcionaisexistentes 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 → A b). Aumentativa: Se A → B ==> AC → B c). Separação: Se A → BC ==> A → B, A → C d). Aditiva: Se A → B, A → C ==> A → BC e). Transitiva: Se A → B, B → C ==> A → C f). Pseudo-Transitiva: Se A → B, BC → D ==> AC → D Pg. 20 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  21. 21. Notas Didáticas As Formas Normais apresentam-se identificadas através de números e devem ser seguidassegundo a seqüência abaixo:1F N F N B C 4F N 2F N 5F N 3F N M en o r Im p a c to M a io r I m p a c to 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 o atributo multivalorado por um conjunto de atributos de mesmo domínio, cada um monovalorado 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 o mesmo conjunto de atributos chave, mais o atributo multivalorado também como chave, 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 Pg. 21 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  22. 22. Notas Didáticasexigem 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 dependentesfuncionalmente 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. Pg. 22 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  23. 23. Notas Didáticas 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 osatributos que determinam esse grupo como chave; d). Repetir estes procedimentos para cada grupo, até que todas as relações somentecontenham atributos que dependam de toda a chave primária. Exemplo:Ministra (2FN)Professor Sigla da Disciplina Livro TextoTurma (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 4 2 TLPII 23 4 1 SBD 12 3 2 SBD 22 3 1 TGS 15 4 Após a transformação temos:Ministra (2FN)Professor Sigla da Disciplina Livro Texto Pg. 23 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  24. 24. Notas DidáticasTurma (2FN)Número da Turma Sigla da Disciplina Sala de AulaDisciplina (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ãotransitivos 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 originaldependam diretamente de toda a chave primária. Exemplo:Ministra (Não 3FN)Professor Sigla da Disciplina Livro TextoTurma (3FN)Número da Turma Sigla da Disciplina Sala de AulaDisciplina (3FN)Sigla da Disciplina Nro. Horas Pg. 24 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  25. 25. Notas DidáticasCom 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 TextoAndré TLP II AJoão SBD DMaria ADB CMário SBD DSandra TEL E Após a transformação temos:Ministra (3FN)Professor Sigla da DisciplinaTurma (3FN)Número da Turma Sigla da Disciplina Sala de AulaDisciplina (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 candidatasão dependentes não transitivos de toda a chave candidata. Pg. 25 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  26. 26. Notas Didáticas 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_HoraAloca2 (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. Pg. 26 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  27. 27. Notas Didáticas 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 OrientadoCom 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 OrientadoLuiz 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 DisciplinaProfessor_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 : Pg. 27 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  28. 28. Notas Didáticas a). Colocar todos os atributo multi-valorado que pertencem à um mesmo ciclo emuma relação. Exemplo:Professor_apostila (Não 5FN)Nome ApostilaProfessor_disciplina (Não 5FN)Nome DisciplinaDisciplina_apostila (Não 5FN)Apostila DisciplinaCom 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. Pg. 28 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  29. 29. Notas Didáticas8 - 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. Colunas Tabelas Nome Nome Tipo de Coluna Tabela Dados Nome Data Criador Comentário Tabela Índices Nome Nome Unívoco Aplicativos Coluna Tabela Nome Nome Data Criador Tabela Programa 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. Pg. 29 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  30. 30. Notas Didáticas 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 EMPREGADO PNOME MNOME SNOME NSS DATANASC ENDEREÇO SEXO SALARIO NSSSUPER NDEP John B Smith 123456789 09-JAN-55 R. A, 1 M 3000 333445555 5 Franklin T Wong 333445555 08-DEZ-45 R. B, 2 M 4000 888665555 5 Alícia J Zelaya 999887777 19-JUL-58 Av. C, 3 F 2500 987654321 4 Jennifer S Wallace 987654321 20-JUN-31 Trav. D, 4 F 4300 888665555 4 Ramesh K Narayan 666884444 15-SET-52 R. E, 5 M 3800 333445555 5 Joyce A English 453453453 31-JUL-62 R. F, 6 F 2500 333445555 5 Ahmad V Jabbar 987987987 29-MAR-59 Av G, 7 M 2500 987654321 4 James E Borg 888665555 10-NOV-27 Av H, 8 M 5500 null 1 DEPARTAMENTO LOCAIS_DEPTO DNOME DNÚMERO SNNGER DATINICGER DNÚMERO DLOCALIZAÇÃO Pesquisa 5 333445555 22-MAI-78 1 Houston Administrativo 4 987654321 01-JAN-85 4 Stafford Gerencial 1 888665555 19-JUN-71 5 Bellaire 5 Sugariand PROJETO 5 Houston PNOME PNÚMERO PLOCALIZAÇÃO DNUM ProdutoX 1 Bellaire 5 ProdutoY 2 Sugarland 5 TRABALHA_EM NSSEMP PNRO HORAS ProdutoZ 3 Houston 5 Automação 10 Stafford 4 123456789 1 32.5 123456789 2 7.5 Reorganização 20 Houston 1 Beneficiamento 30 Stafford 4 666884444 3 40.0 453453453 1 20.0 453453453 2 20.0 DEPENDENTE 333445555 2 10.0 NSSEMP NOMEDEPENDENTE SEXO DATANIV RELAÇÃO 333445555 3 10.0 333445555 Alice F 05-ABR-76 FILHA 333445555 10 10.0 333445555 Theodore M 25-OUT-73 FILHO 333445555 20 10.0 333445555 Joy F 03-MAI-48 ESPOSA 999887777 30 30.0 987654321 Abner M 29-FEV-78 MARIDO 999887777 10 10.0 123456789 Michael M 01-JAN-78 FILHO 987987987 10 35.0 123456789 Alice F 31-DEZ-78 FILHA 987987987 30 5.0 123456789 Elizabeth F 05-MAI-57 ESPOSA 987654321 30 20.0 987654321 20 15.0 888775555 20 nullConsulta 1: Encontrar o nome e o endereço de todos os empregados que trabalham para o departamento 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 do departamento responsável, e o sobrenome, endereço e data de nascimento do gerente responsável pelo departamento. Pg. 30 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.
  31. 31. Notas Didáticas • 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 controlados pelo 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) ❋ Pg. 31 – Parte IV (Projeto Lógico de BD Relacional) Prof. Luiz Camolesi Jr.

×