Buscar

banco de dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Banco de Dados Samurai 
Senai 
2020.2 
 
Conteúdo 
0 - Conceitos 
1 - Sobre banco de dados 
2 - Tipos de bancos de dados 
3 - O banco de dados relacional 
4 - Modelagem do banco de dados 
5 - SQL - A linguagem do banco de dados 
6- DDL 
7 - DML 
8 - Selects 
9 - Views 
10 - Procedures 
11 - Functions 
 
 
0 - Conceitos 
 
DADO: ​Informação sobre algo específico, ou ainda uma informação qualquer. 
 
BANCO DE DADOS: é uma coleção de dados inter-relacionados, representando 
informações sobre um domínio específico. 
 
BASE DE DADOS: ​São fragmentos de um Banco de Dados. Como num quebra 
cabeça, união das peças formam uma peça maior ou única. 
 
SGBD​: Sistema de Gerenciamentos de Bancos de Dados. 
 
BANCO DE DADOS RELACIONAL​: Os fragmentos do Banco de Dados (Base de 
Dados) em algum momento precisam ter uma relação entre si para que o seu 
objetivo (uma peça única e maior) seja alcançado. Esta técnica é chamada de 
Relacionamento e está basicamente definida na conexão entre as informações do 
Banco. 
 
SQL (Structured Query Language): Linguagem para Pesquisas e Consultas em 
Bancos de Dados. 
 
Um ​BD​ moderno deve ser compatível com SQL. 
 
TABELAS​: Local de Armazenamento das informações da Base de Dados. 
 
REGISTROS​: Os registros são a essência dos dados, ou seja a informação real que 
está armazenada na Tabela. 
 
CAMPOS​: São características que definem o dado a ser armazenado. O nome do 
Registro. 
 
CHAVES​: A forma de conexão entre as Tabelas. O relacionamento é definido por 
meio das Chaves. 
 
PRIMARY KEY​: Ou chave primária. É a principal Chave da Tabela. Toda tabela 
deve ter a sua. 
 
FOREIGN KEY: Uma chave estrangeira (FK) é uma coluna ou combinação de 
colunas que é usada para estabelecer e impor um link entre os dados em duas 
tabelas. Você pode criar uma chave estrangeira definindo uma restrição FOREIGN 
KEY ao criar ou modificar uma tabela. 
 
1 - Sobre banco de dados 
 
Um banco de dados é uma coleção organizada de informações - ou dados - 
estruturadas, normalmente armazenadas eletronicamente em um sistema de 
computador. Um banco de dados é geralmente controlado por um sistema de 
gerenciamento de banco de dados (DBMS). Juntos, os dados e o DBMS, 
juntamente com os aplicativos associados a eles, são chamados de sistema de 
banco de dados, geralmente abreviados para apenas banco de dados. 
 
Os dados nos tipos mais comuns de bancos de dados em operação atualmente são 
modelados em linhas e colunas em uma série de tabelas para tornar o 
processamento e a consulta de dados eficientes. Os dados podem ser facilmente 
acessados, gerenciados, modificados, atualizados, controlados e organizados. A 
maioria dos bancos de dados usa a linguagem de consulta estruturada (SQL) para 
escrever e consultar dados. 
Bancos de dados e planilhas (como o Microsoft Excel) são modos convenientes de 
armazenar informações. As principais diferenças entre os dois são: 
 
Como os dados são armazenados e manipulados 
Quem pode acessar os dados 
Quantos dados podem ser armazenados 
As planilhas foram originalmente projetadas para um usuário e suas características 
refletem isso. São ótimos para um único usuário ou um pequeno número de 
usuários que não precisam fazer manipulações de dados extremamente 
complicadas. Bancos de dados, por outro lado, são projetados para conter coleções 
muito maiores de informações organizadas, quantidades enormes, às vezes. Os 
bancos de dados permitem que vários usuários, ao mesmo tempo, acessem e 
consultem com rapidez e segurança os dados usando lógica e linguagem altamente 
complexas. 
 
Hoje, os grandes bancos de dados corporativos geralmente suportam consultas 
muito complexas e devem fornecer respostas quase instantâneas a essas 
consultas. Como resultado, os administradores de bancos de dados são 
constantemente chamados para empregar uma ampla variedade de métodos que 
ajudam a melhorar o desempenho. Alguns desafios comuns que eles enfrentam 
incluem: 
 
Absorção de aumentos significativos no volume de dados. A explosão de dados 
provenientes de sensores, máquinas conectadas e dezenas de outras fontes 
mantém os administradores de bancos de dados lutando para gerenciar e organizar 
os dados de suas empresas com eficiência. 
Garantia da segurança de dados. Violações de dados estão acontecendo em todos 
os lugares nos dias de hoje, e os hackers estão ficando mais inventivos. É mais 
importante do que nunca garantir que os dados estejam seguros, mas também 
acessíveis aos usuários. 
Acompanhando a demanda. No atual ambiente de negócios de rápido movimento, 
as empresas precisam de acesso em tempo real aos seus dados para apoiar a 
tomada de decisões em tempo hábil e aproveitar novas oportunidades. 
Gerenciamento e manutenção do banco de dados e da infraestrutura. Os 
administradores de banco de dados devem observar continuamente o banco de 
dados em busca de problemas e executar a manutenção preventiva, bem como 
aplicar atualizações e correções de software. À medida que os bancos de dados se 
tornam mais complexos e o volume de dados aumenta, as empresas enfrentam a 
despesa de contratar mais talentos para monitorar e ajustar seus bancos de dados. 
Remoção de limites na escalabilidade. Uma empresa precisa crescer se quiser 
sobreviver, e seu gerenciamento de dados deve crescer junto com ela. Mas é muito 
difícil para os administradores de banco de dados prever a capacidade que a 
empresa precisará, principalmente com bancos de dados on-premise. 
Resolver todos esses desafios pode consumir muito tempo e impedir que os 
administradores de banco de dados executem mais funções estratégicas. 
 
