bancodedados (normalização = 1fn, 2fn, 3fn, 4fn e 5fn)

Upload: afranone

Post on 10-Jul-2015

2.194 views

Category:

Documents


1 download

TRANSCRIPT

1. Bases de Dados1.1. DadosAntes de avanarmos para as bases de dados, vamos comear por analisar os dados que nelas iro ser guardados. Comecemos por observar os conceitos de dados apresentados por alguns autores. Comecemos por analisar a origem da palavra dado. A palavra dado deriva do Latim do verbo dar, ento dado realmente um facto que se deu sobre o qual se podem deduzir factos adicionais (DATE, C.J., 2004, Pgina 15). De seguida podemos analisar o que so dados, Dados qualquer informao que valha a

pena preservar (GARCIA-Molina, HECTOR ; ULLMAN, Jeffrey D.; WIDOM, Jennifer ; TRAD: SOUZA, Vandenberg D. De, 2001, Pagina 2). Ou se preferirem, Dados So factos

conhecidos que podem ser registados e que tm um significado implcito (ELMASRI, Ramez ; NAVATHE, Shamkant B., 1997, Pgina 4). Se pretendermos relacionar os dados com a informao teremos que Dados - So os mais pequenos elementos da informao. (FRIDRICH, Micheline; LANGLOIS, Georges,

2005, Pgina 63), ou se preferirem podemos diferenci-los Dados aquilo que realmente armazenado na base de dados. Informao a mensagem, o significado, que se pode retirar dos dados. (DATE, C.J., 2004, Pgina 6). Mas ser que j nos encontramos preparados para compreender o sentido dos dados em toda a sua amplitude? Parafraseando Codd, Capturar o sentido dos dados uma tarefa sem fim, podemos esperar continuar a ver desenvolvimentos nesta rea, medida que a nossa compreenso for evoluindo (DATE, C.J., 2004, Pgina 410).

1.2. Base de dadosVistos os dados isolados, vamos agora tentar compreender o que ser uma base de dados. Vamos verificar o que afirmam diferentes autores sobre este conceito. Alguns autores mostram uma preocupao relacionada com o acesso e modificao dos dados. Base de dados uma coleco de dados organizados para facilitar o acesso e a modificao, preservada durante um longo perodo (GARCIA-MOLINA, Hector ; ULLMAN, Jeffrey D.; WIDOM, Jennifer ; Trad: SOUZA, Vandenberg D. De, 2001 Pagina 2) ou ainda, Base de

dados um conjunto de dados relacionados entre si, armazenados de uma forma conjunta em estruturas tipo ficheiro, com redundncia controlada, que suportam acessos directos atravs de processos bem definidos ou atravs de programas desenvolvidos para o efeito (COSTA PINTO, Manuel Lus Da, 1996. Pagina 7). Uma base de dados deve ser sempre capaz de manter os dados ao longo do tempo. Base de dados uma coleco de dados persistentes que so usados pelo sistema de aplicaes de uma determinada organizao (DATE, C.J., 2004, Pgina 11). Qualquer base de dados apresenta um conjunto de propriedades. A base de dados tem as seguintes propriedades, representa alguns aspectos do mundo real, uma coleco lgica e coerente de dados com algum sentido intrnseco, desenhada, construda e carregada com dados para um fim especifico. (ELMASRI, Ramez ; NAVATHE, Shamkant B., 1997, Pgina 4). As relaes existentes entre os dados, so suficientemente importantes para serem consideradas em alguns conceitos. Quando os dados organizacionais so inter-relacionados e armazenados juntos para servirem a uma ou mais aplicaes, esta coleco de dados geralmente chamada de base de dados . (WETHERBE, James C., 1987, Pgina 235). No nos resta qualquer duvida que o facto de organizarmos os dados em bases de dados nos ir trazer enormes vantagens. As vantagens de utilizao de uma base de dados so, os dados podem ser partilhados, a redundncia pode ser reduzida, a inconsistncia pode ser evitada, o suporte transaccional pode ser fornecido, a integridade pode ser mantida, a segurana pode ser reforada, os requisitos geradores de conflitos podem ser estabilizados, a estandardizao pode ser reforada. (DATE, C.J., 2004, Pgina 18). Outra ideia fundamental, no conceito de base de dados, a partilha da informao. Um dos pressupostos fundamentais da utilizao das bases de dados que os dados de uma organizao devem estar disponveis, de forma partilhada, a todas as aplicaes ou utilizadores que deles necessitem (PEREIRA, Jos Lus, 1998, Pgina 291). Mas no nos podemos esquecer que o objectivo de uma base de dados no se restringe apenas ao armazenamento de dados e processamento de transaces. Aplicaes de bases de dados podem ser classificadas, a grosso modo, em sistemas de processamento de transaces e sistemas de suporte deciso (SILBERSCHATZ, Abraham; KORTH, Henry F.;

SUDAESHAN, S., 1999, Pgina 702).

1.3. SGBD

Sistemas de Gesto de Base de Dados

Comemos por analisar os dados isoladamente, seguiram-se as bases de dados, vamos agora ver o que ser um sistema de gesto de base de dados. Alguns autores demonstram preocupaes com o armazenamento e actualizao da informao, Um sistema de base de dados basicamente somente um sistema computorizado de manuteno de registros, por outras palavras um sistema computorizado cujo objectivo armazenar informao permitindo aos utilizadores aceder e actualizar essa informao. (DATE, C.J., 2004, Pgina 6). Para outros autores importante acrescentarmos o conceito de sistema de gesto de bases de dados, preocupaes com a segurana dos dados. Um SGBD uma ferramenta poderosa para criar e gerir grandes quantidades de dados de forma eficiente e permitir que esses dados persistam durante longos espaos de tempo com segurana. (GARCIA-MOLINA, Hector ; ULLMAN, Jeffrey D.; WIDOM, Jennifer ; Trad: SOUZA, Vandenberg D. De, 2001, Pagina 1). Para outros autores a preocupao maior prende-se com o desenho da base de dados e a definio de procedimentos. Sistemas de Gesto de Bases de dados, so programas que permitem a gesto do enorme volume de dados que pode existir numa organizao e ser passvel de tratamento, com o objectivo de gerar informao importante para o funcionamento da prpria organizao. Essa gesto uma gesto que envolve o desenho e definio global de toda a base de dados , como a criao de procedimentos para a sua manipulao, sem esquecer os importantssimos procedimentos de segurana, quer de acesso quer da existncia de cpias dos dados para prevenir danos organizao, resultantes da perda acidental dos mesmos (COSTA PINTO, Manuel Lus Da, 1996, Pagina 7). Outros autores consideram que um SGBD um software. O Software responsvel pela implementao de uma base de dados designado por Sistema de Gesto de Base de Dados (CARRIO, Jos Antnio ; CARRIO, Antnio Joo, 1997, Pgina 62 ). O Sistema de Gesto de Base de Dados o software que trata todos os acessos base de dados (DATE, C.J., 2004, Pgina 44). Temos ainda alguns autores que misturam algumas das ideias anteriores. Um Sistema de Gesto de Base de Dados uma coleco de programas que permitem aos utilizadores criar e manter a base de dados. O SGBD um software que facilita os processos de definio,

construo e manipulao da base de dados (ELMASRI, Ramez ; NAVATHE, Shamkant B., 1997, Pgina 5).

Fig. Sistema de Gesto de Base de Dados Fonte: ELMASRI, Ramez ; NAVATHE, Shamkant B., 1997, Pgina 6

Alguns autores, referem o nvel aplicacional, O Sistema de Gesto de Base de Dados um conjunto de software, destinado a gerir todo o armazenamento e manipulao dos dados do sistema, fazendo a interface entre o nvel aplicacional e a base de dados propriamente dita (PEREIRA, Jos Lus, 1998, Pgina 33).

Fig. Sistema de Gesto de Base de dados Fonte: (PEREIRA, Jos Lus, 1998, Pgina 25)

1.3.1. Funes de um SGBDAnalisemos de seguida quais so as funes que um SGBD ter que executar. Um SGBD tem que ser capaz de aceitar definies de dados, manipular os dados, optimizar e executar as tarefas requeridas, garantir a segurana e integridade dos dados, gerir a concorrncia e recuperao dos dados, providenciar um dicionrio de dados que contm dados sobre os dados, manter a performance do sistema (DATE, C.J., 2004, Pgina 45 a 47)

