Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Bootcamp Técnico(a) de Banco de Dados 
Prof. Gustavo Aguilar
Introdução a Banco de Dados
Módulo 2
Apresentação do Professor
❑ Formação Acadêmica
❑ Atuação Acadêmica
❑ Atuação Profissional
❑ Certificações
Nesta Aula
▪ Bacharelado em Ciência da Computação (PUC Minas);
▪ Pós-Graduação em Adm. de Sistemas Ger. de Banco de 
Dados SQL Server (Newton Paiva);
▪ MBA em Ciência de Dados - Big Data (IGTI / XP Educação);
▪ Especialização em Docência do Ensino Superior (Newton 
Paiva);
▪ Mestrando em Educação com Ênfase em TIC (Universidad 
Europea del Atlántico).
Formação Acadêmica
Atuação Acadêmica
▪ Coordenador de Graduação na XP Educação:
➢ Tecnologia em Banco de Dados
➢ Tecnologia em Computação em Nuvem
▪ Coordenador de Pós-Graduação na XP Educação:
➢ MBA em Arquitetura de Software & Soluções
➢ MBA em Cloud Computing
➢ MBA em Engenharia de Software Ágil
Atuação Acadêmica
▪ Coordenador de Bootcamps na XP Educação:
➢ Analista de Banco de Dados
➢ Arquiteto Cloud Computing
➢ Arquiteto de Software
➢ Arquiteto de Soluções
➢ Engenheiro de Software Ágil
➢ Profissional AWS Cloud Computing
➢ Profissional Azure Cloud Computing
Atuação Acadêmica
▪ Professor de Pós-graduação, Graduação e Bootcamp:
➢ Aplicações com Linguagem SQL
➢ Arquitetura de Dados Escaláveis
➢ Gerenciamento de Bancos de Dados Distribuídos
➢ Introdução à Computação em Nuvem
➢ Performance e Otimização em Bancos Relacionais e NOSQL 
➢ Persistência e Pesquisa de Dados
➢ Princípios de Sistemas Distribuídos
➢ Sol. de Armazenamento, Banco de Dados e Analytics no Azure
Atuação Acadêmica
▪ Orientador de Trabalho de Conclusão de Curso (TCC);
▪ Orientador de Projeto Aplicado (PA) na XP Educação;
▪ Mentor de Carreira:
➢ Banco de Dados;
➢ Computação em Nuvem.
Atuação Profissional
▪ Database Tech Lead;
▪ Administrador de Bancos de Dados e de Ambientes Big Data;
▪ Arquiteto de Dados / Administrador de Dados;
▪ Arquiteto de Soluções em Nuvem;
▪ Administrador de Ambientes em Nuvem;
▪ Consultor em Projetos de Banco de Dados;
▪ Arquiteto Corporativo.
Certificações
Instrutor Oficial Microsoft 
(Microsoft Certified Trainer - MCT)
Certificações
gustavo.aguilar@igti.edu.br
www.linkedin.com/in/gustavoaagl
Bons estudos!
Sucesso !!
mailto:gustavo.aguilar@igti.edu.br
http://www.linkedin.com/in/gustavoaagl
❑ Apresentação do Módulo “Introdução a Banco de Dados”.
Próxima Aula
Apresentação do Módulo
❑ Descrição do Módulo
❑ Objetivos de Ensino
❑ Estrutura do Módulo
❑ Materiais Didáticos
❑ Atividades dos Alunos
❑ Distribuição de Pontos
Nesta Aula
Descrição do Módulo
Este módulo tem o objetivo de apresentar os 
conceitos iniciais para a construção do 
conhecimento na área de banco de dados,
além de começar a aplicá-los no sistema gerenciador 
de banco de dados Microsoft SQL Server.
Objetivos de Ensino
1. Compreender os conceitos da teoria de bancos de dados;
2. Compreender os papéis dos perfis profissionais da área de dados;
3. Compreender o funcionamento de um sistema gerenciador de 
banco de dados;
4. Compreender os conceitos da teoria de banco de dados relacional;
5. Compreender os conceitos e funcionamento básico do Microsoft 
SQL Server;
Objetivos de Ensino
6. Compreender a aplicabilidade da Linguagem SQL;
7. Usar instruções básicas da Linguagem SQL no SQL Server;
8. Criar e popular um banco de dados no SQL Server;
9. Compreender o mecanismo básico de segurança no SQL Server;
10. Fazer backup e restaurar bancos de dados SQL Server.
Estrutura do Módulo
Capítulo 1 - Introdução ao Mundo dos Dados 
1.1. Dado, Metadado e Pirâmide do Conhecimento 
1.2. Tipos de Dados 
1.3. Perfis de Profissionais da Área de Dados 
1.4. Escalabilidade e Elasticidade 
1.5. Tipos de Workloads de Dados 
Capítulo 3 - Sistemas Gerenciadores de Bancos de Dados (SGBD) 
3.1. Antepassados: Sistema de Processamento de Arquivos 
3.2. Características dos SGBDs 
3.3. Arquitetura ANSI/SPARC e os 3 níveis de abstração 
3.4. Tipos de SGBDS 
3.5. Tipos de Arquiteturas de SGBDs 
3.6. Componentes de um SGBD 
3.7. Funcionamento de um SGBD 
Capítulo 4 - Introdução a Banco de Dados Relacional 
4.1. Teoria de Banco de Dados Relacional 
4.2. As 12 Regras de Codd 
4.3. As Propriedades ACID 
4.4. A Linguagem SQL 
4.5 Padronização da Linguagem SQL, Classes de Instruções SQL e Dialetos 
4.6. Uma “Sopa de Letrinhas” 
Capítulo 5 - Introdução ao Microsoft SQL Server 
5.1. Introdução ao SQL Server 
5.2. Conceitos Básicos do SQL Server 
5.3. Instalação do SQL Server 
5.4. A Linguagem Transact-SQL (T-SQL) 
Estrutura do Módulo
Capítulo 6 - Ferramentas Client 
6.1. Ferramentas Client 
6.2. Instalação e Overview do SQL Server Management Studio 
6.3. Instalação e Overview do Azure Data Studio 
6.4. Instalação e Overview do Banco de Dados de Exemplo AdventureWorks 
Capítulo 7 - Utilização Básica do SQL Server 
7.1. Criação de Estruturas de Dados 
7.2. Alteração de Estruturas de Dados 
7.3. Remoção de Estruturas de Dados 
7.4. Selecionando Dados 
7.5. Demonstração: Selecionando Dados 
7.6. Ordenando Dados 
7.7. Filtrando Dados 
7.8. Inserindo Dados 
7.9. Atualizando Dados 
7.10. Excluindo Dados 
Capítulo 8 - Segurança no SQL Server 
8.1. Introdução à Segurança no SQL Server 
8.2. A Linguagem de Controle de Acesso a Dados (DCL) 
8.3. Concessão e Revogação de Privilégios na Prática 
Capítulo 9 - Backup e Restore no SQL Server 
9.1. Tipos de Backups 
9.2. Fazendo Backup de um Banco de Dados 
9.3. Restaurando um Banco de Dados 
Materiais Didáticos
✓ Apostila
✓ Aulas gravadas
✓ Slides das aulas gravadas
✓ Aula interativa ao vivo
✓ Slides da aula interativa
✓ Referências bibliográficas
Atividades dos Alunos
▪ Assistir às aulas gravadas;
▪ Tirar as dúvidas com o tutor no Fórum de Dúvidas no Canvas;
▪ Revisar conteúdo com slides das aulas gravadas e apostila;
▪ Consultar referências bibliográficas e referências adicionais;
▪ Participar do Fórum de Debates Pontuado;
▪ Assistir às aulas interativas;
▪ Fazer o Trabalho Prático;
▪ Fazer o Desafio do módulo.
Distribuição de Pontos
 Fórum de Dúvidas
 Fórum de Debates + 10 pontos
 Trabalho Prático + 25 pontos
 Desafio + 40 pontos
 Participação na 1ª. Aula Interativa + 10 pontos *
 Participação na 2ª. Aula Interativa + 10 pontos *
 Feedback + 5 pontos
