Escolar Documentos
Profissional Documentos
Cultura Documentos
Introdução
Sistemas de informação
Reflita
Como foi dito, a sociedade hoje vive imersa em dados e em tecnologia de
informação. E, para você, qual sua opinião sobre esse fenômeno? Pare um
pouco e pense, quais benefícios você enxerga e quais pontos de atenção são
importantes para que estejamos alertas? No seu dia a dia, como você se
organiza para, em essência, fazer um bom uso da tecnologia e dos dados?
Dados, informação e conhecimento
Definições
Saiba mais
Exemplos de comandos
Enfim, o SGBD pode ser visto como um assistente eficiente que torna
o trabalho de acesso a dados conveniente por meio de comandos
simples em SQL.
Conclusão
Esta unidade permitiu ter uma visão geral sobre banco de dados. A linha de raciocínio no início
foi focar na necessidade atual de lidar com dados e informações em uma época denominada
como a era do conhecimento.
Percebemos que os sistemas de bancos de dados são partes relevantes em sistemas de
informação e daí partimos para compreender algumas definições como: SGBD, banco de dados,
entidades, tabelas, atributos e outras. O processo de construção também foi abordado. A
modelagem pelo projetista, depois a implantação pelo DBA e, por fim, o uso por
programadores e usuários finais, que são os marcos desse processo.
Uma breve apresentação da linguagem SQL para uma noção, nesse momento, de como os
dados são manuseados foi apresentada. Além disso simplificadamente vimos como um servidor
funciona internamente. Finalmente, concluímos esta unidade e espero que tenhamos
construído uma boa visão geral sobre bancos de dados!
Projeto
Vamos Praticar
Introdução
Bom, vamos começar mais uma trajetória, e se você é daqueles que gostam de analisar
cenários, avaliar e representar soluções com esquemas, esta unidade, que trata de Modelagem
de Dados, é do que precisa.
No início, daremos uma visão geral mais abrangente acerca de modelagem, e faremos uma
introdução sobre o assunto.
Depois, abordaremos a modelagem em si, com entidades e relacionamentos, cuja ênfase será
mais próxima do mundo real, com um cenário a resolver. No Modelo Relacional, o foco é
materializar a representação do mundo real em um banco de dados relacional, comumente
encontrado em nosso dia a dia.
No final, um assunto mais técnico de normalização dos dados será discutido para melhorar a
qualidade no trato das informações.
É isso, relaxe a mente, porque é hora de observar o mundo, modelar seus elementos, e
transformar nossa análise em um banco de dados!
Uma pergunta que podemos nos fazer é: por que modelar os dados?
Para compreender as vantagens de se criar um bom modelo de
dados, podemos nos inspirar em outras áreas, por exemplo, na
engenharia civil ou na engenharia elétrica/eletrônica. Um
engenheiro civil, diante do objetivo de construir um prédio, antes,
precisa criar as denominadas plantas, por exemplo, a planta baixa,
que apresenta a posição de paredes, portas e etc., e que serve de
suporte para as outras plantas, como a elétrica e a hidráulica. Na
engenharia elétrica ou eletrônica, antes de os dispositivos
eletrônicos serem construídos, precisam ser diagramados. As
Figuras 2.1 e 2.2 ilustram alguns desses “modelos”: uma planta baixa
e um circuito eletrônico:
pare e pense um pouco, olhando para um dos esquemas da Figura 2.1: o que
é mais fácil de compreender? Aquela Figura 2.1 em si ou um texto que
descreveria o projeto desta maneira: a sala é composta por 8 mesas
redondas à direita, 4 escrivaninhas à esquerda e um balcão de atendimento
próximo à porta de entrada”? É fácil percebermos que o diagrama
apresentará melhor essas informações, e ainda com uma série de outros
dados, como medidas da mesa, distância da janela, largura da porta etc. No
nosso caso, de trato com dados, o diagrama já expressa suas tabelas, os
campos e relacionamentos mais facilmente do que se tratados em texto.
Automatização do processo
Reflita
Existe um dito popular que diz que “uma figura vale mais do que
1000 palavras!”. Pare e pense em ocasiões, sejam do cotidiano ou
em áreas como Engenharia e Tecnologia de Informação, enumere
situações em que um esquema torna muito mais simples e intuitiva
a comunicação.
Cenário de Exemplo
Um primeiro exemplo
A melhor forma para aprender a modelar e a diagramar algo é
praticando. Depois de passados alguns conceitos, vamos refinar o
cenário de exemplo descrito nesta unidade para ser mais específico
com o trato de informações, e assim nos auxiliar nesta modelagem.
O texto é o seguinte:
Saiba mais
Para a modelagem de entidade e relacionamento, existe uma
ferramenta bastante usada, que é o BrModelo. O link,
disponibilizado a seguir, fala sobre esse projeto, como ele surgiu e
como a ferramenta pode ser utilizada.
A visão de como representar o cenário pode ter algumas variações
de projetista para a projetista. Uma primeira versão para expressar
o cenário descrito no texto está na Figura 2.6. Perceba que as
entidades identificadas foram Produtos, Clientes e Compras, e
dentre os atributos de Produtos, foram diagramados Código,
Descrição e Valor, e existem dois relacionamentos entre
ClientesCompras e entre Compras-Produtos. Outras especificações
podem ser vistas no próprio diagrama. Para efeito didático, algumas
questões do mundo real foram abstraídas, por exemplo, um
produto pode ter outras informações, como fotos, um Cliente pode
ter muitos outros dados associados, e assim por diante.
Reflita
Pense em três cenários de sistemas comuns em nosso dia a dia: uma
papelaria, uma padaria ou uma agenda no celular. Identifique as
entidades nesses sistemas, como se relacionam, e, caso seja
possível, esquematize de que modo você desenharia um modelo de
entidade e relacionamento.
Outras Características: Atributos e Cardinalidade
Modelagem relacional
Vamos relembrar aqui o que foi abordado: no modelo de entidade e
relacionamento, o foco é “estar mais próximo” do mundo real,
representando-o em uma perspectiva conceitual com
independência quanto à tecnologia que seria empregada. Por
exemplo, o mesmo modelo vale para implementar nos diversos
tipos de bancos de dados (hierárquico, rede e outros). Para tratar a
forma como as informações serão implementadas, efetivamente,
em um banco de dados, com tipos de dados, codificações, arquivos
e outras questões mais tecnológicas de implementação (e menos
conceituais), é necessário utilizar uma modelagem do nível Lógico e
Físico, e para bancos de dados relacionais utiliza-se o Modelo
Relacional.
Saiba mais
Além dos bancos de dados relacionais, existem outros, tais como os
históricos em rede e os hierárquicos. Existem os Bancos Orientados
a Objetos e, ultimamente, muito tem se falado sobre os bancos
NoSQL. Para saber mais, acesse o link.
Em termos práticos, neste momento, é feita uma conversão da
modelagem ER em uma modelagem relacional. Na verdade, será
muito comum encontrar equipes de desenvolvimento, que inicia o
trabalho com banco de dados com base no modelo relacional, já que
existe forte equivalência entre eles. E o que vai mesmo determinar
como as aplicações vão trabalhar com dados são as tabelas (ou
relações) no banco de dados. Para nós, que tivemos a compreensão
do MER antes, aprenderemos o Modelo Relacional justamente
fazendo uma equivalência do que foi representado no MER e sua
conversão para esse novo modelo. E, além disso, como nesse nível
lógico e físico, novos detalhes tecnológicos são tratados.
Aprenderemos também o que é necessário acrescentar no modelo.
Relações ou Tabelas
Saiba mais
Conheça algumas ferramentas que podem ser usadas para fazer
modelagem relacional, na prática. Duas que eventualmente serão
usadas no texto são o DBDesigner 4 e o MySQL Workbench.
Normalização
TELEFONE
COD
(FK)
1 996542331
1 997218765
1 998831245
2 322284129
2 344567881
4 987221015
4 987221015
1 João
2 Maria
4 Joana
1 10 07/04/2019 35,60
1 11 12/04/2019 35,60
2 12 25/03/2019 42,20
2 14 02/04/2019 28,50
4 19 19/03/2019 56,80
4 21 10/04/2019 62,90
Saiba mais
As consistências das informações em um banco de dados dependem
das regras estabelecidas no próprio banco de dados e das regras de
negócios que são implementadas de outra forma, via alguma lógica
ou procedimentos no próprio banco de dados ou, ainda, outras
camadas na arquitetura do software. O link disponibilizado a seguir
permite entender mais as regras de negócios e decisões de projetos
sobre esse assunto.
Conclusão
Projeto
Imagine que você foi destacado para ser o projetista de dados do cenário
de uma pizzaria na internet e precisa realizar a modelagem de dados. Uma
breve descrição do cenário seria: “o cardápio da pizzaria possui itens de
cardápio, que são as pizzas, bebidas e sobremesas, e cada item apresenta
um código para identificação, a descrição e o seu valor. Um cliente, ao
acessar o site, realiza seu cadastro com Nome, Endereço, Telefone e
outros, e daí pode fazer seu pedido. Ao pedir, ele adicionará os itens do
cardápio que deseja, indicará a quantidade e, ao final, faz o pagamento
via cartão de crédito. Diante do pedido, a pizzaria prepara a pizza e,
conforme passa pelos estágios de produção, o status do pedido é
modificado para o cliente acompanhar seu pedido”.
Essa é uma descrição simplificada, mas típica, que pode constar em uma
ata de reunião ou documento equivalente, e que permite que um
projetista de dados realize as tarefas de modelagem. São momentos
iniciais no processo de desenvolvimento do software.
Vamos Praticar
INTRODUÇÃO
1 Fabrício M 41 Salvador
3 Adriana F 30 Curitiba
Álgebra Relacional
Um banco de dados relacional tem este nome, pois, conforme
Elmasri (2011), relação é o bloco básico na qual este tipo de banco
de dados funciona. A álgebra relacional, conforme Puga (2013), é
uma linguagem formal de alto nível para expressar as operações
sobre tabelas, suas linhas e colunas. Ela engloba operações de
conjuntos por exemplo: união, interseção, produto cartesiano e
diferença de conjuntos; e operações chamadas relacionais de
projeção, seleção, junção e divisão.
σ idade<40 (CLIENTE)
Quando falamos de comandos no mundo da computação, é comum
estabelecermos a sintaxe, isto é, a regra com que um comando deve
ser escrito. Para este comando de seleção em álgebra relacional, a
sintaxe é a exposta a seguir e indica que o comando é escrito com o
símbolo σ seguido da condição e depois da relação a qual a operação
se aplica.
σ <condição> (<Relação>)
Combinação de operações
Nome Cidade
Adriana Curitiba
Outras operações
Saiba mais
A compreensão de Álgebra Relacional, neste texto, permite uma
introdução a sua forma de tratar relações ou tabelas e nos permite
perceber quais os fundamentos base da concepção da SQL. Na
prática cotidiana com banco de dados, uma boa competência com
SQL já é interessante, mas caso queira saber mais sobre Álgebra
Relacional, uma leitura mais aprofundada pode ser encontrada em
livros mais densos sobre bancos de dados, como o capítulo 3 de
Puga (2013) e o capítulo 6 de Elmasri (2011), que se encontram
disponíveis no link.
Saiba mais
Ferramentas administrativas para bancos de dados, como o
Workbench para o MySQL, em geral apresentam funcionalidades
comuns: visualizar os objetos no banco, criar consultas, ver
resultados. Caso você queira comprovar, analise alguma outra de
algum outro banco de sua preferência. Por exemplo, no SQL Server
existe o SQL Server Management Studio. Experimente observar
(não precisa instalar, apenas ler algo sobre a ferramenta), ler um
tutorial e veja se de fato apresentam funções análogas. Claro que
os bancos serão diferentes, existirão diferenças, mas perceba que
algumas tarefas são equivalentes. A propósito, se não se mobilizou
ainda, é uma boa hora para instalar o servidor e o Workbench. Para
saber mais, acesse o link disponível.
Neste momento, vale sinalizar que a sintaxe que será usada no texto
será baseada no banco MySQL, usado como exemplo no decorrer da
unidade. Cada banco de dados apresenta algumas variações em
torno de um padrão, o chamado padrão ANSI SQL. Por isso,
dependendo do SGBD que você usar, MySQL, ORACLE, SQL Server,
além de outros, vale conhecer o seu guia de referência dos
comandos para tratar de eventuais adaptações.
Reflita
Pare um pouco e pense. Você gosta de seguir padrões? Por que
você acha que o SQL teve sucesso em sua jornada? Definição de
padrões é uma estratégia importante em tecnologia e em outras
áreas também, porque permite melhor integração de diversos
fabricantes e tecnologia. Por exemplo, existem vários servidores de
bancos de dados, entretanto, se um profissional domina o SQL, o
esforço dele para se adaptar a algum servidor específico é menor,
uma vez que o servidor “obedece àquele padrão” que um conjunto
ou consórcio de empresas estabeleceu.
<Restrições>
)
Dados de exemplos
Para que possamos compreender o comando, vamos considerar a
tabela CLIENTE que apresenta os seguintes registros do Quadro 3.9.
CODIG O NOME CPF CONTAT DATA_NA SEX O BAIRRO
O SC
71
Adriana 011203899 1987-02-
1 9822134 F Barra
Araújo 21 03
55
Renato 11
982203799 1977-07- Morum
2 Nogueir 9333219 M
31 09 bi
a 99
11 Vila
Viviane 435173865 1995-11-
71
Marcela 992203772 1980-01-
4 9735144 F Barra
Campos 21 19
98
Rodrigo 21
721775899 1992-05-
5 Gonçalv 9861219 M Centro
91 10
es 42
11
Jorge 831446199 1990-06- Morum
6 9954398 M
Marinho 76 07 bi
12
71
Rodrigo 735204219 1985-08-
7 9723188 M Centro
Vieira 29 27
72
21
Vanessa 762110387 1972-02-
8 9332113 F Centro
Aquino 39 15
46
11 Vila
Fabiana 311603199 1985-04-
9 9332167 F Madale
Moreira 71 13
58 na
Maria 21
824103999 1999-07-
ão 57
Vale comentar que são dados de uma tabela simples, talvez em uma
situação real os dados podem ser bem mais complexos do que estes
e com uma estrutura diferente; talvez, em vez de tratar “Bairro”
como um VARCHAR, ele seria uma chave estrangeira para uma
tabela de bairros. O propósito, neste momento, é apenas ter alguns
dados para compreender as variações de comandos Select que
vamos estudar.
Exemplo:
CODIGO >= 10
Exemplo:
NOME LIKE ‘%Viviane%’
betweeen
Verifica se os valores estão entre um
limite inferior e um limite superior
Exemplo:
- Comentários:
- O ‘%’ indica “qualquer caractere
- Com apenas 'Viviane%', seriam consideradas as
linhas que começam com o nome Viviane
Resultado
NOME CONTATO
Quadro 3.14
- Comentários:
- Perceba que a data final foi tratada com hora para incluir os
clientes nascidos naquele dia de 31/12/1995
Resultado
Quadro 3.15
Operadores lógicos AND, OR e NOT
- Comentários:
- Perceba que no resultado a seguir os dois
campos apresentam valores que satisfazem a
condição.
Resultado
Adriana
F Barra Araújo
Marcela F Barra
Campos
Quadro 3.16
- Comentários:
- Perceba que no resultado a última linha (sexo = ‘F’) só foi
considerada porque a data de nascimento é inferior a
1980, uma das condições foi satisfeita.
- Por outro lado, perceba que Jorge Marinho nasceu em
1990 porém foi considerado por conta de ser do sexo
masculino, satisfez uma das condições.
- Já Renato foi considerado porque satisfez as duas
condições.
Resultado
Renato
1977-07-09 M
Nogueira
Rodrigo 1992-05-10 M
Gonçalves
Vanessa
1972-02-15 F
Aquino
Quadro 3.17
Ainda existe o operador NOT que recupera uma linha quando ela não
satisfaz certa condição, por exemplo, imagine que queiramos os
clientes que não moram na Barra. O Quadro 3.18 exemplifica este
caso.
- Comentários:
- Perceba que nenhum dos registros apresentam o
Bairro igual a Barra
- O filtro é equivalente a escrever WHERE BAIRRO <>
'Barra'
- Isto é, considerar linhas cujo bairro seja diferente
(NOT igual) a Barra
Resultado
Renato M Morumbi
Nogueira
Rodrigo M Centro
Gonçalves
Vanessa F Centro
Aquino
Maria F Centro
Conceição
Quadro 3.18
Inserção (INSERT)
No comando INSERT, para cada um dos campos da tabela, um
determinado valor deve ser estabelecido. O Quadro 3.19 mostra
alguns destes comandos que originaram as duas primeiras linhas de
nosso conjunto de dados na tabela de CLIENTE. Perceba que cada
campo é listado logo após o nome da tabela e, na cláusula VALUES,
cada valor é especificado obedecendo à ordem dos campos.
Exemplos de Comandos: INSERT
Alteração (UPDATE)
Para a alteração dos registros, naturalmente eles já devem estar
contidos nas tabelas. O comando precisa portanto de indicar quais
campos receber novos valores e em geral é especificado um filtro
(semelhante ao que foi visto no SELECT) para selecionar quais linhas
devem sofrer as alterações. O Quadro 3.21 mostra dois exemplos
de comandos UPDATE. Vale ressaltar que estes comandos de
UPDATE, assim como o de DELETE devem ser usados com cuidado
pois podem ocasionar perda de dados.
WHERE CODIGO = 10
Comentários
- Perceba que a coluna Bairro na linha 10 está com valor Nova Barra.
- Apenas o último exemplo foi processado para exemplificar os resultados a seguir.
UPDATE CLIENTE
SET BAIRRO = 'Nova Barra'
WHERE BAIRRO = 'Barra'
UPDATE CLIENTE
SET BAIRRO = 'Nova Barra'
Quadro 3.21 – Comando UPDATE
Dos exemplos, podemos perceber que a sintaxe do comando de
UPDATE pode ser resumida conforme o Quadro 3.22.
Exclusão (DELETE)
A exclusão dos dados ocorre com o comando DELETE e sua sintaxe
também deve apresentar um filtro que indica quais linhas devem ser
afetadas pela exclusão. O Quadro 3.23 apresenta alguns exemplos
de comandos de exclusão de registros.
CONCLUSÃO
Esta unidade abordou as habilidades necessárias para operar um banco de dados depois de ter
sido modelado.
De início, vimos como criar o banco de dados em si, refletindo as definições do modelo, além
de como os comandos DDL permitiam criar as tabelas com suas colunas, restrições,
características dos campos e outros.
A partir daí, o foco foi em como manipular os registros destas tabelas, se os registros estão
presentes, como recuperá-los com o comando SELECT. Caso precisem ser modificados, como
fazer inserções, alterações e exclusões com os comandos INSERT, UPDATE e DELETE,
respectivamente.
E tudo isso tentando mostrar exemplos. Esta parte prática com comandos SQL e seus
resultados é interessante ao aprender sobre banco de dados.
Espero que tenha aproveitado!
Projeto
Imagine que uma Loja Virtual possui seu sistema na Internet e você foi o
responsável por gerenciar o módulo de Cadastro dos Clientes. O
Projetista explicou a você que o modelo de dados dessa parte é
mostrado a seguir (Figura 1) e que você ficará responsável por manter os
dados e atender eventuais demandas por relatórios. Por exemplo,
quando o marketing precisar de uma lista de clientes para alguma
campanha, você será acionado para emitir essa lista junto ao banco de
dados.
Figura 1 - Modelo de Dados do Módulo de Clientes
Vamos Praticar
INTRODUÇÃO
Quando estamos estudando banco de dados, ao iniciar com consultas exploramos os recursos
do comando SELECT para os primeiros resultados que em geral já são interessantes.
Esta unidade visa evoluir a construção de consultas com recursos mais avançados associados a
este comando de SELECT. Serão vistos tópicos como junções, comandos para ordenação e
agrupamento dos dados, uso de funções de agregação como somatórios e contabilizações e
por fim como criar visões (views) para tornar mais fácil e prático a manipulação de consultas.
Todos estes recursos são bem úteis em tarefas cotidianas de produzir relatórios e atender
demandas de usuários que precisam extrair informação e conhecimento mais apurado a partir
do banco de dados.
Vamos em frente!
JUNÇÕES
Vamos analisar um exemplo que envolve uma loja virtual, com seus
dados de clientes, cidades e de compras. Parte do modelo está
exposto a seguir na Figura 4.1. Imagine que haja a necessidade de
saber quais clientes (Nome e Contato) com suas respectivas Cidades
(Dcr_Cidade) e que realizaram compras no mês de abril (campo
Data_Compra em Compras), talvez para fazer um contato e saber se
o cliente está satisfeito com a compra. Perceba que Nome e Contato
estão na tabela Cliente, a descrição da cidade está em Cidade e Data
e Valor estão na tabela de Compras. Fica então a questão, como
colocar estes dados juntos?
Saiba mais
Para aprofundar sobre o uso de junções, vale mencionar duas
dicas de leitura, um link para um artigo sobre os diversos tipos de
junção, simples, direto e prático. A outra dica é do livro de Puga
(2013), interessante também..
Subconsultas
Saiba mais
Existem várias formas de se criar consultas, com alguns outros
operadores. Para saber mais sobre subconsultas, o livro de Elmasri,
capítulo 5 sobre consultas complexas pode ser uma boa fonte e
para uma leitura mais prática, vale olhar também o link sugerido.
ORDENAÇÃO
Funções de Agregação
Função Descrição
Agrupamentos
Bom, para fixar a ideia, fica o convite para olhar os dados originais
(Figura 4.6) e conferir se os valores conferem. Perceba que lá,
“Rodrigo” realizou duas compras nos valores de R$57,80 e R$31,00 o
que confere com os resultados de 2 compras, num total de R$88,80
e com o maior valor de R$57,80.
Filtros em Agrupamentos (having)
Vale destacar que uma vez criada, a visão (view) funciona como
uma tabela e daí pode ser usada com todos os comandos vistos até
aqui, por exemplo, ela pode participar de visões, sofrer funções de
agregação, group_by, order by e outros comandos usados para
consultas via Select. Em alguns bancos são permitidas algumas
operações de manipulação (INSERT, UPDATE e DELETE) sobre views
porém com limitações.
Reflita
Nesta unidade tivemos contato com recursos que nos permitem
realizar consultas mais complexas sobre os dados, para extrair o
dado e compor informações mais refinadas para que estas ofereçam
melhor suporte à tomada de decisões nos negócios.
Isso tem sido cada vez mais usado, por exemplo, reflita sobre um
caso. Em seu dia a dia por exemplo, ao pesquisar por um livro em
uma livraria, como o site consegue sugerir outros livros relacionados
com sua pesquisa?
Daí vale a reflexão, qual a essência base nestas áreas? Parece ser
obter conhecimento sobre dados. E como estas áreas estão hoje e
para onde elas podem crescer! É uma boa visão para onde evoluir o
conhecimento desta unidade.
CONCLUSÃO
Vimos nesta unidade como sofisticar as consultas feitas com o comando SELECT. Estes recursos
junto com os mais básicos de filtros nas cláusulas WHERE e outros oferecem um leque bastante
interessante de comandos que atendem às mais variadas demandas por informação a partir
dos dados de um negócio.
Em se tratando de uma conclusão, vale comentar que estes comandos podem ser um ponto de
partida para o que hoje é chamada a área de Ciência de Dados. Os resultados dos comandos
aprendidos aqui já permitem boas primeiras análise e podem também servir de insumos para
análises mais sofisticadas, servir de entrada para algoritmos de aprendizagem de máquina e
inteligência artificial. Enfim, são os dados operacionais do negócio podendo sofrer análise em
diversos níveis de sofisticação para prover informações e conhecimento ao seus gestores.
São áreas bem interessantes caso pretenda evoluir neste assunto, espero que a dica seja útil!
Projeto
CONSULTAS AVANÇADAS COM SQL E SEU
SUPORTE PARA RELATÓRIOS
Vamos Praticar
Imagine que você foi destacado para dar suporte às demandas por
relatórios e outras informações para uma determinada diretoria.
Além disso, a equipe de marketing está em um projeto o qual
envolve aprendizagem de máquina, assim, para isso, requer, por
vezes, a extração de alguns dados para suas tarefas de mapeamento
de padrões sobre os clientes.