SlideShare a Scribd company logo
1 of 91
Download to read offline
Banco de Dados II
Prof. Marcos Miguel
marcos.a.miguel@gmail.com
http://marcosmiguel.tk
MSc. Marcos Miguel
2
BDII(Banco de Dados II)
2
◻ OBJETIVO
⬜ Mostrar e definir os conceitos relativos à criação e
organização de Sistemas de Bancos de Dados.
⬜ Fazer com que o aluno desenvolva habilidades
necessárias para a utilização da linguagem de
consulta SQL.
⬜ Possibilitar ao aluno o entendimento da
manipulação, criação e gerenciamento de um
banco de dados.
MSc. Marcos Miguel
3
BDII(Banco de Dados II)
3
◻ HABILIDADES
⬜ Desenvolver a habilidade para a implementação de
banco de dados, manipulação de dados através da
linguagem SQL e gerenciamento de um Banco de
Dados
◻ COMPETÊNCIAS
⬜ Compreender o funcionamento de Sistemas
Gerenciador de Banco de Dados, desenvolver a
capacidade de implementar, manipular e gerenciar
um Banco de Dados
◻
MSc. Marcos Miguel
4
Conteúdo Programático - Plano de
Ensino
4
◻ Unidade 1- LINGUAGEM SQL (Structured
Query Language)
⬜ 1.1. Histórico
⬜ 1.2. Conceitos
⬜ 1.3. Linguagem
⬜ 1.4. Modelo de Exemplo (MER, DTR e SQL)
⬜ 1.5. DDL (Data Definition Language)
⬜ 1.6. DML (Data Manipulation Language)
⬜ 1.7. DCL (Data Control Language)
⬜ 1.8. Stored Procedures
⬜ 1.9. Triggers
⬜ 1.10. Seqüências
MSc. Marcos Miguel
55
◻ Unidade 2. PROJETO FÍSICO
⬜ 2.1. Estrutura geral do SGBD
⬜ 2.2. Regras de integridade
⬜ 2.3. Gerência de Transação e controle de
concorrência
⬜ 2.4. Implementação e criação do script do banco
de dados (MySQL e PostgresSQL)
⬜ 2.5. Indexação
Conteúdo Programático - Plano de
Ensino
MSc. Marcos Miguel
66
◻ Unidade 3. AMBIENTE DE BANCO DE
DADOS
⬜ 3.1. Modelo de Transação
⬜ 3.2. Log do Banco de Dados
⬜ 3.3. Controle de Concorrência
⬜ 3.4. Recuperação de Paradas e Falhas
⬜ 3.5. Segurança e Integridade
◻ Unidade 4. TÓPICOS ESPECIAIS
⬜ 4.1 Tendências das novas tecnologias em Banco de Dados
⬜ 4.2 Tipos de Banco de Dados (Híbrido, Orientado a Objeto,
Distribuídos)
Conteúdo Programático - Plano de
Ensino
MSc. Marcos Miguel
7
Bibliografia
7
◻ ELMASRI, Ramez e NAVATHE, Shamkant B.
Fundamentals of Database System. Third
Edition. Ed. Addison-Wesley, 2000.
◻ KORTH, H. F. e SILBERSCHATZ, A. Sistemas
de Banco de Dados. Terceira edição, São Paulo,
Ed. McGraw Hill, 1999.
◻ HEUSER, Carlos Alberto. Projeto de Banco de
Dados. Porto Alegre. Ed. Sagra Luzzato, 1998.
MSc. Marcos Miguel
8
Bibliografia auxiliar
8
◻ DATE, C. J. Introdução a sistemas de bancos de dados.
8.ed. Rio de Janeiro: Campus, 2004.
◻ STEZER, Valdemar W.. Banco de Dados, São Paulo,
Ed. Edgar Blucher, 1986.
◻ PERIÓDICOS: Revista SQL Magazine, DevMedia.
MSc. Marcos Miguel
Manual
MySQL
http://dev.mysql.com/doc/refman/5.6/en/
MSc. Marcos Miguel
1
0
Avaliações
◻ V1 – 02/10/2017
◻ 2ā chamada (V1) – 16/10/2017
◻ VT – 27/11/2017 * Apresentação trabalho
◻ V2 – 04/12/2017
◻ 2ā chamada (V2) – 13/12/2017
◻ VS – 18/12/2017
1
0
1
1
Prof. Marcos Miguel
11
Conceitos
Introdutórios
1
2
Á LGEBRA RELACIONAL
12
◻ Matematicamente falando, uma tabela (relaç ão) é um
conjunto - um conjunto de linhas.
◻ No modelo relacional temos o BD representado como
uma coleç ão de tabelas. Quando queremos manipular
(recuperar) dados, em geral o resultado nos é
apresentado como uma tabela, derivada de alguma
forma de outras tabelas.
◻ A á lgebra relacional é um conjunto de operaç ões sobre
as relaç ões.
1
3
Á LGEBRA RELACIONAL
13
◻ OPERAÇ ÕES TRADICIONAIS
⬜ UNION (UNIÃO)
R S: Retorna uma tabela que inclui todas as tuplas que estão ou em
R ou em S, ou em ambas. Tuplas duplicadas são eliminadas.
1
4
Á LGEBRA RELACIONAL
14
◻ OPERAÇ ÕES TRADICIONAIS
⬜ INTERSECTION (INTERSEÇ ÃO)
1
5
Á LGEBRA RELACIONAL
15
◻ OPERAÇ ÕES TRADICIONAIS
⬜ SET DIFFERENCE (DIFERENÇ A)
1
6
Á LGEBRA RELACIONAL
16
◻ OPERAÇ ÕES TRADICIONAIS
⬜ CARTESIAN PRODUCT (PRODUTO CARTESIANO)
1
7
Á LGEBRA RELACIONAL
17
◻ OPERAÇ ÕES ESPECIAIS
⬜ PROJECT (PROJEÇ ÃO)
1
8
Á LGEBRA RELACIONAL
18
◻ OPERAÇ ÕES ESPECIAIS
⬜ SELECT (SELEÇ ÃO)
1
9
Á LGEBRA RELACIONAL
19
◻ OPERAÇ ÕES ESPECIAIS
⬜ DIVISION (DIVISÃO)
◻ R1 ÷ R2: A operaç ão de divisão tem tabelas como
operandos. Os nomes das colunas (e os respectivos
domı́nios) da tabela R2 (C2) devem estar contidos
dentro dos nomes das colunas (e respectivos
domı́nios) da tabela R1 (C1). A tabela resultante tem
como nomes de colunas e domı́nios aqueles que
aparecem duas em R1 mas não aparecem em R2
(C1 - C2). Para que uma linha apareç a no resultado é
necessá rio que sua concatenaç ão com cada linha da
tabela R2 apareç a também na tabela R1.
Exemplo: Todos os fornecedores das peç as 'P2' e 'P4'
R3 = Fornecimento ÷ Temp
Divide Fornecimento by Temp over CodPeç a giving R
2
0
Á LGEBRA RELACIONAL
20
◻ OPERAÇ ÕES ESPECIAIS
⬜ JOIN
2
1
Á LGEBRA RELACIONAL
21
◻ OPERAÇ ÕES ESPECIAIS
⬜ JOIN cont…
◻ Estamos trabalhando com join baseado em igualdade de valores de diferentes tabelas
(EQUIJOIN). Mas poderı́amos ter join com qualquer expressão booleana ("maior que", "menor
que", "não igual", etc). Esta operaç ão genérica de junç ão é chamada THETAJOIN.
◻ Uma operaç ao de EQUIJOIN também é representada com a seguinte sintaxe:
◻ Onde listaR e listaS indicam os nomes das colunas das tabelas R e S cujos valores serão
comparados um a um para fazer a junç ão. A segunda coluna é eliminada em cada um dos pares
que são comparados, já que os valores são idê nticos.
R = R1 * (A),(A) R2
◻ Um EQUIJOIN em que com os nomes das colunas sejam iguais é chamado NATURAL JOIN.
Neste caso, o nome das colunas não precisam ser especificados.
R = R1 * R2
2
2
SQL-STRUCTURED QUERY LANGUAGE
22
◻ Structured Query Language, ou Linguagem de Consulta Estruturada ou
SQL, é a linguagem de pesquisa declarativa padrão para banco de dados
relacional (base de dados relacional). Muitas das características originais do
SQL foram inspiradas na álgebra relacional.
◻ Histórico
⬜ SEQUEL (Structured English Query Language) - Centro de Pesquisa
San Jose da IBM (Projeto System R)
■ Rapidamente surgiram vários "dialectos" desenvolvidos por outros produtores.
Essa expansão levou à necessidade de ser criado e adaptado um padrão para a
linguagem. Esta tarefa foi realizada pela American National Standards Institute
(ANSI) em 1986 e ISO em 1987.
⬜ SQL 1 (SQL-86): Padrão ISO/ANSI. Não havia clá usula para especificar
chave; modificado em 1989
⬜ SQL 2 (SQL-92): Implementa conexão cliente/servidor
⬜ SQL 3: Em fase de aprovaç ão; implementa o Modelo Orientado a
Objeto
2
3
SQL-STRUCTURED QUERY LANGUAGE
23
◻ Conceitos
⬜ Tabela (table)
■ Equivale à relaç ão, no Modelo Relacional
⬜ Linha (row) - registros
■ Equivale à tupla, no Modelo Relacional
⬜ Coluna (column)
■ Equivale aos atributos da relaç ão, no Modelo relacional
2
4
SQL-STRUCTURED QUERY LANGUAGE
24
◻ Tipos de dados (data type)
⬜ Caracter
■ CHAR(n) ou CHARACTER(n)
■ VARCHAR(n) ou CHARACTER VARYING(n) ou CHAR VARYING(n)
⬜ Numérico
■ SMALLINT, INTEGER
■ FLOAT, DOUBLE PRECISION
■ NUMERIC(precision, scale), DECIMAL(precision,scale)
⬜ Datas
■ DATE
■ TIME
■ TIMESTAMP
⬜ BLOB (Binary Large Objects)
2
5
SQL-STRUCTURED QUERY LANGUAGE
25
◻ Domı́nios (domain)
⬜ Determina os valores possı́veis para colunas. Domı́nios
normalmente são definidos antes da criaç ão das tabelas,
para que possam ser usadas por estas
◻ Restriç ões (constraint)
⬜ Condiç ões necessá ria para manter a integridade dos
dados
◻ Visões (view)
⬜ Uma tabela cujo conteú do é derivado de outras tabelas
2
6
SQL-STRUCTURED QUERY LANGUAGE
26
◻ Banco de dados (database)
⬜ Conjunto de tabelas, domı́nios, restriç ões, visões, etc
◻ Esquema (schema)
⬜ O conceito de uma esquema SQL foi definido com o SQL2 para agrupar
tabelas e outros elementos que pertenç am a mesma aplicaç ão. Um
esquema é identificado por um nome, um identificador do usuá rio ou
conta que possui o esquema e descritores de cada elemento do
esquema.
◻ Catá logo (catalog) – Dicioná rio de dados
⬜ Em SQL2 um catá logo é uma coleç ão nomeada de esquemas em um
ambiente SQL. Pode ser entendido com um BD do sistema, que pode
ser consultado, contendo: informaç ões sobre as tabelas, visões, direitos
de acesso, identificaç ões dos usuá rios, etc. Sua forma exata é uma
caracterı́stica de cada sistema e não da SQL
2
7
SQL-STRUCTURED QUERY LANGUAGE
27
◻ Linguagem
⬜ Mais que uma linguagem de consulta, a SQL oferece funç ões para DEFINIÇ ÃO,
MANIPULAÇ ÃO e CONTROLE dos dados de um Banco de dados.
⬜ DDL (Data Definition Language)
■ CREATE: criaç ão de novas estruturas
■ ALTER: alteraç ão de estruturas existentes DROP: remoç ão de estruturas
⬜ DML (Data Manipulation Language)
■ INSERT: Inserç ão de registros
■ DELETE: remoç ão de registros
■ UPDATE: atualizaç ão de registros
■ SELECT: Seleç ão (consulta) de registros
⬜ DCL (Data Control Language)
■ GRANT: concessão de direitos de acesso a tabelas e visões
■ REVOKE: revogaç ão de direitos de acesso a tabelas e visões
2
8
SQL-STRUCTURED QUERY LANGUAGE
2
8
◻ Exemplo - DER
2
9
SQL-STRUCTURED QUERY LANGUAGE
2
9
◻ Exemplo - DTR
3
0
SQL-STRUCTURED QUERY LANGUAGE
3
0
◻ Exemplo
1
2
3
4
5
3
1
SQL-STRUCTURED QUERY LANGUAGE
3
1
◻ DDL (Data Definition Language)
Obs:
Domínios (Domain) não são aceitos no MySQL.
Podem ser utilizado em banco de dados como: PostgreSQL, Oracle, SQL Server.
3
2
SQL-STRUCTURED QUERY LANGUAGE
3
2
◻ DDL (Data Definition Language)
3
3
SQL-STRUCTURED QUERY LANGUAGE
33
3
4
SQL-STRUCTURED QUERY LANGUAGE
34
Não aceito no MySQL. Disponíveis em Banco de Dados como: PostgreSQL, Oracle, SQL Server.
3
5
SQL-STRUCTURED QUERY LANGUAGE
35
3
6
SQL-STRUCTURED QUERY LANGUAGE
36
Exemplos:
❏ Modificando colunas:
Criando e apagando chaves únicas:
Exclusivo MySQL
Exclusivo MySQL
3
7
SQL-STRUCTURED QUERY LANGUAGE
37
3
8
SQL-STRUCTURED QUERY LANGUAGE
38
3
9
SQL-STRUCTURED QUERY LANGUAGE
39
Estudo de Caso
4
0
Estudo de Caso
4
1
DDL – Banco de Dados Matricula
4
2 Criação de Tabelas e
Chaves Primárias (Primary Key)
DDL – Banco de Dados Matricula
4
3
DDL – Banco de Dados Matricula
4
4
Chaves Estrangeiras (Foreign Key)
DDL - Foreign Key
◻ Criar
◻ Deletar
4
5 4
5
DML – SQL
◻ Insert único registro
◻ Insert múltiplos registros
4
6 4
6
DML – SQL
◻ Delete - único registro
◻ Delete - múltiplos registros
4
7
Cuidado!
Esta ação
apaga
todos os
registros da
tabela
4
7
DML – SQL
◻ Update – único registro
◻ Update – múltiplos registros
4
8 4
8
DML – SQL
◻ Select - único registro
◻ Select - múltiplos registros
4
9 4
9
◻ Select
⬜ Inner join
⬜ Left join
DML – SQL
5
0 5
0
DML – SQL
◻ Select – Funções
⬜ Count - Conta o total de registros
⬜ Min – Calcula o menor valor de uma campo
5
1 5
1
DML – SQL
◻ Select – Funções
⬜ Max – Calcula o maior valor de uma campo
⬜ AVG – Calcula a média dos valores de um campo
5
2 5
2
DML – SQL
◻ Select – Funções
⬜ SUM – Soma os valores de um campo
5
3 5
3
DML – SQL
⬜ Select – Funções
■ Like – manipulação de Strings
■ “%” - Busca zero ou mais caracteres
■ “%miguel” -> todos os caracteres terminados com “miguel”
■ “miguel%” -> todos os caracteres começados com “miguel”
5
4
5
4
DML – SQL
⬜ Select – Funções
■ Like
■ “_” - desconsidera o caracter
■ “_x” -> todos os caracteres desconsiderando o
primeiro
5
5
Linha
Inicial
Máximo de
linhas
5
5
DML – SQL
◻ Select – Funções
⬜ Left – retorna os primeiros caracteres à esquerda
de uma string
⬜ Rigth – retorna os últimos caracteres à direita de
uma string
5
6 5
6
Clá usula GROUP BY
◻ Na grande maioria dos casos, as funç ões de
agregaç ão são usadas em cá lculos baseados
em grupos de linhas da tabela. A clá usula
GROUP BY é usada para dividir as linhas de
uma tabela em subgrupos menores.
◻ O SQL recupera cada grupo de linhas de
acordo com os valores da(s) expressão(ões)
especificada(s) na clá usula GROUP BY.
5
7 5
7
Clá usula GROUP BY
◻ A clá usula GROUP BY deverá vir sempre após
a clá usula WHERE (ou após a clá usula FROM
quando não existir WHERE).
◻ Quando a clá usula GROUP BY é utilizada, é
possı́vel combinar resultados individuais com
funç ões de grupo na clá usula SELECT, desde
que aqueles resultados individuais sejam
usados no GROUP BY.
5
8 5
8
Clá usula GROUP BY
◻ Exemplo:
⬜ Conta o total de pessoas utilizando a primeira
letra do alfabeto
◻ Obs:
⬜ Quando usar GROUP BY todas as colunas que são usadas no SELECT mas não são usadas
na funç ão de grupo devem ser incluı́das na clausula GROUP BY.
⬜ Usando a clá usula WHERE pode-se selecionar as linhas antes de agrupá -las.
5
9 5
9
Clá usula GROUP BY com Having
◻ A clá usula WHERE não pode ser usada para
restringir funç ões de grupo. Assim, o exemplo
seguinte não é vá lido:
◻ Os grupos definidos pela clá usula GROUP BY
podem ser filtrados pela clá usula HAVING.
6
0 6
0
Clá usula GROUP BY com Having
◻ Exemplo:
⬜ Total de pessoas agrupados por nome e filtrado
com having para as pessoas iniciadas com a letra
“m”.
6
1 6
1
Processamento SQL
◻ O processamento da instruç ão SQL pode ser
visto da seguinte forma:
■ É feito o produto cartesiano das tabelas envolvidas;
■ São selecionadas as linhas da tabela que obedecem
ao critério da clá usula WHERE;
■ São criados grupos de linhas que contenham valores
idê nticos nas colunas do GROUP BY;
■ São selecionados os grupos que atendem ao critério
da clá usula HAVING;
■ É feita a classificaç ão do resultado pelos valores das
colunas da clá usula ORDER BY;
■ É feita a projeç ão sobre as colunas especificadas no
SELECT.
6
2 6
2
Subqueries
◻ Subqueries são comandos SELECT utilizados
em condiç ões de clá usulas WHERE ou
HAVING, para prover resultados que são
utilizados para completar a consulta principal.
◻ Uma subquery que retorna apenas uma linha
como resultado é chamada "single-row
subquery". Caso mais de uma linha seja
retornada, a subquery é chamada
"multiple-row subquery".
6
3 6
3
Subqueries
◻ Os operadores = , > , >= , < , <= e <> podem
ser usados em comparaç ões com "single-row
subqueries". Os operadores IN, ANY e ALL
são usados em "multiple-row subqueries".
◻ Exemplo:
⬜ Listar o Aluno
com o maior ID
6
4 6
4
Subqueries
◻ Operadores ANY e ALL
⬜ Quando a subquery retornar mais de um valor, os
operadores ANY e ALL podem ser utilizados para
compatibilizar o resultado da subquery com o tipo
do operador de comparaç ão.
◻ Essa condiç ão será verdadeira quando
<campo> for maior que qualquer um dos
resultados da subquery.
6
5 6
5
Subqueries
◻ Operadores ANY e ALL
⬜ Essa condiç ão será verdadeira quando <campo>
for menor que qualquer um dos resultados da
subquery
⬜ Essa condiç ão será verdadeira quando <campo>
for maior que todos os resultados da subquery.
⬜ Essa condiç ão será verdadeira quando <campo>
for menor que todos os resultados da subquery.
6
6 6
6
Subqueries
◻ Operadores ANY e ALL
⬜ Exemplo: Busca todas as pessoas em que o id
seja maior que qualquer resultado no subselect
6
7
Tabela
Aluno
6
7
Subqueries
◻ Operadores IN e NOT IN
⬜ Verifica se o dado faz parte ou não da lista
fornecida. A lista pode ser formada por valores
retornados por uma subquery.
⬜ Exemplo:
■ Busca todas as pessoas que estejam na tabela de
professor
6
8 6
8
Operadores de Conjuntos
◻ Como o resultado de um query é um conjunto de
linhas você pode realizar operaç ões de conjuntos
entre queries.
■ UNION : União entre os resultados das queries;
■ INTERSECT : Interseç ão entre os resultados das
queries;
■ MINUS : Subtraç ão entre os resultados das queries.
◻ A operaç ão de união permite reunir os resultados de
duas consultas distintas em um só resultado.
Equivale à operaç ão de União da Á lgebra
Relacional. A operaç ão de união elimina as linhas
duplicadas.
6
9
6
9
Operadores de Conjuntos
◻ Exemplo:
⬜ Unificar os resultados da seleção das tabelas de
professor e aluno.
7
0
7
0
Operadores EXISTS e NOT EXISTS
◻ EXIST: retorna “verdadeiro” se uma
determinada subquery retornar ao menos uma
linha e “falso” caso contrá rio.
◻ NOT EXIST: retorna o resultado contrá rio do
operador EXIST.
⬜ Exemplo: Selecionar todas as pessoas que sejam
alunos.
7
1
7
1
Visões (views)
◻ Uma visão na terminologia SQL é uma tabela que é derivada
de outras tabelas. Uma visão não precisa existir fisicamente.
Por isso, pode ser considerada como uma tabela virtual, isto
é, uma tabela que realmente não existe como tal, mas sim
como derivaç ão de uma ou mais tabelas bá sicas.
◻ A definiç ão da visão fica armazenada no dicioná rio de dados;
esta definiç ão mostra como ela é derivada das tabelas
bá sicas.
◻ O objetivo bá sico no uso de visões é restringir o acesso a
certas porç ões dos dados por questões de seguranç a, além
de pré-definir certas consultas através de tabelas virtuais que
poderão ser utilizadas por outras consultas.
7
27
2
Visões (views)
◻ Exemplo:
⬜ Visão que retornar os professores cadastrados no banco de dados
7
3
7
3
Visões (views)
◻ DROP VIEW
7
47
4
Stored Procedures
◻ É uma biblioteca de comandos em SQL para
utilização junto ao banco de dados.
◻ Armazena tarefas repetitivas e aceita
parâmetros de entrada para que a tarefa seja
efetuada de acordo com a necessidade
individual.
⬜ Pode reduzir o tráfego na rede, melhorar a
performance de um banco de dados, cria tarefas
agendadas, diminuir riscos, cria rotinas de
processsamento em lote, cria funções a serem
utilizadas nas consultas SQL.
7
5
Stored Procedures
◻ Podem retornar um conjunto de resultados
(resultset) por meio de um select de retorno.
◻ Podem conter variáveis para controle interno e
processamento, bem como variáveis passadas
como referência para a função.
◻ Permitem instruções de fluxo IF , WHILE ,
LOOP , REPEAT e CASE
◻ Disparar um Stored Procedure:
■ CALL procedure(...)
■ EXECUTE procedure(...)
7
6
Stored Procedures
◻ Sintaxe
7
7
Stored Procedures
◻ Exemplos
7
8
Stored Procedures
◻ Exemplos
7
9
Stored Procedures
◻ Exemplos
8
0
Stored Procedures
◻ Exemplos
8
1
Stored Procedures
◻ Exemplos
8
2
Stored Procedures
◻ Exemplos
8
3
Stored Procedures
◻ Visualizar Stored Procedures criadas
8
4
Trigger
◻ Um recurso de programação executado
sempre que o evento associado ocorrer em
uma ação:
■ INSERT, UPDATE, DELETE (Ação)
■ AFTER, BEFORE (Evento)
⬜ OLD.CAMPO → valor antigo – Antes da ação
⬜ NEW.CAMPO → valor atual -> Valor corrente da
ação
8
5
Trigger
◻ Exemplo:
8
6
Trigger
◻ Exemplo:
8
7
Trigger
◻ Visualizar Triggers criadas
8
8
Eventos
◻ Disparar um ação (qualquer comando sql,
insert, update, delete ou stored procedure) em
uma data e hora determinada.
8
9
Eventos
◻ Visualizar Eventos criados
9
0
Obs: Para execução dos eventos o agendador deve ser
ligado.
Links úteis
Prof. Marcos
Miguel
91

More Related Content

What's hot

Banco de Dados II Aula 09 - Linguagem de Consulta SQL (Comandos adicionais)
Banco de Dados II Aula 09 - Linguagem de Consulta SQL (Comandos adicionais)Banco de Dados II Aula 09 - Linguagem de Consulta SQL (Comandos adicionais)
Banco de Dados II Aula 09 - Linguagem de Consulta SQL (Comandos adicionais)Leinylson Fontinele
 
Introdução a Banco de Dados
Introdução a Banco de DadosIntrodução a Banco de Dados
Introdução a Banco de DadosDaniel Brandão
 
Banco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosBanco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosLeinylson Fontinele
 
Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)
Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)
Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)Leinylson Fontinele
 
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Leinylson Fontinele
 
