Você está na página 1de 48

1

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

Seja bem-vindo, caro estudante!


É com imenso prazer que lhe recebo nesta disciplina, que tem como objetivo o estudo dos
conceitos fundamentais dos bancos de dados, a modelagem de dados e construção de
Diagramas de Entidade e Relacionamento, a criação de modelos relacionais, a normalização de
tabelas utilizando as regras de forma normal e a manipulação de um Sistema de Gerenciamento
de Banco de Dados (SGBD MySQL), realizando a inserção, atualização, deleção, alteração e
consulta de dados a partir da linguagem Structured Query Language (SQL). Gostaria de ressaltar
que os conhecimentos adquiridos nesta disciplina são essenciais para a formação do Técnico
Subsequente em Informática, pois os bancos de dados são componentes vitais para o
desenvolvimento de sistemas computacionais. Dedique-se aos estudos, com seu esforço, tenho
certeza de que você se tornará um profissional atuante e com grandes oportunidades. Conte
sempre com meu apoio para adquirir e aprimorar o seu conhecimento.

Sucesso nos seus estudos!


Prof. Marcelo R. dos Santos

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.

1.1. O que são Dados e Informação?


Os dados são fatos que podem ser gravados e possuem um significado implícito. O que
vem a ser isso? Imagine o seguinte exemplo: Para que você possa se inscrever no curso de
informática, é necessário preencher uma ficha de cadastros com seu nome, endereço,
documento de identidade, data de nascimento, entre outros. Cada atributo desses que citamos é
um dado. Os dados são tudo que podemos inferir ou coletar sobre uma situação específica.
A coleta de dados é útil para formar uma informação, ou seja, a informação e a junção
de dados. Por exemplo, tenho um dado identidade, mas não sei a quem pertence, para isso
preciso ter o dado nome – a junção de identidade e nome gera a informação de que determinada
identidade pertence a determinado nome.

1.2. O que é uma Base de dados?


Uma base de dados é o local ou espaço onde os dados estão armazenados e podemos
consultá-los, ou seja, recuperá-los. Vamos imaginar um armário de aço que possua várias

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. Base de Dados/ Fonte: Elaborado pelo autor

1.3. SGBD – Sistema de Gerenciamento de Banco de Dados


Até o momento vimos o que é um dado e o que é uma base de dados. Agora, vamos
falar sobre o Sistema de Gerenciamento de Bancos de Dados (SGBD), que é uma coleção de
programas que permite ao usuário definir, construir e manipular um Banco de Dados para as
mais diversas aplicações. O principal objetivo de um sistema de banco de dados é possibilitar
um ambiente que seja adequado e eficiente para uso na recuperação e armazenamento de
informações. Com o SGBD é possível criar uma base de dados, gerenciá-la e explorá-la por
meio da linguagem SQL, que ainda veremos.

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/

1.3.1. Quem utiliza os bancos de dados?


Os principais usuários de um banco de dados são os administradores do banco de
dados (DBA), analistas de sistemas, programadores e usuários finais.
 DBA: Responsável por monitorar e gerenciar todas as bases de dados criadas em
SGBD. Entre sua função está o controle de permissões dos usuários, a realização de backups, a
garantia de melhor desempenho, o monitoramento de serviços etc.
 Analista e programador: Responsáveis por modelar a base de dados e implementá-las
no SGBD. Entre suas funções está a de programar aplicações, como Sistemas de Escritórios,
que serão conectadas a uma base de dados. Esse usuário precisa ter o conhecimento em
modelagem de dados, programação e linguagem SQL.
 Usuário final: São os que vão de alguma forma trabalhar diretamente com as aplicações
desenvolvidas. Têm a função de alimentar a base de dados com informações, gerar relatórios
etc. Para eles, o banco de dados é transparente e só interessam as informações que estão
sendo salvas e podem ser recuperadas.

7
Figura 1.3 Usuários do Banco de Dados/ Fonte: https://www.slideshare.net/

1.3.2. Vantagens e desvantagens SGBDS

