Banco de Dados - EP - Aula 03 - Álgebra Relacional

download Banco de Dados - EP - Aula 03 - Álgebra Relacional

of 28

Transcript of Banco de Dados - EP - Aula 03 - Álgebra Relacional

lgebra Relacional Conjunto de operaes que usa uma ou duas relaes como entrada e gera uma relao de sada operao (REL1) REL2 operao (REL1,REL2) REL3

Operaes bsicas: seleo projeo unio diferena produto cartesiano

Operadores da lgebra Relacional Seleo: seleciona tuplas que satisfazem um certo predicado ou condioPessoas

NomeJoo Maria Jos

Registro1 2 3

a) selecionar tuplas cujo nome = Joo nome=Joo (Pessoa) Nome RegistroJoo 1

Operadores da lgebra Relacionalb) selecionar as tuplas de Pessoas cujo registro > 1 registro>1 (Pessoa)NomeMaria Jos

Registro2 3

c) selecionar as tuplas de Pessoas com registro > 1 eregistro < 3

registro>1 registro < 3 (Pessoa)

NomeMaria

Registro2

Operadores da lgebra Relacional Projeo: gera novas relaes excluindo alguns atributos exemplo: projete o atributo Nome sobre a relao Pessoa Pessoa NomeJoo Maria Jos

Registro1 2 3

nome (Pessoa) NomeJoo Maria Jos

Operadores da lgebra Relacional Unio: unio de atributos do mesmo domnio que esto em relaes diferentes as relaes devem possuir o mesmo nmero de atributos exemplo: encontre todos os clientes da agncia que possuem conta corrente ou emprstimo. Relaes existentes para a agncia: CONTACORRENTE e EMPRSTIMOS

Operadores da lgebra Relacional ou emprstimo Unio: clientes com conta correnteCONTACORRENTENome Conta1 2 3

Joo Maria Jos

UNIONomeJoo Maria Jos Paulo Carlos

=

EMPRSTIMONomePaulo Maria Carlos

Emprstimo100 200 300

Diferena:

Operadores da lgebra Relacional

tuplas que se encontram em uma relao, mas no em outra (ex: todos clientes sem emprstimo)NomeJoo Maria Jos 1 2 3

Conta

Nome

Emprstimo100 200 300

= NomeJoo Jos

Paulo Maria Carlos

DIFERENA

Operadores da lgebra Relacional Produto Cartesiano combina operaes entre duas relaes unio de atributos forma a nova relao (todos clientes com conta corrente X emprstimo de Maria)NomeccJoo Maria Jos 1 2 3

Conta

NomeempMaria Maria Maria

Emprstimo200 200 200

Operadores da lgebra Relacional Operadores derivados: interseco tudo que est em ambas relaes (todos os clientes que possuem emprstimo)

CONTACORRENTENomeJoo Maria Jos 1 2 3

EMPRSTIMONomePaulo Maria Carlos

Conta

Emprstimo100 200 300

INTERS.NomeMaria

Operadores derivados

Operadores da lgebra Relacional

juno: inclui um produto cartesiano, seguido de uma seleo (pode ter projeo ao final) (nomes dos clientes com conta corrente e nmero de emprstimo) prod. cartesiano: CONTACORRENTE X EMPRSTIMO seleo: Nomecontacorrente = Nomeemprstimo projeo: Nomecontacorrente, Emprstimoemprstimo

Operadores da lgebra Relacional Juno natural

nomes dos atributos nas relaes da seleo so iguais Juno externa (outer join): evita perda de informao( nome,endereo,cidade ) { Coyote,Toon,Hollywood } { Coelho,Tnel,Cenoura } { Smith,Revolver,Vale Morte} (nome,banco,salrio) { Coyote,Mesa,1500 } { Coelho,Mesa,1300 } { Gates, Msm, 5300 }

Juno: (nome,endereo,cidade,banco,salrio) { Coyote, Toon, Hollywood, Mesa, 1500 } { Coelho, Tnel, Cenoura, Mesa, 1300 }

lgebra Relacional Funes de agregao retorna um valor nico de resultado a partir de uma coleo de valores sum: soma dos valores { sum salrio (inpe) } avg: mdia dos valores count: total de tens na coleo min e max: mnimo e mximo valores da coleo count-distinct: elimina duplicao primeiro e conta o total

SQL - Structured Query Language Linguagem de banco de dados relacional linguagem de definio de dados (DDL) linguagem de manipulao de dados (DML) definio de vistas integridade controle de transao

SQL - Structured Query Language Linguagem de Definio de Dados (DDL) responsvel por criar, alterar e excluir entidades, colunas, relacionamentos etc.

Linguagem de Manipulao de Dados (DML) permite ao usurio manipular os dados. Incluir, alterar e excluir dados de uma entidade.

