Please enable JavaScript.
Coggle requires JavaScript to display documents.
Modelo Relacional (Logico) (Algebra Relacional (Principáis operacoes -…
Modelo Relacional (Logico)
Pode ser Definido como tabelas
Baseado em teoria de conjuntos e logica de predicados de primeira ordem
Sucede os modelos de rede (tem relacionamento nxn) e hierárquicos(tem relacionamento 1xN)
O banco de dados vai ser descrito com o conjunto de tabelas (de cada entidade e as tabelas relacionais entre as entidades)
Propriedades satisfeitas para tabela ser considerada relacao:
Atributos nao sao ordenados da esquerda para direita
Tuplas nao sao ordenadas de cima pra baixo ou de baixo para cima
Cada tupla contem exatamente um valor para cada atributo (ATOMICIDADE)
Nao existe tupla duplicada
Restricao de Integridade
Resguardam o BD contra danos acidentais pra que perdas nao resultem na perda consistencia dos dados.
Sao elas:
Integridade de Chave (Atrbuto Chave nao vai ser repetir em duas linhas na mesma tabela)
As Tuplas de uma relacao sao unicas. NA COULUNA DO ATRIBUTO CHAVE, NAO VAO SE REPETIR OS VALORES
Um esquema de relacao pode ter mais de uma chave, Cada uma dessas chaves é chamacda de chave candidata
Integridade de Vazio (O atributo aceitar ou nao o valor de nulo)
Integridade de Dominio
Integridade de Entidade (Chave primaria - Conjunto de atributos chaves- tem que ser unica e nao pode ser nula)
O valor da chave primaria é usado para identificar as tuplas de uma relacao (se nao tiver cpf nao da pra identificar nome, ...)
Integridade Referencial (Faz ligacao de uma tabela com outra)
Na tabela "Funcionario" tem a chave cpf. Na tabela Departamento tem a chave "CPF_Gerente." Procura o cpf na primeira tabelas. O valor do CPF tem que ser VALIDO!! Se nao quebra a integridade Referencial
Tem-se varias chaves candidatas e uma delas e escolhoda para ser primaria ( CPF, Passaporte, id....)
FK: Chave Estrangeira: Aponta para um atributo em outra tabela
Integridade Semantica (É a Regras de Negcoio = Dominio de aplicacao)
Exemplo: O salario de um funcionario nao deve ser maior que do seu chefe.
Restricao Pode acontecer na aplicacao (proprio codigo), ou pelo proprio SGDB usando sintaxes de TRIGGER e ASSERTIONS (afirmacoes)
Algebra Relacional (Principáis operacoes - Selecao, Projecao, Produto cartesiano)
É uma linguagem procedural (defin-se o passo a passo para extrair informacoes na tabela)
Conjunto de Operacoes Unarias ou Binarias (uma ou duas relacoes) produzindo outra nova relacao0
Ex: A$B leva a C
Propriedade de Fechamento: Vai encadeando os resultados pq o resultado sempre chega a uma nova relacao.
Operacoes Fundamentais:
UNARIA: Select, Project, Rename
Rename: Alterar o nome das colunas e linhas de um resultado especifico.
BINARIA:Uniao, Diferenca, Produto Cartesiano
Outras Operacoes:
Juncao: Joins - Relaciona duas tavelas que tem colunas iguai unindo-as
Divisao: Division (:_
Intersecao: Set Intersection
Atribuicao - Assignment (setinha pra esquerda)
Operacao de Selecao
Seleciona tuplas (HORIZONTALMENTE) que satisfacam um determinado predicado (restricoes excritas)
Usa a letra grega SIGMA
Ordem é Sigma - predicado- (nome da relacao)
Predicado: atributo + operador + valor
Operadores: =, deiferente, <, menor igual, >, maior igual
Conectivos: ou (v), e(v invertido), not(¬)
Operacao de Projecao
Produz relacao apenas com os atributos que desejamos
É escrito assim: pi - nome dos atributos (nome da relacao)
Retorna os atributos de uma tabela SEM REDUNDANCIA (Se tiver nesses valores, duas tuplas duplicadas, vai eliminar a duplicacao)
Obs: Pode-se usar uma projecao seguida de uma selecao e vice-versa
Rename:
Utilidade
Quando eu vou fz um produto cartesiano da mesma tabela AxA (por exemplo), pra referenciar qual tabela estou dizendo posso colocar o nome dos atributos da primeira como z1, t1, c1 e os atributos da segunta como z2,t2,c2.
Para unificar em um unico conjunto. Ex: Fazer uniao de duas relacoes ai eu faco um rename nessa nova relacao depois para fazer sentido.
Sintaxe: p(R,E)
R é o nome dado a nova relacao
E é a expressao com as operacpoes de algebra relacional
Sintaxe de Rename para renomear os atributos tambem:
p(R(A1,A2,...,An), E)
Uniao: Unir duas relacoes que possuam mesmo numero de atributos e os atributos estao definidos dentro do mesmo dominio
Ex: pi <nome_do_cliente> (depositante) U pi <nome_do_cliente> (devedor)
Elimina duplicatas
PRECISAM SER COMPATIVEIS
Subtracao: Permite encontrar tuplas que estao em uma relacao mas nao estao na outra.
Ex: pi<nome_do_cliente> (depositante) - pi<nome_do_cliente> (devedor)
Vou ter depositantes que nao sao devedores
Obs: Se fizesse o contrario, ia ter devedores que nao sao depositantes
Intersecao (Obs: pode ser obtida atraves da Subtrcao)
R intersecao S = R - (R-S)
Lembrar dos conjuntos para lembrar da formulazinha
Produto Cartesiano
Vai relacionar todas as tuplas de cada tabela
Vai concaternar as duas relacoes
Entao, se tem 4 tuplas em uma relacao e 3 tuplas em outra relacao, vai chegar a uma relacao de 12 linhas pois vai fz todas combinacoes possiveis.
Sintaxe: "R1 x R2"
Juncao:
Resultado é uma tabela com todas as combinacoes das tuplas R e S que seus atributos em comum sao iguais em valor
Sintaxe: R lxl S
Variacoes
Theta-juncao: Vai ter uma restricao para a juncao. Se esse predicado for verdadeira, as tabelas vao se juntar. Obs: Os atributos nao tem o mesmo nome
Equi-Juncao: é um theta join mas o operador da restricao tem que ser "="
Notacao Estendida:
Anti-Join. Retorna o inverso do que voce colocar na equacao
Funcao de Agregadcao
Outer Joins
Right Outer Join: O contrario da LEFT.
Full Outer Join. Mantem todas as linhas das duas relacoes
Left Outer Join de AB: Mantem todas linhas de A. De B, so as que atendem ao predicado
Divisao (Responde a pergunta para todos)
Sintaxe: R1/R2
Todos elementos de R1 que se relacionam com R2
Em UNIAO, INTERSECAO e SUBTRACAO, os dominios tem que ser o msm!
Obs: Algebra relacional e Calculo relacional sao conceitos diferentes
Calculo relacional estende e completa a algebra relacional com a introducao de quantificadores
Tabelas, Visoes e Indices
Tabelas
Pra criar tabela, sintaxe: CREATE TABLE () com as colunas junto com tipos e restricoes de integridade (null ou not null)
As restricoes de chave e de integridade podem ser feitas na criacao da tabela ou depois com comando ALTER TABLE
ALTER TABLE tbm adiciona ou remove atributos.
DROP <TABLE> remove todas informacoes de uma relacao do banco de dados.
Ex: CREATE TABLE STUDENT
Comando DESC NOME_DA_TABELA mostra descricao da tabela com os tipos dos atributos e restricoes de integridade
Linguagem SQL possui 7 tipos de dados pre-definidos: string(conunto de caracteres), numericos, binario, datetime, interval, boolean e XML
Cadeias de Carcteres podem ser de comprimento fixo ou variavel
Fixo: CHAR
Variavel: VARCHAR
Cadeias para armazenar grandes objetos: CHARACTER LARGE OBJECT ou CLOB
Numericos: Numeros exatos e Numeros Aproximados
Exatos:
Com casas decimais ( precos, pesos...)
Inteiros (Casas, Carros...)
Obs: Podem ter precisao e escala. Precisao determina numero total maximo de digitos decimais
Arpximados: Nao podem ser armzenados com precisao absoluta.
Visoes(View): Para facilitar visualizacao das tabelas
Relacionado à seguranca dos dados restrigindo o acesso aos campos e às colunas por meio do view.
Da pra sumarizar dados de diferentes tabelas gerando relatroios.
Pode ser criado sobre uma ou multiplas tabelas
Sintaxe: CREATE VIEW "NOME_DA TABELA" AS
Usar comando SELECT para visualizar os dados de uma visao
Usa comandos WHERE, FROM para detalhar o que se quer visualiazr
É CONSIDERADA UMA TABELA VIRTUAL PQ SO EXISTE NO PERIODO QUE TA UTILIZANDO-A
Todas operacoes que podem ser feitas sobre uma tabela, podem ser feitas no VIEW, mas essa nao deve ser armzenada no banco de dados na teoria.
Indices: Mecanismo p melhorar velociade de acesso aos dados.
É dar indices para atributos chaves para melhor localiza-los. Tem que avaliar se realmente vale a pena.