Existem vantagens na utilização de SGBDs e desvantagens que devem ser levadas em


consideração, por isso algumas vezes as microempresas, na sua fase inicial, não podem contar
com SGBD, principalmente por seus custos.
Algumas vantagens que podemos citar são:
 Rapidez com que você pode acessar suas informações em tempo real, sem ter que buscá-
las no arquivo de papel;
 Menos trabalho humano, não serão necessárias várias pessoas para controlar as
informações que entram e saem do arquivo;
 Controle, você pode controlar todas as milhões de informações de uma empresa facilmente
com um computador;
 Compartilhamento de dados, várias pessoas podem consultar determinadas informações de
uma empresa ao mesmo tempo e em diversos lugares do mundo;
 Segurança, as informações estão armazenadas e só podem ser vistas por quem o sistema
autoriza;
 Integridade, é muito mais fácil eu perder um papel do que uma informação dentro do SGBD.

Algumas desvantagens que podemos citar são:


 A complexidade de gerenciamento, dependendo do sistema você precisará de pessoas
qualificadas para trabalhar com ele;
 Custo, pessoas qualificadas para trabalhar com um sistema operacional complexo têm altos
salários;
 Tamanho do sistema, caso tenhamos um grande sistema, existe a possibilidade de acessos
não autorizados ou pode haver o comprometimento da integridade das informações;
8
 Velocidade, grandes sistemas acabam ficando lentos devido ao grande número de dados.

1.4. Modelagem de Dados

A modelagem de dados é a fase inicial do desenvolvimento de um projeto de banco de


dados, é quando realizamos a coleta de informações para a base de dados. Compreendem-se
as seguintes fases na modelagem:

Modelagem Conceitual – Tem por objetivo o desenvolvimento de um modelo inicial da


base de dados, que reflita as necessidades do usuário. Nessa fase a preocupação na
modelagem é com a descrição dos dados que serão armazenados e quais seus
relacionamentos. Em um modelo conceitual, é necessário entender o que o usuário final espera
que o sistema disponibilize a ele.
Por exemplo, imagine que você necessita criar um sistema que gerencie a matrícula de
alunos, você vai ter que descrever quais dados são necessários para o funcionamento desse
sistema. Assim, nesta fase, é necessária a realização de entrevista com os usuários para
entender as suas expectativas em relação ao que o sistema faz. Um dos principais tipos de
modelagem utilizado nesta fase é o Modelo Entidade-Relacionamento.
Modelagem Lógica – Esta fase compreende o processo de descrever como os dados
serão armazenados no sistema e como irão se relacionar. Isso significa transformar o modelo
conceitual obtido na fase anterior e transformá-lo em um modelo mais próximo da implantação.
Para essa fase, utiliza-se do Modelo Relacional.
Implantação – Uma vez realizadas as duas etapas anteriores, é hora de modelá-los em
uma SGBD. Para esta etapa, utiliza-se da Linguagem SQL

Figura 1.4 Fases da Modelagem de Dados/ Fonte: https://entendadeumavez.wordpress.com/2015/05/08/modelos-de-banco-de-dados/

9
1.4.1. Tipos de Modelagem

Existem diferentes tipos de modelagens:


1º - Modelo de Banco de Dados Hierárquico: este tipo de banco organiza os dados
como uma árvore, em que o registro tem um único pai ou ―raiz‖, com dois outros filhos ou irmãos.
Ele é conhecido como estrutura de árvore por sua aparência.

Figura 1.4.1 Modelo de Banco de Dados Hierárquico/ Fonte: http://www.culturamix.com

2º - Modelo Relacional: é o tipo de modelo mais comum, baseia-se em várias colunas


de informações e como essas colunas relacionam-se entre si. Como vimos no tópico 1.4, é o
modelo que representa a parte lógica.

Figura 1.4.2 Modelo Relacional/ Fonte: http://www.culturamix.com

3º - Modelo de Rede: é parecido com o modelo hierárquico, a diferença é que existem


