Um pouco de Álgebra Relacional

Tamanho: px
Começar a partir da página:

Download "Um pouco de Álgebra Relacional"

Transcrição

1 Capítulo 3 Um pouco de Álgebra Relacional A compreensão das operações da álgebra relacional é extremamente importante para aqueles que querem conhecer melhor os mecanismos das linguagens de consultas para bancos de dados relacionais. Este capítulo apresenta um resumo das operações da álgebra visando a apresentar ao leitor alguns conceitos que serão valiosos no decorrer dos capítulos subsequentes. 3.1 OPERAÇÕES DA ÁLGEBRA RELACIONAL A álgebra relacional está baseada em cinco operações primitivas: PROJEÇÃO SELEÇÃO PRODUTO UNIÃO DIFERENÇA Uma expressão algébrica é uma seqüência de operações que, executadas na ordem estabelecida, produzem um resultado final na forma de uma tabela. Uma operação da álgebra é aplicada sobre um ou dois operandos, dependendo da operação. Um operando pode ser uma tabela do banco de dados ou o resultado da aplicação de alguma operação. Com isso, é possível aplicar operações sobre tabelas e encadear os resultados com outras operações, de forma a construir expressões algébricas. Na notação aqui adotada, os operandos podem aparecer entre parênteses, colchetes ou chaves, de modo a facilitar a leitura de expressões, assim como os parênteses são usados nas expressões aritméticas. Um operando, portanto, pode ser uma tabela relacional ou o resultado de uma expressão algébrica. Uma linguagem de consulta para bancos de dados relacionais baseada na álgebra relacional deve prover uma sintaxe que permita a construção dessas expressões e seu processamento num determinado banco de dados. As cinco operações mostradas acima são chamadas de primitivas porque nenhuma delas pode ser obtida da combinação das outras quatro. Isto significa que as cinco são necessárias para que a álgebra relacional seja completa. A OPERAÇÃO DE PROJEÇÃO É utilizada quando se deseja selecionar uma ou mais colunas de uma tabela. Para produzir uma lista com matrículas e s dos alunos, por exemplo, basta aplicar a operação de projeção sobre as colunas matrícula e, da tabela ALUNO. O quadro a seguir ilustra essa aplicação.

2 14 Um pouco de álgebra relacional P matrícula, ALUNO matrícula 1001 Ricardo Biondi 1002 Maria Rita Colatti 1004 Oscarito Vianna 1005 Barbara Carlito 1007 Carlos Maradona 1008 Sacadura Miranda 1010 Maria Lucia Silva A operação de projeção é representada pelo símbolo P seguido da lista de uma ou mais colunas, sobre as quais a projeção deve ser feita, e do operando, neste caso a tabela ALUNO, cujas colunas são projetadas. A OPERAÇÃO DE SELEÇÃO A operação de seleção, representada pelo símbolo S seguido de uma expressão lógica e de um operando, resulta nos registros deste operando que passam pelo critério de filtragem determinado pela expressão lógica. No exemplo a seguir, a operação de seleção é empregada para a obtenção dos registros dos alunos do curso de Direito, representados pelos registros que têm o valor DIR na coluna codcurso. S codcurso = DIR ALUNO matrícula sexo codcurso nascimento 1001 Ricardo Biondi M DIR 21/02/ Oscarito Vianna M DIR 14/08/ Carlos Maradona M DIR 30/06/77 COMBINANDO PROJEÇÃO E SELEÇÃO As operações da álgebra podem ser combinadas para a construção de consultas mais complexas. O exemplo a seguir produz a lista de matrículas e s do alunos do curso de Direito. P matrícula, [ S codcurso = DIR ALUNO] matrícula 1001 Ricardo Biondi 1004 Oscarito Vianna 1007 Carlos Maradona Aqui, foram combinadas duas operações da álgebra. Primeiro, a operação de seleção foi aplicada à tabela ALUNO produzindo os registros dos alunos do curso de Direito, isto é, que têm o valor DIR na coluna codcurso. Este resultado, entre colchetes, serviu então como operando da operação de projeção nas colunas matrícula e. A OPERAÇÃO PRODUTO A operação de produto serve para combinar tabelas e, por si só, não parece muito interessante. Contudo, forma uma combinação formidável com as operações de seleção e projeção.

3 Operações da Álgebra Relacional 15 A operação de produto requer dois operandos e produz, como resultado, todas as combinações dos registros existentes em cada um deles. O quadro a seguir mostra o produto das tabelas ALU- NO e CURSO. ALUNO CURSO matrícula sexo Aluno.codcurso nascimento Curso.codcurso curso 1001 Ricardo Biondi M DIR 21/02/80 DIR Direito 1001 Ricardo Biondi M DIR 21/02/80 JOR Jornalismo 1001 Ricardo Biondi M DIR 21/02/80 INF Informática 1002 Maria Rita Colatti F INF 10/11/78 DIR Direito 1002 Maria Rita Colatti F INF 10/11/78 JOR Jornalismo 1002 Maria Rita Colatti F INF 10/11/78 INF Informática 1004 Oscarito Vianna M DIR 14/08/79 DIR Direito 1004 Oscarito Vianna M DIR 14/08/79 JOR Jornalismo 1004 Oscarito Vianna M DIR 14/08/79 INF Informática 1005 Barbara Carlito F JOR 29/10/79 DIR Direito 1005 Barbara Carlito F JOR 29/10/79 JOR Jornalismo 1005 Barbara Carlito F JOR 29/10/79 INF Informática 1007 Carlos Maradona M DIR 30/06/77 DIR Direito 1007 Carlos Maradona M DIR 30/06/77 JOR Jornalismo 1007 Carlos Maradona M DIR 30/06/77 INF Informática 1008 Sacadura Miranda M INF 12/12/81 DIR Direito 1008 Sacadura Miranda M INF 12/12/81 JOR Jornalismo 1008 Sacadura Miranda M INF 12/12/81 INF Informática 1010 Maria Lucia Silva F JOR 10/08/75 DIR Direito 1010 Maria Lucia Silva F JOR 10/08/75 JOR Jornalismo 1010 Maria Lucia Silva F JOR 10/08/75 INF Informática O primeiro operando, a tabela ALUNO, contém 7 registros e o segundo, a tabela CURSO, contém 3 registros. Assim, a combinação dessas tabelas resulta em 21 registros, pois cada um dos 7 alunos aparece combinado com cada um dos 3 cursos. Um fato curioso neste resultado é que duas colunas têm o mesmo, codcurso. Cada coluna é acompanhada por um prefixo que indica sua tabela de origem. COMBINANDO PROJEÇÃO, SELEÇÃO E PRODUTO A maioria das consultas empregadas nas aplicações de bancos de dados são formadas a partir de variações das operações de projeção, seleção e produto. Por isso, as combinações dessas operações devem ser perfeitamente compreendidas por aqueles que buscam conhecer melhor e dominar a formulação de consultas para bancos de dados relacionais. Vamos supor que seja necessário produzir uma lista com os s dos alunos e os s dos seus respectivos cursos. Como o de um aluno está na tabela ALUNO e o de um curso está na tabela CURSO, é preciso combinar essas duas tabelas. O exemplo anterior mostra o resultado dessa combinação, obtida pelo produto das tabelas ALUNO e CURSO. Como todas as combi-

