Gerenciamento de Banco de Dados

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 106

GERENCIAMENTO DE BANCO DE DADOS

CURRÍCULO LATTES

Prof. Dr. Hudson Sérgio de Souza


E-mail: [email protected]
Currículo Lattes: http://lattes.cnpq.br/3650215843884230

FORMAÇÃO ACADÊMICA

Doutorado
2014-2018 Universidade Estadual de Maringá – UEM
Área: Agronomia – ênfase: Fitopatologia / Agro-Informática – Maringá-PR

Mestrado
2012-2014 Universidade Estadual de Maringá – UEM
Área: Agronomia – ênfase: Fitopatologia / Agro-Informática – Maringá-PR

Especialização
2018 – Universidade Tecnológica Federal do Paraná – UTFPR - EAD
Curso: Especialização Informática Instrumental Aplicada à Educação

2009 – Universidade Federal do Mato Grosso do Sul UFMS


– Campo Grande-MS
Curso: Especialização em Educação Pedagógica em Educação a
Distância

2007 – Centro Universitário de Maringá – UniCesumar – Maringá-PR


Curso: Especialização em Desenvolvimento Orientado a Objetos - Java
Graduação
2006 – Universidade Paranaense - UNIPAR – Campus Paranavaí
Curso: Bacharelado em Sistemas de Informação – Paranavaí-PR

Experiência na área de analista de desenvolvimento de sistemas, programador,


docente da área de computação, coordenador do curso de Sistemas para Internet.
APRESENTAÇÃO DA APOSTILA

Seja muito bem-vindo(a) !

Prezado(a) aluno(a), se você se interessou pelo assunto desta disciplina, isso já é


o início de uma grande jornada que vamos trilhar juntos a partir de agora. Proponho, junto
com você, construir nosso conhecimento sobre os conceitos fundamentais do
Gerenciamento de Banco de Dados, ou seja, a forma de armazenar e manipular os dados
para transformá-los em informação. Além de conhecer seus principais conceitos e
definições vamos explorar as mais diversas aplicações de um banco de dados aplicado
ao desenvolvimento de software.
A disciplina de Gerenciamento de Banco de Dados é desenvolvida juntamente
com as demais disciplinas dos cursos de computação, priorizando as disciplinas de:
Análise de Projetos, Algoritmos e Lógica de Programação e Desenvolvimento Web, que
atuam diretamente com o armazenamento e manipulação dos dados.
Na unidade I – Conceitos de Banco de Dados, começaremos a nossa jornada pelo
conceito das principais características do sistemas de banco de dados, suas transações
e abordando as vantagens da utilização do SGBD. Esta noção é necessária para que
possamos trabalhar a segunda unidade do livro, que versará sobre o modelo relacional.
Já na unidade II – Modelo Relacional, vamos ampliar nossos conhecimentos sobre
banco relacional. Para isso, vamos detalhar cada uma das etapas criação e manipulação
de usuários, permissões e dos dados atribuídos ao SGBD.
Depois, nas unidade III – SQL Básico, vamos tratar especificamente dos principais
comandos utilizados para manipulação de um SGBD através dos comandos SQL, a
permissões e restrições atribuídas aos usuários do banco de dados, os comandos de
manipulação dos dados em SQL e as consultas básicas utilizando SQL.
Por fim na unidade IV – vamos entender o papel dos tipos de consultas envolvendo
NULL, a consultas aninhadas, a utilização do Joins, os comandos de alteração do
Schema, a manipulação dos registros através da inserção, alteração e exclusão, as
transações efetivadas, os utilização de visões e a preocupação com a segurança do
dados.
Aproveito para reforçar o convite a você, para junto conosco percorrer esta jornada
de conhecimento e multiplicar os conhecimentos sobre tantos assuntos abordados em
nosso material. Esperamos contribuir para seu crescimento pessoal e profissional.

Muito obrigado e bom estudo!


UNIDADE I
CONCEITOS DE BANCO DE DADOS
Prof. Dr. Hudson Sérgio de Souza

Plano de Estudo:
• Conceitos e Definições das características do SGBD;
• Tipos de transações existentes;
• Abordagem sobre as principais vantagens do uso SGBD.

Objetivos de Aprendizagem:
• Conceituar e contextualizar o sistema gerenciados de banco de dados;
• Compreender os tipos de transações envolvendo armazenagem dos dados;
• Estabelecer a importância da utilização de um SGBD.
INTRODUÇÃO

Olá caros acadêmicos!


Sejam bem vindos ao Módulo I – Conceito de Banco de Dados.
Neste módulo iremos tratar sobre os temas que irão contextualizar o tema central
da disciplina Gerenciamento de Banco de Dados, iniciando pelos conceitos e definições
das características do Sistema de Gerenciamento de Banco de Dados (SGBD),
passando a definir os tipos de transações existentes e por fim, abordando as principais
vantagens de se trabalhar utilizando um SGBD.
Conhecer os princípios do SGBD é fundamental para toda empresa que necessite
armazenar, buscar, alterar ou até mesmo deletar grandes volumes de dados,
provenientes de clientes, produtos, transações, colaboradores ou outros dados que
sejam vitais para o bom andamento da organização.
1 CONCEITOS E DEFINIÇÕES DAS CARACTERÍSTICAS DO SGBD
Imagem do Tópico: 1651132153

Um Sistema de Gerenciamento de Banco de Dados (SGBD), proveniente do


inglês Data Base Management System (DBMS), é responsável pela gestão de uma
coleção de banco de dados, assim como os recursos necessários para a manipulação
dos dados e do dicionário destes dados.
O SGBD tem como objetivo tirar da responsabilidade do sistema do cliente de
realizar o gerenciamento do acesso, da manipulação e organização dos dados
armazenados no banco de dados.
No banco de dados relacional a interface possui uma Application Programming
Interface/Interface de Programação de Aplicação (API) ou drivers do SGBD, utilizados
para a execução comandos da linguagem Structured Query Language/Linguagem de
Consulta Estruturada (SQL).
O SGBD é responsável pela forma de como os dados são armazenados, através
de uma descrição completa do banco de dados, das informações da estrutura de cada
Entidade (tabela), do tipo e do formato de armazenamento de cada dado, das restrições
de acesso, etc.
Denominamos como “dados persistentes” todos os dados que encontram-se
armazenados em um banco de dados, conforme Figura 1.
Basicamente o Sistema de Gerenciamento de Banco de Dados oferece os
recursos de manipulação e manutenção dos dados armazenados em Entidades (tabela)
dentro de um Banco de Dados, como: cria banco de dados, insere, consulta, altera e
deleta, tanto os dados, quanto a entidade e o banco de dados.
Outra função ofertada pelo SGBD é a criação e manutenção da conta de usuários,
seus privilégios (permissões) de acesso, há três tipos distintos de contas de usuários:
● Usuário de aplicação: utiliza o banco de dados de forma indiretamente,
tendo um programa de computador servindo como interface entre o usuário e o banco
de dados, além de gerenciar as ações requisitadas pelo usuário;
● Usuário de desenvolvedor: utilização o banco de dados para realizar testes
gerais para certificar que as ações implementadas no sistema estejam sendo executadas
corretamente;
● Usuário DBA: Administrador do Banco de Dados, possui os privilégios
(permissões) para manipular o banco de dados, entidades, atributos, dados, privilégios
de outros usuários, backup, restauração, entre outros.

Figura 01 - Esquema conceitual de um banco de dados

Fonte: O autor, 2020.

Um dos principais benefícios da utilização de um banco de dados é que os


registros e dados existentes em diferentes tabelas podem ser acessados, organizados e
recuperados de forma fácil e rápida através da utilização de um SGBD.
O banco de dados deve possuir algumas características essenciais, tais como:
● Gestão de acesso aos dados;
● Múltiplas interfaces aos usuários;
● Gestão de redundância de dados;
● Dados compartilhados;
● Representação de associação complexa;
● Gestão de recuperação de falhas;
● Restrições de integridade dos dados.
A aplicabilidade de um SGBD é muito ampla, dentre as principais podemos citar:
dados oriundos de pesquisa científica aplicada, dados de inventário, dados de um
biblioteca, dados contábeis, conversar de listas de discussão, dados contábeis, dados
de clientes e dados de fornecedores.
Algumas características são fundamentais para definir um SGBD, assim como:
catálogo, independência de dados, múltiplas visões dos dados, compartilhamento e as
transações.
O catálogo em um SGBD ampara o banco de dados, a definição e a descrição
das estruturas e dos registros armazenados no banco.
A independência de dados em um SGBD possibilita aos usuários uma visão
abstrata dos dados armazenados, ocultando detalhes de como os dados estão
fisicamente salvos no banco.
Já as múltiplas visões dos dados disponíveis em um SGBD possibilita que cada
tipo de usuário possa ter a sua visão personalizada dos dados armazenados em um
banco de dados.
O SGBD possui as funções de compartilhamento e transações, para realizar a
gestão do controle de concorrência.
Uma coleção organizada de dados recebe a denominação de Banco de Dados,
estes dados podem se relacionar entre si de forma organizada e cronológica gerando
informações importantes para futuras tomadas de decisões, passando maior segurança
e credibilidade tanto para pesquisa, quanto para estudos.
Para as empresas os banco de dados são fundamentais para que possam
continuar a crescer e alavancar novos negócios, através de informações sobre os
clientes, seus fornecedores, sobre os produtos comercializados, o controle de estoque,
fluxo de caixa, folha de pagamentos, entre outras.
2 TIPOS DE TRANSAÇÕES EXISTENTES
Imagem do Tópico: 613593986

Um banco de dados relacional oferece suporte ao controle de transação e as


propriedades da Atomicidade, Consistência, Isolamento e Durabilidade, comumente
conhecida pela sigla ACID, uma propriedade do “tudo ou nada” de se concretizar
qualquer alteração no banco de dados em sua plenitude ou desfazer todas as ações
parcialmente executadas.
Uma transação pode ser definida por uma sequência de operações onde são
tratadas com um único bloco indivisível, durante o processo de recuperação de falhas.
As transações são executadas completamente ou não serão executadas, assim caso
houver uma falha em qualquer tipo de manipulação do dado em um banco de dados,
esta transação poderá ser desfeita, retornando assim os dados originais ao banco de
dados.
A transação é tratada como uma unidade única, onde suas ações não suportam
ser mescladas com outras operações que estejam sendo executadas no banco de dados,
que não participem do escopo desta transação em particular.
A execução de somente um comando SQL pode significar diversos acessos a um
banco de dados separadamente, onde uma transação por sua vez consiste da execução
de diversos comandos SQL.
Toda transação deve ser executada em sua totalidade, ou não será executada,
caso haja alguma falha por qualquer motivo que ocorra, essa transação pode ser
desfeita, sendo essa característica denominada de Atomicidade.
Uma transação, deve sobretudo manter a consistência dos dados armazenados
no banco de dados, sendo essa característica denominada de Consistência.
Neste contexto, fica evidente que o Sistema Gerenciador de Banco de Dados
necessita executar tarefas especiais que garantam a execução da transação até o fim
de forma ininterrupta e que não haja a interferência de execução de comandos SQL
sendo executados no banco de dados de forma simultânea, sendo essa característica
denominada de Isolamento.
O sistema gerenciador de banco de dados precisa garantir que uma transação
executada com êxito, não venha a se perder em uma provável falha posterior, sendo que
as transações devam persistir à falhas. Outra característica importante é que a uma
transação só pode ser desfeita através da execução de outra transação, sendo essa
característica denominada de Durabilidade.

2. 1 Operações de dados por transação

Entre diversas possibilidades de executar operações de dados por transação, a


mais utilizada é o CRUD, sigla em inglês create, read, update, delete / criar, ler, alterar,
deletar.
Assim o Sistema Gerenciador de Banco de Dados (SGBD) necessita garantir que
seja executada corretamente a transação, ocorrendo ou não uma falha, desta forma a
transação é executada por completo ou nenhuma operação será executada, abortando
a transação.
Observando os código fonte da linguagem SQL, se observa que que a transação
é definida por meio de declarações de formato, que designam o início e o fim da
declaração, devendo ser executada como se fosse uma única instrução, sendo que para
manter a integridade dos dados o SGBD deve priorizar as propriedade da ACID,
conforme Figura 2.

Figura 02 - Trecho de código fonte em linguagem SQL, indicando o escopo destinado a


operação única

1 begin transaction
2 .
3 .
4 .
5 .
6 end transaction

Fonte: O autor, 2020.


2. 2 Commit e Rollback

O comando “Commit” se aplica quando a transação tenha sido executada com


sucesso, assim o banco de dados é alterado de forma permanente e o dado gravado em
disco.
Para corrigir qualquer problema por falhas com natureza diversas, será utilizado
o comando “Rollback”, retornando o banco de dados ao estado de início da transação,
sem a eventual transação executada parcialmente devido a falha.
Podemos exemplificar através de uma transação financeira no valor de R$ 150,00
de uma conta corrente de um cliente “A” para outra conta corrente de um cliente “B” do
mesmo banco, conforme Figura 3.

Figura 03 - Trecho de código fonte da linguagem SQL, descrito em código Portugol, realizando
uma transação financeira de transferência de recursos da conta corrente de um cliente para
outro

1 inicio transacao transferencia_A_B


2 vlr_transf = 150.00
3
4 ler(A)
5 A = A – vlr_transf
6 gravar(A)
7
8
9 ler(B)
10 B = B + vlr_transf
11 gravar(B)
12 end transaction

Fonte: O autor, 2020.

