Prévia do material em texto
AULA LAB 01:
PRIMEIRA AULA DE LABORATÓRIO DE BANCO DE DADOS.
Introdução Teórica.
Nesta primeira aula iremos apenas entender a dinâmica das aulas, além de dar uma introdução de
como manipular um Software de Banco de Dados.
Vocês provavelmente já tiveram em aula de Teoria, uma explicação prévia do que é um Banco de
Dados.
B asicamente podemos dizer que:
"Um Banco de Dados é um Sistema em forma de Software que utilizamos para PERSISTIR
informações.
Persistir significa:
armazenar; (guardar)
recuperar; (buscar - visualizar)
Para uma Empresa, no Banco de Dados está contida a "História" dela, o segredo do seu sucesso ou
do seu fracasso, as compras e vendas diárias (o que, quanto, qual o valor), a movimentação
financeira, as contratações de pessoas e serviços (quem, quando), o "dia-a-dia", e por isso é um
trabalho que exige:
- Sigilo
- Confiabilidade tanto de Sistema quanto de Pessoal
- Agilidade de Sistema
Geralmente, um DBA (o profissional de Banco de Dados – o "Administrador de Banco de Dados"),
costuma ser um Funcionário da Empresa, sendo considerado um "Cargo de Confiança" já que ele,
em muitos caso, tem acesso a vários dados sigilosos da Empresa.
O Usuário comum é aquele que normalmente manipula as informações do Banco de Dados, sem se
preocupar com a estrutura que existe "por trás" daquele sistema, e que se mantém restrito às
informações que a ele são permitidos os acessos.
Para esta manipulação, em geral o Usuário se utiliza de Sistemas Externos criados em linguagens
diversas, como Python, Java, C#, PHP, etc., que acessam o Banco de Dados.
(sistemas criados por terceiros, geralmente)
No nosso caso (nesta aula de Lab. de BD) será diferente do usuário comum.
Vamos utilizar um Software que já é instalado junto com o nosso SGBD (Sistema Gerenciador de
Banco de Dados), desde que a instalação tenha sido "full" (completa).
No nosso caso:
O SGBD será = o "MySQL";
O Sistema (Software) será = o "MySQL Workbench"
Passos para o exercício em Laboratório:
Passo 1
- Acionamento do "MySQL Workbench" – clicar
sob o ícone (como mostrado ao lado) - "o
golfinho". Que geralmente fica no Desktop das
máquinas;
Passo 2
- Após abrir o MySQL Workbench, selecionar
(na tela que aparece), uma conexão (uma
Instância Local) do tipo "localhost".
Passo 3
- Normalmente após selecionar a conexão, é solicitada uma senha num Pop-Up com um campo de
senha que em geral na UNIP Paraíso é . "root")
(obs.: se não for essa, provavelmente deve ser "1234")
Após feita a conexão, uma tela (equivalente à uma das seguintes tela) deverá ser aberta:
Ou Essa:
Ou essa:
Passo 4
- Vamos acessar e visualizar quais as Bases de
Dados que já temos disponíveis em nosso
SGBD. Para isso, vamos clicar na aba de
Schemas (na parte inferior esquerda), que é
como o MySQL chama as Bases de Dados
criadas nele.
Passo 5
- Vamos verificar se a Base de RH está
disponível na listagem das nossas Bases de
Dados.
Se a Base de RH existir, deve-se executar os
passos 6 e 7 (abaixo).
Se a Base de RH não existir, então deve-se
PULAR PARA a execução do passo 8;
e DEPOIS seguir com a execução dos demais
passos (8, 9...etc.)
Passo 6
- Se a Base de RH existir, vamos excluí-la (eliminá-la), para que possamos depois criá-la
novamente, e então trabalharmos todos com as mesmas informações.
Para isso façamos:
- Clicar com o botão direito do mouse sobre a Base de RH (1) , e nas opções que aparecem
selecionar a opção "Drop Schema…" (2).
- Em seguida aparecerá uma tela de confirmação na qual devemos clicar sobre a opção:
" → Drop Now" :
Passo 7
- Agora, após realizado o passo 6, a Base de RH
foi eliminada do nosso SGBD, de forma que
podemos observar que ela não existe mais,
clicando sobre o ícone de "refresh" Na parte
superior direita da aba de navegação dos
Schemas.
(base de "rh" não aparece mais na lista)
- Vamos agora, gerar a Base de Dados de "RH" completa no nosso SGBD, rodando um Script (que
disponibilizei) já pronto para gerar toda a Base de RH, sua estrutura e seus dados (ou seja, seu
conteúdo estrutural e informativo).
Para isso façamos:
Passo 8
- Abrir, no Notepad++ o arquivo "Scripts_RH_Tabelas_Funcionarios_Etc.txt", que contém o script
SQL que gera toda a base de rh. Selecionar todo o texto contido neste arquivo, e copiar para a
"Área de Transferência do micro" (ctrl - C)
Passo 9
No MySQL Workbench, gerar uma nova "query-tab" clicando em:
- menu – "File" >> "New Query Tab"
Isto irá gerar no Workbench uma nova aba central de edição de códigos SQL (vazia).
Passo 10
Na nova aba de código SQL gerada no passo anterior (passo 9), colar (ctrl – V) o texto copiado do
arquivo txt, que havia sido aberto no Notepad++ (no passo 8).
Passo 11
Vamos rodar o script colado na nova aba de código SQL:
- para isso, deve-se clicar no ícone de acionamento ("que mostra apenas um raio amarelo").
, este ícone está disponível nas opções de ícones da aba de código SQL
- Percebam que ao rodar este script, aparecerá uma série de mensagens na aba de mensagens
("output") que fica na parte inferior da tela, todas com o símbolo verde (círculo verde com check)
significando que "o comando executado com sucesso".
Passo 12
A partir de agora (com o passo anterior - 11) temos gerada nossa base de RH no Sistema de Banco
de Dados (o My SQL).
Clique no ícone de refresh dos schemas para visualizar a base de rh criada (vide o Passo 7).
Neste momento vamos verificar se, o que fizemos até agora, foi realizado com sucesso.
No MySQL Workbench, gerar uma nova "query-tab" clicando em:
- menu – "File" >> "New Query Tab"
Nessa nova Query-Tab vamos digitar os seguintes comandos SQL:
use rh;
select * from funcionarios;
Se este comando for executado sem problemas, percebam então que aparecerá um quadro de tabela
(como mostrado abaixo) na tela de "saída":
Este quadro é uma representação (uma visão) das informações contidas na Tabela de Funcionários
da Base de RH.
Observação:
Este quadro (da imagem acima) não é a Tabela de funcionarios, mas sim uma visão da
representação dessa tabela, (criada para que possamos ver seu conteúdo), já que a Tabela é uma
entidade interna (invisível) de uma Base de Dados (a nossa Base de RH) sobre a qual podemos
manipular seu conteúdo.
Explicação sobre os comandos realizados acima:
use rh;
- este comando serve para deixar a base de "rh" em evidência, de modo que todo comando rezado
em seguida a ele, seja realizado nesta base (de "rh").
select * from funcionarios;
- este comando serve para gerar uma visualização do conteúdo da tabela de "funcionários" (Obs.: o
asterisco (*) deste comando, significa que queremos visualizar todas as colunas da tabela).
Exercício:
Gere (em novas QueryTabs) uma visualização do conteúdo das seguintes tabelas:
- cargos
- departamentos
Percebam a seguinte característica desta Base criada:
Na tabela de Funcionários, existe as seguintes colunas:
- departamento_id – que faz uma referência a um departamento cadastrado da Tabela de
Departamentos, de modo que para a linha de cadastro do funcionário "Lex De Haan" (nome e
sobre_nome), o id do departamento cadastrado é o id (90), e que por sua vez se refere (de acordo
com a tabela de departamentos) ao departamento "Executivo".
Com isso, responda:
Qual o nome do Departamento a que pertence o Funcionário "Sigal Tobias"?
- gerente_id – que determina quem é o gerente de cada um dos funcionários cadastrados na Tabela
de Funcionários.
O valor desta coluna, faz uma referência a um outro funcionário cadastrado na mesma Tabela de
Funcionários (já que um Gerente é também um Funcionário da Empresa).
Com isso, podemos observar que (por exemplo) na linha de cadastro do funcionário "Luis Popp", o
seu Gerente é o funcionário cadastrado com o id "108", que segundo a Tabela de Funcionários, é a
Funcionária "Nancy Greenberg".
Com isso, responda:
Quem é o (qual o nome do) Gerente do Funcionário "Sigal Tobias"?
E quem é o Gerente do Funcionário Steven King? (pense no que será que significa aresposta desta pergunta)
CONCLUSÃO
Podemos então entender que:
As colunas (cargo_id e departamento_id), da tabela de Funcionários, contém uma informação
fazendo referência a um Registro de uma outra Tabela .
A coluna (gerente_id), da tabela de Funcionários, contém uma informação que faz uma referência a
um outro Registro que pertence à mesma Tabela (de Funcionários)
Essa "referência" é uma informação que gera uma relação entre as tabelas facilitando a
manipulação e a geração de relatórios para o Gerenciamento das informações da Empresa.
Obs.: Chamamos essa referência entre Tabelas de "Relação", o que nos permite compreender que
este SGBD (o My SQL) é um...
Sistema Gerenciador de Bancos de Dados do tipo Relacional. (que permite uma relação entre as
suas Tabelas)
Obrigado!