4 16 Um pouco de álgebra relacional nações possíveis entre registros são realizadas numa operação de produto, há algumas que não fazem sentido, sendo então preciso filtrar as combinações que interessam para a produção do resultado procurado. Por exemplo, as combinações entre o aluno de matrícula 1001 e os registros dos cursos de código JOR e INF podem ser descartadas, porque o código do curso deste aluno é DIR. Assim, como regra geral, somente são interessantes as combinações onde o código do curso do aluno é igual ao código do curso que vem da tabela CURSO. O quadro a seguir mostra as combinações que são relevantes assinaladas. matrícula sexo Aluno.codcurso nascimento Curso.codcurso curso 1001 Ricardo Biondi M DIR 21/02/80 DIR Direito 1001 Ricardo Biondi M DIR 21/02/80 JOR Jornalismo 1001 Ricardo Biondi M DIR 21/02/80 INF Informática 1002 Maria Rita Colatti F INF 10/11/78 DIR Direito 1002 Maria Rita Colatti F INF 10/11/78 JOR Jornalismo 1002 Maria Rita Colatti F INF 10/11/78 INF Informática 1004 Oscarito Vianna M DIR 14/08/79 DIR Direito 1004 Oscarito Vianna M DIR 14/08/79 JOR Jornalismo 1004 Oscarito Vianna M DIR 14/08/79 INF Informática 1005 Barbara Carlito F JOR 29/10/79 DIR Direito 1005 Barbara Carlito F JOR 29/10/79 JOR Jornalismo 1005 Barbara Carlito F JOR 29/10/79 INF Informática 1007 Carlos Maradona M DIR 30/06/77 DIR Direito 1007 Carlos Maradona M DIR 30/06/77 JOR Jornalismo 1007 Carlos Maradona M DIR 30/06/77 INF Informática 1008 Sacadura Miranda M INF 12/12/81 DIR Direito 1008 Sacadura Miranda M INF 12/12/81 JOR Jornalismo 1008 Sacadura Miranda M INF 12/12/81 INF Informática 1010 Maria Lucia Silva F JOR 10/08/75 DIR Direito 1010 Maria Lucia Silva F JOR 10/08/75 JOR Jornalismo 1010 Maria Lucia Silva F JOR 10/08/75 INF Informática A operação de seleção deve ser empregada para evitar as combinações indesejadas, como mostra o exemplo a seguir. S aluno.codcurso = curso.codcurso [ ALUNO CURSO] matrícula sexo Aluno.codcurso nascimento Curso.codcurso curso 1001 Ricardo Biondi M DIR 21/02/80 DIR Direito 1002 Maria Rita Colatti F INF 10/11/78 INF Informática 1004 Oscarito Vianna M DIR 14/08/79 DIR Direito 1005 Barbara Carlito F JOR 29/10/79 JOR Jornalismo 1007 Carlos Maradona M DIR 30/06/77 DIR Direito 1008 Sacadura Miranda M INF 12/12/81 INF Informática 1010 Maria Lucia Silva F JOR 10/08/75 JOR Jornalismo Para a obtenção do resultado final, basta aplicar a operação de projeção nas colunas e curso, tomando como operando o resultado da expressão de seleção sobre o produto, como mostrado a seguir.

5 Operações da Álgebra Relacional 17 P, curso [ S aluno.codcurso = curso.codcurso [ ALUNO CURSO] ] curso Ricardo Biondi Direito Maria Rita Colatti Informática Oscarito Vianna Direito Barbara Carlito Jornalismo Carlos Maradona Direito Sacadura Miranda Informática Maria Lucia Silva Jornalismo A JUNÇÃO NATURAL A operação de seleção aplicada ao resultado de um produto constitui uma combinação corriqueira nas consultas a bancos de dados. Essa combinação é considerada uma operação derivada da álgebra relacional, denominada junção. Quando a ligação entre duas tabelas é feita sobre a igualdade de atributos com o mesmo, a junção é dita uma junção natural. O parágrafo seguinte apresenta uma definição informal da junção natural. O resultado da junção natural R >< S é igual ao resultado do produto de R por S seguido de uma seleção S, cuja expressão lógica é θ. O critério de seleção expresso por θ determina que cada par de atributos comuns (homônimos) de R e S sejam i- guais. No exemplo anterior, os atributos codcurso, nas tabelas ALUNO e CURSO, são homônimos, o que caracteriza uma junção natural entre as duas tabelas. Ou seja e pode-se estabelecer a equivalência θ aluno.codcurso = curso.codcurso ALUNO >< CURSO S aluno.codcurso = curso.codcurso [ ALUNO CURSO] Se houvesse mais de um par de atributos comuns, a expressão lógica seria composta pela conjunção (and) das igualdades de todos os pares. Para as tabelas INSCRIÇÃO e DISCIPLINA, que têm o atributo matrícula em comum, valeria a equivalência DISCIPLINA >< INSCRIÇÃO S disciplina.coddisciplina = inscrição.coddisciplina [DISCIPLINA INSCRIÇÃO] EXPRESSÕES COM MÚLTIPLAS JUNÇÕES A junção de várias tabelas é uma prática comum na extração de dados. O exemplo a seguir utiliza colunas de todas as tabelas de nosso banco exemplo. A expressão P aluno.matrícula,aluno.,curso,disciplina,professor.,nota [ CURSO >< [ ALUNO >< [ INSCRIÇÃO >< [ DISCIPLINA >< PROFESSOR ] ] ] ] tem por resultado matrícula Aluno. curso disciplina Professor. nota 1007 Carlos Maradona Direito Direito Civil Olivia Straw 7,00

6 18 Um pouco de álgebra relacional 1010 Maria Lucia Silva Jornalismo Português Carlos Azambuja 5, Ricardo Biondi Direito Português Carlos Azambuja 8, Barbara Carlito 1001 Ricardo Biondi 1007 Carlos Maradona 1002 Maria Rita Colatti 1005 Barbara Carlito 1010 Maria Lucia Silva Jornalismo Direito Direito Informática Jornalismo Jornalismo Estatística Dir. Constitucional Dir. Constitucional Compiladores Sociologia Sociologia Pedro Amarante 4,20 Zenubio Siqueira Zenubio Siqueira Lenira Rocha 9,50 Silvia Ferreira 3,00 Silvia Ferreira 10,00 A OPERAÇÃO UNIÃO O resultado da operação de união, representada pelo símbolo entre dois operandos contém todos os registros de seus operandos. Como a álgebra relacional trabalha com a noção de conjuntos, não há registros duplicados no resultado da união. Se no primeiro operando existe um registro idêntico a um ou mais registros do segundo operando, então esse registro aparece no resultado somente uma vez. Note que os operandos de uma operação de união devem ser compatíveis, tendo o mesmo número de colunas com domínios compatíveis nas colunas correspondentes. Como exemplo, vamos construir uma lista com os s de todos alunos e professores do banco de dados exemplo. Para tanto, poderíamos unir as tabelas ALUNO e PROFESSOR e depois projetar o resultado sobre a coluna. Porém, as tabelas ALUNO e PROFESSOR não podem ser objeto da operação de união diretamente, uma vez que suas colunas não são compatíveis entre si. Assim, é preciso obter os s dos alunos, depois obter os s dos professores e por fim fazer a união dos dois conjuntos. As listas dos s dos alunos e dos professores são facilmente obtidas pelas expressões produzindo as listas P ALUNO e P PROFESSOR Ricardo Biondi Maria Rita Colatti Oscarito Vianna Barbara Carlito Carlos Maradona Sacadura Miranda Maria Lucia Silva Olivia Straw Carlos Azambuja Marina Azambuja Pedro Amarante Zenubio Siqueira Lenira Rocha Silvia Ferreira A lista de alunos e professores é obtida pela união das listas acima. Podemos escrever a expressão que produz [P ALUNO] [P PROFESSOR] Barbara Carlito Carlos Azambuja Carlos Maradona Lenira Rocha Maria Lucia Silva Maria Rita Colatti Marina Azambuja

7 Operações da Álgebra Relacional 19 Olivia Straw Oscarito Vianna Pedro Amarante Ricardo Biondi Sacadura Miranda Silvia Ferreira Zenubio Siqueira A OPERAÇÃO DE DIFERENÇA O resultado da operação de diferença entre duas tabelas R e S é o conjunto de registros que estão em R mas não estão em S. R S R S Para ilustrar melhor a aplicação da operação de diferença, vamos escrever uma expressão que produz os s dos alunos que não estão inscritos em disciplina alguma. No nosso banco de dados, todo aluno que está inscrito em alguma disciplina aparece na tabela INSCRIÇÃO. Para obter os alunos que não têm inscrições basta fazer a diferença entre o conjunto completo de alunos e o conjunto de alunos que têm alguma inscrição. Ou seja, se retirarmos do conjunto completo de alunos aqueles que têm alguma inscrição, o resultado será o conjunto de alunos que não têm inscrição alguma. Exatamente a operação de diferença. Esquematicamente, teríamos Todos alunos Alunos que têm alguma inscrição Alunos que não têm inscrições (diferença) O primeiro passo é construir a lista de s dos alunos que têm alguma inscrição. Para isso, é necessário fazer a junção natural das tabelas ALUNO e INSCRIÇÃO, porque o do aluno não consta da tabela INSCRIÇÃO. Essa junção é obtida pela expressão que tem como resultado ALUNO >< INSCRIÇÃO aluno.matricula sexo codcurso nascimento inscricao.matricula coddisciplina nota 1001 Ricardo Biondi M DIR 21/02/ Ricardo Biondi M DIR 21/02/ , Maria Rita Colatti F INF 10/11/ , Barbara Carlito F JOR 29/10/ , Barbara Carlito F JOR 29/10/ , Carlos Maradona M DIR 15/07/ Carlos Maradona M DIR 15/07/ ,00