2 - Tipos de bancos de dados 
 
Existem muitos tipos diferentes de bancos de dados. O melhor banco de dados para 
uma organização específica depende de como a organização pretende usar os 
dados. 
 
Bancos de dados relacionais. Os bancos de dados relacionais se tornaram 
dominantes na década de 1980. Os itens em um banco de dados relacional são 
organizados como um conjunto de tabelas com colunas e linhas. A tecnologia de 
banco de dados relacional fornece a maneira mais eficiente e flexível de acessar 
informações estruturadas. 
Bancos de dados orientados a objetos. As informações em um banco de dados 
orientado a objetos são representadas na forma de objetos, como na programação 
orientada a objetos. 
Bancos de dados distribuídos. Um banco de dados distribuído consiste em dois ou 
mais arquivos localizados em sites diferentes. O banco de dados pode ser 
armazenado em vários computadores, localizados no mesmo local físico ou 
espalhados por diferentes redes. 
Data warehouses. Um repositório central de dados, um data warehouse é um tipo 
de banco de dados projetado especificamente para consultas e análises rápidas. 
Bancos de Dados NoSQL. Um NoSQL, ou banco de dados não relacional, permite 
que dados não estruturados e semiestruturados sejam armazenados e manipulados 
(em contraste com um banco de dados relacional, que define como todos os dados 
inseridos no banco de dados devem ser compostos). Os bancos de dados NoSQL 
se tornaram populares à medida que os aplicativos web se tornaram mais comuns e 
mais complexos. 
Bancos de dados gráficos. Um banco de dados gráfico armazena dados em termosde entidades e os relacionamentos entre entidades. 
Bancos de dados OLTP. Um banco de dados OLTP é um banco de dados rápido e 
analítico projetado para um grande número de transações realizadas por vários 
usuários. 
Esses são apenas alguns dos vários tipos de bancos de dados em uso atualmente. 
Outros bancos de dados menos comuns são adaptados para funções científicas, 
financeiras ou outras muito específicas. Além dos diferentes tipos de banco de 
dados, as mudanças nas abordagens de desenvolvimento de tecnologia e os 
avanços dramáticos, como a nuvem e a automação, estão impulsionando os bancos 
de dados em direções totalmente novas. Alguns dos mais recentes bancos de 
dados incluem 
 
Bancos de dados de código aberto. Um sistema de banco de dados de código 
aberto é aquele cujo código-fonte é código aberto; esses bancos de dados podem 
ser bancos de dados SQL ou NoSQL. 
Bancos de dados em nuvem. Um banco de dados em nuvem é uma coleção de 
dados, estruturados ou não estruturados, que residem em uma plataforma de 
computação em nuvem privada, pública ou híbrida. Existem dois tipos de modelos 
de banco de dados em nuvem: tradicional e banco de dados como um serviço 
(DBaaS). Com o DBaaS, as tarefas administrativas e a manutenção são executadas 
por um provedor de serviços. 
Banco de dados multimodelo. Bancos de dados multimodelo combinam diferentes 
tipos de modelos de banco de dados em um back-end único e integrado. Isso 
significa que eles podem acomodar vários tipos de dados. 
Banco de dados de documentos/JSON. Projetado para armazenar, recuperar e 
gerenciar informações orientadas a documentos, os bancos de dados de 
documentos são uma maneira moderna de armazenar dados no formato JSON, em 
vez de linhas e colunas. 
Bancos de dados autônomos. Os bancos de dados independentes mais novos e 
inovadores (também conhecidos como bancos de dados autônomos) são baseados 
em nuvem e usam machine learning para automatizar o ajuste de banco de dados, 
segurança, backups, atualizações e outras tarefas de gerenciamento de rotina 
tradicionalmente executadas por administradores de banco de dados. 
 
3 - O banco de dados relacional 
 