vários pais, ou ―raiz‖, e vários filhos, ou irmãos, relacionados entre si.

Figura 1.4.3 Modelo de Rede/ Fonte: http://www.culturamix.com

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.

Figura 1.4.4 Modelo Orientado a Objeto/ Fonte: https://i.ytimg.com/vi/9xDn9z2YhC0/maxresdefault.jpg

5° - Modelo Entidade-Relacionamento: tudo é descrito como uma entidade, por


exemplo, uma pessoa, cidade, animal, entre outros, todos têm suas características específicas.
Além disso, tenta descrever como elas se relacionam no mundo real. Este modelo será estudado
mais a fundo no próximo capítulo.

Figura 1.4.5 Modelo Entidade-Relacionamento/ Fonte: https://arquivo.devmedia.com.br/

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.

2ª Diferencie Dado de Informação.

3ª O que é uma Base de Dados? Dê exemplos.

4ª O que é um SGBD?

5ª Cite ao menos três SGBDs existentes no mercado atualmente.

6ª Cite ao menos três vantagens e três desvantagens de se utilizar SGBDs.

7ª O que é Modelo Conceitual?

8ª O que é Modelo Lógico?

12
9ª Quais são as fases da Modelagem de Dados?

10ª Cite os tipos de Modelagem existentes.

13
Capítulo 2

2. Modelagem de Dados – Modelo Entidade-Relacionamento


Para começar a implementar um banco de dados é preciso primeiro modelar os dados
que a base de dados vai receber. Isso significa que devemos descrever quais dados devem ser
armazenados pela aplicação e quais desses dados se relacionam. Para essa finalidade
utilizaremos o Modelo Entidade-Relacionamento (MER), que é um modelo conceitual e tem o
objetivo de representar a visão mais próxima que o usuário tem da aplicação.
Para entender melhor, imagine o seguinte cenário. Uma escola precisa armazenar
informações sobre seus alunos, professores e disciplinas. A primeira coisa a se fazer é levantar
quais dados sobre alunos, professores e disciplinas a escola quer armazenar, ou seja, quais
atributos serão armazenados. Para professores, podemos armazenar o CPF, nome e um
identificador de matrícula; para as disciplinas, pode-se armazenar código da disciplina e um
nome; para alunos, pode-se armazenar nome, data de nascimento e matrícula. Esse
levantamento corresponde à abstração do cenário da base de dados a ser criada. Vamos
entender alguns conceitos de Diagrama Entidade-Relacionamento (DER) para criarmos um
diagrama que represente graficamente essa base de dados.

2.1. Entidade, Atributos e Relacionamentos


Entidade – uma entidade representa um conjunto de objetos do mesmo tipo do mundo
real e que se pretende armazenar. Por exemplo, no cenário que imaginamos acima, as
entidades serão os professores, alunos e disciplinas. Isso significa que cada entidade
armazenará um conjunto de objetos do mesmo tipo, portanto, dentro da entidade professor eu
posso ter uma coleção de professores, por exemplo, professor Marcelo, CPF 999.999.999 – 99,
matrícula 11154447856; professora Maria, CPF = 888.777.888 – 77, matrícula 12174447880,
entre outros. Graficamente, as entidades são representadas por um retângulo com o nome
dentro, conforme o exemplo a seguir:

Figura: 2.1 Entidades/ Fonte: Elaborado pelo autor

Atributos – os atributos são as características das entidades, ou seja, os dados que se


vai armazenar de cada entidade. Por exemplo, no cenário que imaginamos, os atributos de
disciplinas seria código da disciplina e nome. Um atributo é representado graficamente por uma

14
elipse com o nome do atributo dentro dela e ligada à entidade por uma linha, conforme o
exemplo:

Figura: 2.1.2 Entidades e atributos/ Fonte: Elaborado pelo autor

Relacionamento – o relacionamento é a associação entre as entidades. Ele é