Curso de Delphi - Banco de Dados
Curso de Delphi - Banco de DadosCurso de Delphi - Banco de Dados
Curso de Delphi - Banco de DadosJosé Araújo
 
Modulo 4 Word E Excel
Modulo 4    Word E  ExcelModulo 4    Word E  Excel
Modulo 4 Word E ExcelWalter Cunha
 
07 LabMM4 - Bases de dados
07 LabMM4 - Bases de dados07 LabMM4 - Bases de dados
07 LabMM4 - Bases de dadosCarlos Santos
 
BD I - Aula 15 B - Criacao de tabelas
BD I - Aula 15 B - Criacao de tabelasBD I - Aula 15 B - Criacao de tabelas
BD I - Aula 15 B - Criacao de tabelasRodrigo Kiyoshi Saito
 
Aula 6
Aula 6Aula 6
Aula 6gsbq
 
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)Leinylson Fontinele
 
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)Leinylson Fontinele
 

What's hot (20)

Banco de Dados II Aula 09 - Linguagem de Consulta SQL (Comandos adicionais)
Banco de Dados II Aula 09 - Linguagem de Consulta SQL (Comandos adicionais)Banco de Dados II Aula 09 - Linguagem de Consulta SQL (Comandos adicionais)
Banco de Dados II Aula 09 - Linguagem de Consulta SQL (Comandos adicionais)
 