1.3.2. Componentes de um SGBDPara conseguir executar as funes anteriormente descritas, o SGBD conta com quatro componentes. Um sistema de gesto de base de dados envolve quatro componentes

principais, os dados, o hardware, o software e os utilizadores. Os dados podem ser integrados ou partilhados. O hardware composto por discos magnticos utilizados para armazenar dados, memria, controladores e outros componentes. O software do SGBD o mais importante , mas no o nico. Podem se encontrar outras ferramentas de desenvolvimento como, ferramentas para desenho da base de dados, para construo de relatrios ou de gesto

de transaces. Em relao aos utilizadores, h trs tipos de utilizadores. Os programadores so responsveis pela construo da base de dados. Os utilizadores finais, alm de manterem a informao da base de dados actualizada, podem tambm construir consultas para extrair informao. Os Administradores da base de dados, devem pr a funcionar um controle tcnico que refora as decises politicas da administrao dos dados. Tm obrigao de manter todo o sistema a funcionar (DATE, C.J., 2004, Pgina 6 a 11).

1.3.3. Utilizadores de um SGBDConsidermos importante este pequeno apontamento sobre os utilizadores de um SGBD, para chamar a ateno para a subdiviso existente dentro dos utilizadores finais. Existem utilizadores finais menos sofisticados e outros mais sofisticados. Os menos sofisticados estariam no nvel transacional, os mais sofisticados j se posicionariam no nvel decisional. analisemos ento os diferentes tipos de utilizadores. Utilizadores de sistemas de bases de dados: - Administrador da base de dados - o responsvel mximo pelo bom funcionamento de todo o sistema. Tem como principais responsabilidades a especificao do esquema conceptual da base de dados e a sua manuteno. Sendo responsvel pelo funcionamento do sistema, define procedimentos de backup e recuperao, monitoriza a sua utilizao e afina o seu desempenho. Controla a segurana, dando e retirando acessos aos utilizadores. - Utilizadores - Utilizadores finais - Acedem ao sistema para consultar, alterar, adicionar ou remover dados, no podero nunca alterar a estrutura da base de dados. Dentro deste grupo surgem os menos sofisticados, que se limitam a correr aplicaes sobre o sistema, e os que, casualmente, nos casos em que o prprio SGBD dispe dessa facilidade, utilizam linguagens de interrogao para obter, interactivamente, respostas especificas do sistema. - Programadores - Utilizando linguagens de alto nvel e tendo por base vistas sobre o esquema conceptual da base de dados, desenvolvem as aplicaes que os utilizadores finais iro depois utilizar (PEREIRA, Jos Lus, 1998, Pgina 92)

Fig. Utilizadores do Sistema de Gesto de Base de Dados Fonte: SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDAESHAN, S., 1999, Pgina 18

1.3.4. Objectivos de um SGBDAnalisemos de seguida quais so os objectivos de um SGBD. Os Objectivos de um SGBD so os seguintes: - Criar e manter a estrutura fsica dos dados em computador, ao nvel do software, escondendo dos utilizadores as complexidades de gesto interna dos dados, possibilitandolhes uma viso lgica da informao compatvel com o modelo conceptual. - Disponibilizar um interface que permita aos utilizadores e s aplicaes aceder ao contedo da base de dados, para operaes de consulta e de actualizao. Num SGBD podem identificar-se e distinguir-se os seguintes elementos: - A base de dados propriamente dita, constituda por um conjunto de tabelas fisicamente registadas na base de dados, bem como pelas tabelas virtuais que resultam de operaes efectuadas sobre essas tabelas. - O motor da base de dados, constituda por um conjunto de programas responsveis pela execuo de todas as operaes de criao, consulta e actualizao da informao. - O interface que disponibiliza o acesso dos utilizadores definio da estrutura das bases de dados, bem como consulta e actualizao dos dados nela contidos. A criao de um sistema de bases de dados, permite definir e implementar um conjunto de objectivos. Dentre os mais importantes, podem salientar-se os seguintes: - A independncia entre as aplicaes e os dados Num sistema de bases de dados, o software do SGBD proporciona um interface que permite um certo grau de isolamento entre as aplicaes e as estruturas atravs dos quais os dados so fisicamente armazenados. As aplicaes no actuam directamente sobre os dados. Os acessos so sempre realizados atravs do SGBD. - Reduo da redundncia e da inconsistncia Temos uma redundncia quando a informao referente a um mesmo facto armazenada em dois pontos distintos de uma mesma base de dados. A inconsistncia verifica-se quando temos, na mesma base de dados, informao diferente sobre o mesmo facto. - O estabelecimento de regras de integridade Visam garantir, se no a correco, pelo menos a plausibilidade dos dados. - O estabelecimento de mecanismos de segurana Cada utilizador ou grupo de utilizadores detentor de um conjunto de direitos ou privilgios, que lhe garantem determinadas formas de acesso aos objectos do sistema. (CARRIO, Jos Antnio ; CARRIO, Antnio Joo, 1997, Pgina 62 a 67)

1.3.5. Recursos de um SGBDPara os utilizadores conseguirem atingir os seus objectivos, naturalmente necessitam de ter sua disposio alguns recursos. Os recursos que um SGBD oferece ao utilizador so: Armazenamento Persistente Do mesmo modo que um sistema de arquivos, um SGBD

admite o armazenamento de quantidades muito grandes de dados que existem independentemente de quaisquer processos que estejam a utilizar esses dados. Porm o SGBD vai muito alm do sistema de arquivos ao proporcionar flexibilidade, como estruturas de dados que permitem o acesso eficiente a quantidades muito grandes de dados. Interface de Programao Um SGBD permite ao utilizador aceder e modificar dados

atravs de uma linguagem de consulta poderosa. A vantagem de um SGBD sobre um sistema de arquivos a flexibilidade para manipular dados armazenados de formas muito mais complexas que a leitura e gravao de arquivos. Gesto de transaces Um SGBD admite o acesso concorrente a dados, isto o acesso

simultneo por muitos processos distintos, chamados transaces, ao mesmo tempo. Para evitar algumas das consequncias indesejveis do acesso simultneo, o SGBD admite o isolamento, a aparncia de que as transaces so executadas uma de cada vez, e a atomicidade, o registo de que as transaces sejam executadas completamente ou no sejam executadas de forma alguma. Um SGBD tambm admite a resilincia, a capacidade de se recuperar de muitos tipos de falhas ou erros. (GARCIA-MOLINA, Hector ; ULLMAN, Jeffrey D.; WIDOM, Jennifer ; Trad: SOUZA, Vandenberg D. de, 2001 Pagina 1)

1.3.6. Propriedades das transaces de um SGBDPara que um SGBD atinja os seus objectivos, e os seus utilizadores se encontrem satisfeitos, as transaces tero que possuir algumas propriedades. As transaces devem ter as seguintes propriedades: - Atomicidade A transaco deve ser executada numa base de tudo ou nada, ou seja ou

realizada na sua totalidade ou no realizada de todo. - Isolamento Cada transaco deve aparentar ser executada como se nenhuma outra

transaco estivesse em execuo ao mesmo tempo.

- Durabilidade

O efeito de uma transaco sobre o banco de dados nunca deve ser perdido,

depois que a transaco tiver sido concluda. - Consistncia Todas as bases de dados tm restries de consistncia ou expectativas sobre

relacionamentos entre elementos de dados. Espera-se que as transaces preservem a consistncia da base de dados (GARCIA-MOLINA, Hector ; ULLMAN, Jeffrey D.;

WIDOM, Jennifer ; Trad: SOUZA, Vandenberg D. de, 2001, Pag. 10).

1.3.7. Vantagens da utilizao de um SGBDComo seria de esperar, a utilizao de um SGBD traz-nos enormes vantagens. As vantagens da utilizao de um SGBD so: - Controle da redundncia. - Restrio a acessos no autorizados. - Permitir um armazenamento persistente para os objectos dos programas e estruturas de dados. - Permitir a inferncia em aces seguindo regras. - Permitir mltiplos interfaces para os utilizadores. - Permite representar relacionamentos complexos entre os dados. - Permite reforar as restries de integridade. - Permite a recuperao de dados. (ELMASRI, Ramez ; NAVATHE, Shamkant B., 1997, Pgina 14)