representado por um losango com o nome do relacionamento. Geralmente, utiliza-se de um
verbo para informar o relacionamento de uma entidade com outra entidade. Para achar um nome
para o relacionamento você deve pensar o que uma entidade tem em relação com a outra
entidade? Por exemplo, o que professor faz com disciplina? A resposta pode ser ―leciona‖ ou
―ministra‖. O que o aluno tem em relação com a disciplina? A resposta pode ser ―estuda‖. Veja o
exemplo abaixo.

Figura: 2.1.3 Entidades, atributos e relacionamentos/ Fonte: Elaborado pelo autor

Um relacionamento também pode receber um atributo, isto quando se quer armazenar


um dado que não pertence nem a uma nem a outra entidade; por exemplo, imagine que seja
necessário guardar a data em que um professor está lecionando, pode-se adicionar um atributo
data_leciona no relacionamento leciona. Veja o exemplo.

15
Figura 2.1.4 Relacionamento com atributo/ Fonte: Elaborado pelo autor

2.2. Tipos de atributos


Os atributos que vimos acima são atributos simples; além desse tipo de atributo, existem
outros tipos de atributos que serão vistos agora.
1º - Atributos compostos: são atributos feitos de vários valores, por exemplo, endereço
de casa pode receber nome da rua, número, bairro e CEP. Veja o exemplo a seguir:

Figura 2.2.1 Atributo composto/ Fonte: Elaborado pelo autor

2º - Atributos monovalorados: possuem apenas um valor imutável, por exemplo, data


de nascimento de uma pessoa.

Figura 2.2.2 Atributo monovalorado/ 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:

Figura 2.2.4 Atributo derivado/ Fonte: Elaborado pelo autor

5º - Atributo-chave: é o atributo principal de uma entidade, o que identifica e determina


uma forma de abrir ou localizar dentro de uma entidade. Podem existir vários atributos-chaves.
Esse tipo de atributo é representado por uma elipse com linha sublinhando seu nome. Veja o
exemplo a seguir:

Figura 2.2.5 Atributo-chave/ Fonte: Elaborado pelo autor

2.3. Tipos de Entidades


Como vimos anteriormente, as entidades são objetos ou elementos que são
representados por meio de conjuntos, aqui veremos os tipos de entidades fortes e fracas.
Entidade Forte - tem como característica ser entidade independente de outras
entidades dentro de um sistema, elas existem por si mesmas. Como no exemplo que vimos
acima, a entidade professor não depende de aluno para existir.
Entidade Fraca – são entidades que dependem de outra entidade; além disso, são
entidades que podem ser substituídas por atributos. Imagine que o professor tenha filhos e estes
ainda não possuem documentos, para identificá-los podemos criar uma entidade fraca, a
entidade filho vai depender da entidade professor para existir. Para esse tipo de entidade, utiliza-
e de um retângulo com duas linhas para identificá-lo. Veja o exemplo a seguir:

17
Figura 2.3.1 Entidade Fraca/ Fonte: Elaborado pelo autor

2.4. Tipos de Relacionamento


Existem três tipos de relacionamentos: relacionamentos binários, relacionamento unário
ou autorrelacionamento e os relacionamentos ternários.
Os relacionamentos binários são os que possuem relação apenas entre duas entidades.
Os exemplos que vimos até aqui são todos binários.
Uma entidade pode possuir um autorrelacionamento ou relacionamento unário, por
exemplo, imagine um professor coordenador, como identificá-lo? Por meio de um
autorrelacionamento, como mostra a figura a seguir, em que um professor coordena uma
entidade de professores.

Figura 2.4.1 Autorrelacionamento/ Fonte: Elaborado pelo autor

Também existe o relacionamento ternário, em que um relacionamento pode ter relação


com três entidades. Esse é o máximo que as entidades podem possuir de relacionamento, não
sendo possível um relacionamento com 4 ou mais entidades. Veja o exemplo a seguir:

18
Figura 2.4.2 Relacionamento ternário/ Fonte: Elaborado pelo autor

2.5. Cardinalidade (Mapeamento dos Relacionamentos)