Aula2 - SQL
Aula2 - SQLAula2 - SQL
Aula2 - SQL
 
Introdução a Banco de Dados
Introdução a Banco de DadosIntrodução a Banco de Dados
Introdução a Banco de Dados
 
Data WareHOuse
Data WareHOuseData WareHOuse
Data WareHOuse
 
Banco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosBanco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de Dados
 
Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)
Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)
Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)
 
Sql
SqlSql
Sql
 
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
 
Curso de Delphi - Banco de Dados
Curso de Delphi - Banco de DadosCurso de Delphi - Banco de Dados
Curso de Delphi - Banco de Dados
 
Modulo 4 Word E Excel
Modulo 4    Word E  ExcelModulo 4    Word E  Excel
Modulo 4 Word E Excel
 
Aprendendo R
Aprendendo RAprendendo R
Aprendendo R
 
Aula 200309
Aula 200309Aula 200309
Aula 200309
 
07 LabMM4 - Bases de dados
07 LabMM4 - Bases de dados07 LabMM4 - Bases de dados
07 LabMM4 - Bases de dados
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
BD I - Aula 15 B - Criacao de tabelas
BD I - Aula 15 B - Criacao de tabelasBD I - Aula 15 B - Criacao de tabelas
BD I - Aula 15 B - Criacao de tabelas
 