Um ​banco de dados relacional é um tipo de ​banco de dados que armazena e 
fornece acesso a pontos de dados relacionados entre si. Bancos de dados 
relacionais são baseados no modelo relacional, uma maneira intuitiva e direta de 
representar dados em tabelas. Em um banco de dados relacional, cada linha na 
tabela é um registro com uma ID exclusiva chamada ​chave​. As colunas da tabela 
contêm atributos dos dados e cada registro geralmente tem um valor para cada 
atributo, facilitando o estabelecimento das relações entre os pontos de dados. 
Um Exemplo de Banco de Dados Relacional 
Veja aqui um exemplo simples de duas tabelas que uma pequena empresa pode 
usar para processar pedidos de seus produtos. A primeira tabela é de 
informações do cliente​, de forma que cada registro inclui o nome, endereço, 
informações de envio e faturamento, número de telefone e outras informações 
de contato de um cliente. Cada bit de informação (cada atributo) está em sua 
própria coluna, e o banco de dados atribui uma ID única (uma chave) a cada 
linha. Na segunda tabela, a de um ​pedido do cliente ​, cada registro inclui a ID 
do cliente que fez o pedido, o produto solicitado, a quantidade, o tamanho e a 
cor selecionados e assim por diante, mas não o nome ou as informações de 
contato. 
Essas duas tabelas têm apenas uma coisa em comum: a coluna ID (a chave). 
Mas por causa dessa coluna comum, o banco de dados relacional pode criar 
uma ​relação entre as duas tabelas. Dessa forma, quando o aplicativo de 
processamento de pedidos da empresa envia um pedido ao banco de dados, o 
banco de dados pode ir à tabela de pedidos do cliente, obter as informações 
corretas sobre o pedido do produto e usar a ID do cliente dessa tabela para 
procurar as informações de faturamento e envio do cliente na tabela de 
informações do cliente. O warehouse poderá obter o produto correto, o cliente 
receberá a entrega do pedido oportunamente e a empresa receberá o 
pagamento. 
Como os Bancos de Dados Relacionais são Estruturados 
O modelo relacional significa que as estruturas de dados lógicas: tabelas de dados, 
exibições e índices são separadas das estruturas de armazenamento físico. Essa 
separação significa que os administradores de banco de dados podem gerenciar o 
armazenamento de dados físicos sem afetar o acesso a esses dados como uma 
estrutura lógica. Por exemplo, a renomeação de um arquivo de banco de dados não 
renomeia as tabelas armazenadas nele. 
A distinção entre lógico e físico também se aplica às operações do banco de dados, 
que são ações claramente definidas que permitem aos aplicativos manipular os 
https://www.oracle.com/br/database/what-is-database.html
dados e as estruturas do banco de dados. As operações lógicas permitem que um 
aplicativo especifique o conteúdo necessário e as operações físicas determinam 
como esses dados devem ser acessados e, em seguida, executa a tarefa. 
Para garantir que os dados sejam sempre precisos e acessíveis, os bancos de 
dados relacionais seguem determinadas regras de integridade. Por exemplo, uma 
regra de integridade pode especificar que linhas duplicadas não são permitidas em 
uma tabela para eliminar o potencial de informações errôneas que entram no banco 
de dados. 
O Modelo Relacional 
Nos primeiros anos de bancos de dados, todos os aplicativos armazenavam dados 
em sua própria estrutura única. Quando os desenvolvedores queriam criar 
aplicativos para usar esses dados, precisavam conhecer muito a estrutura de dados 
específica para encontrar os dados de que precisavam. Essas estruturas de dados 
eram ineficientes, difíceis de manter e difíceis de otimizar para oferecer um bom 
desempenho de aplicativos. O modelo de banco de dados relacional foi projetado 
para resolver o problema de várias estruturas de dados arbitrárias. 
O modelo relacional forneceu uma maneira padrão de representar e consultar dados 
que poderiam ser usados por qualquer aplicativo. Desde o início, os 
desenvolvedores reconheceram que a principal força do modelo de banco de dados 
relacional estava no uso de tabelas, que era uma maneira intuitiva, eficiente e 
flexível de armazenar e acessar informações estruturadas. 
Com o tempo, outra força do modelo relacional surgiu quando os desenvolvedores 
começaram a usar a linguagem de consulta estruturada (SQL) para criar e consultar 
dados em um banco de dados. Por muitos anos, a SQL tem sido amplamente 
utilizada como a linguagem para consultas de banco de dados. Com base na 
álgebra relacional, a SQL fornece uma linguagem matemática internamente 
consistente que facilita a melhoria do desempenho de todas as consultas ao banco 
de dados. Em comparação, outras abordagens devem definir consultas individuais. 
Benefícios dos Bancos de Dados Relacionais 
O modelo relacional simples, mas eficiente, é usado por organizações de todos os 
tipos e tamanhos para uma ampla variedade de necessidades de informações. Os 
bancos de dados relacionaissão usados para rastrear inventários, processar 
transações de comércio eletrônico, gerenciar grandes quantidades de informações 
essenciais sobre o cliente e muito mais. Um banco de dados relacional pode ser 
considerado para qualquer necessidade de informações na qual os pontos de dados 
se relacionam entre si e devem ser gerenciados de maneira segura e consistente, 
com base em regras. 
Bancos de dados relacionais existem desde os anos de 1970. Atualmente, as 
vantagens do modelo relacional continuam a torná-lo o modelo mais amplamente 
aceito para bancos de dados. 
Consistência de Dados 
O modelo relacional é o melhor em manter a consistência de dados entre aplicativos 
e cópias de banco de dados (chamadas de ​instâncias​). Por exemplo, quando um 
cliente deposita dinheiro em um caixa eletrônico e analisa o saldo da conta em um 
celular, o cliente espera ver esse depósito refletido imediatamente em um saldo 
atualizado da conta. Os bancos de dados relacionais se destacam nesse tipo de 
consistência de dados, garantindo que várias instâncias de um banco de dados 
tenham os mesmos dados o tempo todo. 
É difícil para outros tipos de bancos de dados manter esse nível de consistência 
oportunamente com grandes quantidades de dados. Alguns bancos de dados 
recentes, como o NoSQL, podem fornecer somente “consistência eventual.” Sob 
este princípio, quando o banco de dados é dimensionado ou quando vários usuários 
acessam os mesmos dados ao mesmo tempo, os dados precisam de algum tempo 
para “serem atualizados.” A consistência eventual é aceitável para alguns usos, 
como manter listagens em um catálogo de produtos, mas para operações 
comerciais essenciais, como transações de carrinho de compras, o banco de dados 
relacional ainda é o padrão ouro. 
Compromisso e Atomicidade 
Os bancos de dados relacionais lidam com regras e políticas de negócios em um 
nível muito granular, com políticas rígidas sobre ​compromisso (isto é, fazer uma 
alteração no banco de dados permanente). Por exemplo, considere um banco de 
dados de inventário que rastreie três peças que são sempre usadas juntas. Quando 
uma peça é retirada do inventário, as outras duas também devem ser retiradas. Se 
uma das três peças não estiver disponível, nenhuma das peças deve ser retirada. 
Todas as três peças devem estar disponíveis antes que o banco de dados confirme. 
Um banco de dados relacional não assumirá o compromisso por uma peça até que 
saiba que pode confirmar todas as três. Essa capacidade de compromisso 
multifacetada é chamada ​atomicidade​. A atomicidade é a chave para manter os 
dados precisos no banco de dados e garantir que eles estejam em conformidade 
com regras, regulamentos e políticas da empresa. 
ACID e Bancos de Dados Relacionais 
Quatro propriedades essenciais definem as transações do banco de dados 
relacional: atomicidade, consistência, isolamento e durabilidade, normalmente 
referidos como ​ACID​. 
● A ​atomicidade define todos os elementos que compõem uma 
transação completa do banco de dados. 
● A ​consistência define as regras para manter os pontos de dados em 
um estado correto após uma transação. 
● O ​isolamento mantém o efeito de uma transação invisível para outras 
pessoas até ser confirmada, para evitar confusão. 
● A ​durabilidade garante que as alterações de dados se tornem 
permanentes quando a transação for confirmada. 
Procedimentos Armazenados e Bancos de Dados Relacionais 
O acesso a dados envolve muitas ações repetitivas. Por exemplo, uma consulta 
simples para obter informações de uma tabela de dados pode precisar ser repetida 
centenas ou milhares de vezes para produzir o resultado desejado. Essas funções 
de acesso a dados requerem algum tipo de código para acessar o banco de dados. 
Os desenvolvedores de aplicativos não querem criar um novo código para essas 
funções a cada aplicativo novo. Felizmente, os bancos de dados relacionais 
permitem procedimentos armazenados, que são blocos de código que podem ser 
acessados com uma simples chamada de aplicativo. Por exemplo, um único 
procedimento armazenado pode fornecer identificação de registro consistente para 
usuários de vários aplicativos. Os procedimentos armazenados também podem 
ajudar os desenvolvedores a garantir que determinadas funções de dados no 
aplicativo sejam implementadas de uma maneira específica. 
Bloqueio e Simultaneidade de Banco de Dados 
Os conflitos podem surgir em um banco de dados quando vários usuários ou 
aplicativos tentam alterar os mesmos dados ao mesmo tempo. Técnicas de bloqueio 
e simultaneidade reduzem o potencial de conflitos, mantendo a integridade dos 
dados. 
O ​bloqueio impede que outros usuários e aplicativos acessem dados enquanto 
estão sendo atualizados. Em alguns bancos de dados, o bloqueio se aplica à tabela 
inteira, o que cria um impacto negativo no desempenho do aplicativo. Outros bancos 
de dados, como bancos de dados relacionais da Oracle, aplicam bloqueios no nível 
de registro, deixando os outros registros dentro da tabela disponíveis, ajudando a 
garantir um melhor desempenho do aplicativo. 
A ​simultaneidade gerencia a atividade quando vários usuários ou aplicativos fazem 
consultas ao mesmo tempo no mesmo banco de dados. Esse recurso fornece o 
acesso correto a usuários e aplicativos de acordo com as políticas definidas para o 
controle de dados. 
O Que Procurar ao Selecionar um Banco de Dados Relacional 
O software usado para armazenar, gerenciar, consultar e recuperar dados 
armazenados em um banco de dados relacional é chamado de ​sistema de 
gerenciamento de banco de dados relacional (RDBMSf)​. O RDBMS fornece uma 
interface entre usuários e aplicativos e o banco de dados, além de funções 
administrativas para gerenciar armazenamento, acesso e desempenho de dados. 
Vários fatores podem orientar sua decisão ao escolher entre tipos de banco de 
dados e produtos de banco de dados relacional. O RDBMS escolhido dependerá 
das suas necessidades de negócios. Pergunte a você mesmo as seguintes 
questões: 
● Quais são os nossos requisitos de precisão de dados? O 
armazenamento e a precisão de dados dependem da lógica de negócios? 
Nossos dados têm requisitos rigorosos de precisão (por exemplo, dados 
financeiros e relatórios do governo)? 
● Precisamos de escalabilidade? Qual é a escala dos dados a serem 
gerenciados e qual é o crescimento previsto? O modelo de banco de dados 
precisará oferecer suporte a cópias de banco de dados espelhadas (como 
instâncias separadas) para escalabilidade? Em caso afirmativo, é possível 
manter a consistência de dados nessas instâncias? 
● O quanto a simultaneidade é importante? Vários usuários e aplicativos 
precisarão de acesso simultâneo a dados? O software de banco de dados 
oferece suporte à simultaneidade ao mesmo tempo que protege os dados? 
● Quais são as nossas necessidades de desempenho e confiabilidade? 
Precisamos de um produto de alto desempenho e alta confiabilidade? 
Quais são os requisitos para o desempenho de resposta à consulta? Quais 
são os compromissos dos fornecedores em relação aos acordos de nível 
de serviço (SLAs) ou tempo de inatividade não planejado? 
O Banco deDados Relacional do Futuro: O Bancos de Dados Autônomo 
 