Onde,
vlr_transf: recebe o valor a ser transferido de uma conta corrente para outra
ler(A): transfere os dados físicos do banco de dados do cliente “A” para
uma área de memória (buffer)
A = A – vlr_transf: debita o valor da ser transferido (vlr_transf) do saldo da cota
corrente do cliente “A”
gravar(A): realiza a transferência dos dados do cliente “A” alocados na
memória Buffer, para o banco de dados armazenado em disco;
ler(B): transfere os dados físicos do banco de dados do cliente “B” para
uma área de memória (buffer)
A = B + vlr_transf: credita o valor transferido (vlr_transf) ao saldo da cota corrente
do cliente “B”
gravar(B): realiza a transferência dos dados do cliente “B” alocados na
memória Buffer, para o banco de dados armazenado em disco.
Em caso de sucesso da transação, o SGBD seguirá com o procedimento com o
comando “Commit” efetivando a transação.
Caso ocorra algum qualquer tipo de falha na transação, o SGBD executará o
comando “Rollback” cancelando a transação de transferência, desfazendo todas as
ações executadas, como por exemplo:
● Houver uma falha de comunicação;
● O saldo da conta corrente do cliente “A” for insuficiente para debitar o valor da
transferência;
● Ocorre uma falha no momento de creditar o valor transferido na conta corrente do
cliente “B”.

2. 3 Recuperação de Falhas

O sistema gerenciador de recuperação de falhas assegura que ocorra a


atomicidade e a durabilidade na execução das transações.
Sendo que a atomicidade desfaz as ações decorrentes das transações que não
obtiveram êxito e não foi realizado o “Commit”. Já a durabilidade garante com que todas
as transações com êxito e que realizaram o “Commit” para efetivar a ações, tornam-se
persistentes no banco de dados físico.
O algoritmo de recuperação possui três fases distintas:
● Analisar: percorrer o log do sistema para frente, partindo do último ponto
de verificação, identificando as transações ativas e as transações que estavam em
execução no momento da falha;
● Refazer: percorrer e refazer todas as transações que estavam em
execução no momento da falha, garantindo assim que as atualizações sejam registradas
no log do sistema e devidamente salvas no banco de dados físico;
● Desfazer: todas as transações que estavam em execução no momento da
falha serão desfeitas, recuperando os valores iniciais anteriores ao processo que gerou
a falha, e atualizando o registro de log do sistema, fazendo a varredura de trás para
frente.

2. 4 Controle de Concorrências

Um sistema de controle de concorrência descreve uma arquitetura do sistema de


gerenciamento de banco de dados do mais baixo nível, estando relacionado às
operações de entrada e de saída, simultaneamente a troca dos blocos de memórias
secundários para a memória principal e/ou vice-versa (ATZENI et al. 2000).
Tanto a operação de escrita, quanto a de leitura, são gerenciadas pelo módulo
Scheduler (escalonador), que define se a requisição pode ou não ser satisfeita.
O sistema de gerenciamento de banco de dados oferece suporte a várias
aplicações, que permite acesso concorrente dos dados. Enquanto maior for a permissão
ao nível de concorrência, melhor será o tempo de resposta do sistema.
Os mecanismos de controle e concorrência facilitam os processos de paralelismo
no núcleo do sistema gerenciador de banco de dados. Em um cenário de banco de dados
distribuídos, torna-se fundamental a implementação de um sistema de paralelismo,
sendo que os nós da rede atuam de maneira independente, mesmo o controle de
concorrência sendo efetivados de forma global.
3 ABORDAGEM SOBRE AS PRINCIPAIS VANTAGENS DO USO SGBD
Imagem do Tópico: 1637979406

Em um Sistema de Gerenciamento de Banco de Dados normalmente os dados


são armazenados em um banco de dados, que pode estar alocado em uma máquina
física (servidor) ou uma máquina alocada nas nuvens (servidor virtual), ambos podendo
ser uma máquina de grande porte ou uma máquina de menor capacidade de quantidade
de armazenamento e de potencial de processamento, onde irá receber as requisições
de dados das demais estações de trabalho (computador cliente).
Ao armazenar os dados dos usuários em um único local (servidor físico ou virtual)
a possibilidade de haver uma redundância (repetição) dos dados é praticamente nula.
O SGBD através da função de multiusuário, possibilita o compartilhamento dos
dados entre diversos usuários acessando o mesmo banco de dados de forma
simultânea, onde vários sistemas integrados possam acessar o mesmo banco de dados.
Uma das responsabilidades do SGBD é realizar o controle de concorrência, garantindo
que as atualizações resultem em respostas às requisições de forma correta,
possibilitando também a construção de visões distintas para cada tipo de usuário.
Outra vantagens disponível no sistema de gerenciamento de banco de dados é o
sistema de segurança, amplamente utilizado pelo Database Administrator/ Administrador
de Banco de Dados (DBA), que cria regras bem definidas para cada grupo de usuário,
assim como suas permissões, restrições de acesso e visibilidade dos dados e
informações armazenadas dentro do banco de dados. Este pacote de segurança é
aplicado tanto ao acesso aos dados por parte dos usuários, quanto a utilização de
softwares interligados ao sistema de gerenciamento de banco de dados.
Um banco de dados tem capacidade de armazenar uma grande quantidade de
dados que se encontram inter-relacionados de diversas formas. O SGBD fornece
recursos de representação da forma de relacionamento entre os dados, assim como as
operações de inserção, atualização, exclusão e recuperação dos dados armazenados
de forma rápida, eficiente e prática.
Um Sistema de Gerenciamento de Banco de Dados propicia uma variedade de
vantagens para sua utilização, tais como:
● Independência entre os dados e o sistema;
● Independência entre sistema e operação;
● Suporte a visões;
● Controle de Redundância.

3. 1 Independência entre os dados e o sistema

A definição de estrutura de dados em um Sistema de Gerenciamento de Banco


de Dados tem por característica possuir um catálogo ou dicionário de dados, denominado
como metadados, ou seja, um detalhamento sobre os dados armazenados. Desta forma,
quando ocorre alteração na estrutura de dados, não afetará a alteração dos softwares
de manipulação dos dados.

3. 2 Independência entre sistema e operação

Quando se trata de Sistema de Gerenciamento de Banco de Dados Orientado a


Objetos (OO), relacional/objeto, função/procedimento, ao manipular dados armazenados
em um banco de dados, as informações sobre os detalhes de armazenamento e
implementação encontra-se ocultos, esta função denomina-se como abstração de
dados. Caso a interface desta função permaneça inalterada no banco de dados, os
sistemas que utilizam esta função não precisam ser alterados/tratados quando a função
mudar, esta operação é denominada como independência entre sistema e operação.

3. 3 Suporte a visões

O mesmo conjunto de dados armazenados em um banco de dados fisicamente,


pode ser apresentado de formas distintas a clientes específicos, por exemplo: os
detalhes dos dados dos acadêmicos, notas e faltas, podem ser apresentados de forma
mais simplificada aos acadêmicos e de forma mais detalhada aos docentes.

3. 4 Controle de Redundância
Uma característica do controle de redundância dos dados, que pode ser
considerado como uma desvantagem, é o desperdício do espaço de armazenamento.
Exemplificando: em um processo comum de arquivos onde cada usuário possui seus
próprios arquivos e dados armazenados, pode ocorrer redundância, ou seja, repetições
de arquivos ou dados. Durante o processo de atualização todos os arquivos ou dados
devem ser atualizados simultaneamente, mantendo assim a integridade dos dados
dentro do banco de dados, o que acarreta uma redundância das informações e a
ocupação desnecessária de espaço em disco.

3. 5 Desvantagens da utilização do SGBD

Uma desvantagens da utilização do sistema de gerenciamento de banco de dados


é o alto custo inicial com investimento financeiro para compra de novos hardwares e
softwares, assim como a contratação de um profissional especializado em administração
de banco de dados para que possa projetar a infraestrutura física das instalações e a
estrutura interna para o armazenamento dos dados no banco de dados.
A desvantagem da diversidade de sistemas trabalhando simultaneamente, sendo
softwares desenvolvidos de linguagens de programação diferentes, salvando os dados
em banco de dados e estrutura interna de armazenamentos diferentes. Estes aspectos
geram dados e arquivos sendo armazenados em mais de um lugar (duplicidade), onde
os conteúdos podem não ser os mesmos (inconsistência).
Exemplo: Digamos que o gerente de uma loja de departamentos esportivos
necessite de um relatório específico que liste todos os clientes de uma determinada rua
onde ocorrerá um evento esportivo ao ar livre. O relatório deve trazer informações como:
nome, rede social, telefone, tipo de modalidade esportiva e, será consultado pelo número
do CEP da rua. Como o software não foi projetado inicialmente para emitir esse relatório,
os desenvolvedores farão uma adequação para atender a demanda atual. Para atender
a segunda, terceira e as demais demandas que surgirão no futuro, os desenvolvedores,
que não necessariamente serão as mesmas pessoas, irão fazer alterações no software
onde podem ocorrer inconsistência dos dados futuramente.
A desvantagem de haver dados isolamento, ou seja, dados armazenados em
locais diferentes e tipos de armazenamentos diferentes, se reflete no momento de
desenvolver um novo módulo para a aplicação, sendo que se torna difícil recuperar os
dados de onde muitas vezes não se conhece a estrutura, o local ou o próprio banco de
dados onde o dados se encontra armazenado.
A inconsistência dos dados é um fenômeno de preocupação constante, sendo que
é possível que ocorra anomalias referente a acessos concorrentes, como por exemplo
no caso do aprimoramento do desempenho global de um software, obtendo um tempo
de resposta menor, muitos desenvolvedores adotam práticas que permitem que múltiplos
usuários tenham acesso aos mesmos dados e realizem atualizações simultâneas nos
mesmos dados, o que pode vir a ocorrer uma inconsistência no conteúdo armazenado
deste dado. Um exemplo clássico é o acesso e a realização simultânea de saque na
conta corrente entre dois clientes bancários em uma mesma conta corrente.
Existem problemas decorrentes da segurança dos dados, quando se trata de
acesso a estes dados por todos os usuários do sistema sem critérios ou hierarquia de
controle. Por exemplo: o usuário responsável pelo Departamento Pessoal pode ter
acesso aos dados cadastrais dos colaboradores da empresa e ao cadastro do clientes,
porém não deve ter acesso aos dados financeiros dos clientes, ao histórico de compras
ou pedidos em aberto. Outra situação preocupante são os novos módulos de aplicação
agregados ao sistema, que muitas vezes não há como restringir o acesso a dados
específicos.
Um problema de integridade de valores de dados armazenados, tem relação a
satisfazer algum tipo de restrição de um dado, como por exemplo, o controle de estoque
não permite que um certo produto tenha estoque inferior a 10 unidades, no caso de uma
implementação futura de um novo módulo do sistema, talvez essa restrição acaba sendo
esquecida de ser implementa ou tenha passado despercebido no momento do
levantamento de requisitos para implementação do novo módulo, o que será descoberto
no momento em que o sistema estiver em uso prático no dia a dia da empresa.
SAIBA MAIS

INTEGRIDADE DE DADOS

Nessa era da informação sob demanda não podemos nos contentar que os dados
são apenas registros armazenados em um banco de dados. Sem a devida garantia de
sua integridade também não é possível transformá-los em informação.
De nada adianta termos imensos bancos de dados armazenando incontáveis
bytes de dados, que são constantemente inseridos, modificados, eliminados, se não
podemos transformá-los em informação.

Fonte: PIMENTEL, Fabricio. Integridade de dados: Parte 01. Disponível em:


https://www.devmedia.com.br/integridade-de-dados-parte-01/8831. Acesso em: 25 mar. 2020.

#SAIBA MAIS#
REFLITA

Meus filhos terão computadores, sim, mas antes terão livros. Sem livros, sem
leitura, os nossos filhos serão incapazes de escrever - inclusive a sua própria história.

Bill Gates.

Fonte: STARTSE, Turismo de Negócios. Veja 10 frases de Bill Gates, fundador da Microsoft, que
completa 40 anos de fundação. Disponível em: https://www.startse.com/noticia/educacao/veja-10-
frases-de-bill-gates-fundador-da-microsoft-que-completa-40-
anos#:~:text=A%20empresa%20se%20tornou%20uma,se%20relacionam%20com%20os%20computado
res.&text=Meus%20filhos%20ter%C3%A3o%20computadores%2C%20sim,inclusive%20a%20sua%20pr
%C3%B3pria%20hist%C3%B3ria. Acesso em: 30 jun. 2021.

#REFLITA #
CONSIDERAÇÕES FINAIS

Para compreender e tirar o melhor proveito das funcionalidades do Sistema de


Gerenciamento de Banco de Dados (SGBD) é necessário compreender todos os
contextos, características, vantagens e desvantagens desta importante ferramenta de
gerenciamento.
Neste sentido, foram explorados e exemplificando os conceitos e definições do
SGBD, os tipos de transações existentes e analisar as principais vantagens e
desvantagens do uso do sistema de gerenciamento de banco de dados na prática
aplicado ao armazenamento dos dados de empresas de pequeno, médio e grande porte.
LEITURA COMPLEMENTAR

TOP 10 principais SGBDs do mercado global!

Mas afinal, o que é um SGBD?


Os Sistemas de Gerenciamento de Banco de Dados, ou SGBDs, são conjuntos
de softwares utilizados para o gerenciamento de uma base de dados, ou seja, são os
programas utilizados para controlar, organizar, acessar e proteger as informações de
uma empresa.

Fonte: SCUDERO, Erick. TOP 10 principais SGBDs do mercado global! Disponível em:
https://becode.com.br/principais-sgbds/. Acesso em: 22 mar. 2020.
LIVRO

Título: Sistema de Gerenciamento de Banco de Dados


Autor: Raghu Ramakrishnan e Johannes Gehrke.
Editora: McGraw Hill.
Sinopse: Este livro apresenta uma abordagem clara e atualizada dos fundamentos dos
sistemas de banco de dados. Os professores podem optar por dar ênfase a aplicações
de bancos de dados ou a sistemas. O livro traz muitos exemplos e aplicações, incluindo
SQL e Oracle, e aplicações para a Internet. Além disso, são introduzidos padrões
atuais, como JDBC e XML, e desenvolvimento de aplicações em três camadas.
FILME/VÍDEO

Título: O Quinto Poder