Aula 6
Aula 6Aula 6
Aula 6
 
SQL DDL
SQL DDLSQL DDL
SQL DDL
 
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
 
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
 
Banco de dados aula 2
Banco de dados  aula 2Banco de dados  aula 2
Banco de dados aula 2
 

Similar to Bd ii material

Primeira Aula BANCO DE DADOS II_2024.pptx
Primeira Aula BANCO DE DADOS II_2024.pptxPrimeira Aula BANCO DE DADOS II_2024.pptx
Primeira Aula BANCO DE DADOS II_2024.pptxsuellencarolinerosa
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoHelder Lopes
 
Php curso de php com my sql
Php   curso de php com my sqlPhp   curso de php com my sql
Php curso de php com my sqlrobinhoct
 
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdfQuitriaSilva550
 
Introdução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel BrandãoIntrodução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel BrandãoDaniel Brandão
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQlCezar Souza
 
PostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfPostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfArleiEvaristo
 
Arquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dadosArquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dadosdiogocbj
 
6338 111121071604-phpapp01
6338 111121071604-phpapp016338 111121071604-phpapp01
6338 111121071604-phpapp01Gilson Figueredo
 
Bancos de Dados para Bibliotecarios
Bancos de Dados para BibliotecariosBancos de Dados para Bibliotecarios
Bancos de Dados para BibliotecariosLuciano Ramalho
 