TOTAL = 100 pontos
*Reposição da aula interativa (para quem não assistiu ao vivo).
❑ Capítulo 1 - Introdução ao Mundo dos Dados.
Próxima Aula
Introdução ao Mundo dos Dados
Prof. Gustavo Aguilar
Capítulo 1
Aula 1.1. Dado, Metadado e Pirâmide do 
Conhecimento
❑ Dado
❑ Metadado
❑ Informação
❑ Pirâmide do Conhecimento
Nesta Aula
Dados
▪ Coleção de fatos em uma forma bruta ou desorganizada, 
como números ou caracteres.
Exemplo: 01102008
Metadado
▪ Prefixo “Meta” vem do grego e significa “além de”;
▪ Metadados são dados acerca dos dados;
▪ Facilitam o entendimento dos relacionamentos entre 
os dados;
▪ Contribuem para a adição de contexto aos dados;
▪ Pode informar do que se trata aquele dado:
➢ 01102008 ➔ “isso é uma data”.
Informação
• Dados que foram processados ​​de forma a facilitar a visualização, 
medição e análise para um propósito específico.
• Exemplo: 01102008 ➔ isso é uma data ➔ 01 de outubro de 2008.
• Data de Casamento
Pirâmide do Conhecimento
▪ Hierarquia informacional utilizada principalmente nos campos
da Ciência da Informação e da Gestão do Conhecimento;
▪ Estruturada em quatro partes:
✓ Dados
✓ Informações
✓ Conhecimento
✓ Sabedoria;
▪ Pirâmide DIKW (Data-Information-Knowledge-Wisdom);
✓ Cada camada acrescenta certos atributos sobre a anterior.
Pirâmide do Conhecimento
▪ Dado: “matéria-prima”
▪ Estado bruto e sem significado de forma isolada.
▪ Informação: dados com significado
▪ “o quê?”, “quem?”, “onde?” ou “quando?”.
▪ Conhecimento: informação enriquecida
▪ “como?” e “por quê?”.
▪ Sabedoria: conhecimento aplicado
▪ Robotizações e Inteligência Artificial.
Pirâmidedo Conhecimento
Pirâmide do Conhecimento
Pirâmide do Conhecimento
Pirâmide do Conhecimento
▪ Dado?
✓ Caracteres e números.
▪ Informação?
✓ Imagem de Zebra.
▪ Conhecimento?
✓ Zebra com machucado.
▪ Sabedoria?
✓ Acionar mecanismos do zoológico para direcionar a zebra para o
setor veterinário.
Pirâmide do Conhecimento
❑ Tipos de Dados.
Próxima Aula
Introdução ao Mundo dos Dados
Prof. Gustavo Aguilar
Capítulo 1
Aula 1.2. Tipos de Dados
❑ Dados Estruturados
❑ Dados Semiestruturados
❑ Dados Não Estruturados
❑ Dados na Era da Informação
Nesta Aula
Dados Estruturados
▪ Em geral, armazenados no formato tabular ➔em tabelas
➢ Linha + Coluna(s) ➔ Tupla
COD_CLIENTE NOM_CLIENTE NUM_TEL_CLIENTE IND_SEXO_CLIENTE
1 JOÃO 33333333 M
2 MARIA 99999999 F
3 JOSÉ 88888888 M
4 TIAGO 66666666 M
5 PEDRO 44444444 M
6 MATEUS 11111111 M
7 ANA 77777777 F
8 TEREZA 55555555 F
9 CLLODDOVILL 90000000 D
Dados Estruturados
▪ Organizados e representados com uma estrutura rígida:
➢ Aderem a um esquema (schema físico de dados).
▪ Definição prévia de um modelo de dados:
➢ Todos os registros de uma tabela possuem as mesmas colunas 
e propriedades.
Dados Semiestruturados
▪ Não contém toda a rigidez requerida na definição dos tipos de dados 
estruturados;
▪ Procuram manter certa uniformidade no armazenamento das informações:
➢ Mantém tags e marcações internas que identificam elementos de dados 
separados.
▪ Comumente chamados de dados não relacionais ou NOSQL.
Dados Não Estruturados
▪ Não são estruturados por meio de modelos ou esquemas de dados 
predefinidos;
▪ Significa que não há restrições quanto aos tipos de dados que podem conter;
▪ Dados binários (blob) podem conter: 
✓ Documento PDF
✓ Imagem JPEG
✓ Áudio MP3
✓ Vídeo MPEG
✓ Etc.
Dados na Era da Informação
▪ Início da “Era da Internet”:
✓ Volume de dados não muito significativo;
✓ Grande parte dos dados de tipo textual;
✓ Quase a totalidade dos sistemas trabalhando com dados estruturados.
Dados na Era da Informação
▪ “Pré-era da Informação”:
✓ Expansão da Internet;
✓ Volume de dados iniciando um crescimento exponencial;
✓ Sistemas trabalhando também com dados semiestruturados.
Dados na Era da Informação
▪ Era da Informação:
✓ Uso massivo de Internet banda larga;
✓ Computação ubíqua, Internet das Coisas (IoT), Big Data, etc.;
✓ Uso intensivo de redes sociais para divulgação de informações e conteúdo;
✓ Fotos, vídeos, posts, likes, snaps, etc.;
✓ Crescimento exponencial do volume de dados (+ não estruturados);
✓ Proliferação de soluções de Big Data para lidar com esse alto volume de 
dados não estruturados;
✓ Coexistência com soluções legadas e/ou baseadas em dados estruturados 
/ semiestruturados.
Dados na Era da Informação
▪ Era da Informação
Dados na Era da Informação
▪ Papel fundamental dos Profissionais da Área de Dados:
✓ Arquiteto de Dados / Administrador de Dados (AD)
✓ Administrador de Banco de Dados (DBA)
✓ Oficial de Proteção de Dados (DPO)
✓ Analista de Banco de Dados
✓ Analista de Dados
✓ Engenheiro de Dados
✓ Cientista de Dados
✓ Etc.
❑ Perfis de Profissionais da Área de Dados.
Próxima Aula
Introdução ao Mundo dos Dados
Prof. Gustavo Aguilar
Capítulo 1
Aula 1.3. Perfis de Profissionais da Área de Dados
❑ Overview do Processo de Soluções de Dados
❑ Perfis de Profissionais de Dados
Nesta Aula
Overview do Processo de 
Soluções de Dados
Projetar a 
solução
Implantar a 
infraestrutura
para a solução
Implantar o 
processo 
(pipeline) de 
dados
Análise de Dados
Ciência de Dados
Aprendizado de 
Máquina
Etc.
Perfis de Profissionais de Dados
▪ Arquiteto de Soluções
▪ Arquiteto de Dados
▪ Administrador de Banco de Dados
▪ Engenheiro de Dados
▪ Analista de Dados
▪ Cientista de Dados
▪ Engenheiro de Inteligência Artificial
Perfis de Profissionais de Dados
Arquiteto de Soluções (Solutions Architect)
▪ Visão holística de toda a solução (visão do ecossistema);
▪ Integração das soluções;
▪ Recursos e capacidade para a solução;
▪ Estratégias de backup, monitoramento;
▪ Disponibilidade e escalabilidade da solução;
▪ Plano de Continuidade de Negócio (PCN);
▪ Custo da solução, etc.
Perfis de Profissionais de Dados
Arquiteto de Dados (Data Architect)
▪ Arquiteturas para armazenamento dos dados (centralizadas / 
distribuídas, escaláveis, etc.);
▪ Modelos de dados;
▪ Estruturas de armazenamento dos dados;
▪ Governança de dados (acesso, retenção, etc.);
▪ Administração de dados corporativos;
▪ Backup de dados de negócio, etc.
Perfis de Profissionais de Dados
Administrador de Banco de Dados (DBA)
▪ Aspectos de implantação (instalação / aprovisionamento):
✓ SGBDs;
✓ Plataformas de armazenamento de dados;
✓ Bancos de dados;
✓ Repositórios / quotas.
▪ Aspectos operacionais:
✓ Tunning e troubleshoting;
✓ Disponibilidade dos SGBDs / plataformas;
✓ Segurança de acesso aos dados.
Perfis de Profissionais de Dados
Engenheiro de Dados (Data Engineer)
▪ Projeto do Pipeline (Fluxo) de Dados ➔ETL
✓ Extração de dados;
✓ Transformação de dados;
✓ Ingestão (carga) de dados.
▪ Implementação e gerenciamento do fluxo de dados estruturados e 
não estruturados de diversas origens (fontes de dados);
▪ Construção do Data Lake (Lago de Dados).
Perfis de Profissionais de Dados
Analista de Dados (Data Analyst)
▪ Projetar e construir modelos de dados analíticos;
▪ Análises Descritivas: ajudar a responder questões acerca 
do que aconteceu;
▪ Transformar dados em informações analíticas que tenham 
valor comercial;
▪ Planejamento e gerenciamento de dashboards.
Perfis de Profissionais de Dados
Cientista de Dados (Data Scientist)
▪ Aplicação de modelos matemáticos e análises avançadas para 
ajudar a gerar valor a partir dos dados;
▪ Análises Preditivas: o que vai acontecer;
▪ Análises Prescritivas: o que precisa ser feito para atingir 
determinado objetivo;
▪ Suporte a decisões orientadas a dados (Data-Driven Decision). 
Perfis de Profissionais de Dados
Engenheiro / Analista de Inteligência Artificial
▪ Arquitetar e implementar soluções de IA
✓ Serviços cognitivos;
✓ Machine Learning;
✓ Mineração de conhecimento.
▪ Suporte a soluções de processamento de linguagem natural, 
reconhecimento de voz e imagem;
▪ Bots e agentes virtuais autonômos. 
Overview do Processo de 
Soluções de Dados
Projetar a solução Implantar a infraestrutura
para a solução
Implantar o 
processo 
(pipeline) de 
dados
Análise de Dados
Ciência de Dados
Aprendizado de 
Máquina
Etc.
Arquiteto de Soluções
Arquiteto de Dados
Adm. Banco de Dados
Adm. Big Data
Engenheiro
de Dados
Analista de Dados
Cientista de Dados
Engenheiro de IA
❑ Escalabilidade e Elasticidade.
Próxima Aula
Introdução ao Mundo dos Dados
Prof. Gustavo Aguilar
Capítulo 1
Aula 1.4. Escalabilidade e Elasticidade
❑ O Que É Escalabilidade?
❑ Escalabilidade Vertical
❑ Escalabilidade Horizontal
❑ Computação Elástica / Elasticidade
Nesta Aula
O Que É Escalabilidade?
▪ Capacidade de escalar o ambiente, ou seja, de adicionar mais recursos computacionais
✓ Poder de processamento (CPU)
✓ Cache (memória RAM)
✓ Capacidade de armazenamento (disco)
✓ Velocidade de transmissão (network)
✓ Nós de processamento (worker node)
✓ Nós de armazenamento (data node)
▪ Pode ser feita de forma transparente ou não;
▪ Pode ser vertical ou horizontal.
Escalabilidade Vertical
▪ Adicionar mais recursos (CPU, RAM, etc.) aos integrantes do ambiente;
▪ Não se altera a quantidade de integrantes do ambiente.
Escalabilidade Vertical
Escalabilidade Horizontal
▪ Adicionar novos integrantes ao ambiente;
▪ Altera-se a quantidade de integrantes do ambiente;
▪ Objetivo é dar mais capacidade de processamento paralelo (simultâneo).
Escalabilidade Horizontal
Esc. Horizontal x Vertical
Elasticidade
▪ Capacidade de aumentar e reduzir rapidamente os recursos 
computacionais de um ambiente; 
▪ Requer escalabilidade vertical / horizontal.
Elasticidade
▪ Para atender àsexigências dinâmicas, sem se preocupar com o 
planejamento de capacidade e os picos de utilização.
❑ Tipos de Workloads de Dados.
Próxima Aula
Introdução ao Mundo dos Dados
Prof. Gustavo Aguilar
Capítulo 1
Aula 1.5. Tipos de Workloads de Dados
❑ Carga de Trabalho
❑ Tipos de Workloads
❑ Workloads x Escalabilidade
Nesta Aula
Carga de Trabalho
▪ Workload;
▪ Quantidade de processamento que determinados recursos computacionais 
recebem para serem executado em um determinado momento;
▪ Definida por três propriedades:
✓ Tempo de Resposta: o tempo entre uma solicitação e uma resposta;
✓ Taxa de Transferência: quanto trabalho é realizado durante um período 
de tempo;
✓ Tipo de Workload: forma e frequência como a carga de trabalho é 
executada.
Tipos de Workloads
Existem várias classificações, mas na área de dados, a mais comum é:
➢ TRANSACIONAL: baseado em transações (unidade de trabalho
pequena e discreta) e também conhecido como OLTP (Online
Transactional Processing);
➢ ANALÍTICO: voltado para cenários de análises de dados
oriundos de diversas fontes e também conhecido OLAP
(Online Analytical Processing).
Workload OLAP
Workload OLAP
Pode acontecer de duas formas: BATCH e STREAMING.
➢ BATCH: dados são coletados em um grupo, e todo o grupo é
então processado em um momento futuro como um lote.
Workload OLAP
➢ STREAMING: cada novo dado é processado quando chega.
Batch x Streaming
❖ Quanto ao ESCOPO dos dados:
▪ Batch ➔ pode processar todos os dados do conjunto de dados.
▪ Streaming ➔ normalmente só tem acesso aos dados recebidos mais 
recentemente, ou dentro de uma janela de tempo (os últimos 30 
segundos, por exemplo).
❖ Quanto ao VOLUME / TAMANHO dos dados:
▪ Batch ➔ lida com grandes conjuntos de dados de forma eficiente.
▪ Streaming ➔ destinado a registros individuais ou micro lotes 
compostos de poucos registros.
Batch x Streaming
❖ Quanto ao DESEMPENHO:
▪ Batch ➔ a latência é normalmente de algumas horas. 
▪ Streaming ➔ o processamento normalmente ocorre imediatamente, 
com latência da ordem de segundos ou milissegundos. 
❖ Quanto à ANÁLISE:
▪ Batch ➔ análises complexas. 
▪ Streaming ➔ respostas simples, agregações ou cálculos, como 
média e desvio padrão.
Workloads x Escalabilidade
❖ BATCH: escalabilidade programa.
Capacidade
Normal
Capacidade
NormalJanela de Processamento Batch
Workloads x Escalabilidade
❖ STREAMING e OLTP: escalabilidade sobre demanda.
❑ Capítulo 2 - Introdução a Banco de Dados.
Próxima Aula
Introdução a Banco de Dados
Prof. Gustavo Aguilar
Capítulo 2
Aula 2.1. Conceitos Básicos de Banco de Dados - Parte I
❑ Banco de Dados
❑ Sistema Gerenciador de Banco de Dados
❑ Sistema de Banco de Dados
❑ Instância de Banco de Dados
Nesta Aula
Banco de Dados
Banco de Dados
➢ Mas o que é um Dado?
✓ Algo que qualifica ou é qualificado, quantifica ou é quantificado, 
e que pode ser registrado;
✓ Um fato com significado implícito;
✓ Característica, elemento ou quantidade conhecida;
✓ Elemento para a formação de um juízo 
(definição do dicionário Aurélio).
Banco de Dados
✓ Nome
✓ Cor
✓ Idade
✓ Data
✓ Local
✓ Forma, etc.
➢ Exemplos de Dados
Banco de Dados
➢ Os dados abaixo têm significado?
15/01/1950
José da Silva
56
Amarelo 91
Quadrado
Guaxupé
Banco de Dados
➢ E agora?
15/01/1950
José da Silva
56
Amarelo 91
QuadradoGuaxupé
Idade em anos
Nascimento
Natural de 
Cor 
predominante
Tamanho dos lados em cm
Banco de Dados
Banco de Dados
▪ “É uma coleção de dados inter-relacionados, representando 
informações sobre um domínio específico.” (KORTH, 1994, p.1)
▪ “É uma coleção de dados relacionados.” (ELMASRI; NAVATHE, 2011, p.4)
Banco de Dados Manual
Banco de Dados Computacional / Informatizado
SGBD
▪ Sistema Gerenciador de Banco de Dados;
▪ É uma coleção de programas, ou seja, um software, que permite aos 
usuários criar e manter um banco de dados;
▪ “Um sistema de software de propósito geral que facilita os 
processos de definição, construção, manipulação e 
compartilhamento de bancos de dados entre vários usuários e 
aplicações.” (ELMASRI; NAVATHE, 2011, p.4)
SGBD
SGBD
✓ Sistemas Gerenciadores de Bancos 
de Dados Relacionais (SGBDR);
✓ Sistemas Gerenciadores de Bancos 
de Dados NOSQL (Não Relacionais);
✓ Sistemas Gerenciadores de Bancos 
de Dados NewSQL.
Sistema de Banco de Dados
▪ Ecossistema formado pelo SGBD, o(s) banco(s) de dados, todos os dados 
manipulados e armazenados, além das aplicações que usam o banco de 
dados para inserir, alterar, excluir ou consultar dados.
Instância de Banco de Dados
▪ Processo do mecanismo de banco de dados (SGBD) executado como um 
serviço do sistema operacional;
▪ Gerencia um ou mais bancos de dados dos aplicativos; 
Instância de Banco de Dados
▪ Cada servidor pode executar várias instâncias;
▪ Aplicativos se conectam à instância para executar trabalhos em um banco de 
dados gerenciado pela instância.
❑ Conceitos Básicos de Banco de Dados - Parte II.
Próxima Aula
Introdução a Banco de Dados
Prof. Gustavo Aguilar
Capítulo 2
Aula 2.2. Conceitos Básicos de Banco de Dados - Parte II
❑ Estruturas de Armazenamento
❑ Esquema de Dados
❑ Instância de Dados
❑ Linguagem de Consulta
❑ Modelo de Dados
Nesta Aula
Estruturas de Armazenamento
▪ Onde os dados são armazenados e organizados;
▪ Exemplo: tabela para armazenar dados em um banco de dados de um sistema 
gerenciador de banco de dados relacional.
Estruturas de Armazenamento
▪ Estruturas de armazenamento adequadas para cada tipo de dado;
▪ Exemplo: tabela para armazenar dados estruturados. 
Esquema de Dados
▪ Também chamado de schema;
▪ Concepção global do banco de dados, ou seja, é a forma como o 
banco de dados está estruturado e as regras que deve seguir;
▪ Exemplo:
➢ Funcionario (nome, sexo, endereço)
✓ Nome ➔ string de 100 caracteres;
✓ Sexo ➔ string de 1 caractere;
✓ Endereço ➔ string de 200 caracteres.
Esquema de Dados
Esquema Físico
▪ Esquema de dados com os tipos de dados, propriedades e regras aplicáveis ao 
SGBD em questão.
Instância de Dados
▪ Coleção de informações armazenadas no banco de dados em um 
instante particular, ou seja, é uma fotografia do esquema de banco 
de dados;
▪ Exemplos de instâncias de 
dados para o schema
➢ Funcionario (José, M, Rua Solo 10)
➢ Funcionario (Maria, F, Rua Lagoa 20)
Linguagem de Consulta
▪ Linguagem de consulta de dados é usada para interagir com o banco de 
dados, realizando, por exemplo consulta aos dados;
▪ SQL (Structured Query Language / Linguagem de Consulta Estruturada): 
linguagem de consulta de dados mais famosa e utilizada no mundo.
Modelo de Dados
Representação abstrata e simplificada dos dados de um sistema 
real, com a qual se pode explicar ou testar o seu comportamento, 
em seu todo ou em partes. (Paulo Cougo) 
Modelo de Dados
ZONA
NUMERO ZONA
DESCRICAO ZONA
CODIGO ESTADO (FK)
LOCALIDADE
CODIGO ESTADO
NOME LOCALIDADE
CODIGO LOCALIDADE (FK)
SECAO
NUMERO SECAO
NUMERO ZONA (FK)
DESCRICAO ENDERECO
ELEITOR
NUMERO TITULO ELEITOR
NOME ELEITOR
NUMERO SECAO (FK)
NUMERO ZONA (FK)
CANDIDATO
NUMERO CANDIDATO
NUMERO PARTIDO (FK)
NOME CANDIDATO
CODIGO CARGO (FK)
CARGO
CODIGO CARGO
NOME CARGO
PARTIDO
NUMERO PARTIDO
NOME PARTIDO
SIGLA PARTIDO
E/20
NUMERO SECAO (FK)
NUMERO ZONA (FK)
NUMERO CANDIDATO (FK)
QUANTIDADE TOTAL VOTOS
LOCALIDADE
CODIGO LOCALIDADE
NOME LOCALIDADE
SGL_UF
❑ Data Warehouse, Data Lake e Big Data.
Próxima Aula
Introdução a Banco de Dados
Capítulo 2
Aula 2.3. Data Warehouse, Data Lake e Big Data
Prof. Gustavo Aguilar
❑ Data Warehouse
❑ Big Data
❑ Data Lake
❑ Data Warehouse Moderno (MDW)
Nesta Aula
Data Warehouse
▪ Armazém de dados;
▪ Depósito de dados orientado por assunto, integrado, não volátil, variável com 
o tempo, para apoiar as decisões gerenciais; (Date, 2004)
▪ Um data warehouse centraliza e consolida dados de váriasfontes e 
geralmente contém grandes quantidades de dados históricos.
Data Warehouse
▪ Um data warehouse típico geralmente inclui os seguintes 
elementos:
✓ Banco de dados relacional para armazenar e gerenciar dados 
(estruturados);
✓ Uma solução de extração, carregamento e transformação (ELT) para 
preparar os dados para análise;
✓ Análise estatística, relatórios e recursos de mineração de dados;
✓ Ferramentas de análise de clientes para visualizar e apresentar dados 
aos usuários de negócios.
Data Warehouse
▪ Processo ETL (Extract ➔ Transform ➔ Load).
Big Data
Big Data
▪ Big Data está focado principalmente em questões de volume de conjunto de
dados extremamente grandes gerados a partir de práticas tecnológicas, tais
como mídia social, tecnologias operacionais, acessos à Internet e fontes de
informações distribuídas. Big Data é essencialmente uma prática que
apresenta novas oportunidades de negócios. (Gartner Group)
▪ A intensa utilização de redes sociais online, de dispositivos móveis para
conexão à Internet, transações e conteúdos digitais, e também o crescente
uso de computação em nuvem tem gerado quantidades incalculáveis de
dados. O termo Big Data refere-se à este conjunto de dados cujo crescimento
é exponencial e cuja dimensão está além da habilidade das ferramentas
típicas de capturar, gerenciar e analisar dados. (McKinsey Global Institute)
Big Data
▪ Termo adotado pelo mercado para descrever problemas no gerenciamento e
processamento de informações de quantidades extremas, as quais excedem a
capacidade das tecnologias de informações tradicionais ao longo de uma ou
várias dimensões.
Big Data
▪ Campo que trata de maneiras de analisar, extrair sistematicamente
informações ou, de outra forma, lidar com conjuntos de dados que são muito
grandes ou complexos para serem tratados por softwares de aplicativos de
processamento de dados tradicionais.
Big Data
Big Data
▪ VOLUME: a quantidade de dados gerados, que costumava ser medida em
Gigabytes agora é medida em Zettabytes (ZB), caminhando para Yottabytes
(YB).
▪ VELOCIDADE: velocidade em que os dados são gerados e se tornam
acessíveis.
▪ VARIEDADE: de formatos, de tipos (estruturado, não estruturado e semi-
estruturado), e da natureza (numérica, data, caracter, etc.).
▪ VARIABILIDADE: mesma combinação de dados cujo significado muda
constantemente.
Big Data
▪ VERACIDADE: garantir que os dados sejam precisos, verdadeiros, fidedignos.
▪ VISUALIZAÇÃO: formas mais aderentes para visualizar grandes quantidades
de dados complexos.
▪ VALOR: transformar dados em valor, vantagem competitiva ou otimização
operacional.
Big Data
▪ Big Data é mais que um produto de software ou hardware;
▪ É um conjunto de tecnologias, processos e práticas que permitem às
empresas analisarem dados que antes não tinham acesso e tomar decisões,
ou mesmo gerenciar atividades de forma muito mais eficiente.
Data Lake
▪ Repositório centralizado projetado para armazenar, processar e
proteger grandes quantidades de dados estruturados,
semiestruturados e não estruturados;
Data Lake
▪ Processo ELT (Extract ➔ Load ➔ Transform);
▪ Usado principalmente por cientistas de dados, que aplicam modelos 
matemáticos capazes de extrair insights dos dados do Data Lake.
Data Warehouse Moderno
▪ Modern Data Warehouse (MDW);
▪ Utiliza recursos em nuvem para reunir facilmente, e em tempo mais
ágil, todos os dados em qualquer escala, sejam estruturados, não
estruturados ou semiestruturados;
▪ Traz agilidade, escalabilidade, facilidade, mais performance e
redução expressiva de custos operacionais;
▪ Permite insights para tomada de decisões de negócios mais rápidas.
Data Warehouse Moderno
❑ Projeto de Banco de Dados.
Próxima Aula
Introdução a Banco de Dados
Prof. Gustavo Aguilar
Capítulo 2
Aula 2.4. Projeto de Banco de Dados
❑ Projeto de Banco de Dados
❑ Minimundo
❑ Modelo de Dados Conceitual
❑ Modelo de Dados Lógico
❑ Modelo de Dados Físico
Nesta Aula
Pirâmide do Conhecimento
▪ Necessita de um Modelo de Dados que explique 
os relacionamentos entre os dados, gerando 
informação, para que seja possível prover 
insumos consistentes para a geração de 
conhecimento e sabedoria.
▪ Modelo de dados que preveja todos os dados 
brutos necessários.
Muito importante !!
1
Projeto de Banco de Dados
▪ Visão geral do processo de projeto de banco de dados.
*Universo do 
Discurso
Minimundo
▪ Definição da porção da realidade a ser analisada;
▪ Levantamento de requisitos, regras e interações internas e externas;
▪ Construído normalmente com entrevistas e coleta de informações;
▪ Resultado:
✓ Descrição textual 
ou
✓ Representação gráfica
1 2
3
4
Projeto de Banco de Dados
▪ Visão geral do processo de projeto de banco de dados.
*Universo do 
Discurso
Nível de 
Abstração
Minimundo
Modelo Conceitual
Modelo Lógico
Modelo Físico
Maior grau de abstração, sem 
detalhes de modelagem e/ou 
tecnologia. 
Detalhes da estrutura da 
informação, independente das 
restrições.
Detalhes baseados na 
abordagem (hierárquica, rede, 
relacional e NOSQL). 
Menor grau de abstração, com 
detalhes das estruturas internas 
do banco de dados (arquivos / 
tabelas / índices, etc.).
Projeto de Banco de Dados
1 2
3
4
Projeto de Banco de Dados
▪ Visão geral do processo de projeto de banco de dados.
5
*Universo do 
Discurso
❑ Capítulo 3 - Sistemas Gerenciadores de Bancos de Dados.
Próxima Aula
Sistemas Ger. de Bancos de Dados
Capítulo 3
Aula 3.1. Antepassados dos SGBDs
Prof. Gustavo Aguilar
❑ Sistema de Cartão Perfurado
❑ Sistema de Arquivos
Nesta Aula
Sistema de Cartão Perfurado
▪ Um cartão perfurado é um pedaço de papel rígido que contém dados digitais 
representados pela presença ou ausência de furos em posições pré-definidas;
Sistema de Cartão Perfurado
▪ Sistema de Cartão Perfurado foi inventado por Herman Hollerith, no final de 
1800;
▪ Herman desenvolveu a 
tecnologia de 
processamento de 
dados de cartão 
perfurado para o 
Censo dos EUA de 
1890.
Sistema de Cartão Perfurado
▪ Armazenamento de dados mais simples e em menor volume;
▪ Durabilidade do meio físico de armazenamento;
▪ Tempo de processamento, etc.
Sistema de Arquivos
▪ Arquivo de Computador é um recurso para armazenamento de dados, que 
está disponível a um programa de computador e é normalmente baseado em 
algum tipo de armazenamento durável.
Sistema de Arquivos
▪ Sistema de Arquivos é um sistema utilizado para
armazenar, organizar e acessar dados em um
computador de forma efetiva;
▪ Os dispositivos que utilizam sistemas de arquivos são discos rígidos, mídias
ópticas como CDs e DVDs, cartões de memória e pendrives (flash drives) e
discos flexíveis (disquetes), entre outros;
▪ Permite o armazenamento organizado de arquivos, agregando características
a cada arquivo como um nome e permissões de acesso.
Sistema de Arquivos
▪ Redundância de dados: mesma informação repetida em arquivos diferentes;
Sistema de Arquivos
▪ Inconsistência de dados: as várias cópias dos dados podem divergir ao longo 
do tempo;
Sistema de Arquivos
▪ Dificuldade de acesso aos dados: acesso sequencial;
▪ Isolamento de dados: dados espalhados em diversos arquivos ➔dificuldade 
para fazer cruzamento de dados;
▪ Desperdício de espaço de armazenamento;
▪ Problemas de integridade: como garantir que determinados valores dos 
campos satisfaçam certas restrições?
Sistema de Arquivos
▪ Problemas de atomicidade: uma operação atômica deve ocorrer por 
completo ou não ocorrer;
▪ Problemas no acesso concorrente: a interação entre atualizações 
concorrentes pode resultar em inconsistência dos dados;
▪ Linguagem de consulta não amigável;
▪ Problemas de segurança: como garantir o controle de acesso aos dados via 
permissões aos usuários?
❑ Características dos SGBDs.
Próxima Aula
Sistemas Ger. de Bancos de Dados
Capítulo 3
Aula 3.2. Características dos SGBDs
Prof. Gustavo Aguilar
❑ Propósitosde um SGBD
❑ Características Gerais de SGBDs
Nesta Aula
Propósitos de um SGBD
▪ Armazenar os dados de forma protegida contra acessos indevidos e 
contra danos ou perdas;
▪ Disponibilizar os dados de forma fácil e rápida;
▪ Isolar os usuários dos detalhes mais internos do banco de dados;
▪ Prover independência de dados (lógica e física) para as aplicações;
▪ Reduzir / eliminar redundância e inconsistência de dados;
▪ Reduzir a perda de espaço de armazenamento;
▪ Garantir a integridade dos dados;
Propósitos de um SGBD
▪ Possibilitar rapidez no acesso / manipulação do dado através de uma 
linguagem de consulta;
▪ Reduzir esforço humano no desenvolvimento / utilização dos dados;
▪ Fazer o controle de acesso / atualizações concorrentes;
▪ Possibilitar implementações de restrições de segurança e 
padronização.
Características Gerais de SGBDs
▪ Natureza autodescritiva:
✓ Definição completa ou descrição da estrutura do banco de dados e suas
restrições;
✓ Armazenadas no catálogo do SGBD➔ Dicionário de Dados;
✓ Metadados com informações como a estrutura de cada registro, o tipo e
o formato de armazenamento de cada item de dado e várias restrições
sobre os dados.
Características Gerais de SGBDs
▪ Isolamento entre os programas e dados:
✓ No armazenamento usando sistema de arquivos, a estrutura do arquivo
de dados está embutida no programa da aplicação ➔ qualquer
mudança na estrutura de dados / arquivo pode exigir alterações em
todos os programas que acessam o arquivo.
Características Gerais de SGBDs
▪ Isolamento entre os programas e dados:
✓ Garantido no SGBD com a abstração de dados:
✓ SGBDs fornecem uma representação conceitual de dados que não inclui
grandes / profundos detalhes de como ou onde o dado é armazenado, ou
como as operações de busca dos dados no disco é feita;
✓ A estrutura detalhada e a organização de cada estrutura de armazenamento
são armazenadas no catálogo (dicionário de dados do banco de dados).
Características Gerais de SGBDs
▪ Compartilhamento de dados e processamento de transação
multiusuários
✓ Um SGBD multiusuário deve permitir que diversos usuários acessem o
banco de dados ao mesmo tempo;
✓ O SGBD deve incluir um software de controle de concorrência para
garantir que diversos usuários, ao tentarem atualizar o mesmo dado, o
façam de um modo controlado, de forma a assegurar que os resultados
das atualizações sejam corretos;
Características Gerais de SGBDs
▪ Compartilhamento de dados e processamento de transação
multiusuários
✓ Utiliza o recurso de transação: um programa em execução ou processo
que inclui um ou mais acessos ao banco de dados, como a leitura ou a
atualização de registros;
✓ A propriedade de isolamento garante que cada transação possa ser efetuada
de forma isolada de outras transações, mesmo quando centenas de
transações estiverem sendo executadas simultaneamente;
✓ A propriedade de atomicidade garante que todas as operações em um banco
de dados, dentro de uma transação, sejam executadas totalmente ou
nenhuma delas.
Características Gerais de SGBDs
▪ Suporte para múltiplas visões dos dados:
✓ Cada usuário pode ter ou solicitar diferentes perspectivas ou visões do
banco de dados;
✓ Visões podem ser um subconjunto de um banco de dados (algumas
tabelas, por exemplo) ou uma visão virtual dos dados (por exemplo,
com algumas colunas apenas da tabela ou parte dos dados).
Visão do 
professor
Visão do 
aluno Smith
❑ Arquitetura ANSI/SPARC e Independência de dados.
Próxima Aula
Sistemas Ger. de Bancos de Dados
Prof. Gustavo Aguilar
Capítulo 3
Aula 3.3. Arquitetura ANSI/SPARC e Independência 
de dados
❑ Arquitetura ANSI/SPARC
❑ Independência de Dados 
Nesta Aula
Arquitetura ANSI/SPARC
▪ Tem o objetivo de separar o usuário da aplicação do banco de
dados físico;
▪ É com ela que o SGBD provê as características de abstração de
dados e as múltiplas visões dos dados;
▪ Também chamada de Arquitetura de Três Esquemas.
Arquitetura ANSI/SPARC
Arquitetura ANSI/SPARC
▪ Nível Interno ou Físico: descreve como os dados estão de fato
armazenados no banco de dados.
▪ Nível Conceitual ou Lógico: descreve quais dados estão
armazenados no banco de dados e quais os relacionamentos entre
eles.
▪ Nível Externo ou de Visão: descreve apenas parte do banco de
dados. Pode-se ter mais de uma visão do mesmo banco de dados.
Arquitetura ANSI/SPARC
▪ Nível Interno: dado em um bloco consecutivo de memória (bytes);
▪ Nível Conceitual: instância dos dados, como no exemplo;
▪ Nível Externo: Programa de Cadastro de Funcionários (programa do
exemplo que esconde os detalhes dos tipos de dados).
Exemplo: Type Funcionario = record
codigo : number;
nome : string;
sexo : string;
endereço : string;
end;
Independência de Dados
“É a capacidade de modificar a definição dos esquemas em um 
determinado nível, sem afetar o esquema do nível superior.” 
(Korth, Henry)
Independência de Dados
✓ Independência de Dados Física: capacidade de modificar o esquema 
físico sem precisar alterar a programação de acesso aos dados. 
➢ Por exemplo, modificações para melhorar o desempenho.
✓ Independência de Dados Lógica: capacidade de modificar o 
esquema lógico sem precisar alterar a programação de acesso aos 
dados. 
➢ Por exemplo, quando novas unidades de medida são inseridas no 
sistema de uma fábrica de roupas. 
Independência de Dados
❖Pergunta: Qual independência de dados é a mais difícil 
de ser alcançada?
✓ Resposta: a independência de dados lógica, pois os programas são
mais dependentes da estrutura lógica dos dados do que da forma
que o SGBD os acessa no disco.
❑ Tipos de SGBDS.
Próxima Aula
Sistemas Ger. de Bancos de Dados
Capítulo 3
Aula 3.4. Tipos de SGBDS
Prof. Gustavo Aguilar
❑ SGBD Hierárquico
❑ SGBD em Rede
❑ SGBD Orientado a Objetos
❑ SGBD Relacional
❑ SGBD Não Relacional
❑ SGBD New SQL
Nesta Aula
SGBD Hierárquico
▪ Conecta registros numa estrutura de dados em árvore através de 
ligações, de tal modo que cada tipo de registro tenha apenas um 
possuidor;
▪ Registros eram armazenados com ponteiros entre eles;
SGBD Hierárquico
▪ Queries tinham que processar uma tupla por vez, percorrendo a 
estrutura hierárquica ➔ Sistema de “Navegação”.
Roupa
SGBD Hierárquico
▪ Não havia independência entre os esquemas lógico e físico;
▪ Muito esforço de programação para usar banco de dados 
hierárquico;
▪ Exemplo: IMS (Information Management System) da IBM.
SGBD de Rede
▪ Organização semelhante à dos SGBDs hierárquicos, mas eliminando 
o conceito de hierarquia:
✓ Permite que um mesmo 
registro esteja envolvido 
em várias associações, ou 
seja, um registro filho 
pode ser ligado a mais de 
um registro pai, criando 
conexões bastante 
complexas.
SGBD de Rede
▪ Bastante utilizado em sistemas para computadores de grande porte
(mainframe);
▪ A estrutura é formada de entidade (registros), atributos (itens de
dados), tipo de registro e ocorrência do registro;
▪ Assim como no hierárquico, as aplicações devem ser construídas
para atravessar um conjunto de registros interligados previamente.
▪ Exemplos:
✓ CODASYL (Comitee for Data Systems Language)
✓ ADABAS (Adaptable DAta BAse System) da Software AG
✓ RDM (Raima Database Manager) / db_VISTA
SGBD Orientado a Objetos
▪ Dados são armazenados na forma de objetos, ou seja, utilizando a
estrutura de dados denominada orientação a objetos, a qual
permeia as linguagens modernas de programação;
▪ Referenciado por OODBMS (Object-Oriented Database Management System)
ou SGBDOO.
SGBD Orientado a Objetos
▪ Dados só podem ser manipulados pelos métodos definidos pela
classe de que estes objetos pertencem;
▪ Os objetos são organizados numa hierarquia de tipos e subtipos
que recebem as características de seus supertipos (herança);
▪ Os objetos podem conter referências para outros objetos, e as
aplicações acessam os dados usando navegação de programação.
▪ Exemplos:
✓ ORION
✓ GemStone
✓ Caché
SGBD Relacional▪ Surgiu com a Teoria Relacional de Edgar Frank Codd, que se baseou
na Teoria de Conjuntos e Álgebra Relacional;
▪ Registros armazenados de forma tabular;
▪ Possui linguagem de alto nível (declarativa);
▪ Possui alta independência de esquemas;
✓ Queries independentes do meio físico.
▪ Regras de negócio podendo estar no banco de dados;
▪ Exemplos: MySQL, Oracle, SQL Server, Sybase, PostgreSQL, DB2 etc.
SGBD Não Relacional
▪ NOSQL➔ Not Only SQL;
▪ Propósito de gravar e recuperar grande volume de dados de forma
mais rápida ➔ Filosofia da Agregação Atômica;
▪ Regras de negócio voltam para a camada de aplicação;
▪ Altamente escaláveis horizontalmente (além de verticalmente);
▪ Dados semiestruturados e esquema de dados flexível;
SGBD Não Relacional
▪ Quatro principais famílias de SGBDs NOSQL;
▪ Exemplos: Cassandra, MongoDB, CouchDB, DynamoDB, Hbase,
MemcacheDB, Redis, Neo4j, OrientDB etc.;
▪ http://nosql-database.org
http://nosql-database.org/
SGBD NewSQL
▪ SGBDD Relacional que procura fornecer o mesmo desempenho
escalável de um SGBD NOSQL;
▪ Exemplos: Amazon Aurora, CockroachDB, CosmosDB, novas engines
otimizadas (MySQL NDB Cluster, SQL Server Column Store, etc.).
Linha do Tempo dos SGBDs
NOSQL2000’s200090’s80’s 
Bancos de dados 
hierárquicos, de 
rede ou dos 
dominantes bancos 
relacionais
Surgimento da 
Internet (www) / 
Necessidades novas 
de armazenamento 
e processamento da 
massa de dados
SGBDRs
centralizados não 
atenderiam às 
demandas futuras
Procura por bancos 
de dados 
distribuídos, de fácil 
escalabilidade e alto 
desempenho
Nesse contexto, se 
começa a falar em 
gerenciadores de 
bancos de dados 
NOSQL.
Big Data
❑ Tipos de Arquiteturas de SGBDs.
Próxima Aula
Sistemas Ger. de Bancos de Dados
Capítulo 3
Aula 3.5. Tipos de Arquiteturas de SGBDs
Prof. Gustavo Aguilar
❑ Arquitetura Monolítica
❑ Arquitetura Cliente-Servidor
❑ Arquitetura Centralizada
❑ Arquitetura Distribuída
Nesta Aula
Arquitetura Monolítica
▪ Banco de dados e aplicação no mesmo servidor;
▪ Acesso do usuário final centralizado nesse servidor único.
Arquitetura Monolítica
▪ Vantagens:
✓ Mais fácil de gerenciar;
✓ Comunicação mais rápida entre o banco de dados e a aplicação, por ser 
local.
▪ Desvantagens:
✓ Difícil de escalar ➔ somente verticalmente;
✓ Degradação de performance da aplicação gera impactos no banco de 
dados e vice-versa; 
✓ Indisponibilidade do servidor indisponibiliza o acesso à aplicação e aos 
dados armazenados no banco de dados.
Arquitetura Monolítica
▪ Desvantagens:
✓ SPOF (Single Point Of Failure) ou ponto único de falha: Local no sistema 
que, caso falhe, provoca a falha de todo o sistema.
Arquitetura Cliente-Servidor
▪ Camada de banco de dados separada da camada da aplicação.
Arquitetura Cliente-Servidor
▪ Vantagens: 
✓ Independência entre a camada da aplicação e do banco de dados; 
✓ Isolamento entre a camada de aplicação e a camada de banco de dados;
✓ Segurança e controles adequados para cada camada.
▪ Desvantagens: 
✓ Introduz latência de comunicação entre a aplicação e o banco de dados; 
✓ Necessidade de mais recursos (hardware, software) ➔mais custos;
✓ Aumento da complexidade de administração.
Arquitetura Cliente-Servidor
✓ SPOF pode continuar a existir e carece atenção!
Servidor de Aplicação
Servidor de 
Banco de Dados
Arquitetura Centralizada
▪ Camada de banco de dados sem redundância ➔ dados 
centralizados em um único sistema de armazenamento;
▪ Processamento centralizado de consultas e transações;
▪ Pode usar componentes físicos únicos (topologia stand alone) ou 
compartilhados (topologia cluster com alta disponibilidade do 
servidor / SGBD).
Arquitetura Centralizada
Node 1 Node 2 Node 3 Node 4
Private Network
Public Network
Clients
SQL Server
Instance 1
SQL Server
Instance 1
SQL Server
Instance 1
SQL Server
Instance 1
Shared Storage 
(SAN/SMB)
Cluster Failover
Arquitetura Centralizada
Node 1 Node 2 Node 3 Node 4
Private Network
Public Network
Clients
SQL Server
Instance 1
SQL Server
Instance 1
SQL Server
Instance 1
SQL Server
Instance 1
Shared Storage 
(SAN/SMB)
Cluster Failover
Arquitetura Centralizada
▪ Vantagens:
✓ Tolerância à falhas na camada dos servidores de banco de dados.
▪ Desvantagens:
✓ Sistema de armazenamento ainda continua único, sem tolerância à 
falhas na camada de acesso aos dados; 
✓ Necessidade de mais recursos (hardware, software) ➔mais custos;
✓ Em topologia ativo-passivo ➔ociosidade de hardware;
✓ Aumento ainda maior da complexidade de administração e instalação.
Arquitetura Centralizada
✓ SPOF pode continuar a existir e carece atenção!
Node 1 Node 2 Node 3 Node 4
Private Network
Public Network
Clients
SQL Server
Instance 1
SQL Server
Instance 1
SQL Server
Instance 1
SQL Server
Instance 1
Shared Storage 
(SAN/SMB)
Cluster Failover
Arquitetura Distribuída
▪ “Um sistema constituído por um conjunto de computadores 
independentes, visto pelos utilizadores do sistema como sendo um 
sistema coerente e único.” (Tanenbaum - Sistemas Distribuídos: Princípios e Paradigmas)
Percepção do UsuárioTopologia
Arquitetura Distribuída
▪ Vantagens:
✓ Alta disponibilidade na camada de banco de dados;
✓ Tolerância à falhas na camada de armazenamento de dados, devido à 
utilização de distribuição de dados ➔ replicação / particionamento;
✓ Escalabilidade horizontal e vertical mais fácil de se implementar.
▪ Desvantagens:
✓ Necessidade de mais recursos (hardware, software) ➔mais custos;
✓ Controles a mais para garantir a integridade / consistência de dados;
✓ Aumento ainda maior da complexidade de administração e instalação.
Arquitetura Distribuída
Arquitetura Distribuída
✓ Possibilita eliminar SPOF na camada de banco de dados!
Servidor de Aplicação
Banco de Dados
Banco de Dados
Arquitetura Distribuída
❖ É possível eliminar 100% ???
Datacenter em Porto Alegre
❑ Componentes e Funcionamento de um SGBD.
Próxima Aula
Sistemas Ger. de Bancos de Dados
Capítulo 3
Aula 3.6. Componentes e Funcionamento de um SGBD
Prof. Gustavo Aguilar
❑ Componentes de um SGBD
❑ Funcionamento de um SGBD
Nesta Aula
Componentes de um SGBD
Componentes de um SGBD
❖ Arquivos de Dados
✓ Conjunto de arquivos (os dados em si).
❖ Dicionário / Catálogo de Dados
✓ Metadados do SGBD e bancos de dados.
❖ Gerenciador de Arquivos
✓ Gerencia a alocação do espaço necessário para a armazenagem do 
arquivo no disco e as estruturas de dados utilizadas para representar a 
informação armazenada.
Componentes de um SGBD
❖ Gerenciador de Banco de Dados
✓ Fornece a interface entre os dados armazenados, os programas de 
aplicação e as solicitações submetidas ao sistema;
✓ Interage com o Gerenciador de Arquivos;
✓ Responsável pelo controle de segurança, controle de concorrência, 
integridade, cópias de segurança e recuperação.
❖ Processador de Consultas
✓ Traduz comandos numa linguagem de consulta em instruções de baixo 
nível, que são reconhecidas pelo Gerenciador de Banco de Dados.
Componentes de um SGBD
❖ Pré-Compilador DML
✓ Converte comandos DML embutidos em um aplicativo para chamadas 
na linguagem hospedeira;
✓ Interage com o Processador de Consulta para gerar o código apropriado.
❖ Compilador DDL
✓ Converte comandos DDL em um conjunto de tabelas contendo 
Metadados, que são armazenados no Catálogo de Dados;
❖ Índices
✓ Usados para performance e otimização nas operações com os dados.
Funcionamento de um SGBD
2
1. O programa de aplicação chama o SGBD para ler um registro lógico,
fornecendo critérios para a pesquisa.
Funcionamento de um SGBD
2
2. O SGBD verifica se o que o usuário quer ler existe e se ele tem
autorização para isso.
Funcionamento de um SGBD
2
3. O SGBD verifica na visão lógica quais os tipos de dados lógicos
necessários.
Funcionamento de um SGBD
2
4. O SGBD examina a descrição física e determina quais os registros físicos
a serem lidos.
Funcionamento deum SGBD
2
5. O SGBD emite uma ordem ao sistema operacional para que ele faça a
leitura dos registros solicitados.
Funcionamento de um SGBD
2
6. O sistema operacional interage com o meio físico onde os dados estão
armazenados.
Funcionamento de um SGBD
2
7. Os dados são transferidos para um buffer do sistema.
Funcionamento de um SGBD
2
8. O SGBD compara o sub-esquema (visão do usuário) com o esquema
(visão global), extraindo dos dados do buffer o registro lógico solicitado.
Funcionamento de um SGBD
2
9. O SGBD transfere os dados do buffer para a área de comunicação no
programa de aplicação.
Funcionamento de um SGBD
2
10. O SGBD fornece um código de status ao programa, informando o
resultado da operação, inclusive se houve algum erro.
Funcionamento de um SGBD
2
11. O programa de aplicação reassume o controle, podendo operar com os
dados na área de comunicação.
❑ Capítulo 4 - Introdução a Banco de Dados Relacional.
Próxima Aula
Introd. a Banco de Dados Relacional
Capítulo 4
Aula 4.1. Teoria de Banco de Dados Relacional
Prof. Gustavo Aguilar
❑ O Modelo de Dados Relacional
❑ Elementos do Modelo Relacional
Nesta Aula
O Modelo de Dados Relacional
▪ Criado por Edgar Frank Codd, em junho de 1970;
✓ Artigo A Relational Model of Data for Large Shared Data Banks.
▪ Representação dos dados é independente de como eles são 
organizados internamente nos servidores;
▪ Representação tabular dos dados;
▪ Baseado na Álgebra Relacional.
O Modelo de Dados Relacional
▪ Dados sendo vistos como uma tupla➔ linha formada por uma lista 
ordenada de colunas;
▪ Facilidade para manipular e visualizar dados ➔ “boom” do modelo.
COD_CLIENTE NOM_CLIENTE NUM_TEL_CLIENTE IND_SEXO_CLIENTE
1 JOÃO 33333333 M
2 MARIA 99999999 F
3 JOSÉ 88888888 M
4 TIAGO 66666666 M
5 PEDRO 44444444 M
6 MATEUS 11111111 M
7 ANA 77777777 F
8 TEREZA 55555555 F
9 CLLODDOVILL 90000000 D
Elementos do Modelo Relacional
▪ Tabela: objeto para armazenamento lógico dos dados;
▪ Domínio: natureza dos valores. Exemplos:
✓ CODIGO CLIENTE ➔NUMBER
✓ NOME CLIENTE ➔ STRING
✓ DATA NASCIMENTO ➔DATE
▪ Coluna (campo): atributo do modelo conceitual + domínio do dado;
TIPO_PRODUTO
COD_TIPO_PRODUTO: Number
DSC_TIPO_PRODUTO: String
Elementos do Modelo Relacional
▪ Chave Primária (Primary Key / PK): coluna(s) que identificam 
unicamente uma linha (tupla) em uma tabela;
➢ Exemplos: ID ÚNICO, CÓDIGO DO CLIENTE, CPF.
▪ Chave Candidata: não repetem valor e podem ser PK;
➢ Exemplos: TÍTULO DO ELEITOR, RG, CPF.
▪ Chave Estrangeira (Foreign Key / FK): elo de ligação entre tabelas.
ESTILO
CODIGO ESTILO: Number
NOME ESTILO: String
MUSICA
CODIGO MUSICA: Number
NOME MUSICA: String
CODIGO ESTILO: Number (FK)
QUANTIDADE TEMPO MUSICA: String
Elementos do Modelo Relacional
▪ Cardinalidade: além de representar a quantidade de elementos das
entidades envolvidos na relação, indicam também as restrições de
nulidade das chaves estrangeiras.
➢ Notação Information Engineering (IE)
Elementos do Modelo Relacional
▪ Cardinalidades 0,1 e 0,N➔ chaves estrangeiras podem ser nulas.
▪ Cardinalidades 1:0,N e 1:0,1 ➔ chaves estrangeiras não nulas.
PRODUTO
COD_PRODUTO: Number NOT NULL
NOM_PRODUTO: String NOT NULL
COD_TIPO_PRODUTO: Number NULL (FK)
DSC_PRODUTO: String NULL
VLR_PRODUTO: Number NOT NULL
TIPO_PRODUTO
COD_TIPO_PRODUTO: Number NOT NULL
DSC_TIPO_PRODUTO: String NULL
0,1:
1:
Elementos do Modelo Relacional
▪ Restrições de Integridade
✓ Regra que garante a consistência dos dados em um relacionamento
entre duas tabelas;
✓ São implementadas por um recurso dos bancos de dados relacionais
chamado CONSTRAINT;
✓ Restricit (R): não permite deletar um registro que seja chave estrangeira
✓ Cascade (C): deleção em cascata
✓ Set Null (S): seta chave estrangeira para nulo
Elementos do Modelo Relacional
✓ Restricit (R): não permite deletar um registro que seja chave estrangeira
✓ Cascade (C): deleção em cascata
✓ Set Null (S): seta chave estrangeira para nulo
Elementos do Modelo Relacional
▪ Restrições de Integridade ➔ algoritmo para auxiliar a definição.
Elementos do Modelo Relacional
▪ Modelo de dados relacional de um Sist. de Agência de Turismo p/ o SGBDR Oracle.
FK_CLIENTE_SOLISERV_01
FK_SERVICO_ITSOLSER_01
FK_FORNEC_SERVICO_01
FK_FORMAPAG_SERVICO_01
FK_ATEND_SOLISERV_01
FK_FORMAPAG_SOLISERV_01
FK_SOLISERV_ITSOLSER_01
CLIENTE
COD_CLIENTE: NUMBER(5)
NOM_CLIENTE: VARCHAR2(50)
DSC_ENDERECO_COBRANCA: VARCHAR2(100)
NUM_TELEFONE: NUMBER(12)
SERVICO
COD_SERVICO: NUMBER(3)
COD_FORNECEDOR: NUMBER(3) (FK)
COD_FORMA_PAGAMENTO: NUMBER(2) (FK)
DSC_SERVICO: VARCHAR2(50)
VLR_SERVICO: NUMBER(10,2)
FORNECEDOR
COD_FORNECEDOR: NUMBER(3)
NOM_FORNECEDOR: VARCHAR2(50)
DSC_ENDERECO: VARCHAR2(100)
NUM_TELEFONE: NUMBER(12)
ATENDENTE
COD_ATENDENTE: NUMBER(3)
NOM_ATENDENTE: VARCHAR2(50)
FORMA_PAGAMENTO
COD_FORMA_PAGAMENTO: NUMBER(2)
DSC_FORMA_PAGAMENTO: VARCHAR2(20)
ITEM_SOLICITACAO_SERVICO
COD_ITEM_SOLICITACAO: NUMBER(5)
NUM_SOLICITACAO_SERVICO: NUMBER(5) (FK)
COD_SERVICO: NUMBER(3) (FK)
QTD_SERVICO: NUMBER(2)
VLR_TOTAL_ITEM: NUMBER(10,2)
SOLICITACAO_SERVICO
NUM_SOLICITACAO_SERVICO: NUMBER(5)
COD_CLIENTE: NUMBER(5) (FK)
COD_ATENDENTE: NUMBER(3) (FK)
DAT_SOLICITACAO: DATE
VLR_TOTAL_SOLICITACAO: NUMBER(10,2)
IND_UNIFICACAO_FORMA_PAGAMENTO: CHAR(1)
COD_FORMA_PAGAMENTO: NUMBER(2) (FK)
❑ As Doze Regras de Codd.
Próxima Aula
Introd. a Banco de Dados Relacional
Capítulo 4
Aula 4.2. As Doze Regras de Codd
Prof. Gustavo Aguilar
❑ As Doze Regras de Codd
Nesta Aula
As Doze Regras de Codd
▪ Publicadas em 1981, com o propósito de definir o que seria
necessário para um SGBD ser considerado relacional;
▪ Proteger a visão relacional, dos fornecedores de SGBDs;
▪ Numeradas de 1 à 12;
▪ REGRA 0 - Regra Base para Toda as Outras
✓ Gerenciamento exclusivamente pelas capacidades relacionais do SGBD.
▪ REGRA 1 - A Regra da Informação
✓ Representada explicitamente no nível lógico e por valores em tabelas.
As Doze Regras de Codd
▪ REGRA 2 - Regra de Garantia de Acesso
✓ Logicamente acessível com nome da tabela + chave + coluna.
▪ REGRA 3 - Tratamento Sistemático de Valores Nulos
✓ Possibilidade de valores nulos para as colunas.
▪ REGRA 4 - Catálogo Online e Dinâmico Baseado no Mod. Relacional
✓ Representado e armazenado no nível lógico da mesma forma que os
dados das aplicações;
✓ Usuários autorizados conseguem acessar este catálogo da mesma forma
que acessam os dados regulares.
As Doze Regras de Codd
▪ REGRA 5 - Regra da Linguagem de Dados Compreensiva
✓ Linguagem de alto nível;
✓ Abstrai, para os usuários, os detalhes internos da engine do banco de
dados e do “bit-a-bit” do armazenamento dos dados;
✓ Linguagem declarativa para realizar as operações a seguir:
✓ Definição de dados e de visões;
✓ Manipulação de dados (interativo e por programa);
✓ Restrições de integridade;
✓ Autorização;
✓ Controle de transação (begin, commit e rollback).
As Doze Regras de Codd
▪ REGRA 6 - Regra da Atualização de Visões
▪ REGRA 7 - Inserções, Atualizações e Deleções de Alto Nível
✓ Otimização das tarefas do SGBD e melhor experiência do usuário.
▪ REGRA 8 - Independência Física dos Dados
✓ Imutabilidade dos programas quando de alterações na camada de
armazenamento dos dados.
▪ REGRA 9 - Independência Lógica dos Dados
✓ Imutabilidade dos comandos de manipulação de dados após alterações
em estruturas de tabelas que preservem os dados originais das mesmas.
As Doze Regras de Codd
▪ REGRA 10 - Independência de Integridade
✓ Deixa à cargo do banco de dados a garantia da integridade dos dados.
▪ REGRA 11 - Independência de Distribuição
✓ Imutabilidade dos programas quando uma distribuição de dados for
introduzida no banco de dados ou quando os dados forem
redistribuídos.
▪ REGRA 12 - Regra de Não Subversão
✓ Bloquear as intervenções diretas nos dados através de interfaces de
baixo nível, de forma a preservar as regras relacionais do SGBD.
❑As Propriedades ACID.
Próxima Aula
Introd. a Banco de Dados Relacional
Capítulo 4
Aula 4.3. As Propriedades ACID
Prof. Gustavo Aguilar
❑ Transação
❑ Propriedades ACID
❑ Atomicidade
❑ Consistência
❑ Isolamento
❑ Durabilidade
Nesta Aula
Transação
▪ Uma sequência de instruções executadas no SGBD.
Transação 1
Transação 2
Transação3
Propriedades ACID
▪ Propriedades das transações em bancos de dados relacionais;
▪ Garantem a integridade e consistência dos dados.
Atomicidade
▪ A transação será executada totalmente ou não será executada;
✓ Transação atômica.
▪ Requer que as transações sejam “tudo ou nada” (“all or nothing”);
✓ Se uma parte da transação falhar, a transação inteira deve falhar;
✓ O estado do banco de dados permanecer inalterado.
Consistência
▪ Qualquer transação levará o banco de dados de um estado válido a
outro;
▪ Em caso de sucesso, a transação cria
um novo estado válido dos dados;
▪ Em caso de falha, retorna todos os
dados ao estado imediatamente
anterior ao início da transação.
Isolamento
▪ Execuções concorrentes (em paralelo) de transações resultam em
um estado do banco de dados que seria obtido caso as transações
fossem executadas serialmente;
▪ Uma transação em andamento,
mas ainda não validada,
permanece isolada de qualquer
outra operação, garantindo que a
transação não sofra interferência
de nenhuma outra transação
concorrente.
Durabilidade
▪ Uma vez que uma transação tenha sido confirmada, ela
permanecerá assim, mesmo no caso de um reinício do sistema,
crash, falta de energia ou erros posteriores.
❑ A Linguagem SQL.
Próxima Aula
Introd. a Banco de Dados Relacional
Capítulo 4
Aula 4.4. A Linguagem SQL
Prof. Gustavo Aguilar
❑ Surgimento da Linguagem SQL
❑ Características da Linguagem SQL
Nesta Aula
Surgimento da Linguagem SQL
Final 197419741972/7319711970 
Codd publica a 
Teoria de Banco de 
Dados Relacional 
(enquanto 
pesquisador da IBM)
Codd procura 
grandes clientes da 
IBM para mostrar-
lhes o potencial e 
benefícios do 
modelo relacional
IBM “forçada” a 
incluir, no projeto 
Future Systems (FS), 
a criação de um 
banco de dados 
experimental para 
demonstrar a 
usabilidade do 
modelo relacional
Subprojeto System R 
foi incluído no 
projeto Future 
System
Donald Chamberlin e 
Ray Boyce 
desenvolveram e 
lançaram a 
linguagem de 
programação 
SEQUEL (Structured
English Query 
Language)
1975
Características da Linguagem SQL
▪ Linguagem Declarativa;
✓ Mais simples e com curva de aprendizado menor;
✓ Linguagens procedurais da época requeriam que o usuário especificasse
o caminho (navegação, posição etc.) para se chegar ao resultado;
✓ Especificar a forma (conteúdo desejado) do resultado e não o caminho
para se chegar a ele.
Repita para cada linha de dados:
Se a cidade for São Paulo, retorne a linha; caso contrário, não faça nada.
Mova para a próxima linha.
Final do Loop.
Retorne todos os clientes cuja cidade é São Paulo
Características da Linguagem SQL
▪ Baseada na Álgebra Relacional e Teoria de Conjuntos;
✓ Codd utilizou as já conhecidas operações da Álgebra Relacional, e as
operações da Teoria de Conjuntos para sustentar sua fundamentação
teórica.
Características da Linguagem SQL
▪ Usando-se dos operadores da Álgebra Relacional, Codd conseguiu
fundamentar a viabilidade e usabilidade do modelo relacional e seu
armazenamento de dados no formato tabular, em tuplas;
Características da Linguagem SQL
▪ Operação de Restrição (σ): retornar somente as tuplas que
satisfaçam à uma condição.
Características da Linguagem SQL
▪ Operação de Projeção (π): retornar um ou mais atributos desejados.
Características da Linguagem SQL
▪ Operação de Interseção (∩): retornar tuplas comuns entre duas
tabelas.
➢ Exemplo: retornar o nome e o CPF dos funcionários que estão
internados como pacientes.
π nome,CPF (FUNCIONARIO) ∩ π nome,CPF (PACIENTE)
▪ Operação de União (υ): retornar a união das tuplas de duas tabelas.
➢ Exemplo: retornar o nome e o CPF dos médicos e pacientes cadastrados
no hospital.
π nome,CPF (MEDICO) υ π nome,CPF (PACIENTE)
❑ Padronização da Linguagem SQL, Classes de Instruções SQL 
e Dialetos.
Próxima Aula
Introd. a Banco de Dados Relacional
Capítulo 4
Aula 4.5. Padronização da Linguagem SQL, Classes de 
Instruções SQL e Dialetos
Prof. Gustavo Aguilar
❑ Padronização da Linguagem SQL
❑ Dialetos
❑ Classes de Instruções SQL
Nesta Aula
Padronização da Linguagem SQL
▪ Linguagem SQL originalmente criada pela IBM;
▪ Após a sua publicação, rapidamente surgiram várias linguagens
desenvolvidas pelos fornecedores de SGBDs relacionais, cada uma
com suas adaptações à Linguagem SQL original;
✓ Ex.: PL/SQL da Oracle.
▪ Gerou necessidade da criação de um padrão para a Linguagem SQL;
▪ Publicação do padrão ANSI X3.135-1986 pelo American National
Standards Institute, em 1986.
Padronização da Linguagem SQL
▪ Após alguns meses ao lançamento do ANSI X3.135-1986, a
International Organization for Standardization (ISO) publicou um
padrão tecnicamente idêntico, o ISO 9075-1987;
✓ Para o cenário internacional.
▪ Esses padrões foram revisados em conjunto:
✓ Primeiramente em 1989: ANSI X3.135-1989 e ISO / IEC 9075: 1989;
✓ Novamente em 1992: ANSI X3.135-1992 e ISO / IEC 9075: 1992.
▪ Essas edições se tornaram conhecidas como SQL-86, SQL-89 e SQL-
92.
Padronização da Linguagem SQL
▪ O padrão foi revisado novamente em 1999 (SQL3), 2003, 2008, 2011
e 2016 (edição atual ISO / IEC 9075: 2016);
▪ A norma internacional ISO / IEC 9075 para SQL é desenvolvida pelo
ISO/IEC Joint Technical Committee (JTC) for Information Technology;
▪ Desde a edição de 2003 foi subdividida em 9 partes, cada uma
cobrindo um aspecto do padrão geral, sob o título Tecnologia da
Informação – Linguagens de Banco de Dados – SQL.
Dialetos
▪ Fornecedores de SGBDs continuaram fazendo suas próprias
implementações da Linguagem SQL;
▪ Grande parte da implementação era baseada nos padrões da
Linguagem SQL, mas com pequenas adaptações ou personalizações:
✓ PL/SQL da Oracle
✓ T-SQL da Microsoft (usada no SQL Server)
✓ SQL PL da IBM
Dialetos
▪ Resultado: pequenas diferenças na sintaxe de implementação para
um mesmo tipo de comando SQL entre os diversos dialetos (SGBDs).
➢ Ex: retornar os N registros de uma tabela.
✓ Sintaxe de uso no dialeto SQL Server:
SELECT TOP [QTDE DE REGISTROS] [COLUNA(S)] FROM [TABELA]
✓ Sintaxe de uso nos dialetos MySQL e PostgreSQL:
SELECT [COLUNA(S)] FROM [TABELA] LIMIT [QTDE DE REGISTROS]
✓ Sintaxe de uso no dialeto Oracle:
SELECT [COLUNA(S)] FROM [TABELA]
WHERE ROWNUM < [QTDE REGISTROS]
Classes de Instruções SQL
▪ Dentro do padrão ISO SQL: quatro classes de comandos da
Linguagem SQL.
DDL
Linguagem de 
Definição de Dados
Comandos para a criação 
do banco de dados e dos 
objetos no banco de 
dados, como tabelas, 
índices, constraints etc
Comandos para alteração 
e exclusão de objetos
Data Definition Language
DML
Linguagem de 
Manipulação de Dados
Comandos para inserir, 
atualizar, deletar e 
consultar dados
Data Manipulation Language
TCL
Linguagem de Controle 
de Transação
Comandos para realizar 
controle das transações 
de dados no banco de 
dados
Transaction Control Language
DCL
Linguagem de Controle 
de Dados
Comandos para 
gerenciar permissões de 
acesso para usuários e 
objetos
Permissões para 
executar comandos DDL, 
DML, DCL e TCL
Data Control Language
DDL
Linguagem de 
Definição de Dados
Comandos para a criação 
do banco de dados e dos 
objetos no banco de 
dados, como tabelas, 
índices, constraints etc
Comandos para alteração 
e exclusão de objetos
Data Definition Language
DML
Linguagem de 
Manipulação de Dados
Comandos para inserir, 
atualizar, deletar e 
consultar dados
Data Manipulation Language
TCL
Linguagem de Controle 
de Transação
Comandos para realizar 
controle das transações 
de dados no banco de 
dados
Transaction Control Language
DCL
Linguagem de Controle 
de DadosComandos para 
gerenciar permissões de 
acesso para usuários e 
objetos
Permissões para 
executar comandos DDL, 
DML, DCL e TCL
Data Control Language
DDL
Linguagem de 
Definição de Dados
Comandos para a criação 
do banco de dados e dos 
objetos no banco de 
dados, como tabelas, 
índices, constraints etc
Comandos para alteração 
e exclusão de objetos
Data Definition Language
DML
Linguagem de 
Manipulação de Dados
Comandos para inserir, 
atualizar, deletar e 
consultar dados
Data Manipulation Language
TCL
Linguagem de Controle 
de Transação
Comandos para realizar 
controle das transações 
de dados no banco de 
dados
Transaction Control Language
DCL
Linguagem de Controle 
de Dados
Comandos para 
gerenciar permissões de 
acesso para usuários e 
objetos
Permissões para 
executar comandos DDL, 
DML, DCL e TCL
Data Control Language
DDL
Linguagem de 
Definição de Dados
Comandos para a criação 
do banco de dados e dos 
objetos no banco de 
dados, como tabelas, 
índices, constraints etc
Comandos para alteração 
e exclusão de objetos
Data Definition Language
DML
Linguagem de 
Manipulação de Dados
Comandos para inserir, 
atualizar, deletar e 
consultar dados
Data Manipulation Language
TCL
Linguagem de Controle 
de Transação
Comandos para realizar 
controle das transações 
de dados no banco de 
dados
Transaction Control Language
DCL
Linguagem de Controle 
de Dados
Comandos para 
gerenciar permissões de 
acesso para usuários e 
objetos
Permissões para 
executar comandos DDL, 
DML, DCL e TCL
Data Control Language
Classes de Instruções SQL
Comandos 
SQL
❑ Uma “Sopa de Letrinhas”.
Próxima Aula
Introd. a Banco de Dados Relacional
Capítulo 4
Aula 4.6. Uma “Sopa de Letrinhas”
Prof. Gustavo Aguilar
❑ A SQL x O SQL
❑ T-SQL
❑ NoSQL x NOSQL
❑ UnQL
❑ NewSQL
Nesta Aula
A SQL x O SQL
▪ A SQL➔ a Linguagem SQL.
▪ O SQL ➔ menção ao SQL Server, sistema gerenciador de banco de
dados relacional desenvolvido pela Microsoft.
▪ Encontramos também o nome de outros SGBDs fazendo menção à
Linguagem SQL, de forma a indicar que são relacionais:
✓ MySQL fornecido pela Oracle (www.mysql.com);
✓ PostgreSQL desenvolvido pela PostgreSQL Global Development Group e
de código aberto (www.postgresql.org);
✓ SQLite: banco de dados portátil e de código aberto (www.sqlite.org).
T-SQL
▪ Transact SQL / T-SQL: implementação da Microsoft, no SQL Server,
para a Linguagem SQL (padrão ISO / IEC 9075);
▪ Linguagem declarativa;
▪ Possui todas as opções e instruções existentes no padrão ISO;
▪ Variáveis, loop, controle de fluxo e decisões, funções, etc.;
▪ Possui opções e instruções que não estão no padrão;
▪ Algumas instruções com sintaxe diferente do padrão e/ou de outros
SGBDs.
NoSQL x NOSQL
▪ “NOSQL” pode se referenciar à duas tecnologias diferentes, mas
nenhuma delas relacionadas diretamente à Linguagem SQL;
▪ A diferença entre essas duas tecnologias é feita na grafia:
✓ NoSQL versus NOSQL
▪ O termo NoSQL surgiu em 1998, quando Carlo Strozzi batizou seu
novo produto de NoSQL:
✓ Um banco de dados relacional;
✓ Não fornecia nenhum tipo de linguagem SQL para consulta;
✓ Era pronunciado como noseequel (No + SQL).
NoSQL x NOSQL
▪ Os dados do NoSQL eram armazenados em arquivos ASCII UNIX:
✓ Manipulados por utilitários UNIX comuns: ls, mv, cp e editores como o
'vi’.
▪ Manipulação dos dados sem a linguagem SQL➔ “non SQL”;
✓ No sentido de realmente não ser um banco de dados SQL (relacional).
▪ Formato dos arquivos: baseado em relação (tabela, linhas e colunas)
✓ Família de SGBD relacional.
▪ Logo:
NoSQL x NOSQL
▪ Strozzi afirmava categoricamente que seu produto “nada tinha a ver
com o recém-nascido Movimento NOSQL”:
➢ “...é um banco de dados relacional para todos os efeitos e apenas
intencionalmente não usa SQL como uma linguagem de consulta...”;
➢ “...o recém-chegado é principalmente um conceito ...., que se afasta do
modelo relacional...”;
➢ “....deveria ter sido chamado de ‘NoREL’, .... , já que não ser baseado em
SQL é apenas uma consequência óbvia de não ser relacional, e não o
contrário”.
NoSQL x NOSQL
▪ No início de 2009 ➔ termo NOSQL voltou à tona;
▪ Johan Oskarsson, desenvolvedor na Last.fm, organizou um evento
para discutir "bancos de dados distribuídos, não relacionais e de
código aberto“;
▪ Termo tentava rotular o surgimento de um número crescente de
repositórios de dados distribuídos, não relacionais;
✓ Clones de código aberto do Google Bigtable/MapReduce e do
DynamoDB da Amazon.
NoSQL x NOSQL
▪ Desde então, termo NOSQL tem sido atribuído aos SGBDs não
relacionais (e não somente mais aos “não SQL”):
▪ Mecanismo de armazenamento de dados que não é baseado no
formato tabular (linhas x colunas);
▪ Termo NoSQL passou a ser escrito como NOSQL;
✓ SGBDs “Não Apenas SQL”➔Not Only SQL;
▪ Enfatizar que suportavam outras 
linguagens de consulta, que não a SQL.
UnQL
▪ Em 29 de julho de 2011:
Fundador da Couchbase e inventor do CouchDB, Damien Katz
+
Richard Hipp, inventor do SQLite
✓ ‘UNQL QUERY LANGUAGE UNVEILED BY COUCHBASE AND SQLITE’;
✓ Linguagem de consulta padrão NOSQL;
✓ Unstructured Query Language (UnQL): pronúncia “Uncle”;
✓ Tentar se popularizar da mesmo forma como o SQL do movimento
relacional se popularizou;
✓ Site do projeto: http://unql.sqlite.org/index.html/wiki?name=UnQL.
NewSQL
▪ Não é uma nova versão da Linguagem SQL;
▪ Trata-se de uma nova geração de SGBDs relacionais distribuídos;
▪ Novos players:
➢ Amazon Aurora, VoltDB;
➢ CockroachDB, CosmosDB;
➢ Google Spanner;
▪ SGBDRs já conhecidos com a engine reformulada: MySQL Cluster,
SQL Server Column Store.
❑ Capítulo 5 - Introdução ao Microsoft SQL Server.
Próxima Aula
Introdução ao Microsoft SQL Server
Capítulo 5
Aula 5.1. Introdução ao SQL Server
Prof. Gustavo Aguilar
❑ Introdução ao SQL Server
❑ Produtos da Família SQL Server
❑ Edições da Família SQL Server
Nesta Aula
Introdução ao SQL Server
▪ Microsoft SQL Server é um sistema gerenciador de banco de dados
relacional, desenvolvido pela Microsoft;
✓ Será usado para aplicarmos na prática os 
conceitos e instruções da Linguagem SQL.
▪ Primeira versão (1.0), lançada em 1989;
✓ Para sistema operacional OS/2.
▪ Suporte para Windows: a partir da 4.2.1;
▪ Suporte para Linux desde a versão 2017;
▪ Versão atual: 2019 (2022 em preview).
Versão Ano de Lançamento
2019 2019
2017 2017
2016 2016
2014 2014
2012 2012
2008 R2 2010
2008 2008
2005 2005
2000 2000
7.0 1998
6.5 1996
6.0 1995
4.2.1 1994
4.2 1992
1.1 1991
1.0 1989
Q
u
ad
ra
n
te
 M
