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

Documentos relacionados
Universidade da Beira Interior Cursos: Engenharia Informática, Ensino da Informática, Matemática Aplicada e Matemática /Informática

- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.

Definida pelo American National Standard Institute (ANSI) em 1986

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

Universidade da Beira Interior Cursos: Engenharia Informática, Ensino da Informática, Matemática Aplicada e Matemática /Informática

António Rocha Nuno Melo e Castro

Caderno de Introdução Bases Dados

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

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

Uma base de dados está num estado de integridade se contém apenas dados válidos. Os dados armazenados devem estar de acordo com a realidade

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

Álgebra Relacional e SQL operações de interesse

SQL Básica. Andre Noel

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

ÁLGEBRA E CÁLCULO RELACIONAL

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

Unipar Universidade Paranaense Disciplina: Banco de Dados II 3ª Série Profª: Késsia Marchi Profa. Késsia Marchi

SQL (Tópicos) Structured Query Language

{... ou CTRL+O } João Muranho Pág. 1

4. Projecto de Bases de Dados

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho

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

. Um modelo que represente fielmente a realidade. Um modelo capaz de responder às funcionalidades que se pretendem

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

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

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

Sumário SELECT + FROM

Cap. 1 Arquitectura de Sistemas de Bases de Dados

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

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

ANÁLISE E PROJETO DE BANCO DE DADOS

Bases de Dados 2013/2014 Álgebra Relacional. Helena Galhardas 2013 IST. Bibliografia. Raghu Ramakrishnan, Database Management Systems, Cap.

- SQL Linguagem de Manipulação de Dados

!" # Modelos de dados. 1ª geração. 2ª geração. 3ª geração. Modelo Hierárquico Modelo Rede. Modelo Relacional

Banco de Dados I Álgebra Relacional

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

O Modelo e a Álgebra Relacional

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

Base de Dados. Sistemas de Informação. Base de Dados - Índice Introdução Componentes Base de Dados. Introdução. Introdução. Introdução.

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

TECNOLOGIA EM SISTEMAS PARA INTERNET. Banco de dados em aplicativos WEB. Aula 5

Aula 2 BD Introdução. Profa. Elaine Faria UFU

Álgebra e cálculo relacional. Andre Noel

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

Introdução a Bancos de Dados

GBC043 Sistemas de Banco de Dados Álgebra e Cálculo Relacional. Ilmério Reis da Silva UFU/FACOM

BCD29008 Banco de dados

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

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

IMPLEMENTAÇÃO DE BANCO DE DADOS

Licenciatura em Engenharia Multimédia

Banco de Dados. Banco de Dados

Álgebra Relacional. Introdução. Introdução. Álgebra Relacional

Aula 9 BD 1 SQL Parte 1. Profa. Elaine Faria UFU

Álgebra Relacional e Cálculo Relacional

ROTEIRO Introdução Álgebra e Cálculo Relacional Operações da Álgebra Relacional Classificação de Operadores da Álgebra Relacional Mapeamento AR -> SQL

Linguagem de Consulta/Interrogação

Universidade Veiga de Almeida

Bases de Dados. Álgebra Relacional. Selecção (σ) Seleccionar os tuplos que satisfazem uma condição. exemplo: empréstimos da agência de Perryridge

Modelo Entidade-Relacionamento (E-R)

IEC Banco de Dados I Aula 06 Álgebra Relacional

Álgebra Relacional e SQL

Á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

Cadeira de Tecnologias de Informação. Ano lectivo 2009/2010. Conceitos Fundamentais de Gestão de Dados

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL

Bases de Dados. DML Data Manipulation Language Parte 2

STRUCTURED QUERY LANGUAGE (SQL)

Banco de Dados. Professor: Marcelo Machado Cunha IFS Campus Aracaju

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

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

Informática II Cap. 5-2 Bases de Dados - MsAccess

Modelo Relacional - Manipulação

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

LINGUAGEM, TIPOS DE USUÁRIOS DE SGBD E MODELOS DE DADOS

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011

Rápida revisão do Modelo Relacional

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

Introdução ao Banco de Dados. Banco de Dados

Manipulação de Dados com SQL

MODELAGEM DE DADOS -INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

Cadeira de Tecnologias de Informação. Ano lectivo 2009/2010. Conceitos Fundamentais de Gestão de Dados

Comandos de Manipulação

Ficha da Unidade Curricular

Introdução às Bases de Dados

Administração e Optimização de BDs

Introdução Linguagem C. UDESC - Prof. Juliano Maia 1

SQL Structured Query Language

ANÁLISE E PROJETO DE BANCO DE DADOS

A linguagem SQL

INF01145 Fundamentos de Banco de Dados Plano de ensino

Consultas SQL. Andre Noel

O que são Bancos de Dados?

Banco de Dados. Prof. Gleison Batista de Sousa Aula 01