Ano: 2014.
Sinopse: Benedict Cumberbatch entrega uma performance brilhante como Julian
Assange, o narcisista fundador do WikiLeaks, em O QUINTO PODER. Este drama
baseado em fatos reais revela a busca das importantes figuras da Internet para expor a
trapaça e a corrupção do poder - transformando-os na organização mais ferozmente
debatida do século 21. Depois que Assange e seu colega Daniel Domscheit-Berg (Daniel
Brühl) se unem para jogar luz sobre as trevas de segredos governamentais e de crimes
corporativos, eles se veem lutando entre si sobre o custo de expor a verdade para o
público ser muito alto. Inteligente e instigante, O QUINTO PODER provoca a polêmica
pergunta: "Herói ou traidor?"
Link do vídeo: https://www.youtube.com/watch?v=raCapBWlpaw
WEB

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.

Fonte: ORACLE Brasil. Banco de dados. Disponível em: https://www.oracle.com/br/database/what-is-


database.html. Acesso em: 23 mar. 2020.
REFERÊNCIAS

ALVES, William Pereira. Banco de dados. São Paulo: Érica, 2014. Minha Biblioteca.
https://integrada.minhabiblioteca.com.br/#/books/9788536518961/. VBID:
9788536518961.

ATZENI, Paolo; CERI, STEFANO; Paraboschi. Database Systems: concepts,


languages & architectures. São Paulo: McGraw Hill, p.349-90, 2000.

BARBOZA, Fabrício Felipe Meleto; FREITAS, Pedro Henrique Chagas. Modelagem e


desenvolvimento de banco de dados. Porto Alegre-RS: Sagah, 2018. Minha
Biblioteca. https://integrada.minhabiblioteca.com.br/books/9788595025172. VBID:
9788595025172.

MACHADO, Felipe Nery Rodrigues. Banco de Dados: Projeto e Implementação. 3.ed.


São Paulo: Érica, 2014. Minha Biblioteca.
https://integrada.minhabiblioteca.com.br/books/9788536518978. VBID:9788536518978.

ORACLE Brasil. Banco de dados. Disponível em:


https://www.oracle.com/br/database/what-is-database.html. Acesso em: 23 mar. 2020.

PIMENTEL, Fabricio. Integridade de dados: Parte 01. Disponível em:


https://www.devmedia.com.br/integridade-de-dados-parte-01/8831. Acesso em: 25 mar.
2020.

RAMAKRISHNAN, Raghu; GEHRKE, Johannes. Sistemas de gerenciamento de


banco de dados. 3.ed. Porto Alegre-RS: AMGH, 2011. Minha Biblioteca:
https://integrada.minhabiblioteca.com.br/books/9788563308771. VBID:
9788563308771.

SCUDERO, Erick. TOP 10 principais SGBDs do mercado global! Disponível em:


https://becode.com.br/principais-sgbds/. Acesso em: 22 mar. 2020.

SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistema de Banco de Dados.


Editora Pearson. Terceira Edição, 2010.

STARTSE, Turismo de Negócios. Veja 10 frases de Bill Gates, fundador da


Microsoft, que completa 40 anos de fundação. Disponível em:
https://www.startse.com/noticia/educacao/veja-10-frases-de-bill-gates-fundador-da-
microsoft-que-completa-40-
anos#:~:text=A%20empresa%20se%20tornou%20uma,se%20relacionam%20com%20
os%20computadores.&text=Meus%20filhos%20ter%C3%A3o%20computadores%2C%
20sim,inclusive%20a%20sua%20pr%C3%B3pria%20hist%C3%B3ria. Acesso em: 30
jun. 2021.
UNIDADE II
MODELO RELACIONAL
Prof. Dr. Hudson Sérgio de Souza

Plano de Estudo:
• Conceitos e Definições de Modelo Relacional;
• Introdução à Modelagem;
• Campos de estudo dos Atributos;
• Domínio e Chave Estrangeira.

Objetivos de Aprendizagem:
• Conceituar e contextualizar o Modelo Relacional;
• Compreender os tipos de Atributos;
• Estabelecer a importância da Chave Estrangeira.
INTRODUÇÃO

Nesta Unidade II serão abordados os principais conceitos e definições de modelo


relacional, uma introdução sobre a modelagem de banco de dados, sua forma abstrata
de nomenclatura das entidades e atributos que se assemelham ao mundo real.
A forma de armazenamento dos dados depende diretamente do tipo dos dados
que se pretende armazenar, dessa forma existem tipos de atributos coerentes aos tipos
de dados, também denominados de domínios.
A base do relacionamentos do banco de dados relacional atua sobre chaves
primárias e estrangeiras, para interligar diversas entidades e atributos, processando seus
dados e os transformando em informações relevantes.
1 CONCEITOS E DEFINIÇÕES DE MODELO RELACIONAL
Imagem do Tópico: 571378933

O pesquisador e matemático britânico Edgar Frank Codd no ano de 1970


trabalhava na IBM e descreveu os fundamentos da estrutura e funcionamento de um
modelo de banco de dados relacional.
O modelo relacional tem por característica a flexibilidade e adequação a diversos
tipos de soluções para resolução de problemas a nível de criação e implantação de banco
de dados relacional.
A principal estrutura de um modelo relacional se baseia no relacionamento entre
a Entidade (Tabela), a qual possui seus Atributos ou Campo (Colunas), os seus Registros
ou Tuplas (Linhas) e os Dados, conforme Figura 1.

Figura 01 - Nomenclatura das partes de uma entidade (tabela)

Fonte: O autor, 2020.

Segundo Korth (1995), o modelo de banco de dados relacional representa um


conjunto de Entidades, cada uma com nome único, tendo cada Registro representado
por uma linha da Entidade, composto por um conjunto de dados relacionados,
classificados pelos atributos que definem os tipos de cada dado.
O modelo relacional implementa uma estrutura de dados na forma de Entidades,
as quais possuem restrições para resguardar os dados de particularidades não
desejáveis, como: duplicação de informações (integridade referencial), impossibilidade
de representar uma informação (chaves) e a perda da informação (integridade
relacional).
A arquitetura de um banco de dados relacional, conforme ANSI/SPARC, é
composta por três componentes:
● Entidades: coleção de estrutura de dados, que compõe o nível conceitual;
● Linguagem SQL: os operadores, a álgebra e os cálculos relacionais;
● Integridade: coleção de restrições de integridade, que define a consistência
do estado da base de dados e de suas alterações.
Um modelo de banco de dados relacional pode representar os dados através de
uma coleção de relações, as quais são representadas por meio de Entidades (Tabelas),
onde cada Registro (Linha) se refere a uma coleção de dados relacionados entre si.
Estas características contribuem no desenvolvimento de softwares que utilizam
banco de dados relacional, facilitando o acesso e o processamento das consultas de
dados e/ou informações processadas requisitadas pelos usuários, sendo amplamente
aplicado a softwares comerciais atendendo a pequenas, médias e grandes empresas ou
indústrias.
Para garantir que cada Registro seja único dentro de uma Entidade, existe a um
Atributo denominado como Chave Primária, onde os valores desta Tupla não se repita
dentro desta Entidade, normalmente trata-se de uma numeração sequencial, porém pode
ser utilizado um dado específico que não se repita dentro da Entidade, como o número
do CPF, por exemplo.
2 INTRODUÇÃO À MODELAGEM
Imagem do Tópico: 1096670732

A modelagem de dados se aplica no desenvolvimento de estruturas de


armazenamento que sejam eficientes e escaláveis, auxiliando a busca por dados ou
informações processadas de forma fácil e amigável.
Um dado pode ser compreendido com um valor em seu estado bruto que esteja
armazenado dentro de uma estrutura de banco de dados. Por outro lado, a informação
pode ser interpretada com um conjunto de dados inter-relacionados, que foram tratados
respeitando critérios pré estabelecidos para que se tornem relevantes.
O número 30 (trinta) basicamente é um dado bruto ao ser analisado isoladamente,
porém dentro de um contexto “A régua possui 30 centímetros”, este mesmo número se
torna relevante para uma pessoa que busca por um instrumento de medição que possua
30 cm de comprimento.

2. 1 Modelagem Conceitual

O modelo conceitual trata da análise de fenômenos e elementos relevantes a uma


realidade observada ou pensada, a qual será transformado em um modelo abstrato
denominado Modelo de Entidade-Relacionamento (MER), que pode ser descrito de
forma visual através de um diagrama denominado Diagrama Entidade-Relacionamento
(DER).
O Modelo Entidade Relacionamento (MER), comumente chamado de Modelo ER,
trata-se de um modelo conceitual usado na Ciências da Computação para determinar as
Entidades (objetos) que fazem parte do sistema, assim como seus atributos
(características) e os relacionamentos envolvidos.
O MER representa o modelo abstrato da estrutura interna do banco de dados que
será desenvolvida, contendo: as entidades, os atributos, entidades intermediárias,
chaves primárias, chaves estrangeiras e relacionamentos usados em uma base de dados
relacional.
Devido a complexidade e tamanho do sistema a ser desenvolvido, atualmente a
maioria dos sistemas são desenvolvidos em módulos menores, sendo que ao final todos
os módulos de relacionam e se interligam, realizando a trocas de informações entre si,
para que o sistema funcione como se fosse um único e grande módulo. Esta metodologia
de dividir os problemas a serem solucionados em em partes menores, garante uma
melhor implementação, alternativas de soluções, rapidez na entrega do módulo pronto e
a possibilidade de constantes atualizações.

2. 2 Entidades

As Entidades (tabelas) podem ser armazenadas em um meio físico ou lógico,


conforme sua permanência no mundo real.
Uma entidade física é tangível, podendo ser visualizada e tocada no mundo real,
normalmente estão armazenadas dentro de servidores.
Uma entidade lógica pode ser armazenada nas nuvens e sua existência se
justifica pelas interações com outra entidade física, fornecendo subsídios ao domínio de
negócios.
A nomenclatura das entidades normalmente são baseados em substantivos
abstratos ou concretos, expressando de forma clara e objetiva sua função em um
determinado domínio do negócio, como por exemplo, a entidade: pessoa, produto,
cliente, fornecedor, venda, itens_venda, curso, turma, disciplina, função, etc.
As entidades podem ser classificadas de acordo com a forma de sua existência:
● Entidade Forte: sua existência não depende de outra entidade, essa
entidade sozinha possui todos os atributos e dados para sua existência. Exemplo: um
sistema de vendas, onde a entidade produto, não necessita de nenhuma outra entidade
para existir;
● Entidade Fraca: sua existência depende diretamente de outra entidade
para existir, sendo que isoladamente não há sentido a sua existência, por exemplo, a
entidade venda depende da entidade produto para existir, não há sentido realizar uma
vendo sem que já um produto;
● Entidade Associativa: a existência desta entidade está ligada diretamente
à necessidade de associar (interligar) duas outras entidades que venham a se relacionar
entre si. Uma vez que o Modelo Entidade Relacionamento (MER) não prevê em alguns
casos um relacionamento direto entre entidades, foi criada uma nova entidade para
justamente permitir este relacionamento.

2.3 Relacionamento entre Entidades

A partir da identificação das Entidades, o próximo passo é realizar o


relacionamento com outras Entidades, a fim de realizar uma troca de dados dentro do
sistema, os quais serão processados e se transformarão em informações úteis aos
usuários. No Modelo Entidade Relacionamento há três tipos de relacionamentos
disponíveis:
● Relacionamento Um-para-Um (1-1): O relacionamento ocorre entre duas
Entidades, onde a referência obrigatória se dá entre dois atributos chaves. Exemplo: A
entidade Pessoa possui um relacionamento (1-1) entre a Entidade Autenticação
[Pessoa] 1----------1 [Autenticação], neste cenário pode-se dizer que uma Pessoa
possui só e somente uma Autenticação e, que uma Autenticação está vinculado a só e
somente uma Pessoa, conforme Figura 2;
● Relacionamento Um-para-Muitos (1-n): O relacionamento ocorre entre
duas Entidades, porém uma das Entidades pode se referenciar a várias unidades da
outra Entidade. No entanto, as unidades da segunda Entidades só podem se relacionar
com apenas uma unidade da primeira Entidade. Exemplo: A Entidade Professor possui
um relacionamento 1-n (Um-para-Muitos) entre a Entidade Aluno [Professor] 1----------n
[Aluno], sendo de um Professor leciona para muitos Alunos, porém cada um destes
Alunos (unidades) só podem se relacionar exclusivamente com apenas um Professor,
conforme Figura 3;
● Relacionamento Muitos-para-Muitos (n-n): este relacionamento pode
ocorrer entre duas ou mais Entidades, sendo que cada Entidade de ambos os lados,
pode conter múltiplas referências de unidades da outra Entidade. Exemplo: Um Autor
pode escrever vários Livros, enquanto que um Livro também pode ser escrito por vários
Autores. A entidade Autor pode ser relacionada com uma ou várias unidades da Entidade
Livro, assim como a entidade Livro pode se relacionar com uma ou várias unidades da
Entidade Autor, [Autor] 1,n-----------1,n [Livro]. Desta forma, um objeto do tipo Autor
pode se relacionar com um ou muitos objetos do tipo Livro e vice-versa, conforme Figura
2.

Figura 02 - Tipo de relacionamento Muitos-para-Muitos (*-*) em banco de dados

Figura 2 – Tipo de relacionamento Um-para-Um (1-1) em banco de dados


Fonte: O autor, 2020.

Figura 3 – Tipo de relacionamento Um-para-Muitos (1-*) em banco de dados


Fonte: O autor, 2020.

Fonte: O autor, 2020.


3 CAMPOS DE ESTUDO DO ATRIBUTOS
Imagem do Tópico: 762698440

3. 1 Atributos

Os Atributos podem ser descritos como as características de um Entidade, que


