Exercicios
Resolva todas asconsultas abaixo usando apenas select, project, Cartesian product e
natural join.
Fornecedores (sID, sName, endereço)
Partes (pID, pName, cor)
Catálogo (sID, pID, preço)
Catálogo[sID] ⊆ Fornecedores[sID]
Catálogo[pID] ⊆ Partes[pID]
a. Encontre os nomes de todas as partes vermelhas.
b. Encontre os sIDs de todos os fornecedores que fornecem uma Partes vermelha ou verde
c. Encontre todos os preços para Partes vermelhas ou verdes. (Uma Partes pode ter preços
diferentes de fabricantes diferentes.)
3.
Exercicios
Resolva todas asconsultas abaixo usando apenas select, project, Cartesian product e
natural join.
Solução:
4.
A álgebra relacional
Restriçõesnas relações
• A capacidade de restringir os dados que podem ser armazenados em um banco de dados.
• Existem muitos tipos de restrições podem ser expressos em álgebra relacional.
5.
A álgebra relacional
Restriçõesnas relações
• A capacidade de restringir os dados que podem ser armazenados em um banco de dados.
• Existem muitos tipos de restrições podem ser expressos em álgebra relacional.
• Existem duas maneiras pelas quais podemos usar expressões de álgebra relacional para
expressar restrições.
6.
A álgebra relacional
Restriçõesnas relações
• A capacidade de restringir os dados que podem ser armazenados em um banco de dados.
• Existem muitos tipos de restrições podem ser expressos em álgebra relacional.
• Existem duas maneiras pelas quais podemos usar expressões de álgebra relacional para
expressar restrições.
1. Se R é uma expressão de álgebra relacional, então R = 0 é uma restrição que diz “O valor
de R deve estar vazio” ou equivalentemente “Não há tuplas no resultado de R”.
7.
A álgebra relacional
Restriçõesnas relações
• A capacidade de restringir os dados que podem ser armazenados em um banco de dados.
• Existem muitos tipos de restrições podem ser expressos em álgebra relacional.
• Existem duas maneiras pelas quais podemos usar expressões de álgebra relacional para
expressar restrições.
1. Se R é uma expressão de álgebra relacional, então R = 0 é uma restrição que diz “O valor
de R deve estar vazio” ou equivalentemente “Não há tuplas no resultado de R”.
2. Se R e S são expressões de álgebra relacional, então R C S é uma restrição que diz “Cada
tupla no resultado de R também deve estar no resultado de S.”
É claro que o resultado de S pode conter tuplas adicionais não produzidas por R.
8.
A álgebra relacional
Restriçõesde integridade referencial
Afirma que um valor que aparece em um contexto também aparece em outro contexto
relacionado.
Podemos expressar de forma semelhante uma restrição de integridade referencial onde o
“valor” envolvido é representado por mais de um atributo.
9.
A álgebra relacional
Restriçõesde integridade referencial
Por exemplo, podemos querer afirmar que qualquer filme mencionado na relação StarIn
também aparece na relação Movies.
Os filmes são representados em ambas as relações por pares título-ano
10.
A álgebra relacional
Restriçõesde integridade referencial
Por exemplo, podemos querer afirmar que qualquer filme mencionado na relação StarIn
também aparece na relação Movies.
Os filmes são representados em ambas as relações por pares título-ano
11.
A álgebra relacional
RestriçõesChave
Podemos expressar algebricamente a restrição de que um determinado atributo ou conjunto de
atributos é a chave para uma relação.
Ou seja, não há duas tuplas que concordem no componente do nome.
12.
A álgebra relacional
RestriçõesChave
Podemos expressar algebricamente a restrição de que um determinado atributo ou conjunto de
atributos é a chave para uma relação.
Ou seja, não há duas tuplas que concordem no componente do nome.
13.
A álgebra relacional
RestriçõesChave
Podemos expressar algebricamente a restrição de que um determinado atributo ou conjunto de
atributos é a chave para uma relação.
Ou seja, não há duas tuplas que concordem no componente do nome.
14.
A álgebra relacional
restriçãode domínio
Suponha que desejamos especificar que os únicos valores legais para o atributo de gênero
do MovieStar são ’F’ e ’M’. Podemos expressar essa restrição algebricamente por:
15.
Introdução ao SQL
OSQL se estabeleceu claramente como o banco de dados relacional como linguagem
padrão.
Definição de dados SQL
A DDL SQL permite a especificação não apenas de um conjunto de relações, mas também
de informações sobre cada relação, incluindo:
• O esquema para cada relação.
• Os tipos de valores associados a cada atributo.
• As restrições de integridade.
• O conjunto de índices a serem mantidos para cada relação.
• As informações de segurança e autorização para cada relação.
• A estrutura física de armazenamento de cada relação em disco.
16.
Definição de dadosSQL
Tipos Básicos
• char(n): Uma cadeia de caracteres de comprimento fixo com comprimento n especificado
pelo usuário.
• varchar(n): Uma cadeia de caracteres de comprimento variável com comprimento máximo
n especificado pelo usuário.
17.
Definição de dadosSQL
Tipos Básicos
• char(n): Uma cadeia de caracteres de comprimento fixo com comprimento n especificado
pelo usuário.
• varchar(n): Uma cadeia de caracteres de comprimento variável com comprimento máximo
n especificado pelo usuário.
• int: Um número inteiro (um subconjunto finito de números inteiros que depende da
máquina).
• smallint: Um inteiro pequeno (um subconjunto do tipo inteiro dependente da máquina).
18.
Definição de dadosSQL
Tipos Básicos
• char(n): Uma cadeia de caracteres de comprimento fixo com comprimento n especificado
pelo usuário.
• varchar(n): Uma cadeia de caracteres de comprimento variável com comprimento máximo
n especificado pelo usuário.
• int: Um número inteiro (um subconjunto finito de números inteiros que depende da
máquina).
• smallint: Um inteiro pequeno (um subconjunto do tipo inteiro dependente da máquina).
• numeric (p, d): Um número de ponto fixo com precisão especificada pelo usuário. O
número consiste em p dígitos (mais um sinal) e d dos p dígitos estão à direita da vírgula
decimal. Assim, numeric(3,1) permite que 44,5 seja armazenado exatamente, mas nem 444,5
nem 0,32 podem ser armazenados exatamente em um campo deste tipo.
• real, double precision: Números de ponto flutuante e de ponto flutuante de precisão dupla
com precisão dependente da máquina.
• float(n): Um número de ponto flutuante com precisão de pelo menos n dígitos
19.
Definição de dadosSQL
Tipos Básicos
Cada tipo pode incluir um valor especial denominado valor nulo. Um valor nulo indica um
valor ausente que pode existir, mas ser desconhecido ou que pode nem existir.
20.
Introdução ao SQL
Definiçãode dados SQL
Definição de esquema básico
Nota: no livro tem a criação de todo o esquema exemplo.
21.
Introdução ao SQL
Definiçãode dados SQL
Definição de esquema básico
SQL oferece suporte a diversas restrições de integridade diferentes.
Apenas alguns deles:
Chave primária (Primary key )
Os atributos de chave primária devem ser não nulos e exclusivos
Chave estrangeira (Foreign key)
os valores dos atributos para qualquer tupla na relação devem corresponder aos valores dos
atributos da chave primária de alguma tupla na relação
Definição de esquemabásico
O comando drop table exclui todas as informações sobre a relação eliminada do banco de
dados.
Mantém a relação r, mas exclui todas as tuplas em r.
Remove registros específicos de uma tabela. Você pode usar uma cláusula WHERE para
filtrar as linhas que deseja excluir.
É um comando DML (Data Manipulation Language), pois modifica os dados da tabela.
Remove todas as linhas de uma tabela.
24.
Definição de esquemabásico
O comando drop table exclui todas as informações sobre a relação eliminada do banco de
dados.
Mantém a relação r, mas exclui todas as tuplas em r.
Remove registros específicos de uma tabela. Você pode usar uma cláusula WHERE para
filtrar as linhas que deseja excluir.
É um comando DML (Data Manipulation Language), pois modifica os dados da tabela.
Remove todas as linhas de uma tabela.
Use DELETE quando quiser remover linhas específicas com base em critérios. Use
TRUNCATE quando quiser remover todas as linhas de forma rápida e irreversível.
O DROP exclui não apenas todas as tuplas de r, mas também o esquema de r.
25.
A estrutura básicade uma consulta SQL consiste em três cláusulas: select, from e where.
Uma consulta toma como entrada as relações listadas na cláusula from
Opera sobre elas conforme especificado nas cláusulas where e select e então produz uma
relação como resultado.
Para forçar a eliminação de duplicatas, insira a palavra-chave distinta após selecionar.
26.
A estrutura básicade uma consulta SQL consiste em três cláusulas: select, from e where.
Um asterisco na cláusula select denota “todos os atributos”
A cláusula select pode conter expressões aritméticas envolvendo operação, +, –, ∗ e /, e
operando em constantes ou atributos de tuplas.
27.
A estrutura básicade uma consulta SQL consiste em três cláusulas: select, from e where.
A cláusula where especifica as condições que o resultado deve satisfazer.
Corresponde ao predicado de seleção da álgebra relacional.
Os operandos dos conectivos lógicos podem ser expressões envolvendo os operadores de
comparação <, <=, >, >=, = e <>.
28.
A estrutura básicade uma consulta SQL consiste em três cláusulas: select, from e where.
A cláusula from lista as relações envolvidas na consulta.
Corresponde à operação de produto cartesiano do álgebra relacional.
29.
A estrutura básicade uma consulta SQL consiste em três cláusulas: select, from e where.
SQL inclui um operador de correspondência de strings para comparações em strings de
caracteres.
O operador like usa padrões que são descritos com dois caracteres especiais:
• percentagem (%). O caractere % corresponde a qualquer substring.
• sublinhado (_). O caractere _ corresponde a qualquer caractere.
30.
A estrutura básicade uma consulta SQL consiste em três cláusulas: select, from e where.
SQL inclui um operador de correspondência de strings para comparações em strings de
caracteres.
Os padrões diferenciam maiúsculas de minúsculas.
Exemplos de correspondência de padrões:
• 'Intro%' corresponde a qualquer string que comece com “Intro”.
• '%Comp%' corresponde a qualquer string contendo “Comp” como substring.
• '_ _ _' corresponde a qualquer sequência de exatamente três caracteres.
• '_ _ _ %' corresponde a qualquer sequência de pelo menos três caracteres.
31.
A estrutura básicade uma consulta SQL consiste em três cláusulas: select, from e where.
Liste em ordem alfabética os nomes de todos os instrutores
Podemos especificar desc para ordem decrescente ou asc para ordem crescente, para cada
atributo; ordem crescente é o padrão
SQL inclui um operador de comparação entre
32.
Operações de conjuntos
Definiroperações união, intersecção e exceto.
• Cada uma das operações acima elimina automaticamente duplicatas
Para reter todas as duplicatas use o “all”
33.
Valores Null
O resultadode qualquer expressão aritmética envolvendo nulo é nulo
• Exemplo: 5 + nulo retorna nulo
O predicado é nulo pode ser usado para verificar valores nulos.
• Exemplo: Encontre todos os instrutores cujo salário é nulo.
O predicado em uma cláusula where pode envolver operações booleanas (e, ou, não);
portanto, as definições das operações booleanas precisam ser estendidas para lidar com o
valor desconhecido.
34.
Funções agregadas
Estas funçõesoperam no multiconjunto de valores de uma coluna de uma relação e retornam
um valor
• Encontre o salário médio dos instrutores do departamento de Ciência da Computação
• Encontre o número total de instrutores que ministram um curso no semestre da primavera
de 2018
• Encontre o número de tuplas na relação do curso
35.
Funções agregadas
Group By
Encontreo salário médio dos instrutores em cada departamento
Atributos na cláusula select fora das funções agregadas devem aparecer agrupados por lista
36.
Funções agregadas
Having
Encontre osnomes e salários médios de todos os departamentos cujo salário médio é
superior a 42.000
Nota: os predicados na cláusula Having são aplicados após a formação dos grupos,
enquanto os predicados na cláusula where são aplicados antes da formação dos grupos
37.
Subqueries
Uma subconsulta éuma expressão de seleção de onde está aninhada em outra consulta.
Cláusula From: r pode ser substituído por qualquer subconsulta válida
Cláusula Where: P pode ser substituída por uma expressão no formato:
B <operação> (subconsulta) B é um atributo e <operação> a serem definidos posteriormente.
Cláusula Selecionar:
Ai pode ser substituída por uma subconsulta que gera um único valor.
38.
Subqueries
Encontre cursos oferecidosno outono de 2017 e na primavera de 2018
Encontre cursos oferecidos no outono de 2017, mas não na primavera de 2018
39.
Subqueries
Encontre os nomesde todos os instrutores cujo salário é maior que o salário de todos os
instrutores do departamento de Biologia.
40.
Subqueries
A construção existeretorna o valor verdadeiro se a subconsulta do argumento não estiver
vazia.
Encontre todos os cursos ministrados no semestre do outono de 2017 e no semestre da
primavera de 2018
41.
Subqueries
Unique
A construção exclusivatesta se uma subconsulta possui tuplas duplicadas em seu resultado.
A construção exclusiva é avaliada como “true” se uma determinada subconsulta não contém
duplicatas.
Encontre todos os cursos que foram oferecidos no máximo uma vez em 2017
42.
Referências:
Livro Database Systems_The Complete Book -- Hector Garcia-Molina, Jeffrey D. Ullman,
Jennifer Widom -- 2nd Edition, 2008 -- Prentice Hall
Livro Silberschatz A., Korth H.F., Sudarshan S. - Database System Concepts, 7th edition – 2019
Link: https://db-book.com/slides-dir/index.html (Slide 2 Relation Model)
Dica do dia:
https://gamma.app/
Um novo meio para apresentar ideias.
Desenvolvido por IA.
Belas apresentações, documentos e sites.
O plano gratuito inclui...
20 000 entradas de tokens de IA
Gammas ilimitados e usuários
Importação básica e exportação de PPT/PDF