ág
ic
o
 d
e 
G
ar
tn
er
p
ar
a 
SG
B
D
s
Produtos da Família SQL Server
Database Engine
Bancos OLTP
Cluster Failover
Snapshot
Database Mirror
Replicação
Always On
Analytical Engine
Bancos OLAP
Cubos
Tabelas Fato / 
Dimensão
Report Engine
Pastas
Relatórios
Dashboards
Assinaturas
ETL Engine
Catálogos
Pacotes 
Extração 
Transformação
Carga de Dados
SQL SSAS SSRS SSIS
Database Engine
Bancos OLTP
Cluster Failover
Snapshot
Database Mirror
Replicação
Always On
Analytical Engine
Bancos OLAP
Cubos
Tabelas Fato / 
Dimensão
Report Engine
Pastas
Relatórios
Dashboards
Assinaturas
ETL Engine
Catálogos
Pacotes 
Extração 
Transformação
Carga de Dados
SQL SSAS SSRS SSIS
Database Engine
Bancos OLTP
Cluster Failover
Snapshot
Database Mirror
Replicação
Always On
Analytical Engine
Bancos OLAP
Cubos
Tabelas Fato / 
Dimensão
Report Engine
Pastas
Relatórios
Dashboards
Assinaturas
ETL Engine
Catálogos
Pacotes 
Extração 
Transformação
Carga de Dados
SQL SSAS SSRS SSIS
Database Engine
Bancos OLTP
Cluster Failover
Snapshot
Database Mirror
Replicação
Always On
Analytical Engine
Bancos OLAP
Cubos
Tabelas Fato / 
Dimensão
Report Engine
Pastas
Relatórios
Dashboards
Assinaturas
ETL Engine
Catálogos
Pacotes 
Extração 
Transformação
Carga de Dados
SQL SSAS SSRS SSIS
Produtosda Família SQL Server
https://learn.microsoft.com/pt-br/sql/relational-databases/polybase/polybase-guide?view=sql-server-ver16
https://learn.microsoft.com/pt-br/sql/relational-databases/polybase/polybase-guide?view=sql-server-ver16
Edições da Família SQL Server
https://learn.microsoft.com/pt-br/sql/sql-server/editions-and-components-of-sql-server-2019?view=sql-server-ver16
❑ Conceitos Básicos do SQL Server.
Próxima Aula
Introdução ao Microsoft SQL Server
Capítulo 5
Aula 5.2. Conceitos Básicos do SQL Server
Prof. Gustavo Aguilar
❑ Macroarquitetura
❑ Conceitos Básicos
Nesta Aula
Macroarquitetura
Servidor
Instância
Banco de Dados / Pasta / Catálogo
Conceitos Básicos
▪ Um servidor pode conter 1 ou mais Instâncias SQL/SSAS/SSRS;
✓ Da mesma versão ou não;
✓ SSIS não é multi-instância, apenas multiversão.
▪ As instâncias são diferentes entre si;
✓ Conjunto próprio de bancos/pastas/catálogos.
▪ Uma Instância pode conter vários BDs;
✓ Até 32.767 bancos de dados.
▪ Os bancos são diferentes entre si;
✓ Cada um possui seu conjunto de tabelas e usuários.
❑ Instalação do SQL Server.
Próxima Aula
Introdução ao Microsoft SQL Server
Capítulo 5
Aula 5.3. Instalação do SQL Server
Prof. Gustavo Aguilar
❑ Instalação do SQL Server
Nesta Aula
Instalação do SQL Server
https://go.microsoft.com/fwlink/?linkid=866662
https://go.microsoft.com/fwlink/?linkid=866662
❑ Capítulo 6 - Ferramentas Client.
Próxima Aula
Ferramentas Client
Capítulo 6
Aula 6.1. Ferramentas Client
Prof. Gustavo Aguilar
❑ Ferramenta Client
❑ SQL Server Management Studio
❑ Scripts, Projetos e Soluções no SSMS
❑ Azure Data Studio
Nesta Aula
Ferramenta Client
▪ Interface gráfica (GUI - Graphical User Interface);
▪ Para se conectar no banco de dados;
▪ Realizar atividades como criar bancos de dados,
tabelas, usuários, bem como manipular dados e
realizar tarefas administrativas.
SQL Server Management Studio
▪ Interface gráfica (client) oficial da Microsoft para se conectar e
interagir com o SQL Server;
✓ https://docs.microsoft.com/en-us/sql/ssms/sql-server-management-
studio-ssms?view=sql-server-2019
▪ Também chamado de SSMS;
▪ Possui editor de queries e vários Wizards;
▪ Construtor de modelos de dados (diagramas) ➔ integrado ao BD;
▪ Relatórios padrões pré-definidos / customizados.
https://docs.microsoft.com/en-us/sql/ssms/sql-server-management-studio-ssms?view=sql-server-2019
SQL Server Management Studio
Scripts, Projetos e Soluções
▪ Comandos T-SQL podem ser salvos em um arquivo texto➔ script;
▪ Normalmente com a extensão “.sql”;
▪ No SSMS, menu File ou nos botões de salvar da barra de ferramentas;
▪ Scripts podem ser abertos de
dentro do SSMS;
▪ Scripts podem ser organizados
em Projetos e Soluções;
▪ Uma solução pode conter vários
projetos, scripts e conexões.
 