esteja inserido dentro de um Domínio.
Durante o período de levantamento de dados na Análise de Requisitos, são
identificados Entidades, Atributos e Relacionamentos que farão parte de um sistema,
como por exemplo, em uma entidade Pessoa haverá os atributos característicos e que
sejam relevantes ao sistema, como: nome, e-mail e celular.
É importante ressaltar que cada tipo e aplicação de sistema possui suas
características próprias a qual irão definir seus tipos de atributos que serão armazenados
no banco de dados. Para um sistema comercial, os atributos mencionados anteriormente
(nome, e-mail e celular), são fundamentais para um sistema aplicado a um comércio de
ao varejo. Logo, características físicas do cliente, como: sexo, altura, peso, cor dos olhos
e tipo sanguíneo, são aplicáveis a um sistema votado a uma clínica médica.
A classificação dos atributos por função, divide-se em três níveis: descritivo,
nominativo e referencial.
● Descritivo: descreve características específicas de uma determinada
entidade, como o nome ou etnia;
● Nominativo: além de absorver as características descritivas, possui o papel
de identificar e delinear um objeto, como o código, nome, etnia, data de nascimento,
endereço;
● Referencial: corresponde a ligação ocorrida entre as entidades em um
relacionamento. Em uma entidade Venda o atributo “cpf”, está relacionado com o atributo
“cpf” na entidade Pessoa.

Os atributos podem ser classificados pela sua estrutura, assim como: simples ou
composto.
● Simples: com um único atributo, é possível descrever um características de
uma entidade, como o nome e peso;
● Composto: para definir uma informação complexa de um entidade, são
utilizados vários atributos, assim como um endereço residencial, que pode ser
armazenado em atributos distintos, como a rua, o número, o bairro, o cep, a cidade, o
estado e o país.
Atributos específicos em uma entidade recebem a denominação de Chave
Primária, que possuem o papel de representar um valor único ao identificar uma entidade
dentro de um domínio, como por exemplo o atributo “cpf” de uma pessoa.
Assim como um atributo referencial recebe a denominação de Chave Estrangeira,
o qual normalmente está interligado a chave primária de uma outra entidade que esteja
relacionada.

3. 2 Tipos de Atributos

Como em qualquer linguagem de programação, a linguagem de manipulação


Structured Query Language/Linguagem de Consulta Estruturada (SQL) também tem
seus tipos próprios de atributos (dados).
O banco de dados MySQL possui capacidade de armazenamento de tipos
distintos de atributos, que estão subdivididos em: numérico, data e carácter.
O Quadro 1 descreve os principais tipos de atributos armazenados no banco de
dados MySQL, assim como os campos, tamanhos de armazenamento e exemplo.
Quadro 01 - Tipos de dados armazenados no banco de dados MySQL
TIPO CAMPO ARMAZENAMENTO EXEMPLO
smallint 2 bytes 1
int 4 bytes 1
bigint 8 bytes 1
float 4 bytes 1.0
Numérico
double 8 bytes 1.0
real 8 bytes 1.0
M+2 btes se D>0,
decimal(m,d) 1.05
M+1 byte se D=0
date 3 bytes 2018-07-16
datetime 8 bytes 2018-07-16 09:37:12
Data
2018-07-16 09:37:12 (utc)
timestamp 4 bytes
“fuso horário”
char(n) n bytes 'a'
Caractere
varchar(n) n+1 bytes “Mauro Pedreira”

Fonte: O autor, 2020.

Os operadores dos tipos aritméticos, relacional e lógico, são utilizados na


linguagem SQL para realização de tarefas, como: somar ou substituir valores
(aritméticos), realizar a comparação entre valores fixos ou variáveis (relacional) e a
tomada de decisão (lógico).
Estes diferentes tipos de operadores garantem uma filtragem na busca (query)
dos dados armazenados no banco de dados MySQL, podendo transformar estes dados
brutos em informações relevantes, conforme o Quadro 2.
Quadro 2: Operadores utilizados pelo banco de dados MySQL.
OPERADOR TIPO
+ soma
- subtração
Aritmético
* produto
/ divisão
= igual
> maior
< menor
Relacional
>= maior igual
<= menor igual
<> diferente
AND e
OR ou Lógico
NOT não

Fonte: O autor, 2020.


4 DOMÍNIO E CHAVE ESTRANGEIRA
Imagem do Tópico: 390313318

4. 1 Domínio

O Domínio em um banco de dados refere-se ao conjunto de possíveis valores que


podem ser armazenados a um atributo, obedecendo os critérios do tipo desse atributo.
Os tipos de atributos mais comuns para a atribuição e armazenamento de
domínios (valores), conforme Figura 3, são:
● Integer ou int: números inteiros – exemplo: 15;
● Decimal: números com casas decimais – exemplo: 1564.35;
● Varchar: alfanuméricos letras, número e caracteres especiais – exemplo:
az-AZ-09-”!@#$%*()_+.

É importante ressaltar que existem alguns critérios que devem ser aplicados aos
tipos de atributos:
● Atributo Atômico: são formados por campo únicos e não divisíveis –
exemplo: altura, peso, quantidade;
● Atributo Composto: possibilita a decomposição de um atributo em vários –
exemplo: nome, nome_meio, sobrenome;
● Atributo Identificador: possui um valor único e possibilita a identificação de
um registro dentro de uma entidade – exemplo: id_pessoa;
● Atributo candidato: em uma chave composta por três atributos, um deles
será a chave primária e os demais recebem a nomenclatura de chave candidata –
exemplo: cpf(PK), nome, email;
● Atributo de Chave Estrangeira: faz referência e recebe o mesmo valor que
o atributo de chave primária em outra entidade – exemplo: Pessoa.id_pessoa=123456
(PK) 1-------n Livro.id_pessoa=123456 (FK).

Figura 03 - Possíveis valores que foram o domínio em


um banco de dados
Fonte: O autor, 2020.

4. 2 Chave Estrangeira (Foreign Key)

O conceito de chave estrangeira se refere a um conjunto de atributos que


compõem um relacionamento entre as Entidades. Sendo que o mesmo domínio
(conteúdo do atributo/dado) do atributo identificado na relação como chave primária na
primeira Entidade, será obrigatoriamente atribuído e armazenado na segunda Entidade
em um atributo denominado como chave estrangeira.
A checagem das referências entre a chave primária da primeira Entidade com a
chave estrangeira da segunda Entidade se dá através da comparação entre ambos os
domínios/dados, conforme Figura 4.

Figura 04 - Diagrama de classe Estado-Cidade demonstrando o


relacionamento com chave estrangeira (FK)
Fonte: O autor, 2020.

A Figura 4, ilustra o diagrama de classe entre as entidades Estado e Cidade, onde


a cardinalidade indica um relacionamento Um-para-Muitos (1-*), sendo que “um Estado
possui muitas Cidades”.
No Quadro 3, houve o preenchimento dos domínios (dados) das entidades Estado
e Cidade para melhor descrever quais os atributos em ambas as Entidades são
responsáveis pelo relacionamento e a comparação dos domínios/dados. A entidade
Estado possui o atributo “id_estado” a qual é a Chave Primária (PK). Na entidade Cidade
o atributo “id_cidade” representa a Chave Primária (PK) e o atributo “cid_id_estado”
representa a Chave Secundária (FK) da relação Um-para-Muitos (1-*).

Quadro 3: Preenchimento da Entidades Estado-Cidade com seus respectivos


domínios(dados)
Estado Cidade
id_estado id_cidade cid_id_estado
estado sigla cidade abreviacao
(PK) (PK) (FK)
001 Paraná PR 126 Paranavaí Pvaí 001
002 Santa Catarina SC 438 Chapecó Chape 002
003 Rio Grande do Sul RS 785 Bento Gonçalves Bento 003
237 Maringá Mgá 001
344 Londrina Ldna 001

Fonte: O autor, 2020.

SAIBA MAIS
Quais são os principais bancos de dados e suas diferenças?

Antes de explicar os tipos de bancos de dados disponíveis, é necessário definir


suas duas categorias: banco de dados relacionais e não relacionais.
Bancos de dados relacionais são fundamentados no paradigma da orientação a
conjuntos. Seus dados são armazenados em estruturas denominadas tabelas. Cada
tabela é composta por colunas (atributos e linhas), tuplas ou registros.

Fonte: OPSERVICES. Gerenciamento de TI e Dashboards em tempo real. Disponível em:


https://www.opservices.com.br/banco-de-dados/. Acesso em: 16 abr. 2020.

ORACLE Brasil. Banco de dados. Disponível em: https://www.oracle.com/br/database/what-is-


database.htm. Acesso em: 23 Mar. 2020.

#SAIBA MAIS#
REFLITA

"O que a nova tecnologia faz é criar novas oportunidades para fazer um trabalho
que os clientes querem feito."
Tim O’Reilly.

Fonte: EUNERD. 15 frases para o dia do profissional de TI. Disponível em:


https://encontreumnerd.com.br/blog/dia-do-profissional-ti. Acesso em: 16 abr. 2020.

KORTH, Henry F. Sistema de banco de dados. São Paulo: Markon, 1995.

#REFLITA #
CONSIDERAÇÕES FINAIS

Os estudos abordados nesta Unidade II descreveram os principais conceitos


sobre o modelo de banco de dados relacional, assim como uma visão abstrata do
levantamento de requisitos, aos quais são utilizados para a construção da estrutura
interna do banco de dados, com nomenclaturas semelhantes aos requisitos levantados,
dando nomes às entidades e atributos.
Da mesma forma como existem diversos tipos de dados diferentes, também
existem tipos de dados específicos para armazenar estes dados.
Para que seja possível transformar dados brutos em informações relevantes, é
necessário que haja um relacionamento entre as entidades e atributos, através das
chaves primárias e estrangeiras.
LEITURA COMPLEMENTAR

A Tecnologia de Mineração de Textos


Christian Aranha, Emmanuel Passos

Resumo
Mineração de textos, também conhecido como mineração de dados textuais ou
descoberta de conhecimento de bases de dados textuais, em geral, se refere ao
processo de extração de informações de interesse e padrões não-triviais ou descoberta
de conhecimento em documentos de texto não-estruturados. Pode ser visto como uma
extensão da mineração de dados ou da descoberta de conhecimento em bases de dados
estruturadas. Como muitas informações (mais de 80%) estão armazenadas em formato
texto, acredita-se que as técnicas de mineração de textos possuam um grande valor
comercial. O objetivo deste tutorial é apresentar algumas técnicas de mineração de
textos, bem como casos de uso e resultados obtidos

Palavras-chave: Mineração de textos; Sistemas de Informação Inteligentes; Mineração


de dados.

Fonte: ARANHA, Christian; PASSOS, Emmanuel. A tecnologia de mineração de textos. Revista


Eletrônica de Sistemas de Informação. ISSN: 1677-3071. v.5, n.2, 2006. Disponível em:
http://periodicosibepes.org.br/index.php/reinfo/article/view/171. Acesso em: 15 abr. 2021.
LIVRO

• Título: Acessando Banco de dados com APP Inventor


• Autor: Vitor Amadeu Souza.
• Editora. Cerne.
• Sinopse: O intuito desta obra é apresentar como acessar um banco de dados interno
(no aparelho) e externo (na internet) programando o smartphone/tablet Android usando
o MIT App Inventor. Desta forma, será desenvolvido um aplicativo que permitirá salvar
e resgatar informações nestas duas modalidades de banco de dados (BD).
FILME/VÍDEO

• Título: Invasores: Nenhum Sistema Está a Salvo


• Ano: 2015.
• Sinopse: Benjamin (Tom Schilling) gênio da informática é uma pessoa solitária. Sua
vida se resume ao mundo virtual, onde pode ser quem desejar. Logo, ele se junta a um
grupo de hackers em Berlim que provocam atividades divertidas em busca de fama e
reconhecimento de outros hackers. Mas o que começa como um jogo, acaba se
intensificando a algo perigoso entre o amor e a morte.
Link: https://www.youtube.com/watch?v=k97MWnFD-7g
REFERÊNCIAS

ALVES, William Pereira. Banco de dados. São Paulo: Érica, 2014. Minha Biblioteca.
https://integrada.minhabiblioteca.com.br/#/books/9788536518961/. VBID:
9788536518961.

ARANHA, Christian; PASSOS, Emmanuel. A Tecnologia de Mineração de Textos. RESI


- Revista Eletrônica de Sistemas de Informação. DOI:
https://doi.org/10.21529/RESI.2006.0502001 n.2, 2006. Disponível em:
http://periodicosibepes.org.br/index.php/reinfo/article/view/171. Acesso em: 16 abr.
2020.

ATZENI, Paolo; CERI, STEFANO; Paraboschi. Database Systems: concepts,


languages & architectures. São Paulo: McGraw Hill, p.349-90, 2000.

BARBOZA, Fabrício Felipe Meleto; FREITAS, Pedro Henrique Chagas. Modelagem e


desenvolvimento de banco de dados. Porto Alegre-RS: Sagah, 2018. Minha
Biblioteca. https://integrada.minhabiblioteca.com.br/books/9788595025172. VBID:
9788595025172.

EUNERD. 15 frases para o dia do profissional de TI. Disponível em:


https://encontreumnerd.com.br/blog/dia-do-profissional-ti. Acesso em: 16 abr. 2020.

KORTH, Henry F. Sistema de banco de dados. São Paulo: Markon, 1995.

MACHADO, Felipe Nery Rodrigues. Banco de Dados: Projeto e Implementação. 3.ed.


São Paulo: Érica, 2014. Minha Biblioteca.
https://integrada.minhabiblioteca.com.br/books/9788536518978. VBID:
9788536518978.

OPSERVICES. Gerenciamento de TI e Dashboards em tempo real. Disponível em:


https://www.opservices.com.br/banco-de-dados/. Acesso em: 16 abr. 2020.

ORACLE Brasil. Banco de dados. Disponível em:


https://www.oracle.com/br/database/what-is-database.html. Acesso em: 23 Mar. 2020.

PIMENTEL, Fabricio. Integridade de dados: Parte 01. Disponível em:


https://www.devmedia.com.br/integridade-de-dados-parte-01/8831. Acesso em: 25 mar.
2020.

