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
Top Related