UCSal – Bacharelado em Informática
Banco de Dados
Profa. Semíramis Assis
2015.2
Modelo Conceitual



Primeira etapa no processo de modelagem,
consiste em identificar as entidades (tabelas)
e seus atributos (campos).
Para representação, se identifica as ações
entre as entidades.
Objetiva conter todas as informações do
mundo real que serão armazenadas em
banco.
Modelo Conceitual

Exemplo:

Cadastro de Fornecedor


Cadastro de Produtos


Campos: nome completo, tipo
de pessoa (física/jurídica),
endereço, bairro, cidade,
estado, cep, telefone, e-mail,
nome contato.
Campos: código do produto,
nome do produto, modelo,
unidade de medida, preço de
compra, preço de venda,
estoque mínimo, estoque
máximo, estoque atual, data
da última compra.
Cadastro de Pedidos

Campos: código do produto,
quantidade, código do cliente,
código do vendedor.
Modelo Lógico


Segunda parte do processo
de modelagem, compreende
a descrição das estruturas
que serão armazenadas no
banco
e
resulta
na
representação dos dados de
uma maneira lógica.
Nesta etapa é definida a
abordagem
que
será
utilizada: hierárquica, de
rede ou relacional.
Exercícios
Álgebra Relacional

Inclui operadores para as operações básicas sobre
conjuntos:







Restrição (seleção);
Projeção;
Junção;
Divisão.
Cabeçalho resultante pode ter ambiguidades –
Importância da utilização de alias.
É possível aninhar diversas operações em uma
mesma query.
Utilização de subqueries para auxílio nas operações
com álgebra relacional.
Álgebra Relacional
As oito operações relacionais.
Álgebra Relacional

Alias ou rename de campos do cabeçalho:

O conjunto de saída resultante irá ter o nome de
um ou mais campos alterados, evitando
ambiguidade. Exemplo:
Nomes das colunas
alterados

Select p.codigo as codigo_produto, f.codigo
as codigo_fornecedor from produto p,
fornecedor f WHERE <condicoes>.
Alias das tabelas
Álgebra Relacional
Sintaxe completa de uma query SQL.
União


Representa a união de todos os dados
dos conjuntos envolvidos. Em Sql,
representa a união de todas as tuplas
resultantes de consultas distintas.
Precisa ter o mesmo tipo de dados e
quantidade de campos em ambas
consultas.
União
Resultado:
União:
Resultado:
Resultado:
Interseção




Assim como na operação de União, exige que
os campos sejam do mesmo tipo.
Exibe como resultado as tuplas que sejam
iguais no conjunto A e no B.
Oracle suporta comando INTERSECT.
No MySql, é preciso utilizar comandos de
junção para obter o mesmo resultado.
Interseção
No MySql:
Resultado:
Aluno
Disciplina
Diferença



Também exige que os campos sejam do
mesmo tipo nas duas relações;
O resultado são todas as tuplas T tais que T
apareça em A e não apareça em B;
O Oracle dá suporte ao comando MINUS,
porém o MySql não suporta, devendo utilizar
subqueries para o mesmo resultado.
Diferença
No MySql:
Resultado:
Aluno
Disciplina
Produto

É o produto cartesiano resultante dos
pares ordenados de tuplas, ou seja, a
união de todos os campos da tabela A
com todos os campos da tabela B e
assim sucessivamente, caso existam
outras tabelas.
Produto
Como resultado da execução da query abaixo:
Temos o produto cartesiano:
Restrição


Representa o conjunto de tuplas
resultantes da avaliação das condições
presentes na cláusula WHERE.
As condições após a cláusula WHERE
representam o predicado da relação.
Restrição
Query:
Resultado:
Outro exemplo:
Resultado:
Projeção


Representa o cabeçalho das tabelas
envolvidas na consulta, removendo
todos os campos não mencionados.
Produz um subconjunto vertical de
determinada relação, obtido pela
remoção de todos os atributos não
mencionados após a palavra SELECT.
Projeção
Query:
Projeção
Resultado:
Outro exemplo:
Projeção
Restrição
Resultado:
Junção



Representa a união dos campos das
tabelas envolvidas na relação, de modo
a não ter nenhuma repetição nos
nomes dos campos, evitando a
ambiguidade.
Utilização do alias (ou rename);
Representado pela operação JOIN.
Junção



Join / Inner Join / Cross Join – São
expressões equivalentes no MySql, resultando
nas tuplas que satisfaçam a condição na
cláusula ON.
Left Join – Resulta em todas as tuplas de A e
sua equivalência (ou não) nas tuplas de B;
Right Join – Resulta em todas as tuplas de B
e sua equivalência (ou não) nas tuplas de A.
Junção
Para o cenário abaixo:
Aluno
Disciplina
Divisão


A divisão entre X e Y terá como
resultado todos os valores de um
atributo de X que fazem referência a
todos os valores de um atributo de Y.
Muito comum em consultas que incluam
a “busca por todos” ou “em todos”.
Divisão

Exemplo:

Buscar por todos os alunos que estão
matriculados em todas as disciplinas.
Aluno
Disciplina
Aluno_Disciplina
Divisão
Selecionando todos os alunos que estão matriculados em todas as disciplinas:
Resultado:
Agrupamento e Ordenação

Group By



Agrupa o resultado pelo(s) campo(s) indicado(s);
É necessário que o(s) campo(s) esteja(m) no
cabeçalho da relação.
Order By


Ordena o resultado pelo(s) campo(s)
determinado(s);
Pode ser:


Asc - Ascendente
Desc - Descendente
Agrupamento e Ordenação
Agrupamento e Ordenação
Soma, Contagem e Funções Aritméticas

Sum


Count


Min


Retorna a média de um campo inteiro ou numérico.
Retorna o menor valor de um campo inteiro ou numérico.
Max


Conta a quantidade de campos ou tuplas que atendem às
restrições do predicado.
AVG


Totaliza campos inteiros ou numéricos.
All

Retorna o maior valor de um campo inteiro ou numérico.
Retorna todos os valores do campo solicitado.
Soma, Contagem e Funções Aritméticas
Dúvidas?
Download

BD_aula5