Introdução a B anco de Dados. INE5206 Introdução à Informática INE/CTC/UFSC Prof. Roberto Willrich

Bancos de Dados Notas de Aula Álgebra Relacional Introdução Prof. Dr. Daniel A. Furtado

Transcrição:

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. Para realizar interrogações acerca das propriedades das entidades representadas no modelo precisamos de uma linguagem apropriada. Divisão, União, Diferença e Produto Cartesiano. Existem várias linguagens eficientemente implementadas a amplamente aceites. Do ponto de vista conceptual todas tiveram origem numa linguagem formal denominada Álgebra Relacional. Para aprofundar as linguagens base do modelo relacional ver Capítulo IV - Relacional Álgebra and Relacional Calculus de [Connolly99], [Connolly99] Connolly, Thomas, Carolyn Begg and Anne Strachan, Database Systems, A Pratical Approach to Design, Implementation and Management, Addison-Wesley 2 nd Edition, 1999. Biblioteca da UBI: I-6.2-53 A álgebra relacional consiste numa colecção de operadores sobre relações: Operações usuais sobre conjuntos: - União - Intersecção - Diferença - Produto cartesiano Outras operações: - Projecção - Restrição - Junção - Divisão 48

1 - Projecção Seja R(X,Y) com X = A 1, A 2,..., A k Y = A k+1,..., A n Projecção de R sobre os atributos X: <X> (R)= { x : existe um y tal que (x,y) R(X,Y) } Se a relação R é representada como uma tabela, a operação de projecção de R sobre o conjunto de atributos X é interpretada como a selecção das colunas de R que correspondem aos atributos de X e a eliminação das linhas duplicadas na tabela obtida. ////////////// ////////////// ////////////// ////////////// <X> (R) Representação gráfica: X R 49