As cardinalidades ou mapeamento relacional expressam o número de objetos de uma
entidade à qual outra entidade pode ser associada. Para entender melhor, imagine as entidades
como conjuntos; para descobrir a cardinalidade você deve fazer a seguinte pergunta: se eu
pegar um objeto do conjunto de entidades A, a quantos objetos do conjunto de entidade B ele
pode se associar? Por exemplo, no exemplo da escola, o professor Marcelo pode lecionar para
quantos alunos? Um aluno pode ter quantos professores?
Existem três tipos de cardinalidades, são elas:
1º um para um (1:1) – ocorre quando um objeto de uma entidade pode se relacionar a
apenas um objeto de outra entidade ou vice-versa. Por exemplo, imagine o cadastro de um
homem e sua mulher, o homem pode ser casado com quantas mulheres? Apenas uma. Uma
mulher pode ser casada com quantos homens? Apenas um. Veja o exemplo a seguir:

Figura 2.4.1 Cardinalidade um para um/ 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:

Figura 2.4.2 Cardinalidade um para muitos/ Fonte: Elaborado pelo autor

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?

3ª O que é entidade, relacionamento e atributos?

4ª Quais são os símbolos que representam entidade, relacionamento e atributos?

5ª Quais são os tipos de atributos existentes?

6ª Como é representado o atributo-chave?

7ª O que é entidade fraca? Dê um exemplo:

8ª O que é cardinalidade?

21
9ª Quais são os tipos de cardinalidades existentes?

10ª Identifique as chaves primárias e crie as cardinalidades da Figura 2.1.3 da apostila.

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:

Figura 3.2 Modelo Relacional/ Fonte: Elaborado pelo autor

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.

Figura 3.2 Tabela Relacional/ Fonte: http://slideplayer.com.br

As linhas de uma relação são chamadas de TUPLAS ou REGISTROS.


Os cabeçalhos de cada coluna são ATRIBUTOS que serão armazenados.
Os conjuntos de valores de cada linha são chamados de DOMÍNIO.
Temos também NOME DA RELAÇÃO que identifica a tabela.
E por fim toda a tabela é uma RELAÇÃO.

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.

3.2. Convertendo Modelo Entidade-Relacionamento em Relacional


Agora que vimos como são os modelos relacionais, vamos à pratica para entender um
pouco mais deste modelo. Para isso, vamos converter um diagrama modelo entidade-
relacionamento da figura abaixo para o modelo relacional:

24
Figura 3.2.1 Diagrama Entidade-Relacionamento/ Fonte: Elaborado pelo autor

Para a criação de tabelas relacionais devemos observar as cardinalidades, começando


sempre pelas cardinalidades mais simples. No nosso exemplo acima, vamos começar pelas
entidades endereço e professor, pois possuem uma cardinalidade 1:1, em que as entidades se
tornam tabelas.
Os relacionamentos de cardinalidades 1:1 não geram nova tabela. A única coisa que se
deve fazer é adicionar uma chave estrangeira em uma das tabelas, como no exemplo a seguir:

Figura 3.2.2 Tabela Relacional Professor/Endereço/ 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:

Figura 3.2.4 Tabela Relacional/ Fonte: Elaborado pelo autor

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.

3.3.1. Primeira forma normal (1FN)


A primeira forma normal 1FN diz que toda relação deve ter uma chave primária e deve-
se garantir que todo atributo seja atômico. Isso significa que atributos compostos devem ser
separados e os atributos multivalorados devem ser discriminados separadamente ou separados
em outra relação. Veja os exemplos a seguir:

Figura 3.3.1 Tabela Relacional sem FN/ Fonte: Carvalho 2017

No exemplo da figura acima, o atributo endereço deve ser subdividido em seus


componentes: rua, número, bairro e o atributo multivalorado telefone poderia ser separado em
telefone residencial e telefone celular ou, ainda, ser convertido em outra relação que pudesse
representar um número indeterminado de telefones. Veja o exemplo a seguir:
27
Figura 3.3.2 Tabela relacional sem atributos compostos/ Fonte: Carvalho 2017