Azure Data Studio
▪ Interface gráfica (client) da Microsoft para se conectar e interagir
com o SQL Server e outras plataformas de dados;
▪ Também chamado de ADS;
▪ Permite também administrar o SQL Server e os bancos de dados;
▪ Possui editor de queries, mas bem menos Wizards que o SSMS;
▪ Não possui construtor de modelos de dados (diagramas);
▪ Trabalha com o conceito de Jupyter Notebooks.
Azure Data Studio
❑ Instalação e Overview do SQL Server Management Studio.
Próxima Aula
Ferramentas Client
Capítulo 6
Aula 6.2. Instalação e Overview do SQL Server 
Management Studio
Prof. Gustavo Aguilar
❑ Instalação do SQL Server Management Studio
❑ Overview da Utilização do SSMS
Nesta Aula
Instalação do Management Studio
https://aka.ms/ssmsfullsetup
https://aka.ms/ssmsfullsetup
❑ Instalação e Overview do Azure Data Studio.
Próxima Aula
Ferramentas Client
Capítulo 6
Aula 6.3. Instalação e Overview do Azure Data Studio
Prof. Gustavo Aguilar
❑ Instalação do Azure Data Studio
❑ Overview da Utilização do Azure Data Studio
Nesta Aula
Instalação do Azure Data Studio
https://go.microsoft.com/fwlink/?linkid=2135512
https://go.microsoft.com/fwlink/?linkid=2135512
❑ Instalação e Overview do Banco de Dados de Exemplo 
AdventureWorks.
Próxima Aula
Ferramentas Client
Capítulo 6
Aula 6.4. Instalação e Overview do Banco de Dados de 
Exemplo AdventureWorks
Prof. Gustavo Aguilar
❑ Banco de Dados de Exemplo AdventureWorks
❑ Restore do AdventureWorks2019
Nesta Aula
AdventureWorks
▪ Banco de dados de exemplo disponibilizado pela Microsoft;
https://github.com/Microsoft/sql-server-samples/releases/tag/adventureworks
▪ Empresa de produção e venda de produtos para aventuras;
▪ Já populado com dados fictícios;
▪ O modelo de dados deste banco de dados pode ser encontrado em
https://improveandrepeat.com/2019/02/use-the-adventureworks-
sample-database-for-your-examples.
https://github.com/Microsoft/sql-server-samples/releases/tag/adventureworks
https://improveandrepeat.com/2019/02/use-the-adventureworks-sample-database-for-your-examples
Restore do AdventureWorks
❑ Capítulo 7 - Utilização Básica do SQL Server.
Próxima Aula
Utilização Básica do SQL Server
Capítulo 7
Aula 7.1. Criação de Estruturas de Dados
Prof. Gustavo Aguilar
❑ Linguagem de Definição de Dados (DDL)
❑ Script DDL
❑ Criação de Estruturas de Dados
❑ Criação de Outros Tipos de Objetos
Nesta Aula
Linguagem de Definição de Dados
▪ Data Definition Language (DDL);
▪ Classe da Linguagem SQL com comandos que permitem criar,
alterar e excluir objetos de banco de dados;
▪ Em um Projeto de Banco de Dados, é usada na etapa de geração do
esquema físico no banco de dados.
Linguagem de Definição de Dados
1 2
3
4
Modelo Lógico Relacional
Modelo Físico Relacional
SGBDR
5 ?
Script DDL
▪ Conjunto de várias instruções DDL.
Script DDL
1 2
3
4
Modelo Lógico Relacional
Modelo Físico Relacional
SGBDR
5
S
c
ri
p
t 
\D
D
L
Script DDL
▪ A maioria dos SGBDs fornece interface gráfica para implementação
do modelo de dados físico;
▪ Usam scripts DDL em background.
Criação de Estruturas de Dados
▪ Através da instrução SQL CREATE ;
▪ Criação de banco de dados:
➢ CREATE DATABASE <Nome_do_Banco_de_Dados>
➢ Cada SGBD implementa os parâmetros adicionais necessários e
específicos da sua plataforma.
Criação de Estruturas de Dados
▪ Criação de tabelas:
CREATE TABLE <Nome_da_Tabela>
(
column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ], …..
);
▪ Cada SGBD implementa os parâmetros adicionais necessários e
específicos para a criação de tabelas no seu banco de dados.
Criação de Outro Tipos de Objetos
▪ Também através da instrução SQL CREATE:
✓ Usuários
✓ Índices
✓ Visões
✓ Chaves estrangeiras
✓ Constraints
✓ Sequences
✓ Sinônimos, etc.
CREATE SYNONYM <Nome_do_Sinônimo> FOR <Nome_do_Objeto>;
❑ Demonstração: Criação de Estruturas de Dados.
Próxima Aula
Utilização Básica do SQL Server
Capítulo 7
Aula 7.2. Demonstração: Criação de Estruturas de Dados
Prof. Gustavo Aguilar
Criação de Estrutura de Dados
❑ Alteração de Estruturas de Dados.
Próxima Aula
Utilização Básica do SQL Server
Capítulo 7
Aula 7.3. Alteração de Estruturas de Dados
Prof. Gustavo Aguilar
❑ Alteração de Estruturas de Dados
❑ Demonstração
Nesta Aula
Alteração de Estruturas de Dados
▪ Comando DDL ALTER ;
▪ Evitar recriação das estruturas: bancos de dados, tabelas, etc.;
▪ Alterar as estruturas de dados que já estejam criadas;
✓ Desde que não viole as regras do SGBD / modelo de dados.
▪ Regras de unicidade: alterar campo para NULL / NOT NULL;
▪ Regras de integridade referencial: setar para NULL / CASCADE /
RESTRICT as constraints das chaves estrangeiras;
Alteração de Estruturas de Dados
▪ Adicionar coluna (NULL / NOT NULL) em uma tabela já populada;
▪ Alterar tipo de dados de uma coluna para um tipo de dados
compatível;
▪ Reduzir / aumentar o tamanho de uma coluna;
▪ Etc.
Alteração de Estruturas de Dados
▪ SGBDs também fornecem interfaces gráficas para fazer alterações.
Alteração de Estruturas de Dados
❑ Remoção de Estruturasde Dados.
Próxima Aula
Utilização Básica do SQL Server
Capítulo 7
Aula 7.4. Remoção de Estruturas de Dados
Prof. Gustavo Aguilar
❑ Remoção de Estruturas de Dados
❑ Demonstração
Nesta Aula
Remoção de Estruturas de Dados
▪ Comando DDL DROP ;
▪ Excluir estruturas de dados e outros objetos do banco de dados;
▪ Deve ser usado com muita cautela, para não remover objetos por
engano (e todos os dados deles por consequência);
▪ Para ocorrer a remoção, não pode haver violação das regras do
SGBD / modelo de dados;
➢ Excluir um banco de dados / tabela que esteja sendo usada;
➢ Regras de integridade referencial: excluir uma coluna que seja
referenciada por uma chave estrangeira com constraint FK, etc.
Remoção de Estruturas de Dados
▪ SGBDs também fornecem interfaces gráficas para fazer remoções.
Remoção de Estruturas de Dados
❑ Selecionando Dados.
Próxima Aula
Utilização Básica do SQL Server
Capítulo 7
Aula 7.5. Selecionando Dados
Prof. Gustavo Aguilar
❑ Introdução à Linguagem de Manipulação de Dados (DML)
❑ A Instrução SELECT
❑ Alias de Coluna
❑ Alias de Tabela
❑ Expressão CASE
Nesta Aula
Introdução à Linguagem de 
Manipulação de Dados
▪ Data Manipulation Language (DML)
▪ Classe da Linguagem SQL com comandos que permitem:
✓ Inserir dados (novas linhas / tuplas);
✓ Atualizar dados (linhas / tuplas existentes);
✓ Excluir dados: remover linhas / tuplas existentes;
✓ Selecionar dados: recuperar dados armazenados para exibição e/ou
processamento.
A Instrução SELECT
▪ Pertencente à classe DML da Linguagem SQL;
▪ No padrão ODMG (SGBDO): classe DQL (Data Query Language);
▪ Utilizada para retornar (consultar) os dados armazenados no banco;
▪ Baseada na operação de Projeção da Álgebra Relacional;
▪ Em sua forma mínima, é composta de 2 cláusulas:
SELECT <relação de colunas ou * >
FROM <tabela>
Alias de Coluna
▪ Nome alternativo (apelido) para colunas;
▪ Existentes apenas em tempo de execução (não é persistido);
▪ Criado usando-se a cláusula AS (ou espaço) após o nome da coluna ,
colocando-se o alias desejado em seguida.
SELECT Name AS Nome_do_Produto, ProductNumber AS Número_Produto
FROM Production.Product;
Alias de Coluna
▪ Efeito prático: modificar o cabeçalho (label) da coluna que é exibido
no resultado da query.
Alias de Tabela
▪ Nome alternativo (apelido) para tabelas;
▪ Existentes apenas em tempo de execução (não é persistido);
✓ Diferente do sinônimo que é persistido (criado como objeto);
▪ Uso bem mais amplo que o alias de colunas: usado em outras
cláusulas da instrução SELECT, como por exemplo, nas cláusulas
WHERE, ORDER BY etc., que serão vistas mais à frente.
Alias de Tabela
▪ Criado usando-se a cláusula AS (ou espaço) após o nome da tabela
na cláusula FROM, colocando-se o alias desejado em seguida:
--Alias de Tabela Criado com a Cláusula AS
SELECT Name, ProductNumber FROM Production.Product AS P;
--Alias de Tabela Criado sem a Cláusula AS
SELECT Name, ProductNumber FROM Production.Product P;
Alias de Tabela
▪ Uma vez definido o alias para uma tabela, ele pode ser referenciado
na relação de colunas da cláusula SELECT:
SELECT P.Name, P.ProductNumber FROM Production.Product P;
▪ Ao se definir alias de tabelas, não é obrigatório usá-los na relação de
colunas, desde que não haja ambiguidade nos nomes delas.
▪ Alias de tabela pode ser usado em conjunto com alias de colunas:
SELECT P.Name AS Nome_Produto, P.ProductNumber AS Número_Produto
FROM Production.Product P;
Expressão CASE
▪ Pode ser utilizada na instrução SELECT para “tratamento” dos dados;
✓ Não altera os dados persistidos no BD, apenas na exibição da query.
▪ Compara um valor de entrada a uma lista de possíveis valores:
✓ Se uma correspondência for encontrada, o primeiro valor
correspondente será retornado como resultado da expressão CASE
(múltiplas correspondências não são permitidas);
✓ Se nenhuma correspondência for encontrada, a expressão CASE retorna
o valor encontrado em uma cláusula ELSE, se existir;
✓ Se nenhuma correspondência for encontrada e nenhuma cláusula ELSE
existir, a expressão CASE retornará NULL.
Expressão CASE
▪ Sintaxe:
– Expressão CASE Simples:
CASE Expressão_de_Entrada
WHEN expressão_de_comparação THEN expressão_resultado [ ...n ]
[ ELSE expressão_resultado_else]
END
– Expressão CASE com Pesquisa Booleana:
CASE
WHEN Expressão_BooleanaTHEN expressão_resultado [ ...n ]
[ ELSE expressão_resultado_else]
END
❑ Demonstração: Selecionando Dados.
Próxima Aula
Utilização Básica do SQL Server
Capítulo 7
Aula 7.6. Demonstração: Selecionando Dados
Prof. Gustavo Aguilar
❑ Demonstrações:
– Instrução SELECT
– Alias de Coluna
– Alias de Tabela
– Expressão CASE
Nesta Aula
Selecionando Dados
❑ Ordenando Dados.
Próxima Aula
Utilização Básica do SQL Server
Capítulo 7
Aula 7.7. Ordenando Dados
Prof. Gustavo Aguilar
❑ A Cláusula ORDER BY
❑ Tipos de Ordenação
❑ ORDER BY Composto
❑ Alias de Coluna no ORDER BY
Nesta Aula
A Cláusula ORDER BY
▪ Além das cláusulas SELECT e FROM, uma instrução SELECT pode ter
também a cláusula ORDER BY;
▪ Utilizada para ordenar os dados retornados pela instrução SELECT;
▪ Coluna(s) na cláusula ORDER BY não necessariamente precisa(m)
estar na cláusula SELECT;
▪ Sintaxe: a última cláusula em uma instrução SELECT:
SELECT FirstName, MiddleName, LastName
FROM Person.Person
ORDER BY FirstName
Tipos de Ordenação
▪ Default: ordenação feita de forma ascendente (A à Z, 0 à 9);
▪ DESC: cláusula para fazer ordenação descendente (Z à A, 9 à 0);
▪ ASC: cláusula para explicitar a ordenação ascendente;
▪ Exemplo: classificando descendentemente pelo primeiro nome
SELECT FirstName, MiddleName, LastName
FROM Person.Person
ORDER BY FirstName DESC;
ORDER BY FirstName ASC
ORDER BY Composto
▪ Pode-se usar mais de uma coluna na cláusula ORDER BY;
▪ Cada campo com o tipo de ordenação (ASC / DESC) desejada;
▪ Exemplo: classificando ascendentemente pelo primeiro nome e
descendentemente pelo último nome
SELECT FirstName, MiddleName, LastName
FROM Person.Person
ORDER BY FirstName ASC, LastName DESC
Ordenação descendente pela 
coluna LastName
Alias de Coluna no ORDER BY
▪ Pode-se usar o alias da(s) coluna(s) na cláusula ORDER BY, ao invés
de usar o nome das colunas;
 --Usando Alias de Coluna no ORDER BY 
 SELECT Name AS Nome_do_Produto, ProductNumber AS Número_do_Produto 
 FROM Production.Product 
 ORDER BY Nome_do_Produto ASC; 