1.4. Nveis de Abstraco de DadosExiste uma relao obvia entre os diferentes tipos de utilizadores de um SGBD, e os diversos nveis de abstraco de dados. Podemos considerar trs nveis de abstraco de dados - Fsico - o nvel mais baixo da descrio dos dados e corresponde forma ltima de como se encontram organizados em memria, ao nvel dos bits e bytes. - Conceptual - a este nvel que se definem e descrevem exactamente os dados e as estruturas que a base de dados vai conter e as relaes entre eles. Depois de estabelecer os dados que descrevem cada entidade fundamental, necessrio descrever as relaes entre

elas. Os processos de estabelecimento de relaes entre os dados dependem da organizao da base de dados e do prprio sistema de gesto de base de dados. - De vista - o nvel mais alto de abstraco. Proporciona, como o prprio nome indica, uma viso, ou uma vista da base de dados sob uma determinada perspectiva, aquela que mais interessa a um utilizador especifico. (COSTA PINTO, Manuel Lus Da, 1996, Pgina 11) Outros autores preferem falar em nveis de arquitectura, mas igualmente os relacionam com os diferentes tipos de utilizadores. H trs nveis de arquitectura: - Nvel Interno o nvel mais baixo de representao de toda a base de dados, coniste em

muitas ocorrncias de muitos tipos de registros internos. - Nvel Conceptual base de dados. - Nvel externo o nvel do utilizador individual. Este utilizador pode ser um programador A vista conceptual uma representao de toda a informao contida na

ou um utilizador final de qualquer grau de sofisticao. Cada utilizador ter uma linguagem diferente sua disposio (DATE, C.J., 2004). Na figura denominada nveis de independncia de dados, esto representados os 3 nveis da arquitectura ANSI/SPARC.

Fig. Nveis de independncia dos dados Fonte: PEREIRA, Jos Lus, 1998, Pgina 34 Temos outros autores que preferem falar em nveis de independncia de dados. H trs nveis de independncia dos dados:

- O nvel interno

Descreve a estrutura fsica da base de dados. Esconde os detalhes do armazenamento fsico e concentra-se na

- O nvel conceptual

descrio de entidades, tipos de dados, relacionamentos, operaes e restries dos utilizadores. - O nvel externo ou de vista Descreve a parte da base de dados adstrita a um determinado

grupo de utilizadores e esconde o resto da base de dados desse grupo (ELMASRI, Ramez ; NAVATHE, Shamkant B., 1997, Pgina 27)

Fig. Nveis da arquitectura dos dados Fonte: ELMASRI, Ramez ; NAVATHE, Shamkant B., 1997, Pgina 27

1.5. Modelo Relacional

1.5.1. Componentes do modelo relacionalO Modelo relacional sem margem para dvidas, o fundador das tecnologias modernas das bases de dados. a partir deste modelo que este campo de conhecimento se transformou numa cincia. O modelo relacional preocupa-se com trs aspectos dos dados, a estrutura dos dados, a manipulao dos dados, a integridade dos dados. importante compreender que este modelo no um modelo esttico, tem evoludo ao longo dos anos e continua a desenvolver-se (DATE, C.J., 2004, Pgina 109). O modelo relacional considerado de uma enorme importncia, isto deve-se ao facto dele assentar noutras teorias j enraizadas. Existem vrios modelos conceptuais de bases de dados, mas o modelo actualmente dominante o modelo relacional, baseado na teoria dos conjuntos. Numa sntese rpida, o modelo relacional pode ser descrito do seguinte modo: - a informao organizada em tabelas (tambm designadas por relaes, na terminologia original do modelo). - Cada tabela estruturada por forma a conter os dados referentes a entidades e relacionamentos que, na situao real, produzem a informao que a base de dados deve registar, actualizar e manter. - A estrutura da base de dados vista pelo utilizador apenas como um conjunto de tabelas relacionadas, independentemente das tcnicas de organizao interna da informao, ao nvel do suporte fsico. -As operaes de consulta e actualizao da base de dados so logicamente equivalentes a operaes envolvendo tabelas, em ltima anlise, operaes envolvendo conjuntos . (CARRIO, Jos Antnio ; CARRIO, Antnio Joo, 1997, Pagina 62) No modelo relacional como noutros campos da cincia importante definir a utilizao da terminologia. Na terminologia formal do modelo relacional, uma linha chamada de tupla, uma coluna um atributo, e uma tabela uma relao. Os valores que podem aparecer em cada coluna so chamados de dominio. O dominio um conjunto de valores atmicos. Valores atmicos porque cada valor do dominio indivisivel. Para cada dominio deve ser definido um formato e, ou um tipo de dados. O esquema da relao constituido pelo nome da relao e uma lista de atributos. R(A1,A2,A3, ,An)

Cada atributo pode tomar os valores de um determinado dominio. Dom (Ai). O grau de uma relao, o numero de atributos da relao. A relao definida como uma srie de tuplas sem qualquer ordem. Uma relao representa factos a um nivel lgico ou abstracto. Uma tupla pode ser considerada como uma srie de valores de diferentes atributos, relativos ao

mesmo facto. Os valores de uma tupla tero que ser atmicos, ou seja no so aceites valores compostos, ou com diversos valores, num atributo. Por definio todos os elementos de uma srie so distintos, portanto todas as tuplas de uma relao devem ser distintas. Isto significa que no podem existir duas tuplas com a mesma combinao de valores em todos os seus atributos. Algumas relaes podem representar factos relativos a entidades, outras relaes podem representar factos relativos a relacionamentos (ELMASRI, Ramez ; NAVATHE, Shamkant B., 1997, Pgina 196 a 201) No modelo relacional a relao assume um papel central e fundamental. Uma relao deve conter certas propriedades. cada linha contm um valor para cada coluna, no existe uma ordenao das colunas da esquerda para a direita, no h uma ordenao das linhas de cima para baixo, no h linhas duplicadas (DATE, C.J., 2004, Pgina 148). H medida que o modelo relacional se for transformando numa base de dados, vamos verificar que normalmente as tabelas da base de dados surgem a partir das relaes do modelo relacional. H uma estreita correspondncia entre o conceito de tabela e o conceito matemtico de relao (SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDAESHAN, S., 1999, Pgina 61).

(DATE, C.J., 2004, Pgina 64) O modelo relacional contm cinco componentes: - Uma coleco aberta de tipos de escalas incluindo as escalas da lgebra de Boole1 - Um gerador de relaes (listas) com capacidade para as interpretar - Capacidade para definir relaes de variveis. - Uma operao relacional capaz de atribuir valores s relaes de variveis. - Uma coleco aberta de operadores relacionais2

(DATE, C.J., 2004, Pgina 111 e 112) O conceito de tipo fundamental, cada valor, cada varivel, cada parmetro, cada operador e cada atributo relacional so de um determinado tipo. Um tipo representa um conjunto de valores que podem ser tomados. Qualquer tipo est associado a determinados operadores. O operador soma est associado ao tipo nmero, mas nunca ao tipo letra.

1 2

lgebra de Boole Escalas tipicamente baseada em valores verdadeiros e falsos Operadores relacionais de lgebra relacional

1.5.2. Regras de Codd(COSTA PINTO, Manuel Lus da, 1996, Pagina 20 e 21) Em 1985, Ted Codd definiu e publicou as regras s quais uma base de dados deveria obedecer para ser considerada uma base de dados relacional. Estas foram o resultado de um trabalho de Codd sobre o modelo relacional e representam mais uma definio ideal do que uma definio real do que deve ser efectivamente uma base de dados relacional. Estas regras dividem-se em trs grandes grupos: - Estruturais modelo de como esto armazenados os dados. forma como os dados constituintes da base de dados so independentes

- De independncia

das alteraes efectuadas base de dados. - De linguagem capacidades da linguagem que permitem ao utilizador final manipular os

dados da base de dados.

Regra da informao

Toda a informao de uma base de dados est representada

explicitamente ao nvel lgico, mediante tabelas organizadas em linhas e colunas. Regra do acesso garantido Garante-se que todos e cada um dos dados, numa base de dados

relacional, sejam acessveis, recorrendo a uma combinao do nome da tabela. Do valor da chave primria e do nome da coluna. Tratamento sistemtico de valores nulos Os valores nulos so suportados pelos SGBDS

completamente relacionais para representar a falta de informao, a informao inaplicvel de um modo sistemtico e independente do tipo de dados. Catlogo permanente dinmico baseado no modelo relacional A prpria base de dados

