Banco de Dados I Profa. Jiani Cardoso 2/2005

Slides:



Advertisements
Apresentações semelhantes
SQL Exercícios de Revisão Profa. Sandra de Amo Programa de Pós-graduação em Ciência da Computação – UFU
Advertisements

Prof. José Fernando Rodrigues Júnior Pacotes Material original: Profa. Elaine Parros Machado de Sousa SCC Bancos de Dados e Suas Aplicações.
Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.
SISTEMA BINÁRIO Hardware de Computadores. SISTEMA BINÁRIO Hardware de Computadores.
PROGRESSÃO ARITMÉTICA P.A.
Transporte em Nanoestruturas. I) Transporte balístico Um material unidimensional (confinado em duas dimensões) transporta carga quando uma voltagem é
PGF5001 – Mecânica Quântica 1 Prof. Emerson Passos.
Prof. Celso Gramática.
FORTRAN 90 Denise Yumi Takamura.
SQL Procedural Junho/2006.
SQL procedural – parte 2.
Elaboração de Consultas 3 de abril de Recuperação de Informação Cd_cliente CLIENTECONTATO Cd_cliente C1 C1 : Listar os clientes que tem contatos.
Estruturas de Dados para projeto de SGBD. Estruturas de dados analisadas Estruturas de nível Esparso Denso Combinadas Arvore B+ Tabela de hash.
Subconsultas em SQL. Subconsulta Estrutura geral SELECT.... FROM.... WHERE [at] OPERADOR ( SELECT... FROM... [WHERE... ]) Declaração SELECT localizada.
Introdução à Consulta 24/3/06. Categorias de comandos DDL : estruturação de objetos de BD Ex. create table, drop index, alter table... DML: manipulação.
SQL-3. Novo contexto e necessidade de : Manipular imagens Outros tipos de dados além de texto e números Recuperação de dados mais complexos Níveis distintos.
Objeto de BD: visão Há 2 tipos de tabelas Tabela base
SISTEMAS DE NUMERAÇÃO Material elaborado pelo Prof. José Luiz Mendes e alterado pela Profa Janine.
Sql-3 ( final ).
Arquiteturas de 4, 3, 2, 1 e 0 endereços.
1. Conceitos de Álgebra Booleana 2. Portas Lógicas e Inversores
1. Equivalência entre portas 2. Derivação de expressões booleanas 3
Criptografia Quântica : Um Estudo
Teste Funcional de Software
Criptoanálise Integral Criptoanálise diferencial: diferença (subtração) entre duas cifragens Criptoanálise integral: efeito cumulativo (soma) entre várias.
Algoritmos com Seleção
SECRETARIA DA EDUCAÇÃO E CULTURA x Fechar SITUAÇÃO DIDÁTICA 12:16:33 DRE - ARAGUAÍNA.
Snap Together Visualization. Introdução - Exploração Visual de Dados Aplicada em conjuntos de dados abstratos. Facilitar a percepção de padrões, tendências,
Geração de Código Otimizações independentes de máquina.
Diretoria de Ensino – Região de Mogi Mirim. Questões de múltipla escolha: elaboradas por professores e analisadas por especialistas; pré-testadas; realiza.
O Fluxo de Testes © Alexandre Vasconcelos
Banco de Dados Geográficos
Prof: Encoder Angular Prof:
CE-262 Ontologia e Web Semântica Prof. José M Parente de Oliveira
Capítulo VI – Variáveis Indexadas
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo XI Encadeamento de Estruturas por Ponteiros.
CE-262 Ontologia e Web Semântica Prof. José M Parente de Oliveira Sala 120 – Prédio da Computação Lógica de Descrições.
Capítulo V Análise Sintática
Função Gráficos. Domínio e imagem no gráfico.
TA 733 A – Operações Unitárias II
Intervalos de confiança Sejam X 1, X 2, …, X n i.i.d. com distribuição F. Um intervalo de confiança de nível 1– para é um par de estatísticas [T 1 (X),
Formação de Administradores de Redes Linux LPI – level 1 SENAC TI Fernando Costa SQL (Structure Query Language)
SMS: um novo gênero digital e emergente nas aulas de língua Giselda Santos Costa CEFET-PI UNED-Floriano Junho-2007.
BlastPhen Aluno: Ricardo Nishikido Pereira
Já definimos o coeficiente angular de uma curva y = f(x) no ponto onde x = x 0. Derivadas Chamamos esse limite, quando ele existia, de derivada de f em.
Teorema do Confronto Se não pudermos obter o limite diretamente, talvez possamos obtê-lo indiretamente com o teorema do confronto. O teorema se refere.
TÉCNICAS DE CODIFICAÇÃO DE SINAIS
Interpolação Introdução Conceito de Interpolação
Aritmética de ponto flutuante Erros
8.EQUAÇÕES DIFERENCIAIS ORDINÁRIAS Parte 5
Sistemas Lineares Parte 2
Resolução de Sistemas Lineares- Parte 1
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias1 Bancos de Dados Mestrado em Engenharia de Computação área de concentração Geomática.
UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias1 Bancos de Dados Mestrado em Engenharia de Computação área de concentração Geomática.
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Introdução à Probabilidade
The Data Warehouse Toolkit
Prof: Graciano Notação Científica.
PRODUTOS E FATORES: UMA QUESTÃO NOTÁVEL Professor: Graciano Pianezzer Beletti.
Frações Professor: Graciano Pianezzer Beletti.
Curso de Programação em C++
Baseado no documento do Prof. Ronaldo Martins da Costa
LINGUAGENS DE PROGRAMAÇÃO
Sistemas de Informação Prof. Me. Everton C. Tetila Modelo de dados relacional Banco de Dados I.
Computação Gráfica Geometria de Transformações
Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura.
1 Seja o resultado de um experimento aleatório. Suponha que uma forma de onda é associada a cada resultado.A coleção de tais formas de ondas formam um.
Transporte Escolar Fluvial
Funções ou procedures Professor Esp. Diego André Sant’Ana
Transcrição da apresentação:

Banco de Dados I Profa. Jiani Cardoso 2/2005 Algebra Relacional Banco de Dados I Profa. Jiani Cardoso 2/2005

Algebra Relacional Álgebra desenvolvida para descrever operações sobre uma base de dados relacional Os objetos sobre os quais a álgebra opera são tabelas Uma operação possui como operandos e como resultado tabelas Porque aprender: Compreendendo álgebra relacional é mais fácil apreender SQL; SQL incorpora cada vez mais conceitos de álgebra; Algoritmos de otimização de consulta definidos sobre álgebra (possível uso internamente no SGBD)

Operadores da Algebra Relacional Operadores originários da teoria de conjuntos: União (union) :  Intersecção (intersect):  Diferença (minus): - Operadores específicos da álgebra relacional: Seleção (select):  Projeção (project):  Junção (join): || Renomeação (rename):  Divisão: ÷

 <critério de seleção> (< tabela>) Operação de Seleção () O resultado é uma tabela que contém as linhas que obedecem a um determinado critério. Sintaxe: onde <tabela> é o nome de uma tabela ou uma expressão de álgebra relacional que resulta em uma tabela e <critério de seleção> é uma expressão booleana que envolve literais e valores de atributos da tabela  <critério de seleção> (< tabela>) O resultado da seleção tem colunas com os mesmos nomes e domínios da tabela de entrada.

BD exemplo

 codPeça = ‘P1’ (Peça) Exemplo de Seleção () O resultado da seleção tem colunas com os mesmos nomes e domínios da tabela de entrada.  codPeça = ‘P1’ (Peça) Resulta em uma tabela que contém todos os dados da peça de código P1.

 (StatusFornec > 5 and CidadeFornec = ‘Rio de Janeiro’ (Fornec)) Exemplo de Seleção () Ex.:Mostre os dados de todas os fornecedores que tenham status maior que 5 e que sejam do Rio de Janeiro.  (StatusFornec > 5 and CidadeFornec = ‘Rio de Janeiro’ (Fornec)) Tabela Resultante

 <lista de colunas> (<tabela>) Operação de Projeção () A Projeção tem como operando uma tabela. O resultado é uma tabela que contém apenas as colunas selecionadas. Sintaxe:  <lista de colunas> (<tabela>) Ex.: Apresente os códigos e os nomes de todas as peças:  CodPeça, NomePeça (Peça) Tabela Resultante

Operação de Projeção () A Projeção pode resultar também na eliminação de linhas, caso a(s) coluna(s) que são parte da chave forem eliminadas. Se uma coluna cujos valores distinguem diferentes linhas é eliminada, surgem linhas duplicadas na tabela, que devem ser eliminadas. Exemplo:  CidadeFornec (Fornec) Resulta em uma tabela que contém todas as cidades em que há fornecedores. Note- se que se houver múltiplos fornecedores na mesma cidade, as diferentes linhas são eliminadas. CidadeFornec São Paulo Rio de Janeiro Tabela Resultante

 CodFornec, QtidEmbarq Aninhamento de Operadores Operadores diferentes podem ser aninhados Ex.: Mostre o código de fornecedor e quantidade embarcada para cada embarque da peça de código P1.  CodFornec, QtidEmbarq  (CodPeça = ‘P1’ (Embarq) ) Tabela Resultante

Operações da teoria de conjuntos A álgebra relacional empresta da teoria de conjuntos quatro operadores: União, Intersecção, Diferença e Produto Cartesiano Sintaxe da União: <tabela> 1  <tabela> 2 Sintaxe da Intersecção: <tabela> 1  <tabela> 2 Sintaxe da Diferença: <tabela> 1 – <tabela> 2 Nos três casos, a operação possui duas tabelas como operando.E as tabelas devem ser compatíveis: possuir o mesmo número de colunas; o mesmo domínio para cada posição da lista de atributos; quando os nomes das colunas forem diferentes, adota- se os nomes das colunas da primeira tabela.

Aluno é compatível com Professor, mas não é com Funcionario. Operação de União Ex: Aluno = { nome, idade, curso} Professor = { nome, idade, depto.} Funcionario = { nome, depto, idade} Dom(nome) = varchar(30) Dom(idade) = int Dom(curso) = varchar(5) Dom(depto) = varchar(5) Aluno é compatível com Professor, mas não é com Funcionario.

Operação de União Apresente uma relação com todos os alunos e também com todos os professores: Professor = {nome, idade, depto.} {Ari, 35, comput. Wilma, 32, eletr. Zeca, 25, comput.} Aluno = {nome, idade, curso} {Zeca, 25, comput. Zico, 21, eletr. Juca, 19, odonto. Tuca, 19, comput.} Aluno  Professor = {nome, idade, curso} { Zeca, 25, comput. Zico, 21, eletr. Juca, 19, odonto. Tuca, 19, comput. Ari, 35, comput. Wilma, 32, eletr. } Tabela Resultante a operação de UNIÃO elimina duplicatas, mas existem SGBDs (ex.:INGRES) que permitem que o usuário determine se tuplas duplicadas devem ser eliminadas do resultado ou não.

Operação de Diferença Apresente uma relação de todos os alunos que não são professores Aluno = {nome, idade, curso} {Zeca, 25, comput. Zico, 21, eletr. Juca, 19, odonto. Tuca, 19, comput.} Professor = {nome, idade, depto.} {Ari, 35, comput. Wilma, 32, eletr. Zeca, 25, comput.} Aluno - Professor = {nome, idade, curso} { Zico, 21, eletr. Juca, 19, odonto. Tuca, 19, comput.} Note-se que a DIFERENÇA não é comutativa ! Professor - Aluno = {nome, idade, depto.} {Ari, 35, comput. Wilma, 32, eletr.}

Operação de Intersecção Apresente uma relação de todos os alunos que são professores Aluno = {nome, idade, curso} {Zeca, 25, comput. Zico, 21, eletr. Juca, 19, odonto. Tuca, 19, comput.} Professor = {nome, idade, depto.} {Ari, 35, comput. Wilma, 32, eletr. Zeca, 25, comput.} Aluno  Professor = {nome, idade, curso} { Zeca, 25, comput} Operadores derivados há operadores de álgebra que são deriváveis de outros. A operação de intersecção é derivável de união e diferença: A  B = A – (A – B)

 CodFornec (  (StatusFornec > 5 (Fornec) ) Operação de Intersecção Ex.: Obtenha os códigos de todos os fornecedores que tem embarques e que tem status maior que 5.  CodFornec (Embarq)   CodFornec (  (StatusFornec > 5 (Fornec) ) CodFornec F2 F4 Tabela Resultante

<tabela1> X <tabela 2> Operação Produto Cartesiano Sintaxe: <tabela1> X <tabela 2> O produto cartesiano possui como operadores duas tabela. O resultado é uma tabela cuja linhas são a combinação das linhas das tabelas <tabela1> e <tabela 2> tomando-se uma linha da <tabela1> e concatenando-a com uma linha da < tabela 2> Total de colunas do produto cartesiano: nº colunas da primeira tabela + nº de colunas da segunda tabela 6 + 3 = 9 colunas Nº de linhas do produto cartesiano: Nº de linhas da primeira tabela x nº de linhas da segunda tabela. 500 x 600 = 30.000 linhas

Operação de Produto Cartesiano Embarq X Peça Normalmente o produto cartesiano é combinado com uma seleção que envolve as diversas tabelas multiplicadas.

Exemplo de Produto Cartesiano Obtenha os nomes de todas as peças para as quais há embarques  NomePeça ( Embarq. CodPeça= Peça. CodPeça (Embarq X Peça) ) Tabela Resultante NomePeça Eixo Rolamento

 <criterio> (<tabela1> X <tabela 2>)) Operação de junção (join) A combinação de uma operação de seleção aplicada sobre uma operação de produto cartesiano é usual em aplicações de BD. É através dela que dados de tabelas relacionadas são associados. Sintaxe: <tabela1> |X| < criterio> < tabela2> A junção tem como operandos duas tabelas. O resultado é equivalente a executar:  <criterio> (<tabela1> X <tabela 2>))

( Embarq.codFornec=Fornec.CodFornec (Embarq x Fornec) ) Exemplo de Junção (join) <tabela1> |X| < criterio> < tabela2> Embarq |x| (Embarq.codFornec=Fornec.CodFornec) Fornec Equivalente: ( Embarq.codFornec=Fornec.CodFornec (Embarq x Fornec) ) Critério da junção: qualquer expressão booleana, inclusive comparações do tipo <, >, <>, ... entre os valores de atributos das tabelas envolvidas na junção. Essa operação de junção é chamada Junção Theta.