5. SELECT <select list> 
1. FROM <table source> 
2. WHERE <search condition> 
3. GROUP BY <group by list> 
4. HAVING <search condition> 
6. ORDER BY <order by list> 
▪ Possível devido à ordem 
de execução de 
comandos no SQL Server.
❑ Demonstração: Ordenando Dados.
Próxima Aula
Utilização Básica do SQL Server
Capítulo 7
Aula 7.8. Demonstração: Ordenando Dados
Prof. Gustavo Aguilar
Ordenando Dados
❑ Filtrando Dados.
Próxima Aula
Utilização Básica do SQL Server
Capítulo 7
Aula 7.9. Filtrando Dados
Prof. Gustavo Aguilar
❑ A Cláusula WHERE
❑ A Cláusula TOP
❑ A Cláusula DISTINCT
❑ Operadores de Comparação
❑ Operadores Lógicos
❑ Ordem de Avaliação dos Operadores
❑ Alias de Coluna no WHERE
Nesta Aula
A Cláusula WHERE
▪ Cláusula usada para realizar operações de seleção (restrições);
▪ Restringir as tuplas (linhas/dados) retornados pela 
operação de projeção (cláusula SELECT);
▪ Sintaxe: usada após a cláusula FROM;
▪ Utiliza-se de operadores lógicos ou de comparação para filtrar os
resultados retornados. --Listar Produtos da Cor Preta (Black) 
SELECT Name, Color 
FROM Production.Product 
WHERE Color = 'Black' 
ORDER BY Name; 
A Cláusula TOP
▪ Usada em conjunto com a cláusula SELECT para limitar a quantidade
de linhas retornadas;
▪ Sintaxe T-SQL (SQL Server):
✓ SELECT TOP (N): retorna as N primeiras linhas encontradas;
✓ A cláusula ORDER BY impacta diretamente no resultado retornado.
▪ Exemplo: retornar os 5 primeiros produtos (na ordem alfabética)SELECT TOP (5)Name AS Nome_Produto
FROM Production.Product
ORDER BY Nome_Produto;
A Cláusula DISTINCT
▪ Elimina os resultados repetidos retornados (tuplas / linhas
repetidas) pela instrução SELECT;
▪ Atua em todas as colunas da cláusula SELECT;
▪ Sintaxe T-SQL: SELECT DISTINCT Coluna1, Coluna2, etc;
▪ Exemplo: cores existentes de produtos
SELECT DISTINCT Color AS Cores_de_Produtos
FROM Production.Product
WHERE Color IS NOT NULL
ORDER BY Cores_de_Produtos;
Operadores de Comparação
▪ Usados para comparar colunas ou expressões nas cláusulas de filtro
da Linguagem SQL;
▪ Cada SGBD procura manter o caractere indicado no padrão ISO;
▪ Nada impede que existam
outros operadores ou
operadores representados
por caracteres diferentes
em alguns SGBDs.
Operador de Comparação Significado 
= Igual a 
> Maior que 
< Menor que 
>= Maior que ou igual a 
<= Menor que ou igual a 
<> Diferente de 
!= Diferente de (não é padrão ISO) 
!> Não é maior que (não é padrão ISO) 
!< Não é menor que (não é padrão ISO) 
 