representada ao nvel lgico por tabelas que descrevem a sua estrutura, da mesma forma que as tabelas criadas na base de dados contm dados de entidades e acontecimentos que os descrevem. Desta forma os utilizadores autorizados podem operar com os dados da estruturao da base de dados, da mesma forma que o fazem com os outros dados criados na prpria base de dados. Regra da sublinguagem completa e compreensvel dos dados Um sistema relacional pode

suportar vrias linguagens e vrios modos de utilizao. Tem que, pelo menos, existir uma linguagem com instrues que se podem expressar de uma forma bem definida e que suporte a programao dos seguintes itens: definio de dados, definio de vistas, manipulao de dados, restries de integridade, autorizao, medidas de segurana em casa de falha de sistema.

Regra da actualizao de vistas

O SGBD deve possuir forma de determinar, no momento de

definio de uma vista, quando que esta pode ser utilizada para inserir linhas, eliminar linhas, ou actualizar colunas das tabelas e guardar os resultados. Insero, actualizao e supresso de alto nvel A capacidade de manejar uma base de

dados relacional, ou uma relao derivada, no se aplica apenas recuperao de dados, mas tambm insero, actualizao e supresso de dados. Independncia fsica dos dados Os programas de aplicao e as operaes interactivas

permanecem logicamente inalteradas quaisquer que sejam as trocas efectuadas nas representaes de armazenamento e mtodos de acesso. Representao lgica dos dados Os programas de aplicao e as operaes interactivas

permanecem logicamente inalteradas quaisquer que sejam as trocas efectuadas nas representaes de armazenamento e mtodos de acesso. Representao lgica dos dados Os programas de aplicao e as operaes interactivas

permanecem logicamente inalteradas pelas eventuais alteraes na organizao dos dados que no envolvam perda de informao. Independncia dos dados As restries de integridade especificas para uma base de dados

particular devem ser definidas na sublinguagem de dados relacional. Independncia de distribuio Os programas de aplicao e as operaes interactivas no

precisam de ser modificados, quer um sistema suporte ou no distribuio de base de dados entre vrios computadores. Regra da no subverso Se um sistema de gesto de base de dados relacional tem uma

linguagem de baixo nvel procedimental, essa linguagem no deve subverter, ou no cumprir, as caractersticas de integridade e segurana expressas na linguagem relacional de alto nvel.

1.5.3. Notao do modelo relacionalEm qualquer modelo sempre necessrio definir a notao a utilizar. R Relao R(A1,A2, A t v Ai vi Atributo Tupla valores de uma determinada tupla Atributo i da relao R(A1,A2, valor i da tupla t= ,An) An)

t[Ai] valor vi em t para o atributo Ai

t[Au,Aw,

,Az] onde Au,Aw,

,Az so uma lista de alguns atributos da relao R, refere-se ,vz> da tupla t, correspondentes aos atributos

a uma subtupla de valores >Y ( X multidetermina Y ) se, para cada par de tuplos de R contendo os mesmos valores de X, tambm existe em R um par de tuplos correspondentes troca dos valores de Y no par original. - Dependncias de juno - Numa relao existe uma dependncia de juno se, dadas algumas projeces sobre essa relao, apenas se reconstri a relao inicial atravs de algumas junes bem especificas, mas no de todas. Z

Formas Normais(DATE, C.J., 2004, Pg. 351 a 364) Uma relao de variveis s pode estar na segunda forma normal se j satisfez todas as condies da primeira forma normal. - Primeira forma Normal - Uma relao de variveis est na primeira forma normal se cada tupla contiver um valor para cada atributo. - Segunda forma normal - Uma relao de variveis encontra-se na segunda forma normal se estiver na primeira forma normal e todos os atributos que no so chave primria, dependem irredutivelmente da chave primria.

- Terceira forma normal

Uma relao encontra-se na terceira forma normal se j estiver na

segunda forma normal e todos os seus atributos que no forem chave primria forem no transitivamente dependentes da chave primria.

(PEREIRA, Jos Lus, 1998, Pgina 185 a 188) - 1 Forma Normal (1FN) - Este primeiro passo do processo de normalizao visa eliminar os grupos de valores repetidos que, eventualmente possam existir em estruturas no normalizadas. Em mltiplas situaes surgem casos em que para os mesmos valores de vrios atributos existem diferentes valores de outros atributos. A 1FN resolve este problema decompondo a estrutura inicial em tantas relaes quantos os grupos de atributos que se repetem e identificando as chaves de cada uma dessas relaes, eliminando-se a redundncia existente na verso no normalizada. - 2 Forma Normal (2FN) - Uma relao na 2FN uma relao em que, alm de estar na 1FN, todos os atributos no pertencentes a qualquer chave candidata (atributos no primos) devem depender da totalidade da chave e no apenas de parte dela. Se os atributos presentes na relao esto envolvidos em duas ou mais dependncias funcionais a relao ainda no se encontra na 2FN. A soluo passa por decompor a relao, de acordo com as dependncias funcionais, em vrias relaes. - 3 Forma Normal (3FN) - Uma relao na 3FN uma relao em que, alm de estar na 2FN, no existem dependncias funcionais entre os atributos no chave. Ou seja cada atributo deve depender apenas da chave primria da relao. A soluo decompor a relao em duas relaes de acordo com as dependncias funcionais existentes. - Boyce-Codd Normal Form (BCFN) - Por definio uma relao est na BCNF se todos os atributos so funcionalmente dependentes da chave, de toda a chave e nada mais do que a chave. - 4 Forma Normal - Diz-se que uma relao est na 4FN se est na BCFN e no existem dependncias multivalor. Se numa relao ainda existem dependncias multivalor, esta relao deve ser decomposta. - 5 Forma Normal - Uma relao estar na 5FN se no puder ser mais decomposta sem perda de informao. Se puder ser reconstruda sem perda de informao a partir de algumas das suas projeces, ento existe uma dependncia de juno e, portanto, a relao no se encontra na 5FN, devendo ser decomposta segundo essa dependncia.

(CARRIO, Jos Antnio; CARRIO, Antnio Joo, 2004, Pgina 50)

1FN - Uma tabela encontra-se na primeira forma normal se todos os seus atributos ou colunas estiverem definidos em domnios que contenham apenas valores atmicos. Isto significa que um atributo s pode admitir valores elementares e no conjuntos de valores. 2FN - A condio para que a tabela se encontre na 2FN a de que todos os atributos que no pertenam chave dependam da chave atravs de uma dependncia funcional elementar. H uma dependncia funcional elementar quando um determinado atributo depende dum conjunto de atributos como um todo, e no depende de nenhum dos seus elementos (ou subconjuntos) tomados isoladamente. 3FN - A condio para que uma tabela se encontre na terceira forma normal que nenhum dos atributos que no fazem parte da chave pode ser funcionalmente dependente de qualquer combinao dos restantes. Cada atributo depende apenas da chave e no depende de qualquer outro atributo ou conjunto de atributos. Esta condio visa eliminar as chamadas dependncias transitivas. Para que uma tabela esteja na 3FN necessrio que todos os atributos que no pertenam chave sejam mutuamente independentes. Na prtica, os atributos so mutuamente independentes se puderem ser actualizados independentemente uns dos outros.

Fig. Formas Normais

Fonte: CARRIO, Jos Antnio; CARRIO, Antnio Joo, 2004, Pgina 50 Na figura denominada formas normais, podemos observar graficamente as diversas fases de normalizao descritas no texto. (MACHADO, Felipe Nery Rodrigues, 2004, Pgina 204 a 206) Roteiro de Aplicao da Normalizao - Aplicao da 1FN - Decompor a entidade em uma ou mais entidades, sem grupos repetitivos. - Destacar um ou mais atributos como chave primria das novas entidades, e este ser concatenado com a chave primria da entidade original. - Estabelecer o relacionamento e a cardinalidade entre as novas entidades geradas e a entidade geradora. - Verificar a questo da variao temporal de certos atributos e criar relacionamentos 1:N entre a entidade original e a entidade criada por questes de histrico. - Aplicao da 2FN - Para entidades que contenham chaves primrias concatenadas, destacar os atributos que tenham dependncia parcial em relao chave primria concatenada. - Criar uma nova entidade que conter esses atributos, e que ter como chave primria os atributos dos quais se tenha dependncia parcial. - Sero criadas tantas entidades quanto forem os atributos da chave primria concatenada, que gerem dependncia parcial. - Estabelecer o relacionamento e a cardinalidade entre as novas entidades geradas e a entidade geradora. - Aplicao da 3FN - Verificar se existem atributos que sejam dependentes transitivos de outros que no pertencem chave primria, sendo ela concatenada ou no, bem como atributos que sejam dependentes de clculo realizado a partir de outros atributos. - Destacar os atributos com dependncia transitiva, gerando uma nova entidade com esse atributo e cuja chave primria o atributo que originou a dependncia. - Eliminar os atributos obtidos atravs de clculos realizados a partir de outros atributos. - Aplicao FNBC - S aplicvel em entidades que possuam chaves primrias concatenadas.