Ao longo dos anos, os bancos de dados relacionais ficaram melhores, mais 
rápidos, mais fortes e mais fáceis de se trabalhar. Mas também se tornaram 
mais complexos, e administrar o banco de dados tem sido um trabalho de 
tempo integral. Em vez de usarem seus conhecimentos para se concentrar no 
desenvolvimento de aplicativos inovadores que agreguem valor ao negócio, os 
desenvolvedores passaram a maior parte do tempo na atividade de 
gerenciamento necessária para otimizar o desempenho do banco de dados. 
Atualmente, a tecnologia autônoma está aproveitando os pontos fortes do 
modelo relacional para fornecer um novo tipo de banco de dados relacional. O 
banco de dados independente (também conhecido como ​banco de dados 
autônomo​) mantém a eficiência e as vantagens do modelo relacional, mas usa 
inteligência artificial (IA), o machine learning e a automação para monitorar e 
melhorar o desempenho das consultas e as tarefas de gerenciamento. Por 
exemplo, para melhorar o desempenho da consulta, o banco de dados 
independente pode criar hipóteses e testar índices para tornar as consultas 
mais rápidas e, em seguida, enviar as melhores para a produção, tudo por 
conta própria. O banco de dados independente faz essas melhorias 
continuamente, sem a necessidade de envolvimento humano. 
A tecnologia autônoma libera os desenvolvedores das tarefas comuns do 
gerenciamento do banco de dados. Por exemplo, eles não precisam mais 
determinar os requisitos de infraestrutura com antecedência. Em vez disso, 
com um banco de dados independente, eles podem adicionar armazenamento 
e processar recursos conforme necessário para oferecer suporte ao 
crescimento do banco de dados. Com apenas algumas etapas, os 
https://www.oracle.com/br/database/what-is-autonomous-database.html
https://www.oracle.com/br/database/what-is-autonomous-database.html
desenvolvedores podem facilmente criar um banco de dados relacional 
autônomo, acelerando o tempo para o desenvolvimento de aplicativos. 
 