RAMAKRISHNAN, Raghu; GEHRKE, Johannes. Sistemas de gerenciamento de


banco de dados. 3.ed. Porto Alegre-RS: AMGH, 2011. Minha Biblioteca:
https://integrada.minhabiblioteca.com.br/books/9788563308771. VBID:
9788563308771.

SCUDERO, Erick. TOP 10 principais SGBDs do mercado global! Disponível em:


https://becode.com.br/principais-sgbds/. Acesso em: 22 mar. 2020.

SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistema de Banco de Dados.


Editora Pearson. Terceira Edição, 2010.
UNIDADE III
SQL BÁSICO
Prof. Dr. Hudson Sérgio de Souza

Plano de Estudo:
• Conceitos e Definições de SQL;
• Linguagens DDL e DCL;
• Restrições SQL;
• Chave Estrangeira e Check.

Objetivos de Aprendizagem:
• Conceituar e contextualizar o SQL;
• Compreender os tipos de restrições;
• Estabelecer a importância dos comandos básicos SQL.
INTRODUÇÃO

Na Unidade III será abordado tanto os conceitos, quanto às práticas dos


comandos MySQL utilizados nos conceitos e definições do SQL, nas restrições
implementadas sobre o SQL, na realização de consultas básicas junto do banco de
dados MySQL, assim como os principais comando para realização do CRUD (Create,
Read, Update e Delete) os quais são utilizados inserir dados ao banco de dados MySQL,
realizar consultas, alterar os conteúdos do dados armazenados e apagar registros
inteiros armazenados na Entidade do banco de dados MySQL.
1 CONCEITOS E DEFINIÇÕES DE SQL
Imagem do Tópico: 1361342690

1.1 Linguagem SQL

A Structured Query Languege/Linguagem de Consulta Estrutura (SQL) é a


linguagem de acesso e manipulação do SGBD mais utilizada para realizar a gestão dos
dados armazenados em sua base de dados. Esta linguagem possui características
padrão de consulta do banco de dados, de criação da estrutura dos dados e para
modificar os dados armazenados no banco de dados.
A linguagem possui comandos específicos para gerenciar a segurança de acesso
aos dados e das privilégios (permissões) de acesso por parte dos usuários.
Através da linguagem SQL é possível:
● Criar, alterar e remover esquemas lógicos;
● Realizar a manipulação dos dados armazenados no banco de dados;
● Possibilita a inserção de novos dados, a alteração ou remoção de dados
antigos no banco de dados;
● Definir os privilégios (permissões) de acesso e transação dos usuários aos
dados contidos no banco de dados.
É importante salientar que a linguagem SQL é semelhante a uma linguagem de
programação tradicional, como Java, PHP, Python, C++, porém foi projetada
especificamente para realizar a manipulação do banco de dados, conforme Figura 1.
Figura 01 - Linguagem de
manipulação SQL

Fonte: O autor, 2020.

A linguagem SQL possui alguns subconjuntos da linguagem, dentre as principais


estão:
● A DML que manipula os registros, exemplo select;
● A DDL que manipula os objetos, exemplo create table;
● A DCL que manipula os utilizadores, exemplo revoke.

1. 2 Linguagem DML

A Data Manipulation Language/Linguagem de Manipulação de Dados (DML) trata-


se de um subconjunto da Linguagem SQL, que realiza as funções de inserir, atualizar,
consultar e deletar os dados contidos no banco de dados.
Caso a linguagem DML seja utilizada de forma independente, ela passará a se
chamar de Query Language/Linguagem Consulta junto com a Linguagem SQL.
Os principais comandos da Linguagem DML são:
● SELECT: realiza uma consulta “query” ao banco de dados, possibilitando
passar a descrição do resultado esperado;
● UPDATE: altera o valor do conteúdo de um ou mais Registros de uma
Entidade;
● DELETE: remove um ou mais Registros de uma Entidade existente;
● TRUNCATE: remove todos os Registros de uma Entidade, esvaziando-a;
● COMMIT: efetiva uma transação executada no banco de dados;
● ROLLBACK: desfaz a transação corrente, fazendo com que as modificações
sejam desfeitas.
2 LINGUAGENS DDL E DCL
Imagem do Tópico: 571378933

2.1 Linguagem DDL

A Data Definition Language/Linguagem de Definição de Dados (DDL) é aplicada


na definição da estrutura do banco de dados pelos projetistas e analistas de banco de
dados.
O Sistema Gerenciador de Banco de Dados (SGBD) possui um interpretador
próprio para a Linguagem DDL, que se responsabiliza pela execução dos comandos,
pelo processamento da DDL e por guardar o esquema determinado na estrutura interna
do banco de dados.
Estando os dados devidamente armazenados no banco de dados, esses dados
estão disponíveis para serem manipulados através de uma série de operações de acesso
a estes dados.
A linguagem DDL dispõe de comandos para realizar a alteração das tabelas, as
visões e os índices das tabelas.
Os principais comandos da linguagem DDL são:
● CREATE: cria uma Entidade (objeto) dentro de um banco de dados;
● ALTER: permite alterar a estrutura de uma Entidade (objeto);
● DROP: apaga uma Entidade (objeto) de dentro de um banco de dados
existente.

2. 2 Linguagem DCL

A Data Control Language/Linguagem de Controle de Dados (DCL) realiza o


controle do acesso e das transações dos dados que se encontram armazenados no
banco de dados. Gerencia os diferentes níveis de acesso, através das restrições de
acesso aos usuários.
Os principais comandos da linguagem DCL são:
● GRANT: realiza a gestão de privilégios a um usuário para acessar ou realizar
operações em um determinado Banco, Entidade ou Atributo;
● REVOKE: remove os privilégios de um usuário de executar operações;
● SET: parâmetros definidos em tempo de execução, para execução de uma
tarefa;
● LOCK: bloqueia explicitamente o acesso a uma determinada Entidade,
através de controle de acesso concorrente.
3 RESTRIÇÕES SQL
Imagem do Tópico: 790723873

Neste módulo será abordado a forma de manipulação das restrições às Entidades


através dos comandos SQL, onde as principais restrições são:
● Chave primária;
● Unique;
● Chave estrangeira;
● Check;
● Not null.

A aplicação das restrições pode ser recomendado para manter a integridade


referencial das Entidades dentro de um Banco de Dados.
As restrições podem ser aplicadas diretamente sobre as Entidades e Tuplas
através da linguagem SQL, permitindo um maior controle sobre os dados armazenados
na Entidade.
A limitação dos dados brutos armazenados por tipos de dados, por si só já são
um tipo de restrição, embora não possuam um refinamento adequado para atender as
necessidades de softwares mais aprimorados. Por exemplo, o valor de um produto deve
ser armazenado com as casas decimais do valor, o tipo de dado Decimal “vlr_produto
decimal(15,2);” é apropriado para isso, no entanto não consegue restringir que todos
dados armazenados sejam positivos.
Para estes casos de ajustes específicos, a linguagem SQL possibilita delimitar
restrições na Tuplas (coluna) afetando somente o dados a ser armazenado, caso o
usuário insira um valor não apropriado a uma Tupla violando a regra de uma restrição
específica, imediatamente será gerado um erro e o dado não será armazenado. É
importante conhecer as regras de restrição, devido a elas se aplicam até mesmo a
valores padrão dos Atributos.
Chave Primária

A chave primária é empregada para identificar de maneira única cada Registro de


uma Entidade, normalmente fazendo parte do Registro atual ou um atributo artificial que
não esteja no mesmo registro.
A chave primária deve conter valor único, não pode haver valores nulos. Esta
chave pode ser composta por um ou mais Atributos da Entidade. Chave Composta é a
denominação dada ao se utilizar vários Atributos como chave primária.
A definição da chave primária pode ser feita no momento de criação da Entidade,
com a utilização do comando CREATE TABLE, ou após criada a Entidade, alterando a
Entidade através do comando ALTER TABLE.
Exemplo de atribuição da chave primária durante a criação da Entidade:

CREATE TABLE pessoa (


id_pessoa int(11) primary key,
nome varchar(255)
);

Exemplo de atribuição da chave primária após a criação da Entidade, por meio de


alteração da entidade:

ALTER TABLE pessoa ADD PRIMARY KEY (id_pessoa);

A descrição da tabela “pessoa” pode ser visualizada através do comando:

describe pessoa;
+-----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| id_pessoa | int(11) | NO | PRI | NULL | |
| nome | varchar(255) | YES | | NULL | |
+-----------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
Unique

A restrição do tipo UNIQUE assegura que todos os dados contidos em um Atributo


sejam diferentes uns dos outros.
Na entidade “Carro”, o atributo “id_carro” possui um restrição que não permite
incluir dados duplicados, ou seja, com o mesmo valor. Desta forma, ao forçar a inserção
de um dado repetido neste atributo, irá gerar um ERRO, uma vez que já existe o mesmo
valor do dados no atributo “id_carro”.
Criando a Entidade “Carro”.

CREATE TABLE carro (


id_carro int(11) UNIQUE,
modelo varchar(255),
ano int(11)
);

describe carro;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id_carro | int(11) | YES | UNI | NULL | |
| modelo | varchar(255) | YES | | NULL | |
| ano | int(11) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+

A primeira vez que o dado seja inserido, será armazenado com sucesso.

INSERT INTO carro


(id_carro, modelo, ano)
VALUES
(1, 'Civic', 2017),
(2, 'Opala', 1985),
(3, 'Mercedes', 2020)
;

Listando os dados armazenados.

select * from carro;


+----------+----------+------+
| id_carro | modelo | ano |
+----------+----------+------+
| 1 | Civic | 2017 |
| 2 | Opala | 1985 |
| 3 | Mercedes | 2020 |
+----------+----------+------+

Já na segunda que se tentar inserir o mesmo valor do dado, irá gerar um erro e o
dados não será armazenado.

INSERT INTO carro


(id_carro, modelo, ano)
VALUES
(1, 'Kombi', 1953);

Mensagem de ERRO ao tentar inserir um número já existente no Atributo


“id_carro”:

INSERT INTO carro


-> (id_carro, modelo, ano)
-> VALUES
-> (1, 'Kombi', 1953);

ERROR 1062 (23000): Duplicate entry '1' for key 'id_carro'


4 CHAVE ESTRANGEIRA E CHECK
Imagem do Tópico: 598806239

Chave Estrangeira

A função de uma Foreign Key/Chave Estrangeira entre o relacionamento de duas


ou mais Entidades é de apontar o mesmo conteúdo de um Atributo de uma Chave
Primária de uma Entidade “A”, em um Atributo de mesma tipagem em uma Entidade “B”.
Para melhor compreensão, suponha-se duas Entidade denominadas “Estado” e
“Município”, simultaneamente, em um relacionamento com cardinalidades de Um para
Muitos (1-*), onde: Um Estado possui Muitos Municípios.

### Entidade: tb_estado


CREATE TABLE tb_estado (
id_estado int(11) not null primary key auto_increment,
estado varchar(150),
sigla varchar(2)
);

### Entidade: tb_cidade


CREATE TABLE tb_cidade (
id_cidade int(11) not null primary key auto_increment,
cidade varchar(255),
avreviacao varchar(30),
cid_id_estado int(11),
foreign key (cid_id_estado) references tb_estado (id_estado)
);

Check
Uma restrição do tipo CHECK possibilita a realização de uma condição prévia a
ser validada em operações dos tipos INSERT e UPDATE.
Uma vez que o resultado da transação for validado como TRUE (verdadeiro) a
operação será concluída com sucesso. Caso o resultado da transação seja validado
como FALSE (falso) a operação será concluída, retornando uma mensagem de erro.
Para exemplificar será utilizado um semáforo onde serão validados três cores:
vermelho, amarelo e verde. Caso sua inserção não seja exatamente uma destas três
cores, a transação de inserção falhará.
Criação da Entidade:

CREATE TABLE tb_semaforo (


id_semaforo int(11) not null primary key auto_increment,
cruzamento varchar(255),
cor varchar(10),
CONSTRAINT ck_semafaro CHECK (cor IN('vermelho', 'amarelo', 'verde'))
);

Observe que não há nenhuma descrição da CONSTRAINT na descrição da


Entidade.

mysql> describe tb_semaforo;


+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| id_semaforo | int(11) | NO | PRI | NULL | auto_increment |
| cruzamento | varchar(255) | YES | | NULL | |
| cor | varchar(10) | YES | | NULL | |
+-------------+--------------+------+-----+---------+----------------+
3 rows in set (0.01 sec)

Inserindo os valores dos dados corretos na Entidade.

mysql> INSERT INTO tb_semaforo


(id_semaforo, cruzamento, cor)
VALUES
(NULL, 'Av. Brasil com Rua Paraná', 'amarelo');
Query OK, 1 row affected (0.04 sec)
Ao inserir um dado incorreto na Entidade com a cor ‘azul’, irá retornar uma
mensagem de erro.

mysql> INSERT INTO tb_semaforo


-> (id_semaforo, cruzamento, cor)
-> VALUES
-> (NULL, 'Av. Brasil com Rua Paraná', 'azul');

ERROR 4025 (23000): CONSTRAINT `ck_semafaro` failed for


`db_prof_hudson`.`tb_semaforo`

Para confirmar que a transação que obteve falha na CONSTRAINT não inseriu
nenhum dados na Entidade, será dado o comando de Select (consulta) para demonstrar
qual registro encontra-se inserido.

mysql> SELECT * FROM tb_semaforo;


+-------------+----------------------------+---------+
| id_semaforo | cruzamento | cor |
+-------------+----------------------------+---------+
| 1 | Av. Brasil com Rua Paraná | amarelo |
+-------------+----------------------------+---------+
1 row in set (0.02 sec)

Not Null

A restrição do tipo NOT NULL aplicada a um Atributo (coluna) de uma Entidade,


assegura que não aceitará a inserção (INSERT) ou alteração (UPDATE) de um dado
com valor nulo (NULL).