- Verificar se alguma chave candidata concatenada um determinante, e em caso afirmativo, criar uma entidade com os que dependam funcionalmente desse determinante e cuja chave primria o prprio determinante. - Aplicao da 4FN - Verificar se a entidade possui atributos que no sejam participantes da chave primria e que sejam multivalorados e independentes em relao a um mesmo valor da chave primria. - Retirar esses atributos no chaves e multivalorados, criando novas entidades para cada um deles, herdando a chave primria da entidade desmembrada. - Aplicao da 5FN - A ocorrncia deste tipo de forma normal est vinculada aos relacionamentos mltiplos ou entidades que possuam chave primria concatenada com trs ou mais atributos. - Verificar se possvel reconstruir o conteuddo do elemento original a partir de elementos decompostos desta. - Se no for possvel, o elemento observado no est na 5FN, caso contrrio, os elementos decompostos representam um elemento da 5FN.

1.8. Componentes das Bases de DadosSe a base de dados fosse um edifcio, as tabelas seriam os pilares, os relacionamentos entre as tabelas seriam as vigas, as consultas seriam as lajes e as paredes, os formulrios seriam as portas de entrada, os relatrios seriam as portas de sada, e as pessoas que l habitam seriam os dados. Embora existam outros componentes numa base de dados, vamos aqui incidir a nossa anlise apenas sobre as tabelas e as consultas. So as tabelas, os relacionamentos entre elas e as consultas que melhor reflectem os modelo de dados.

1.8.1. TabelasComecemos por analisar o que dizem alguns autores sobre a tabela. Uma tabela representa o conjunto dos elementos de uma entidade abstracta do mundo real. As entidades do mundo real representam coisas, seres, acontecimentos geradores de informao. Essa informao

resulta da observao e registo dos seus atributos (CARRIO, Jos Antnio; CARRIO, Antnio Joo, 1997, Pgina 68) A Tabela uma organizao de dados em uma tabela bidimensional, na qual as linhas (tuplas) representam entidades bsicas ou factos de algum tipo, e colunas (atributos) representam propriedades dessas entidades (GARCIA-MOLINA, Hector ; ULLMAN,

Jeffrey D.; WIDOM, Jennifer; Trad: SOUZA, Vandenberg D. de, 2001, Pagina 2). Combinando informao da pgina 15 com informao da pgina 95 podemos afirmar que uma tabela constituda por linhas e colunas. Uma linha pode tambm ser chamada de registro ou tupla. Uma coluna pode igualmente ser designada de campo ou atributo. (GARCIA-MOLINA, Hector ; ULLMAN, Jeffrey D.; WIDOM, Jennifer ; Trad: SOUZA, Vandenberg D. DE, 2001, Pgina 15 e 95) A tabela composta por campos e registros. Campo a unidade mais pequena de dados armazenados. A base de dados ir conter muitas ocorrncias de cada um, dos vrios tipos de campos armazenados. Registro uma coleco de campos relacionados armazenados (DATE, C.J., 2004, Pgina 22). A denominada relao, normalmente dar origem a uma tabela. h autores que vo mais longe e afirmam que Relation is just a mathematical term for a table (DATE, C.J., 2004, Pgina 64). No entanto reconhecem que h diferenas entre tabelas e relaes. A tabela pode conter valores duplicados mas uma relao no. As tabelas devem ter pelo menos uma coluna, uma relao pode no ter nenhum atributo. As tabelas podem incluir valores nulos, as relaes no. As tabelas tm duas dimenses, as relaes podem ter n dimenses (DATE, C.J., 2004, Pgina 151).

1.8.1.1. Superchave

O relacionamento entre as tabelas s possvel devido existncia de chaves. Comecemos por analisar a superchave. Uma superchave um identificador nico de uma tupla, baseado em vrios atributos. Se t1 e t2 forem duas quaisquer tuplas de uma relao R, se S e K forem dois atributos da mesma relao R. Ento a dupla de atribudos [SK] forma uma superchave, se qualquer tupla t1 for diferente de qualquer tupla t2 na dupla de atributos S e K. t1[SK] t2[SK]

Todas as relaes tm pelo menos uma superchave, baseada no conjunto de todos os seus atributos. Uma superchave pode ter atributos redundantes (ELMASRI, Ramez ; NAVATHE, Shamkant B., 1997, Pgina 203). A Superchave surge da associao de um ou mais atributos cujos valores, em conjunto, identificam univocamente cada tuplo. Como evidente, no limite, a associao de todos os atributos de uma relao constitui uma superchave (PEREIRA, Jos Lus, 1998, Pgina 166).

1.8.1.2. Chave

