Escolar Documentos
Profissional Documentos
Cultura Documentos
O Modelo Relacional
Modelo de dados, que se baseia no princpio em que todos os dados esto guardados em tabelas Baseado em lgica de predicados e na teoria de conjuntos. Sucessor do modelo hierrquico e do modelo em rede.
66
Roberto Harkovsky
Modelo Relacional
Um modelo relacional representa o banco de dados como um conjunto de relaes. Uma relao pode ser pensada como uma tabela de valores, ou lista de tuplas. Cada linha na tabela representa uma coleo de valores de dados relacionados.
67
Roberto Harkovsky
O Modelo Relacional
Primeiro modelo de banco de dados formal
Somente depois seus antecessores, os bancos de dados hierrquicos e em rede, passaram a ser tambm descritos em linguagem formal.
68
Roberto Harkovsky
O Modelo Relacional
A principal proposio do modelo relacional que todos os dados so representados como relaes matemticas um subconjunto do produto Cartesiano de n conjuntos. No modelo matemtico (diferentemente do SQL), a anlise dos dados feita em uma lgica de predicados de dois valores (ou seja, sem o valor nulo); Existem apenas dois possveis valores para uma proposio: verdadeira ou falsa. Os dados so tratados pelo clculo relacional ou lgebra relacional.
69
Roberto Harkovsky
Metadados e Estatsticas
70
Dados e ndices
Roberto Harkovsky
Log de Transaes
Arquitetura Funcional
A interao principal atravs de comandos SQL Armazena-se no somente dados, mas tambm ndices, Logs, metadados Processadores controladores internos fazem parte de um sistema chamado Subsistema de armazenamento
71
Roberto Harkovsky
72
Roberto Harkovsky
73
Roberto Harkovsky
Metabase
Base de dados da base de Dados!!!
Contem informaes sobre os BDs armazenados e sobre o ambiente Utilizada pelo DBA para administrao dos BDS e gerencia do SGBD
74
Roberto Harkovsky
75
Roberto Harkovsky
Exemplo: Seja o esquema Aluno(Nome, Mat, FoneResidencia, Endereco, FoneComercial, Idade, CR)
Relao: Aluno Atributo: (7 atributos) - Aluno(Nome, Mat, FoneResidencia, Endereco, FoneComercial, Idade, CR Domnio: Dom(Nome)=nomes; Dom(Mat)= nmeros Tupla: <Roberto, 001,222-2222,rua ..., 98765432, 40, 9,1>
76 Roberto Harkovsky
Estudante
Idade 23 20 18 20
77
Roberto Harkovsky
Unicidade
Matematicamente, num conjunto no existem elementos duplicados Assim, no existem tuplas idnticas
78
Roberto Harkovsky
79
Roberto Harkovsky
Atributos Chaves
Superchave Conjunto de um ou mais atributos que nos permite identificar inequivocamente uma entidade em um conjunto de entidades. Duas tuplas no podem ter a mesma superchave A superchave pode conter atributos desnecessrios.
Por exemplo: A relao Pessoa pode ter como superchave
Pessoa(CPF,Nome, endereo,....) Superchaves possveis
{CPF} {CPF, nome} {CPF, nome, Endereco} Etc...
80
Roberto Harkovsky
Atributos Chaves
Chave
Superchave mnima Pode existir mais de uma chave nesta condio: Chave Candidata
Chave Candidata
so as menores superchaves possveis (cujos subconjuntos no sejam superchaves),
EMPREGADO(ENOME, CPF, MAT, NDATA, ENDERECO, DEPNUM*) Chaves. {CPF} e {MAT}
Chave Estrangeira
necessrio manter a consistncia entre tuplas de duas relaes: uma tupla em uma relao que se refere a uma outra relao deve referenciar uma tupla existente naquela relao. O atributo (ou conjunto de atributos) de uma relao R1 que referencia uma outra relao R2 chamado de chave estrangeira. Ateno, pois o atributo no chave de R1, O valor da chave estrangeira em uma tupla de R1 deve existir como o valor da chave primria de alguma tupla de R2 Ou, se no for obrigatrio, pode ser nulo.
82 Roberto Harkovsky
83
Roberto Harkovsky
lgebra Relacional
Bsicas
Seleo () - seleciona um subconjunto de linhas de uma relao Projeo () apaga colunas desnecessrias de uma relao Produto cartesiano (X) permite combinar duas relaes Unio (U) - tuplas na relao 1 e na relao 2 Diferena (-) tuplas na relao 1 mas no na relao 2 Renomeao () renomeia tabela Atribuio () Atribui valores a variaveis
Derivadas
Juno, interseo, diviso muito teis!
84
Roberto Harkovsky
Seleo
Notao: p
p chamado predicado/condio de seleo
Propsito: filtragem de linhas de acordo com um critrio Sada: mesmas colunas de R, porm somente as linhas de R que satisfazem ao critrio p
85
Roberto Harkovsky
Seleo
Exemplo
Estudantes com CR > 8,0
CR> 8,0 (estudante)
Idade 23 20 18 20
CR> 8,0
SID 183 898
86
Idade 20 18
CR 8,1 9,2
Roberto Harkovsky
Seleo
Um predicado de seleo pode incluir, em geral, qualquer coluna de R, constantes, comparaes (=, , etc., ) e conectivos booleanos (, , and ~) Exemplo: Estudantes com CR > 8,0 e menores de 18 ou maiores que 21anos
cr> 8,0 (idade < 18 idade > 21) (estudante)
87
Roberto Harkovsky
Projeo
Notao: L
L lista de colunas de R
Entrada: Tabela (R) Propsito: seleciona colunas em R Sada: mesmas linhas de R, porm somente as colunas de R que satisfazem ao critrio L
88
Roberto Harkovsky
Projeo Exemplo
SID e nome dos estudantes
SID,Nome (estudante)
Idade 23 20 18 20
SID,Nome
Roberto Harkovsky
Exemplo2
SID e nome dos estudantes
idade (estudante)
Idade 23 20 18 20
idade
Idade 23 20 18
90
Roberto Harkovsky
Produto Cartesiano
Notao: R X S Entrada: Tabela (R) e Tabela (S) Propsito: gera combinaes de linhas das duas tabelas Sada: Para cada linha r em R e cada linha sem S, gerar a tupla rs
91
Roberto Harkovsky
CR 5,8 8,1 9,2 7,5 Nome Roberto Roberto Roberto Andrea ............
X
Idade 23 23 23 20 ......... Roberto Harkovsky CR 5,8 5,8 5,8 8,1 ...... SID CID
142 CPS116 183 CPS114 898 CPS116 142 CPS116 ..... .........
......
93
Roberto Harkovsky
Unio
Notao: R U S
R e S devem ter o mesmo esquema
Entrada: Tabela (R) e Tabela (S) Propsito: gera linhas de acordo com um critrio Sada: Contm todas as linhas de R e de S
O esquema o mesmo das tabelas de entrada Duplicidade eliminada
94
Roberto Harkovsky
Renomeao
Notao: S (R) ou S(A1,A2, ...) (R)
Renomeia R para S ou renomeia R para S com atributos renomeados A1, A2, ...
Entrada: Tabela (R) Propsito: redefinir nome tabelas / ou colunas num contexto Sada: Tabela renomeada com mesmas linhas de R Usada para
til para auto-relacionamentos, onde precisamos fazer a juno de uma tabela com ela mesma, e nesse caso cada verso da tabela precisa receber um nome diferente da outra. Cria colunas idnticas numa juno natural
95
Roberto Harkovsky
Juno
Notao: R S
p a condio/predicado da juno
Entrada: Tabela (R) e Tabela (S) Propsito: gera linhas de acordo com um critrio Sada: Para cada linha r em R e cada linha sem S, gerar a tupla rs se, e somente se,atenderem a condio p Abreviao para p ( R X S)
96
Roberto Harkovsky
Matricula m
Exemplo
Estudante e
SID 142 142 183 CR 5,8 8,1 9,2 7,5 Nome Roberto Roberto Andrea Carlos Idade 23 23 20 18
Roberto Harkovsky
898
e.SID=m.SID
SID
CID
97
Sada: Para cada linha r em R e cada linha sem S, gerar a tupla rs se, e somente se,atenderem a condio p
98
Roberto Harkovsky
Matricula m
Exemplo
Estudante e
SID 142 142 183 CR 5,8 8,1 9,2 7,5 Nome Roberto Roberto Andrea Carlos Idade 23 23 20 18
Roberto Harkovsky
898
99
Diferena
Notao: R - S
R e S devem ter o mesmo esquema
Entrada: Tabela (R) e Tabela (S) Propsito: gera linhas de acordo com um critrio Sada: Contm todas as linhas de R e que no so encontradas em S
O esquema o mesmo das tabelas de entrada
100
Roberto Harkovsky
Entrada: Tabela (R) e Tabela (S) Propsito: gera linhas de acordo com um critrio Sada: Contm todas as linhas de R que so encontradas em S tambm
O esquema o mesmo das tabelas de entrada R (R S) ou S (S R) ou R S
101
Roberto Harkovsky
Diviso
Notao: R S Entrada: Tabela (R) e Tabela (S)
Seja grau a medida de atributos de mesmo nome
R tem grau (m+n) S tem grau n Propsito: gera linhas de acordo com um critrio Sada: atributos de S cujos valores associam-se com todos os valores de R
Grau m
102
Roberto Harkovsky
Diviso Exemplo
103
Roberto Harkovsky
Atribuio
Armazena o resultado de uma expresso algbrica em uma varivel de relao
permite o processamento de uma consulta complexa em etapas
Notao
nomeVarivel expressolgebra
Exemplo
r1 nome=bob (estudante)
104
Roberto Harkovsky
Funes Agregadas
Para aquelas consultas que no podem ser resolvidas simplesmente atravs da lgebra relacional, introduz-se um conjunto de funes agregadas Funes comumente aplicadas a conjuntos de dados so: Mdia, Mximo, Mnimo, Soma, Contador
105
Roberto Harkovsky
Resumo
106
Roberto Harkovsky
Exemplos
Para os exemplos a seguir considere o seguinte esquema:
Estud (SID, nome, idade, CR) Curso (CID, titulo) Matr (SID, CID)
107
Roberto Harkovsky
Exemplo
SID dos estudantes que assistem a pelo menos 2 cursos r1 r2 r3 r4 SELECIONE Matric COM SID=SID1 E CID = CID1 SELECIONE Matric COM SID=SID2 E CID = CID2 JUNTE r1 A r2 COM r1.SID=r2.SID E r1.CID r2.CID PROJETE r3 SOBRE SID SID1
108
Roberto Harkovsky
Exerccio Resolvido 1
Listar todos os cursos que Bob NO assiste
Cursos que Bob NO assiste
CID
Exerccio Resolvido 1
Listar todos os cursos que Bob NO assiste
r1 SELECIONE Estud COM nome=Bob r2 JUNTE r1 A Matric COM r1.CID= Matric.CID r3 PROJETE r2 SOBRE CID r4 PROJETE Curso SOBRE CID r5 r4 r3
110
Roberto Harkovsky
Exerccio Resolvido 2
Listar nomes dos estudantes na classe de Bob
nomes Seus nomes
Estudante
SID
Matriculado
CID
Cursos de Bob
Matriculado
111 Roberto Harkovsky
nome=bob Estudante
Exerccio Resolvido 2
Listar nomes dos estudantes na classe de Bob
r1 SELECIONE Estud COM nome=Bob r2 JUNTE r1 A Matric COM r1.CID= Matric.CID r3 PROJETE r2 SOBRE CID r4 JUNTE r3 A Matric COM r3.CID= Matric.CID r5 PROJETE r4 SOBRE CID r6 JUNTE r5 A Estud COM r5.SID= Estud.SID r7 PROJETE r6 SOBRE nomes
112
Roberto Harkovsky
Exerccios
Lista de lgebra Relacional
113
Roberto Harkovsky