CREATE TABLE tb_profissao (


id_profissao int(11) not null primary key auto_increment,
nome varchar(255) not null,
profissao varchar(150)
);

Descrição da Entidade 'tb_profissao'.

mysql> describe tb_profissao;


+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| id_profissao | int(11) | NO | PRI | NULL | auto_increment |
| nome | varchar(255) | NO | | NULL | |
| profissao | varchar(150) | YES | | NULL | |
+--------------+--------------+------+-----+---------+----------------+
3 rows in set (0.01 sec)

Inserindo dados corretos, observe que o segundo registro será inserido e aceito o
campo vazio.

mysql> INSERT INTO tb_profissao


-> (id_profissao, nome, profissao)
-> VALUES
-> (NULL, 'Mauro', 'Cozinheiro');
Query OK, 1 row affected (0.07 sec)

mysql> INSERT INTO tb_profissao


-> (id_profissao, nome, profissao)
-> VALUES
-> (NULL, '', 'Motorista');
Query OK, 1 row affected (0.05 sec)

Tentativa de inserção de dados com o Atributo ‘nome’ nulo, seguido da mensagem


de erro de que o campo “nome” não pode ser nulo.

mysql> INSERT INTO tb_profissao


-> (id_profissao, nome, profissao)
-> VALUES
-> (NULL, NULL, 'Padeiro');
ERROR 1048 (23000): Column 'nome' cannot be null

Listando o conteúdo da Entidade.

mysql> SELECT * FROM tb_profissao;


+--------------+-------+------------+
| id_profissao | nome | profissao |
+--------------+-------+------------+
| 1 | Mauro | Cozinheiro |
| 2 | | Motorista |
+--------------+-------+------------+
2 rows in set (0.01 sec)

Com isso, é possível afirmar que o comando NOT NULL atribuído a um Atributo
durante a criação de uma Entidade, permite que o Registro seja inserido com sucesso
uma vez que haja conteúdo no Campo identificado como NOT NULL ou que este campo
esteja vazio. Porém não sendo possível a inserção de um Registro que possui um campo
NULL (nulo) desde que o Atributo tenha sido atribuído NOT NULL.
SAIBA MAIS

Diferentes tipos: Categorias de instruções (Transact-SQL)


Data Manipulation Language (DML)
Data Definition Language (DDL)
Data Control Language (DCL)
Transactional Control Language (TCL)

Fonte: ROSSITO, Thomaz. Comandos: DML, DDL, DCL, TCL – SQL Server. Set. 2017. Disponível em:
http://www.thomazrossito.com.br/comandos-dml-ddl-dcl-tcl-sql-server/. Acesso em: 18 set. 2020.

#SAIBA MAIS#
REFLITA

"Quando uma nova tecnologia passa por você, se você não faz parte dela, fará
parte do caminho."

Stewart Brand.

Fonte: TUTIDA, Daniel. 15 frases para o dia do profissional de TI. Disponível em:
https://encontreumnerd.com.br/blog/dia-do-profissional-ti. Acesso em: 18 set. 2020.

#REFLITA #
CONSIDERAÇÕES FINAIS

Ao final deste módulo foi possível evidenciar os principais conceitos e definições


em torno do SQL, assim como as restrições que envolvem as chaves primárias e
estrangeiras das Entidades, sua prerrogativas de definição automáticas de valor de
chaves, o que garante a exclusividade de uma única chave que não se repete dentro da
mesmo entidade.
Para isso foram apresentados os principais conceitos da chave primária, unique,
chave secundária, check e not null.
Uma das principais funções do banco de dados é proporcionar ações de
manipulação aos elementos armazenados ao banco de dados MySQL, assim como o
CRUD (Create, Read, Update e Delete), utilizado para inserir dados ao banco de dados,
realizar consultas, alterar os conteúdos do dados armazenados e deletar registros da
Entidade que encontra-se armazenada no banco de dados MySQL.
LEITURA COMPLEMENTAR

Neste Guia Completo de SQL você encontrará todo o conteúdo que precisa para
aprender sobre a SQL, linguagem de consulta estruturada utilizada por programadores
e DBAs para a execução de consultas e comandos nos principais SGBDs do mercado.

Fonte: DEVMedia. Guia Completo de SQL. Disponível em: https://www.devmedia.com.br/guia/guia-


completo-de-sql/38314. Acesso em: 18 set. 2020.
LIVRO

• Título: Aprendendo SQL: Dominando os Fundamentos de SQL


• Autor: Alan Beaulieu.
• Editora: Novatec.
• Sinopse: Atualizado para os mais recentes sistemas de gerenciamento de banco de
dados – incluindo MySQL 5.1, Oracle 11g e Microsoft SQL Server 2008 – este guia
introdutório irá habilitar você a trabalhar com SQL rapidamente. Independentemente de
precisar escrever aplicações de banco de dados, realizar tarefas administrativas ou gerar
relatórios, Aprendendo SQL auxiliará você a dominar todos os fundamentos de SQL.
FILME/VÍDEO

• Título: A Rede Social


• Ano: 2010.
• Sinopse: O filme retrata a "pré-história" da maior e mais poderosa rede social do
mundo: o Facebook. Tudo começa quando o jovem Mark Zuckerberg cria um site para
facilitar a comunicação entre os estudantes de Harvard. Por que assistir? Criado em
2003, o Facebook mudou para sempre a internet. De acordo com Velasco, o filme tem o
mérito de mostrar ao estudante de tecnologia que, quando se pretende empreender na
área, a capacidade de transformação e reinvenção faz toda a diferença. "The social
network".
Link: https://www.youtube.com/watch?v=YNrbyRA5d14
WEB

O Que É MySQL? Guia Para Iniciantes.

Fonte: HOSTINGER Tutoriais. O Que É MySQL? Guia Para Iniciantes. 21 jan. 2019. Disponível em:
https://www.hostinger.com.br/tutoriais/o-que-e-mysql/. Acesso em: 05 out. 2020.
REFERÊNCIAS

ALVES, William Pereira. Banco de Dados. São Paulo: Érica, 2014. [Minha Biblioteca].
Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788536518961/cfi/0!/4/2@100:0.00.
Acesso em: 5 out. 2020.

DEVMedia. Guia Completo de SQL. Disponível em:


https://www.devmedia.com.br/guia/guia-completo-de-sql/38314. Acesso em: 18 set.
2020.

HOSTINGER. Hostinger tutoriais. O Que É MySQL? Guia Para Iniciantes. 21 jan.


2019. Disponível em: https://www.hostinger.com.br/tutoriais/o-que-e-mysql/. Acesso
em: 5 out. 2020.

MACHADO, Felipe Nery Rodrigues. Banco de dados: Projeto e implementação. 4.ed.


São Paulo: Érica, 2020. [Minha Biblioteca]. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788536532707/cfi/2!/4/2@100:0.00.
Acesso em: 5 out. 2020.

ONE, Key Data. SQL Tutorial: Learn SQL Query Language. Disponível em:
https://www.1keydata.com/sql/sql.html. Acesso em: 5 out. 2020.

ROSSITO, Thomaz. Comandos: DML, DDL, DCL, TCL – SQL Server. Set. 2017.
Disponível em: http://www.thomazrossito.com.br/comandos-dml-ddl-dcl-tcl-sql-server/.
Acesso em: 18 set. 2020.

TUTIDA, Daniel. 15 frases para o dia do profissional de TI. Disponível em:


https://encontreumnerd.com.br/blog/dia-do-profissional-ti. Acesso em: 18 set. 2020.

W3BAI.COM. SQL tutorial. Disponível em: https://www.w3bai.com/pt/sql/default.html.


Acesso em: 5 out. 2020
UNIDADE IV
MAIS SQL
Prof. Dr. Hudson Sérgio de Souza

Plano de Estudo:
● Criação do Banco de Dados e Usuários;
● Acesso ao Banco e Criação de Entidades;
● CRUD - Manipulação dos Registros;
● Gerar Consulta de Informações Relevantes.

Objetivos de Aprendizagem:
● Criar de banco e usuários;
● Analisar e criar Entidades com seus respectivos registros;
● Conceituar e contextualizar os tipos de consultas.
INTRODUÇÃO

Nesta última Unidade de número IV, será abordado mais questões sobre os
padrões SQL, com manipulações mais profundas no Banco de Dados MySQL.
Será contextualizado os passos cronológicos desde a criação do banco de dados,
a criação do usuário e a sua atribuição ao banco.
Análise e desenvolvimento das Entidades e inserção dos respectivos Registros.
Realizar consulta sobre o registro de forma simples e complexa. Consultas no
banco de dados MyQL com diferentes formas de ordenação. Assim como a montagem
do script SQL utilizando JOINS. A realização de transações no banco de dados. Por fim,
serão abordados os conceitos sobre a segurança que envolve o banco de dados.
1 CRIAÇÃO DO BANCO DE DADOS E USUÁRIOS
Imagem do Tópico: www.shutterstock.com: 1659238513

1. 1 Acesso ao banco de dados

O acesso ao banco de dados para criação de um novo banco, a criação de um