Passemos agora ao conceito de chave. Chave uma superchave, qual no podemos retirar nenhum atributo, sob pena de deixar de ser uma superchave NAVATHE, Shamkant B., 1997, Pgina 203) (ELMASRI, Ramez ;

1.8.1.3. Chave candidata

Por vezes as tabelas apresentam mais do que uma chave, se uma relao tiver mais que uma chave, cada uma das diferentes chaves, chama-se chave candidata (ELMASRI, Ramez ; NAVATHE, Shamkant B., 1997, Pgina 203) Uma chave candidata o subconjunto dos atributos de uma superchave que, sendo ainda superchave, no pode ser reduzido sem perder essa qualidade (PEREIRA, Jos Lus, 1998, Pgina 166). Uma chave candidata a chave primria ter que possuir as seguintes propriedades: - Ser unvoca - O atributo candidato no pode conter duas tuplas com o mesmo valor. - Ser Irredutvel Se for subdividida deixa de ser unvoca, portanto no pode ser reduzida

(DATE, C.J., 2004, Pgina 269).

1.8.1.4. Chaves Primrias

De entre as diversas chaves candidatas, necessrio escolher uma para chave primria. Chave primria a chave candidata escolhida, cujos valores vo ser utilizados para identificar as tuplas da relao. Quando existem vrias chaves candidatas o processo de escolha da chave primria torna-se arbitrrio. No entanto costuma-se escolher para chave

primria a chave candidata que tiver menor numero de atributos e que no tenha valores nulos (ELMASRI, Ramez ; NAVATHE, Shamkant B., 1997, Pgina 203 e 204). Escolher das chaves candidatas uma para chave primria pode ser uma boa ideia em muitos casos, possivelmente na maioria dos casos, mas no pode ser justificado em todos os casos (DATE, C.J., 2004, Pgina 272)

Uma chave primria um conjunto de um ou mais atributos que permitem identificar unicamente uma entidade de entre um conjunto de entidades (COSTA PINTO, Manuel Lus da, 1996, Pagina 13). Cada elemento de uma entidade representa um objecto com uma identidade prpria, um objecto identificvel. O conjunto dos atributos definidos para uma entidade deve incluir pelo menos um atribulo que identifique, de forma exclusiva, cada elemento dessa entidade, no contexto da base de dados. Um atributo identificador um atributo que no admite valores repetidos. No podem existir duas linhas numa tabela que tenham o mesmo valor no atributo identificador. Numa tabela podem existir vrios atributos identificadores. Qualquer atributo que seja identificador designado por chave candidata. Dentre as chaves candidatas, o analista deve escolher uma que funcione como atributo identificador dessa tabela na relao com as outras tabelas da base de dados. A chave escolhida para funcionar como atributo identificador da tabela designado por chave primria. Uma chave primria pode ser constituda por um s atributo ou por mais do que um atributo (CARRIO, Jos Antnio ; CARRIO, Antnio Joo, 1997, Pgina 68,69). ndices unidimensionais pressupem uma chave de pesquisa nica. A chave de pesquisa um campo nico. Nas aplicaes geogrficas, os dados so elementos dum mundo bidimensional, ou s vezes tridimensional. (GARCIA-MOLINA, Hector ; ULLMAN, Jeffrey D.; WIDOM, Jennifer ; Trad: SOUZA, Vandenberg D. de, 2001, Pgina 201 e 202)

1.8.1.5. Chaves Estrangeiras ou Externas

As chaves estrangeiras tm um papel fundamental nos relacionamentos entre as tabelas. Numa tabela designam-se por chaves externas os atributos que so chaves primrias de outras tabelas. Uma chave externa constitui o elemento que relaciona a linha da tabela onde est inserida com a linha de outra tabela (CARRIO, Jos Antnio ; CARRIO, Antnio Joo, 1997, Pgina 70)

Uma chave estrangeira um conjunto de atributos de uma relao cujos valores coincidem com os valores da chave candidata de outra relao. A chave estrangeira pode ser simples ou composta dependendo da chave candidata (DATE, C.J., 2004, Pgina 272). Chave estrangeira ou chave importada - trata-se de um conjunto constitudo por um ou mais atributos que chave primria numa outra relao. A existncia de uma chave estrangeira numa relao prende-se com a necessidade de manter a interligao entre essa relao e a relao onde esse conjunto de atributos chave principal (PEREIRA, Jos Lus, 1998, Pgina 167) Se preferirmos, numa linguagem mais matemtica temos a seguinte igualdade: t1[FK] = t2[PK] t1 t2 tupla da relao 1 tupla da relao 2

FK chave estrangeira PK chave primria t1[FK] tupla da chave estrangeira da relao 1 t2[PK] tupla da chave primria da relao 2 Uma chave estrangeira tambm se pode referir sua prpria relao (ELMASRI, Ramez ; NAVATHE, Shamkant B., 1997, Pgina 207). No nos podemos esquecer que uma tabela pode conter mais do que uma chave estrangeira. A uma coluna de uma tabela, cujo valor coincide com a chave primria de outra tabela, designa-se por chave estrangeira. Uma tabela pode conter mais de uma chave estrangeira, pois pode estar relacionada com mais de uma tabela adicional (COSTA PINTO, Manuel Lus da, 1996, Pagina 20). Na figura denominada chave estrangeira podemos observar que a tabela produtos encomendados contem duas chaves estrangeiras ligadas a duas chaves primrias de outras duas tabelas. O campo numero de encomenda encontra-se ligado ao seu homlogo na tabela encomenda. O campo cdigo de produto encontra-se ligado ao seu homlogo na tabela do produto.

Fig. Chave estrangeira Fonte: COSTA PINTO, Manuel Lus da, 1996, Pagina 20 1.8.1.6. Relacionamentos

O funcionamento das bases de dados baseadas no modelo ER, s possvel devido existncia de relacionamentos entre as tabelas. Um relacionamento definido como uma associao entre vrias entidades. O mapeamento da associao entre entidades pode corresponder a uma das seguintes 4 situaes: - Relacionamento de uma para uma Um elemento de do conjunto de entidades A est

associado a um e s um elemento do conjunto de entidades de B e vice versa. - Relacionamento de um para muitas Um elemento de A est associado a um qualquer

nmero de entidades de B. Um elemento de B est somente associado com uma entidade de A. - Relacionamento de muitas para uma Um elemento de A est associado a uma e s uma

entidade de B, enquanto que um elemento de B pode estar associado a qualquer numero de entidades de A. - Relacionamento de muitas para muitas Um elemento de A est associado a um qualquer

numero de entidades de B, e um elemento de B pode estar associado a um qualquer numero de entidades de A (COSTA PINTO, Manuel Lus da, 1996, Pgina 12 e 13)

1.8.1.7. Integridade Referencial

O conceito de integridade referencial essencial para permitir proteger a integridade dos dados. O principio da integridade referencial estabelece que o valor de uma chave externa tem de existir na tabela onde essa chave primria. Por outras palavras, no pode ser inscrito um valor num campo de uma chave externa se esse valor no existir j na tabela de origem (CARRIO, Jos Antnio ; CARRIO, Antnio Joo, 1997, Pgina 70). Podemos verificar na figura sobre integridade referencial um exemplo bem explicito duma falha ocorrida, por no ter sido reforada a integridade referencial.

Fig. Integridade referencial Fonte: CARRIO, Jos Antnio ; CARRIO, Antnio Joo, 1997, Pgina 70 Quando a integridade referencial est reforada, A base de dados no pode conter na chave

estrangeira valores no relacionados, ou seja, no pode conter na chave estrangeira valores que no existam na chave candidata. Se o valor existe na chave estrangeira ter que existir na chave primria (DATE, C.J., 2004, Pgina 274). Posto de outra forma, podemos afirmar que as restries da integridade referencial so especificadas entre duas relaes e so usadas para manter a consistncia entre as tuplas das duas relaes. Informalmente podemos afirmar que a restrio da integridade referencial, especifica que uma tupla duma relao que se refere a outra relao, deve referir-se a uma tupla que exista nessa outra relao (ELMASRI, Ramez ; NAVATHE, Shamkant B., 1997, Pgina 206).

Frequentemente, desejamos garantir que um valor que aparece em uma relao para um dado conjunto de atributos tambm aparea para um certo conjunto de atributos de outra relao. Essa condio chamada de integridade referencial (SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDAESHAN, S., 1999, Pgina 193).

1.8.2. Vistas ou ConsultasConforme afirmmos anteriormente, se a base de dados fosse um edifcio, as tabelas seriam os pilares, os relacionamentos entre as tabelas seriam as vigas, as consultas seriam as lajes e as paredes. Tal como os pilares e as vigas condicionam as lajes e as paredes de um edifcio, as tabelas e os seus relacionamentos tambm condicionam as consultas. Mas comecemos por analisar o que uma consulta, Uma consulta base de dados consiste na execuo de uma ou mais operaes sobre as tabelas (CARRIO, Jos Antnio ; CARRIO, Antnio Joo, 1997, Pagina 67). Ou se preferirem consulta uma operao que extrai dados especificados da base de dados (GARCIA-MOLINA, Hector ; ULLMAN, Jeffrey D.; WIDOM, Jennifer ; Trad: SOUZA, Vandenberg D. de, 2001, Pagina 2). O resultado final de uma consulta ou vista, semelhante ao de uma nova tabela ou relao. Qualquer relao que no faa parte do modelo lgico, mas visvel para o utilizador como uma relao virtual, chamada de vista (SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDAESHAN, S., 1999, Pgina 99). As vistas servem para providenciar: - Uma capacidade semelhante a um atalho ou uma macro. - Que os mesmos dados sejam vistos por utilizadores diferentes de formas distintas ao mesmo tempo. - Segurana automtica para dados escondidos. - Independncia lgica dos dados, ou seja a estrutura lgica da base de dados imune a utilizadores e programas (DATE, C.J., 2004, Pgina 298). Embora paream relaes, as vistas no o so, e consequentemente no devem ser tratadas com tal. Vista o resultado da aplicao de uma expresso a uma relao. As vistas so

uma tcnica legtima utilizada para extraco de informao, mas no devem ser utilizadas para actualizar informao (DATE, C.J., 2004, Pgina 302 e 303).

1.8.2.1. O Processador de Consultas

O processador de consultas representado por dois componentes: - O compilador de consultas Converte a consulta para uma forma interna chamada plano de

consulta. Plano de consulta uma sequncia de operaes a serem executadas sobre os dados. Com frequncia, as operaes num plano de consulta so implementaes de lgebra

relacional. O compilador de consultas usa metadados e estatsticas sobre os dados para decidir que sequncia de operaes provavelmente ser a mais rpida. - O mecanismo de execuo plano de consultas escolhido Tem a responsabilidade de executar cada uma das etapas do (GARCIA-MOLINA, Hector ; ULLMAN, Jeffrey D.;

WIDOM, Jennifer ; Trad: SOUZA, Vandenberg D. de, 2001, Pgina 11).

1.8.2.2. lgebra Relacional

A lgebra relacional uma linguagem de consultas procedural. Consiste em um conjunto de operaes tendo como entrada uma ou duas relaes produzindo, como resultado, uma nova relao (SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDAESHAN, S., 1999, Pgina 69). A lgebra relacional uma coleco de operadores que toma as relaes como seus operandos e devolve relaes como seus resultados. A primeira verso da lgebra relacional foi definida por Codd com base em oito operadores divididos em dois grupos de quatro. O primeiro grupo de quatro operadores tradicionais compostos por unio, interseco, diferena e produto cartesiano. O segundo grupo de quatro operadores relacionais compostos por seleco, projeco, juno e diviso (DATE, C.J., 2004, Pgina 173). A lgebra relacional foi projectada originalmente como se as tabelas fossem conjuntos. Na verdade as tabelas em SQL so conjuntos mltiplos, isto , a mesma linha pode aparecer mais de uma vez numa relao de SQL. Desse modo, devemos introduzir a lgebra relacional como uma lgebra sobre tabelas. Os operadores de lgebra relacional so: - Unio No caso de R unio com S, um registo t est no resultado tantas vezes quanto o

numero de vezes que ele est em R mais o numero de vezes que ela est em S. - Interseco No caso de R interseco com S, um registo t est no resultado no mnimo o

numero de vezes que ela est em R e S. - Diferena - No caso de R menos S, um registo est no resultado o numero de vezes que ele est em R menos o numero de vezes que est em S, mas no um numero de vezes menor que zero.

- Seleco

Este operador produz uma nova tabela a partir de uma antiga, seleccionando

algumas linhas da tabela antiga com base em alguma condio ou algum predicado. Corresponde em linhas gerais clusula WHERE duma consulta de SQL. - Projeco Este operador produz uma nova tabela a partir de uma antiga, escolhendo

algumas colunas, como a clusula SELECT de uma consulta de SQL. - Produto Este operador o produto cartesiano da teoria dos conjuntos, que constri registos

emparelhando as linhas de duas tabelas de todas as maneiras possveis. Corresponde em SQL lista de tabelas duma clusula FROM, cujo produto forma a relao qual so aplicadas a condio da clusula WHERE e a projeco da clusula SELECT. - Juno Existem vrios tipos de operadores de juno, que correspondem a operadores

como JOIN, NATURAL JOIN e OUTER JOIN do padro SQL2. - A juno mais simples e mais comum a juno natural. A juno natural das tabelas R e S uma abreviao da projeco de L da seleco de C do produto de R por S onde C uma condio que compara todos os pares de atributos de R e S que tm o mesmo nome. L uma lista de todos os atributos de R e S, excepto pelo facto de uma cpia de cada par de atributos comparada ser omitida. - A juno theta ou equivalente uma abreviao da seleco C do produto de R por S. A condio C um nico termo da forma x igual a y, onde x um atributo de R e y um atributo de S (GARCIA-MOLINA, Hector ; ULLMAN, Jeffrey D.; WIDOM, Jennifer ; Trad: SOUZA, Vandenberg D. de, 2001, Pgina 257 a 264)

Fig. As oito operaes originais Fonte: DATE, C.J., 2004, Pgina 178 Como podemos observar na figura das oito operaes originais, na lgebra relacional temos uma semntica que define cada uma das operaes. Semntica da lgebra original: - Unio A unio de dois conjuntos o conjunto de todos os elementos que pertencem a

ambos os conjuntos. O resultado da unio de duas relaes ser o conjunto das linhas das duas relaes. A unio de duas relaes s possvel quando os atributos das duas relaes so os mesmos.

- Interseco

Tal como na unio, a interseco de duas relaes s possvel quando os

atributos das duas relaes so os mesmos. A interseco de duas relaes, d origem a uma nova relao composta somente pelas tuplas que surgem em ambas as relaes. - Diferena - Tal como na unio, e na interseco, a diferena de duas relaes s possvel quando os atributos das duas relaes so os mesmos. O resultado da diferena entre duas relaes uma relao contendo as tuplas da primeira relao que no constam na segunda relao. - Produto Em termos matemticos o produto cartesiano de dois conjuntos o conjunto de

todos os pares ordenados, nos quais, o primeiro elemento vem do primeiro conjunto e o segundo elemento vem do segundo conjunto. O produto cartesiano de duas relaes ser um conjunto de pares ordenados das duas tuplas, nas quais, a primeira tupla vem da primeira relao e a segunda tupla vem da segunda relao. - Restries Quando se aplica um operador com uma restrio condicional, a uma dada

relao, o resultado ser uma nova relao, composta pelas tuplas da primeira relao que satisfazem a condio imposta. - Projeco O resultado da projeco de uma relao, a mesma relao apenas com os

atributos mencionados, depois de eliminadas as tuplas duplicadas. - Juno H diversos tipos de junes, mas a mais importante conhecida por juno

natural. Para se poder proceder juno natural, necessrio que as duas relaes tenham um atributo em comum. O resultado da juno natural ser uma relao com todos os atributos das duas relaes, em que cada tupla ser composta pelo atributo comum das duas relaes. Alm do atributo comum, cada tupla contar com os respectivos atributos das duas relaes respeitantes tupla do atributo comum. - Diviso H dois tipos de diviso, a grande diviso e a pequena diviso.

Na pequena diviso, o resultado da diviso de uma relao chamada dividendo por outra relao chamada divisor com base numa relao chamada mediador, consiste numa nova relao composta pelos valores do dividendo que quando associados ao divisor, existem no mediador (DATE, C.J., 2004, Pgina 180 a 189) Relativamente numenclatura, A maioria dos textos de bases de dados utilizam a seguinte notao, seleco ( ), juno ( Pgina 178) ), interseco ( ) e projeco ( ) (DATE, C.J., 2004,

Fig. Numenclatura utilizada nas operaes Fonte: ELMASRI, Ramez ; NAVATHE, Shamkant B., 1997, Pgina 234 A inteno fundamental da lgebra relacional permitir escrever expresses relacionais. De seguida so descritas algumas aplicaes para essas expresses: - Definio do mbito de extraco de informao de extraco de informao. - Definir o mbito de actualizao Definir os dados a serem inseridos, alterados ou Definir os dados a retirar numa operao

apagados numa operao de actualizao. - Definir as restries de integridade satisfazer. - Definir as relaes de variveis derivadas - Definir a estabilidade dos pedidos operao de controle de concorrncia. definir os dados a serem includos numa vista. Definir algumas restries que a base de dados deve

Definir quais so os dados abrangidos por uma

- Definir as restries de segurana

Definir os dados, aos quais o acesso garantido por

algum tipo de autorizao (DATE, C.J., 2004, Pgina 193).

(DATE, C.J., 2004, Pgina 194) A lgebra relacional ainda permite utilizar outras propriedades dos relacionamentos entre as relaes (listas). - Propriedade associativa Se a, b e c so relaes (listas) ento (a unio b) unio c equivalente a a unio (b unio c) - Propriedade comutativa a unio b equivalente a b unio a

1.8.2.3. SQL

Structured Query Language

Linguagem Estruturada de Consulta

A liguagem SQL uma linguagem extremamente importante no mundo dos sistemas de gesto de bases de dados. o SQL chegou para dominar o mercado dos SGBD. A razo

prende-se com o facto do SQL se basear no modelo de dados relacional (DATE, C.J., 2004, Pgina 26). O SQL a linguagem standard para sistemas relacionais, e suportada por praticamente todos os produtos de bases de dados existentes hoje no mercado (DATE, C.J., 2004, Pgina 85). A linguagem SQL serve acima de tudo para extrair dados de uma base de dados, a SQL uma linguagem especial, criada especificamente para o acesso a bases de dados relacionais. Em ltima anlise, o conjunto de comandos SQL traduz-se numa ou vrias operaes efectuadas sobre tabelas. O resultado de uma operao de consulta aparece sempre sobre a forma de uma tabela (CARRIO, Jos Antnio ; CARRIO, Antnio Joo, 1997, Pagina 65). Como o SQL uma linguagem que trabalha sobre a base de dados, usa o termo tabela no lugar de relao, o termo linha no lugar de tupla e o termo coluna no lugar de atributo. O comando CREATE TABLE especifica o nome da tabela a ser criada, o nome e tipos das colunas dessa tabela, as chaves primrias e as chaves estrangeiras. O comando SELECT

permite executar diversas funes, entre elas, impor restries, efectuar projeces e junes (DATE, C.J., 2004, Pgina 86). A linguagem de base de dados SQL tem um grande numero de recursos, inclusive instrues que consultam e modificam a base de dados. A modificao da base de dados feita atravs de trs comandos, INSERT, DELETE e UPDATE. O resultado duma consulta pode ser calculado: - Tomando-se todas as combinaes possveis de linhas das tabelas na clusula FROM. - Eliminando-se tudo o que no satisfaz a condio da clausula WHERE. - Agrupando-se as linhas restantes, de acordo com os seus valores nas colunas mencionadas na clusula GROUP BY. - Testando-se cada grupo de acordo com a condio na clusula HAVING e rejeitando-se todos os grupos que no satisfazem essa condio. - Calculando-se linhas de colunas e agrupamentos de colunas especificados, da maneira especificada pela clusula SELECT. - Ordenando-se as linhas resultantes de acordo com os valores na lista de atributos da clusula ORDER BY (GARCIA-MOLINA, Hector ; ULLMAN, Jeffrey D.; WIDOM, Jennifer ; Trad: SOUZA, Vandenberg D. de, 2001, Pgina 16). De seguida podemos observar uma figura sobre as queries, nesta figura podemos observar alguns exemplos de consultas. Nos primeiros exemplos so impostas condies, restries aos dados, nos exemplos seguintes reunida na mesma consulta informao de vrias tabelas.

Fig. Queries Fonte: GARCIA-MOLINA, Hector ; ULLMAN, Jeffrey D.; WIDOM, Jennifer ; Trad: SOUZA, Vandenberg D. de, 2001, Pgina 16

Restries

Uma restrio uma operao aplicada sobre uma tabela com o objectivo de extrair um subconjunto das suas linhas. O subconjunto de linhas que obedecem a uma ou mais condies especificadas na operao de restrio (CARRIO, Jos Antnio ; CARRIO, Antnio Joo, 1997, Pagina 71). Em SQL o comando "WHERE condio filtra dados indesejados do resultado de uma consulta, devolvendo apenas os dados que satisfazem a condio KLINE, Daniel; HUNT, Brand, 2004, Pgina 384). Na figura operao restrio, podemos observar um exemplo de uma restrio imposta aos dados de uma coluna de uma tabela. (KLINE, Kevin E.;

Fig. Operao Restrio Fonte: CARRIO, Jos Antnio; CARRIO, Antnio Joo, 2004, Pgina 90 Projeces

Uma projeco uma operao que selecciona uma ou mais colunas de uma tabela (CARRIO, Jos Antnio ; CARRIO, Antnio Joo, 1997, Pgina 71). No SQL o comando SELECT item pode ser utilizado como funo, calculo matemtico, parmetro, varivel ou uma subconsulta, mas normalmente utilizado para definir uma coluna duma tabela ou duma vista (KLINE, Kevin E.; KLINE, Daniel; HUNT, Brand, 2004, Pgina 382). Na figura da operao de projeco podemos visualizar um exemplo em que retiramos da tabela A as colunas X e Y, e lhes mudamos o nome para K e M respectivamente.

Fig. Operao Projeco Fonte: CARRIO, Jos Antnio; CARRIO, Antnio Joo, 2004 Pgina 91

Unies

A unio uma operao atravs da qual duas tabelas do origem a uma terceira tabela, constituda pelas linhas que pertencem a uma ou a outra tabelas. Para que se possa efectuar a unio, necessrio que as duas tabelas tenham uma estrutura idntica. evidente que a unio pode estender-se a mais do que duas tabelas (CARRIO, Jos Antnio ; CARRIO, Antnio Joo, 1997, Pgina 72). Em SQL o comando UNION permite juntar duas tabelas com o mesmo numero de colunas. O tipo de dados no tem que ser obrigatoriamente o mesmo desde que a converso dos mesmos esteja implcita (KLINE, Kevin E.; KLINE, Daniel; HUNT, Brand, 2004, Pgina 459). Na figura da operao unio temos um exemplo do funcionamento de uma unio entre duas tabelas. importante referir que as tabelas do exemplo, apresentam-se unio com os mesmos campos. de referir igualmente que o resultado final tambm apresenta os mesmos campos.

Fig. Operao unio Fonte: CARRIO, Jos Antnio; CARRIO, Antnio Joo, 2004, Pgina 94

Interseces

A interseco conjuga duas tabelas, originando uma terceira tabela contendo as linhas que so comuns. Tambm neste caso, necessrio que as tabelas tenham a mesma estrutura, para que a operao se possa realizar (CARRIO, Jos Antnio ; CARRIO, Antnio Joo, 1997, Pgina 72) O comando INTERSECT escolhe as linhas de duas ou mais tabelas em que a linha da primeira tabela e da segunda tabela so idnticas (KLINE, Kevin E.; KLINE, Daniel; HUNT, Brand, 2004, Pgina 326)

Fig. Operao interseco Fonte: CARRIO, Jos Antnio; CARRIO, Antnio Joo, 2004, Pgina 95

Juno

A operao juno uma das operaes mais frequentes utilizadas em bases de dados relacionais. Informalmente, pode definir-se como a juno dos elementos de tabelas tomando por base um atributo comum. (CARRIO, Jos Antnio ; CARRIO, Antnio Joo, 1997, Pgina 72). O comando JOIN condio - Junta informao de duas tabelas que tenham um campo comum. Normalmente o campo comum chave primria numa das tabelas e chave estrangeira na outra tabela. H vrios tipos de joins: - Cross join - Provoca o produto de tabelas, juntando para cada registo da primeira tabela, todos os registos da segunda tabela, criando potencialmente um resultado gigantesco.

- Inner join - Especifica que todas as linhas que no tiverem o mesmo dado nas duas tabelas, no tero lugar na consulta. Por defeito este join que utilizado. - Left outer join - Devolve todos os valores da tabela da esquerda. Quando a tabela da direita no tiver dados condizentes com a da esquerda, os dados so preenchidos com valores nulos. - Right outer join - Devolve todos os valores da tabela da direita. Quando a tabela da esquerda no tiver dados condizentes com a da direita, os dados so preenchidos com valores nulos. - Full outer join - Devolve todos os valores das duas tabelas preenchendo com valores nulos todos os valores que no existem na outra tabela (KLINE, Kevin E.; KLINE, Daniel; HUNT, Brand, 2004, Pgina 383 e 386). A operao Join pode ser representada atravs do smbolo . A tabela que resulta do Join

da tabela A e da tabela B pode ser representado atravs da expresso A B. Esta tabela o resultado de uma projeco, de uma restrio de um produto cartesiano. O produto cartesiano A x B. O resultado deste produto objecto de uma restrio. Essa restrio selecciona apenas as linhas onde se verifique a igualdade dos valores do atributo comum. Finalmente, uma projeco extrai um subconjunto do conjunto das tabelas produto (CARRIO, Jos Antnio; CARRIO, Antnio Joo, 2004, Pgina 98). Na figura da operao de juno podemos observar a juno da tabela A com a tabela B, com base nos dados da coluna Z. de salientar que a coluna Z comum nas duas tabelas.

Fig. Operao juno Fonte: CARRIO, Jos Antnio; CARRIO, Antnio Joo, 2004, Pgina 98

Agrupamento e Agregao

GROUP BY

O comando GROUP BY do SQL utilizado para agrupar informao duma consulta. Quando juntamos na mesma consulta dados de duas tabelas que tm entre si uma relao de um para muitos, temos como resultado uma consulta com registos que normalmente faz sentido serem agrupados. Estes dados depois de agrupados, so normalmente sujeitos a determinadas operaes, que fazem sentido ser aplicadas a cada um dos grupos obtidos. Existe uma famlia de caractersticas em SQL que funcionam em conjunto para permitir consultas envolvendo agrupamento e agregao.

- Operadores de Agregao

Os cinco operadores AVG, SUM, COUNT, MIN e MAX

produzem os valores mdio, total, de contagem mnimo ou mximo, respectivamente, do atributo ao qual so aplicados. Esses operadores so utilizados em clausulas SELECT. -Agrupamento Uma clausula GROUP BY numa consulta de SQL faz a tabela construda

pelas clausulas FROM e WHERE ser agrupada de acordo com o valor do atributo ou dos atributos mencionados na clausula GROUP BY. As agregaes so ento aplicadas ao grupo. - HAVING A clausula HAVING deve seguir uma clausula GROUP BY e fornece um

condio a que um grupo deve satisfazer, a fim de contribuir para o resultado da consulta (GARCIA-MOLINA, Hector ; ULLMAN, Jeffrey D.; WIDOM, Jennifer ; Trad: SOUZA, Vandenberg D. de, 2001, Pgina 266).

This document was created with Win2PDF available at http://www.daneprairie.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only.