8 20 Um pouco de álgebra relacional 1010 Maria Lucia Silva F JOR 10/08/ , Maria Lucia Silva F JOR 10/08/ ,00 A junção natural produz os registros correspondentes das duas tabelas ligados através do atributo comum matrícula. Note que este resultado apresenta alguns alunos mais de uma vez, com inscrição em mais de uma disciplina. Essas duplicações, no entanto, são eliminadas na operação de projeção. Isso ocorre porque a álgebra, com já vimos, trabalha com a noção de conjuntos de registros e conjuntos não admitem repetição. A projeção desse resultado na coluna fornece os s dos alunos que têm alguma inscrição. A expressão P [ ALUNO >< INSCRIÇÃO ] tem como resultado a lista dos s dos alunos que têm alguma inscrição Ricardo Biondi Maria Rita Colatti Barbara Carlito Carlos Maradona Maria Lucia Silva Basta agora escrever a expressão final de diferença entre o conjunto com os s de todos os alunos e o conjunto com os s dos alunos que têm alguma inscrição. Um último detalhe é que os operandos de uma diferença devem ser compatíveis entre si e uma das condições de compatibilidade é o número de colunas. Assim, é preciso projetar a tabela ALUNO na coluna antes de efetuar a diferença final. [P ALUNO ] [P [ ALUNO >< INSCRIÇÃO ] ] Pronto! A expressão algébrica acima produz os s dos dois alunos que não têm inscrição alguma. Oscarito Vianna Sacadura Miranda 3.2 CONSULTAS MAIS COMPLEXAS Consultas que envolvem a operação de diferença podem ser complexas e de difícil compreensão. Vejamos, por exemplo, a produção da lista de disciplinas que são cursadas por todos alunos do curso de Jornalismo. Primeiramente, vamos construir a lista de alunos do curso JOR juntamente com as disciplinas nas quais estão inscritos, pela expressão P inscrição.matricula, coddisciplina [ S codcurso = JOR [ ALUNO >< INSCRIÇÃO ] ] Note que foi preciso incluir a tabela ALUNO na expressão porque é necessário descobrir se um a- luno é do curso de Jornalismo ou não, e esta informação está na coluna codcurso, da referida tabela.

9 Consultas mais complexas 21 matrícula coddisciplina Agora é preciso descobrir quais são as disciplinas nas quais todos os alunos da lista estão inscritos. Vamos imaginar que todos os alunos de Jornalismo cursam todas as disciplinas existentes. Se, deste conjunto de possibilidades, retirássemos as ocorrências de inscrições efetivas, nós teríamos a lista de todas as inscrições que poderiam ocorrer mas não ocorrem. Ora, se uma determinada disciplina não aparece na lista de inscrições que não ocorreram é porque ela é cursada por todos os alunos. Ninguém deixou de estar inscrito nela! Vamos expressar isso na álgebra relacional. O conjunto de todas as inscrições possíveis para os alunos de Jornalismo é o produto da lista desses alunos pela lista completa de disciplinas, cuja expressão pode ser escrita como [ P matricula [ S codcurso = JOR ALUNO ] ] [ P disciplina DISCIPLINA ] Pode-se observar que o resultado dessa expressão contém todas as combinações possíveis entre alunos de Jornalismo e disciplinas. As matrículas dos dois alunos do curso de Jornalismo, 1005 e 1010, aparecem combinadas com todas as disciplinas existentes na tabela DISCIPLINA. matrícula disciplina 1005 Dir. Constitucional 1005 Direito Civil 1005 Estatística 1005 Compiladores 1005 Bancos de Dados 1005 Sociologia 1005 Português 1010 Dir. Constitucional 1010 Direito Civil 1010 Português 1010 Compiladores 1010 Bancos de Dados 1010 Sociologia 1010 Português Sendo este último resultado a lista de todas as possibilidades de inscrição, se subtrairmos dele a lista de inscrição que realmente aconteceram, teremos a lista de inscrições que eram possíveis mas não ocorreram. Assim, tomando-se a expressão anterior, das disciplinas cursadas pelos a- lunos de Jornalismo, e subtraindo-a da lista de todas as possibilidades, pela expressão { [ P matricula [ S codcurso = JOR ALUNO ] ] [ P disciplina DISCIPLINA ] } {P inscrição.matricula,disciplina [[ S codcurso = JOR ALUNO ] >< INSCRIÇÃO ] >< DISCIPLINA ] } o resultado obtido contém a lista de inscrições que não ocorreram, como mostrado esquematicamente a seguir.

10 22 Um pouco de álgebra relacional Inscrições de fato realizadas pelos alunos de Jornalismo P inscrição.matrícula,disciplina [[ S codcurso = JOR ALUNO ] >< INSCRIÇÃO ] >< DISCIPLINA ] matrícula disciplina 1005 Dir. Constitucional 1005 Direito Civil 1005 Estatística 1005 Compiladores 1005 Bancos de Dados 1005 Sociologia 1005 Português 1010 Dir. Constitucional 1010 Direito Civil 1010 Estatística 1010 Compiladores 1010 Bancos de Dados 1010 Sociologia 1010 Português matrícula disciplina 1005 Sociologia 1005 Estatística 1010 Português 1010 Sociologia Todas as inscrições possíveis para os alunos de Jornalismo [P matrícula [ S codcurso = JOR ALUNO ] ] [ P disciplina DISCIPLINA ] = matrícula disciplina 1005 Dir. Constitucional 1005 Direito Civil 1005 Compiladores 1005 Bancos de Dados 1005 Português 1010 Dir. Constitucional 1010 Direito Civil 1010 Estatística 1010 Compiladores 1010 Bancos de Dados A projeção sobre a coluna Disciplina resulta na lista de disciplinas nas quais nenhum aluno de Jornalismo se inscreveu. São as inscrições possíveis mas não realizadas. Para simplificar, vamos chamar de T a expressão que produz o resultado acima. Se T contém a lista de disciplinas nas quais algum aluno de Jornalismo não se inscreveu, então a diferença de todas as disciplinas menos as dessa lista é o resultado que buscamos, isto é, a lista de disciplinas nas quais todos os alunos de Jornalismo estão inscritos. Os operandos da diferença são { P disciplina DISCIPLINA } { P disciplina T } disciplina Dir. Constitucional Direito Civil Estatística Compiladores Bancos de Dados Sociologia Português disciplina Dir. Constitucional Direito Civil Compiladores Bancos de Dados Português Estatística = disciplina Sociologia O resultado indica que Sociologia é a disciplina na qual todos os alunos do curso de Jornalismo estão inscritos. A expressão final pode ser escrita como { P disciplina DISCIPLINA } { P disciplina [ [ P matrícula [ S codcurso = JOR ALUNO ] ] [ P disciplina DISCIPLINA ] ] [ P inscrição.matrícula,disciplina [ [ [ S codcurso = JOR ALUNO ] >< INSCRIÇÃO ] >< DISCIPLINA ] ] }