SQL - Structured Query Language Linguagem de definio de dados (DDL) esquema para cada relao domnio de valores associados a cada atributo restries de integridade ndices para cada relao segurana e autorizao de acesso para cada relao estrutura de dados em disco para cada relao

SQL - Structured Query Language Definio de esquema: comando create table - cria uma nova tabela create table r (A1D1, A2D2, ...., AnDn, , ...., ) Restries de integridade: primary key (Aj1, Aj2, ..., Ajm) - define chave check (P) - verifica predicado

SQL - Structured Query Languagecreate table cliente (nome char(20) not null, endereo char(30), cidade char(30), primary key (nome)) create table contacorrente (nmero char(10) not null, banco char(30), saldo integer, primary key (nmero), check (saldo >= 0))

SQL - Structured Query Language Definio de esquema: comando drop table - elimina tabela do banco drop table cliente comando delete from - elimina todos os registros delete from cliente comando alter table - altera tabela do bancoalter table cliente add A D : adiciona atributo A com domnio D alter table cliente drop A : elimina atributo A

SQL - Linguagem de Consulta Sintaxe: SELECT FROM WHERE

SELECT: corresponde ao operador projeo da lgebra relacional FROM: corresponde ao operador produto cartesiano da lgebra relacional WHERE: corresponde ao operador seleo da lgebra relacional

Exemplos de Consultas ALUNONomeJoo Maria Jos 1 2 3

CADEIRAIdAluno1 2 10

Tipoescolar normal poltrona

SELECT nome FROM aluno WHERE id = 1 FROM: todos as tuplas da relao aluno WHERE: selecione as tuplas cujo id = 1 SELECT: projete o atributo nome

SELECT nome, id, tipo FROM aluno, cadeira WHERE id = aluno

FROM: produto cartesiano (ALUNO x CADEIRA) Nome Id Aluno TipoJoo Maria Jos Joo Maria Jos Joo Maria Jos 1 2 3 1 2 3 1 2 3 1 1 1 2 2 2 10 10 10 escolar escolar escolar normal normal normal poltrona poltrona poltrona

SELECT nome, id, tipo FROM aluno, cadeira WHERE id = aluno

WHERE: selecione tuplas cujo id = aluno Nome Id Aluno TipoJoo Maria 1 2 1 2 escolar normal

SELECT: projete os atributos nome, id, tipoNomeJoo Maria 1 2

Id

Tipoescolar normal

SQL - Structured Query Language Operaes em conjunto de caracteres (strings) : O caracter % representa qualquer sub-string O caracter _ representa qualquer caracter O termo like utilizado para comparar padres Carl% : qualquer nome que comece com Carl %ulo% : qualquer nome que possui ulo _ _ _ : qualquer nome com 3 caracteres select nome from cliente where endereco like %Ademar%

SQL - Structured Query Language Funes de agregao Mdia: avg select avg (saldo) from conta_corrente where banco_nome = Brasil Clusula group by : junta as tuplas com atributos em group by de mesmo valor select banco_nome, avg (saldo) from conta_corrente group by banco_nome

SQL - Structured Query Language Funes de agregao Contador : count recupere o nmero de tuplas ou registros na relao cliente select count (*) from cliente

Mnimo : min Mximo : max Soma : sum

SQL - Structured Query Language Juno natural : (inner join)emprstimo (banco,numero,saldo) { Centro, L-170, 3000 } { Satelite, L-230, 4000 } { Inpe, L-260, 300 } cliente (nome,emp_numero) { Joo, L-170 } { Sandra, L-230 } { Paulo, L-155 }

select * from emprestimo inner join cliente on emprestimo.numero = cliente.emp_numero { Centro, L-170, 3000, Joo, L-170} { Satelite, L-230, 4000, Sandra, L-230 }

SQL - Structured Query Language Juno externa : (outer join)emprstimo (banco,numero,saldo) { Centro, L-170, 3000 } { Satelite, L-230, 4000 } { Inpe, L-260, 300 } cliente (nome,emp_numero) { Joo, L-170 } { Sandra, L-230 } { Paulo, L-155 }

select * from emprestimo left outer join cliente on emprestimo.numero = cliente.emp_numero { Centro, L-170, 3000, Joo, L-170} { Satelite, L-230, 4000, Sandra, L-230 } { Inpe, L-260, 1700, null, null, }

Passos na Modelagem de BD Requisitos: identificao dos dados

Modelagem conceitual: mapear viso do usurio em um conjunto de dados descreve entidades, atributos e relacionamentos

Identificao de Requisitos Modelo Conceitual Implementao

Implementao: esquema de banco de dados

Projeto fsico: estruturas de dados, mtodos de acesso, segurana

Projeto Fsico