Você está na página 1de 75
(VJ Estratégia CONCURSOS Aula 02 Banco de Dados para Concursos - Curso Regular 2017 Professor: Thiago Rodrigues Cavalcanti Modelo Relacional — Algebra relacional — Normalizacao Prof. Thiago Rodrigues Cavalcanti — Aula 02 Sumario Modelo Relacional...sesemsenesenersensesen 1, Modelo relacional.... 1.1. _ Restrigdes de Integridade. 2. Algebra relacional. 21. 2.2. 10 2.3, Rename (renomeagao) wns snsornsonnsoen sssennsesssenseenseen AL ee sannnnernnenne AD 12 13 2.6. Diferenca 2.7. Produto Cartesiano 2.8. 13 2.9. 15 3. 16 4. 18 23 .27 4.1. Quarta e quinta formas normais. 5. Mapeando 0 modelo ER em relacional Questdes comentadas...... Questdes sem comentarios Consideragdes Finaisunnnnmnmnnennnsnn stan sensnnrecnnnsies TA Modelo Relacional | 1. Modelo relacional Nossa aula de hoje trata de um modelo de dados definido em 1970 por Codd. Edgar Frank Codd foi um matematico briténico que desenvolveu 0 modelo de banco de dados relacional quando era pesquisador da IBM em San José. E interessante que a IBM n&o quis implementar as ideias de Codd inicialmente. Eles tinham uma linha produtos, em especial 0 IMS/DB, e néo queriam perder faturamento. Mesmo assim, Codd insistiu na utilizagao do modelo, ele conversou com um grupo de clientes e apresentou as vantagens e peculiaridades da sua solugao. A IBM acabou implementando o System R. Deste projeto surge a linguagem SQL (SEQUEL). Veremos na préxima aula um pouco mais sobre SQL, nesta aula apresentaremos os conceitos do modelo relacional. Vamos juntos? Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br Ade 74 Estratégia Modelo Relacional — Algebra relacional — Normalizacao strates) Prof. Thiago Rodrigues Cavalcanti — Aula 02 © modelo relacional é um modelo de dado representative (ou de implementagao). Como um modelo, ele procura organizar os dados em um banco de dados. Para isso, ele define um conjunto de conceitos para representagdo dos dados. O modelo tem uma base formal sdlida que esta estruturada na teoria dos conjuntos. C. J. DATE apresenta 0 modelo relacional com as seguintes caracteristicas fundamentais, que o distingue dos demais modelos: 1. Estrutura de dados tabular. 2. Regras de integridade. 3. Operadores relacionais. 4. Utilizagao do SQL (Structured Query Language). Vejam que a primeira caracteristica definida acima trata da estrutura de dados tabular. A base deste modelo é 0 conceito de relag&o. Um banco de dados seria, portanto, um conjunto de relagdes. Cada relac&o pode ser vista como uma tabela. Assim, 0s SGBD relacionais devem representam os dados sob a forma de tabelas bidimensionais organizadas em linhas e colunas. Cada linha dessas tabelas é conhecida como uma tupla, ou uma colegéo de valores relacionados. Cada coluna é vista como um atributo, que possui um determinado conjunto de valores possiveis: © dominio. Um dominio é um conjunto de valores atémicos. A figura abaixo resume os conceitos vistos por meio da representacao da tabela Alunos. Nome da Atributos relacgdo Sh oie Percebam que a tabela é uma relacdo dentro do modelo. Cada uma das colunas (Nome, Numero e Turma), representam um atributo que deve ser associado a cada uma da tuplas desta tabela. Cada linha descreve um aluno desta tabela, a primeira linha apresenta os dados de Francisco com seus respectivos numero e turma. Outra constatag3o que podemos fazer na figura acima é a presenca de um conjunto de valores possiveis para cada uma das colunas. Nao esta explicito. Nao sabemos a definicgo formal da tabela. Contudo, podemos observar que as Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br 2de 74 Modelo Relacional — Algebra relacional — Normalizacao Prof. Thiago Rodrigues Cavalcanti — Aula 02 tuplas desta relago apresentam apenas valores numérico associados a coluna Numero e caracteres associados a coluna Nome. E importante perceber que cada coluna possui um tipo de dados. Quando especificamos um dominio, geralmente definimos um tipo de dado do qual sao retirados os valores possiveis para um atributo. Além do tipo de dado, um dominio pode ser descrito por meio de um nome, um formato e outras informacées adicionais a respeito dos dados. Apenas para exemplificar um atributo salério pode ser definido como um decimal com 10 digitos e seu valor ser definido em reais (R$). Outra caracteristica relevante associada ao dominio é 0 fato dele ser atémico. Isso faz parte da definicéo do modelo relacional. Nao se esqueca disso! Usaremos esse conceito quando formos estudar normalizacéo mais a frente. Outro ponto importante, esté relacionado a integridade dos dados. O modelo apresenta um conjunto de restricdes bdsicas para dados e relacionamentos, conhecidas como restrig6es de integridade. Ok! Temos as nossas relacdes! Conseguimos definir, pelo menos de forma gréfica um conjunto de tabelas com seus atributos. Se quisermos, podemos povoar essas tabelas com dados. Agora, se eu quiser associar ou operar uma tabela com outras, ou ainda, fazer uma consulta que me retorne apenas as tuplas que possuam uma certa restric&o, o que devo fazer? Neste momento chegamos a terceira caracteristica definida por Date, que vimos na pagina anterior. Os operadores relacionais séo usados para manipular as informacées pertencentes a cada uma das relacgées do nosso modelo. Esse conjunto de operagées é conhecido como algebra relacional. Ela vai nos auxiliar a trabalhar com os dados em nossos esquemas relacionais. Formalmente, um esquema relacional R, pode ser definido por R (Ai, Az, , An) & composto por um nome de relago R e uma lista de atributos Ai, A2, ..., An. Cada atributo A, é o nome de um papel desempenhado por algum dominio D no esquema de relagdo R. Veja que aqui estamos falando do esquema, modelo, desenho ou intengao de uma relacéo. Se vocé nao conseguiu observar de forma clara a definigéo acima, vamos tentar apresentar a mesma em forma de figura. Veja que eu mantive 0 nome das colunas e da relago com os termos usados na definicéo. Os valores em cada coluna s&o definidos de acordo com um dominio especifico, veja a coluna An pode receber os valores Aprovado ou Reprovado, por exemplo. R A Aa we An BACEN 8.8 Aprovado SENADO. 9.2 Aprovado, Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br 3de74 Estratégia Modelo Relacional — Algebra relacional — Normalizacao strates) Prof. Thiago Rodrigues Cavalcanti — Aula 02 \Vejamos agora outras definigées presentes no modelo. Percebam que sdo definigdes simples. O entendimento destes conceitos facilita a leitura do contetido quando estudamos e também na hora da prova! © grau (ou aridade) de uma relaco ¢ 0 ntimero de atributos ‘n’ desse esquema de relacéio. Em outras palavras, a aridade de uma relacdo 6 0 ntimero ‘n’ de elementos que compdem as n-uplas ordenadas pertencentes a relacio. Uma relag3o de grau cinco teria, logicamente, cinco atributos. Se pensarmos em uma tabela, teriamos cinco colunas. Considere 0 exemplo de uma relacao esquema de grau 7, que descreve estudantes universitarios: ESTUDANTE (Nome, Matricula, Telefone, Endereco, Celular, Idade, MPA) Existe outra caracteristica, que é o estado ou a extens&o de uma relacao, representado formalmente por um r (minusculo) ou r (R). Esse 'r’ é um conjunto de ‘m’ tuplas, onde r = {ti, t, ..., tm}, Cada uma das tuplas ti é uma lista ordenada de n valores ti = em que cada valor vi, 1< é um elemento de dom(A)) ou um valor especial NULL. Lembre-se que ‘A’ é um atributo da relacao. Mais uma vez apresentamos uma definicdo um pouco matemética do conceito. E, mais uma vez, podemos, ao visualizar essa definigfo em uma tabela, verificarmos a simplicidade visual do que esté sendo descrito acima. R AL Ao As As a vir viz via Via t2 var v22 Vea Ves 3 var v2 va3 Vas Neste caso, podemos definir r = {ti, tz, ts} ¢ cada uma das tuplas séo ordenadas pelos valores . Perceba a existéncia de uma ordenacéo entre os valores dos atributos de uma relacéo. Lembra quando vocé cria uma tabela em SQL, geralmente a ordem que vocé define para os atributos é a mesma que os campos sao criados fisicamente na base. Agora que entendemos todos os conceitos iniciais vamos tratar de outras caracteristicas das relagdes. A primeira delas seria a ordenac&o de tuplas em uma relagao. Vejam que estamos falando das linhas. Imagine uma consulta 20 banco de dados que retorna um conjunto de tuplas, sera que existe algum io predefinido para a ordenagao deste resultado? A ideia é que, por ser definida como um conjunto de tuplas dentro de cada relacéo, as tuplas no séo ordenadas. Em outras palavras, a ordenacao da tupla nao faz parte da definigéo da relacéo. Se vocé pensar em SQL, & basicamente estabelecer 0 fato de que se vocé fizer uma consulta e nao Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br Ade 74 Modelo Relacional — Algebra relacional — Normalizacao Prof. Thiago Rodrigues Cavalcanti — Aula 02 especificar uma ordenagao para o resultado na cldusula order by o SGBD pode retornar os valores ou tuplas em qualquer ordem. E a ordenagio dos valores dentro de uma tupla? Essa sim é& importante, pois cada valor representa um significado especifico dentro de um dominio. Ou seja, ao inserir uma tupla em uma relacéo é importante que os valores estejam associados aos seus respectivos atributos. Para exemplificar, pense em uma tabela, os valores associados a cada coluna tém um significado, sendo assim, a inserco de linhas deve ser feita respeitando o contexto de cada coluna. Vamos fazer uma questo para entender um pouco mais do assunto. 133] CAIU na prova! 1. BANCA: CESPE ANO: 2015 ORGAO: TJDFT PROVA: PROGRAMACAO DE SISTEMAS Julgue os itens seguintes a respeito de banco de dados. [61] Em uma tabela de um banco de dados relacional, se uma restricao de chave priméria for definida como composta de mais de uma coluna, os seus valores poderdo ser duplicados em uma coluna; no entanto, cada combinacao de valores de todas as colunas na definigéo da restricao de chave primaria deve ser exclusiva. Comentario: Questao interessante, pois _nos permite fazer um rapido comentario sobre chaves. Uma chave identifica unicamente uma linha de uma relagdo. Toda relacdo pode ter varios conjuntos de atributos que podem ser escolhidos como chave primaria. Cada uma dessas opgdes que se caracterizam por ser uma superchave minima, ou seja, nao é possivel retirar nenhum atributo sem que 0 conjunto perca a propriedade de ser chave da relacao, é denominada chave candidata. A chave escolhida para ser a chave da relacdo & denominada chave priméria, Ela pode ser composta por um ou mais atributos. A quest&o pede para analisarmos uma caracteristica de chaves compostas por mais de um atributo. Percebam que a unicidade dos valores deve considerar 0 conjunto dos atributos e nao um atributo individualmente. Sendo assim a alternativa encontra-se correta. Gabarito: C. 1.1. Restrigé6es de Integridade Na primeira parte da aula definimos a estrutura tabular presente no modelo relacional. Agora vamos falar das restrigées de integridade. Essas restrigdes visam manter a consisténcia dos dados dentro do seu banco. As regras de integridade podem ser vistas como um conjunto de parametros ou regras do negécio, previamente estabelecidos e criados no banco de dados, aos Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br Side 74 Modelo Relacional — Algebra relacional — Normalizacao Prof. Thiago Rodrigues Cavalcanti — Aula 02 quais os dados sao submetidos, para garantir que de um processo de atualizacao nao resulte em dados inconsistentes. Uma das caracteristicas mais fortes dos bancos de dados relacionais, quando comparado com seus antecessores (em Rede e Hierarquico), esté em oferecer mecanismos para a criacéo de regras de integridade diretamente no banco de dados. As regras de integridade de dados podem ser implementadas nos SGBDR de forma declarativa ou procedural. A integridade declarativa é implementada através de parametros opcionais da linguagem de definic&io de dados (DDL). Os tipos mais comuns de integridade declarativa so: chave primaria (PK), dominio e integridade referencial. A integridade procedural se apresenta sob a forma de um programa, cuja légica é escrita pelo programador, na linguagem procedural nativa do SGBD. Esse tipo de integridade supre as necessidades nao cobertas pelos pardmetros de integridade declarativa e pode ser criada através de triggers, stored procedures ou assertions. As bancas focam suas questdes sobre esse assunto nos seguintes tipos de restrigdes: +Integridade de Dominio (dom(A)) ~ restringe os valores validos que podem ser associados a um determinado atributo. E a mais elementar forma de restrigéo de integridade. Ajudam, no somente a garantir os valores inseridos no banco de dados, mas também a testar consultas para garantir que as comparacées feitas fazem sentido. Na linguagem SQL é implementada pelo comando CHECK. + Integridade de Chave (Unicidade) - Garante @ unicidade do valor da chave priméria em cada uma das tuplas de uma relacdo. Implementado pela palavra-chave UNIQUE. + Integridade de Vazio (def if(x!=null?: ull) - Basicamente verifica se um valor de um determinado atributo pode ou nao ter o valor nulo associado a suas instancias. Podemos definir uma coluna como NULL ou NOT NULL em SQL. + Integridade de Entidade (PK != null) - Garante que a chave primaria de uma entidade no receba o valor nulo. + Integridade Referencial (FK K (Chave Candidata) || FK == null) - Garante que o valor que aparece em uma relacéo para um dado conjunto de atributos também apareca para um conjunto de atributos em outra relacdo. Em SQL é implementada por meio de uma referéncia da chave estrangeira (FK) de uma relac&o 4 chave primaria ou atributo UNIQUE da outra tabela. Esse valor de chave estrangeira, sempre que existir, deve Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br 6 de 74 Modelo Relacional — Algebra relacional — Normalizacao Prof. Thiago Rodrigues Cavalcanti — Aula 02 estar associado a um valor da chave primaria da outra relagdo. Caso contrario pode assumir apenas o valor nulo. + Integridade SemAntica (assertions ou triggers) - Uma assercdo é um predicado que expressa uma condicéo que desejamos que seja sempre satisfeita no banco de dados. Um gatilho (triggers) 6 um comando que é executado pelo sistema automaticamente, em consequéncia de uma modificaco no banco de dados. Toda vez que um evento acontece, uma condigao (caso exista) é verificada e uma ago é disparada. Ao lado da explicacéio de cada uma das regras de integridade existe, entre parénteses, uma palavra, formula ou expressdo. Elas no existem em nenhuma fonte oficial de estudos. Sao estruturas criadas por mim para facilitar a memorizacéo das restrigdes de integridade. Quando formos estudar SQL, falaremos um pouco mais sobre esse assunto com uma visdo mais prética dos conceitos apresentados. Vamos agora fazer mais uma questao de provas passadas, desta vez a banca é a FCC. a CAIU na prova! 2. BANCA: FCC ANO: 2015 ORGAO: CNMP PROVA: ANALISTA DO CNMP - DESENVOLVIMENTO DE SISTEMAS Considere a tabela funcionario a seguir, cuja chave primaria é FuncCPF, em um banco de dados relacional. ‘FuncNome | FunetPF FancDataNase | FancEndereco[ DepNo— | DepNome Depa Paulo ‘5e24e03614 | 08-00-1965 | R Timbira, 75 5 Pesquisa 56008765 Francisco | 23408765400 | 10-12-1985 | RMaua, 1345 | Aaminisragso | 6789-6543 Marcia ‘retsesssot [23-11-1900 R Jar 34 ‘S| Pesauisa S908 765; ‘Anaré 74519615410 | 07-01-1090 R Bahia, 193 3_| Aaministrag6 | 6789-5643 “Aniénig | 13419817702 —[ 29-08-1998 | R Ceara. 387 TRH Te008541 ‘A manipulag&o de dados nesta tabela pode levar a problemas conhecidos como anomalias. Sobre elas, consider: I. Para incluir uma nova tupla na tabela seré necessério incluir ou os valores de atributo do departamento para o qual o funcionario trabalha ou valores NULL, se © funciondrio ainda nao trabalha para nenhum departamento. Este é um exemplo de anomalia de insercao. I. A Unica maneira de inserir um novo departamento que ainda nao tenha funcionérios é colocar valores NULL nos atributos para funciondrio, j4 que este procedimento nao viola a integridade de entidade. Este é um exemplo de anomalia de insercao. III. Se 0 funcionario Anténio for excluido e este for o Ultimo funciondrio trabalhando no departamento RH, a informagao referente a este departamento se perde do banco de dados. Este é um exemplo de anomalia de exclusdo. IV. Se o valor de um dos atributos de determinado departamento for mudado (do departamento 5, por exemplo) sera necessario atualizar as tuplas de todos Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br 7 de 74 Modelo Relacional — Algebra relacional — Normalizacao Prof. Thiago Rodrigues Cavalcanti — Aula 02 0s funcionérios que trabalham neste departamento, caso contrario, o banco de dados ficara incoerente. Este é um exemplo de anomalia de modificacéo. Esté correto 0 que se afirma APENAS em AL, lle Iv. Bille lv. CL Mell. Dilen. El, lel. Comentario: Quando tratamos do assunto de normalizacao é costume falar que ao normalizar uma relaco vocé vai reduzir anomalias de atualizacao. Contudo, nem sempre nos lembramos de mostrar exemplos praticos de como isso acontece, essa questdo nos ajuda neste aspecto. A assertiva I trata da insercdo de um novo funciondrio ainda nao alocado em nenhum departamento. Neste caso os valores referentes a departamento ficaréo vazios na tupla até que venham a ser inseridos. Além de nao ser bom para satide do banco de dados esse exemplo é considerado um exemplo de anomalia de inserc&o, sendo assim, temos uma alternativa correta. Veja que nao temos condigdes de inserir um departamento sem funcionario associado, pois a chave da relacdo é o CPF do funciondrio. Sabemos que a chave primaria no pode assumir valores nulos. Desta forma, podemos afirmar que a alternativa II esta errada. A alternativa III descreve um caso concreto da anomalia de exclusao em tabelas n&o normalizadas, vejam que é possivel que vocé perca as informacées sobre um departamento ao excluir 0 ultimo funciondrio que esté cadastro. A alternativa esta correta. Por fim, a alternativa IV apresenta um exemplo concreto e correto de uma anomalia de modificacio. Gabarito: A. 2. Algebra relacional Falaremos agora sobre a algebra rel nal, um assunto bastante explorado pelas bancas de concurso. Esse tema possui algumas caracteristicas mateméticas que so baseadas principalmente na teoria de conjuntos. O conjunto basico de operagées utilizadas no modelo relacional é conhecido como Algebra relacional. Navathe apresenta trés motivos para considerarmos essas operacées importantes: 1. Fornece alicerce formal para o modelo relacional. 2. E usado como base para implementacio e otimizacio de consultas. 3.Alguns dos seus conceitos sao incorporados na linguagem SQL padrao. Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br Bde 74 Estratégia Modelo Relacional — Algebra relacional — Normalizacao strates) Prof. Thiago Rodrigues Cavalcanti — Aula 02 Historicamente, a algebra e o cdlculo relacional foram desenvolvidos antes da linguagem SQL. O conjunto basico de operacées para o modelo relacional é a Algebra relacional. Essas operacées permitem que um usuario especifique as solicitagdes de recuperacéo basicas como expresses da algebra relacional. O resultado de uma recuperagao ou consulta é uma nova relagao. Embora a algebra defina um conjunto de operagdes para o modelo relacional, 0 célculo relacional oferece uma linguagem declarativa de nivel mais alto para especificar consultas relacionais. A dlgebra_relacional normalmente é considerada uma parte do modelo de dados relacional. Suas operacées podem ser divididas em dois grupos. Um grupo inclui conjunto de gperacées da teoria de conjuntos da matemética; e outro grupo desenvolvidas especificamente para bancos de dados relacionais: as operacées relacionais. Vamos apresentar cada uma das operacdes, e em seguida, apresentaremos as taxonomias ou formas de classificagéo das operagées. Tenham em mente que todas as operagées sao executadas sobre uma ou duas, tabelas e 0 retorno delas é sempre outra relacdo. Essa caracteristica é conhecida como fechamento. 2.1. Selegao 0 objetivo dessa operagéo, que recebe como entrada uma Unica tabela ou relaco, é selecionar um conjunto de tuplas que satisfacam um predicado (uma condigao légica) nos valores dos atributos. Em outras palavras vamos extrair de uma relagdo um conjunto de linhas que possuem algumas restrigdes, por exemplo, funciondrio que o salério seja maior que 10 mil reais. Vamos procurar entender melhor 0 que a operagdo faz exatamente com outro exemplo, vejam a tabela abaixo: Distribuicao de | Distribuicao de petrdleo no gas natural no mundo (%) mundo (%) [América do Norte 35 50 América Latina 13,0 6,0 Europa 2.0 36 Ex Unido Soviética 63 38,7 (Oriente Médio 640 33.0 lAfrica 72 TT Asia/Oceania 40 60 Queremos executar uma operacao se selecao sobre esta tabela. Vamos entao fazer uma consulta de quais grupos de paises ou parte do mundo apresentam mais de 10% da distribuicdo de petrdleo. Olhando para a tabela ja poderiamos trazer os valores América Latina e Oriente Médio. Mas existe uma Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br 9de74 Modelo Relacional — Algebra relacional — Normalizacao Prof. Thiago Rodrigues Cavalcanti — Aula 02 notagao especifica definida pela algebra relacional para fazer essa consulta. Essa notacao pode ser vista abaixo: o ( ! g ) p A letra grega o (sigma) representa a operacao de selecdo, que é feita sobre a relag&o R, restringindo as linhas de acordo com as restrigées descritas, pelo predicado. Sobre esse predicado € preciso tecer alguns comentarios. Primeiramente ¢ perfeitamente possivel que ele seja uma composicao de restrigdes sobre diferentes colunas da tabela. Cada restrico é conhecida como termo. Os termos podem ser ligados por conectivos A (e), v (ou), - (no). Cada termo pode ser composto por um operador ou operador . Por fim a lista de operadores é formada por =, #, >, 2, < ou <. Percebam que vocé pode compor diferentes predicados com essas estruturas. Vamos agora, que conhecemos a sintaxe e a consulta sugerida, escrever a mesma na notacdo correta. (Para facilitar nossa escrita, vamos chama as colunas de REGIAO, DISTRIBUICAODEPETROLEO, DISTRIBICAODEGAS e a relacdo de PETROLEOREGIAO): Depisreinvicnoverersouro >= 10>(PETROLEOREGIAO) Observe na consulta acima que 0 predicado < oisiusuicnoncemorso >= 1 & definido sobre um atributo da tabela PETROLEOREGIAO. 2.2. Projegao Agora vamos passar para a projecdo. Essa operacdo, também, recebe como entrada uma relag&o. Contudo, suas restricées sao feitas sobre as colunas da tabela. Essa operacao deixa algumas colunas de fora do resultado, reduzindo, portanto, a quantidade de dados a serem analisados. Usando o mesmo exemplo anterior vamos supor que queremos as informagdes apenas da distribuicéo de petréleo no mundo e das regides. Bastaria recortar a tabela excluindo a coluna que informa a distribuicao de gas. Da mesma maneira que a operacao anterior, apresentaremos agora a representacao formal da projecdo: Tai, A2, ..., Ak (R) A letra grega n (pi) representa a operacao. A1, A2, ..., Ak so a lista de atributos da relacdo R que queremos trazer como resultado. Para fazermos a Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br 10 de 74 Modelo Relacional — Algebra relacional — Normalizacao Prof. Thiago Rodrigues Cavalcanti — Aula 02 consulta utilizando a nomenclatura correta podemos escrevé-la da seguinte forma: Me geciao, pisrminuicaoneeesaoico >(PETROLEOREGIAO) Ainda sobre a essa operacdo consideramos relevante saber que os resultados duplicados séo removidos. 2.3. Rename (renomeagao) Para entender a definiggo da funcéo rename, podemos comecar entendendo a sua funcionalidade. A primeira seria unificar em um dnico conjunto duas listas diferentes. Imaginem duas tabelas, uma com a lista de escolas e outra das universidades. Se quiséssemos juntar os nomes das instituigdes de ensino poderiamos fazer uma unio (falaremos sobre a operagdo nas préximas linhas) dos nomes das escolas com os nomes das universidades. Contudo, se precisarmos usar esse resultado mais adiante, qual o nome da nova relaco e dos atributos? Temos, portanto, que renomear 0 resultset. © segundo uso do rename seria para reduzir ambiguidade em “selfjoin ‘s”. Quando fazemos um join da tabela com ela mesma e queremos comparar os atributos do resultado, temos que renomear as tabelas para que essa comparac&o possa ser feita. Se vocé se lembrar de SQL, a linguagem implementa alias sobre as tabelas, e uma das fungées desse alias é justamente resolver essa ambiguidade. Em suma, 0 alias é uma implementago do conceito de rename. A representacdo formal da operacao de rename é feita da pela letra grega p (rho) e é aplicada sobre uma relacdo. Veja abaixo: Pxcat, a2, .. an >(E) x representa 0 novo nome dado para a relacéo (E) e Al, A2, ..., An representam os novos nomes dados para os atributos da relacdo. Al se refere ao primeiro atributo da relacéo, A2 ao segundo e assim sucessivamente. Suponha uma relagéo STUDENT (NAME, PHONE). Podemos usar 0 comando de rename da seguinte forma: Pestudante (STUDENT) Vocé poderia ainda atribuir o resultado acima a outra relago usando o comando de assignment (€). Assim poderiamos atribuir o resultado anterior a uma varidvel, por exemplo: temp © Pestudante(STUDENT) As préximas quatro operagées so conhecidas como operagées de conjuntos. Vamos analisar cada uma delas. Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br ide 74 ‘Modelo Relacional ~ Algebra relacional - Normalizacéo Prof. Thiago Rodrigues Cavalcanti — Aula 02 A operaco é caracterizada por R u S, onde R e S so duas relagdes com a mesma quantidade de atributos e cujos atributos operam sobre 0 mesmo dominio. O resultado contém as tuplas que estéo em R, S ou ambas, matematicamente pode ser vista assim: RUS={tteR ou te S} A |B iC A |B IC A |B iC a |e |f a |i fa a le |f zg z le |b b fa [zg a d [ft fa ad [fla a |i |a zg |e |b 2.5. Interseccao A interseccdo representada por R 1 S, tras como resultado a Relacdo que contém as tuplas que estao em ambas Re S. ROS=itteReteS} A |B ic A |B lc A |B ic e |f a |j ja d {ft fa b zg g |e |b d a d lf fa 2.6. Diferenca R - S: Relac&io que contém as tuplas que esto em R e que nao esto em Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br i2de74 Modelo Relacional — Algebra relacional — Normalizacao Prof. Thiago Rodrigues Cavalcanti — Aula 02 R-S=({tteRet¢S} a [B lc a [B [ce a [B lc a le [f a |i la a le |f g g |e b ja lg d a d [ft [a 2.7. Produto Cartesiano Permite combinar informagées de duas relagdes fazendo uma jungao de todas as linhas a primeira com todas as linhas da segunda. O produto cartesiano entre duas tabelas ou relacdes gera uma nova relacHo com a quantidade de tuplas igual ao produto da quantidade de tuplas de cada uma das relacdes. A nova relacéo possui todos os atributos que compée cada uma das tabelas que fazem parte da operacao da seguinte forma: RX S={tli2: tleR e t2€$} lente ===, SS ieee | Tame | Cewet 001 Joao | 1500 1500 Lisboa | - = oT Joao | 1500 72100 Porto’ as fm [aime 001 Toso | 1500 3999 ‘Evors bs ee [eas ons Ana | 2100 1500 Lisboa Localidade R= cc Colored | Poa in| Bad] Ev Taian Tae | NOLL [30 [Tite aa Pave ine | NOLL] 2109 Fore 3] Ben we ae ES ee 2.8. Jungao A jung&o é uma conexao entre duas tabelas na qual elas séo mescladas de acordo com um campo em comum. Essa junc&o pode ser considerada um produto cartesiano seguido por uma selecdo. O simbolo » representa uma jungo. Ao executar uma juncao ela deve satisfazer a um predicado @ e existir pelo menos um campo nas duas tabelas que operem sobre o mesmo dominio. Esse campo é usado para decidir quais linhas da primeira tabela devem se relacionar com cada uma das linhas da segunda tabela. Geralmente exige-se que os valores dos atributos sejam iguais. Mas existem variacées da juncao conforme veremos abaixo. Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br 13 de74 Agi. Modelo Relacional — Algebra relacional — Normalizacao strategia Prof. Thiago Rodrigues Cavalcanti — Aula 02 Theta-Join: © primeiro tipo de jungéo é definido sobre alguma comparagao entre os atributos de jungéo. Essa comparagao é conhecida como predicado. Caso esse predicado seja uma igualdade entre valores essa jungao é conhecida como Equijoin. Vejamos um exemplo: Car > Boat car Boat Car Price> Boat Price CarModel|CarPrice BoatModel BoatPrice °*™Mode! CarPrice BostMode! BoatPrice CarA 20000 Bott 10000» S#"A_—-20000 (Boat! 10000 cara fa0000” [Bosta 40n00 #8 e000 [Bett | 10000 arc —|s0000 Boats e000 © M5000 Boat? 10000 Cac 50000 |Bost2 40000 Natural join (04): Jungao na qual @ é uma igualdade predefinida entre todos os atributos de mesmo nome presentes em duas relacdes R1 e R2 (atributos de junc). Estes atributos sé aparecem uma vez no resultado. Jungées externas ou outer joins. Juncdo na qual as tuplas de uma ou ambas as relagdes que ndo séo combinadas mesmo assim sao preservadas no resultado, possui basicamente trés variagdes. Logo em seguida apresentamos um exemplo. Left outer Join: tuplas da relagdo & esquerda sdo preservadas. Notacao: >! Right outer join: plas da relacao a direita so preservadas Full outer join: tuplas da relagdo a direita e esquerda so preservadas Notagao: << pans wef | racers 10 Unrated _|PUSTIC, 30 ee oles ~ Let erin Ferm Aight ouee pin ar rooe—racce) [amr weope PREG) [aT™—Pmor PHTEE we 6.95 | [wees | ume teas. linens 8 ars | |rmowrs 1645.75 | |ramers 10 ass | Jruastie 907.56 |) [east a8 7.88. [rustic 3025 Le ae 5053.70 | 053.70 Prof. Thiago Rodrigues Cavalcanti www.estrategiaconcursos.com.br ade 74 Modelo Relacional — Algebra relacional — Normalizacao Prof. Thiago Rodrigues Cavalcanti — Aula 02 ite simbolo: ©. A operagao retorna os valores da relaco que nao satisfazem a condic&o de juno. Vejam o exemplo abaixo: Employee Dept Employee > Dept Name Empld|DeptName DeptName Manager © Name _Empld DeptName Harry | 3415 | Finance Sales Sally Harry | 3415 | Finance Sally 2241 | Sales Production | Harriet George | 3401 | Finance George 3401 | Finance Harriet 2202 | Production 2.9. Divisdo A operacao de diviséo é usada nas consultas nas quais se emprega a frase: “para todos”. Seu resultado seré composto basicamente pelos elementos da primeira tabela que se relacionem com todos os elementos da segunda tabela. Vejam 0 exemplo abaixo: cr cr PER Sobre a taxonomia é importante saber que temos um conjunto de operagdes conhecidas como fundamentais que sao a selecdo, projecdo, unio, intersec&o, diferenca, produto cartesiano e rename. Essas operacdes possuem esse nome, pois a partir delas é possivel obter o resultado das demais operacées. Outra classificacao importante é a classificacdo das operagdes em bindrias € unarias (ou primarias), Esse parametro esta baseado na quantidade de relages que so utilizadas nas operagées. As operagdes de projecéo, selecdo e fename séo unarias. As operacdes de unio, intersecdo, subtracéo, produto cartesiano, junco e diviséo séo binarias. CAIU na prova! Prof. Thiago Rodrigues Cavalcanti www.estrategiaconcursos.com.br 15 de74 Modelo Relacional — Algebra relacional — Normalizacao Prof. Thiago Rodrigues Cavalcanti — Aula 02 3. BANCA: FCC ANO: 2012 ORGAO: TJ-RJ PROVA: ANALISTA JUDICIARIO - ANALISTA DE SISTEMAS Considere a seguinte tabela de um banco de dados. TAB_FUNC = {COD_FUNC, NOME, COD_DEP, SAL} Uma expressao da algebra relacional representando a tabela formada pelos cédigos (COD_FUNC) e nomes (NOME) dos funciondrios que ganham saldrio (SAL) entre 1000 e 3000 reais e trabalham no departamento de cédigo (COD_DEP) 3 é A Reon _Func.Nome(Ocop_DEP=3 , SAL>1000 - SAL<3000(TAB_FUNC)) B-_R(Gsat>t000 « sa.csooo(TAB_FUNC)) © co0_peP(Hisat>1000 saL= 1000 AND SAL <= 3000 AND COD_DEP = 3; Agora vamos transformar essa consulta para a algebra relacional. Vamos fazer uma projego sobre os atributos COD_FUNC e NOME sobre o resultado de uma selecdo com as restrigdes iguais as do select. Assim temos como resultado: T( < SAL >= 1000 ~ SAL <= 3000 ~ cop_oer = 3>(TAB_FUN)) Vejam que esse resultado estd presente na alternativa A com algumas modificaces na ordem das restrices impostas pelo comando de selecao. Gabarito: A. 3. Regras de Codd Para que um banco de dados seja considerado relacional ele deve seguir as 13 regras definidas por E.F.Cood, apresentamos abaixo as referéncias a cada uma das regras. E muito comum encontrar publicagdes falando das 12 regras. O que acontece é que séo 13 regras, numeradas de 0 até 12. 0. Todas as regras se baseiam na noo de que para um banco de dados ser qualificado como relacional, ele dever utilizar recursos exclusivamente relacionais para seu gerenciamento. 1. Informacéio: Todas as informacédes em um banco de dados sao representadas de forma explicita no nivel légico e so estruturadas exatamente, em apenas uma forma, por valores em tabelas. 2. Acesso Garantido: Todos os dados precisam ser acessivels. Cada valor atémico (datum) em um banco de dados relacional possui a garantia de ser Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br 16 de 74 Modelo Relacional — Algebra relacional — Normalizacao Prof. Thiago Rodrigues Cavalcanti — Aula 02 logicamente acessado pela combinacao de nome de tabela, do valor da chave primaria e do nome da coluna. 3. Tratamento sistematico de valores nulos: Valores nulos devem ser suportados de forma sistematica, independente do tipo de dado, para representar informacées inexistentes e informacdes inaplicdveis. E também implicito que tais representagdes devem ser manipuladas pelo SGBD de maneira sistematica. 4. Catalogo on-line dinamico: A descrigéo ou metadados do banco de dados é representada no nivel légico da mesma forma que os dados ordindrios, permitindo que os usuérios autorizados utilizem a mesma linguagem relacional aplicada aos dados regulares. E possivel usar a linguagem SQL para conhecer as. descrigées das tabelas do banco, por exemplo. 5. Sublinguagem ampla dos dados: Um sistema relacional pode suportar varias linguagens e varias formas de recuperacao de informagées. Entretanto, deve haver pelo menos uma linguagem, com uma sintaxe bem definida e expressa por um conjunto de caracteres, que suporte de forma compreensiva todos os seguintes itens: definigio de dados, definigéo de "views", manipulagao de dados (interativa e embutida em programas), restrigées de integridade, autorizagdes/seguranca de acesso, e transacées (begin, commit e rollback). 6. Atualizac&o de visualizacées: Todas as "views" ou visdes dos dados que sao teoricamente atualizaveis devem também ser atualizaveis pelo sistema. 7. Insergio, atualizagio e exclusio de alto nivel: A capacidade de manipular um conjunto de dados (em uma relacdo) através de um simples comando deve-se estender as operacées de incluso, alterac&o ou exclusdo de dados. 8, Independéncia fisica de dados: Programas de aplicacdo e recursos ad hoc permanecem logicamente inalterados quando ocorrem mudangas no método de acesso ou na forma de armazenamento fisico. 9. Independéncia légica de dados: Mudancas nas relacées e nas views provocam pouco ou nenhum impacto nas aplicacdes. Ou seja, as alteracées nas tabelas que preserva os valores originais nao devem afetar os aplicativos e recursos ad hoc. 10. Independéncia de integridade: As aplicacdes nao so afetadas quando ocorrem mudancas nas regras de restrig6es de integridade. Deve ser possivel que todas as regras de integridade sejam definidas na linguagem relacional e armazenadas no catdlogo de sistema, nao no nivel de aplicacdo. Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br 17 de74 Estratégia Modelo Relacional — Algebra relacional — Normalizacao strates) Prof. Thiago Rodrigues Cavalcanti — Aula 02 11. Independéncia de distribuigée: As aplicacdes nao sao logicamente afetadas quando ocorrem mudancas geogréficas dos dados. Ou seja, os usuarios finais nao devem perceber o fato do BD ser distribuido ou local. 12. Nao transposi¢ao das regras: Se um sistema possui uma linguagem de baixo nivel, essa linguagem nao pode ser usada para subverter as regras de integridades e restricbes definidas no nivel mais alto, CAIU na prova! 4. BANCA: FCC ANO: 2012 ORGAO: TRT - 112 REGIAO (AM) PROVA: ANALISTA JUDICIARIO - TECNOLOGIA DA INFORMACAO Considere: 1. Regra 1 — Todas as informagGes so representadas de forma explicita no nivel légico e exatamente em apenas uma forma, por valores em tabelas. II. Regra 2 — Cada um e qualquer valor atémico (datum) possui a garantia de ser logicamente acessado pela combinagaéo do nome da tabela, do valor da chave priméria e do nome da coluna. Ill. Regra 3 — Valores nulos néo devem ser utilizados de forma sistematica, independente do tipo de dado ainda que para representar informacées inexistentes e informacGes inaplicdveis. Das regras de Codd para bancos de dados relacion; em , est correto o que consta AI, apenas. B II, apenas. Cle Il, apenas. D Ile Ill, apenas. EI, lel. Comentario: Vejam que a questao tratou das trés primeiras regras da lista, mas modificou o texto da regra 3 para tornd-la incorreta. Vejamos novamente as 3 primeiras regras: Regra 1: Informagéo - Todas as informagdes de um BDR devem ser representadas logicamente como valores de coluna em linhas dentro das tabelas. Regra 2: Garantia de Acesso - Deve-se garantir que todos os valores de uma tabela possam ser acessados por meio de uma combinacao de nome de tabela, valor de chave priméria e nome de coluna. Regra 3: Tratamento Sistematico de Nulos - Os nulos devem ser representados e tratados de modo sistematico, independentemente do tipo de dados. Gabarito: C 4. Normalizagao Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br 18 de74 Estratégia Modelo Relacional — Algebra relacional — Normalizacao strates) Prof. Thiago Rodrigues Cavalcanti — Aula 02 © Processo de normalizagao, como foi inicialmente proposto por Codd (1972), sujeita um esquema de relacdo a uma série de testes para certifica-se de que ele satisfaca certa forma normal A normalizagao de dados é uma técnica de decomposigao utilizada no projeto de banco de dados com objetivo de prover um armazenamento consistente, evitando redundancia de dados e anomalias de atualizacdo. Inicialmente, Codd propés trés formas normais: 18, 2@ e 38. Todas baseadas nas dependéncias funcionais entre os atributos de uma relagdo. Uma nova forma normal foi proposta por Boyce-Codd, que é mais forte do que 34 FN. Para entender as formas normais é preciso antes de qualquer coisa, entender alguns conceitos. Para facilitar 0 seu entendimento vamos defini-lo e explicd-los em uma linguagem simples e objetiva. Vamos comesar falando sobre chave. Como sabemos, existem alguns conceitos relacionados a chave. O primeiro deles é o de superchave, uma superchave de um esquema de relacéo R = {A1, A, ..., An} & um conjunto de atributos S C R (S est contido em R) que contenha a propriedade na qual néo haverd duas tuplas t1 e t2, em qualquer estado valido da relago r de R, cuja t1[S] = t2[S]. Em outras palavras uma superchave é um conjunto de atributos que tem a caracteristica de restringir 0 conjunto de tuplas de uma relagao a apenas uma linha. Essa superchave pode ser considerada apenas uma chave. Neste caso, a chave é defendida como uma superchave minima (K), qualquer remocao de atributo de K faré com que K deixe de ser superchave da relacéo. Se um esquema tiver mais de uma chave, cada uma delas é chamada de chave candidata. Entre as chaves uma delas é escolhida para ser a chave da relacao e é denominada de chave primaria. As demais sdo renegadas e séo denominadas chaves secundarias. Entender 0 conceito de chave é o primeiro passo para o entendimento das formas normais. De posse deste conhecimento, é possivel definir agora um atributo primario, que é membro de alguma chave candidata de R. Por sua vez, de forma bem intuitiva, um atributo nao primario é todo aquele que nao for um atributo primério! Outro conceito que temos que ter conhecimento é o de dependéncias funcional (DF). 34 sabemos que ele faz parte da definigéo de algumas formas normais. Mas, ainda néo sabemos exatamente o que ele significa. Dependéncia funcional é, basicamente, uma restrigdo entre dois conjuntos de atributos do banco de dados. Formalmente, uma dependéncia funcional, denotada por X > Y entre dois conjuntos de atributos X e Y, que sao subconjunto de R, especifica uma restrigao nas possiveis tuplas que formam um Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br 19de74 Modelo Relacional — Algebra relacional — Normalizacao Prof. Thiago Rodrigues Cavalcanti — Aula 02 estado da relago r de R. A restrigdo é que, para quaisquer duas tuplas t1 e t2 em r que tenha t1[X] = t2[X], elas também tém de ter ti[Y] = t2[Y]. Mais uma vez podemos simplificar: a questdo aqui é perceber que se vocé escolher um determinado valor para o atributo X da relagdo (sabendo que X > Y) é possivel saber o valor do atributo Y. Na definicao formal é dito que se duas tuplas tiverem 0 mesmo valor para X, entéo elas também teréio 0 mesmo valor de Y. & importante saber também que quando X > Y (X determina Y), X é chamando de determinante e Y de determinado. Uma dependéncia funcional pode ser considerada trivial, neste caso se X > Y eX contém (2) Y. Para entender isso basta supor um conjunto de atributos (A, B, C, D, E) e 0 fato de A, B, C > C faz desta DF uma dependéncia trivial. Por outro lado, temos a possibilidade da DF ser nao trivial se X > Y e X ndo contém Y. Usando os mesmos atributos acima, uma DF A, B > D pode ser considerada um exemplo de DF nao trivial. Com esses conceitos j4 € possivel definir as trés primeiras formas normais, bem como a forma normal de Boyce-Codd. Primeira forma normal (1FN) - Essa é considerada uma parte da definigo de relagdo no modelo relacional basico. Sua definigao prevé que todos 0s atributos de uma relacéo devem ter seus valores definidos sobre dominios atémicos ou indivisiveis. Em outras palavras, os campos de uma tabela nao devem ser compostos ou multivalorados. Vejam abaixo uma figura que demonstra a normalizacdéo de uma tabela que nao esta na 1FN para duas relagées. Segunda forma normal (2FN) - A definigo mais rigorosa descreve que um esquema de relago R esté na 2FN se todo atributo nao primario A em R tem dependéncia funcional total da chave primaria. Podemos dizer também que niio existe dependéncia parcial. De uma forma mais simples, a ideia aqui € que cada atributo nao chave seja definido por todos os atributos pertencentes & chave primaria da relacdo. Veja abaixo uma relagdo que nao se adequa a segunda forma normal, sendo evoluida para duas que estao de acordo com a definicdo apresentada. Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br 20de74 Modelo Relacional — Algebra relacional — Normalizacao Prof. Thiago Rodrigues Cavalcanti — Aula 02 sum [sen] im 1s ‘sf — i — fa it wns Les 5 Isom Tsar rte Terceira forma normal (3FN) - Uma relacdo estd na Terceira Forma Normal (3NF) se ela esté na 2FN e nenhum atributo ndo chave (néo primério) é transitivamente dependente da chave prim Enfim, na 3FN nao se aceita dependéncia transitiva. O Navathe[1] descreve uma definicéo mais geral da terceira forma normal que diz basicamente o seguinte: Um esquema de relagéo R esté na terceira forma normal (3FN) sempre que uma dependéncia funcional nao trivial X > A for determinada em R, qualquer (a) X é superchave de R; (b) A atributo primario de R; Segundo o préprio autor, violar a condigdo (a) significa que X nao é um super conjunto de nenhuma chave de R; consequentemente, X pode ser ndo primario ou pode ser um dado subconjunto de uma chave de R. O autor fala também que a violacao de (b) significa que A é um atributo nao primario. Enfim, so condi¢des para a terceira forma normal (1) ter dependéncia funcional total para todas as chaves de R e (2) nao ser transitivamente dependente de nenhuma chave de R. ree 100,00 [7.50000 1006 [1-956 3 30,00 | 060,00, eo? [1323 1 19090 —[1g0 00 1008 11-908, 5 300,00 [5 860,00 X\vXa ios —T ioe Ts000 Hoo ser oe 0 Coos Tsar js ——Tesom0 Forma normal de Boyce-Codd (FNBC) - Uma coisa interessante é que ela foi proposta como uma forma mais simples que 3FN, porém mais rigida. Devido ao fato de a 3FN nao tratar satisfatoriamente casos onde uma relacao tem mais de uma chave candidata, estas chaves sao compostas e possuem atributos em comum. Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br aide 74 Estratégia Modelo Relacional — Algebra relacional — Normalizacao strates) Prof. Thiago Rodrigues Cavalcanti — Aula 02 Se uma relag&o esté na FNBC, também esté na 3FN. Sua definigéo diz 0 seguinte: uma relag&o esté na FNBC se todo determinante é chave candidata. Abaixo segue uma figura que demonstra uma normalizagao de uma relagao para a FNBC. LOTES1A Propriedade_num Nome cidade Num_lote Area ort 4 4 4 ora ops & Normalizagéo FNBC LOTES1AX LOTES1AY Propriedade num Area Num.lote Area Nome_cidade 4 CAIU na prova! 5. BANCA: FCC ANO: 2015 ORGAO: TRE-RR PROVA: ANALISTA JUDICIARIO - ANALISE DE SISTEMAS Considere a entidade a seguir, retirada de um diagrama de entidade- relacionamento, que possui como chave primaria os atributos employee id e start_date. Pode-se afirmar que para esta entidade estar na Segunda Forma Normal (2FN), ela precisa estar na Primeira Forma Normal (1FN) e A os atributos employee id, job_id e department id precisam ser chave estrangeira nesta entidade. B a chave priméria precisa ser formada pelos atributos employee_id, job_id e department _id, que so provenientes de tabelas relacionadas a esta. C © atributo employee id, que é parte da chave priméria, precisa ser proveniente de uma das tabelas relacionadas a esta. D os atributos end_date, job_id e department_id precisam ser dependentes da chave primaria composta inteira, no apenas de parte dela. Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br 22de74 Modelo Relacional — Algebra relacional — Normalizacao Prof. Thiago Rodrigues Cavalcanti — Aula 02 E todos os atributos precisam permitir apenas valores exclusivos, de forma que no haja redundancia e, consequentemente, desperdicio de espaco em disco. Comentario: Vejam que pelo diagrama sabemos que JOB_HISTORY se relaciona com outras 3 entidades, possivelmente, EMPLOYEE, JOB e DEPARTMENT. Se lembrarmos da definiggo da segunda forma normal que diz para eliminarmos dependéncia parcial, podemos observar que a alternativa D esta correta, pois ¢ uma implicagao da 2FN. Gabarito: D. 4.1. Quarta e quinta formas normais As formas normais vistas até 0 momento so apoiadas em dependéncias funcionais (2FN, 3FN e BCNF) e podem ser consideradas para cada relacdio. Uma base de dados seré considerada normalizada para uma dessas formas quanto todas as suas relagdes se apresentarem nessa forma. Tratamos das formas normais mais “simples” e relacionadas 4 DF, espero que vocé tenha entendido. Qualquer divida ou comentario pode ser enviado para mim aqui mesmo, no férum do Estratégia Concursos ou por e-mail. Mas, 0 objetivo desta aula é: ensinar todas as formas normais. Precisamos, entao, desmistificar a quarta e a quinta forma normal. Entéo, prepare sua mente, pois as préximas linhas deixarao todo assunto bem claro. Vem comigo! Primeira informagéo que devemos ter que faz parte da base do conhecimento das préximas formas normais é a ideia de decomposicéo sem perdas na jungao. A decomposic&o deve ser feita de maneira que, quando se recompée a relac&o original, apenas e exatamente as tuplas existentes na relacdo original sdo reobtidas. A decomposicéo baseada nas dependéncias funcionais (2FN, 3FN e FNBC) ndo causam perdas de juncao, portanto a normalizacao para as formas normais baseadas em dependéncias funcionais esta livre desse problema. Contudo, a normalizacao de relagdes através de dependéncias funcionais é apenas uma das maneiras, embora a mais importante, de evitar inconsisténcias em relacées. Outra maneira advém de uma variagéo das dependéncias funcionais, chamadas dependéncia multivalorada (DMV), multi- dependéncia funcional (MDF), ou ainda, dependéncia multivalor. E 0 que seria essa tal dependéncia multivalorada? A dependéncia multivalorada caracteriza 0 fato de que, embora um conjunto de atributos nao possa determinar o valor de outro atributo, ainda assim, esse conjunto consegue restringir os valores possiveis para aquele atributo. Vamos a um exemplo simples. Uma pessoa pode ter varios numeros de telefones e um ntimero de telefone pode ser compartilhado por varias pessoas. Nesse relacionamento N para M ndo é possivel encontrar uma DF entre esses dois atributos, porém podemos visualizar 0 que chamamos de dependéncia Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br 23.de74 Modelo Relacional — Algebra relacional — Normalizacao Prof. Thiago Rodrigues Cavalcanti — Aula 02 multivalorada entre 0 Id_pessoa e Num_telefone que pode ser representada por Id_pessoa ——Num_telefone. Diz-se que Id_pessoa multidetermina Num_telefone, ou, que Num_telefone é funcionalmente multidependete de Id_pessoa. Aqui cabe uma observacdo a respeito das DMV. Elas séo consequéncia da 1FN que nao permite que um atributo tenha um conjunto de valores. Veja um exemplo entre Funcionario, Projeto e Dependente. Funcionari con Ps Thiago rok 01 Maria Clara Thiago Proj 01 Gustave Thiago Proj 02 Vinicius Thiago roy 02 Maria Clara Thiage Proj 02 Gustave Veja que na tabela acima podemos encontrar duas DMV. Funciondrio multidetermina Projeto e Funcionério multidetermina Dependente. Sempre que houver a ocorréncia de um atributo multivalorado ocorreré a multi-dependéncia funcional. Entretanto, se houver duas ou mais dependéncias aloradas independentes entre si na mesma relacdo entdo pode ocorrer anomalias de atualizacao na relacdo. Tente inserir na tabela a informacao que Thiago participaré do projeto 03(proj 03). Para mantermos a DMV, teremos que adicionar 3 linhas, uma para cada dependente de Thiago, caso contrério ao procurarmos os dependentes dos funcionérios que participam do projeto 03 retornaremos uma informagao incorreta. Se tivermos um ou mais atributos multivalorados independentes na mesma relacéo, temos de repetir, gerando todas as combinagées entre os atributos para manter a consisténcia entre as instancias. Observe a relacéo (Funcionario, Projeto e Dependente). Veja que, ainda que esteja na FBNC, a mesma ainda apresenta redundancia. Observe também que a decomposic&o no pode se basear em DF, pois nao existem DF na relacao. E necessario, portanto uma regra para o tratamento dessas situacdes, que possa ser usada para decompor a relacéo sem perdas. Numa relacao R {A, B, C} se existe uma DMV A —— B também existe A + C (ou seja, A > R -AB). Nestes casos, as DMV surgem sempre aos pares € representam-se por: A ~~ BIC. Apenas reforcando, se A BIC, entao a relago deve conter todas as combinagées possiveis dos conjuntos de valores de B e de C, associados ao mesmo valor de A. Formalmente podemos pensar da seguinte forma: dada uma relacdo R com atributos A, B, C, existe uma dependéncia multivalorada do atributo A no atributo B (A > B) se, um valor de A é associado a uma colecao especifica de valores de B, independente de quaisquer valores de C. Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br 24de74 Estratégia Modelo Relacional — Algebra relacional — Normalizacao strates) Prof. Thiago Rodrigues Cavalcanti — Aula 02 Quarta forma normal (4FN) - Comecamos com uma definicao informal: Uma relacao esta na 4FN se para qualquer DMV X —-— Y a relagao nao tem outros atributos além dos que fazem parte de X e de Y. Esse tipo de DMV é conhecido como trivial. Outra definicéo, desta vez, de acordo com o Navathe. "Um esquema de relacdo R esta na 4FN com relacdo a um conjunto de dependéncias funcionais ou multivaloradas F se, para toda dependéncia multivalorada néo trivial X—Y em F+, X for uma superchave de R.” Formalmente, o conjunto de todas as dependéncias de F, bem como todas as dependéncias que podem ser inferidas para F, é chamado de clausura de F, que é denotada por F+. I ou nao trivi A DMV pode ser classificada como a DMV A >> B é dita trivial se: Numa relacdo R, (a) B for subconjunto de A ou (b) AUB=R. Uma DMV que nao satisfaz nem a (a) nem a (b) é dita nao trivial. Em outras palavras, de uma maneira mais intuitiva, pode-se dizer que uma DMV nao trivial ocorre sempre que houver mais do que um atributo multivalorado na mesma relacao. Assim, o que se procura é a chamada DMV nie trivial. Observe que as relagdes que contém DMVs tendem a ser all-key (tudo é chave) - ou seja, sua chave é formada por todos os seus atributos tomados em conjunto. © processo de normalizagéo de uma relagdo envolvendo DMVs nao triviais, que no esté na 4FN, consiste em decompé-la de modo que cada DMV seja representada por uma relagdo separada, onde se torna uma DMV trivial. Veja 0 nosso exemplo para a relacdo (Funcionario, Projeto, Dependente), que seré decomposta em duas relacées (Funcionario, Dependente) e (Funcionario, Projeto). “Fr OL Virsis “Fiai 1 Mara Claca Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br 25 de74 Estratégia Modelo Relacional — Algebra relacional — Normalizacao strates) Prof. Thiago Rodrigues Cavalcanti — Aula 02 Vimos que a propriedade sem perda na jungdo é uma das diversas propriedades para o projeto de banco de dados. De fato, essa propriedade & essencial: sem ela, ha perdas de informacao. Quando restringimos 0 conjunto de relagdes validas entre as que satisfazem um conjunto de dependéncias funcionais e multivaloradas, podemos usar essas dependéncias para mostras que certas decomposigdes séo decomposicées sem perda na juncao. A préxima e ultima forma normal tem relagdo direta com Dependéncia de Jungfo (DJ), por isso, ela também é conhecida como Forma Normal Projegéo Jungao. Quando é possivel restringir um conjunto de relagdes validas sobre um esquema R para aquelas relacdes para as quais uma dada decomposicao é uma decomposicéo sem perdas, podemos definir essa restricéo como uma dependéncia de jungao. Em outras palavras, uma dependéncia de juncao (DJ), denotada por DJ (R1, R2, ... , Rn), em um esquema de relaco R, especifica uma restricao nos estados r de R. Essa restricdo diz que todo estado legal r de R deveria ter uma decomposicao de jung&o nao aditiva para R1, R2, ... , Rn, ou seja, para todo r tenham + *(MR1(r), 1R2(r), ..., ARn(r)) = r (n é uma projecao sobre a relacdo R) Quinta forma normal (5FN) - A aplicaco da SFN consiste em encontrar a DJ * [R1, R2, .. Rn] que permite decompor uma relagdo sem perdas. Advém das dependéncias multivaloradas que ocorrem entre os atributos de uma relacéo. A verificacdo da 53 FN somente precisa ser empreendida em relagées que tenham trés ou mais atributos como parte da chave. A 58 FN trata da situacao em que a informacao permite ser reconstruida a partir de componentes menores que possam ser mantidos com uma redundancia menor. Ela generaliza os casos nao cobertos pela segunda, terceira e quarta formas normais. Definigéio: Um esquema de relaco R esté na quinta forma normal (5 FN) em relacao @ um conjunto F de dependéncias funcionais, multivaloradas e de jungo se, para cada dependéncia de jungao nao trivial DJ (R1, R2, ... , Rn) de F+ (ou seja, implicada por F), todo Ri for uma superchave de R. Abaixo segue o exemplo da relacdo Fornece, que nao pode ser decomposta em duas relagées, pois a junggo entre elas geraria tuplas espurias. Assim, usamos a 5FN para decompor a relacdo em trés (r1, r2, r3), de modo que uma juncéo feita sobre essa relacdo mantém a propriedade de jungéo sem perdas. Prof. Thiago Rodrigues Cavaleanti www.estrategiaconcursos.com.br 26 de74

Você também pode gostar