11 Buscando mais informações 23 Observando a expressão algébrica acima, não é difícil compreender por que as linguagens baseadas na lógica de predicados ganharam terreno rapidamente. É trabalhoso conceber e representar expressões mais complexas. Esta deficiência foi decisiva no processo de popularização de linguagens como o SQL, ainda que, como veremos mais adiante, mesmo em SQL as consultas que requerem a operação de diferença não são problemas triviais. A ÁLGEBRA RELACIONAL COMO UMA LINGUAGEM DE CONSULTAS As operações mostradas neste capítulo têm apenas o intuito de familiarizar o leitor com os mecanismos fundamentais para a construção de consultas. Entendendo melhor essas idéias é possível escrever melhores expressões SQL. É claro que essas operações, como foram aqui apresentadas, estão ainda longe de configurar uma linguagem de consultas para uso mais amplo. Faltam recursos como a reação de colunas, ordenação das linhas do resultado, aplicação de funções de agregação (totalizadoras) e vários outros aspectos que permitiriam seu real emprego em ambientes não didático/acadêmicos. Mesmo assim, o aspecto pedagógico da álgebra torna interessante esse estudo, ainda que superficial. BUSCANDO MAIS INFORMAÇÕES Para o leitor interessado em aprofundar seu conhecimento nos mecanismos da álgebra relacional, há um vasto material bibliográfico a ser consultado. A década de 70 foi fortemente marcada pela pesquisa e desenvolvimento das principais idéias que hoje em dia permeiam as diversas implementações comerciais do modelo relacional. Essa intensa atividade acadêmica então verificada produziu frutos concretos como se pode notar na análise dos algoritmos utilizados nos produtos atualmente disponíveis no mercado. Alguns desses trabalhos, entretanto, merecem destaque, seja por sua originalidade ou pela sua capacidade de concisão e didatismo. Assim, podemos indicar as seguintes referências, apresentadas juntamente com comentários sobre suas principais contribuições. ULLMAN, J. Principles of Database Systems, Computer Science Press, O autor trata com rigor vários aspectos da teoria do sistema relacional, especialmente no que se refere aos aspectos da formulação, interpretação e processamento de consultas. Excelente material para o leitor que deseja compreender a fundo os mecanismos e possibilidades teóricas do processamento de consultas sob o modelo relacional. O exercício 3.6 foi extraído daqui. KLUG, A. Equivalence of Relational Algebra and Relational Calculus Query Languages, Journal of the Association for Computing Machinery 29, 3(Julho 1982), O autor mostra a relação entre a Álgebra Relacional e o Cálculo Relacional, provando sua equivalência ainda que incluindo-se o cálculo de funções de agregação nas operações algébricas. Um texto clássico. CODD, E. F. A Relational Model of Data for Large Shared Data Banks, Communications of the Association for Computing Machinery 13, 6(Junho 1970), Onde tudo começou.

12 24 Um pouco de álgebra relacional EXERCÍCIOS 3.1 Escreva uma expressão da álgebra relacional que produza a lista com os s dos alunos da disciplina Direito Civil, como mostrada abaixo. Carlos Maradona 3.2 Forneça o resultado final da expressão P professor. [ PROFESSOR >< [ DISCIPLINA >< [INSCRICAO >< [ALUNO >< (S curso= Direito CURSO) ] ] ] ] 3.3 Escreva uma expressão da álgebra relacional que produza a lista de s dos professores que aprovaram todos seus alunos. Considere apenas professores que têm algum aluno em alguma disciplina e que um aluno está aprovado se sua nota for maior ou igual a 5, Uma operação derivada bastante útil é a operação de interseção de duas tabelas, que produz os registros presentes em ambas. Escreva a expressão da operação de interseção de duas tabelas R S a partir das operações primitivas da álgebra relacional. R A B S A B R S C D Outra operação derivada freqüentemente mencionada é a operação de divisão. A divisão de R por S, representada por R S, é o conjunto de registros t tal que, para cada registro s de S, o registro formado pela concatenação de t e s pertence a R. Intuitivamente, a divisão é o contrário do produto, pois retorna os registros t que aparecem combinados com todos os registros S na tabela R. Pode haver registros t que aparecem em R combinados com alguns registros de S, mas não todos; esses registros não fazem parte do resultado. Vejamos um exemplo, para a divisão R a,b S R A B C D S A B R a,b S C D Note que é preciso especificar as colunas de R que contêm os registros de S. a. escreva a expressão da divisão a partir das operações primitivas; b. no exemplo que produz a lista de disciplinas que são cursadas por todos alunos do curso de Jornalismo é possível utilizar a operação de divisão? Se possível, como? 3.6 Mostre que nenhuma das operações primitivas da álgebra relacional pode ser expressa a partir das demais.

Um toque de álgebra relacional: UNION e outras operações

Um toque de álgebra relacional: UNION e outras operações Capítulo 10 Um toque de álgebra relacional: UNION e outras operações Embora o SQL sejasicamente uma linguagem oriunda da lógica de predicados, a operação de união é realizada explicitamente pelo operador

Leia mais

Combinando tabelas: produto seleção projeção

Combinando tabelas: produto seleção projeção Capítulo 5 Combinando tabelas: produto seleção projeção Este capítulo trata de consultas que envolvem mais de uma tabela ou fonte de registros A combinação de tabelas é genericamente denominada junção

Leia mais

matricula nome nota_media 1007 Carlos Maradona 7, Maria Lucia Silva 7, Maria Rita Colatti 9, Ricardo Biondi 8,00

matricula nome nota_media 1007 Carlos Maradona 7, Maria Lucia Silva 7, Maria Rita Colatti 9, Ricardo Biondi 8,00 Capítulo 9 Subconsultas Subconsultas em SQL permitem aumentar consideravelmente o poder de expressão da linguagem e seu alcance, pois tornam possível que uma consulta faça referência ao resultado de outras

Leia mais

Consultas SQL simples: selecionando e projetando

Consultas SQL simples: selecionando e projetando Capítulo 4 Consultas SQL simples: selecionando e projetando Uma consulta SQL é composta por três cláusulas principais 1 : select from where O

Leia mais

Views: usando consultas como tabelas virtuais

Views: usando consultas como tabelas virtuais Capítulo 13 Views: usando consultas como tabelas virtuais Views 1 são consultas SQL que, em situações diversas, podem ser utilizadas no papel de tabelas relacionais. Entretanto, diferentemente das tabelas,

Leia mais

Álgebra Relacional. Linguagem de consultas procedural Conjunto de operações que usam uma ou duas relações como entrada e geram uma relação de saída

Álgebra Relacional. Linguagem de consultas procedural Conjunto de operações que usam uma ou duas relações como entrada e geram uma relação de saída Algebra Relacional Adaptado de Karine Reis Ferreira karine@dpi.inpe.br Gilberto Câmara gilberto@dpi.inpe.br Gilberto Ribeiro de Queiroz gribeiro@dpi.inpe.br Álgebra Relacional Linguagem de consultas procedural

Leia mais

Universidade Veiga de Almeida

Universidade Veiga de Almeida Banco de Dados II Universidade Veiga de Almeida Banco de Dados II Prof. Luiz Antônio Vivacqua C. Meyer (luiz.vcm@gmail.com) Linguagens de Consulta Linguagens nas quais os usuários fazem requisições de

Leia mais

António Rocha Nuno Melo e Castro

António Rocha Nuno Melo e Castro António Rocha Nuno Melo e Castro Definição: colecção de operadores que tomam relações como seus operandos e retornam relações como resultados Cada operador da álgebra aceita como argumentos instâncias

Leia mais

Aula 8 BD1 Álgebra Relacional. Profa. Elaine Faria UFU

Aula 8 BD1 Álgebra Relacional. Profa. Elaine Faria UFU Aula 8 BD1 Álgebra Relacional Profa. Elaine Faria UFU - 2018 Introdução Linguagens de consulta formais associadas ao modelo relacional Álgebra Usa uma coleção de operadores e cada consulta descreve um

Leia mais

ÁLGEBRA E CÁLCULO RELACIONAL

ÁLGEBRA E CÁLCULO RELACIONAL UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO ERINALDO SANCHES NASCIMENTO ÁLGEBRA E CÁLCULO RELACIONAL MARINGÁ 2014 SUMÁRIO SUMÁRIO...1 1 INTRODUÇÃO...2 1.1

Leia mais

4. Projecto de Bases de Dados