Figura 3.3.3 Tabela relacional, decompor atributos multivaloravel./ Fonte: Carvalho 2017

3.3.2. Segunda forma normal (2FN)


A segunda forma normal 2FN diz que toda relação deve estar na 1FN e devem-se
eliminar dependências funcionais parciais, ou seja, todo atributo não chave deve ser totalmente
dependente da chave primária. Veja o exemplo a seguir de uma tabela que não atende a 2FN:

Figura 3.3.5 Tabela relacional sem 2FN/ 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:

Figura 3.3.6 Tabela Relacional, Normalização 2FN/ Fonte: Carvalho 2017

Figura 3.3.7 Tabela Relacional, Normalização 2FN/ Fonte: Carvalho 2017

Ficando da seguinte maneira:

29
Figura 3.3.8 Tabela Relacional, Normalização 2FN/ Fonte: Carvalho 2017

3.3.3. Terceira forma normal (3FN)


A terceira forma normal 3FN diz que toda relação deve estar na 1FN e 2FN e devem-se
eliminar dependências funcionais transitivas, ou seja, todo atributo não chave deve ser
mutuamente independente. Veja a seguir o exemplo de uma tabela que não está na 3FN:

Figura 3.3.9 Tabela Relacional sem a 3FN/ 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

Essa tabela normalizada ficará da seguinte maneira:

Figura 3.3.11 Tabela Relacional, Normalização 3FN/ Fonte: Carvalho 2017

31
Atividades:
1ª O que é modelo relacional?

2ª O Que são TUPLAS ou REGISTROS?

3ª O que é uma chave estrangeira FK?

4ª O que é uma chave primária PK?

5ª No relacionamento n:n, como fica a criação de tabela?

6ª No relacionamento 1:1, como fica a criação de tabela?

7ª No relacionamento 1:n, como fica a criação de tabela?

8ª Explique a primeira forma normal e dê um exemplo.

32
9ª Explique a segunda forma normal e dê um exemplo.

10ª Explique a terceira 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/>.

4.1. Conhecendo a SQL


A SQL é uma linguagem de programação, que significa ―Structured Query Language‖,
em português ―Linguagem de Consulta Estrutural‖, trata-se de uma linguagem de gerenciamento
de Banco de Dados, que é utilizada nos principais bancos de dados do mundo, além de ser
baseada em modelo de relacionamento e entidade. Aprendendo essa linguagem, você poderá
aplicá-la em qualquer SGBD relacional do mercado.
A linguagem SQL possui agrupamentos de comandos que são divididos de acordo com
o tipo de operação a ser executada no banco de dados. Nesta apostila vamos estudar a DML
(Data Manipulation Language ou Linguagem de Manipulação de Dados), a DDL (Data Definition
Language ou Linguagem de Definição de Dados) e a DQL (Data Query Language ou Linguagem
para Consulta de Dados).

4.2. Primeiros comandos SQL (DDL)


A linguagem DDL (data definition language) é a linguagem de definição do banco, seus
principais comandos são CREATE, ALTER e DROP.
CREATE – com este comando é possível criar a base de dados e tabelas. Por exemplo,
para criar o banco de dados escola ficaria da seguinte maneira:
CREATE DATABASE escola;

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

CREATE TABLE professor (


cpf VARCHAR(11) NOT NULL,
nome VARCHAR(20) NOT NULL,
disciplina VARCHAR(255),

PRIMARY KEY (cpf)


);
NOT NULL indica que, ao inserir um dado nessa tabela, o campo que não poderá
receber valor nulo, ou seja, o campo acima, chamado nome, deverá receber o nome de uma
pessoa.
O VARCHAR é o tipo de variável que recebe caractere. Além desse tipo, também
possuímos outros tipos, alguns exemplos:
 SMALLINT — número inteiro pequeno;
 MEDIUMINT — número inteiro de tamanho médio;
 INT — número inteiro de tamanho comum;
 BIGINT — número inteiro de tamanho grande;
 DECIMAL — número decimal, de ponto fixo;
 FLOAT — número de ponto flutuante de precisão simples;
 DOUBLE — número de ponto flutuante de precisão dupla;
 BINARY — uma string binária de tamanho fixo;
 TEXT — uma string não binária e pequena;
 MEDIUMTEXT — uma string de tamanho comum e não binária;
 LONGTEXT — uma string não binária de tamanho grande;

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:

CREATE TABLE endereco (


código INT,
rua VARCHAR(20) NOT NULL,
número INT NOT NULL,
bairro VARCHAR(20),
cep VARCHAR(9),
cpf_professor VARCHAR(11) NOT NULL,

PRIMARY KEY (código),


FOREIGN KEY (cpf_professor) REFERENCES professor (cpf)
);
Observe que a variável cpf_professor vai receber o valor de CPF que está atribuído na
tabela professor.

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);

A cláusula ADD adiciona um novo campo. Para modificar o tamanho do campo


utilizamos a cláusula MODIFY, como o exemplo a seguir, que modificará o atributo rua da tabela
endereço.
ALTER TABLE endereco MODIFY rua VARCHAR(50);

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;

Para excluir uma tabela ficaria da seguinte maneira:


DROP TABLE endereco;

Outros comandos que podemos utilizar para administração do banco são:


SHOW DATABASE – Lista os bancos existentes no SGBD
SELECT DATABASE – Mostra o banco de dados que estamos utilizando
USE nome_da_base_dados – Seleciona o banco de dados para utilização
DESC nome_da_tabela – Visualiza a estrutura da tabela

4.3. Inserção, Remoção e Atualização (DML)


A Linguagem DML (Data Manipulation Language) é a linguagem de manipulação de
dados, seus principais comandos são: INSERT, UPDATE e DELETE.
INSERT – é o comando para inserir dados em uma determinada tabela. Sua sintaxe é:
INSERT INTO nome_da_tabela VALUES (valores dos atributos);
Por exemplo, para inserir dados na tabela professores, que possui os atributos CPF,
nome e disciplina, o comando ficaria da seguinte maneira:
INSERT INTO professor VALUES
('999.999.999-99', 'Marcelo', 'Banco de Dados');

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.

4.4. Consulta de dados DQL


A partir de agora, vamos realizar consulta utilizando os comandos da DQL, linguagem
para consulta de dados. Para começar, vamos aprender sobre as cláusulas:
 SELECT: quais atributos você deseja
 FROM: de qual tabela você quer buscar
 WHERE: restrições da busca
Considere a consulta na tabela professor dos exemplos anteriores. Para buscar todos os
atributos e todos os registros desta tabela, o comando ficará da seguinte maneira:
SELECT * FROM professor;

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‘;

Em WHERE é possível descrever uma expressão condicional (booleana) que identifica


as tuplas a serem recuperadas pela consulta. Veja na figura a seguir os operadores básicos.

Figura 4.3.1 Operadores Lógicos/ Fonte: Carvalho 2017

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‘;

4.4.1. Funções DQL


A linguagem DQL possui várias funções que ajudam na consulta de dados. Nesta
apostila veremos algumas delas.
COUNT(): conta o número de valores de uma coluna. Sua sintaxe.
SELECT COUNT(atributo) FROM nome da tabela;

SUM(): soma os valores de uma coluna de dados numéricos. Sua sintaxe:


SELECT SUM(atributo) FROM nome da tabela;

AVG(): calcula a média de uma coluna de dados numéricos. Sua sintaxe


SELECT AVG(atributo) FROM nome da tabela;

39
MAX(): determina o maior valor de uma coluna. Sua sintaxe.
SELECT MAX(atributo) FROM nome da tabela;

MIN(): determina o menor valor de uma coluna. Sua sintaxe.


SELECT MIN(atributo) FROM nome da tabela;

4.4.2. Cláusulas DQL