4 - Modelagem de Banco de Dados 
EXEMPLO DE MODELO LÓGICO DE BANCO DE DADOS RELACIONAL 
 
 
MODELAGEM DE DADOS 
A modelagem de dados consiste na Analise e Planejamento dos dados que irão 
compor o Banco. 
MODELAGEM LÓGICA: 
A modelagem lógica consiste em determinar quais informações serão necessárias 
ao Banco. Estas informações serão divididas em Tabelas. Também serão definidos 
nesta fase os Campos das Tabelas, seus atributos e propriedades e ainda as 
Chaves Primárias e Secundárias, seu Índices e relacionamentos. 
MODELAGEM FÍSICA: 
A modelagem Física consiste na escolha de um SGBD e a criação do projeto 
(Modelagem Lógica) neste sistema. 
O Modelo de Entidades e Relacionamentos é um modelo abstrato cuja finalidade é 
descrever, de maneira conceitual, os dados a serem utilizados em um Sistema de 
Informações ou que pertencem a um domínio. 
A principal ferramenta do modelo é sua representação gráfica, o Diagrama Entidade 
Relacionamento. 
Normalmente o modelo e o diagrama são conhecidos por suas siglas: MER e DER. 
 
FUNDAMENTOS DO MER 
Entidade: Identifica o objeto de interesse do sistema e tem "vida" própria, ou seja, a 
representação abstrata de um objeto do mundo real sobre o qual desejamos 
guardar informações. 
Exemplo: Clientes, Fornecedores, Alunos, Funcionários, Departamentos, etc. 
Instância de Entidade:​ São os elementos da entidade. 
Exemplo: Cliente 10, Funcionário João, Aluno Pedro, etc. 
Atributo:​ Informações que desejamos guardar sobre a instância de entidade. 
Exemplo: Nome do aluno, Número da turma, Endereço do fornecedor, Sexo do 
funcionário, etc. 
 
 
CARDINALIDADE DE RELACIONAMENTOS 
Representa a freqüência com que existe o relacionamento. 
Relacionamento 1:1 - O João é casado com a Maria. 
- casado - Ligação entre um homem e uma mulher, sendo que um homem pode ser 
casado com uma e apenas uma mulher, assim como uma mulher pode ser casada 
com um e apenas um homem. 
Relacionamento 1:N ou N:1 - O Pedro trabalha no Departamento Pessoal. 
- trabalha - Ligação entre um Funcionário e um Departamento, onde um funcionário 
pode trabalhar em somente um departamento e um departamento pode ter vários 
funcionários. 
Relacionamento N : N - O Antônio está matriculado na disciplina Banco de Dados. 
- matriculado - Ligação existente entre um aluno e uma disciplina, onde um aluno 
pode estar matriculado em várias disciplinas e cada disciplina pode ter vários alunos 
matriculados. 
veja a representação gráfica (DER): 
 
 
 
MODELAGEM - NÁ PRÁTICA 
Considere o exemplo: 
Em uma determinada empresa, é preciso informatizar as ​fichas de cadastro de 
funcionários​. 
 
 
Passo 1: LISTA DE ENTIDADES 
FUNCIONÁRIOS 
CÔNJUGES 
DEPENDENTES 
 
Passo 2: LISTA DE ATRIBUTOS DE CADA ENTIDADE 
 
 
Passo 3: INSTÂNCIAS DAS ENTIDADES 
 
 
Passo 4: CARDINALIDADE DOS RELACIONAMENTOS 
 
 
Passo 5: CHAVES PRIMÁRIAS E ESTRANGEIRAS 
 
 
ONDE: 
Para cada Funcionário somente poderá existe ​um único conjugue, pois a instância 
do IDCONJ é o mesmo valor de IDFUN, ou seja, cardinalidade 1:1 (1 para 1). 
Por exemplo: IDFUN (Funcionarios) = 10 então IDCONJ (Conjugues) = 10. 
Para cada Funcionário pode existir ​um ou mais dependentes. Cardinalidade 1:N (1 
para Muitos). 
Por exemplo: IDFUN (Funcionarios) = 10 então IDFUN (Dependentes) = 10. 
 