4. Projecto de Bases de Dados SI MIEIG 7-8 1 4. Projecto de Bases de Dados 4.1 Introdução aos SGBD - Sistemas de Gestão de Bases de Dados 4.2 Sistemas Relacionais e Linguagem SQL 4.3 Normalização Funcional de Dados para Concepção de

Leia mais

Banco de Dados Prof. Célio R. Castelano Página 1 de 9. Álgebra Relacional

Banco de Dados Prof. Célio R. Castelano Página 1 de 9. Álgebra Relacional Banco de Dados Prof. Célio R. Castelano Página 1 de 9 Álgebra Relacional A álgebra relacional é uma linguagem procedural, que possui uma coleção de operações que são utilizadas para manipular relações

Leia mais

O Modelo e a Álgebra Relacional

O Modelo e a Álgebra Relacional O Modelo e a Álgebra Relacional O Modelo Relacional Modelo de dados, que se baseia no princípio em que todos os dados estão guardados em tabelas Baseado em lógica de predicados e na teoria de conjuntos.

Leia mais

5. Expressões aritméticas

5. Expressões aritméticas 5. Expressões aritméticas 5.1. Conceito de Expressão O conceito de expressão em termos computacionais está intimamente ligado ao conceito de expressão (ou fórmula) matemática, onde um conjunto de variáveis

Leia mais

Curso EFA Tecnológico Técnico de Informática e Sistemas. - Álgebra Relacional - João Leitão

Curso EFA Tecnológico Técnico de Informática e Sistemas. - Álgebra Relacional - João Leitão Curso EFA Tecnológico Técnico de Informática e Sistemas - Álgebra Relacional - João Leitão Linguagens relacionais Notações para expressar perguntas: algébrica aplicação de operadores a relações lógica

Leia mais

ANÁLISE E PROJETO DE BANCO DE DADOS

ANÁLISE E PROJETO DE BANCO DE DADOS ANÁLISE E PROJETO DE BANCO DE DADOS ÁLGEBRA E CÁLCULO RELACIONAL FELIPE G. TORRES APRESENTAÇÃO Avaliações AV1 AV2 TRAB1 TRAB2 REFERÊNCIAS GRAVES, M. Projeto de Banco de Dados com XML. São Paulo: Makron

Leia mais

MA14 - Aritmética Unidade 5 Resumo. Máximo Divisor Comum

MA14 - Aritmética Unidade 5 Resumo. Máximo Divisor Comum MA14 - Aritmética Unidade 5 Resumo Máximo Divisor Comum Abramo Hefez PROFMAT - SBM Julho 2013 Aviso Este material é apenas um resumo de parte do conteúdo da disciplina e o seu estudo não garante o domínio

Leia mais

Um modelo por si próprio não pode realizar qualquer unidade de trabalho útil. É apenas uma representação da realidade.

Um modelo por si próprio não pode realizar qualquer unidade de trabalho útil. É apenas uma representação da realidade. 2. Modelo Relacional... 2.1. Estrutura de Dados Relacional... 2.2. Álgebra Relacional Um modelo por si próprio não pode realizar qualquer unidade de trabalho útil. É apenas uma representação da realidade.

Leia mais

CAPÍTULO 4 - OPERADORES E EXPRESSÕES

CAPÍTULO 4 - OPERADORES E EXPRESSÕES CAPÍTULO 4 - OPERADORES E EXPRESSÕES 4.1 - OPERADORES ARITMÉTICOS Os operadores aritméticos nos permitem fazer as operações matemáticas básicas, usadas no cálculo de expressões aritméticas. A notação usada

Leia mais

Banco de Dados I Álgebra Relacional

Banco de Dados I Álgebra Relacional Banco de Dados I Álgebra Relacional Frederico Queiroga fredericoqueiroga@gmail.com https://sites.google.com/site/fredericoqueiroga/ Álgebra Relacional Álgebra Relacional: conjunto de operações que podem

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;

Leia mais

Operações da Álgebra Relacional Operadores Especiais da Álgebra Relacional Renomeação

Operações da Álgebra Relacional Operadores Especiais da Álgebra Relacional Renomeação BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br ROTEIRO Operações

Leia mais

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens 1 Introdução Estudar computação do ponto de vista teórico é sinônimo de caracterizar

Leia mais

EXPRESSÕES ARITMÉTICAS PARTE 1

EXPRESSÕES ARITMÉTICAS PARTE 1 AULA 5 EXPRESSÕES ARITMÉTICAS PARTE 1 5.1 Operadores aritméticos Os operadores aritméticos definem as operações aritméticas que podem ser realizadas sobre os números inteiros e reais. Para os inteiros,

Leia mais

Álgebra Relacional e SQL operações de interesse

Álgebra Relacional e SQL operações de interesse Álgebra Relacional e SQL operações de interesse Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Álgebra Relacional Maneira teórica de se manipular o banco de dados relacional Linguagem de consulta

Leia mais

Já falamos que, na Matemática, tudo se baseia em axiomas. Já estudamos os números inteiros partindo dos seus axiomas.

Já falamos que, na Matemática, tudo se baseia em axiomas. Já estudamos os números inteiros partindo dos seus axiomas. Teoria dos Conjuntos Já falamos que, na Matemática, tudo se baseia em axiomas. Já estudamos os números inteiros partindo dos seus axiomas. Porém, não é nosso objetivo ver uma teoria axiomática dos conjuntos.

Leia mais

Modelo Relacional - Manipulação

Modelo Relacional - Manipulação Modelo Relacional - Manipulação Duas categorias de linguagens formais álgebra relacional e cálculo relacional comerciais (baseadas nas linguagens formais) SQL Linguagens formais - Características orientadas

Leia mais

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas Processamento e Otimização de Consultas Banco de Dados Motivação Consulta pode ter sua resposta computada por uma variedade de métodos (geralmente) Usuário (programador) sugere uma estratégia para achar

Leia mais

Modelo Relacional: Banco de Dados: coleção de relações cada relação tem um nome único.

Modelo Relacional: Banco de Dados: coleção de relações cada relação tem um nome único. Banco de Dados / 1 Bacharelado em Sistemas de Informação BANCOS DE DADOS Aula 13 Álgebra Relacional Introdução Banco de Dados / 2 Recordando... Modelo Relacional: Banco de Dados: coleção de relações cada

Leia mais

Douglas Matheus de Souza Prof. Marcel Hugo, Mestre - Orientador

Douglas Matheus de Souza Prof. Marcel Hugo, Mestre - Orientador Douglas Matheus de Souza Prof. Marcel Hugo, Mestre - Orientador Introdução Objetivos Fundamentação teórica Desenvolvimento da ferramenta Operacionalidade Resultados e discussão Conclusões Versões futuras

Leia mais

conteúdos. bases de dados, SGBD e aplicações. conceitos. modelo relacional (DER) conceitos

conteúdos. bases de dados, SGBD e aplicações. conceitos. modelo relacional (DER) conceitos conceitos 1 conteúdos A necessidade de processamento de DADOS em tempo útil de forma a recolher INFORMAÇÃO relevante, foi sempre uma necessidade sentida pelo Homem. conceitos modelo relacional (DER) 04-01-2012

Leia mais

Álgebra Relacional. Índice. Sistemas de Bases de Dados. Orlando Belo

Álgebra Relacional. Índice. Sistemas de Bases de Dados. Orlando Belo Sistemas de Bases de Dados Edição 2004 Álgebra Relacional Orlando Belo Departamento de Informática Escola de Engenharia Universidade do Minho Índice Introdução A Álgebra Relacional Operadores da Álgebra

Leia mais

UTFPR - Universidade Tecnológica Federal do Paraná. Processamento e otimização de consultas

UTFPR - Universidade Tecnológica Federal do Paraná. Processamento e otimização de consultas UTFPR - Universidade Tecnológica Federal do Paraná Processamento e otimização de consultas Leyza Baldo Dorini 04/Nov/2009 Programação da aula Introdução: processamento e otimização de consultas Etapas:

Leia mais

Operações fundamentais são suficientes para expressar qualquer consulta. Problema: consultas muito longas. Solução: definição de operações adicionais