Nos textos anteriores vimos a cláusula WHERE para indicar uma condição de pesquisa,
mas a DQL possui outras cláusulas que podem facilitar na consulta de dados. Vamos a elas:
GROUP BY – agrupamento por um tipo de atributo. Sua sintaxe.
SELECT atributos FROM tabela GROUP BY atributo que será agrupado;

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;

Você pode ordenar por ordem decrescente, ficando da seguinte maneira:


SELECT atributos FROM tabela GROUP BY atributo DESC;

DISTINCT – é utilizado para evitar repetições no resultado. Sua sintaxe:


SELECT DISTINCT atributo FROM tabela;

Operador LIKE – permite condição de comparação em partes de uma string de


caracteres. Para isso, faz uso de dois caracteres reservados:
A % (porcentagem) deve ser usada para substituir um caractere ou grupo de caracteres,
não importando a sua natureza. O _ (sublinhado) combina com um único caractere, sua sintaxe
fica da seguinte maneira:
SELECT atributo FROM tabela WHERE atributo LIKE valor%;

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;

4.4.3. Consulta entre tabelas DQL


Para a realização de consulta entre tabelas utiliza-se da SQL de junção JOIN, que é
utilizada para unir relações. Existem quatro tipos de junção que veremos a seguir:
1º INNER JOIN – retorna os dados relacionados entre duas tabelas. Veja a seguir a
representação gráfica deste retorno:

Figura 4.4.1 INNER JOIN/ Fonte: Carvalho 2017

Sua sintaxe:
SELECT atributos FROM tabela A INNER JOIN tabela B
ON relação chave WHERE condição se tiver;

2º OUTER JOIN – retorna todos os registros de ambas as tabelas. Veja a seguir a


representação gráfica desse retorno:

41
Figura 4.4.2 OUTER JOIN/ Fonte: Carvalho 2017

Esse JOIN não é suportado no SGBD MySQL.

3° LEFT JOIN – retorna todos os registros da tabela à esquerda mais os dados de


relação da tabela à direita. Veja a seguir a representação gráfica desse retorno:

Figura 4.4.3 LEFT 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:

Figura 4.4.4 LEFT JOIN EXCLUDING/ Fonte: Carvalho 2017

SELECT atributos FROM tabela A LEFT JOIN tabela B


ON relação chave WHERE chave fk IS NULL;

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:

Figura 4.4.4 RIGHT JOIN EXCLUDING; Fonte: Carvalho 2017

SELECT atributos FROM tabela B RIGHT JOIN tabela A


ON relação chave WHERE chave fk IS NULL;

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?

3ª O comando (DROP DATABASE emprego) realizará o que?

4ª Quais são os principais comandos SQL do agrupamento DML?

5ª Dada a tabela pessoa com os atributos (CPF, nome, idade), crie uma SQL para inserir dados
nessa tabela.

6ª O que a cláusula WHERE faz?

7ª Qual é a função que conta as linhas de registro de uma tabela?

8ª O que o INNER JOIN faz? E como é sua sintaxe?

44
9ª O que o LEFT JOIN faz? E como é sua sintaxe?

10ª O que o RIGHT 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.

CHEN, P. Modelagem de Dados: a abordagem entidade-relacionamento para projeto lógico.


São Paulo: Ed. Makron Books, 1990.

COSTA, J. C. S. Apostila de Redes de Computadores, Banco de Dados. MEDIOTEC – REDE


ETEC 2018.

CONCEITOS Fundamentais de Banco de Dados. Disponível em:


<https://www.devmedia.com.br/conceitos-fundamentais-de-banco-de-dados/1649>. Acesso em:
21 jun. 2018

ELMASRI, R.; NAVATHE, S. B. Sistemas de Banco de Dados. Ed. São Paulo: Addison, 2005.

FRANCO, M. Sistemas de gerenciamento de banco de dados – São João da Boa Vista:


Instituto Federal de Educação, Ciência e Tecnologia de São Paulo, 2013. 96p.

GUIMARÃES, C. C. Fundamentos de Banco de Dados: modelagem, projeto e linguagem SQL.


Campinas: Unicamp, 2003.

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

Você também pode gostar