Está en la página 1de 34
Seat a a ec ro mais para o modelo relacional:a Algebra relacio- nal e 0 célculo relacional. Ao contrario, os capitulos 45 descreveram a linguagem pratica para 0 modelo relacional, a saber, o padrio SQL. Historicamente, a Algebra ¢'0 célculo relzcional foram desenvolvidos antes da linguagem SQL. De fato, de algumas ma- neiras, a SQL & baseada nos conceitos tanto da dlge- bra quanto do céleulo, conforme veremos. Como a maioria dos SGBDs relacionais utiliza a SQL como Jinguagem, nés a apresentamos primero, Lembre-se, do Capitulo 2, de que um modelo de dados precisa incluir um conjunto de operagdes para manipular 0 banco de dados, além dos conceitos do modelo de dados para definir a estrutura ¢ as restr ¢gdes do banco de dados. Apresentamos as estruturas € as restrigoes do modelo relacional formal no Cap tulo 3. 0 conjunto basico de operagoes para o mode- lo relacional ¢ a algebra relacional, Essas operacdes permitem que um usuario especifique as solicitagoes de recuperagao basicas como expressoes da digebra re- lacional, © resulkado de uma recuperacio € uma nova relagio, que pode ter sido formada de uma ou mais re- lagies. As operagdes da dlgebra, assim, produzem no- vas relagées, que podem ser manipuladas ainda mais usando operagdes da mesma algebra. Uma sequéncia de operacées da dlgebea celacional forma uma expres- sio da algebra relacional, cujo resultado também seri tuma relagio que representa o resultado de uma con- sulta de banco de dados (ou consulta de recuperacio). A Algebra relacional & muito importante por di- vversos motives. Primeiro, ela oferece um alicerce for- mal para as operacies do modelo relacional. Segun- do, ¢ talvez mais importante, ela & usada como base para a implementacio e orimizacio de consultas nos médulos de otimizacao e processamento de consulta, que sio partes integrais dos sistemas de gerenciamen- to de banco de dads relacional (SGBDRs), conforme discutiremos no Capitulo 19. Terceiro, alguns de seus conceitos s20 incorporados na linguagem de consulta padrao SQL para SGBDRs. Embora a maioria dos SGBDRs comerciais em uso hoje nao ofereca interfaces de usudrio para con- sultas da Algebra relacional, as operagbes e funcbes essenciais nos médulos internos da maioria dos sis- temas relacionais so baseadas nas operagdes da al- gebra relacional. Definiremos essas operagdes com detalhes nas segdes 6.1 a 6.4 deste capitulo. Embora a Algebra defina. um conjunto de operagées para 0 modelo relacional, 0 calculo re- lacional oferece uma linguagem declarativa de nivel mais alto para especificar consultas relacio- nais. Uma expressio do calcul relacional gera uma nova relagdo. Em uma expressao do célculo relacional, mao existe ordem de operacoes para especificar como recuperar o resultado da consul- ta — somente qual informagdo o resultado deve conter. Esse € 0 principal fator de distingio entre 2 algebra relacional € 0 edleulo relacional. © cal- culo relacional € importante porque tem uma firme base na lgica matematica ¢ porque a linguagem de consulta padeio (SQL) para SCBDRs tem alguns de seus alicerces em uma variagio do céleulo rela- cional conhecida como cilewlo relacional de tupla.! A Algebra relacional normalmente 6 considorada ‘uma parte integral do modelo de dados relacional. Suas operages podem ser divididas em dois grupos. Um grupo inclui conjunto de operagies da teoria de 'ASL G2 baseia ro culo eacona de tpl, mas tambam corpora slounes das oneracbes da lost elacional @ sues extensdes,conorme stragenos captubs 4, 5 €8, conjunto da matemiética; estas séo aplicdveis por- que cada relacio é definida como um conjunto de tuplas no modelo relacional formal (ver Secao 3.1). ‘As operagdes de conjunto incluem UNAO, INTER- SECGAO, DIFERENCA DE CONJUNTO e PRODUTO CARTESIANO (também conhecida como PRODUTO CRUZADO). O outro grupo consiste em operagdes desenvolvidas especificamente para bancos de dados relacionais — entre elas esto SELEGAO, PROJEGAO_ € JUNGAQ, entre outras. Frimeiro, vamos descrever as operagdes SELEGAO € PROJECAO na Secio 6.1, pois elas so operagdes undirias que ocorrem sobre relagbes isoladas. Depois, discutimos as operagies de conjunto na Segao 6.2. Na Segao 6.3, discutimos JUNGAO outras operagdes bindrias complexas, que operam sobre duas tabelas combinando tuplas rela- cionadas (registros) baceadas em condigoes de jun- ¢20. © baneo de dados relacional EMPRESA, mos- trado na Figura 3.6, 6 usado paca nossos exemplos. Algumas solicitages de banco de dados comuns nao podem ser realizadas com as operagies origi- nais da algebra relacional, de modo que operacdes adicionais foram criadas para expressé-las. Fstas incluem fanedes de agregagio, que slo operagaee que podem resumir dados das tabelas, bem como tipos adicionais de operacdes JUNCAD ¢ UNAO, conhecidas como JUNCAO EXTERNA e UNIAO EX- TERNA, Essas operacdes, que foram acrescentadas 4 algebra relacional devido a sua importancia para a muitas aplicagies de banco de dados, sao descritas na Secio 6.4. Oferecemos exemplos da especifica- ‘cao de consultas que usam operagbes relacionais na Seco 6.5. Algumas dessas mesmas consultas foram utilizadas nos capitulos 4 e 5. Ao usar os mesmos niimeros de consulta neste capitulo, o leitor poder comparar como as mesmas consultas so escritas nas diversas linguagens de consulta. Nas secdes 6.6 € 6.7, descrevemos a outra ‘guage formal principal para bancos de dados rela- ionais, 0 caleulo relacional. Existem duas variagdes do céleulo relacional. O céleulo relacional de tupia € descrito na Seco 6.6, € 0 cilculo relacional de do- minio € descrito na Secao 6.7. Algumas das constru- ‘Goes SQL discutidas nos capitulos 4 e 5 sao baseadas no cileulo relacional de tupla. O céleulo relacional € uma linguagem formal, fundamentada no ramo da ogica matematica chamado de céleulo de predica- do.? No cilculo relacional de tupla, varivcis esten- dem-se por tuplas, enquanto no céleulo relacional de dominio, varidveis estendem-se por dominios (valo- res) de atributos. No Apéndice C, oferecemos ama BLED aia Capitulo 6 Algebrae cdlculo reacional 97 visio geral da linguagem Query-By-Example (QBE), que é uma linguagem relacional grafica de uso facili tado, baseada no cileulo relacional de dominio. No final do capitulo ha um resumo. Para o leitor interessado em uma introdugio me- nos detalhada as linguagens relacionais formais, as segbes 64, 6.6 € 6.7 podem ser puladas. 6.1 Qperagies relacionais undrias: SELECAO e PROJECAO 6.1.1 A operagao SELECAO A operagio SELECAO é usada para escolher um subconjunto das tuplas de uma relagao que satisfaca uma condicio de selecao.’ Pode-se considerar que a operagao SELECAO seja um filtro que mantém apenas as tuplas que satisfazem uma condigio qualificadora. Como alternativa, podemos considerar que essa ope- racio restringe as tuplas em uma relagio para ape- nas aquelas que satisfazem a condigdo. A operagio SELECAO também pode ser visualizada como uma particao horizontal da relacio em dois conjuntos de tuplas — aquelas que satisfazem a condi¢io e sio. lecionadas, e aquelas que nio satisfazem a condigio e sio descartadas. Por exemplo, para selecionar a tu- pla FUNCIONARIO cujo departamento é 4, ou aquelas cujo salério & maior do que RS 30,000,00, podemos especificar individualmente cada uma dessas duas condigoes com uma operagio SELEGAO da seguinte maneira: © yee(FUNCIONARIO) Oses9303(F UNCIONARIO) Em geral, a operagao SELECAO ¢ indicada por le ° cx ee onde o simbolo o (sigma) € usado para indicar © operador SELEGAO © a condigao de selegao € uma expresso booleana (condigio} especificada nos atri- butos da relagio R. Observe que R costuma ser uma expressio da dlgebra relacional cajo resultado & uma relagiio — a mais simples expressio desse tipo & ape nas © nome de ama relagao de banco de dados. A relagao resultante da operagao SELECAO tem 03 mies- mos atributos de R. A expresso booleana especificada em -enome atributo> onde €0 nome de um atributo de R, em geral é um dos operadores (=, <;S, >, 2, #} € é um valor cons” tante do dominio do atributo. As cliusulas podem ser conectadas pelos operadores booleanos padrio and, or € not para formar uma condigéo de selecio geral. Por exemplo, para selecionar as tuplas para todos os funcionarios que ou trabalham no depar- tamento 4 e ganham mais de R$ 25.000,00 por ano, ou trabalham no departamento 5 e ganham mais de RS 30.000,00, podemos especificar a seguinte opera- ‘do SELEGA goxat AND Soios26.030) 9M fr AND Ssv0330. 9 UNCIONARIO) resultado é mostrado na Figura 6.1(a). Observe que todos os operadores de compara- ao no conjunto (=, <, <, >, >, =} podem ser apli- cados aos atributos cuios dominios s4o valores or- denados, como dominios numéricos ou de data. Os dominios de cadeias de caracteres também sao con- siderados ordenados com base na ordem alfabstica dos caracteres. Se 0 dominio de um atributo for um conjunto de valores desordenados, entao somente os operadores de comparagio no conjunto {=, #} podem ser usados. Um exemplo de dominio desordenado € 0 dominio Gor = {*vermelho’, ‘azul’, ‘verde’, “branco’, ‘amarelo’, ..., onde nenhuma ordem € especificada centre as diversas cores. Alguns dominios permitem tipos adicionais de operadores de comparagao; por ‘exemplo, um dominio de cadeias de caracteres pode permitir o operador de comparagao SUBSTRING_OF. Em geral, 0 resultado de uma operagio SELEGAO. pode ser determinado da seguinte forma. A é aplicada independentemente para cada tu pla individual tem R. Isso € feito substicuindo cada ovorréncia de um atributo A, na condigao de selegao por seu valor na tupla ¢[A,]- Sea condigao for avaliada ‘como TRUE, entio a tupla t€ selecionada. Todas as plas selecionadas aparecem no resultado da operagao SELEGAO. As condigbes booleanas AND, OR e NOT tém sua interpretacio normal, da seguinte forma: ™ (cond AND cond2) € TRUE se (cond1) € (cond2) forem TRUE; caso contririo, é FALSE. ™ (condi OR cond2) é TRUE se (cond1) ou (cond2) ou ambas forem TRUE; caso contra- Tio, € FALSE. BLED aia 1 (NOT cond) ¢ TRUE se cond é FALSE; caso contririo, FALSE. © operador SELEGAO é unarios ou seja, ele & aplicado a uma tnica celagio. Além do mais, a ope- ragio de selegio é aplicada a cada tupla individual mente; logo, as condigies de selecio nio podem en- volver mais de uma tupla. O grau da celacio resul- tante de uma operaco SELECAO — seu niimero de atributos — & 0 mesmo que o grau de R.O niimero de tuplas na relacdo resultante é sempre menor ow igual ao ntimero de tuplas em R. Ou seia, la, (R)! < IRI para qualquer condigio C. A fracao de tuplas se- lecionada por uma condicao de selecao é conhecida como seletividade da condigao. Observe que a operagio SELECT é comutativa; ou seja, F cps © ccorce dD) = F cee0F scons AM Portanto, uma sequéncia de SELEGAO pode ser aplicada em qualquer ordem. Além disso, sempze po- demos combinar uma cascata (ou sequéncia) de ope- rages SELECAO a uma tinica operagio SELECAO, com ums condigio conjuntiva (AND); 01 caja, © cert (F corsoob-\P csninlD ~) © cost Ancor KO 300 con) Em SQL, a condigao SELEGAO normalmente & especificada na clausula WHERE de uma consulta. Por exemplo, a operacio a seguir: ope an sairorts 09 FUNCIONARIO) corresponderia & seguinte consulta SQL: SELECT FROM —FUNCIONARIO WHERF Mnr=4 ANN Sarin 95 000; 6.1.2 A operagao PROJECAO Se pensarmos em uma rela¢o como uma tabela, 2 operacio SELEGAO escolhe algumas das linhas da tabela enquanto descarta outras linhas. A operacio PROJEGAO, por sua vex, seleciona certas colunas da tabela e descarta as outras. Se estivermos inte- ressados apenas em certos atributos de uma relagio, uusamos 2 opera¢io PROJEGAO para projetar a rela- Gio apenas por esses atributos. Portanto, o resultado da operagao PROJECAO pode ser visualizado como uma particao vertical da relagao em duas relacdes: uma tem as colunas (atributos) necessarias e contém 6 resultado da operacao, ea outra contem as colunas

También podría gustarte