Passo 6: MODELO LÓGICO FINALIZADO 
 
Pronto! Percorrendo estes 6 passos chegamos ao resultado de nossa modelagem 
lógica de dado​s. 
5 - SQL - A linguagem do banco de dados 
 
A linguagem SQL surgiu em meados da década de 70, sendo resultado de um 
estudo de E. F. Codd, membro do laboratório de pesquisa da IBM em San Jose, 
Califórnia. Este estudo tinha foco em desenvolver uma linguagem que adapta-se ao 
modelo relacional. O primeiro sistema de BD baseado em SQL tornou-se comercial 
no final dos anos 70 juntamente com outros sistema de BD’s relacionais. O sucesso 
da linguagem SQL foi tão grande que obrigou o ANSI (American National Standarts 
Institute), a padronizar as implementações da linguagem, assim, nos dias de hoje, a 
maior parte de BD’s seguem criteriosamente esta padronização, podendo ter 
algumas variações, mais mesmo assim não afetando na padronização global da 
linguagem tornando assim a portabilidade mais fácil, se seguida de forma adequada 
pelo DBA. 
6 - DDL 
 
Linguagem de Definição de Dados ou DDL (Data Definition Language): A DDL 
permite ao usuário permite a manipulação de tabelas e elementos associados, tipo 
chave primária e chaves estrangeira, índices, etc. Os principais comandos são 
CREATE, DROP, ALTER(em algumas situações). 
 
7 - DML 
 
Linguagem de Manipulação de Dados ou DML (Data Manipulation Language): A 
DML é um subconjunto da linguagem SQL, utilizada para Selecionar(SELECT), 
Inserir(INSERT), Atualizar(UPDATE) e Apagar(DELETE). 
 
7.1 - DQL 
Linguagem de Controle de Dados ou DCL (Data Control Language): A DCL controla 
os aspectos destinados a autorização de dados e licenças de usuários para 
manipulação de dados dentro do BD.Alguns comandos comuns são GRANT(dá 
privilégios para usuários), REVOKE (revoga privilégios de usuários), COMMIT(em 
resumo grava dados no BD) e ROLLBACK(descarta dados existentes desde o 
último COMMIT). 
Linguagem de Consultas deDados ou DQL (Data Query Language): embora na 
DQL exista somente um comando(SELECT) é o mais utilizado, principalmente para 
consultas parametrizadas. Lembre que o SELECT também é considerado um 
comanda DML. São exemplos os apresentados na Listagem 1. 
 
Listagem 1. Exemplos de DQL 
SELECT nome FROM clientes; SELECT id,nome FROM pessoas WHERE id = :id; 
Complementando a DQL, temos também uma série de Cláusulas (FROM, WHERE, 
GROUP BY, HAVING, ORDER BY, DISTINT), Operadores Lógicos (AND, OR, 
NOT), Operadores de Comparação (<, >, <>, <=, =, >=, BETWEEIN, LIKE) e 
Funções de Soma (AVG, COUNT, SUM, MIN, MAX). 
 
Um grande abraços a todos e bom desenvolvimento. 
 
8 - Selects 
SELECT simples 
 
O comando SELECT permite recuperar os dados de um objeto do banco de dados, 
como uma tabela, view e, em alguns casos, uma stored procedure (alguns bancos 
de dados permitem a criação de procedimentos que retornam valor). A sintaxe mais 
básica do comando é: 
 
SELECT <lista_de_campos> 
FROM <nome_da_tabela></nome_da_tabela></lista_de_campos> 
 
 
Exemplo: 
 
SELECT CODIGO, NOME FROM CLIENTES 
SELECT * FROM CLIENTES 
 
O caractere * representa todos os campos. Apesar de prático, este caractere não é 
muito utilizado, pois, para o SGBD é mais rápido receber o comando com todos os 
campos explicitados. O uso do * obriga o servidor a consultar quais são os campos 
antes de efetuar a busca dos dados, criando mais um passo no processo. 
 
COMANDO WHERE 
 
A cláusula Where permite ao comando SQL passar condições de filtragem. Veja o 
exemplo da Listagem 1. 
 
SELECT CODIGO, NOME FROM CLIENTES 
WHERE CODIGO = 10 
SELECT CODIGO, NOME FROM CLIENTES 
WHERE UF = ‘RJ’ 
SELECT CODIGO, NOME FROM CLIENTES 
WHERE CODIGO >= 100 AND CODIGO <= 500 
SELECT CODIGO, NOME FROM CLIENTES 
WHERE UF = ‘MG’ OR UF = ‘SP’ 
 
Listagem 1. Exemplo where 
 
Os parênteses corretamente utilizados dão mais poder as consultas, conforme 
exemplo abaixo: 
 
SELECT CODIGO, NOME FROM CLIENTES 
WHERE UF = ‘RJ’ OR (UF = ‘SP’ AND ATIVO = ‘N’) 
 
Neste comando todos os clientes do Rio de Janeiro e apenas os clientes inativos de 
São Paulo seriam capturados. 
 
Agora veja o exemplo a seguir: 
 
SELECT CODIGO, NOME FROM CLIENTES 
WHERE (ENDERECO IS NULL) OR (CIDADE IS NULL) 
 
Aqui, todos os clientes que não possuem endereço ou cidade cadastrada serão 
selecionados. 
 
FILTRO DE TEXTO 
Para busca parcial de string, o SELECT fornece o operador LIKE. Veja o exemplo 
abaixo: 
 
SELECT CODIGO, NOME FROM CLIENTES 
 WHERE NOME LIKE ‘MARIA%’ 
