Você está na página 1de 49

O Modelo e a lgebra Relacional

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.

A linguagem padro para os bancos de dados relacionais o SQL,(structured query language)


DDL e DML

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

Arquitetura Funcional de um SGBD Relacional


Controlador de Transao e Recuperao SQL Otimizador Processador de Consultas Controlador de Concorrncias

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

Otimizador/ Processador de Consultas


Tratamento da requisio da linguagem de alto nvel, verificando a sintaxe e semntica com relao ao esquema estabelecido Otimizao (heurstica) de consultas Determinao do plano de acesso aos dados, indicando estruturas de armazenamentos e ndices

72

Roberto Harkovsky

Controlador de Transaes, Concorrncias e Recuperao


Controle da unidade bsica do SGBD transaes
Tudo para o SGBD uma transao Uma consulta simples uma transao Uma atualizao numa tupla transao Transaes implementam requisies de vrios usurios

Garante a consistncia de dados com execuo concorrente de mltipla transaes


SGBD simula multiprocessamento

Gerencia de bloqueios Responsvel pelo Log do sistema e recuperao

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

Tambm conhecida como dicionrio de dados ou catlogo

74

Roberto Harkovsky

Manipulao de dados Relacionais


Duas categorias de linguagens
formais lgebra Relacional e Clculo Relacional comerciais (baseadas nas linguagens formais) SQL

Linguagens formais - Caractersticas


Orientadas a conjuntos Linguagens de base linguagens relacionais devem ter no mnimo um poder de expresso equivalente ao de uma linguagem formal fechamento resultados de consultas so relaes

75

Roberto Harkovsky

Definido o Modelo Relacional


Formalmente, na terminologia formal de modelo relacional, temos as seguintes definies:
Tupla: uma linha Atributo: o cabealho da coluna Relao: a tabela Domnio: so os valores aceitveis para um atributo

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

Definido o Modelo Relacional Exemplo


Atributos Relao

Estudante

SID 142 183

Nome Roberto Andrea Carlos Bruno

Idade 23 20 18 20

CR 5,8 8,1 9,2 7,5

Tuplas 898 453

77

Roberto Harkovsky

Caractersticas das Relaes


Ordenao de tuplas numa relao
Relao um conjunto de tuplas; matematicamente falando os elementos de um conjunto no tem ordem, portanto uma relao no tem qualquer ordem Entretanto como trata-se de dados num computador sempre h uma ordem de armazenamento fsico no disco

Unicidade
Matematicamente, num conjunto no existem elementos duplicados Assim, no existem tuplas idnticas

78

Roberto Harkovsky

Restries do Modelo Relacional


Limitaes nos dados Trs grupos:
Restries Inerentes ao modelo de Dados Restries baseadas no esquema
Expressas no modelo

Restries baseadas nas aplicaes


Impostas pela aplicao

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 Primria -> Chave Candidata escolhida


Por conveno, ela aparece sublinhada num esquema
81 Roberto Harkovsky

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

Exemplo de Chaves Primria e Estrangeira


Departamento(Cod_Departamento, Departamento, ...) Funcionario(Cod_Funcionario, Nome, Cod_Departamento, ...)

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

Entrada: Tabela (R)


Operadores de comparao (=, <, <=, >, >=) e Operadores lgicos: (and), V(or) e (not)

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)

SID 142 183 898 453

Nome Roberto Andrea Carlos Bruno

Idade 23 20 18 20

CR 5,8 8,1 9,2 7,5

CR> 8,0
SID 183 898
86

Nome Andrea Carlos

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)

SID 142 183 898 453

Nome Roberto Andrea Carlos Bruno

Idade 23 20 18 20

CR 5,8 8,1 9,2 7,5

SID,Nome

SID 142 183 898 453


89

Nome Roberto Andrea Carlos Bruno

Roberto Harkovsky

Exemplo2
SID e nome dos estudantes
idade (estudante)

SID 142 183 898 453

Nome Roberto Andrea Carlos Bruno

Idade 23 20 18 20

CR 5,8 8,1 9,2 7,5

Duplicidade deve ser eliminada

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

Produto Cartesiano Exemplo


Estudante X Matricula
SID 142 183 898 453 Nome Roberto Andrea Carlos Bruno Idade 23 20 18 20 SID 142 142 142 183
92

SID 142 183 898

CID CPS116 CPS114 CPS116

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 ..... .........

......

Nota sobre Produto Cartesiano


A ordem das colunas no importante
Assim a operao comutativa
RXS=SXR

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

CID CPS114 CPS116 CPS114 CPS116

SID 142 183 898 453

Nome Roberto Andrea Carlos Bruno

Idade 23 20 18 20 SID 142 142 183 898

898

e.SID=m.SID

CR 5,8 5,8 8,1 9,2

SID

CID

142 CPS114 142 CPS116 183 CPS114 898 CPS116

97

Operador Derivado Juno Natural


Notao: R S Entrada: Tabela (R) e Tabela (S) Propsito: relaciona linhas das tabelas
Refora a igualdade de seus atributos Elimina 1 cpia dos atributos comuns

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

CID CPS114 CPS116 CPS114 CPS116

SID 142 183 898 453

Nome Roberto Andrea Carlos Bruno

Idade 23 20 18 20 SID 142 142 183 898

898

CR 5,8 5,8 8,1 9,2

CID CPS114 CPS116 CPS114 CPS116

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

Operador Derivado - Interseo


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

SID1 = SID2 CID1 CID2

Matriculdado1(SID1, CID1) Matriculado

Matriculdado2(SID2, CID2) Matriculado

108

Roberto Harkovsky

Exerccio Resolvido 1
Listar todos os cursos que Bob NO assiste
Cursos que Bob NO assiste

Todos os cursos CID

Cursos que Bob assiste

CID

Curso Matriculado nome=bob Estudante


109 Roberto Harkovsky

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

Estudantes no curso de Bob

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

Você também pode gostar