Operações fundamentais são suficientes para expressar qualquer consulta. Problema: consultas muito longas. Solução: definição de operações adicionais Banco de Dados / 1 Bacharelado em Sistemas de Informação BANCOS DE DADOS Aula 15 Álgebra Relacional Operações Adicionais Banco de Dados / 2 Operações Adicionais Operações fundamentais são suficientes para

Leia mais

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br

Leia mais

Autor(es) HARLEI MIGUEL DE ARRUDA LEITE. Orientador(es) MARINA TERESA PIRES VIEIRA. Apoio Financeiro PIBIC/CNPQ. 1. Introdução

Autor(es) HARLEI MIGUEL DE ARRUDA LEITE. Orientador(es) MARINA TERESA PIRES VIEIRA. Apoio Financeiro PIBIC/CNPQ. 1. Introdução 19 Congresso de Iniciação Científica IMPLEMENTAÇÃO DE GUIAS E ALGORITMOS PARA REGRAS DE ASSOCIAÇÃO MULTIRELACIONAL NA FERRAMENTA DE MINERAÇÃO DE DADOS KIRA Autor(es) HARLEI MIGUEL DE ARRUDA LEITE Orientador(es)

Leia mais

ESTRUTURAS DE REPETIÇÃO - PARTE 1

ESTRUTURAS DE REPETIÇÃO - PARTE 1 AULA 15 ESTRUTURAS DE REPETIÇÃO - PARTE 1 15.1 O comando enquanto-faca- Considere o problema de escrever um algoritmo para ler um número inteiro positivo, n, e escrever todos os números inteiros de 1 a

Leia mais

Pra início de conversa... O que é um algoritmo? Exemplos de algoritmos. Como podemos descrever algoritmos? Como podemos descrever algoritmos?

Pra início de conversa... O que é um algoritmo? Exemplos de algoritmos. Como podemos descrever algoritmos? Como podemos descrever algoritmos? Pra início de conversa... O que é um algoritmo? Como podemos descrever algoritmos? avaliar algoritmos? Introdução à Análise de Algoritmos Prof. Cláudio E. C. Campelo http://claudiocampelo.com Derivado

Leia mais

ALGEBRA RELACIONAL. Álgebra Relacional Conjunto básico de operações para o Modelo Relacional O resultado é uma relação

ALGEBRA RELACIONAL. Álgebra Relacional Conjunto básico de operações para o Modelo Relacional O resultado é uma relação 1/5 Universidade Federal da Bahia Disciplina: Banco de Dados Prof a. Daniela Barreiro Claro ALGEBRA RELACIONAL Duas linguagens formais do Modelo Relacional o Álgebra Relacional e Cálculo Relacional Álgebra

Leia mais

PORTUGUÊS ESTRUTURADO: INTRODUÇÃO INTRODUÇÃO À PROGRAMAÇÃO PROF. ALEXANDRO DOS SANTOS SILVA

PORTUGUÊS ESTRUTURADO: INTRODUÇÃO INTRODUÇÃO À PROGRAMAÇÃO PROF. ALEXANDRO DOS SANTOS SILVA PORTUGUÊS ESTRUTURADO: INTRODUÇÃO INTRODUÇÃO À PROGRAMAÇÃO PROF. ALEXANDRO DOS SANTOS SILVA SUMÁRIO Introdução Conceitos básicos Formato básico Tipos primitivos Variáveis Constantes Operadores Operações

Leia mais

Por meio de uma figura fechada, dentro da qual podem-se escrever seus elementos. Diagrama de Venn-Euler.

Por meio de uma figura fechada, dentro da qual podem-se escrever seus elementos. Diagrama de Venn-Euler. REPRESENTAÇÕES Um conjunto pode ser representado da seguinte maneira: Enumerando seus elementos entre chaves, separados por vírgulas; Exemplos: A = { 1, 0, 1} N = {0, 1, 2, 3, 4,...} Indicando, entre chaves,

Leia mais

BCD29008 Banco de dados

BCD29008 Banco de dados BCD29008 Banco de dados Modelo ER & Modelo Relacional Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd 18 de

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2 Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas Aula Tópico 2 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para o compilador

Leia mais

1 TECNOLOGIA ELEMENTAR CAPÍTULO 3 E-books PCNA. Vol. 1 TECNOLOGIA ELEMENTAR CAPÍTULO 3 APRESENTANDO A LINGUAGEM C. Página 1

1 TECNOLOGIA ELEMENTAR CAPÍTULO 3 E-books PCNA. Vol. 1 TECNOLOGIA ELEMENTAR CAPÍTULO 3 APRESENTANDO A LINGUAGEM C. Página 1 1 TECNOLOGIA ELEMENTAR CAPÍTULO 3 E-books PCNA Vol. 1 TECNOLOGIA ELEMENTAR CAPÍTULO 3 APRESENTANDO A LINGUAGEM C Página 1 2 TECNOLOGIA ELEMENTAR CAPÍTULO 3 SUMÁRIO Apresentação -----------------------------------------------------------

Leia mais

Banco de Dados I Módulo III: Linguagens de Consulta. (Aula 1) Clodis Boscarioli

Banco de Dados I Módulo III: Linguagens de Consulta. (Aula 1) Clodis Boscarioli Banco de Dados I 2007 Módulo III: Linguagens de Consulta (Aula 1) Clodis Boscarioli Conteúdo do Módulo: Linguagens de Consulta Formais Álgebra Relacional; Cálculo Relacional de Tupla; Cálculo Relacional

Leia mais

37 a Olimpíada Brasileira de Matemática Nível Universitário Primeira Fase

37 a Olimpíada Brasileira de Matemática Nível Universitário Primeira Fase 7 a Olimpíada Brasileira de Matemática Nível Universitário Primeira Fase Problema Sejam m e n inteiros positivos, X um conjunto com n elementos e seja 0 k n um inteiro. São escolhidos aleatória e independentemente

Leia mais

Unidade I MATEMÁTICA. Prof. Celso Ribeiro Campos

Unidade I MATEMÁTICA. Prof. Celso Ribeiro Campos Unidade I MATEMÁTICA Prof. Celso Ribeiro Campos Números reais Três noções básicas são consideradas primitivas, isto é, são aceitas sem a necessidade de definição. São elas: a) Conjunto. b) Elemento. c)

Leia mais

CURSO DE ACCESS AULA 2 Criando o Banco de Dados

CURSO DE ACCESS AULA 2 Criando o Banco de Dados ROTEIRO PARA CRIAR UM Banco de Dados Selecione a opção Banco de Dados vazio do Access, para criar um novo banco. Página 1 de 9 Selecione Tabela e clique em modo de estrutura. Vamos criar as seguintes tabelas

Leia mais

Aula 2, 2014/2 Sintaxe da Lógica dos Conectivos

Aula 2, 2014/2 Sintaxe da Lógica dos Conectivos Notas de aula de Lógica para Ciência da Computação Aula 2, 2014/2 Sintaxe da Lógica dos Conectivos Renata de Freitas e Petrucio Viana Departamento de Análise, IME UFF 27 de agosto de 2014 Sumário 1 Sintaxe

Leia mais

24/09/2014. Prof. André Backes

24/09/2014. Prof. André Backes Prof. André Backes 1 Por que usar listas? As variáveis declaradas até agora são capazes de armazenar um único valor por vez. Sempre que tentamos armazenar um novo valor dentro de uma variável, o valor

Leia mais

Prof. Jorge Cavalcanti

Prof. Jorge Cavalcanti Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Introdução a Algoritmos Parte 02 (baseado no material do prof. Marcelo Linder) Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br

Leia mais

Prof. Leandro Tonietto Introdução a computação e suas aplicações Curso de Segurança da Informação UNISINOS jun-09

Prof. Leandro Tonietto Introdução a computação e suas aplicações Curso de Segurança da Informação UNISINOS jun-09 Lógica Binária Prof. Leandro Tonietto Introdução a computação e suas aplicações Curso de Segurança da Informação UNISINOS jun-9 Introdução Lógica binária é a base do sistema computacional. Qualquer operação

Leia mais

TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE

TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE CARACTERISTICA DE UMA TABELA: NÃO EXISTEM DUAS LINHAS IGUAIS A ORDEM DAS LINHAS É INSIGNIFICANTE A ORDEM DAS COLUNAS É INSIGNIFICANTE