Exemplo: Empregado (Emp#, Nome, Categoria, Dep#). Emp# é chave da relação empregado Empregado Emp# Nome Categoria Dep# e1 n1 c1 d1 e2 n2 c2 d2 e3 n3 c3 d1 e4 n4 c1 d2 e5 n5 c2 d3 e6 n6 c2 d3 e7 n7 c1 d1 Projecção da tabela Empregado sobre os atributos Dep# e Categoria, <Dep#, Categoria> (Empregado) dá origem à tabela: Dep# d1 d1 d2 d2 d3 Categoria c1 c3 c1 c2 c2 <Dep#, Categoria> (Empregado) Representação gráfica: Dep#, Categoria Empregado 50

2- Restrição (ou selecção) Seja a relação R (A 1, A 2,..., A n ) e p uma expressão lógica definida sobre D 1 D 2,..., D n, com D i domínio de A i A restrição de R a respeito da condição p, σ < p > (R) = { z: z é tuplo de R e p(z) é verdadeiro} Sendo R representada como uma tabela a operação de restrição pode ser interpretada como a eliminação das linhas da tabela R que não satisfazem a condição p. //////////// ////////// /////////// //////////// ////////// /////////// σ < p > (R) Representação gráfica: p R 51

Exemplo: Restrição da tabela Empregado tal que Categoria= c2 dá origem à tabela, σ < Categoria=c2 > (Empregado) Emp# Nome Categoria Dep# e2 n2 c2 d2 e5 n5 c2 d3 e6 n6 c2 d3 σ < Categoria=c2 > (Empregado) Representação gráfica: Categoria=c2 Empregado 3 Junção (equijunção) Seja A(Z,X) e B(Y,W) Com Z,X,Y,W conjuntos de atributos tais que - X e Y têm o mesmo número de atributos e atributos correspondentes têm o mesmo domínio 52

Junção das relações A e B sobre os atributos X e Y: A X=Y B = { (z,x,w) : (z,x) A and (y,w) B and x = y } O resultado é uma relação cujo conjunto de atributos é a união dos conjuntos Z, X (ou Y) e W. Os tuplos da tabela são obtidos pela concatenação dos tuplos de A com os tuplos de B sempre que os valores dos atributos de X são iguais aos valores dos atributos de Y. Atributos duplicados (X ou Y) são eliminados. Exemplo: Empregados (Emp#, Nome, Categoria, Dep#) Departamento (Dep#, Nome, Local) A Expressão: <Empregado.Nome, Local> ( Empregado Dep# = Dep# Departamento ) denota a composição de duas operações: - A junção das relações Empregado e Departamento sobre os atributos Dep# 53

- A projecção do resultado da junção sobre os atributos Nome do empregado e Local Empregado Emp# Nome Categoria Dep# e1 n1 c1 d1 e2 n2 c2 d2 e3 n3 c3 d1 e4 n4 c1 d2 e5 n5 c2 d3 e6 n6 c2 d3 e7 n7 c1 d1 Departamento Dep# Nome Local d1 N1 l1 d2 N2 l1 d3 N3 l2 Representação gráfica: Nome n1 n2 n3 n4 n5 n6 n7 Local l1 l1 l1 l1 l2 l2 l1 E.Nome, D.Local Dep# Dep# Empregado E Departamento D - Qual a pergunta a que esta operação responde? 54

4 Divisão Seja as relações A(X,Y) e B(Z) com X,Y, Z conjuntos de atributos. Y e Z contêm igual número de atributos e os domínios correspondentes são iguais. A divisão de A por B sobre Y e Z é A B = { x : z B, (x,z) A} Valores de x tais que o par (x,z) ocorre em A para todos os valores de z que ocorrem em B. Representação gráfica: A B A B Exemplo: Atribuição ( <Proj#> (Projecto) ) Denota a divisão da relação Atribuição pela projecção da relação Projecto sobre o atributo Proj# 55

Dadas as relações, Projecto Proj# Designação Fundos p1 t1 f1 p2 t2 f2 p3 t3 f3 Atribuição Emp# Proj# Função e1 p1 r1 e2 p3 r1 e2 p2 r2 e3 p2 r1 e3 p3 r1 e4 p1 r1 e5 p3 r2 e6 p1 r3 e6 p2 r3 e6 p3 r3 e7 p1 r1 O resultado de <Proj#> (Projecto) é Proj# p1 p2 p3 O resultado da divisão é: Emp# e6 Função r3 - Qual a pergunta a que esta operação responde? 56

Exercício: dadas as tabelas, D S s1 s1 s1 s1 s1 s1 s2 s2 s3 s4 s4 s4 P p1 p2 p3 p4 p5 p6 p1 p2 p2 p2 p4 p5 d1 P p1 d2 P p2 p4 d3 P p1 p2 p3 p4 p5 p6 - Calcule 1 - D d1, 2 - D d2, 3 - D d3 57

União, Intersecção e Diferença Dados R1 e R2 tais que têm igual número de atributos e os domínios dos atributos correspondentes são os mesmos (esquemas relacionais compatíveis) 5 - União R1 R2 é o conjunto dos tuplos de R1 r R2 R1 R2 R1 R2 6 Intersecção R1 R2 é o conjunto de tuplos comuns a R1 e R2. R1 R2 R1 R2 58

7 Diferença R1 R2 é o conjunto de tuplos de R1 que não pertencem a R2 R1 R2 - R1 R2 Para 5, 6 e 7 a relação resultado tem os mesmos atributos que o 1º operando 8 Produto Cartesiano Dadas R1 e R2 com qualquer esquema, R1 R2 é concatenação dos atributos de R1 e R2. Cada tuplo de R1 é concatenado com cada tuplo de R2. R1 R2 R1 R2 Comparar com a junção... 59

A representação gráfica permite construir uma árvore para exprimir questões à Base de Dados. Seja a base de dados exemplo (página 32) e as questões I1: Quem forneceu o material M1 para a obra O1? I2: Que materiais (nomes) forneceu o fornecedor F2 e para que obras (nomes)? - Construir a resposta em álgebra relacional. Exercício: A junção não é a uma operação essencial, podendo ser definida em termos de operações mais primitiva. O mesmo é válido para a intersecção e divisão (As primitivas da linguagem são: União, Diferença, Produto, Selecção e Projecção) - Definir junção, intersecção e divisão em termos dessas 5 primitivas. 60

2.3. Linguagens Relacionais SQL Structured Query Language Linguagem para o modelo relacional: Definida pelo American National Standard Institute (ANSI) em 1986 Adoptada em 1987 como um standard internacional pelo International Organization for Standardization (ISO 1987) A linguagem SQL possui duas componentes principais: o Linguagem de definição de dados (DDL) para definição da estrutura de dados e controlo de acesso. o Linguagem de manipulação de dados (DML) para consultar e actualizar os dados. Linguagem não procedimental, isto é, especificamos que informação queremos e não como obter essa informação Query block (Bloco base de interrogação) SELECT < lista de atributos> FROM <lista de relações> WHERE <expressão lógica> A estudar detalhadamente nas aulas práticas 61

Exemplo: Supondo a base de dados, (Emp#, Nome, Categoria, Salário, Dep#) (Dep#, Nome, Local) Emp# Nome Categoria Salário Dep# 1 E1 Programador 1000 5 2 E2 Programador 1000 6 3 E3 Analista 2000 7 Dep# Nome Local 5 D1 Lisboa 6 D2 Porto 7 D3 Lisboa Queremos saber qual é o nome dos Programadores que trabalham em Lisboa e o nome dos respectivos departamentos?. - Qual dos seguintes queries responde à pergunta? SELECT E.nome, D.nome FROM Empregado E, Departamento D WHERE E.Categoria = Programador AND D.Local = Lisboa SELECT E.nome, D.nome???? FROM Empregado E, Departamento D WHERE E.Categoria = Programador AND E.Dep# = D.Dep# AND D.Local = Lisboa Qual o resultado de cada um dos queries? 62