Operadores de Comparação do SQL Server 
Operadores Lógicos
▪ Testam a verdade de alguma condição, retornando um tipo de dados
booleano com o valor TRUE, FALSE ou UNKNOWN;
▪ Permitem que mais de uma condição (filtro) possa ser feita na
operação de restrição;
▪ Podem ser usados em 
conjunto com os 
operadores de 
comparação.
Operador Significado 
ALL TRUE se todas as comparações forem verdadeiras 
AND TRUE se ambas as expressões booleanas forem verdadeiras 
ANY TRUE se qualquer um de um conjunto de comparações for verdadeiro 
BETWEEN TRUE se o operando/expressão estiver dentro de um intervalo 
EXISTS TRUE se uma subconsulta contiver quaisquer linhas 
IN TRUE se o operando for igual a um de uma lista de valores/expressões 
LIKE TRUE se o operando corresponder a um padrão 
NOT Inverte o valor de qualquer outro operador booleano 
OR TRUE se qualquer expressão booleana for TRUE 
SOME TRUE se algumas das comparações forem verdadeiras 
 
Operadores Lógicos do SQL Server
Operadores Lógicos
▪ Exemplo: Listar Produtos da Cor Preta (Black) ou Prata (Silver)
SELECT Name, Color
FROM Production.Product
WHERE Color = 'Black'
OR Color = 'Silver'
ORDER BY Name;
Ordem de Avaliação dos Operadores
▪ Da mesma forma que as cláusulas da Linguagem SQL e os operadores
aritméticos / de comparação possuem uma ordem pré-definida de
processamento, os operadores lógicos e de comparação também a
tem;
▪ Operadores lógicos e de comparação são avaliados após os
operadores aritméticos e de concatenação;
▪ Entre si, os operadores lógicos e de
comparação são avaliados na
seguinte ordem (sequência) ➔
1º ➔ =, >, <, <=, <, !=, !, !<, !> (operadores de comparação) 
2º ➔ NOT 
3º ➔AND 
4º ➔ ALL, ANY, BETWEEN, IN, LIKE, OR, SOME 
Operadores de Comparação
▪ Pode-usar parênteses para determinar a ordem desejada de
avaliação dos operadores lógicos ou de comparação;
▪ Exemplo: operador OR sendo avaliado antes do operador AND
-- Produtos com Nome que Iniciam com 'Chain' e que Sejam da Cor Preta ou Prata
SELECT Name,Color
FROM Production.Product
WHERE Name LIKE 'Chain%'
AND (Color = 'Black' OR Color = 'Silver')
ORDER BY Name;
Alias de Coluna no WHERE
▪ Não é possível usar alias de coluna na cláusula WHERE;
➢ Cláusula WHERE é processada antes da cláusula SELECT.
▪ O alias de coluna ainda não está definido quando o filtro é aplicado;
➢ Será definido para o contexto de execução da query, após a cláusula
SELECT ser processada.
5. SELECT <select list> 
1. FROM <table source> 
2. WHERE <search condition> 
3. GROUP BY <group by list> 
4. HAVING <search condition> 
6. ORDER BY <order by list> 
❑ Demonstração: Filtrando Dados.
Próxima Aula
Utilização Básica do SQL Server
Capítulo 7
Aula 7.10. Demonstração: Filtrando Dados
Prof. Gustavo Aguilar
Filtrando Dados
❑ Inserindo Dados.
Próxima Aula
Utilização Básica do SQL Server
Capítulo 7
Aula 7.11. Inserindo Dados
Prof. Gustavo Aguilar
❑ INSERT INTO
❑ SELECT INTO
❑ Demonstração: Inserindo Dados
Nesta Aula
INSERT INTO
▪ Comando da classe Data Manipulation Language (DML) para persistir
dados em uma tabela previamente criada;
❖ Existem outros comandos para inserir dados: mais usado é o INSERT.
▪ Sintaxe básica:
▪ Lista de colunas e cláusula INTO são opcionais:
❖ Ao não informar a lista de colunas, é preciso inserir os valores para
todas as colunas, na ordem em que as colunas estão criadas na tabela.
INSERT [INTO] <Tabela ou visão> [lista_de_colunas] 
VALUES (Valor | Expressão | NULL | DEFAULT) 
INSERT INTO
▪ Possível inserir múltiplas linhas com apenas um INSERT INTO:
INSERT INTO TAB1 (COL1, COL2)
VALUES (100, ‘Valor não numérico’) ,
(200, ‘Valor nãonumérico 2’),
(300, ‘Valor nãonumérico 3’);
▪ Possível utilizar uma consulta SELECT em outra tabela ou conjunto de tabelas para
retornar os valores a serem inseridos na tabela em questão:
INSERT INTO TAB1 (COL1, COL2) 
SELECT COL4, COL5 FROM TAB2; 
SELECT INTO
▪ Outra possibilidade para inserir dados em uma tabela;
▪ Sintaxe:
▪ Tabela destino dos dados não pode estar criada;
▪ A cláusula SELECT INTO criará a tabela em tempo de execução;
▪ Estrutura física definida pela lista de colunas na cláusula SELECT:
✓ Cada coluna na nova tabela terá o mesmo nome, tipo de dados e a
nulabilidade da coluna correspondente (ou expressão) da lista de colunas
na cláusula SELECT;
✓ Índices e constraints não são criados na nova tabela.
SELECT coluna1, coluna2, …
INTO Nova_Tabela FROM Tabela_Origem;
Inserindo Dados
❑ Atualizando Dados.
Próxima Aula
Utilização Básica do SQL Server
Capítulo 7
Aula 7.12. Atualizando Dados
Prof. Gustavo Aguilar
❑ A Cláusula UPDATE
❑ A Cláusula MERGE
❑ Demonstração: Atualizando Dados
Nesta Aula
A Cláusula UPDATE
▪ Cláusula da Linguagem SQL usada para alterar os dados de uma ou
mais colunas existentes em uma tabela;
▪ Pode operar em um conjunto de linhas definido por uma condição
em uma cláusula WHERE ou de JOIN;
▪ É usada a cláusula SET para atribuir o novo valor à coluna;
✓ Permite atualização dos valores de uma ou mais colunas no mesmo
comando UPDATE;
✓ Sem o filtro (WHERE / JOIN), serão atualizadas todas as colunas
existentes na cláusula SET, para todas as linhas da tabela.
A Cláusula UPDATE
▪ Sintaxe:
UPDATE <Nome_Tabela>
SET <Coluna1> = { valor | expressão | DEFAULT | NULL },
<Coluna2> = { valor | expressão | DEFAULT | NULL },
<ColunaN> {…n}
WHERE <Condição>;
UPDATE TAB2
SET COL3 = 500
WHERE COL1 = 10;
A Cláusula MERGE
▪ Usada quando é preciso atualizar, inserir ou excluir linhas de uma
tabela, no mesmo comando;
▪ MERGE atua com base em uma ou mais condições de decisão, com
as quais será decidida qual operação (INSERT/UPDATE/DELETE) executar:
✓ Quando os dados de origem correspondem aos dados no destino,
ocorre a atualização dos dados;
✓ Quando não há correspondência no destino, ocorre a inserção dos
dados;
✓ Quando os dados de destino não têm correspondência no conjunto de
dados de origem, ocorre a exclusão dos dados na tabela de destino.
A Cláusula MERGE
▪ Exemplo: atualizar os campos Data_Venda e Valor quando a venda já
existir na tabela, e inserir a linha quando a venda ainda não existir.
MERGE Tab_Venda_Destino AS Destino
USING Tab_Venda_Origem AS Origem ON (Origem.Cod_Venda = Destino.Cod_Venda)
WHEN MATCHED THEN -- Registro existe nas 2 tabelas
UPDATE SET 
Destino.Data_Venda = Origem.Data_Venda,
Destino.Valor = Origem.Valor
-- Registro não existe na origem, apenas no destino. Vamos apagar o dado da origem.
WHEN NOT MATCHED BY SOURCE THEN
DELETE
-- Registro não existe no destino. Vamos inserir.
WHEN NOT MATCHED BY TARGET THEN
INSERT
VALUES(Origem.Cod_Venda, Origem.Data_Venda, Origem.Cod_Produto,Origem.Qtde, Origem.Valor);
Atualizando Dados
❑ Excluindo Dados.
Próxima Aula
Utilização Básica do SQL Server
Capítulo 7
Aula 7.13. Excluindo Dados
Prof. Gustavo Aguilar
❑ A Cláusula DELETE
❑ Demonstração: Excluindo Dados
Nesta Aula
A Cláusula DELETE
▪ Cláusula da Linguagem SQL usada para excluir (“deletar”)
dados(linhas) de uma tabela;
▪ Pode operar em um conjunto de linhas definido por uma condição
em uma cláusula WHERE ou de JOIN;
▪ Sintaxe: DELETE FROM <Nome_Tabela>
WHERE <Condição>;
DELETE FROM TAB2
WHERE COL1 = 10;
A Cláusula DELETE
▪ Sem filtro (WHERE / JOIN), são excluídas todas as linhas da tabela;
▪ Nas situações onde deseja-se excluir todos os dados de uma tabela,
por questões de performance é preferível usar o comando
TRUNCATE da classe DDL da Linguagem SQL.
DELETE FROM TAB2;
TRUNCATE TABLE TAB2;
Excluindo Dados
❑ Capítulo 8 - Segurança no SQL Server.
Próxima Aula
Segurança no SQL Server
Capítulo 8
Aula 8.1. Introdução à Segurança no SQL Server
Prof. Gustavo Aguilar
❑ Segurança em Bancos Relacionais
❑ Principais Componentes de Segurança do SQL Server
❑ Segurança de Autenticação no SQL Server
Nesta Aula
Segurança em Bancos Relacionais
▪ Valor crescente, seja financeiro ou estratégico, dos dados
armazenados ➔ geração de informação / conhecimento / sabedoria
como vantagem competitiva no mercado;
▪ Lei Geral de Proteção de Dados (LGPD);
▪ Aumento da preocupação com a proteção dos dados armazenados:
✓ Proteção externa ao SGBD: firewall, antivírus, etc.;
✓ Proteção interna do SGBD: autenticação, autorização, criptografia, etc.
▪ Autorização / permissão de acesso no SGBD ➔ através da DCL (Data
Control Language), Linguagem de Controle de Acesso a Dados.
Segurança em Bancos Relacionais
▪ Processo de Concessão das Permissões de Acesso;
▪ Processo de Revogação das Permissões de Acesso;
▪ Criptografia, Mascaramento de Dados, etc.
Componentes de Segurança
▪ Cada SGBD disponibiliza sua gama de recursos e comandos para
habilitar, configurar e gerenciar seu framework de segurança;
✓ Objetos que podem ser protegidos, os mecanismos e a granularidade de
proteção.
▪ PERMISSION (Privilégio): permissão que pode ser concedida para
executar alguma ação, ou seja, executar algum comando SQL.
▪ ROLE (Papel): conjunto de privilégios que pode ser concedido a
usuários ou a outras roles.
✓ Criadas com o comando CREATE ROLE da classe DDL da Linguagem SQL.
Componentes de Segurança
▪ PRINCIPALS: são entidades com acesso concedido à uma instância do
SQL Server, no nível do servidor, da instância ou do banco de dados,
para os quais podem ser concedidos privilégios ou roles;
✓ Criados com o comando CREATE da classe DDL;
✓ Exemplo: criação de um PRINCIPAL do tipo logn:
CREATE LOGIN UsrIGTI
WITH PASSWORD = 'Pa55w.rd’,
DEFAULT_DATABASE = [BDIGTI];
Componentes de Segurança
▪ SECURABLES: objetos do SQL Server, no nível do servidor ou do
banco de dados, nos quais são concedidas as permissões para os
principals.
Segurança de Autenticação
Windows Authentication
Nome do login e senha
são armazenados no SQL.
Necessário informar login e 
senha para fazer o logon.
Login interno do SQL
Nome do login e senha
são armazenados no SO/AD.
Quando já autenticado no SO, 
necessário informar somente 
login para fazer o logon.
Login externo ao SQL
SQL Authentication
*Não disponível para SSAS SSRS.
❑ Concessão e Revogação de Privilégios.
Próxima Aula
Segurança no SQL Server
Capítulo 8
Aula 8.2. Concessão e Revogação de Privilégios
Prof. Gustavo Aguilar
❑ Concessão de Privilégios
❑ Revogação de Privilégios
Nesta Aula
Concessão de Privilégios
▪ Feita através do comando GRANT da classe DCL;
▪ Privilégios para poder executar comandos DML / DDL / DCL;
▪ Sintaxe p/ DML: GRANT [Privilégio(s)] ON [Objeto] TO [Usuário];
▪ Exemplos de Concessão de Privilégio DML:
GRANT SELECT ON [Person].[Address] TO UsrAdventureSystem;
GRANT INSERT,UPDATE ON [Person].[Person] TO Role_App;
GRANT SELECT, INSERT, DELETE, UPDATE ON [Person].[Address] TO UsrApp;
Concessão de Privilégios
▪ Sintaxe p/ DDL: GRANT [Privilégio(s)] TO [Usuário];
▪ Exemplos de Concessão de Privilégio DDL:
GRANT CREATE TABLE TO Role_App;
GRANT CREATE USER TO UsrSystem;
▪ Opção WITH GRANT OPTION: permite que o usuário que recebeu
uma permissão, possa concedê-la para outro usuário.
GRANT DELETE ON DatabaseLog
TO UsrAdventureSystem WITH GRANT OPTION;
Concessão de Privilégios
▪ Permissões de acesso são verificadas em tempo de execução das
queries;
▪ Caso o usuário não tenha permissão em qualquer objeto contido da
query, toda a execução da query falha.
Concessão de Privilégios
▪ Boa prática: usar roles, representando papéis / funções / perfis.
Concessão de Privilégios
▪ “Mix” de Opções: roles + roles com roles + privilégios diretamente.
Revogação de Privilégios
▪ Feita através do comando REVOKE da classe DCL;
▪ Revogação de privilégios para execução de comandos DML/DDL/DCL;
▪ Sintaxe p/ DML: REVOKE [Privilégio(s)] ON [Objeto] FROM [Usuário];
▪ Opção CASCADE: remove permissões concedidas por um usuário que
possuía a opção WITH GRANT OPTION;
▪ Exemplos de Revogação de Privilégio DML:
REVOKE DELETE ON DatabaseLog FROM UsrAdventureSystem;
▪ Comando DENY: para negar privilégios em objetos, sobrescrevendo
privilégios recebidos com GRANT.
❑ Capítulo 9 - Backup no SQL Server.
Próxima Aula
Backup no SQL Server
Capítulo 9
Aula 9.1. Conceitos Básicos de Backup
Prof. Gustavo Aguilar
❑ Periodicidade
❑ Retenção
❑ Tipos de Backup
❑ RPO
❑ RTO
❑ Política de Backup
Nesta Aula
Periodicidade
▪ Qual a frequência que o backup é feito?
✓ Diária
✓ De hora em hora
✓ Semanal
✓ Mensal
✓ Anual
✓ Etc.
Retenção
▪ Por quanto tempo cada backup que foi realizado é guardado, ou
seja, durante quanto tempo estará disponível?
✓ Uma semana
✓ Um mês
✓ Um ano
✓ Cinco anos
✓ Indeterminadamente
✓ Etc.
Tipos de Backup
▪ FULL: backup completo do banco de dados (estruturas, dados,
código, usuários, privilégios no banco de dados etc.).
▪ DIFERENCIAL (DIFF): backup das alterações ocorridas desde o último
backup full executado.
Tipos de Backup
▪ LOG: backup de logs de transações que inclui todos os registros de
log dos quais não foi feito backup em um backup de log anterior.
➢ Banco de dados precisa estar no recoverymodel full;
➢ Possibilita recovery-point-in-time.
RTO
▪ Recovery Time Objective;
▪ Tempo dentro do qual um processo de negócios deve ser restaurado, após um
desastre, para evitar consequências inaceitáveis associadas a uma interrupção
na continuidade do serviço;
▪ Quanto tempo se leva para restaurar o banco de dados?
RPO
▪ Recovery Point Objective;
▪ Quantidade máxima aceitável de perda de dados após um incidente de perda
de dados não planejado, expresso como uma quantidade de tempo.
Política de Backup
Periodicidade + Retenção + Tipo(s) de Backup(s) 
+ RTO + RPO + Ferramenta + Infraestrutura + 
Processos
➢ Conjunto de regras e procedimentos que descrevem a estratégia da
empresa ao fazer cópias de segurança dos dados para fins de
segurança.
❑ Fazendo Backup no SQL Server.
Próxima Aula
Backup no SQL Server
Capítulo 9
Aula 9.2. Fazendo Backup no SQL Server
Prof. Gustavo Aguilar
❑ Comando para Fazer Backup
❑ Demonstração: Fazendo Backup no SQL Server
Nesta Aula
Comando para Fazer Backup
--Backup FULL / DIFF
BACKUP DATABASE { database_name }
TO <backup_device>
[ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ]
--Backup de LOG
BACKUP LOG { database_name}
TO <backup_device>
[ WITH { <general_WITH_options> | \<log-specific_optionspec> } [ ,...n ] ]
Fazendo Backup no SQL Server

Mais conteúdos dessa disciplina