Oracle 11g - Fundamentos
Oracle 11g - FundamentosOracle 11g - Fundamentos
Oracle 11g - FundamentosGustavo Sávio
 
Aula8.pptx
Aula8.pptxAula8.pptx
Aula8.pptxacsme
 
Banco de Dados.pptx
Banco de Dados.pptxBanco de Dados.pptx
Banco de Dados.pptxBrunoWuo
 
Banco de dados
Banco de dadosBanco de dados
Banco de dadosM Serafim
 
Apostila Curso Php My Sql(Portugues)
Apostila Curso Php My Sql(Portugues)Apostila Curso Php My Sql(Portugues)
Apostila Curso Php My Sql(Portugues)guestcc491
 
Funcionalidades Oracle
Funcionalidades OracleFuncionalidades Oracle
Funcionalidades Oracleharlycarreiro
 
Banco de Dados (parte 01)
Banco de Dados (parte 01)Banco de Dados (parte 01)
Banco de Dados (parte 01)Alex Camargo
 

Similar to Bd ii material (20)

Primeira Aula BANCO DE DADOS II_2024.pptx
Primeira Aula BANCO DE DADOS II_2024.pptxPrimeira Aula BANCO DE DADOS II_2024.pptx
Primeira Aula BANCO DE DADOS II_2024.pptx
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
 
Php curso de php com my sql
Php   curso de php com my sqlPhp   curso de php com my sql
Php curso de php com my sql
 
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
 
SQL Oracle
SQL OracleSQL Oracle
SQL Oracle
 
Introdução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel BrandãoIntrodução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel Brandão
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQl
 
PostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfPostgreSQL-Prático.pdf
PostgreSQL-Prático.pdf
 
Arquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dadosArquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dados
 
6338 111121071604-phpapp01
6338 111121071604-phpapp016338 111121071604-phpapp01
6338 111121071604-phpapp01
 
Bancos de Dados para Bibliotecarios
Bancos de Dados para BibliotecariosBancos de Dados para Bibliotecarios
Bancos de Dados para Bibliotecarios
 
Oracle 11g - Fundamentos
Oracle 11g - FundamentosOracle 11g - Fundamentos
Oracle 11g - Fundamentos
 
Aula8.pptx
Aula8.pptxAula8.pptx
Aula8.pptx
 
Banco de Dados.pptx
Banco de Dados.pptxBanco de Dados.pptx
Banco de Dados.pptx
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Apostila Curso Php My Sql(Portugues)
Apostila Curso Php My Sql(Portugues)Apostila Curso Php My Sql(Portugues)
Apostila Curso Php My Sql(Portugues)
 
Slide da aula 04
Slide da aula 04Slide da aula 04
Slide da aula 04
 
Funcionalidades Oracle
Funcionalidades OracleFuncionalidades Oracle
Funcionalidades Oracle
 
Sql01
Sql01Sql01
Sql01
 
Banco de Dados (parte 01)
Banco de Dados (parte 01)Banco de Dados (parte 01)
Banco de Dados (parte 01)
 