Neste comando, todos os clientes cujos nomes iniciam com Maria serão retornados. 
Se quisermos retornar os nomes que contenham ‘MARIA’ também no meio, 
podemos alterar para o exemplo a seguir: 
 
SELECT CODIGO, NOME FROM CLIENTES 
WHERE NOME LIKE ‘%MARIA%’ 
O uso de máscara no início e no fim da string fornece maior poder de busca, mas 
causa considerável perda de performance. Este recurso deve ser utilizado com 
critério. 
 
Uma observação: em alguns bancos de dados, a máscara de filtro não é 
representada por %. Consulte a referência do banco para verificar o caractere 
correto. 
 
Por padrão, a SQL diferencia caixa baixa de caixa alta. Para eliminar essa 
diferença, utiliza a função UPPER. Veja abaixo: 
 
SELECT CODIGO, NOME FROM CLIENTES 
WHERE UPPER(NOME) LIKE ‘MARIA %SILVA%’ 
ORDENAÇÃO 
A ordenação pode ser definida com o comando ORDER BY. Assim como no 
comando WHERE, o campo de ordenação não precisa estar listado como campo de 
visualização. Veja o exemplo da Listagem 2. 
 
SELECT CODIGO, NOME FROM CLIENTES 
ORDER BY NOME 
SELECT CODIGO, NOME FROM CLIENTES 
ORDER BY UF, NOME 
Listagem 2. Exemplo order by 
A utilização da palavra DESC garante a ordenação invertida: 
 
SELECT CODIGO, NOME FROM CLIENTES 
ORDER BY NOME DESC 
SELECT CODIGO, NOME FROM CLIENTES 
ORDER BY UF DESC 
 
JUNÇÃO DE TABELAS 
 
O SELECT permite juntar duas ou mais tabelas no mesmo resultado. Isso pode ser 
feito de várias formas. Uma delas segue abaixo: 
 
SELECT CLIENTES.CODIGO, CLIENTES.NOME, PEDIDOS.DATA 
FROM CLIENTES, PEDIDOS 
WHERE CLIENTES.CODIGO = PEDIDOS.CODCLIENTE 
 
Nesta linha as tabelas relacionadas CLIENTES e PEDIDOS são unificadas através 
do campo chave, em uma operação de igualdade. Repare que os nomes dos 
campos passam a ser prefixados pelo nome das tabelas, resolvendo duplicidades. 
Uma versão resumida desse comando pode ser como abaixo: 
 
SELECT A.CODIGO, A.NOME, B.DATA, B.VALOR 
FROM CLIENTES A, PEDIDOS B 
WHERE A.CODIGO = B.CODCLIENTE 
 
O uso de aliases no código SQL torna a manutenção mais simples. 
 
No comando abaixo temos várias tabelas unificadas em uma mesma cláusula. Veja 
a Listagem 3. 
 
SELECT A.CODIGO, A.NOME, B.DATA, B.VALOR, C.QTD, D.DESCRIC 
FROM CLIENTES A, PEDIDOS B, ITENS C, PRODUTOS D 
 WHERE A.CODIGO = B.CODCLIENTE 
 AND B.CODIGO = C.CODPEDIDO 
 AND C.CODPRODUTO = D.CODIGO 
 
Listagem 3. Exemplo de tabelas unificadas 
 
Neste comando unificamos as tabelas relacionadas CLIENTES, PEDIDOS, ITENS e 
PRODUTOS. Veja mais este exemplo: 
 
SELECT A.CODIGO, A.NOME, B.DATA, B.VALOR 
FROM CLIENTES A, PEDIDOS B 
WHERE A.CODIGO = B.CODCLIENTE 
AND A.UF = ‘RJ’ 
 
Observe que a junção através da igualdade de campos traz como resultado 
somente os registros que possuem referências nas duas tabelas. Observe o 
comando abaixo: 
 
SELECT A.CODIGO, A.DESCRICAO, B.DESCRICAO 
FROM PROUTOS A, COMPONENTES B 
WHERE A.CODIGO = B.CODPRODUTO 
 
Os produtos que não possuem componentes não são selecionados, caso seja 
necessário criar uma listagem incluindo também os registros que não possuem 
correspondência, deve-se utilizar o comando JOIN. 
 
 
 
COMANDO JOIN 
 
A junção de tabelas no comando SELECT também pode ser feita com o comando 
JOIN. Este comando deve ser utilizado com a palavra reservada INNER ou com a 
palavra OUTER: 
 
- INNER: Semelhante ao uso do operador “=” na junção de tabelas. Aqui os registros 
sem correspondências não são incluídos. Esta cláusula é opcional e pode ser 
omitida no comando JOIN. 
 
- OUTER: Os registros que não se relacionam também são exibidos. Neste caso, é 
possível definir qual tabela será incluída na seleção, mesmo não tendo 
correspondência. 
 
Para exemplificar, temos as tabelas abaixo: 
 
Observe os exemplos e o resultado produzido: 
 
SELECT A.CODIGO, A.DESCRICAO, B.DESCRICAO, B.QTD 
FROM PRODUTOS A 
INNER JOIN COMPONENTES B 
ON (A.CODIGO = B.CODPRODUTO) 
 
Este comando pode ser escrito na versão resumida abaixo: 
 
SELECT A.CODIGO, A.DESCRICAO, B.DESCRICAO 
FROM PRODUTOS A 
JOIN COMPONENTES B 
ON (A.CODIGO = B.CODPRODUTO) 
 
Como mostrado no resultado 1, os produtos que não possuem componentes não 
são incluídos na seleção. 
 