Leia mais

23/05/12. Agenda. Introdução. Introdução. Introdução. Álgebra. Relacional. Cálculo. Relacional

23/05/12. Agenda. Introdução. Introdução. Introdução. Álgebra. Relacional. Cálculo. Relacional Processamento de Consultas em BD Distribuídos Decomposição de consultas e Localização de dados IN1128/IF694 Bancos de Dados Distribuídos e Móveis Ana Carolina Salgado acs@cin.ufpe.br Bernadette Farias

Leia mais

Algoritmos. Laura Goulart. 11 de Dezembro de 2018 UESB. Laura Goulart (UESB) Algoritmos 11 de Dezembro de / 12

Algoritmos. Laura Goulart. 11 de Dezembro de 2018 UESB. Laura Goulart (UESB) Algoritmos 11 de Dezembro de / 12 Algoritmos Laura Goulart UESB 11 de Dezembro de 2018 Laura Goulart (UESB) Algoritmos 11 de Dezembro de 2018 1 / 12 O que é um algoritmo? Um algoritmo é uma sequência de passos(instruções) para resolver

Leia mais

Rápida revisão do Modelo Relacional

Rápida revisão do Modelo Relacional Rápida revisão do Modelo Relacional Conceito de relação Tuplas e atributos Rápida revisão do Modelo Relacional Regras de integridade Entidade: Deve existir uma chave primária com valor único e não-nulo.

Leia mais

Conceitos básicos de algoritmos

Conceitos básicos de algoritmos Conceitos básicos de algoritmos Operadores Aritméticos Unários: +, - Exemplos: +1-5.9... var a: inteiro... a

Leia mais

Puca Huachi Vaz Penna

Puca Huachi Vaz Penna Aula 3 C++: variáveis e expressões aritméticas 2017/1 BCC201 Introdução à Computação Turmas 61, 62, 63, 64, 65 e 66, 32 e 33 Puca Huachi Vaz Penna Departamento de Computação Universidade Federal de Ouro

Leia mais

Variável. Expressões. Atribuição. Tipos básicos Declaração. Aritméticas Lógicas. Professor Leandro Augusto Frata Fernandes

Variável. Expressões. Atribuição. Tipos básicos Declaração. Aritméticas Lógicas. Professor Leandro Augusto Frata Fernandes Programação de Computadores III Aula 3 Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2011.1/tcc-03.063 Roteiro da Aula

Leia mais

IEC Banco de Dados I Aula 06 Álgebra Relacional

IEC Banco de Dados I Aula 06 Álgebra Relacional IEC Banco de Dados I Aula 06 Álgebra Relacional Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho E- mail: andre@icomp.ufam.edu.br Ambiente virtual: hlp://bdufam.wordpress.com Sumário

Leia mais

Introdução. Introdução. Álgebra Relacional. Linguagens formais de Consulta Modelo Relacional. O que foi visto até agora...

Introdução. Introdução. Álgebra Relacional. Linguagens formais de Consulta Modelo Relacional. O que foi visto até agora... Ciência da Computação GBC043 Sistemas de Banco de Dados Linguagens formais de Consulta Modelo Relacional Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br Bloco B - sala 1B137 1 semestre de 2019

Leia mais

Lista de Exercícios Glossário Básico

Lista de Exercícios Glossário Básico Nota: Os exercícios desta aula são referentes ao seguinte vídeo Matemática Zero 2.0 - Aula 8 - Notação Matemática e Glossário Básico - (parte 2 de 2) Endereço: https://www.youtube.com/watch?v=tnbv2ewa3q8

Leia mais

Material Teórico - Inequações Produto e Quociente de Primeiro Grau. Sistemas de inequações. Primeiro Ano do Ensino Médio

Material Teórico - Inequações Produto e Quociente de Primeiro Grau. Sistemas de inequações. Primeiro Ano do Ensino Médio Material Teórico - Inequações Produto e Quociente de Primeiro Grau Sistemas de inequações Primeiro Ano do Ensino Médio Autor: Prof. Fabrício Siqueira Benevides Revisor: Prof. Antonio Caminha M. Neto 5

Leia mais

Esta disciplina auxilia em todas as outras áreas da Matemática. Isso porque veremos noções de lógica e de demonstrações matemáticas.

Esta disciplina auxilia em todas as outras áreas da Matemática. Isso porque veremos noções de lógica e de demonstrações matemáticas. Noções Básicas Esta disciplina auxilia em todas as outras áreas da Matemática. Isso porque veremos noções de lógica e de demonstrações matemáticas. Numa visão bem geral, veremos: Quais são as principais

Leia mais

Álgebra e cálculo relacional. Andre Noel

Álgebra e cálculo relacional. Andre Noel Álgebra e cálculo relacional Andre Noel Introdução Introdução A SQL é baseada na álgebra e no cálculo relacional Introdução A SQL é baseada na álgebra e no cálculo relacional O modelo de dados precisa

Leia mais

Arquitetura de Computadores Sistema de Numeração. Apresentado por Prof. Fred Sauer Mat. Elaborado por Prof. Ricardo Quintão

Arquitetura de Computadores Sistema de Numeração. Apresentado por Prof. Fred Sauer Mat. Elaborado por Prof. Ricardo Quintão Arquitetura de Computadores Sistema de Numeração Apresentado por Prof. Fred Sauer Mat. Elaborado por Prof. Ricardo Quintão A base de representação numérica de um número está relacionada com a quantidade

Leia mais

Bases de Dados BDDAD. Linguagem SQL. Comando SELECT Divisão Algébrica. Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/9

Bases de Dados BDDAD. Linguagem SQL. Comando SELECT Divisão Algébrica. Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/9 BDDAD Bases de Dados Linguagem SQL Comando SELECT Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/9 Operador Sumário Introdução Expressão Equivalente em SQL Soluções Tradução Directa de Expressão Algébrica Quantificação

Leia mais

PORTAS E OPERAÇÕES LÓGICAS

PORTAS E OPERAÇÕES LÓGICAS 1.Portas Lógicas 1.1 - PORTAS E OPERAÇÕES LÓGICAS Uma porta logica ( gate ) é um circuito eletrônico, portanto uma peça de hardware, que se constitui no elemento básico e mais elementar de um sistema de

Leia mais

PC Polícia Civil do Estado de São Paulo PAPILOSCOPISTA

PC Polícia Civil do Estado de São Paulo PAPILOSCOPISTA PC Polícia Civil do Estado de São Paulo PAPILOSCOPISTA Concurso Público 2016 Conteúdo Teoria dos conjuntos. Razão e proporção. Grandezas proporcionais. Porcentagem. Regras de três simples. Conjuntos numéricos

Leia mais

PORTAS NOR e NAND OR - AND - NOT. Considerando as entradas A e B, teremos na saída a complementação ou negação das mesmas.

PORTAS NOR e NAND OR - AND - NOT. Considerando as entradas A e B, teremos na saída a complementação ou negação das mesmas. PORTAS NOR e NAND As portas NOR e NAND são obtidas a partir da complementação das funções OR e AND. Podemos então dizer que o operador booleano lógico NOR é a negação do operador booleano OR enquanto que

Leia mais

SQL - Perguntas. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012

SQL - Perguntas. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012 SQL - Perguntas André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) SQL - Perguntas February 24, 2012 1 / 46 Sumário 1 Introdução 2 Seleccionar e Filtrar

Leia mais

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi Algoritmos Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi Conceitos Linhas de Código de um Algoritmo ou Programa escrita do programa linha a linha, ou seja, a sintaxe do programa, podendo-se

Leia mais

Apostila de Revisão dos Fundamentos Básicos da Álgebra. (versão 1: 12/03/2012)

Apostila de Revisão dos Fundamentos Básicos da Álgebra. (versão 1: 12/03/2012) Apostila de Revisão dos Fundamentos Básicos da Álgebra (versão 1: 12/03/2012) 1. Operações com frações 1.1. Fração A representação de uma fração é dada dois valores separados por uma barra horizontal.

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 2 Elementos fundamentais de Algoritmos, Conceitos de Variáveis Profa. Marina Gomes marinagomes@unipampa.edu.br 21/03/2017 Engenharia de Computação - Unipampa 1 Aula de Hoje

