Escolar Documentos
Profissional Documentos
Cultura Documentos
Sumário
Capítulo 01 ..................................................................................................................................................................... 5
1. Introdução............................................................................................................................................................. 5
1.1. O que são Dados e Informação? ................................................................................................................ 5
1.2. O que é uma Base de dados? .................................................................................................................... 5
1.3. SGBD – Sistema de Gerenciamento de Banco de Dados.......................................................................... 6
1.3.1. Quem utiliza os bancos de dados? ................................................................................................... 7
1.3.2. Vantagens e desvantagens SGBDS ................................................................................................. 8
1.4. Modelagem de Dados ................................................................................................................................. 9
1.4.1. Tipos de Modelagem ....................................................................................................................... 10
Atividades: .................................................................................................................................................................... 12
Capítulo 2 ..................................................................................................................................................................... 14
2. Modelagem de Dados – Modelo Entidade-Relacionamento .............................................................................. 14
2.1. Entidade, Atributos e Relacionamentos .................................................................................................... 14
2.2. Tipos de atributos ..................................................................................................................................... 16
2.4. Tipos de Relacionamento ......................................................................................................................... 18
2.5. Cardinalidade (Mapeamento dos Relacionamentos) ................................................................................ 19
Atividades: .................................................................................................................................................................... 21
Capítulo 3 ..................................................................................................................................................................... 23
3. Modelo Relacional .............................................................................................................................................. 23
3.1. Chave Primária e Chave Estrangeira (PK e FK)....................................................................................... 24
3.2. Convertendo Modelo Entidade-Relacionamento em Relacional .............................................................. 24
3.3. Normalização ............................................................................................................................................ 27
3.3.1. Primeira forma normal (1FN) .......................................................................................................... 27
3.3.2. Segunda forma normal (2FN) ......................................................................................................... 28
3.3.3. Terceira forma normal (3FN) ........................................................................................................... 30
Atividades: .................................................................................................................................................................... 32
Capítulo 4 ..................................................................................................................................................................... 34
4. Implantação de banco de dados ........................................................................................................................ 34
4.1. Conhecendo a SQL .................................................................................................................................. 34
4.2. Primeiros comandos SQL (DDL) .............................................................................................................. 34
4.3. Inserção, Remoção e Atualização (DML) ................................................................................................. 37
4.4. Consulta de dados DQL............................................................................................................................ 38
4.4.1. Funções DQL .................................................................................................................................. 39
4.4.2. Cláusulas DQL ................................................................................................................................ 40
4.4.3. Consulta entre tabelas DQL ............................................................................................................ 41
Atividades: .................................................................................................................................................................... 44
REFERÊNCIAS ............................................................................................................................................................ 46
2
Palavras do professor-autor
3
Você sabia?
A nomenclatura dada ao profissional responsável por gerenciar uma base de dados é a
Database Administrator (DBA). Sua função é gerenciar, instalar, configurar, atualizar e monitorar
a base de dados nos seus respectivos Sistemas de Gerenciamento de Banco de Dados
(SGBDs), sempre visando à consistência, integridade, confiabilidade e segurança dos dados.
Hoje o mercado para DBAs está em expansão, sendo uma das áreas mais bem remuneradas do
mercado de tecnologia. Empresas como Oracle e Microsoft e outras que possuem SGBDs
emitem certificações específicas a fim de especializar profissionais DBAs em suas SGBDs. A
disciplina de Banco de Dados do Curso Técnico em Informática Subsequente pode ser o
pontapé inicial para você se tornar um DBA.
Vamos estudar?
4
Capítulo 01
1. Introdução
Atualmente, por menor e mais simples que possa ser um sistema de informação, ele
necessita ter a capacidade de armazenar e recuperar dados rapidamente. Para esta finalidade é
utilizado um sistema de banco de dados. É notório que os bancos de dados e os sistemas de
bancos de dados se tornaram componentes essenciais no dia a dia da sociedade. Podemos
observar esse fato no decorrer dos dias, a maioria das pessoas se deparam com atividades que
envolvem alguma interação com os bancos de dados. Alguns exemplos que podemos citar são
postagens em redes sociais, ida ao banco para efetuar um depósito ou retirar dinheiro, reservas
em hotel, compra de passagens aéreas, acesso ao catálogo de uma biblioteca informatizada
para consultar uma bibliografia, compra de produtos como livros, brinquedos ou computadores
por intermédio da internet – todas essas atividades envolvem programas de computadores que
acessam um banco de dados.
Para entender as funcionalidades dos bancos de dados, como modelos e ferramentas
disponíveis, bem como modelar, implementar uma base de dados e recuperar dados, é
necessário entender alguns conceitos básicos sobre o assunto, os quais veremos a seguir.
5
gavetas, cada gaveta contém alguma informação (como ficha de cadastro), que estão agrupadas
de acordo com seus respectivos tipos. O armário, no caso, é uma base de dados na qual
podemos inserir, excluir, selecionar ou alterar algum documento ali guardado.
Computacionalmente, as bases de dados geralmente são armazenadas em servidores
(computadores com grande capacidade de armazenamento), nos quais estão instalados os
Sistemas de Gerenciamento de Banco de Dados (SGBDs).
Figura 1.2 Funções do Sistema de Gerenciamento de Banco de Dados – SGBD/ Fonte: https://www.slideshare.net/
Hoje, no mercado, existem diversos SGBDs. Alguns exemplos são Oracle e Microsoft
SQLServer, que são SGBDs proprietários, ou seja, existe um custo para utilizá-los. Por outro
6
lado, o PostgreSQL e o MariaDB são exemplos de SGBDs open source, ou seja, de uso gratuito.
Veja a seguir a logo dos principais SGBDs do mercado:
Figura 1.2.1 Principais Sistemas de Gerenciamento de Banco de Dados – SGBD/ Fonte: http://coding-geek.com/how-databases-work/
7
Figura 1.3 Usuários do Banco de Dados/ Fonte: https://www.slideshare.net/
9
1.4.1. Tipos de Modelagem
10
4º - Modelo de Banco de Dados Orientado a Objetos: é baseado nas classes da
programação orientadas a objetos, os atributos são representados da mesma forma, com o
nome da classe seguido dos seus atributos.
11
Atividades:
1ª Qual a importância de um banco de dados para o mundo de hoje? Dê exemplo de um banco
de dados que você usa.
4ª O que é um SGBD?
12
9ª Quais são as fases da Modelagem de Dados?
13
Capítulo 2
14
elipse com o nome do atributo dentro dela e ligada à entidade por uma linha, conforme o
exemplo:
15
Figura 2.1.4 Relacionamento com atributo/ Fonte: Elaborado pelo autor
3º - Atributos multivalorados: são atributos que podem assumir mais de um valor, por
exemplo, o atributo telefone, uma pessoa pode possuir um ou mais números de telefone. Esse
tipo de atributo é representado por uma elipse com duas linhas em volta. Veja o exemplo a
seguir:
16
Figura 2.2.3 Atributo multivalorado/ Fonte: Elaborado pelo autor
4º - Atributos derivados: são atributos com relações entre si, por exemplo, data de
nascimento com idade de uma pessoa. Esse tipo de atributo é representado por uma elipse com
linha pontilhada. Veja o exemplo a seguir:
17
Figura 2.3.1 Entidade Fraca/ Fonte: Elaborado pelo autor
18
Figura 2.4.2 Relacionamento ternário/ Fonte: Elaborado pelo autor
2º um para muitos (1:n) – ocorre quando um objeto de uma entidade pode se relacionar
a vários objetos de outra entidade, mas o contrário não pode ocorrer. Imagine o homem com
dois filhos, um homem pode ter um ou mais filhos, mas um filho pode ter apenas um pai. Veja o
exemplo a seguir:
19
3º muitos para muitos (n:n) – ocorre quando um objeto de uma entidade pode se
relacionar com vários objetos da outra entidade e vice-versa. Imagine um professor, ele pode
lecionar várias disciplinas e uma disciplina pode ser lecionada por vários professores. Veja o
exemplo a seguir:
Figura 2.4.3 Cardinalidade muitos para muitos/ Fonte: Elaborado pelo autor
20
Atividades:
1ª O que é MER?
2ª O que é DER?
8ª O que é cardinalidade?
21
9ª Quais são os tipos de cardinalidades existentes?
22
Capítulo 3
3. Modelo Relacional
O modelo relacional é o modelo lógico, a partir deste modelo passamos a visualizar a
base de dados, como ele vai ficar ao implantarmos um SGBD.
Este modelo traz a representação dos dados como uma coleção de tabelas, na qual
cada linha representa uma coleção de relacionamento. Para descrever uma tabela no modelo
relacional, usamos o nome dos atributos entre parênteses, em que a chave primária (PK Primary
Key) é sublinhada e cada atributo apresenta seu tipo correspondente. Como exemplo, imagine o
cadastro de um estudante com os seguintes atributos (matrícula, nome, endereço e idade), sua
representação no modelo relacional ficaria da seguinte maneira:
O nome da tabela faz menção aos valores que serão armazenados em cada linha da
tabela. Todos os valores em uma coluna são do mesmo tipo. Veja a seguir um exemplo de
tabela relacional.
23
3.1. Chave Primária e Chave Estrangeira (PK e FK)
A chave primeira (PK) é a chave que identifica uma tupla ou registro, o valor dela deve
ser único, ou seja, em uma tabela a chave primária não pode possuir um valor duplicado.
Geralmente, as chaves primárias são códigos criados pelo analista de sistema ou um atributo
que tem o valor unitário para cada linha, como o CPF de uma pessoa, cada pessoa tem um
único CPF.
A chave estrangeira (FK Foreign Key) tem a função de fazer referência ao
relacionamento entre as tabelas. Uma chave estrangeira é um atributo que faz referência a uma
chave primária de outra tabela, em um autorrelacionamento a chave primária da mesma tabela
deve possuir o mesmo tipo. Imagine que no exemplo que vimos acima, com a tb_aluno, exista
outra tabela que identifique a turma na qual o aluno estuda, como no exemplo a seguir:
Figura 3.1.1 Modelo relacional com FK/ Fonte: Criado pelo autor
Observe que a tabela aluno recebeu o atributo código da turma da tabela, turma que é o
atributo-chave dessa tabela com um asterisco na frente para identificar qual atributo é a chave
estrangeira.
24
Figura 3.2.1 Diagrama Entidade-Relacionamento/ Fonte: Elaborado pelo autor
Os relacionamentos 1:n não geram nova tabela. No entanto, para que se possa manter
o relacionamento, cria-se uma chave estrangeira na entidade que possui a cardinalidade N. Para
o nosso exemplo, faremos a conversão da tabela de professores que possuem um
autorrelacionamento com o professor coordenador, ou seja, todos os professores têm um
professor coordenador, veja como fica:
25
Figura 3.2.2 Tabela Relacional Professor - Coordenador/ Fonte: Elaborado pelo autor
Os relacionamentos n:n entre duas entidades viram uma nova tabela. Essa nova tabela
vai possuir os atributos descritos no relacionamento, se tiver, e as chaves primárias das
entidades serão recebidas como estrangeiras, a junção das duas chaves se tornará a chave
primária dessa nova tabela. No exemplo acima, temos dois relacionamentos n:n, vamos criar a
tabela correspondente ao relacionamento professor leciona disciplinas, veja a seguir:
Figura 3.2.3 Tabela Relacional Professor – Disciplinas/ Fonte: Elaborado pelo autor
A próxima figura traz a conversão total do digrama entidade-relacionamento que utilizamos como
exemplo:
26
Se uma entidade possuir um valor multivalorado composto, por exemplo, o atributo
telefone (fixo, celular), cria-se uma tabela correspondente aos atributos e com a chave
estrangeira da entidade com a qual está relacionada.
Para entidades fracas no modelo ER, é criada uma tabela que possui todos os atributos
da entidade mais a chave primária da entidade com a qual a entidade fraca se relaciona.
3.3. Normalização
As normalizações dos bancos de dados são baseadas em um conjunto de regras que
têm como finalidade a organização de um projeto de banco de dados, visando diminuir
redundâncias de dados, aumento de integridade de dados e melhorias no desempenho. A
normalização requer um exame nas colunas (atributos) de uma entidade e nas relações entre
entidades (tabelas), com o objetivo de evitar anomalias observadas na inclusão, exclusão e
alteração de um registro.
A literatura apresenta seis formas normais, sendo elas a 1FN, 2FN, 3FN, FN boyce/cod,
que é uma forma normal aplicada a casos específicos que a 3FN não resolve, 4FN e 5FN. No
entanto, na maioria das bases de dados, a aplicação até a 3FN é suficiente. Por isso vamos
estudar aqui até a 3FN.
Figura 3.3.3 Tabela relacional, decompor atributos multivaloravel./ Fonte: Carvalho 2017
28
O que deve ser observado é a chave primária. No exemplo da figura acima
id_empregado tem relação com quem? Id_projeto tem relação com quem? Veja como fica essa
tabela na 2FN:
29
Figura 3.3.8 Tabela Relacional, Normalização 2FN/ Fonte: Carvalho 2017
Para normalizar essa tabela na 3FN, teremos que decompô-la em tabelas com FK, de
forma que em cada tabela nenhum atributo não chave dependa por transitividade da PK. Para
isso, devemos fazer como na figura a seguir:
30
Figura 3.3.10 Tabela Relacional, Normalização 3FN/ Fonte: Carvalho 2017
31
Atividades:
1ª O que é modelo relacional?
32
9ª Explique a segunda forma normal e dê um exemplo.
33
Capítulo 4
4. Implantação de Banco de Dados
A partir de agora, vamos passar os conhecimentos adquiridos para a implantação real de
banco de dados. Utilizaremos o SGBD MySQL, que atualmente é disponibilizado pela empresa
Oracle e possui inúmeros materiais de auxílio para estudo. O MySQL pode ser baixado pelo site
oficial <https://www.mysql.com/downloads/> ou ser utilizado por meio de um pacote com os
principais servidores de código aberto do mercado, como o WAMP e o XAMPP. Durante as
aulas, utilizaremos o XAMPP que pode ser encontrado em:
<https://www.apachefriends.org/download.html>.
Também utilizaremos o MySQL Workbench, que é uma fermenta que auxilia os DBAs e
desenvolvedores, pois possui um ambiente de ferramentas integrado para design e modelagem
de banco de dados, desenvolvimento SQL, administração de banco de dados, migração de
Banco de Dados, entre outros. Você pode encontrá-lo no seguinte endereço:
<https://www.mysql.com/products/workbench/>.
34
Database indica a criação de uma base de dados. Podemos colocar IF NOT EXISTS
para evitar erro, esse comando verifica se já existe uma base de dados com o nome que você
indicou, ficando da seguinte maneira:
CREATE DATABASE IF NOT EXISTS escola;
Com o comando CREATE também é possível criar tabelas. A sintaxe do comando para
a criação de tabelas é:
CREATE TABLE nome da tabela (atributos que a tabela receberá, mais sua chave
primária, e, se possuir, as chaves estrangeiras); ponto e vírgula para terminar. Veja o exemplo a
seguir
35
DATE — o valor referente a uma data no formato 'CCYY-MM-DD‖;
TIME — um valor horário no formato 'hh:mm:ss';
YEAR — armazena um ano no formato 'CCYY' ou 'YY';
Veja um exemplo de criação de tabela com chave estrangeira:
ALTER – este comando é para alteração de tabelas. Imagine que precisamos inserir o
campo matricula_professor na tabela professor, devemos utilizar o comando ALTER, como no
exemplo a seguir:
ALTER TABLE professor ADD (matricula_professor INT);
Para renomear uma coluna de uma tabela o comando fica da seguinte maneira:
ALTER TABLE endereco CHANGE rua logradora VARCHAR(20);
Observe que alteramos o atributo rua para logradora da tabela endereço. Agora vamos
renomear a tabela professor para funcionário. O comando fica da seguinte maneira:
36
ALTER TABLE professor RENAME TO funcionários;
Para excluir a coluna CEP da tabela endereço o comando fica da seguinte maneira:
ALTER TABLE endereco DROP COLUMN cep;
DROP – este comando é para excluir, ou seja, apagar tanto uma base de dados quanto
uma tabela. Para a exclusão da base de dados escola:
DROP DATABASE escola;
UPDATE – é o comando para atualização dos dados em uma determinada tabela. Sua
sintaxe é:
UPDATE nome_da_tabela SETA atributo = novo valor
WHERE condição;
37
Vamos ao exemplo: imagine que você precisa alterar o nome do professor Marcelo para
Marcelo R dos Santos, o comando ficaria da seguinte maneira:
UPDATE professor SET nome = 'Marcelo R dos Santos'
WHERE cpf = '999.999.999-99';
Se você utilizar o comando UPDATE sem a cláusula WHERE, toda a tabela receberá o
mesmo valor no atributo que você indicou.
DELETE – é o comando para remover uma tupla ou registro de uma determinada tabela.
Sua sintaxe é:
DELETE FROM nome_da_tabela WHERE condição;
Exemplo: para excluir o professor Marcelo da tabela professor, ficaria da seguinte
maneira:
DELETE FROM professor WHERE cpf = '999.999.999-10';
Se você utilizar o comando DELETE sem a cláusula WHERE toda a tabela será
apagada.
O * representa tudo. Para buscar somente os nomes dos professores, o comando fica da
seguinte maneira:
SELECT nome FROM professor;
Onde nome é o atributo da tabela professor. Para buscar nome e disciplina, o comando
fica da seguinte maneira:
SELECT nome, disciplina FROM professor;
38
Nome e disciplinas são os atributos da tabela professor. Para uma consulta restrita
utilizamos a cláusula WHERE. Por exemplo, para uma consulta do nome de todos os
professores que lecionam a matéria banco de dados, o comando ficaria da seguinte maneira:
SELECT nome FROM professor WHERE disciplina = ‗banco de dados‘;
Vamos ao exemplo, imagine que na tabela professor temos a carga horária de suas
disciplinas e queremos consultar os professores que possuem carga horária maior que 3.000 e
com disciplinas de banco de dados, o comando para essa pesquisa ficaria da seguinte maneira:
SELECT nome FROM professor WHERE carga_horaria > 3000
AND disciplina = ‗banco de dados‘;
39
MAX(): determina o maior valor de uma coluna. Sua sintaxe.
SELECT MAX(atributo) FROM nome da tabela;
HAVING – é utilizado em conjunto com resultados das funções agregadas. Sua sintaxe:
SELECT atributos FROM tabela GROUP BY atributo que será agrupado
HAVING função () mais condição;
ORDER BY - é utilizado para ordenar o resultado por uma ou mais colunas. Sua sintaxe:
SELECT atributos FROM tabela ORDER BY atributo que será ordenado;
Se a % vier após o valor passado, será retornado tudo o que começar com o valor. Se a
% vier no começo, por exemplo, %valor, será retornado tudo que terminar com o valor. Se o
40
valor estiver entre duas porcentagens (%), por exemplo, %valor%, serão retornados todos os
registros que contenham o valor.
Operador BETWEEN...AND.. – Esta condição retorna linhas baseadas em uma faixa de
valores. Sua sintaxe:
SELECT atributo FROM tabela
WHERE atributo BETWEEN valor1 AND valor1;
Operador LIMIT – permite definir o número de registros que deve ser retornado por
consulta. Sua sintaxe:
SELECT atributos FROM tabela LIMIT quantidade de registros;
Você pode consultar começando de um determinado valor, para isso o comando fica da
seguinte maneira:
SELECT atributos FROM tabela LIMIT quantidade de registro
OFFSET até o valor que quiser;
Sua sintaxe:
SELECT atributos FROM tabela A INNER JOIN tabela B
ON relação chave WHERE condição se tiver;
41
Figura 4.4.2 OUTER JOIN/ Fonte: Carvalho 2017
Sua sintaxe:
SELECT atributos FROM tabela A LEFT JOIN tabela B
ON relação chave WHERE condição se tiver;
Você pode construir um LEFT JOIN exclusivo também. Veja a seguir a representação
gráfica desse retorno:
3º RIGHT JOIN – retorna todos os registros da tabela à direita mais os dados de relação
da tabela à esquerda. Veja a seguir a representação gráfica desse retorno:
42
Figura 4.4.3 RIGHT JOIN/ Fonte: Carvalho 2017
Sua sintaxe:
SELECT atributos FROM tabela B RIGHT JOIN tabela A
ON relação chave WHERE condição se tiver;
Você pode construir um RIGHT JOIN exclusivo também. Veja a seguir a representação
gráfica desse retorno:
43
Atividades:
1ª Quais são os principais comandos SQL do agrupamento DDL?
2ª Qual o comando para criar uma base de dados com o nome de empresa?
5ª Dada a tabela pessoa com os atributos (CPF, nome, idade), crie uma SQL para inserir dados
nessa tabela.
44
9ª O que o LEFT JOIN faz? E como é sua sintaxe?
45
REFERÊNCIAS
ANGELOTTI, E. S. Banco de dados. Ed. Curitiba: Livro Técnico, 2010.
CARVALHO, E. Banco de dados – Machado MG: Instituto Federal do Sul de Minas Gerais –
Campus Machado/MG, 2017.
ELMASRI, R.; NAVATHE, S. B. Sistemas de Banco de Dados. Ed. São Paulo: Addison, 2005.
46
Currículo do professor-autor
Marcelo R. Santos. Graduado em Redes de Computadores pela Faculdade CESEP (Centro
Superior de Ensino e Pesquisa de Machado) – Machado /MG. Licenciando em Computação pelo
Instituto Federal do Sul de Minas Gerais – Campus Machado/MG. Atualmente, é Administrador
de Redes e Sistemas Computacionais da Cooperativa Regional de Produtores de Leite de
Serrania/MG, onde atua na criação e manutenção de serviços de redes, além da administração
dos bancos de dados.
47
48