SELECT A.CODIGO, A.DESCRICAO, B.DESCRICAO, B.QTDE 
FROM PRODUTOS A 
LEFT OUTER JOIN COMPONENTES B 
ON (A.CODIGO = B.CODPRODUTO) 
 
Neste comando todos os produtos serão incluídos na seleção, independente de 
possuírem um componente. Observe que a palavra LEFT se refere à primeira tabela 
do relacionamento. O mesmo comando poderia ser descrito como na Listagem 4. 
 
SELECT A.CODIGO, A.DESCRICAO, B.DESCRICAO 
FROM COMPONENTES A 
RIGHT OUTER JOIN PRODUTOS B 
ON (A.CODIGO = B.CODPRODUTO) 
 
Listagem 4. Exemplo da palavra left 
A ordem das tabelas foi invertida mas o resultado é o mesmo. Observe mais alguns 
exemplos: 
 
SELECT A.CODIGO, A.DESCRICAO, B.DESCRICAO, B.QTDE 
FROM PRODUTOS A 
JOIN COMPONENTES B 
ON (A.CODIGO = B.CODPRODUTO) 
WHERE A.CATEGORIA = 1 
 
Agora veja o código q reproduz o resultado 4: 
 
SELECT A.CODIGO, A.DESCRICAO, B.DESCRICAO 
FROM PRODUTOS A JOIN COMPONENTES B 
ON (A.CODIGO = B.CODPRODUTO) 
WHERE A.CATEGORIA = 1 OR A.CATEGORIA = 2 
ORDER BY A.CATEGORIA, A.DESCRICAO 
FULL OUTER JOIN 
 
Podemos ainda combinar o uso de INNER e OUTER através do comando FULL 
OUTER JOIN. Neste caso, todos os registros das duas tabelas envolvidas serão 
exibidos, tendo ou não relacionamento. Observe: 
 
UNION 
Existe ainda uma segunda forma de juntar tabelas com o comando SELECT. 
Atravésdo parâmetro UNION, é possível colar o conteúdo de duas tabelas. Veja o 
exemplo: 
 
SELECT CODIGO, NOME FROM CLIENTES 
UNION 
SELECT CODIGO. NOME FROM FUNCIONARIOS 
 
O resultado deste comando é a listagem de todos os clientes e a listagem de todos 
os funcionários, dentro do mesmo result set. Repare que no comando JOIN á união 
é horizontal e no UNION a união é vertical. 
 
Por default, os registros duplicados são eliminados na cláusula UNION. No exemplo 
anterior, se tivéssemos um cliente com o mesmo nome e código de um funcionário, 
apenas o registro da primeira tabela seria exibido. Para incluir todos os registros, 
independente de duplicidade, utilize a palavra ALL: 
 
SELECT CODIGO, NOME FROM CLIENTES 
UNION ALL 
SELECT CODIGO, NOME FROM FUNCIONARIOS 
FUNÇÕES DE AGRUPAMENTO 
 
São cinco as funções básicas de agrupamento: 
 
AVG: Retorna a média do campo especificado 
 
SELECT AVG(VALOR) FROM PEDIDOS 
MIN/MAX/SUM: Respectivamente retorna o menor valor, o maior e o somatório 
de um grupo de registros: 
SELECT MIN(VALOR) FROM PEDIDOS 
SELECT MAX(VALOR) FROM PEDIDOS 
SELECT AVG(VALOR) FROM PEDIDOS 
COUNT: Retorna a quantidade de itens da seleção 
Um exemplo de uso é o que pode ser visto abaixo: 
 
SELECT COUNT(CODIGO) FROM CLIENTES 
 
AGRUPAMENTO 
Um poderoso recurso do comando SELECT é o parâmetro GROUPY BY. Através 
dele podemos retornar informações agrupadas de um conjunto de registros, 
estabelecendo uma condição de agrupamento. É um recurso muito utilizado na 
criação de relatórios. Para exemplificar, temos as tabelas CLIENTES E PEDIDOS a 
seguir. 
 
SELECT CODCLIENTE, MAX(VALOR) 
FROM PEDIDOS 
GROUP BY CODCLIENTE 
 
O comando acima retorna o maior valor de pedido de cada cliente. Observe o 
resultado: 
 
SELECT CODCLIENTE, COUNT(*) 
FROM PEDIDOS 
GROUPY BY CODCLIENTE 
 
Abaixo vemos quantos pedidos foram feitos por cada cliente. 
 
HAVING 
Através do comando HAVING podemos filtrar a cláusula GROUP BY. Observe o 
comando abaixo: 
 
SELECT CODCLIENTE, COUNT(*) 
FROM PEDIDOS 
GROUPY BY CODCLIENTE 
HAVING COUNT(*) >= 2 
 
Somente os clientes com 2 ou mais pedidos serão selecionados. Repare que o 
HAVING é utilizado, geralmente com alguma função de agrupamento. Para filtros 
normais, pode-se utilizar o comando WHERE. Observe o exemplo abaixo: 
 
SELECT CODCLIENTE, COUNT(*) 
FROM PEDIDOS 
WHERE DATA > ‘06/10/2002’ 
GROUPY BY CODCLIENTE 
HAVING COUNT(*) >= 2 
 
Repare que o cliente número 3 apresentou apenas dois pedidos, visto que o 
primeiro não possui data maior que 06/10. 
 
Com esse artigo voltado ao público mais iniciante em SQL conseguimos solucionar 
muitas dúvidas sobre como efetuar consultas usando o comando Select e você 
aprende a adicionar todas as Cidades e Estados do Brasil em um banco de dados 
usando SQL.

Continue navegando