Bd ii material

  • 1. Banco de Dados II Prof. Marcos Miguel marcos.a.miguel@gmail.com http://marcosmiguel.tk
  • 2. MSc. Marcos Miguel 2 BDII(Banco de Dados II) 2 ◻ OBJETIVO ⬜ Mostrar e definir os conceitos relativos à criação e organização de Sistemas de Bancos de Dados. ⬜ Fazer com que o aluno desenvolva habilidades necessárias para a utilização da linguagem de consulta SQL. ⬜ Possibilitar ao aluno o entendimento da manipulação, criação e gerenciamento de um banco de dados.
  • 3. MSc. Marcos Miguel 3 BDII(Banco de Dados II) 3 ◻ HABILIDADES ⬜ Desenvolver a habilidade para a implementação de banco de dados, manipulação de dados através da linguagem SQL e gerenciamento de um Banco de Dados ◻ COMPETÊNCIAS ⬜ Compreender o funcionamento de Sistemas Gerenciador de Banco de Dados, desenvolver a capacidade de implementar, manipular e gerenciar um Banco de Dados ◻
  • 4. MSc. Marcos Miguel 4 Conteúdo Programático - Plano de Ensino 4 ◻ Unidade 1- LINGUAGEM SQL (Structured Query Language) ⬜ 1.1. Histórico ⬜ 1.2. Conceitos ⬜ 1.3. Linguagem ⬜ 1.4. Modelo de Exemplo (MER, DTR e SQL) ⬜ 1.5. DDL (Data Definition Language) ⬜ 1.6. DML (Data Manipulation Language) ⬜ 1.7. DCL (Data Control Language) ⬜ 1.8. Stored Procedures ⬜ 1.9. Triggers ⬜ 1.10. Seqüências
  • 5. MSc. Marcos Miguel 55 ◻ Unidade 2. PROJETO FÍSICO ⬜ 2.1. Estrutura geral do SGBD ⬜ 2.2. Regras de integridade ⬜ 2.3. Gerência de Transação e controle de concorrência ⬜ 2.4. Implementação e criação do script do banco de dados (MySQL e PostgresSQL) ⬜ 2.5. Indexação Conteúdo Programático - Plano de Ensino
  • 6. MSc. Marcos Miguel 66 ◻ Unidade 3. AMBIENTE DE BANCO DE DADOS ⬜ 3.1. Modelo de Transação ⬜ 3.2. Log do Banco de Dados ⬜ 3.3. Controle de Concorrência ⬜ 3.4. Recuperação de Paradas e Falhas ⬜ 3.5. Segurança e Integridade ◻ Unidade 4. TÓPICOS ESPECIAIS ⬜ 4.1 Tendências das novas tecnologias em Banco de Dados ⬜ 4.2 Tipos de Banco de Dados (Híbrido, Orientado a Objeto, Distribuídos) Conteúdo Programático - Plano de Ensino
  • 7. MSc. Marcos Miguel 7 Bibliografia 7 ◻ ELMASRI, Ramez e NAVATHE, Shamkant B. Fundamentals of Database System. Third Edition. Ed. Addison-Wesley, 2000. ◻ KORTH, H. F. e SILBERSCHATZ, A. Sistemas de Banco de Dados. Terceira edição, São Paulo, Ed. McGraw Hill, 1999. ◻ HEUSER, Carlos Alberto. Projeto de Banco de Dados. Porto Alegre. Ed. Sagra Luzzato, 1998.
  • 8. MSc. Marcos Miguel 8 Bibliografia auxiliar 8 ◻ DATE, C. J. Introdução a sistemas de bancos de dados. 8.ed. Rio de Janeiro: Campus, 2004. ◻ STEZER, Valdemar W.. Banco de Dados, São Paulo, Ed. Edgar Blucher, 1986. ◻ PERIÓDICOS: Revista SQL Magazine, DevMedia.
  • 10. MSc. Marcos Miguel 1 0 Avaliações ◻ V1 – 02/10/2017 ◻ 2ā chamada (V1) – 16/10/2017 ◻ VT – 27/11/2017 * Apresentação trabalho ◻ V2 – 04/12/2017 ◻ 2ā chamada (V2) – 13/12/2017 ◻ VS – 18/12/2017 1 0
  • 12. 1 2 Á LGEBRA RELACIONAL 12 ◻ Matematicamente falando, uma tabela (relaç ão) é um conjunto - um conjunto de linhas. ◻ No modelo relacional temos o BD representado como uma coleç ão de tabelas. Quando queremos manipular (recuperar) dados, em geral o resultado nos é apresentado como uma tabela, derivada de alguma forma de outras tabelas. ◻ A á lgebra relacional é um conjunto de operaç ões sobre as relaç ões.
  • 13. 1 3 Á LGEBRA RELACIONAL 13 ◻ OPERAÇ ÕES TRADICIONAIS ⬜ UNION (UNIÃO) R S: Retorna uma tabela que inclui todas as tuplas que estão ou em R ou em S, ou em ambas. Tuplas duplicadas são eliminadas.
  • 14. 1 4 Á LGEBRA RELACIONAL 14 ◻ OPERAÇ ÕES TRADICIONAIS ⬜ INTERSECTION (INTERSEÇ ÃO)
  • 15. 1 5 Á LGEBRA RELACIONAL 15 ◻ OPERAÇ ÕES TRADICIONAIS ⬜ SET DIFFERENCE (DIFERENÇ A)
  • 16. 1 6 Á LGEBRA RELACIONAL 16 ◻ OPERAÇ ÕES TRADICIONAIS ⬜ CARTESIAN PRODUCT (PRODUTO CARTESIANO)
  • 17. 1 7 Á LGEBRA RELACIONAL 17 ◻ OPERAÇ ÕES ESPECIAIS ⬜ PROJECT (PROJEÇ ÃO)
  • 18. 1 8 Á LGEBRA RELACIONAL 18 ◻ OPERAÇ ÕES ESPECIAIS ⬜ SELECT (SELEÇ ÃO)
  • 19. 1 9 Á LGEBRA RELACIONAL 19 ◻ OPERAÇ ÕES ESPECIAIS ⬜ DIVISION (DIVISÃO) ◻ R1 ÷ R2: A operaç ão de divisão tem tabelas como operandos. Os nomes das colunas (e os respectivos domı́nios) da tabela R2 (C2) devem estar contidos dentro dos nomes das colunas (e respectivos domı́nios) da tabela R1 (C1). A tabela resultante tem como nomes de colunas e domı́nios aqueles que aparecem duas em R1 mas não aparecem em R2 (C1 - C2). Para que uma linha apareç a no resultado é necessá rio que sua concatenaç ão com cada linha da tabela R2 apareç a também na tabela R1. Exemplo: Todos os fornecedores das peç as 'P2' e 'P4' R3 = Fornecimento ÷ Temp Divide Fornecimento by Temp over CodPeç a giving R
  • 20. 2 0 Á LGEBRA RELACIONAL 20 ◻ OPERAÇ ÕES ESPECIAIS ⬜ JOIN
  • 21. 2 1 Á LGEBRA RELACIONAL 21 ◻ OPERAÇ ÕES ESPECIAIS ⬜ JOIN cont… ◻ Estamos trabalhando com join baseado em igualdade de valores de diferentes tabelas (EQUIJOIN). Mas poderı́amos ter join com qualquer expressão booleana ("maior que", "menor que", "não igual", etc). Esta operaç ão genérica de junç ão é chamada THETAJOIN. ◻ Uma operaç ao de EQUIJOIN também é representada com a seguinte sintaxe: ◻ Onde listaR e listaS indicam os nomes das colunas das tabelas R e S cujos valores serão comparados um a um para fazer a junç ão. A segunda coluna é eliminada em cada um dos pares que são comparados, já que os valores são idê nticos. R = R1 * (A),(A) R2 ◻ Um EQUIJOIN em que com os nomes das colunas sejam iguais é chamado NATURAL JOIN. Neste caso, o nome das colunas não precisam ser especificados. R = R1 * R2
  • 22. 2 2 SQL-STRUCTURED QUERY LANGUAGE 22 ◻ Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é a linguagem de pesquisa declarativa padrão para banco de dados relacional (base de dados relacional). Muitas das características originais do SQL foram inspiradas na álgebra relacional. ◻ Histórico ⬜ SEQUEL (Structured English Query Language) - Centro de Pesquisa San Jose da IBM (Projeto System R) ■ Rapidamente surgiram vários "dialectos" desenvolvidos por outros produtores. Essa expansão levou à necessidade de ser criado e adaptado um padrão para a linguagem. Esta tarefa foi realizada pela American National Standards Institute (ANSI) em 1986 e ISO em 1987. ⬜ SQL 1 (SQL-86): Padrão ISO/ANSI. Não havia clá usula para especificar chave; modificado em 1989 ⬜ SQL 2 (SQL-92): Implementa conexão cliente/servidor ⬜ SQL 3: Em fase de aprovaç ão; implementa o Modelo Orientado a Objeto
  • 23. 2 3 SQL-STRUCTURED QUERY LANGUAGE 23 ◻ Conceitos ⬜ Tabela (table) ■ Equivale à relaç ão, no Modelo Relacional ⬜ Linha (row) - registros ■ Equivale à tupla, no Modelo Relacional ⬜ Coluna (column) ■ Equivale aos atributos da relaç ão, no Modelo relacional
  • 24. 2 4 SQL-STRUCTURED QUERY LANGUAGE 24 ◻ Tipos de dados (data type) ⬜ Caracter ■ CHAR(n) ou CHARACTER(n) ■ VARCHAR(n) ou CHARACTER VARYING(n) ou CHAR VARYING(n) ⬜ Numérico ■ SMALLINT, INTEGER ■ FLOAT, DOUBLE PRECISION ■ NUMERIC(precision, scale), DECIMAL(precision,scale) ⬜ Datas ■ DATE ■ TIME ■ TIMESTAMP ⬜ BLOB (Binary Large Objects)
  • 25. 2 5 SQL-STRUCTURED QUERY LANGUAGE 25 ◻ Domı́nios (domain) ⬜ Determina os valores possı́veis para colunas. Domı́nios normalmente são definidos antes da criaç ão das tabelas, para que possam ser usadas por estas ◻ Restriç ões (constraint) ⬜ Condiç ões necessá ria para manter a integridade dos dados ◻ Visões (view) ⬜ Uma tabela cujo conteú do é derivado de outras tabelas
  • 26. 2 6 SQL-STRUCTURED QUERY LANGUAGE 26 ◻ Banco de dados (database) ⬜ Conjunto de tabelas, domı́nios, restriç ões, visões, etc ◻ Esquema (schema) ⬜ O conceito de uma esquema SQL foi definido com o SQL2 para agrupar tabelas e outros elementos que pertenç am a mesma aplicaç ão. Um esquema é identificado por um nome, um identificador do usuá rio ou conta que possui o esquema e descritores de cada elemento do esquema. ◻ Catá logo (catalog) – Dicioná rio de dados ⬜ Em SQL2 um catá logo é uma coleç ão nomeada de esquemas em um ambiente SQL. Pode ser entendido com um BD do sistema, que pode ser consultado, contendo: informaç ões sobre as tabelas, visões, direitos de acesso, identificaç ões dos usuá rios, etc. Sua forma exata é uma caracterı́stica de cada sistema e não da SQL
  • 27. 2 7 SQL-STRUCTURED QUERY LANGUAGE 27 ◻ Linguagem ⬜ Mais que uma linguagem de consulta, a SQL oferece funç ões para DEFINIÇ ÃO, MANIPULAÇ ÃO e CONTROLE dos dados de um Banco de dados. ⬜ DDL (Data Definition Language) ■ CREATE: criaç ão de novas estruturas ■ ALTER: alteraç ão de estruturas existentes DROP: remoç ão de estruturas ⬜ DML (Data Manipulation Language) ■ INSERT: Inserç ão de registros ■ DELETE: remoç ão de registros ■ UPDATE: atualizaç ão de registros ■ SELECT: Seleç ão (consulta) de registros ⬜ DCL (Data Control Language) ■ GRANT: concessão de direitos de acesso a tabelas e visões ■ REVOKE: revogaç ão de direitos de acesso a tabelas e visões
  • 31. 3 1 SQL-STRUCTURED QUERY LANGUAGE 3 1 ◻ DDL (Data Definition Language) Obs: Domínios (Domain) não são aceitos no MySQL. Podem ser utilizado em banco de dados como: PostgreSQL, Oracle, SQL Server.
  • 32. 3 2 SQL-STRUCTURED QUERY LANGUAGE 3 2 ◻ DDL (Data Definition Language)
  • 34. 3 4 SQL-STRUCTURED QUERY LANGUAGE 34 Não aceito no MySQL. Disponíveis em Banco de Dados como: PostgreSQL, Oracle, SQL Server.
  • 36. 3 6 SQL-STRUCTURED QUERY LANGUAGE 36 Exemplos: ❏ Modificando colunas: Criando e apagando chaves únicas: Exclusivo MySQL Exclusivo MySQL
  • 42. DDL – Banco de Dados Matricula 4 2 Criação de Tabelas e Chaves Primárias (Primary Key)
  • 43. DDL – Banco de Dados Matricula 4 3
  • 44. DDL – Banco de Dados Matricula 4 4 Chaves Estrangeiras (Foreign Key)
  • 45. DDL - Foreign Key ◻ Criar ◻ Deletar 4 5 4 5
  • 46. DML – SQL ◻ Insert único registro ◻ Insert múltiplos registros 4 6 4 6
  • 47. DML – SQL ◻ Delete - único registro ◻ Delete - múltiplos registros 4 7 Cuidado! Esta ação apaga todos os registros da tabela 4 7
  • 48. DML – SQL ◻ Update – único registro ◻ Update – múltiplos registros 4 8 4 8
  • 49. DML – SQL ◻ Select - único registro ◻ Select - múltiplos registros 4 9 4 9
  • 50. ◻ Select ⬜ Inner join ⬜ Left join DML – SQL 5 0 5 0
  • 51. DML – SQL ◻ Select – Funções ⬜ Count - Conta o total de registros ⬜ Min – Calcula o menor valor de uma campo 5 1 5 1
  • 52. DML – SQL ◻ Select – Funções ⬜ Max – Calcula o maior valor de uma campo ⬜ AVG – Calcula a média dos valores de um campo 5 2 5 2
  • 53. DML – SQL ◻ Select – Funções ⬜ SUM – Soma os valores de um campo 5 3 5 3
  • 54. DML – SQL ⬜ Select – Funções ■ Like – manipulação de Strings ■ “%” - Busca zero ou mais caracteres ■ “%miguel” -> todos os caracteres terminados com “miguel” ■ “miguel%” -> todos os caracteres começados com “miguel” 5 4 5 4
  • 55. DML – SQL ⬜ Select – Funções ■ Like ■ “_” - desconsidera o caracter ■ “_x” -> todos os caracteres desconsiderando o primeiro 5 5 Linha Inicial Máximo de linhas 5 5
  • 56. DML – SQL ◻ Select – Funções ⬜ Left – retorna os primeiros caracteres à esquerda de uma string ⬜ Rigth – retorna os últimos caracteres à direita de uma string 5 6 5 6
  • 57. Clá usula GROUP BY ◻ Na grande maioria dos casos, as funç ões de agregaç ão são usadas em cá lculos baseados em grupos de linhas da tabela. A clá usula GROUP BY é usada para dividir as linhas de uma tabela em subgrupos menores. ◻ O SQL recupera cada grupo de linhas de acordo com os valores da(s) expressão(ões) especificada(s) na clá usula GROUP BY. 5 7 5 7
  • 58. Clá usula GROUP BY ◻ A clá usula GROUP BY deverá vir sempre após a clá usula WHERE (ou após a clá usula FROM quando não existir WHERE). ◻ Quando a clá usula GROUP BY é utilizada, é possı́vel combinar resultados individuais com funç ões de grupo na clá usula SELECT, desde que aqueles resultados individuais sejam usados no GROUP BY. 5 8 5 8
  • 59. Clá usula GROUP BY ◻ Exemplo: ⬜ Conta o total de pessoas utilizando a primeira letra do alfabeto ◻ Obs: ⬜ Quando usar GROUP BY todas as colunas que são usadas no SELECT mas não são usadas na funç ão de grupo devem ser incluı́das na clausula GROUP BY. ⬜ Usando a clá usula WHERE pode-se selecionar as linhas antes de agrupá -las. 5 9 5 9
  • 60. Clá usula GROUP BY com Having ◻ A clá usula WHERE não pode ser usada para restringir funç ões de grupo. Assim, o exemplo seguinte não é vá lido: ◻ Os grupos definidos pela clá usula GROUP BY podem ser filtrados pela clá usula HAVING. 6 0 6 0
  • 61. Clá usula GROUP BY com Having ◻ Exemplo: ⬜ Total de pessoas agrupados por nome e filtrado com having para as pessoas iniciadas com a letra “m”. 6 1 6 1
  • 62. Processamento SQL ◻ O processamento da instruç ão SQL pode ser visto da seguinte forma: ■ É feito o produto cartesiano das tabelas envolvidas; ■ São selecionadas as linhas da tabela que obedecem ao critério da clá usula WHERE; ■ São criados grupos de linhas que contenham valores idê nticos nas colunas do GROUP BY; ■ São selecionados os grupos que atendem ao critério da clá usula HAVING; ■ É feita a classificaç ão do resultado pelos valores das colunas da clá usula ORDER BY; ■ É feita a projeç ão sobre as colunas especificadas no SELECT. 6 2 6 2
  • 63. Subqueries ◻ Subqueries são comandos SELECT utilizados em condiç ões de clá usulas WHERE ou HAVING, para prover resultados que são utilizados para completar a consulta principal. ◻ Uma subquery que retorna apenas uma linha como resultado é chamada "single-row subquery". Caso mais de uma linha seja retornada, a subquery é chamada "multiple-row subquery". 6 3 6 3
  • 64. Subqueries ◻ Os operadores = , > , >= , < , <= e <> podem ser usados em comparaç ões com "single-row subqueries". Os operadores IN, ANY e ALL são usados em "multiple-row subqueries". ◻ Exemplo: ⬜ Listar o Aluno com o maior ID 6 4 6 4
  • 65. Subqueries ◻ Operadores ANY e ALL ⬜ Quando a subquery retornar mais de um valor, os operadores ANY e ALL podem ser utilizados para compatibilizar o resultado da subquery com o tipo do operador de comparaç ão. ◻ Essa condiç ão será verdadeira quando <campo> for maior que qualquer um dos resultados da subquery. 6 5 6 5
  • 66. Subqueries ◻ Operadores ANY e ALL ⬜ Essa condiç ão será verdadeira quando <campo> for menor que qualquer um dos resultados da subquery ⬜ Essa condiç ão será verdadeira quando <campo> for maior que todos os resultados da subquery. ⬜ Essa condiç ão será verdadeira quando <campo> for menor que todos os resultados da subquery. 6 6 6 6
  • 67. Subqueries ◻ Operadores ANY e ALL ⬜ Exemplo: Busca todas as pessoas em que o id seja maior que qualquer resultado no subselect 6 7 Tabela Aluno 6 7
  • 68. Subqueries ◻ Operadores IN e NOT IN ⬜ Verifica se o dado faz parte ou não da lista fornecida. A lista pode ser formada por valores retornados por uma subquery. ⬜ Exemplo: ■ Busca todas as pessoas que estejam na tabela de professor 6 8 6 8
  • 69. Operadores de Conjuntos ◻ Como o resultado de um query é um conjunto de linhas você pode realizar operaç ões de conjuntos entre queries. ■ UNION : União entre os resultados das queries; ■ INTERSECT : Interseç ão entre os resultados das queries; ■ MINUS : Subtraç ão entre os resultados das queries. ◻ A operaç ão de união permite reunir os resultados de duas consultas distintas em um só resultado. Equivale à operaç ão de União da Á lgebra Relacional. A operaç ão de união elimina as linhas duplicadas. 6 9 6 9
  • 70. Operadores de Conjuntos ◻ Exemplo: ⬜ Unificar os resultados da seleção das tabelas de professor e aluno. 7 0 7 0
  • 71. Operadores EXISTS e NOT EXISTS ◻ EXIST: retorna “verdadeiro” se uma determinada subquery retornar ao menos uma linha e “falso” caso contrá rio. ◻ NOT EXIST: retorna o resultado contrá rio do operador EXIST. ⬜ Exemplo: Selecionar todas as pessoas que sejam alunos. 7 1 7 1
  • 72. Visões (views) ◻ Uma visão na terminologia SQL é uma tabela que é derivada de outras tabelas. Uma visão não precisa existir fisicamente. Por isso, pode ser considerada como uma tabela virtual, isto é, uma tabela que realmente não existe como tal, mas sim como derivaç ão de uma ou mais tabelas bá sicas. ◻ A definiç ão da visão fica armazenada no dicioná rio de dados; esta definiç ão mostra como ela é derivada das tabelas bá sicas. ◻ O objetivo bá sico no uso de visões é restringir o acesso a certas porç ões dos dados por questões de seguranç a, além de pré-definir certas consultas através de tabelas virtuais que poderão ser utilizadas por outras consultas. 7 27 2
  • 73. Visões (views) ◻ Exemplo: ⬜ Visão que retornar os professores cadastrados no banco de dados 7 3 7 3
  • 75. Stored Procedures ◻ É uma biblioteca de comandos em SQL para utilização junto ao banco de dados. ◻ Armazena tarefas repetitivas e aceita parâmetros de entrada para que a tarefa seja efetuada de acordo com a necessidade individual. ⬜ Pode reduzir o tráfego na rede, melhorar a performance de um banco de dados, cria tarefas agendadas, diminuir riscos, cria rotinas de processsamento em lote, cria funções a serem utilizadas nas consultas SQL. 7 5
  • 76. Stored Procedures ◻ Podem retornar um conjunto de resultados (resultset) por meio de um select de retorno. ◻ Podem conter variáveis para controle interno e processamento, bem como variáveis passadas como referência para a função. ◻ Permitem instruções de fluxo IF , WHILE , LOOP , REPEAT e CASE ◻ Disparar um Stored Procedure: ■ CALL procedure(...) ■ EXECUTE procedure(...) 7 6
  • 84. Stored Procedures ◻ Visualizar Stored Procedures criadas 8 4
  • 85. Trigger ◻ Um recurso de programação executado sempre que o evento associado ocorrer em uma ação: ■ INSERT, UPDATE, DELETE (Ação) ■ AFTER, BEFORE (Evento) ⬜ OLD.CAMPO → valor antigo – Antes da ação ⬜ NEW.CAMPO → valor atual -> Valor corrente da ação 8 5
  • 89. Eventos ◻ Disparar um ação (qualquer comando sql, insert, update, delete ou stored procedure) em uma data e hora determinada. 8 9
  • 90. Eventos ◻ Visualizar Eventos criados 9 0 Obs: Para execução dos eventos o agendador deve ser ligado.