Leia mais

Computadores III: Lógica digital e Álgebra booleana

Computadores III: Lógica digital e Álgebra booleana Computadores III: Lógica digital e Álgebra booleana A3 Texto 1 http://www.bpiropo.com.br/fpc20050704.htm Sítio Fórum PCs /Colunas Coluna: B. Piropo Publicada em 04/07/2005 Autor: B.Piropo Lógica digital

Leia mais

Resumo. Palavras-chave: implementações aritméticas; inverso modular; sistema de restos.

Resumo. Palavras-chave: implementações aritméticas; inverso modular; sistema de restos. 2017, NÚMERO 1, VOLUME 5 ISSN 2319-023X Universidade Federal de Sergipe - UFS evilson@ufs.br Resumo Neste trabalho apresentamos uma implementação para execução manual do algoritmo estendido das divisões

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Linguagem de programação C 3.1. Conceitos

Leia mais

Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO

Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO Dados em Algoritmos Quando escrevemos nossos programas, trabalhamos com: Dados que nós fornecemos ao programa Dados

Leia mais

Conceitos Básicos de Algoritmos

Conceitos Básicos de Algoritmos Conceitos Básicos de Algoritmos 35 TIPOS PRIMITIVOS Palavra-reservada: inteiro - define variáveis numéricas do tipo inteiro, ou seja, sem casas decimais Palavra-reservada: real - define variáveis numéricas

Leia mais

Descrevendo Circuitos Lógicos (Continuação) CPCX UFMS Prof. Renato F. dos Santos

Descrevendo Circuitos Lógicos (Continuação) CPCX UFMS Prof. Renato F. dos Santos Descrevendo Circuitos Lógicos (Continuação) CPCX UFMS Prof. Renato F. dos Santos 3.6 Descrevendo circuitos lógicos algebricamente Qualquer circuito lógico pode ser descrito usando as três operações booleanas

Leia mais

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/59 1 - LÓGICA E MÉTODOS DE PROVA 1.1) Lógica Proposicional

Leia mais

A única diferença entre o difícil e o impossível é que o último demora um pouco mais de tempo para ser alcançado..

A única diferença entre o difícil e o impossível é que o último demora um pouco mais de tempo para ser alcançado.. Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados - Introdução aos Algoritmos A única diferença entre o difícil e o impossível é que o último demora um pouco mais de

Leia mais

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ.

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ. Linguagens O conceito de linguagem engloba uma variedade de categorias distintas de linguagens: linguagens naturais, linguagens de programação, linguagens matemáticas, etc. Uma definição geral de linguagem

Leia mais

Os números inteiros. Álgebra (Curso de CC) Ano lectivo 2005/ / 51

Os números inteiros. Álgebra (Curso de CC) Ano lectivo 2005/ / 51 Os números inteiros Abordaremos algumas propriedades dos números inteiros, sendo de destacar o Algoritmo da Divisão e o Teorema Fundamental da Aritmética. Falaremos de algumas aplicações como sejam a detecção

Leia mais

Exemplos de aplicação de álgebra booleana

Exemplos de aplicação de álgebra booleana Exemplos de aplicação de álgebra booleana Como já vimos, o conjunto P(S) juntamente com as operações de união, intersecção e complemento de conjuntos forma uma álgebra booleana. Cálculo proposicional é

Leia mais

Algoritmos e Programação I

Algoritmos e Programação I Algoritmos e Programação I Operadores Relacionais, Lógicos e Aritméticos Prof. Fernando Maia da Mota mota.fernandomaia@gmail.com CPCX/UFMS Fernando Maia da Mota 1 Expressões Uma expressão relacional, ou

Leia mais

Teoria da Computação

Teoria da Computação Introdução Março - 2009 1 Noções e Terminologia Matemática Conjuntos Um conjunto é um grupo de objetos, chamados elementos ou membros, representado como uma unidade. O conjunto { 3, 41, 57} possui os elementos

Leia mais

Variáveis e Memória. Revisão. Conceitos. Operações sobre a memória

Variáveis e Memória. Revisão. Conceitos. Operações sobre a memória Variáveis e Memória Revisão Estudamos, na Introdução, que os programas de computador implementam algoritmos, os quais manipulam um conjunto de dados para produzir um resultado. O algoritmo é um conjunto

Leia mais

Processamento de Dados aplicado à Geociências. AULA 3: Algoritmos computacionais Representação de Algoritmos Sintaxe Tipos de dados Expressões

Processamento de Dados aplicado à Geociências. AULA 3: Algoritmos computacionais Representação de Algoritmos Sintaxe Tipos de dados Expressões Processamento de Dados aplicado à Geociências 1 AULA 3: Algoritmos computacionais Representação de Algoritmos Sintaxe Tipos de dados Expressões UNIVERSIDADE FEDERAL DE PELOTAS CENTRO DE DESENVOLVIMENTO

Leia mais

Funções e Portas Lógicas

Funções e Portas Lógicas Funções e Portas Lógicas 2. Funções Lógicas 2 2.1 Introdução 2 2.2 Funções Lógicas Básicas 3 2.2.1 Função Lógica NÃO (NOT) 3 2.2.2 Função Lógica E (AND) 3 2.2.3 Função Lógica OU (OR) 5 2.2.4 Função Lógica

Leia mais

Representação decimal dos números racionais

Representação decimal dos números racionais Representação decimal dos números racionais Alexandre Kirilov Elen Messias Linck 21 de março de 2018 1 Introdução Um número é racional se puder ser escrito na forma a/b, com a e b inteiros e b 0; esta

Leia mais

Introdução à Computação Strings

Introdução à Computação Strings Conteúdo de hoje... Your Logo Here Introdução à Computação Strings Prof. Lucas Amorim lucas@ic.ufal.br Strings Tipos Compostos Operador de indexação Métodos da classe String Comprimento e fatiamento Varredura

Leia mais

Álgebra Linear Semana 05

Álgebra Linear Semana 05 Álgebra Linear Semana 5 Diego Marcon 4 de Abril de 7 Conteúdo Interpretações de sistemas lineares e de matrizes invertíveis Caracterizações de matrizes invertíveis 4 Espaços vetoriais 5 Subespaços vetoriais

Leia mais

Análise Combinatória com o Interpretador Hall parte 1

Análise Combinatória com o Interpretador Hall parte 1 Análise Combinatória com o Interpretador Hall parte 1 O interpretador Hall disponibiliza as seguintes funções para se trabalhar com os conceitos da análise combinatória. As funções são: Permutacao(n) Fatorial(n)

Leia mais

Métodos para a construção de algoritmo

Métodos para a construção de algoritmo Métodos para a construção de algoritmo Compreender o problema Identificar os dados de entrada e objetos desse cenário-problema Definir o processamento Identificar/definir os dados de saída Construir o

Leia mais

Caro(a) aluno(a), Coordenadoria de Estudos e Normas Pedagógicas CENP Secretaria da Educação do Estado de São Paulo Equipe Técnica de Matemática

Caro(a) aluno(a), Coordenadoria de Estudos e Normas Pedagógicas CENP Secretaria da Educação do Estado de São Paulo Equipe Técnica de Matemática Caro(a) aluno(a), Você saberia representar a soma dos n primeiros números naturais a partir do 1? Neste Caderno você terá a oportunidade de conhecer esse e outros casos que envolvem sequências e resolvê-los

Leia mais

Álgebra Relacional e SQL

Álgebra Relacional e SQL Álgebra Relacional e SQL Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Álgebra Relacional Maneira teórica de se manipular o banco de dados relacional Linguagem de consulta procedural usuários

Leia mais

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador; 1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e

Leia mais

Roteiro de trabalho para o 1o ano

Roteiro de trabalho para o 1o ano Roteiro de trabalho para o 1o ano No volume do 1º ano estão assim organizados os conteúdos e as habilidades a serem desenvolvidos no decorrer do ano. LIÇÃO CONTEÚDO OBJETOS 1. Grandezas e medidas Comparação

Leia mais