usuário e a sua atribuição banco, deve ser realizado por recomendação com usuário que
possui papel de Administrador do Banco (DBA), ou até mesmo como ROOT.
Utilizando o Banco de Dados MySQL, o acesso ao banco pode ser realizado
através da ferramenta gráfica PHPMyAdmin, acessando a URL local
[http://localhost/phpmyadmin] ou remota, como por exemplo
[http://srv018sifatecie.ddns.net/phpmyadmin], conforme Figura 1.

Figura 01 - Tela de Login da ferramenta web PHPMyAdmin

Fonte: O autor, 2020.


Tendo acesso a todos os banco de dados já criados e as configurações, conforme
Figura 2.

Figura 02 - Acesso ao Banco de dados MySQL por


usuário com papel de Administrador (root)

Fonte: O autor, 2020.

O acesso ao banco de dados também pode ser realizado por linha de comando,
utilizando o Prompt [Windows] ou o Bash [Linux]. Todavia, por políticas de segurança, o
acesso como Administrador (root) por padrão vem desabilitado, só permitindo acesso
localmente (localhost), conforme a Figura 3.

Figura 03 - Tabela de privilégios dos usuários para


acesso ao Banco de Dados MySQL, através do
acesso remoto

Fonte: O autor, 2020.


Caso ocorra uma tentativa de acesso remoto com usuário Administrador (root), o
Sistema Gerenciador de Banco de Dados (SGBD) irá recusar a conexão, permitindo
somente a conexão de usuários comuns devidamente cadastrados e com suas políticas
de privilégios estabelecidas previamente, conforme Figura 4.

Figura 04 - Script para acesso remoto via Bash com usuário


Administrativo (root) e usuário comum (prof-hudson)

Fonte: O autor, 2020.

Para o Script utilizado para criação do banco de dados denominado


“db_prof_hudson”, merece destaque para a configuração do tipo de caractere a ser
utilizado como UTF-8, usado na Língua Portuguesa (pt-BR) contemplando acentuação e
caracteres especiais.

CREATE DATABASE db_prof_hudson DEFAULT CHARACTER SET utf8 COLLATE


utf8_unicode_ci;

Na criação de um novo usuário comum no Banco de Dados MySQL 8, o Script


utilizado destaca a necessidade da identificação do tipo de senha a ser utilizada, para
que este usuário possa ter acesso remoto a partir da ferramenta PHPMyAdmin, sendo
necessário descrever “WITH mysql_native_password”.

CREATE USER 'prof-hudson'@'%' IDENTIFIED WITH mysql_native_password BY '123mudar';

Por fim, será passado a lista de privilégios, neste caso todos (ALL), atribuindo o
usuário ao banco de dados e identificando o tipo de acesso permitido, neste caso está
sendo permitido o acesso remoto (%).

GRANT ALL PRIVILEGES ON db_prof_hudson.* TO 'prof-hudson'@'%';

A partir deste momento, já pode realizar o logout do usuário Administrador (root)


e realizar o login com o novo usuário comum “prof-hudson” devidamente atribuído ao
banco de dados “db_prof_hudson”, conforme acesso realizado com sucesso ilustrado na
Figura 4, com o Script.
2 ACESSO AO BANCO E CRIAÇÃO DE ENTIDADES
Imagem do Tópico: www.shutterstock.com: 744407434

Acesso a base de dados local ou remota

Para acesso a sua máquina local, será utilizado o comando:

mysql -h localhost -u prof-hudson -p


Enter password: 123mudar

Para acesso a uma máquina remota que esteja conectada à internet, poderá ser
utilizado a URL de acesso [srv018sifatecie.ddns.net] a esta máquina ou o seu endereço
de IP [187.33.205.210].

mysql -h srv018sifatecie.ddns.net -u prof-hudson -p


Enter password: 123mudar

ou

mysql -h 187.33.205.210 -u prof-hudson -p


Enter password: 123mudar

O comando utilizado para listar todos os banco de dados que foram atribuídos ao
usuário “prof-hudson”, retorna as seguintes informações.

mysql> show databases;


+--------------------+
| Database |
+--------------------+
| db_prof_hudson |
| db_sapi |
| information_schema |
+--------------------+
3 rows in set (0.00 sec)

É necessário identificar qual banco de dados será utilizado, através do comando.


mysql> use db_prof_hudson;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

Uma vez selecionado o banco de dados, será possível listar todas as Entidades
que contenha este banco, através do comando.

mysql> show tables;


+--------------------------+
| Tables_in_db_prof_hudson |
+--------------------------+
| carro |
| pessoa |
| tb_aluno |
| tb_animal |
| tb_cidade |
| tb_ensalamento2 |
| tb_estado |
| tb_profissao |
| tb_semaforo |
+--------------------------+
9 rows in set (0.00 sec)

Na sequência será realizado uma análise de requisito e o desenvolvimento de


uma Unified Modeling Language/Linguagem de Modelagem Unificada (UML)
identificando através do Diagrama de Entidade-Relacionamento (DER), identificando de
forma gráfica as Entidades, elementos e relacionamentos, que existiram dentro do banco
de dados, conforme Figura 5.
Figura 05 - DER entre as Entidades “tb_funcionario” e a
“tb_departamento”, com relacionamento 1:N.

Fonte: O autor, 2020.

No DER se destaca a o relacionamento 1:N entre as Entidade “tb_funcionario”


com a Entidade “tb_departamento”, tendo como Chave Estrangeira (PK) o Atributo
“fun_id_departamento” incorporado à Entidade “tb_funcionario”.

Criação de Entidades

Seguindo as definições do Diagrama de Entidade-Relacionamento (DER) serão


criadas as entidades Departamento “tb_departamento” e a Funcionário “tb_funcionario”,
enfatizando o relacionamento de Um-para-Muito (1:N) existente entre as entidades.

Criação da Entidade Departamento:

CREATE TABLE tb_departamento (


id_departamento int(11) not null primary key auto_increment,
departamento varchar(255),
turno varchar(15),
qtd_funcionario int(11),
cargo varchar(255)
) ENGINE=INNODB DEFAULT charset=utf8 COLLATE=utf8_unicode_ci;

Criação da Entidade Funcionário:


CREATE TABLE tb_funcionario (
id_funcionario int(11) not null primary key auto_increment,
nome varchar(255),
email varchar(150),
celular varchar(20),
cidade varchar(255),
estado varchar(100),
salario decimal(10,2),

fun_id_departamento int(11) not null,


foreign key (fun_id_departamento) references tb_departamento (id_departamento)

) ENGINE=INNODB DEFAULT charset=utf8 COLLATE=utf8_unicode_ci;

Após a execução bem sucedida do Script para criação das entidades


Departamento e Funcionário, é possível utilizar o comando show tables para listas se
a Entidade foi realmente criada.
mysql> show tables;
+--------------------------+
| Tables_in_db_prof_hudson |
+--------------------------+
| carro |
| pessoa |
| tb_aluno |
| tb_animal |
| tb_cidade |
| tb_departamento | ***
| tb_ensalamento2 |
| tb_estado |
| tb_profissao |
| tb_semaforo |
+--------------------------+

O comando describe tb_departamento retorna a descrição da estrutura da


entidade criada.

mysql> describe tb_departamento;


+-----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+----------------+
| id_departamento | int(11) | NO | PRI | NULL | auto_increment |
| departamento | varchar(255) | YES | | NULL | |
| turno | varchar(15) | YES | | NULL | |
| qtd_funcionario | int(11) | YES | | NULL | |
| cargo | varchar(255) | YES | | NULL | |
+-----------------+--------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

Para verificar se há ou não algum registro armazenado dentro da entidade, se


utiliza o comando genérico que lista todos os Atributos e todos os Registros da entidade
Departamento.

mysql> SELECT * FROM tb_departamento;


Empty set (0.00 sec)

Neste caso não será retornado nada como resposta sendo a Entidade foi recém
criada e encontra-se vazia, sem nenhum Registro.
Na sequência, será verificado novamente com os mesmos comandos a Entidade
Funcionário.
Listar Entidades.

mysql> show tables;


+--------------------------+
| Tables_in_db_prof_hudson |
+--------------------------+
| carro |
| pessoa |
| tb_aluno |
| tb_animal |
| tb_cidade |
| tb_departamento |
| tb_ensalamento2 |
| tb_estado |
| tb_funcionario | ***
| tb_profissao |
| tb_semaforo |
+--------------------------+
11 rows in set (0.00 sec)

Verificar a estrutura da Entidade Funcionário.


mysql> describe tb_funcionario;
+---------------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+---------------+------+-----+---------+----------------+
| id_funcionario | int(11) | NO | PRI | NULL | auto_increment |
| nome | varchar(255) | YES | | NULL | |
| email | varchar(150) | YES | | NULL | |
| celular | varchar(20) | YES | | NULL | |
| cidade | varchar(255) | YES | | NULL | |
| estado | varchar(100) | YES | | NULL | |
| salario | decimal(10,2) | YES | | NULL | |
| fun_id_departamento | int(11) | NO | MUL | NULL | |
+---------------------+---------------+------+-----+---------+----------------+
8 rows in set (0.01 sec)

Verificar se há Registros dentro da entidade Funcionário.

mysql> SELECT * FROM tb_funcionario;


Empty set (0.00 sec)
3 CRUD – MANIPULAÇÃO DOS REGISTROS
Imagem do Tópico: www.shutterstock.com: 762698440

A manipulação dos Registros dentro de uma Entidade se dão através do famoso


CRUD MySQL, onde as siglas significam respectivamente Create (inserir), Read (listar),
Update (alterar) e Delete (apagar)

CREATE (Inserir)

Inserir Registros na entidade Departamento.

INSERT INTO tb_departamento


(id_departamento, departamento, turno, qtd_funcionario, cargo)
VALUES
(NULL , 'Financeiro' , 'noite' , '3' , 'Administrativo'),
(NULL , 'Vendas' , 'dia e noite' , '5' , 'Vendedor'),
(NULL , 'Compras' , 'dia' , '1' , 'Comprador'),
(NULL , 'Pintura' , 'manha tarde' , '2' , 'Pintor'),
(NULL , 'Mecanica' , 'manha tarde' , '4' , 'Mecanico');

Inserir Registros na entidade Funcionário.

INSERT INTO tb_funcionario


(id_funcionario, nome, email, celular, cidade, estado, salario,
fun_id_departamento)
VALUES
(NULL, 'Odair Campos' , '[email protected]' , '11 99854-5412' , 'Osasco' , 'SP'
, '2500.00' , '3'),
(NULL, 'Ursula Medeiros' , '[email protected]' , '44 95478-2168' , 'Umuarama'
, 'PR' , '1500.00' , '1'),
(NULL, 'Priscila Soares' , '[email protected]' , '44 98546-5482' , 'Paranavaí'
, 'PR' , '1750.00' , '1'),
(NULL, 'Paula Bitencur' , '[email protected]' , '44 95462-6554' , 'Paranavaí' ,
'PR' , '3300.00' , '2'),
(NULL, 'Norma Soares' , '[email protected]' , '21 94584-5436' , 'Nova Iguaçí' ,
'RJ' , '1450.00' , '2'),
(NULL, 'Beatriz Campos' , '[email protected]' , '31 92213-4512' , 'Belo
Horizonte' , 'MG' , '1500.00' , '4'),
(NULL, 'Adriana Souza' , 'adriana@hotmail' , '79 94125-3325' , 'Aracaú' , 'SE'
, '1650.00' , '5'),
(NULL, 'Barbara Nunes' , '[email protected]' , '51 99947-2714' , 'Bento
Gonçalves' , 'RS' , '1000.00' , '5');
Read (listar)

Listar os Registros na entidade Departamento.


mysql> SELECT * FROM tb_departamento;
+-----------------+--------------+-------------+-----------------+----------------+
| id_departamento | departamento | turno | qtd_funcionario | cargo |
+-----------------+--------------+-------------+-----------------+----------------+
| 1 | Financeiro | noite | 3 | Administrativo |
| 2 | Vendas | dia e noite | 5 | Vendedor |
| 3 | Compras | dia | 1 | Comprador |
| 4 | Pintura | manha tarde | 2 | Pintor |
| 5 | Mecanica | manha tarde | 4 | Mecanico |
+-----------------+--------------+-------------+-----------------+----------------+
5 rows in set (0.01 sec)

Listar os Registros na entidade Funcionário.


mysql> SELECT * FROM tb_funcionario;
+----------------+-----------------+---------------------+---------------+------------------+--------+---------+---------------------+
| id_funcionario | nome | email | celular | cidade | estado | salario | fun_id_departamento |
+----------------+-----------------+---------------------+---------------+------------------+--------+---------+---------------------+
| 1 | Odair Campos | [email protected]| 11 99854-5412 | Osasco | SP | 2500.00 | 3 |
| 2 | Ursula Medeiros | [email protected] | 44 95478-2168 | Umuarama | PR | 1500.00 | 1 |
| 3 | Priscila Soares | [email protected] | 44 98546-5482 | Paranavaí | PR | 1750.00 | 1 |
| 4 | Paula Bitencur | [email protected] | 44 95462-6554 | Paranavaí | PR | 3300.00 | 2 |
| 5 | Norma Soares | [email protected] | 21 94584-5436 | Nova Iguaçí | RJ | 1450.00 | 2 |
| 6 | Beatriz Campos | [email protected] | 31 92213-4512 | Belo Horizonte | MG | 1500.00 | 4 |
| 7 | Adriana Souza | adriana@hotmail | 79 94125-3325 | Aracaú | SE | 1650.00 | 5 |
| 8 | Barbara Nunes | [email protected] | 51 99947-2714 | Bento Gonçalves | RS | 1000.00 | 5 |
+----------------+-----------------+---------------------+---------------+------------------+--------+---------+---------------------+
8 rows in set (0.00 sec)

Update (alterar)

Alteração dos dados do Registros, que estejam armazenados no Banco de Dados


MySQL.
Para exemplificar, será alterados os dados do nome da cidade, do estado e o valor
do salário, do Registro que possui a chave primária número 1.

UPDATE tb_funcionario SET cidade='Londrina', estado='PR',


salario='4300.00' WHERE id_funcionario='1';

Para comprovar a alteração do Registro, será realizada a consulta com todos dos
dados da Entidade ‘tb_funcionario’.

SELECT * FROM tb_funcionario;


Figura 06 - Consulta de alteração do registro do funcionário

Fonte: O autor, 2020.

Na Figura 6, demonstra uma consulta genérica trazendo todos os Atributos e


todos os Registros que se encontram armazenados no Banco de Dados MySQL. Porém
é possível implementar uma consulta implementando “filtros”, que retornará um conjunto
de dados passível de ser analisado e compreendido, gerando uma informação pertinente
ao usuário.
Conforme Figura 7, demonstra uma consulta com filtro, que retorna alguns
Atributos específicos, onde o funcionário tenha uma salário acima de R$ 1.500,00
inclusive, ordenado por Estado na forma ascendente e por salário na forma descendente.

SELECT nome, cidade, estado, salario


FROM tb_funcionario
WHERE salario >= 1500.00
ORDER BY estado ASC, salario DESC;

+-----------------+----------------+--------+---------+
| nome | cidade | estado | salario |
+-----------------+----------------+--------+---------+
| Beatriz Campos | Belo Horizonte | MG | 1500.00 |
| Odair Campos | Londrina | PR | 4300.00 |
| Paula Bitencur | Paranavaí | PR | 3300.00 |
| Priscila Soares | Paranavaí | PR | 1750.00 |
| Ursula Medeiros | Umuarama | PR | 1500.00 |
| Adriana Souza | Aracaú | SE | 1650.00 |
+-----------------+----------------+--------+---------+
6 rows in set (0.00 sec)
Figura 07 - Consulta elaborada para retorno de informações pertinentes

Fonte: O autor, 2020.

Delete (apagar)

A exclusão de um Registro que esteja armazenado no Banco de Dados MySQL,


pode ser excluído utilizando o comando DELETE e, preferencialmente utilizando o
Atributo ‘id_funcionario’ por ser um dados não nulo, numérico e numerado
automaticamente.

DELETE FROM tb_funcionario WHERE id_funcionario='7';

Através da consulta, é possível evidenciar que o Atributo “id_funcionario=7”


realmente foi Deletado ou não, conforme Figura 8.
SELECT id_funcionario, nome, estado, cidade, salario
FROM tb_funcionario
ORDER BY estado ASC, salario DESC;

+----------------+-----------------+--------+------------------+---------+
| id_funcionario | nome | estado | cidade | salario |
+----------------+-----------------+--------+------------------+---------+
| 6 | Beatriz Campos | MG | Belo Horizonte | 1500.00 |
| 1 | Odair Campos | PR | Londrina | 4300.00 |
| 4 | Paula Bitencur | PR | Paranavaí | 3300.00 |
| 3 | Priscila Soares | PR | Paranavaí | 1750.00 |
| 2 | Ursula Medeiros | PR | Umuarama | 1500.00 |
| 5 | Norma Soares | RJ | Nova Iguaçí | 1450.00 |
| 8 | Barbara Nunes | RS | Bento Gonçalves | 1000.00 |
+----------------+-----------------+--------+------------------+---------+
7 rows in set (0.01 sec)

Figura 08 - Consulta MySQL que retorna dados específicos para


conferência se a Query foi executada de maneira correta.

Fonte: O autor, 2020


4 GERAR CONSULTA DE INFORMAÇÕES RELEVANTES
Imagem do Tópico: www.shutterstock.com: 1135978331

As consultas ao banco de dados podem ser simples ou complexas, dependendo


da necessidade do usuário. Neste exemplo, será listado todos os Atributos que possui
a chave estrangeira número 2, conforme Figura 9.

select * from tb_funcionario where fun_id_departamento='2';


+----------------+----------------+-----------------+---------------+---------------+--------+---------+---------------------+
| id_funcionario | nome | email | celular | cidade | estado | salario | fun_id_departamento |
+----------------+----------------+-----------------+---------------+---------------+--------+---------+---------------------+
| 4 | Paula Bitencur | [email protected] | 44 95462-6554 | Paranavaí | PR | 3300.00 | 2 |
| 5 | Norma Soares | [email protected] | 21 94584-5436 | Nova Iguaçí | RJ | 1450.00 | 2 |
+----------------+----------------+-----------------+---------------+---------------+--------+---------+---------------------+
2 rows in set (0.00 sec)

Figura 09 - Consulta simples no Banco de Dados MySQL

Fonte: O autor, 2020.

Retornar todos os Atributos da Entidade, muitas vezes não é interessante ao


usuário final, o excesso de dados pode confundir o usuário. Aplicando um filtro na
consulta anterior, será retornado apenas as informações pertinentes, conforme Figura
10.

SELECT nome, estado, salario FROM tb_funcionario WHERE fun_id_departamento='2'


ORDER BY nome asc;

+----------------+--------+---------+
| nome | estado | salario |
+----------------+--------+---------+
| Norma Soares | RJ | 1450.00 |
| Paula Bitencur | PR | 3300.00 |
+----------------+--------+---------+
2 rows in set (0.01 sec)
Figura 10 - Consulta ao Banco de Dados MySQL aplicando filtros
para retornar somente as informações pertinentes ao usuário

Fonte: O autor, 2020.

Outro exemplo de filtro aplicado à consulta ao Banco de Dados MySQL.

SELECT nome, cidade, estado FROM tb_funcionario WHERE estado='pr' ORDER BY nome;

+-----------------+------------+--------+
| nome | cidade | estado |
+-----------------+------------+--------+
| Paula Bitencur | Paranavaí | PR |
| Priscila Soares | Paranavaí | PR |
| Ursula Medeiros | Umuarama | PR |
+-----------------+------------+--------+

Conforme os filtros aplicados a consulta forem implementados aumentando os


critérios, é possível formatar a consulta de forma mais legível e organizada. Podem ser
utilizados mais de um parâmetro empregados à consulta, como se observa nas cláusulas
WHERE e ORDER BY, conforme Figura 11.

SELECT email, nome, estado, cidade


FROM tb_funcionario
WHERE salario >= 1000.00
AND estado='PR'
ORDER BY estado asc, cidade asc, nome asc;

+---------------------+-----------------+--------+------------+
| email | nome | estado | cidade |
+---------------------+-----------------+--------+------------+
| [email protected] | Odair Campos | PR | Londrina |
| [email protected] | Paula Bitencur | PR | Paranavaí |
| [email protected] | Priscila Soares | PR | Paranavaí |
| [email protected] | Ursula Medeiros | PR | Umuarama |
+---------------------+-----------------+--------+------------+

Figura 11 - Consulta MySQL com número maior de parâmetros, definindo um


filtro com retorno mais específico

Fonte: O autor, 2020.

A consulta ao Banco de Dados MySQL dependendo de como esteja montado a


estrutura das Entidades e de seus Relacionamentos, conforme Figura 12, possibilita
filtrar os dados de mais de uma Entidade e retornar informações mais pertinentes ao
usuário. Para isso é necessário estar dentro da cláusula WHERE o relacionamento entre
as chaves primária e chave estrangeira. Também é possível adicionar Alias (apelido) ao
nome do Atributo, tornando-os mais humanizados e compreensíveis, conforme Figura
13.
Figura 12 - DER entre as Entidades “tb_funcionario” e a
“tb_departamento”, com relacionamento 1:N.

Fonte: O autor, 2020.

SELECT
F.nome as Nome, D.departamento as Depto, F.email as 'E-mail', F.salario
as Remuneração, F.estado as UF, D.turno as Periodo, F.cidade as Cidade
FROM
tb_departamento D, tb_funcionario F
WHERE
D.id_departamento = F.fun_id_departamento
AND F.salario >= 2000.00
ORDER BY
D.departamento asc, F.salario desc, F.nome asc;

+----------------+---------+-------------------+---------------+------+-------------+------------+
| Nome | Depto | E-mail | Remuneração | UF | Periodo | Cidade |
+----------------+---------+-------------------+---------------+------+-------------+------------+
| Odair Campos | Compras | [email protected] | 4300.00 | PR | dia | Londrina |
| Paula Bitencur | Vendas | [email protected] | 3300.00 | PR | dia e noite | Paranavaí |
+----------------+---------+-------------------+---------------+------+-------------+------------+
2 rows in set (0.00 sec)
Figura 13 - Consulta avançada no Banco de Dados MySQL, envolvendo duas dados de duas
Entidades e Aliás aos nomes dos Atributos

Fonte: O autor, 2020.

Segurança no banco de dados MySQL

O Banco de Dados MySQL é muito utilizado na em aplicações web, sobretudo


com a Linguagem de Programação PHP.
Para obtermos um nível de segurança maior é necessário que a instalação do
banco do servidor e a sua configuração interna siga alguns requisitos, tais como:
● A instalação do servidor Apache possua o módulo de suporte a PHP, instalados
no diretório /chroot/httpd;
● Utilização do serviço MySQL exclusivamente pela aplicação desenvolvida em
PHP, que esteja instalado no mesmo servidor;
● Uso de ferramentas de administração do Sistema Gerenciador de Banco de
Dados (SGBD) como: PHPMyAdmin, MtSQLAdmin, mysql, entre outras;
● Uso do protocolo SSH para realização de Backup;
● O processo MySQL deverá rodas em UID/GID diferentes dos processos do
sistema;
● Permissão somente para acesso local, sendo bloqueado o acesso remoto;
● Inserir uma senha forte para o usuário administrador (root);
● Renomear a conta de administrador;
● Desabilitar o acesso anônimo ao Banco de Dados MySQL;
● Remover os bancos e entidades de exemplo.
SAIBA MAIS

INSTALAÇÃO E CONFIGURAÇÕES DO SISTEMA OPERACIONAL

O banco de dados é parte importante e fundamental de um ou vários sistemas de


uma empresa, provendo informações necessárias para tomadas de decisões,
lançamentos de produtos e regras de negócios, ou seja, é no banco de dados onde estão
as informações mais valiosas de uma empresa.
É fato que tanta informação valiosa em um mesmo local não é algo seguro por
natureza e é aí que você, DBA, deve agir com inteligência e elaborar estratégias de
segurança como: Políticas de senhas, firewall, SO, SGBD e até a própria cultura do local
onde você trabalha, pois, não adianta de nada você cuidar da segurança e a sua equipe
ficar trafegando o usuário e senha em plain text pela rede.

Fonte: MORAES, Allan. Blindando o MySQL: Configurações de segurança. Disponível em:


https://www.vivaolinux.com.br/artigo/Blindando-o-MySQL-Configuracoes-de-seguranca. Acesso em: 21
out. 2020.

#SAIBA MAIS#
REFLITA

Meus filhos terão computadores, sim, mas antes terão livros. Sem livros, sem
leitura, os nossos filhos serão incapazes de escrever – inclusive a sua própria história.

Bill Gates.

Fonte: BORNELI, Júnior. Veja 10 frases de Bill Gates, fundador da Microsoft, que completa 40 anos
de fundação. 4 abr. 2015. Disponível em: https://www.startse.com/noticia/educacao/veja-10-frases-de-
bill-gates-fundador-da-microsoft-que-completa-40-
anos#:~:text=Meus%20filhos%20ter%C3%A3o%20computadores%2C%20sim,inclusive%20a%20sua%2
0pr%C3%B3pria%20hist%C3%B3ria. Acesso em: 20 maio 2021.

#REFLITA#
CONSIDERAÇÕES FINAIS

Com o término desta unidade, foi possível acompanhar o passo a passo do são
tipos de acesso ao Banco de Dados MySQL de forma local ou remota, a forma correta
de realizar a autenticação com usuários administrativo e comum, a criação do banco de
dados e a integração do novo usuário ao banco de dados.
A criação de um banco de dados deve obedecer critérios estruturais condizentes
e que atendam as reais necessidades do sistema e do usuário final, este levantamento
de informações pode ser realizado através do Diagrama de Entidade-Relacionamento
(DER).
Definindo a estrutura do banco, será utilizado Scripts para criação e manipulação
do banco de dados, entidades, registros, além dos comandos básicos para realização do
CRUD MySQL.
A parte das consultas ao Banco de Dados MySQL é fundamental para que os
dados brutos que estejam armazenados, sejam tratados de tal forma que se tornem em
informações pertinentes ao usuário, servindo como uma fonte de informações valiosa
para a tomada de decisões administrativas.
Inúmeras medidas de segurança podem ser tomadas para resguardar os dados
armazenados e evitar ataques de hackers ou pessoas que não tem conhecimento
específico sobre o dado que está sendo manipulado, podendo causar perdas e danos à
estrutura ao banco ou aos dados armazenados.
LEITURA COMPLEMENTAR

Análise de Persistência de Imagens Médicas: uma comparação entre os sistemas


de bancos de dados MySQL, PostgreSQL e Derby

Este artigo apresenta a análise e comparação de desempenho de persistência de


imagens médicas de três Sistemas Gerenciadores de Banco de Dados Open Source,
MySQL 5.1, PostgreSQL 9.0 e Derby 10.8, através de medidas de posição e dispersão
amostral, histogramas e do Teste de Tukey.

Fonte: DELFINO, Sérgio Roberto; POVOA, Lucas Venezian; PINTO, Ana Carla Rossinholi. Análise de
Persistência de Imagens Médicas: uma comparação entre os sistemas de bancos de dados MySQL,
PostgreSQL e Derby. Retec Revista de Tecnologia. Ourinhos-SP. v.5, n.1, p.7-13, 2012. Disponível em:
https://www.fatecourinhos.edu.br/retec/index.php/retec/article/view/46/22. Acesso em 17 ago. 2021.
LIVRO

• Título: MySQL: Comece com o principal banco de dados open source do mercado.
• Autor: Vinícius Carvalho.
• Editora: Casa do Código.
• Sinopse: O MySQL é praticamente onipresente nos projetos de software atuais. Boa
parte deles o utiliza como banco de dados para armazenar as informações da sua
aplicação, por conta da sua facilidade de instalação e configuração. Neste livro, Vinícius
Carvalho introduz o leitor no mundo do banco de dados MySQL, ensinando os principais
comandos DML e DDL, e ferramentas gráficas. Você vai aprender a trabalhar com
procedures, manipular triggers, criar backups e vários outros recursos que fazem a
diferença no dia a dia. Versão do MySQL: 8.0.
FILME/VÍDEO

Título: The Machine/Soldado do Futuro.


Ano: 2014.
Sinopse: Um veterano de inteligência artificial espera desenvolver tecnologia capaz de
ajudar sua irmã doente. Sua nova parceira de trabalho, uma jovem e talentosa
engenheira também do campo da inteligência artificial, é contratada após suas
descobertas terem sido reconhecidas pelo Ministério da Defesa. Os dois unem forças,
mas não contavam que seu invento pudesse cair nas mãos do poderoso Ministério da
Defesa.
Link: https://www.youtube.com/watch?v=MuGejbtt3l8
WEB

Uma Introdução às consultas no MySQL

Bancos de dados são um componente chave em muitos websites e aplicações, e


estão no centro de como os dados são armazenados e trocados pela Internet. Um dos
aspectos mais importantes do gerenciamento de banco de dados é a prática de recuperar
dados de um banco de dados, seja em uma base ad hoc ou parte de um processo
codificado em um aplicativo. Existem várias maneiras de recuperar informações de um
banco de dados, mas um dos métodos mais utilizados é realizado através do envio de
consultas pela linha de comandos.

Fonte: DRAKE, Mark. Uma Introdução às consultas no MySQL. 11 jan. 2019. Disponível em:
https://www.digitalocean.com/community/tutorials/uma-introducao-as-consultas-no-mysql-pt. Acesso em:
21 out. 2020.
REFERÊNCIAS

ALVES, William Pereira. Banco de dados. São Paulo: Érica, 2014. Minha Biblioteca.
https://integrada.minhabiblioteca.com.br/#/books/9788536518961/. VBID:
9788536518961.

BORNELI, Júnior. Veja 10 frases de Bill Gates, fundador da Microsoft, que


completa 40 anos de fundação. 4 abr. 2015. Disponível em:
https://www.startse.com/noticia/educacao/veja-10-frases-de-bill-gates-fundador-da-
microsoft-que-completa-40-
anos#:~:text=Meus%20filhos%20ter%C3%A3o%20computadores%2C%20sim,inclusiv
e%20a%20sua%20pr%C3%B3pria%20hist%C3%B3ria. Acesso em: 20 mai. 2021.

DELFINO, Sérgio Roberto; POVOA, Lucas Venezian; PINTO, Ana Carla Rossinholi.
Análise de Persistência de Imagens Médicas: uma comparação entre os sistemas de
bancos de dados MySQL, PostgreSQL e Derby. Retec Revista de Tecnologia.
Ourinhos-SP. v.5, n.1, p.7-13, 2012. Disponível em:
https://www.fatecourinhos.edu.br/retec/index.php/retec/article/view/46/22. Acesso em
17 ago. 2021.

DRAKE, Mark. Uma Introdução às consultas no MySQL. 11 jan. 2019. Disponível


em: https://www.digitalocean.com/community/tutorials/uma-introducao-as-consultas-no-
mysql-pt. Acesso em: 21 out. 2020.

MACHADO, Felipe Nery Rodrigues. Banco de Dados: Projeto e Implementação. 3.ed.


São Paulo: Érica, 2014. Minha Biblioteca.
https://integrada.minhabiblioteca.com.br/books/9788536518978. VBID:
9788536518978.

MORAES, Allan. Blindando o MySQL: Configurações de segurança. Disponível em:


https://www.vivaolinux.com.br/artigo/Blindando-o-MySQL-Configuracoes-de-seguranca.
Acesso em: 21 out. 2020.

RAMAKRISHNAN, Raghu; GEHRKE, Johannes. Sistemas de gerenciamento de


banco de dados. 3.ed. Porto Alegre-RS: AMGH, 2011. Minha Biblioteca:
https://integrada.minhabiblioteca.com.br/books/9788563308771. VBID:
9788563308771.
CONCLUSÃO GERAL

Durante esse estudo foram abordados os principais temas sobre o Sistema


Gerenciamento de Banco de Dados (SGBD) e sua gestão sobre os Bancos de Dados.
Foram discutidos os processos de Transações de uma sequência de operação,
tratadas em um bloco único e indivisível.
Foi enfatizado sobre a estrutura de um Modelo Relacional e sua importância para
o desenvolvimento de um Banco de Dados, assim como o Modelo Entidade
Relacionamento (MER).
Considerou-se neste estudo, os diferentes tipos de relacionamentos entre as
Entidades e suas aplicações.
Finalizando com os tipos de Linguagens de Manipulação SQL e seus
Subconjuntos.

Você também pode gostar