Escolar Documentos
Profissional Documentos
Cultura Documentos
Banco de Dados
DADOS DADOS
Renato Alves Ferreira Renato Alves Ferreira
Prezado aluno, seja bem-vindo a mais uma etapa do nosso curso! A disciplina de banco
de dados foi cuidadosamente elaborada para tratar de conhecimentos importantes e
relevantes à sua formação. Os bancos de dados impactam nossas vidas e trazem faci-
lidades em praticamente todas as áreas do conhecimento. Ter a possibilidade de obter
informação de forma rápida e confiável é fundamental para o mundo em que vivemos
e os bancos de dados permitem controlar e disponibilizar tais informações, o que os
tornam elementos indispensáveis em uma sociedade moderna.
Em nossa unidade, serão abordados conceitos fundamentais sobre o tema, como: os
tipos de bancos de dados, modelagem de dados e suas estruturas, sistemas gerencia-
dores de banco de dados, ferramentas CASE para modelagem de banco de dados, en-
tre outros. Esperamos que os assuntos e temas abordados nesta disciplina contribuam
enormemente em seu processo de formação e permitam alicerçar o seu crescimento
com uma aprendizagem geradora de resultados e realizações. Vamos ao trabalho?
DADOS DO FORNECEDOR
*Todos os gráficos, tabelas e esquemas são creditados à autoria, salvo quando indicada a referência.
Nenhuma parte desta publicação poderá ser reproduzida por qualquer meio
A violação dos direitos autorais é crime estabelecido pela Lei n. 9.610/98 e punido pelo
ASSISTA
Indicação de filmes, vídeos ou similares que trazem informações comple-
mentares ou aprofundadas sobre o conteúdo estudado.
CITANDO
Dados essenciais e pertinentes sobre a vida de uma determinada pessoa
relevante para o estudo do conteúdo abordado.
CONTEXTUALIZANDO
Dados que retratam onde e quando aconteceu determinado fato;
demonstra-se a situação histórica do assunto.
CURIOSIDADE
Informação que revela algo desconhecido e interessante sobre o assunto
tratado.
DICA
Um detalhe específico da informação, um breve conselho, um alerta, uma
informação privilegiada sobre o conteúdo trabalhado.
EXEMPLIFICANDO
Informação que retrata de forma objetiva determinado assunto.
EXPLICANDO
Explicação, elucidação sobre uma palavra ou expressão específica da
área de conhecimento trabalhada.
Sintetizando........................................................................................................................... 39
Referências bibliográficas................................................................................................. 40
Modelo relacional................................................................................................................ 43
Conceitos básicos ........................................................................................................ 43
Restrições de integridade............................................................................................ 47
Sintetizando........................................................................................................................... 65
Referências bibliográficas................................................................................................. 66
Sintetizando........................................................................................................................... 95
Referências bibliográficas................................................................................................. 96
Sintetizando......................................................................................................................... 125
Referências bibliográficas............................................................................................... 126
Prezado aluno, seja bem-vindo a mais uma etapa do nosso curso! A dis-
ciplina de banco de dados foi cuidadosamente elaborada para tratar de co-
nhecimentos importantes e relevantes à sua formação. Os bancos de dados
impactam nossas vidas e trazem facilidades em praticamente todas as áreas
do conhecimento. Ter a possibilidade de obter informação de forma rápida e
confiável é fundamental para o mundo em que vivemos e os bancos de dados
permitem controlar e disponibilizar tais informações, o que os tornam elemen-
tos indispensáveis em uma sociedade moderna.
Em nossa unidade, serão abordados conceitos fundamentais sobre o tema,
como: os tipos de bancos de dados, modelagem de dados e suas estruturas,
sistemas gerenciadores de banco de dados, ferramentas CASE para modela-
gem de banco de dados, entre outros. Esperamos que os assuntos e temas
abordados nesta disciplina contribuam enormemente em seu processo de for-
mação e permitam alicerçar o seu crescimento com uma aprendizagem gera-
dora de resultados e realizações. Vamos ao trabalho?
BANCO DE DADOS 9
Currículo Lattes:
http://lattes.cnpq.br/4524836424246846
A Deus, que me capacita a cada dia, aos meus pais, meu porto seguro, aos
meus filhos, razão da minha existência.
BANCO DE DADOS 10
1 CONCEITOS
INICIAIS
Tópicos de estudo
Introdução aos bancos de
dados
Conceitos de sistemas de
banco de dados
Introdução à modelagem de
dados
Projeto conceitual de banco
de dados
Modelo Entidade-relaciona-
mento
Conceitos básicos
Aspectos avançados
Diagrama Entidade-relaciona-
mento
BANCO DE DADOS 12
CITANDO
“Então, o que é exatamente um sistema de banco de dados? Basicamente
nada mais é do que um sistema de armazenamento de dados baseado em
computador, isto é, um sistema cujo objetivo global é registrar e manter
informação” (DATE, 2003, p. 26).
BANCO DE DADOS 13
Figura 1. Modelagem de banco de dados. Fonte: Shutterstock. Acesso em: 25 fev. 2019.
BANCO DE DADOS 14
Figura 2. Exemplo de banco de dados no mundo real. Fonte: Shutterstock. Acesso em: 24 fev. 2019.
Produto
Código Nome Valor Quantidade
100020 KL-77 230,00 2
200030 SL-23 150,00 53
200035 SL-91 435,00 30
500040 JS-10 890,00 1
BANCO DE DADOS 15
BANCO DE DADOS 16
EXPLICANDO
O conhecimento é constituído por intermédio de informações que adqui-
rimos e toda informação é constituída por dados. Logo, temos uma hierar-
quia muito bem definida e estabelecida. Para que um sistema de banco de
dados se justifique e seja eficiente, não pode ser apenas um depósito de
dados. Precisa fornecer informações que gerem conhecimentos que satis-
façam as necessidades das organizações que os utilizam e os mantêm.
BANCO DE DADOS 17
BANCO DE DADOS 18
BANCO DE DADOS 19
Projeto Projeto
Análise de conceitual físico Base de
requisitos dados
Projeto
lógico
BANCO DE DADOS 20
Conceitos básicos
Os conceitos fundamentais do Modelo Entidade-relacionamento estão cal-
cados nos preceitos de entidades, relacionamentos e atributos. A seguir, ve-
jamos separadamente cada um deles.
Entidades
Em um de banco de dados, podemos ter uma ou várias entidades. As en-
tidades são artefatos ou objetos que organizam as informações que serão
armazenadas e manipuladas em um banco de dados. Elas devem possuir ca-
racterísticas muito bem estabelecidas e definidas.
Para Silberschatz, Korth e Sudarshan (1999) uma entidade é uma “coisa” ou um
“objeto” do mundo real que pode ser identificada de forma unívoca em relação a to-
dos os outros objetos. Deve possuir identificação distinta e com um significado pró-
prio. Também são descritas como objetos da realidade na qual se deseja manter infor-
mações. Normalmente é representado por um substantivo na descrição do negócio.
BANCO DE DADOS 21
Aluno Curso
RA Cidade
BANCO DE DADOS 22
Cliente Produto
Agora que você já sabe o que são entidades e atributos, o que acha de rea-
lizar uma atividade simples a respeito desses dois elementos da modelagem
de banco de dados? Em uma folha de papel, idealize quais entidade seriam
necessárias para uma biblioteca de uma escola e quais atributos mínimos cada
entidade precisaria. Ok? Vamos lá!
Relacionamento
Quando a entidade possui elos com uma ou várias entidades, chamamos
esses elos de relacionamento. Esse relacionamento é realizado entre atributos
coirmãos das diferentes entidades, desde que tais atributos sejam de mesma
natureza e contexto; dessa forma, criamos uma relação entre as entidades.
Esse é o conceito de relacionamento.
Há também a possibilidade de um auto-relacionamento, quando uma en-
tidade está associada a um ou mais elemento da mesma entidade. Outro item
importante no relacionamento são as cardinalidades envolvidas nessa relação.
O Diagrama 5 ilustra a relação de uma entidade Médico com a entidade Pa-
cientes, sendo que o nome da relação é consulta. O assunto relacionamento
será tratado com mais detalhes no tópico Diagrama Entidade-relacionamento.
BANCO DE DADOS 23
(1, 1) (0, n)
Consulta
Médico Paciente
Aspectos avançados
Em modelagem de banco de dados, existem muitos detalhes e recursos que
precisam ser descritos aos poucos. Não se deve tentar em um único diagrama
resolver todos os problemas. Devemos criar diagramas mais genéricos sem
tantos detalhes inicialmente e aumentar o nível de detalhe na medida em que
a necessidade exige.
As entidades, os atributos e relacionamentos possuem recursos mais téc-
nicos e avançados que também introduziremos aos poucos. No momento em
que esses recursos se façam necessários e indispensáveis, serão abordados e
exemplificados para serem aplicados. As variações dos atributos e as cardinali-
dades dos relacionamentos serão descritos a seguir.
Tipos de atributos
Existem vários tipos de atributos com características diferentes que podem
formar uma entidade. Vejamos cada um deles.
• Atributos simples: atributos não divisíveis são chamados simples ou atô-
micos. Exemplos: nome, sexo, preço, CPF;
• Atributos compostos: podem ser divididos em partes com significados
independentes, como um endereço, que poderá ser composto pelos atributos
rua, cidade, Estado e CEP. Atributos compostos podem formar uma hierarquia;
BANCO DE DADOS 24
EXPLICANDO
Todo campo chave é também um atributo determinante, mas nem todo
atributo determinante precisará ser um atributo chave.
BANCO DE DADOS 25
Cardinalidade
(1, 1) (0, n)
Médico Consulta Paciente
BANCO DE DADOS 26
Diagrama Entidade-relacionamento
Como definido anteriormente, o
Diagrama Entidade-relacionamento,
conhecido como DER, é uma repre-
sentação gráfica de um modelo con-
ceitual. Muitas vezes é tratado como
sinônimo do modelo conceitual, já que
o modelo pode se tornar abstrato de-
mais e dificultaria muito o processo
de desenvolvimento geral do sistema.
Dessa forma, quando se está definin-
do o modelo conceitual, o mais prático, muitas vezes, é já ir criando a repre-
sentação gráfica do modelo, ou seja, o DER. O diagrama facilita muito a comu-
nicação entre os envolvidos na equipe de desenvolvimento, pois oferece uma
linguagem comum utilizada tanto pelo analista, responsável por levantar os
requisitos e regras de negócio, os desenvolvedores, responsáveis por imple-
mentar aquilo que foi modelado e até mesmo o cliente e usuário final.
No DER, originalmente, no modelo proposto por Chen (1990), as entidades
são representadas por retângulos, seus atributos por elipses e os relaciona-
mentos por losangos, ligados por linhas e contendo também uma marcação de
cardinalidade (Diagrama 7).
Um formato mais moderno e usual propôs a troca das elipses que repre-
sentam os atributos e passaram a utilizar o formato utilizado na UML (Unified
Modeling Language, “linguagem unificada de modelagem”), em que os atributos
são descritos dentro da própria entidade, fazendo com que o diagrama seja
mais legível e fácil de ser entendido (Diagrama 8). Esse formato também se
aproxima mais do modelo lógico, que será visto posteriormente.
Vale ressaltar que nem sempre será necessário construir Diagramas de En-
tidades-relacionamentos com todos os atributos. Muitas vezes bastam apenas
as entidades e a indicação de relacionamentos sem nenhum atributo.
BANCO DE DADOS 27
Modelo Nome
Chassi
Marca CPF
Modelo Nome
Chassi Telefone
Cor Endereço
Ano Data
Última
Km locação
BANCO DE DADOS 28
BANCO DE DADOS 29
Ferramentas e menu
Barra de artefatos
Janelas de propriedades
e outros
Painel de criação
BANCO DE DADOS 30
Painel de criação: é área livre onde você poderá trazer seus objetos para
construção do diagrama;
Barra de artefatos: nessa barra, você encontra todos os objetos para cons-
trução do seu diagrama. Basta clicar sobre eles e em seguida clicar em alguma
área do painel de construção (Fig. 6). Perceba que a figura está na horizontal
apenas para melhor apresentação e explicação.
BANCO DE DADOS 31
BANCO DE DADOS 32
BANCO DE DADOS 33
BANCO DE DADOS 34
(1, n) (1, n)
Médico Consulta Paciente
BANCO DE DADOS 35
(1, n) (1, n)
Médico Consulta Paciente
CRM Código
Telefone
Especialidade
Nome Convênios
Nome
Convênio 1 Convênio 2
BANCO DE DADOS 36
BANCO DE DADOS 37
BANCO DE DADOS 38
BANCO DE DADOS 39
BANCO DE DADOS 40
2 MODELO RELACIONAL
Tópicos de estudo
Modelo relacional Sistemas de gerenciamento de
Conceitos básicos banco de dados
Restrições de integridade Arquitetura de sistemas de
banco de dados
Esquema relacional de um
banco de dados
Projeto de implementação de
banco de dados
Implementação de bancos de
dados relacionais
BANCO DE DADOS 42
CITANDO
“A abordagem entidade-relacionamento é voltada à modelagem de dados
de forma independente do SGBD considerado. É adequada para constru-
ção do modelo conceitual. Já a abordagem relacional modela os dados em
nível de SGBD relacional. Um modelo neste nível de abstração é chamado
de modelo lógico.” (HEUSER, 2009, p. 6).
Conceitos básicos
O modelo relacional foi proposto por Edgar Frank Codd, matemático bri-
tânico e pesquisador da IBM, em um artigo acadêmico em 1970. Entre outros
aspectos, Codd propôs representar os dados como uma coleção de relações,
sendo que cada relação fosse representada em formato de tabelas, com colu-
nas e linhas. Ele é considerado o pai do modelo relacional, já que vários siste-
mas gerenciadores de bancos de dados nasceram dessa ideia.
BANCO DE DADOS 43
MATRICULADOS
Engenharia
123450042 Karoline Sevla 100020
Elétrica
BANCO DE DADOS 44
D1
123450001
123450005
123450009
123450033
123450042
123450043
123450050
BANCO DE DADOS 45
V1 V2 V3 V4
BANCO DE DADOS 46
ALUNO CURSO
RA Aluno Cod_Curso Cod_Curso Nome_Curso Valor
Restrições de integridade
As restrições de integridade servem para garantir a exatidão dos dados em
um banco de dados relacional. Segundo Heuser (2009), as restrições de integri-
dade equivalem a dizer que os dados de um banco estão íntegros, significando
que eles refletem corretamente a realidade representada pelo banco de dados
e que são consistentes entre si.
Há uma variação de tipos de restrições de integridade. Como exemplo, a in-
tegridade de domínio de um atributo que verifica se os dados são do tipo espe-
rado e permitido, como alfanumérico, numérico, data, limites para o tamanho
do campo, se pode ter conteúdo nulo ou não.
Tipos de restrições de integridade
Restrição de chave
Impede que uma chave-primária tenha repetições, garantindo assim a uni-
cidade dos dados no banco de dados.
BANCO DE DADOS 47
BANCO DE DADOS 48
BANCO DE DADOS 49
EXPLICANDO
possível definir o esquema relacional, tanto do modelo lógico em tabelas
(veja o Quadro 3) ou direto do modelo conceitual (diagrama Entidade-Rela-
cionamento), desde que os atributos tenham sido especificados. Observe
que no modelo lógico, não se especificam os tipos e características de
cada campo. Isso é uma tarefa desenvolvida no modelo físico, muito em-
bora, algumas ferramentas CASE já tragam o modelo lógico também com
tais informações sobre os campos, mas não é necessário que seja assim
na definição do projeto lógico.
BANCO DE DADOS 50
RA
Nome
Cord_Curso Data_devolução
Turma Multa_atraso
(1,1) (1,1)
Solicita Aluno Devolve
Data_empréstimo
(0,n) (1,n)
Requisição
Num_requisição RA_Aluno
(0,1)
Contém
(1,n)
Cod_Livro
Livro Autor
Título
BANCO DE DADOS 51
BANCO DE DADOS 52
Entidade Tabela
Atributo-chave Chave-primária
BANCO DE DADOS 53
BANCO DE DADOS 54
BANCO DE DADOS 55
Apenas para título de curiosidade, lembre-se que o aluno poderia ter rea-
lizado uma requisição de empréstimo com vários livros e poderia devolvê-los
separadamente e em datas diferentes. Dependendo do modelo de negócio e
do volume estimado, a opção por três ou quatro tabelas poderia ter um im-
pacto diferente em cada caso, logo, o modelo conceitual talvez necessite de
um ajuste para entrar em conformidade com o modelo lógico para que toda a
documentação fique mais alinhada.
Na sequência são apresentados os diagramas criados automaticamente
pela ferramenta CASE brModelo a partir do modelo conceitual já apresentado
anteriormente. É importante destacar que, mesmo tendo a opção automática
de criação do modelo lógico, é possível criá-lo do zero ou mesmo alterá-lo, in-
dependentemente do modelo conceitual ser ajustado na ferramenta.
BANCO DE DADOS 56
(1,1) (1,1)
Solicita Devolve
(0,n) (1,n)
(0,1)
Contém
(1,n)
BANCO DE DADOS 57
(1,1) (1,1)
Solicita Devolve
(0,n) (1,n)
(0,1)
Contém
(1,n)
BANCO DE DADOS 58
CITANDO
“A maioria desses sistemas de banco de dados foi implementada em com-
putadores grandes (mainframes) e caros, começando em meados de 1960
indo até os anos 70 e 80. Os principais tipos desses sistemas iniciais foram
baseados em três paradigmas principais: os sistemas hierárquicos, aqueles
baseados em modelo de rede, e os de arquivos invertidos.”, “Os primeiros
sistemas relacionais experimentais desenvolveram-se no fim dos anos 0
e os SGBDRs (sistemas de gerenciamento de banco de dados relacional)
introduzidos no início dos anos 80 eram muito lentos, pois não usavam pon-
teiros para o armazenamento físico ou registros de localização para acessar
os registros de dados relacionados” (ELMASRI; NAVATHE, 2011, p. 15).
BANCO DE DADOS 59
BANCO DE DADOS 60
Visão do usuário
Aplicação 1 Aplicação N
MAPEAMENTO
EXTERNO/CONCEITUAL
MAPEAMENTO
CONCEITUAL/INTERNO
BANCO DE DADOS 61
CONCEITUAL
NÚMERO_EMPREGADO CARACTER(5)
NÚMERO_DEPARTAMENTO CARACTER(4)
SALÁRIO DECIMAL(5)
INTERNO
EMP ARMAZENADO BYTES=20
PREFIXO BYTES=6, OFFSET=0
EMP# BYTES=6, OFFSET=6, INDEX=EMPX
DEPTO# BYTES=4, OFFSET=12
PAGTO BYTES=4, ALIGN=FULLWORD, OFFSET=16
BANCO DE DADOS 62
BANCO DE DADOS 63
BANCO DE DADOS 64
BANCO DE DADOS 65
BANCO DE DADOS 66
3 MODELO FÍSICO DO
BANCO DE DADOS
INTRODUÇÃO À
LINGUAGEM SQL
Tópicos de estudo
Conceitos de Linguagem SQL Agregando dados com funções
Consultas básicas em Lingua- de grupo
gem SQL Usando subconsultas de
dados
Restringindo e ordenando
dados
Uso de funções para transfor-
mar dados
Exibindo dados de várias
tabelas
BANCO DE DADOS 68
BANCO DE DADOS 69
CITANDO
“Em muitos S BDs, não existe uma separação específica dos três níveis
(Three-Schema) Nos S BDs, em que uma clara separação é mantida
entre os níveis conceitual e interno, uma linguagem de definição de dados
é usada para especificar somente o esquema conceitual. Outra linguagem,
a linguagem de definição de armazenamento, é utilizada para especificar
o esquema interno. Os mapeamentos entre os dois esquemas podem ser
estabelecidos em qualquer uma dessas linguagens. Para uma verdadeira
arquitetura de três esquemas, necessitaríamos de uma terceira lingua-
gem, a linguagem de definição de visões, para especificar as visões dos
usuários (aplicações) e os seus mapeamentos para o esquema conceitual,
mas na maioria dos S BDs a linguagem de definição de dados é usada
para definir ambos os esquemas, o conceitual e o externo” (EL ASRI e
NA AT E, p.23, 20 ).
BANCO DE DADOS 70
BANCO DE DADOS 71
BANCO DE DADOS 72
BANCO DE DADOS 73
Agora está tudo pronto para colocar a mão na massa. Aprenderemos inicial-
mente comandos que permitem fazer vários tipos de consulta no banco de da-
dos, que são as ações mais executadas dentro dele, tanto é que o próprio nome
da Linguagem SQL remete a esse procedimento.
A criação e inserção de bancos de dados não serão abordadas profunda-
mente nesse momento; isso ficará para o próximo capítulo.
Testando o banco de dados instalado
Para familiarizar-se com o banco de dados instalado, vamos testar alguns
comandos básicos para avaliar as bases de dados que já acompanham o pro-
duto com a instalação de fábrica. Os comandos podem ser digitados em minús-
culo ou maiúsculo, porém, pode haver algum SGBD ou sistema operacional que
exija uma ou outra forma. Argumentos que complementam o comando, como
lista de atributos, nomes de tabelas, condições etc. também podem variar de
acordo com o que foi criado no banco de dados ou no SGBD adotado. Logo,
procure fazer testes para avaliar as limitações nesse sentido. Não é, portanto,
uma limitação da Linguagem SQL.
BANCO DE DADOS 74
BANCO DE DADOS 75
BANCO DE DADOS 76
BANCO DE DADOS 77
BANCO DE DADOS 78
BANCO DE DADOS 79
BANCO DE DADOS 80
BANCO DE DADOS 81
BANCO DE DADOS 82
Parâmetros
%d Dia do mês numérico (00 a 31)
%D Dia do mês com sufixo em inglês
%m Mês numérico (00 a 12)
%M Nome do mês
%y Ano numérico em dois dígitos
%Y Ano com quatro dígitos
%W Nome do dia da semana
%j Dias corridos no ano
%h Horas
%i Minutos
%s Segundos
BANCO DE DADOS 83
BANCO DE DADOS 84
BANCO DE DADOS 85
Figura 11. Retorno dos dados das duas tabelas combinadas, relacionadas por Cod_curso.
Para refinar ainda mais essa consulta, é possível escolher apenas os campos
que desejamos, sem inserir campos desnecessários ou repetidos como Cod_
Curso, que aparece duas vezes, pois está em ambas as tabelas. Podemos ainda
renomear uma coluna para um melhor entendimento dos dados. Na Figura
12, que aparecerá nos parágrafos a seguir, perceba que aparecem apenas os
campos desejados e uma coluna renomeada para AREA_do_Curso. O coman-
do responsável é:
SELECT RM, aluno.Nome, aluno.Cod_curso, curso.Nome AS AREA_do_Curso
FROM aluno, curso WHERE aluno.Cod_Curso = curso.cod_curso;
Perceba que após o SELECT é possível selecionar os atributos que deseja-
mos listar. Contudo, atributos com nomes ambíguos devem ser precedidos do
nome da tabela seguidos de um ponto, como aluno.Nome, para diferenciá-los,
já que existe o campo “nome” em ambas as tabelas e, nesse caso, o “nome” na
tabela de alunos não tem nada a ver com o “nome” da tabela de cursos; um é
do aluno, o outro é do curso. No entanto, o atributo Cod_Curso da tabela de
alunos e Cod_curso da tabela de cursos possuem nomes semelhantes, mas os
conteúdos precisam refletir o mesmo interesse para que haja um relaciona-
mento entre as tabelas. A letra “C” de curso está diferente em cada tabela, mas
BANCO DE DADOS 86
BANCO DE DADOS 87
BANCO DE DADOS 88
Perceba que, no LEFT JOIN e RIGHT JOIN, quando não há dados da tabela
preterida pelos comandos, aparece o NULL nas colunas, informando que não
há dados para serem exibidos. Veja que os dois comandos possibilitaram ver
que a aluna Rafaela Silva, RM 90, não está matriculada em nenhum curso loca-
lizado na tabela de cursos, e o curso engenharia não possui nenhum aluno re-
gistrado. Pode-se combinar os parâmetros JOIN e WHERE para criar consultas
mais elaboradas. Veja os exemplos a seguir.
No comando seguinte, apenas cursos com valor superior a 2.700 serão mos-
trados nas tabelas relacionadas:
SELECT * FROM aluno INNER JOIN curso on aluno.cod_curso=curso.cod_
curso WHERE valor > 2700;
Já no comando a seguir, apenas cursos começados com as letras E ou I serão
mostrados:
SELECT * FROM aluno INNER JOIN curso on aluno.cod_curso=curso.cod_
curso WHERE curso.nome LIKE ( ) OR curso.nome LIKE ( );
A função do parâmetro LIKE e do % é justamente permitir comparações
entre uma sequência de strings, ou seja, valores alfanuméricos. Use apóstrofe,
não acento agudo.
BANCO DE DADOS 89
Note que a coluna valor possui valores diferentes. Vamos utilizar os coman-
dos citados para recuperar os dados conforme a designação de cada um.
[destacar na diagramação]
SELECT MIN(Valor) FROM curso;
Retornará: , pois corresponde ao menor valor encontrado na tabela.
SELECT MAX(Valor) FROM curso;
Retornará: , pois corresponde ao maior valor encontrado na tabela.
SELECT AVG(Valor) FROM curso;
Retornará: , pois corresponde à média de valores encontrados na
tabela.
SELECT COUNT(Valor) FROM curso;
Retornará: 4 valores encontrados, que correspondem a 4 registros cadastrados.
BANCO DE DADOS 90
BANCO DE DADOS 91
BANCO DE DADOS 92
BANCO DE DADOS 93
BANCO DE DADOS 94
BANCO DE DADOS 95
BANCO DE DADOS 96
4 IMPLANTAÇÃO DE
BANCOS DE DADOS
RELACIONAIS
Tópicos de estudo
Inserindo, eliminando e alte- Criando sequências
rando dados Criando índices
Criando e manipulando Tecnologias emergentes para
nções tabelas bancos de dados
Criação das tabelas Banco de dados não relacional
e Inserindo dados nas tabelas e suas aplicações
Copiando dados e gerando Banco de dados orientado a
nova tabela a partir de uma objetos e suas aplicações
existente
Alterando dados da tabela Segurança em banco de dados
Eliminando dados da tabela Definição de perfis de usuário
Alterando a estrutura da (roles)
tabela Ataques típicos em bancos de
dados (SQL injection e outros)
Incluindo restrições de dados Soluções de segurança para
em tabelas bancos de dados
Criando visões de dados
BANCO DE DADOS 98
BANCO DE DADOS 99
(1,1)
Clientes
Cod_oli: INTEGER
Nome: VARCHAR
Endereço: VARCHAR
Telefone: VARCHAR
Vendas
Produto
(1,1)
(0,n) NF: INTEGER
Cod_pro: INTEGER
Cod_Cli: INTEGER
Descrição: VARCHAR
Cod_Pro: INTEGER
Valor_unitário: DOUBLE (1,n)
Data_venda: DATA
Cod_Fornecedor: INTEGER (0,1) Valor_venda: DOUBLE
Data_cadastro: DATE
Vendedor: VARCHAR
Região: VARCHAR
(1,n)
Fornecedor
Cod_for: INTEGER
Contato: VARCHAR
Endereço: VARCHAR
Telefone: VARCHAR
Figura 3. Exemplo de scripts criados a partir do modelo lógico por ferramenta CASE.
A partir desse ponto, como veremos comandos que alterarão dados e es-
truturas das tabelas, vamos também fazer uma cópia da tabela de clientes.
Para exercitar, duplique todas as tabelas que você criou.
CREATE TABLE Cliente2 SELECT * FROM Cliente;
Criando índices
Na manipulação diária dos bancos de dados, as consultas são frequentes
e podem causar morosidade no tempo de resposta de bancos muito volumo-
sos com milhares ou milhões de dados. Diante dessa situação, a criação de
índices pode contribuir para garantir melhoria nesse tempo de resposta. Os
índices ajudam o gerenciador do banco de dados a localizar os registros com
mais facilidade.
A partir desse ponto, como veremos comandos que alterarão dados e es-
truturas das tabelas, vamos também fazer uma cópia da tabela de clientes.
Para exercitar, duplique todas as tabelas que você criou.
CREATE TABLE Cliente2 SELECT * FROM Cliente;
Criando índices
Na manipulação diária dos bancos de dados, as consultas são frequentes
e podem causar morosidade no tempo de resposta de bancos muito volumo-
sos com milhares ou milhões de dados. Diante dessa situação, a criação de
índices pode contribuir para garantir melhoria nesse tempo de resposta. Os
índices ajudam o gerenciador do banco de dados a localizar os registros com
mais facilidade.
CURIOSIDADE
A capacidade de consulta distribuída do SQL Server permite consultas e
atualizações transacionais em várias fontes relacionais e não relacionais
de provedores de dados OLE-DB, sendo executado em um ou mais compu-
tadores (SILBERSC AT ; ORT ; SUDARS AN, ).
Uma das características dos bancos de dados não relacionais é permitir que
itens de dados do mesmo tipo possam ter diferentes conjuntos de atributos
– ao contrário dos bancos de dados relacionais, onde dados do mesmo tipo
normalmente são mantidos em atributos específicos. No modelo semiestru-
turado, não há exigência de um esquema predefinido para um tipo de objeto
no qual os dados precisam estar em conformidade. Há também o modelo não
estruturado, no qual a indicação do tipo dos dados é muito limitada. Um exem-
plo típico é um documento de texto e comando de marcação que contém infor-
mação embutida. Páginas web em HTML com alguns dados são consideradas
dados não estruturados (ELMASRI; NAVATHE, 2011).
4 IMPLANTAÇÃO DE
BANCOS DE DADOS
RELACIONAIS
Objetivos da unidade
Implantação de bancos de dados relacionais;
Tópicos de estudo
Inserindo, eliminando e alte- Criando sequências
rando dados Criando índices
Criando e manipulando Tecnologias emergentes para
s tabelas bancos de dados
Criação das tabelas Banco de dados não relacional
Inserindo dados nas tabelas e suas aplicações
Copiando dados e gerando Banco de dados orientado a
nova tabela a partir de uma objetos e suas aplicações
existente
Alterando dados da tabela Segurança em banco de dados
Eliminando dados da tabela Definição de perfis de usuário
Alterando a estrutura da (roles)
tabela Ataques típicos em bancos de
dados (SQL injection e outros)
Incluindo restrições de dados Soluções de segurança para
em tabelas bancos de dados
Criando visões de dados
BANCO DE DADOS 98
Inserindo, eliminando e alterando dados
Olá, aluno! Nesta unidade iremos continuar com os estudos sobre a Lingua-
gem SQL para implantação de bancos de dados relacionais. Também iremos
abordar aspectos de segurança e tecnologias emergentes de banco de dados.
Criaremos uma nova base de dados e algumas tabelas, que serão manipuladas
através dos principais comandos da Linguagem SQL para inserção, exclusão, con-
sulta e alteração de dados e suas particularidades. Preparados? Então vamos lá.
BANCO DE DADOS 99
Agora estamos prontos para continuar com os estudos e experimentos da
Linguagem SQL. Os comandos podem ser digitados em letras minúsculas ou
maiúsculas, porém, pode haver algum SGBD ou sistema operacional que exija
uma ou outra forma.
Nesse material, adotaremos o seguinte padrão: os comandos e seus parâ-
metros em maiúsculo e a maioria dos argumentos em minúsculo, apenas para
uma melhor leitura e entendimento do comando. Os nomes das bases de da-
dos e tabelas em minúsculo; os atributos, não sendo sigla, sempre iniciando em
maiúsculo e o restante em minúsculo. Lembrando que isso não é uma regra da
Linguagem SQL, mas alguns SGBDs se comportam dessa maneira.
Antes de iniciarmos, veremos o estado inicial do banco de dados MySQL.
Vamos mostrar as bases de dados existentes com o comando a seguir. Veja o
retorno do comando na Figura 2.
SHOW DATABASES;
Lembre-se que sempre nos finais de comandos devemos colocar um pon-
to-e-vírgula: “;”.
(1,1)
Clientes
Cod_oli: INTEGER
Nome: VARCHAR
Endereço: VARCHAR
Telefone: VARCHAR
Vendas
Produto
(1,1)
(0,n) NF: INTEGER
Cod_pro: INTEGER
Cod_Cli: INTEGER
Descrição: VARCHAR
Cod_Pro: INTEGER
Valor_unitário: DOUBLE (1,n)
Data_venda: DATA
Cod_Fornecedor: INTEGER (0,1) Valor_venda: DOUBLE
Data_cadastro: DATE
Vendedor: VARCHAR
Região: VARCHAR
(1,n)
Fornecedor
Cod_for: INTEGER
Contato: VARCHAR
Endereço: VARCHAR
Telefone: VARCHAR
Figura 3. Exemplo de scripts criados a partir do modelo lógico por ferramenta CASE.
A partir desse ponto, como veremos comandos que alterarão dados e es-
truturas das tabelas, vamos também fazer uma cópia da tabela de clientes.
Para exercitar, duplique todas as tabelas que você criou.
CREATE TABLE Cliente2 SELECT * FROM Cliente;
Criando índices
Na manipulação diária dos bancos de dados, as consultas são frequentes
e podem causar morosidade no tempo de resposta de bancos muito volumo-
sos com milhares ou milhões de dados. Diante dessa situação, a criação de
índices pode contribuir para garantir melhoria nesse tempo de resposta. Os
índices ajudam o gerenciador do banco de dados a localizar os registros com
mais facilidade.
CURIOSIDADE
A capacidade de consulta distribuída do SQL Server permite consultas e
atualizações transacionais em várias fontes relacionais e não relacionais
de provedores de dados OLE-DB, sendo executado em um ou mais compu-
tadores (SILBERSC AT ; ORT ; SUDARS AN, ).
Uma das características dos bancos de dados não relacionais é permitir que
itens de dados do mesmo tipo possam ter diferentes conjuntos de atributos
– ao contrário dos bancos de dados relacionais, onde dados do mesmo tipo
normalmente são mantidos em atributos específicos. No modelo semiestru-
turado, não há exigência de um esquema predefinido para um tipo de objeto
no qual os dados precisam estar em conformidade. Há também o modelo não
estruturado, no qual a indicação do tipo dos dados é muito limitada. Um exem-
plo típico é um documento de texto e comando de marcação que contém infor-
mação embutida. Páginas web em HTML com alguns dados são consideradas
dados não estruturados (ELMASRI; NAVATHE, 2011).