Você está na página 1de 100

Curso Tcnico em Informtica

Banco de Dados I

Robson Braga de Andrade


Presidente da Confederao Nacional da Indstria

Rafael Lucchesi
Diretor do Departamento Nacional do SENAI

Regina Maria de Ftima Torres


Diretora de Operaes do Departamento Nacional do SENAI

Alcantaro Corra
Presidente da Federao da Indstria do Estado de Santa Catarina

Srgio Roberto Arruda


Diretor Regional do SENAI/SC

Antnio Jos Carradore


Diretor de Educao e Tecnologia do SENAI/SC

Marco Antnio Dociatti


Diretor de Desenvolvimento Organizacional do SENAI/SC

Confederao Nacional da Indstria


Servio Nacional de Aprendizagem Industrial

Curso Tcnico em Informtica

Banco de Dados I
Adriano Gonalves Polidoro

Florianpolis/SC
2011

proibida a reproduo total ou parcial deste material por qualquer meio ou sistema sem o prvio consentimento
do editor.

Autor
Adriano Gonalves Polidoro

Fotografias
Banco de Imagens SENAI/SC
http://www.sxc.hu/
http://office.microsoft.com/en-us/ images/
http://www.morguefile.com/
http://www.bancodemidia.cni.org.br/

Ficha catalogrfica elaborada por Luciana Effting CRB14/937 - Biblioteca do SENAI/SC Florianpolis

P766b

Polidoro, Adriano Gonalves


Banco de dados I / Adriano Gonalves Polidoro. Florianpolis :
SENAI/SC, 2011.
99p. : il. color; 28 cm.
Inclui bibliografias.
1. Banco de dados. 2. Organizao de arquivos (Computao). 3. Banco
de dados relacionais. 4. Explorao de dados. I. SENAI. Departamento
Regional de Santa Catarina. II. Ttulo.
CDU 004.65

SENAI/SC Servio Nacional de Aprendizagem Industrial


Rodovia Admar Gonzaga, 2.765 Itacorubi Florianpolis/SC
CEP: 88034-001
Fone: (48) 0800 48 12 12
www.sc.senai.br

Prefcio
Voc faz parte da maior instituio de educao profissional do estado.
Uma rede de Educao e Tecnologia, formada por 35 unidades conectadas e estrategicamente instaladas em todas as regies de Santa Catarina.
No SENAI, o conhecimento a mais realidade. A proximidade com as
necessidades da indstria, a infraestrutura de primeira linha e as aulas
tericas, e realmente prticas, so a essncia de um modelo de Educao
por Competncias que possibilita ao aluno adquirir conhecimentos, desenvolver habilidade e garantir seu espao no mercado de trabalho.
Com acesso livre a uma eficiente estrutura laboratorial, com o que existe
de mais moderno no mundo da tecnologia, voc est construindo o seu
futuro profissional em uma instituio que, desde 1954, se preocupa em
oferecer um modelo de educao atual e de qualidade.
Estruturado com o objetivo de atualizar constantemente os mtodos de
ensino-aprendizagem da instituio, o Programa Educao em Movimento promove a discusso, a reviso e o aprimoramento dos processos
de educao do SENAI. Buscando manter o alinhamento com as necessidades do mercado, ampliar as possibilidades do processo educacional,
oferecer recursos didticos de excelncia e consolidar o modelo de Educao por Competncias, em todos os seus cursos.
nesse contexto que este livro foi produzido e chega s suas mos.
Todos os materiais didticos do SENAI Santa Catarina so produes
colaborativas dos professores mais qualificados e experientes, e contam
com ambiente virtual, mini-aulas e apresentaes, muitas com animaes, tornando a aula mais interativa e atraente.
Mais de 1,6 milhes de alunos j escolheram o SENAI. Voc faz parte
deste universo. Seja bem-vindo e aproveite por completo a Indstria
do Conhecimento.

Sumrio
Contedo Formativo
Apresentao

9
11

14 Unidade de estudo 1
O que Banco de
Dados I?
15 Seo 1 - Definio de dado
x informao
15 Seo 2 - Definio de banco
de dados
16 Seo 3 - Exemplos de banco
de dados
17 Seo 4 -Utilizao e
benefcios

20 Unidade de estudo 2
Sistema Gerenciador
de Banco de Dados

26 Unidade de estudo 3
A Histria do Banco
de Dados
27 Seo 1 - Dcada de 1950
o incio
27 Seo 2 - Dcada de 1960
banco de dados hierrquico

36

Unidade de estudo 5
Modelo de
Entidade-Relacionamento

37 Seo 1 - O que modelo de


entidade-relacionamento
37 Seo 2 - Entidades

28 Seo 3 - Dcada de 1960


e incio de 1970 banco de
dados em rede

38 Seo 3 - Atributos

28 Seo 4 - Dcada de 1970


banco de dados relacionais
29 Seo 5 - Dcada de 1980
banco de dados orientados a
objetos

40 Seo 5 - Cardinalidade

29 Seo 6 - Dcada de 1990


bancos de dados objetos-relacionais
30 Seo 7 - Anos 2000 bancos de dados avanados

39 Seo 4 - Relacionamentos

44 Unidade de estudo 6
Projeto de Banco
de Dados
45 Seo 1 - O que um projeto?
45 Seo 2 - Projeto de banco
de dados

32 Unidade de estudo 4
21 Seo 1 - Definio
22 Seo 2 - Vantagens da utilizao de um SGBD
23 Seo 3 - Tipos de usurios
de um SGBD
24 Seo 4 - Quando no utilizar um SGBD
24 Seo 5 - SGBD x Sistemas
de arquivos

Conceitos de
Modelagem de
Dados
33 Seo 1 - O que modelagem de dados
33 Seo 2 - Modelagem conceitual
34 Seo 3 -Modelagem lgica
34 Seo 4 - Modelagem fsica

46 Unidade de estudo 7
Coleta de Requisitos
e Regras de Negcio
47 Seo 1 - Conceitos
47 Seo 2 - Como levantar
os requisitos e as regras de
negcios

48 Unidade de estudo 8

60 Unidade de estudo 10

Modelagem Conceitual Baseada no MER

Modelagem Fsica Baseada no DER Lgico

49 Seo 1 - Definindo as entidades

61 Seo 1 - Construindo um
modelo fsico

49 Seo 2 - Definindo os relacionamentos

61 Seo 2 - Estudos e tabelas

50 Seo 3 - Definindo as cardinalidades


52 Seo 4 - Contextualizao

62 Seo 3 - Estudo e caracterizao dos atributos


64 Seo 4 - Sugestes para
uma boa confeco do DER
fsico

54 Unidade de estudo 9
Modelagem Lgica
Baseada no DER
Conceitual
55 Seo 1 - Construindo um
modelo lgico
55 Seo 2 - Mapeamento das
entidades, relacionamentos,
cardinalidade e atributos
57 Seo 3 - Atributos de chave
primria
58 Seo 4 - Atributos de chave
estrangeira

66 Unidade de estudo 11
Banco de Dados
MySQL
67 Seo 1 - O que MySQL
67 Seo 2 - O aplicativo
EasYPHP
68

Seo 3 - O funcionamento
do MySQL

69 Seo 4 - Pormenores

70 Unidade de estudo 12
Utilizao de Ferramenta case MySQL
Workbench
71 Seo 1 - Utilidade de uma
ferramenta case
71 Seo 2 - MySQL Workbench
72 Seo 3 - Criando o modelo
fsico (estrutura)
74 Seo 4 - Inserindo os dados
75 Seo 5 - Criando o banco de
dados MYSQL
76 Seo 6 - Sincronizando o
DER com o banco de dados
MySQL

80 Unidade de estudo 13
SQL
81 Seo 1 - O que SQL
81 Seo 2 - Breve histrico
81 Seo 3 - O funcionamento
81 Seo 4 - DDL
83 Seo 5 - DML
85 Seo 6 - DCL
86 Seo 7 - Vantagens na utilizao do SQL

Sumrio
88 Unidade de estudo 14

96 Unidade de estudo 16

Transaes de Banco
de Dados
89 Seo 1 - Conceitos
89 Seo 2 - Na prtica
90 Seo 3 - Controle transacional

92 Unidade de estudo 15
Elementos Complementares Normalizao e Integridade
Referencial

Arquiteturas de Bancos de Dados


97 Seo 1 - Sistemas de computadores pessoais
97

Seo 2 - Plataformas centralizadas

98

Seo 3 - Sistemas cliente-servidor

98

Seo 4 - Sistemas Distribudos

100 Unidade de estudo 17


Tpicos Especiais
Ferramentas de
Suporte Deciso

93 Seo 1 - Normalizao
93 Seo 2 - Integridade referencial

101 Seo 1 - Data warehouse


101 Seo 2 - Business
Intelligence
101 Seo 3 - Data Minning
102 Seo 4 - Utilizao

Finalizando

105

Referncias

107

10

CURSOS TCNICOS SENAI

Contedo Formativo
Carga horria da dedicao
Carga horria: 30 horas

Competncias
Aplicar as normas de qualidade no desenvolvimento de sistemas computacionais.

Conhecimentos
Acessibilidade;
adaptabilidade;
clareza;
coerncia;
compatibilidade;
conceito de qualidade;
conforto;
direitos autorais/propriedade intelectual;
ergonomia;
expressividade;
flexibilidade;
interatividade;
normas de qualidade de software;
obedincia;
portabilidade;
qualidade de software;
sistemas da qualidade;
usabilidade.

Habilidades
Identificar critrios de usabilidade e qualidade no desenvolvimento de softwares;
Utilizar normas de ergonomia;
Utilizar normas de qualidade de software;
Aplicar princpios de acessibilidade.

BANCO DE DADOS I

11

Atitudes
Organizao e zelo na utilizao de equipamentos;
Foco no contedo trabalhado;
Acesso a sites relacionados ao tema trabalhado;
Organizao e limpeza dos ambientes coletivos;
Dedicao e empenho nas atividades curriculares e extracurriculares;
Capacidade de abstrao;
Trabalho em equipe;
Apresentao de novas solues para situaes-problemas;
Cumprimento de prazos;
Anlise crtica de suas produes.

12

CURSOS TCNICOS SENAI

Apresentao
Seja bem-vindo unidade curricular Banco de Dados I!
Esta unidade curricular est voltada ao entendimento, planejamento
e pr-requisitos para uma boa implementao de um banco de dados,
competncias que esto diretamente relacionadas sua profisso.
possvel que voc esteja se perguntando: Por que eu preciso estudar
e entender os bancos de dados? A resposta muito simples: a maioria das atividades que voc desempenhar como tcnico de informtica
remete-se a banco de dados. Afinal, todos os dados produzidos pelos
sistemas de uma empresa precisam ser armazenados organizadamente
em algum lugar, e esse lugar o banco de dados.
Se voc no possui nenhum conhecimento em bancos de dados, no se
preocupe, este material contm os ensinamentos bsicos para modelar
e criar um banco de dados e contribuir para que voc entenda esse
conceito e desenvolva as habilidades necessrias para se preparar para o
mercado de trabalho.
Esta unidade curricular contempla ainda a explanao das arquiteturas
de armazenamento de dados, a extrao de informaes para desenvolver conhecimentos para tomada de decises e a demonstrao dos
comandos triviais para iniciar a confeco de um banco de dados.

Adriano Gonalves
Polidoro
graduado em Sistemas de Informao (FURB) e atua h nove
anos na rea de Tecnologia de
Informao. Possui experincia
em docncia no SENAI de Itaja/
SC e em empresas de grande
porte, como Seara Alimentos,
Cargill S. A. e Bunge Alimentos.
Atualmente analista de tecnologia na Tigre S. A. Tubos e
Conexes, em especial na anlise de projetos de segurana da
informao. Tambm leciona
no SENAI de Joinville/SC. certificado pelo ITIL Foundation
pela Exin, e em 2010 recebeu
o prmio Security Leaders, promovido pela revista Risk Report,
com o case de Segurana da Informao de maior sucesso em
sua respectiva categoria.

Vale lembrar que este livro acompanha um caderno de exerccios que


devem ser feitos ao final de cada unidade para aprimorar seu aprendizado. Pronto para comear os estudos? Ento, mos obra!

BANCO DE DADOS I

13

Unidade de
estudo 1
Sees de estudo
Seo 1 Definio de dado x informao
Seo 2 Definio de banco de dados
Seo 3 Exemplos de banco de dados
Seo 4 Utilizao e benefcios

O que um Banco de dados?

SEO 1

Definio de dado x
informao
Antes de avanar sobre quaisquer
conceitos especficos sobre banco de dados, preciso entender o
que dado e o que informao.
Imagine que voc escreva o nmero dez em um papel ou no
computador. Esse nmero, sozinho, nada representa para quem
o l, assim como uma palavra
qualquer, por exemplo, roda,
ou at mesmo uma frase em lngua desconhecida. Tudo isso so
considerados dados, pois no trazem consigo nenhum significado
real. A informao, por sua vez,
carrega um significado que pode
ser compreendido facilmente: por
exemplo, as frases Isto custa R$
10,00 e Esta roda do meu
carro so consideradas informaes, pois trazem consigo um significado real.
Conforme Abreu e Machado
(2004), a informao deve ser encarada como um bem patrimonial
de uma empresa, como um prdio,
mquinas, mesas, entre outros. A
informao deve ser utilizada de
maneira estratgica pelos colaboradores da empresa e armazenadas em locais seguros e confiveis,
como um banco de dados. J Silva
(2001) vai mais longe, afirmando
que a informao mais importante do que quaisquer mquinas,
influenciando diretamente todo
nosso cotidiano.

Adicionalmente, alguns autores citam os conceitos de conhecimento,


que representa o entendimento do significado daquela informao, e
o conceito de sabedoria, que representa a competncia necessria para
produzir ganhos com o respectivo conhecimento.
Agora, prepare-se para conhecer banco de dados!

SEO 2

Definio de banco de dados


Como o prprio nome j diz, banco de dados um conjunto de dados
quaisquer, armazenados de maneira organizada, de onde podem ser extrados a qualquer momento para trazer informaes a quem de direito.
Um banco de dados apenas trata dados, nunca informaes. As informaes so vistas pelos usurios por meio de consulta aos dados
armazenados, sendo que a unio desses dados extrados que apresenta a respectiva informao aos usurios.

Os bancos de dados tm o intuito de manter organizadas as informaes de uma empresa, organizao ou pessoa. Eles so utilizados para
armazenar ordenadamente todos os tipos de dados possveis e, com a
ajuda de um sistema de informao, extrair informaes de acordo com
as necessidades. So projetados para uma necessidade especfica e representam o mundo real, refletindo suas alteraes. Por exemplo, se um
supermercado utiliza um banco de dados para armazenar informaes
sobre seus produtos, inclusive preos, em uma situao real de aumento
de preo, necessrio que uma atualizao seja feita no banco de dados
para refletir a situao real.
Adicionalmente, importante saber que todo banco de dados acessado
por usurios que possuem privilgios especficos para tal, sendo que
necessria a utilizao de um nome de usurio e uma senha para executar
o acesso.

BANCO DE DADOS I

15

SEO 3

Exemplos de banco de dados


A seguir, so mostrados alguns exemplos de uso comum dos bancos de dados
que no so virtuais, ou seja, no usam a tecnologia para armazenar dados:

Figura 1: Exemplos de bancos de dados no computacionais

Voc pode ter utilizado poucas vezes alguns desses itens, que nem por
isso deixam de ser bancos de dados, j que representam dados agrupados de maneira organizada de onde podem ser extrados a qualquer
momento em formato de informaes.
Os bancos de dados utilizados na informtica so similares a esses, porm so computacionais. Eles so utilizados, geralmente, por empresas
que desejam que suas informaes fiquem ordenadas e protegidas, sendo armazenadas em forma de dados agrupados que podem ser extrados, modificados, incrementados e recuperados a qualquer momento
com a ajuda de sistemas.
Vrios so os bancos de dados do meio computacional atualmente existentes. Veja os mais utilizados:

Figura 2: Exemplos de bancos de dados computacionais


16

CURSOS TCNICOS SENAI

SEO 4

Utilizao e benefcios
Percebe-se que fica cada dia mais difcil escapar da quantidade de informaes geradas e disponibilizadas nos mais variados meios de comunicao, principalmente nos virtuais, que utilizam a tecnologia para se
manter: internet, sistemas integradores, televiso, entre outros. Nessa
linha, inadmissvel para uma empresa com grande volume de transaes utilizar papis, arquiveiros ou quaisquer outros mtodos sem
um banco de dados computacional para controlar seus negcios. Essa
prtica seria invivel, tamanho o volume e a velocidade em que as informaes percorrem atualmente. Por esse motivo, voc se depara com
bancos de dados em todo lugar, mesmo indiretamente.

Transao uma unidade de execuo de programa


que acessa e possivelmente
atualiza alguns dados (KORTH; SILVERSCHATZ; SUDARSHAN, 1999). Voc ver mais
sobre transaes na unidade 14.

Figura 3: Exemplos de lugares onde encontram-se bancos de dados

Os sistemas dessas empresas devem ser bem confeccionados, utilizando


um banco de dados estruturado para auxiliar na organizao dos dados,
tornando possvel sua extrao em forma de informaes consistentes
que daro suporte tomada de decises da empresa.
A extrao dos dados e sua visualizao em forma de informaes estruturadas no o nico benefcio da utilizao de um banco de dados.
Ele permite tambm que voc faa acessos mltiplos s informaes,
atualizao, excluso e incluso de dados, garantindo sempre sua consistncia e solidez, permitindo backup e recuperao, caso seja necessrio.
Um banco de dados, geralmente, acessado, manipulado e gerenciado
por meio de um sistema gerenciador de banco de dados, e este ser o
assunto da prxima unidade. At l!

BANCO DE DADOS I

17

Unidade de
estudo 2
Sees de estudo
Seo 1 Definio
Seo 2 Vantagens da utilizao de um SGBD
Seo 3 Tipos de usurios de um SGBD
Seo 4 Quando no utilizar um SGBD
Seo 5 SGBD x sistemas de arquivos

Sistema Gerenciador de Banco


de Dados
SEO 1
Definio

Um sistema gerenciador de banco de dados (SGBD) nada mais do que


um conjunto de softwares que gerencia os dados presentes nos bancos de
dados. Ele permite criar o banco e responsvel por mant-lo, proporcionando flexibilidade, segurana, recuperao e integridade.
Canto, Medeiros e Valdo (1997, p. 2) definem SGBD como [...] um programa de computador especializado em armazenar e manter diferentes
bancos de dados.

Figura 4: Composio de um sistema de acesso a um banco de dados por meio do


SGBD

Um banco de dados no precisa ter, necessariamente, um SGBD ativo


para estar em operao, porm a no utilizao de um SGBD pode resultar em srios problemas, como erros nas informaes apresentadas e,
inclusive, perda de dados importantes da empresa, j que no h controle sobre as informaes ali inseridas. As vantagens da utilizao de um
SGBD para a maioria das empresas superam quaisquer custos ou tempo
de implementao.

BANCO DE DADOS I

19

SEO 2

Vantagens da utilizao de um SGBD

Exemplo: gravao dos dados


de faturamento de uma empresa:

Acompanhe agora um detalhamento sobre algumas das vantagens da


utilizao de um SGBD em conjunto com um banco de dados.

Nome da empresa: JC
representaes Ltda.
Faturamento anual: R$
800.000,00

Segurana
O SGBD responsvel pela definio de quem acessar determinada
informao dentro do banco de dados. Alm disso, gerencia esse acesso,
permitindo apenas aes de usurios dos quais ele possui autorizao.
Por exemplo: uma pessoa da rea comercial no pode visualizar dados
da folha de pagamento de sua empresa. J uma pessoa da rea de recursos humanos pode. Seguindo o mesmo exemplo, entendvel que a
maioria das pessoas da rea de recursos humanos pode visualizar, mas
nem todas podem alterar os dados da folha de pagamento da empresa.
nessa hora que o SGBD entra em ao novamente, permitindo ou no
a insero, atualizao ou excluso de dados.

Recuperao
Recursos como backup e recuperao de dados compem o SGBD.
Isso permite que as informaes armazenadas no banco de dados sejam recuperadas em caso de falhas nos aplicativos ou at mesmo de hardwares.

Por exemplo: se um usurio est realizando uma transao nas informaes da rea financeira no banco de dados com auxlio de um software e
esse software interrompido no meio do processamento por algum motivo, seja por problemas fsicos no servidor ou at mesmo por problemas
de sistemas operacionais, o SGBD tem a responsabilidade de restaurar a
base de dados em um estado anterior a essa falha ou, at mesmo, solicitar automaticamente que a transao seja reiniciada do exato ponto onde
parou. Isso permite que as informaes da rea financeira no sejam
corrompidas ou tornem-se no confiveis.
Essa recuperao possvel graas ao sistema de gravao utilizado pelo
SGBD, que grava as transaes na memria e somente depois as repassa
para o disco, produzindo inclusive maior velocidade de gravao, j que
o acesso memria mais rpido que o acesso ao disco rgido. Um log
utilizado para gravar todas as alteraes feitas enquanto as transaes esto sendo gravadas na memria e em casos de acontecimento das falhas
descritas anteriormente. Esse log utilizado, ento, pelo SGBD para que
seja possvel retornar a uma situao prvia falha.

Integridade
Para cada dado gravado no banco de dados, gravado outro dado relacionado, que pode ser em formato texto ou nmero.
Conforme j visto, um dos intuitos da utilizao dos bancos de dados
favorecer a organizao dos dados. Para que isso seja possvel, o SGBD
possui uma funcionalidade que permite que as informaes fiquem sempre organizadas e ntegras, e realiza isso da seguinte forma:

20

CURSOS TCNICOS SENAI

Quantidade de funcionrios: 38
Quantidade de filiais: 2

Todos esses dados fazem parte do


mesmo conjunto de informaes:
as informaes da empresa JC
Representaes Ltda. Em caso de
excluso de alguns desses dados,
a informao sobre a respectiva
empresa ficaria incompleta. Faria
sentido possuir todas as informaes da empresa, com exceo de
seu nome? Veja mais claramente
no exemplo abaixo:

Faturamento anual: R$
800.000,00
Quantidade de funcionrios:

38

Quantidade de filiais: 2
Embora voc saiba o que significam essas informaes, elas
no tm importncia se voc no
puder associ-las a uma empresa.
Nesse caso, no que lhe auxiliaria
possuir essas trs informaes
descritas?
O SGBD trabalha de uma forma
especfica com o intuito de manter dados ntegros, no permitindo a excluso da informao
Nome da Empresa se houver
dados sobre ela em qualquer outra
parte do banco.

Acessos simultneos ou concorrentes


Imagine que, em uma empresa que conta com uma rea contbil de cerca
de cinco funcionrios, ao incio do ms, deseja-se ver o balano mensal
do ms anterior. comum que mais de uma pessoa tenha interesse em
fazer essa consulta, e duas dessas pessoas tentam acessar a informao
ao mesmo tempo. Com a utilizao de um SGBD, possvel que essa
operao se realize, ou seja, mais de uma pessoa consegue visualizar a
mesma informao ao mesmo tempo.
Em uma situao mais crtica, as duas pessoas que esto lendo as mesmas informaes contbeis ao mesmo tempo resolvem alter-las. Voc
pode imaginar os problemas que poderiam ser gerados a partir dessas
operaes simultneas? O SGBD no deixa que esses problemas aconteam: prioriza as alteraes feitas pelo primeiro usurio, fazendo com
que a segunda pessoa interessada no consiga alterar os mesmos dados e
precise aguardar at que a primeira pessoa finalize suas operaes.

Registros so conjuntos
de dados armazenados em
algum local, nesse caso, em
um banco de dados.

SEO 3

Tipos de usurios de um SGBD


Existem quatro tipos de usurios de um SGBD, cada um responsvel
por algumas funes. Conhea mais detalhadamente esses usurios e
suas responsabilidades:

Administradores
So mais conhecidos como DBAs, do ingls Data Base Administration.
Eles gerenciam o funcionamento do banco de dados, programam as
devidas manutenes, tornam o ambiente de consultas e gravaes de
dados performtico e aplicam as devidas correes de software, se for necessrio. Trabalham no nvel interno do banco de dados, preocupando-se com os registros e mtodos de armazenamento.
Desenvolvedores
Confeccionam os softwares que se conectaro ao banco de dados e daro
condies para que os usurios possam extrair, alterar ou gravar informaes no banco. Trabalham no nvel conceitual, em que h preocupaes com a engenharia do banco de dados e seus mtodos de conexes.
Usurios avanados
So pessoas que conseguem extrair informaes do banco de dados por
meio de programas especficos, possibilitando atender s requisies
gerenciais da empresa. Alguns utilizam comandos diretos no banco de
dados para uma busca mais direcionada de informaes.
Usurios simples
So usurios que se conectam ao banco por meio de softwares feitos pelos
desenvolvedores para efetuar operaes simples de alterao, consulta
ou gravao de dados. Trabalham no nvel externo do banco, em que
a preocupao limita-se parte operacional dos processos da empresa.

BANCO DE DADOS I

21

SEO 5

SGBD x sistemas de
arquivos

Figura 5: Tipos de usurio de um SGBD

SEO 4

Quando no utilizar um SGBD


A implantao de um SGBD exige um bom hardware, mo de obra especializada para configurar os devidos controles de segurana e controles de integridade e acessos simultneos, o que acarreta em consumo
de tempo de implementao e gera altos investimentos. Alm disso, se
houver m administrao do SGBD, tanto a segurana quanto a integridade do banco podero ficar comprometidas (UNIVERSIDADE DE
MARLIA, [s.d.]).
Nessa linha, no podemos considerar a implementao de um SGBD
para um sistema que no seja vital para o andamento de um negcio, no
possua grande nmero de transaes, tenha baixo nmero de usurios
interagindo ou no tenha expectativas de mudanas.
Por exemplo, um banco de dados desenvolvido para controlar um acervo pessoal de livros, contendo 50 itens, sendo consultado por uma pessoa apenas e em uma frequncia aproximada de um acesso por semana.
Nesse caso, o banco de dados desenvolvido no necessita obrigatoriamente de um SGBD ativo. Por ser considerado um processo tradicional,
o custo de implementao provavelmente no justificaria o benefcio
oferecido, sendo mais vivel o uso de um sistema de arquivos.

22

CURSOS TCNICOS SENAI

Em menor escala de complexidade e de investimentos, existe tambm o sistema de arquivos, que


no pode ser confundido com o
SGBD.
O sistema de arquivos, segundo
Ferreira, Italiano e Takai (2005),
deve ser utilizado para suportar
bancos de dados de baixa escala, como o de um acervo pessoal descrito no exemplo anterior.
No possui controle rgido sobre
a redundncia de dados e padronizao, depende de uma aplicao especfica para acesso a cada
informao, alm de representar
os dados fisicamente, ao contrrio
do SGBD, que auxilia na eliminao de redundncias, capaz de
permitir diversas aplicaes acessando o banco de dados e representa conceitualmente os dados
em conjunto com seus programas.

Figura 6: Representao de um sistema de arquivos

Como o sistema de arquivos no a melhor forma de armazenar


e gerenciar os dados de uma empresa, possui poucos recursos e
falta controle efetivo de seus processos e usurios, este livro ter
foco no estudo do banco de dados por meio de SGBDs, e no dos
sistemas de arquivos

BANCO DE DADOS I

23

Unidade de
estudo 3
Sees de estudo
Seo 1 Dcada de 1950 O incio
Seo 2 Dcada de 1960 banco de dados
hierrquico
Seo 3 Dcada de 1960 e incio de 1970 banco de dados em rede
Seo 4 Dcada de 1970 banco de dados
relacionais
Seo 5 Dcada de 1980 banco de dados
orientados a objetos
Seo 6 Dcada de 1990 bancos de dados
objetos-relacionais
Seo 7 Anos 2000 bancos de dados avanados

A Histria do Banco de Dados

SEO 1

Dcada de 1950
o incio
As primeiras formas de armazenagem de dados foram registradas no final da dcada de 1950,
perodo em que se deu o incio da
informtica em grande escala. Era
necessrio guardar tudo que era
produzido em um computador,
e os meios encontrados na poca
foram o armazenamento em cartes perfurados e fitas magnticas.

SEO 2

Dcada de 1960 banco de dados hierrquico


Na dcada de 1960, com o surgimento dos discos rgidos e o crescimento da capacidade de armazenamento, iniciava-se o armazenamento de
dados computacionais estruturado, no formato hierrquico, chamado de
banco de dados hierrquico.
Nesse tipo de banco, os dados eram organizados em hierarquias, como
um conjunto de rvores, utilizando-se de registros para representar os
dados que eram relacionados entre si por meio de links. Veja a seguir
outras caractersticas do modelo de dados hierrquico:

O acesso aos dados era feito percorrendo-se as rvores, at os


ltimos ramos, onde estava o registro pretendido;
O acesso s informaes era feito de maneira sequencial;
Os registros eram manipulados um de cada vez;
As consultas eram complexas e demoradas.
A figura a seguir demonstra um diagrama representativo do modelo hierrquico de dados.

Figura 7: Exemplos de cartes perfurados e fitas magnticas

Com o crescimento da informtica, houve um impulso quantitativo de redes de computadores


que geraram uma grande quantidade de processamento de dados
(BARBOSA; INGRID, LABORDE, 2010), necessitando assim
de uma armazenagem de dados
estruturada e organizada, o que
tornou obsoletas as fitas magnticas. A seguir voc ver a linha do
tempo de evoluo dos modelos
de bancos de dados.

Figura 8: Organizao dos dados em um banco de dados hierrquico

BANCO DE DADOS I

25

os dados so representados por uma coleo de registros que possui

Por esses motivos, apesar de ter


surgido na dcada de 1970 e somente ser utilizado em massa a
partir da dcada de 1980, ele o
banco mais utilizado at hoje nas
empresas e ser o foco de aprendizado neste livro.
Veja, a seguir, outras vantagens na
utilizao de bancos de dados relacionais (BDR), segundo Abreu e
Machado (2004).

o acesso aos dados dado por meio de relacionamentos;


as consultas continuam sendo complexas, forando o desenvolvedor

Viso mltipla de dados.


Melhor comunicao entre ar-

SEO 3

Dcada de 1960 e incio de 1970 banco de dados


em rede
Ainda na dcada de 1960, surgiu, por meio de Charles Bachman, o banco de dados em rede, que composto de uma estrutura mais completa
do que o modelo hierrquico, sendo considerado, inclusive, uma extenso deste. Algumas caractersticas do modelo de dados em rede so:
vrias associaes, eliminando o conceito de hierarquia;

dos sistemas a pensar com como percorrer os links at chegar ao seu


destino.
Veja, na figura a seguir, um modelo de dados em rede:

mazenagem de dados e usurios.

Reduo acentuada no desenvolvimento de aplicaes e


tempo gasto na manuteno.
Melhoria na segurana dos
dados.
Agilidade nas consultas aos

dados, gerando informaes de


qualidade na tomada de decises
da empresa.

Figura 9: Organizao dos dados em um banco de dados em rede

SEO 4

Dcada de 1970 banco de dados relacionais


Nos anos de 1970, Edgar Codd apresenta o modelo relacional, que se
tornou um diferencial entre os bancos de dados j existentes, sendo considerado o sucessor dos modelos em rede e hierrquicos, contribuindo
decisivamente para a utilizao em grande escala dos bancos de dados.
Nesse tipo de banco de dados, os dados so armazenados em tabelas
interligadas por meio de relacionamentos, estrutura que viabiliza a pesquisa de dados no banco, simplifica o armazenamento e facilita a viso
humana sobre sua estrutura e as informaes armazenadas nele.
A figura a seguir demonstra graficamente como os dados esto armazenados em um banco de dados do tipo relacional:

Figura 10: Organizao dos dados em um banco de dados relacional


26

CURSOS TCNICOS SENAI

Ainda conforme Abreu e Machado (2004), o conceito principal


dos bancos de dados relacionais
vem da teoria de que no importa
para os usurios saber onde esto
armazenados os objetos e nem
como eles so. Basta lidar com os
objetos contando com um conjunto de funes de alto nvel e
linguagem de programao de
banco de dados, como o Structure Query Language (SQL), que ser
visto na unidade 13.

SEO 5

Dcada de 1980 bancos de dados orientados a


objetos
Em meados da dcada de 1980, iniciaram os estudos sobre bancos de
dados orientados a objetos (BDOO), que visavam a criar um tipo de
banco de dados que pudesse interagir mais eficazmente com aplicaes
desse tipo, ou seja, aplicaes que utilizam linguagem de programao
orientada a objetos, como: Java, C++ ou Smalltalk, que armazenam objetos complexos, como textos, imagens e grficos. Esse tipo de banco procura armazenar os dados como objetos, somente podendo ser
manipulados pelos mtodos da classe qual esses objetos pertencem,
trazendo maior segurana e agilidade, j que um objeto (dado) pode ser
encontrado seguindo os ponteiros diretamente, sem necessidade de buscas por meio das tabelas, como feito no modelo relacional.
Seu SGBD diferente e conhecido como SGBDOO, ou seja, sistema
gerenciador de banco de dados orientado a objetos, que auxilia na modelagem das estruturas complexas utilizadas no BDOO.
Alm de privilegiar o armazenamento de dados em formato de objetos e trazer maior agilidade na busca desses objetos dentro do banco, o
BDOO possui tambm as seguintes vantagens:

armazena no somente dados em tabela, mas tambm dados em


outros formatos, como imagens, documentos e sons;
utilizado em aplicaes complexas, como de projetos de arquitetu-

ra, engenharia, empresas de telecomunicaes ou de multimdia;

manipula os objetos de forma consistente e segura;


padroniza dos dados.
Observe, a seguir, uma representao grfica do modelo de dados
orientado a objetos:

Figura 11: Modelo de dados orientado a objetos

A desvantagem na utilizao desse tipo de banco est no alto custo de


aquisio de novas tecnologias e no investimento a ser feito em treinamentos para capacitar profissionais na administrao e desenvolvimento
de aplicaes especificadas para o BDOO.

SEO 6

Dcada de 1990 bancos de dados objetosrelacionais


Com o aumento da interconectividade, outros tipos de dados so
armazenados em bancos de dados, o que levou necessidade de
reestruturao dos bancos de dados relacionais para tratar essa demanda, criando-se ento os bancos de dados objetos-relacionais.
A seguir, voc tem uma breve explanao desse tipo de banco de
dados e dos motivadores de seu
surgimento.

A exploso da web
Na metade dos anos 1990, viu-se
uma exploso na utilizao da internet, que impulsiona o mercado
de alta disponibilidade visando a
prover acesso em tempo real 24
horas por dia, sete dias na semana.
Antes mesmo de finalizar essa
dcada, j se evidenciava um
alto crescimento na utilizao da
web. Segundo Oliveira e Santos
(1998?), em 1998, havia 30 milhes de servidores web, entretanto a previso para 1999 era de que
existissem cem milhes de servidores web espalhados pelo mundo,
cerca de 320 vezes mais do que
no incio da mesma dcada. Todo
esse crescimento fez alavancar todos os ramos da informtica, desde os componentes eletrnicos e
sua capacidade de processamento at os softwares e seu poder de
automatizao. Logicamente, os
bancos de dados acompanharam
esse crescimento e, mais que isso,
at influenciaram essa ascenso,
suportando o grande volume de
consultas na web, a gravao de
dados multimdia e permitindo
maior segurana nas transaes

BANCO DE DADOS I

27

de mercado eletrnico, como a


verificao de dados financeiros
em uma compra com carto de
crdito.

A utilizao de bancos
de dados objetos-relacionais
Para suprir as carncias do modelo relacional proporcionando
naturalidade em modelar objetos complexos sem abrir mo de
toda sua carga tecnolgica adquirida em anos de pesquisas e desenvolvimentos, surgem os bancos de dados objetos-relacionais
(BDOR) (VIDAL, 200-?) que
continuam oferecendo a mesma
interface relacional qual os desenvolvedores j esto acostumados e permitem trabalhar outros
objetos, alm de dados em tabelas.

O BDOR consegue tratar objetos complexos sem a necessidade de utilizao de um BDOO, o qual exigiria altos investimentos em atividade
humana e em hardwares, objetivando boa performance no ambiente.
Os bancos de dados objetos-relacionais mesclam as ideias dos BDR e
BDOR satisfazendo aos dois quesitos. Conforme Korth, Silberschatz e Sudarshan (1999, p. 273), [...] modelos de dados relacionais-objetos estendem
o modelo de dados relacional fornecendo um tipo de sistema mais rico,
incluindo orientao a objeto e acrescentando estruturas a linguagens de
consulta relacionais [...].
Alm das vantagens apresentadas, vale destacar que a utilizao dos
BDOR no afeta o desempenho do sistema. Ao contrrio, consegue
tratar os objetos com a mesma performance que os bancos de dados orientados a objetos.

Figura 12: Modelo de banco de dados objetos-relacionais

Voc j deve ter percebido a


ligao entre os BDOR e a utilizao da internet, certo? Se
voc acha que essa ligao se
d por conta da necessidade
de armazenamento de objetos como documentos, sons e
imagens, voc est certo!

28

CURSOS TCNICOS SENAI

SEO 7

Anos 2000 bancos de dados avanados


A entrada do terceiro milnio no altera as tendncias de comunicaes
instantneas e trocas de arquivos on-line. Pelo contrrio, a utilizao da
internet continua influenciando a sociedade em seus hbitos e as empresas em seus mtodos de armazenamento. Bancos de dados mveis,
pessoais, de multimdia, espaciais e geogrficos destacam-se nesse perodo, em que a mobilidade e o nvel de qualidade das imagens armazenadas aumentam exponencialmente. A seguir, acompanhe uma breve
explicao de cada um desses modelos segundo Korth, Silberschatz e
Sudarshan (1999).

Mveis e pessoais
Ao contrrio dos bancos de dados comerciais de grande porte, estes,
por conta da expanso de dispositivos pessoais mveis e da internet sem
fio, armazenam os dados diretamente nos dispositivos mveis de seus
proprietrios, que se tornam os administradores desses bancos.
Multimdia
So responsveis pelo armazenamento de arquivos como sons, imagens
e vdeos favoravelmente em grande quantidade, trazendo possibilidades
de buscas por meio dos reais significados desses objetos e de maior confiabilidade de armazenamento.
Espaciais e geogrficos

Armazenam dados relacionados a localizaes espaciais e oferecem suporte para consultas com base nessas localizaes.

Figura 13: Simbolizao de bancos de dados mveis, multimdias e geogrficos

Na prxima unidade, voc entender o significado de cada tipo de modelagem baseado em conceitos tericos e pequenos exemplos, preparando voc para as unidades 8, 9 e 10, nas quais a modelagem de dados ser
vista em um nvel mais avanado. At mais.

BANCO DE DADOS I

29

Unidade de
estudo 4
Sees de estudo
Seo 1 O que modelagem de dados
Seo 2 Modelagem conceitual
Seo 3 Modelagem lgica
Seo 4 Modelagem fsica

Conceitos de modelagem de
dados
SEO 1

O que modelagem de
dados
Em uma empresa existem vrios
processos formados por conjuntos de aes de seus funcionrios,
que fazem com que os negcios
caminhem dentro da normalidade. Provavelmente, voc j ouviu
falar que a falta de processos em
uma empresa pode gerar certos
danos, no ouviu? No incio dos
estudos em informtica, voc
aprendeu que os sistemas no
criam novos processos, apenas
automatizam e melhoram os processos j existentes em uma organizao.
Modelagem de dados uma tcnica utilizada para planejar o armazenamento das informaes de
uma organizao em um banco de
dados, ou seja, com a modelagem

de dados, possvel transformar


os processos da vida real de uma
organizao para o mundo virtual
e sistmico. Seu resultado conhecido como modelo de dados,
que simplesmente descreve a forma como os dados esto sendo
armazenados dentro do banco de
dados.
A modelagem de dados propicia
o desenvolvimento de um projeto
de dados e dividida em trs
grupos, os quais voc ver nas
sees seguintes.

SEO 2

Modelagem conceitual
A modelagem conceitual retrata puramente uma transformao do
mundo real para o mundo virtual. Nesse tipo de modelagem, pode-se
afirmar que estamos modelando o mundo daquela empresa, pessoa, organizao, enfim, o proprietrio do respectivo sistema, transformando
essa realidade em um minimundo desenhado.

Figura 14: Mundo real x mundo virtual

O responsvel por confeccionar esse desenho, chamado ento de modelo conceitual, o analista de sistemas, e o responsvel por execut-lo e
implement-lo efetivamente em um banco de dados o desenvolvedor,
aquele mesmo que voc estudou na unidade de estudo 2, lembra?

Figura 15: Representao bsica de um modelo conceitual

importante observar que a confeco desse modelo no depende de


nenhum tipo de tecnologia ou fabricante de SGBDs. um modelo de
alto nvel e, mesmo depois de pronto, somente dever ser utilizado para
o entendimento do negcio da respectiva organizao.

BANCO DE DADOS I

31

SEO 3

Modelagem lgica
Modelo lgico relacional modelo de dados que
utiliza a abordagem relacional para ser confeccionado
Campos no caso de modelo de dados, campos relacionais so sinnimos de
atributos, porm fala-se
campos quando j se est
construindo o modelo fsico
de dados. A nominao colunas tambm pode ser
usada para simbolizar os
campos.

A modelagem lgica tem seu incio a partir da modelagem conceitual e


considera os diferentes tipos de abordagem de dados, por exemplo, as
abordagens hierrquica, de rede, relacional e orientada a objetos, vistas
na unidade de estudo 3.
Em outras palavras, para se construir um modelo lgico, no relevante
considerar as caractersticas do SGBD onde ser implementado, mas
necessrio saber qual abordagem ser utilizada (no caso deste livro, ser
sempre utilizada a abordagem relacional, devido sua ampla aceitao).
Um modelo lgico relacional descreve as estruturas que estaro contidas no banco de dados de acordo com as possibilidades permitidas pela
abordagem escolhida (ABREU; MACHADO, 2004). Quem o ajuda a
implementar o analista de negcios, tambm conhecido como usurio
avanado (que voc conheceu na unidade de estudo 2)
Levando em considerao a abordagem relacional, so definidas, nessa
etapa, as tabelas, os padres de nomenclatura e so definidas as chaves
primrias e estrangeiras que sero estudadas na unidade 9.

Figura 16: Representao bsica de um modelo lgico relacional

SEO 4

Modelagem fsica
Ao contrrio das modelagens conceitual e lgica, a modelagem fsica
leva em considerao o SGBD que ser utilizado para gerenciar o banco
de dados e todas as suas limitaes. Um modelo fsico derivado de um
modelo lgico e descreve como os dados sero realmente armazenados
dentro do banco de dados, demonstrando os tamanhos dos campos e
de que tipo so, se so do tipo nmeros, textos, datas ou outros.
O modelo fsico o fim do processo de modelagem e desenvolvido
pelo desenvolvedor juntamente com o administrador do banco de dados
(DBA) de acordo com as regras do SGBD escolhido para suportar o
sistema. Nessa etapa, o DBA tem preocupaes com espao fsico, tipos
de registros com a forma como eles afetaro a performance do banco.

32

CURSOS TCNICOS SENAI

Figura 17: Modelo fsico relacional

A essa altura voc deve estar se perguntando: j que um modelo a


sucesso do outro, como eu fao ento para fazer a transio entre os
modelos, confeccionar um projeto de banco de dados, enfim, gerar um
banco de dados real? Calma! Isso voc ver a partir da unidade 8. Antes disso, conhea o modelo de entidade-relacionamento, na prxima
unidade.

BANCO DE DADOS I

33

Unidade de
estudo 5
Sees de estudo
Seo 1 O que modelo de entidade-relacionamento?
Seo 2 Entidades
Seo 3 Atributos
Seo 4 Relacionamentos
Seo 5 Cardinalidade

Modelo de EntidadeRelacionamento
SEO 1

O que modelo de entidade-relacionamento?


Cada sistema construdo para
sanar uma necessidade de negcio de uma organizao que, para
isso, deve fazer parte da elaborao do sistema e ser conhecida
pelo analista de sistemas, pelo
desenvolvedor e tambm pelo conhecedor de negcios da empresa
na qual o sistema ser implantado.
Esses profissionais tero a tarefa
de adequar toda a realidade da organizao em um modelo virtual
que represente as atividades do
sistema e que, inicialmente, pode
ser feito at mesmo em uma folha
de papel. Esse modelo conhecido como modelo de entidade-relacionamento, ou simplesmente MER.
O MER tem a finalidade de, conceitualmente, descrever os dados
armazenados em um banco de
dados e suas interligaes.
Na unidade anterior, voc conheceu os tipos de modelagem de
dados e, consequentemente, viu
que a modelagem conceitual visa
a virtualizar o mundo real. Essa
virtualizao pode ser facilitada
quando se cria o MER do conjunto de processos da respectiva organizao, mostrando de que forma as informaes constantes nas
tabelas esto organizadas, porm,
sem demonstrar o fluxo dessas informaes entre as tabelas.

A modelagem [no caso, atravs do MER] como a arte fotogrfica,


prepara-se a cmera e tira-se a foto, sem se importar com os movimentos (ABREU; MACHADO, 2004, p. 29).
Desse processo origina-se o diagrama de entidade-relacionamento
(DER). Para o DER, preciso criar as entidades que so compostas por
atributos e lig-las por meio de relacionamentos. Veja um exemplo:

Figura 18: Definio do MER

A partir da prxima seo, voc entender melhor como montar um


MER. Acompanhe.

SEO 2
Entidades

O primeiro grande passo, e talvez o mais difcil, para se montar um modelo MER definir as entidades que sero a base para a modelagem de
entidade-relacionamento. Mas o que so entidades?
Uma entidade nada mais do que:

algo que existe no mundo real dentro de uma organizao, um obje-

to ou uma pessoa;

algo com relevncia para os processos de negcio;


algo cujas informaes se deseja armazenar;
algo que representa um padro especfico de caractersticas.

Por exemplo: em um supermercado h produtos, notas fiscais, clientes e fornecedores.

BANCO DE DADOS I

35

Todos esses itens podem ser considerados entidades, pois existem na


vida real, deseja-se armazenar informaes sobre eles e possuem padres de caractersticas (todo cliente possui um nome e endereo, todo
produto tem um cdigo e um preo e, em toda nota fiscal h valores e
produtos).

Para completar a definio de todas as entidades do sistema, basta


executar a mesma tarefa para os
outros processos da rea de vendas, como pedidos, formas de pagamento, verificao de crdito,
entre outras.

SEO 3
Atributos

Figura 19: Interpretao de entidades reais

Cada entidade representada por um retngulo dentro do DER, conforme voc poder ver na figura 20.
Mas voc deve estar se perguntando: como essas entidades podero
ser identificadas sem que ocorram maiores erros? Segundo Abreu e
Machado (2004), mesmo sendo este um tema de difcil formalizao, h
processos que podem ser seguidos para que se identifiquem corretamente as entidades de um sistema.
O primeiro passo imaginar um sistema a ser desenvolvido. Ento, para
exemplificar, imagine um sistema de vendas em varejo. Nesse sistema,
deve-se imaginar o fluxo do processo juntamente com as pessoas ou
objetos reais que participam dele. Por exemplo, o vendedor vende ao
cliente algum produto e gera uma nota fiscal.
Voc concorda que vendedor, cliente, produto e nota fiscal representam padres especficos de caractersticas, so importantes para os negcios da empresa proprietria do sistema e, consequentemente, deseja-se armazenar informaes sobre eles, certo? Ento, esto definidas as
primeiras entidades do sistema: vendedor, cliente, produto e nota fiscal.

Figura 20: Entidades representadas no DER

36

CURSOS TCNICOS SENAI

Cada entidade possui seus atributos, que nada mais so do que os


dados que so associados a cada
ocorrncia de uma entidade ou de
um relacionamento (HEUSER,
2004), ou seja, as caractersticas
comuns das entidades.
Exemplo 1: um cliente, do sistema de vendas em varejo, possui CPF, nome, endereo e data
de nascimento. Esse conjunto de
caractersticas pode ser aplicado
para todas as pessoas, portanto
considerado atributo da entidade Cliente.
Exemplo 2: para a entidade Produtos, temos outro conjunto de
caractersticas em comum: marca, cdigo, nome, tipo da embalagem, data de validade e nome
do fornecedor. Cada uma dessas
caractersticas considerada atributo da entidade Produto.
Um atributo representado no
DER por meio de uma elipse logo
abaixo da sua respectiva entidade.

Figura 21: Representao das entidades Produto e Cliente com seus atributos

Os valores de cada atributo, como nome do cliente = Joo da Silva,


preo do produto = R$ 3,00 que formam a maior quantidade de dados
armazenados no banco de dados e possibilitam o funcionamento do sistema de uma empresa. Nas unidades 12 e 13 voc aprender mais sobre
como atribuir dados para cada atributo de cada entidade.

SEO 4

Relacionamentos
de fundamental importncia para a concretizao de trabalhos de
modelagem o entendimento dos conceitos de relacionamentos e sua
aplicao pelas pessoas que participaram, e principalmente por quem
no participou do processo de modelagem, mas, que ao v-lo, consegue
compreender o funcionamento do sistema.
Os relacionamentos representam o conjunto de associaes entre ocorrncias de entidades, sendo responsveis por unir as entidades que possuem alguma relao entre si, possibilitando que as entidades compartilhem informaes e evitando que dados sejam gravados em duplicidade.
Portanto, para que um relacionamento ocorra, uma entidade deve se
interessar pelas informaes de outra, utilizando aquela informao
que somente a outra entidade possui.
Para facilitar a compreenso desses conceitos, ser utilizado o mesmo
exemplo do sistema de vendas de varejo apresentado nas unidades 2 e
3, onde foram definidas as entidades e seus respectivos atributos.
Se voc imaginar as entidades nota fiscal e cliente, perceber que elas
tm certa relao. Voc saberia informar que relao h entre essas entidades?

BANCO DE DADOS I

37

Acompanhe: um cliente deseja receber a nota fiscal de sua compra, e


essa nota fiscal deve conter o nome do cliente, certo? Est a a relao!
Se uma nota fiscal possui o nome do cliente, esta tem interesse em ir
at a entidade Cliente e busc-lo, sendo que a entidade Cliente dever
compartilhar essa informao com a entidade nota fiscal e, se necessrio,
tambm com outras.

Cada relacionamento possui um


tipo de restrio, que representa o
nmero de vezes que uma entidade pode se relacionar com outra.
Essa restrio chama-se cardinalidade e assunto da prxima
seo.

SEO 5

Cardinalidade

Figura 22: Relacionamento entre entidades nota fiscal e cliente

Voc j reparou nos verbos que explicam os relacionamentos? So apenas fatos reais. Preste ateno:

Cliente recebe a nota fiscal, nota fiscal possui o nome do cliente,


vendedor emite a nota fiscal, nota fiscal contm produtos etc.

Os relacionamentos de entidades nos bancos de dados reproduzem os


relacionamentos reais que h nas entidades das organizaes e so identificados simplesmente por verbos. A figura a seguir representa os relacionamentos e suas aes. Observe.

Figura 23: Parte do DER do mdulo comercial de uma empresa de vendas de varejo

Os verbos representam expresses dos fatos reais e so representados


no diagrama de entidade-relacionamento por meio de um losango, conforme visto na figura 23.

38

CURSOS TCNICOS SENAI

A definio literal de cardinalidade representada pelo nmero


(mnimo, mximo) de ocorrncias
de uma entidade associada a uma
ocorrncia de outra entidade por
meio do relacionamento (HEUSER, 2004).
Em outras palavras, significa o
nmero de aes que uma entidade pode executar em outra entidade relacionada. Por exemplo,
quantas ocorrncias pode haver
entre a entidade Cliente e a entidade Nota fiscal? Ou seja, quantas
notas fiscais o cliente poder receber e quantos clientes podero estar contidos em uma nota fiscal?

Figura 24: Incio da representao da cardinalidade

Sempre existir esse grau de relacionamento entre entidades que se relacionam entre si, e dever ser definido de acordo com os requisitos do
sistema. H trs tipos de cardinalidade existentes: um para um, um para
muitos e muitos para muitos.

Relacionamento um para um
O relacionamento um para um bastante raro no meio corporativo. Significa que cada ocorrncia da entidade A acontece apenas uma vez com
a entidade B, assim como o inverso tambm verdadeiro.
Exemplo: a entidade departamento e a entidade gerente relacionando-se entre si. O funcionrio denominado gerente pode gerenciar apenas
um departamento, assim como um departamento de uma empresa pode
ser gerenciado por apenas um gerente, ento o relacionamento entre
departamento e gerente de um para um.
Para cada entidade relacionada, deve-se representar seu grau de relacionamento por meio do seu smbolo ao lado interno da entidade, preferencialmente acima da linha que representa o prprio relacionamento.

Figura 25: Um gerente gerencia um departamento e um departamento somente


pode ser gerenciado por um gerente

Relacionamento de um para muitos ou de muitos


para um
Esse tipo de cardinalidade o mais comumente encontrado no mundo real e, consequentemente, nas modelagens dos sistemas. tambm
denominado de relacionamento bsico entre entidades. Indica que uma
ocorrncia da entidade A pode se relacionar com muitas ocorrncias da
entidade B, no entanto o inverso no verdadeiro.
Utilizando o exemplo do sistema de vendas, possvel afirmar que um
vendedor pode gerar vrias notas fiscais para os clientes (N notas fiscais), porm cada nota fiscal possui apenas um cliente descrito, no sendo possvel que a mesma nota fiscal seja gerada para dois clientes ao
mesmo tempo.

BANCO DE DADOS I

39

Figura 26: Relacionamento do tipo muitos para um entre Nota fiscal e Cliente

Dessa forma, esse relacionamento considerado de um para muitos.


Observe que o smbolo para muitos a letra N.
Todo relacionamento deve ser lido nos dois sentidos. Portanto, na figura
anterior, l-se: Um cliente gera vrias notas fiscais, mas cada nota fiscal
gerada para um cliente.

Relacionamento muitos para muitos


Um relacionamento do tipo muitos para muitos representa que vrias
ocorrncias da entidade A relacionam-se com vrias ocorrncias da entidade B, sendo que, consequentemente, o inverso verdadeiro.
Para facilitar o entendimento, veja um exemplo conforme nosso sistema de vendas alocado em um supermercado, que possui as entidades
Produto e Cliente. Em geral, um cliente pode comprar vrios produtos,
assim como um determinado produto pode ser adquirido por vrios
clientes. Tem-se ento um relacionamento N para N.

Figura 27: Relacionamento N para N entre Cliente e Produto

40

CURSOS TCNICOS SENAI

Muitos autores tambm consideram as expresses N para M, M


para N ou ainda M para M. Neste livro, voc ver apenas a expresso N para N, porm todas elas possuem o mesmo significado: um
relacionamento de muitos para muitos.

No relacionamento N para N, h uma particularidade importante: a cada


relacionamento desse tipo, deve ser criada uma tabela auxiliar entre as
duas tabelas principais. Se a entidade Cliente se relaciona de N para N
com a entidade Produto, ento dever ser criada uma nova tabela Cliente_Produto, que trar informaes das duas tabelas demonstrando, por
exemplo, o valor que cada cliente pagou em um determinado produto
em uma determinada data.
Para exemplificar melhor, considere um sistema de uma universidade
em que a entidade Disciplina se relaciona com a entidade Aluno, de N
para N, e gera uma tabela auxiliar contendo as notas de cada aluno e sua
mdia final.
A tabela auxiliar se relaciona de forma N para um com as outras duas tabelas e contm as chaves primrias de cada uma das outras duas. Calma!
No se preocupe. Esse conceito voc ver detalhadamente na unidade 9.
Enquanto isso, veja como se faz um projeto de banco de dados.

BANCO DE DADOS I

41

Unidade de
estudo 6
Sees de estudo
Seo 1 O que um projeto?
Seo 2 Projeto de banco de dados

Projeto de Banco de Dados

SEO 1

SEO 2

Por definio, projeto um

A confeco de um projeto de banco de dados muito importante para a


consistncia das informaes aps o banco implementado. Assim como
em qualquer projeto, primeiro, planeja-se quantas vezes e quanto tempo
for necessrio, para, depois disso, executar as aes de implementao
do banco de dados.
Um banco de dados bem planejado permite consultas rpidas e eficazes
base de dados, ao contrrio de um banco de dados que no teve planejamento e pode gerar erros nos retornos das consultas, apresentando
informaes no confiveis, alm de degradar a performance do sistema.

O que um projeto?
[...] esforo temporrio empreendido para criar um produto, servio
ou outros tipos de resultados

(PROJECT MANAGEMENT
INSTITUTE, 2008, p. 11).
Todo projeto temporrio, tem
comeo, meio e fim, possui prazos, oramentos de despesas ou
investimentos e realizado e controlado por pessoas.
Segundo Arajo e Matos (2010),
um projeto pode ser realizado em
todos os nveis estratgicos da
organizao, inclusive na rea de
tecnologia da informao. Deve
ter um gerente (do projeto), que
tem a incumbncia de aplicar todo
o seu esforo para alcanar os objetivos propostos, sabendo identificar as necessidades, balancear as
demandas de escopo e gerenciar
as expectativas do cliente, podendo este ser uma organizao qualquer ou at mesmo outra rea da
mesma organizao.
Agora que voc j sabe o que um
projeto, prepare-se para aprender
a confeccionar um projeto de
banco de dados!

Projeto de banco de dados

Portanto, sempre que criar um banco de dados, planeje, planeje, planeje e somente depois execute!

H vrios passos na confeco de um projeto de banco de dados:

coletar os requisitos e as regras de negcio;


confeccionar o modelo conceitual;
confeccionar o modelo lgico;
confeccionar o modelo fsico;
gerar os scripts para implementao do banco.

Cada um desses passos sero detalhados a seguir, entre as unidades 8 e 13,


sendo as unidades 11 a 13 citaes de exemplos com base em plataformas.

BANCO DE DADOS I

43

Unidade de
estudo 7
Sees de estudo
Seo 1 Conceitos
Seo 2 Como levantar os requisitos e as
regras de negcios

Coleta de Requisitos e Regras


de Negcio
SEO 1
Conceitos

A coleta de requisitos uma busca prvia das funes que o sistema executar. Se o sistema deve
possuir a opo para cadastro de
cliente, ento este deve ser considerado um requisito, assim como
o sistema pode executar uma venda mesmo no havendo o produto no estoque ou oferecer desconto especial a um determinado
grupo de clientes.
J as regras de negcios representam uma busca prvia das informaes necessrias para determinar como o sistema funcionar.
Por exemplo: a tabela de produtos
deve ser atualizada periodicamente? Ou: o envio das notas fiscais
deve ser feito automaticamente
ou manualmente? Juntos, os requisitos e as regras de negcio
demonstram as caractersticas do
aplicativo, suas funcionalidades e
infraestrutura.

Muitas pessoas se confundem e


coletam todos os requisitos de
acordo com o que o usurio pediu. Isso no pode ser considerado uma boa prtica, j que quase
sempre o cliente ou usurio no
possui o entendimento suficiente
de banco de dados ou de sistema
a ponto de apontar caractersticas
tcnicas do ambiente.
Esse entendimento muito importante para mapear corretamente os requisitos, permitindo
a criao eficaz do modelo conceitual. O usurio responsvel
por entregar todos os requisitos
e regras do negcio, mas no por
definir como regras e requisitos
sero internalizadas no sistema.

Lembre-se de que um levantamento falho de requisitos


poder prejudicar todo o restante do projeto, como a modelagem conceitual, lgica e
fsica e, consequentemente, a
implementao do banco de
dados.

SEO 2

Como levantar os requisitos e as regras de


negcios
necessrio entender e mapear
tudo o que o cliente ou usurio
necessita. Segundo Carvalho (no
prelo), grande parte dos erros nos
softwares so resultados do no entendimento dos requisitos e das
regras de negcios informados
pelo cliente.

Essas regras e requisitos foram


claramente informados pelo
cliente ou usurio do novo sistema, pois no seria possvel que
voc, tcnico em informtica, pudesse prever com exatido essas
premissas. Porm, a partir da, a
construo do modelo conceitual por meio da tcnica do MER
com voc! Voc responsvel por
criar o melhor modelo de banco
de dados e prever a melhor forma
para armazenar os dados do sistema e relacionar as entidades. Apenas demonstre os resultados dos
relacionamentos falando a linguagem do negcio ao seu cliente ou
usurio.

Acompanhe um exemplo de requisito e de regra de negcio:

Regra de Negcio 1: a verifi-

cao de estoque deve ser feita a


cada novo pedido.

Requisito Funcional 5: o siste-

Na prxima unidade, voc conhecer


a modelagem conceitual baseada
em MER. Sempre que tiver alguma
dvida, consulte o seu professor em
sala de aula.

ma dever permitir desconto por


produto para cada cliente.

BANCO DE DADOS I

45

Unidade de
estudo 8
Sees de estudo
Seo 1 Definindo as entidades
Seo 2 Definindo os relacionamentos
Seo 3 Definindo as cardinalidades
Seo 4 Contextualizao

Modelagem Conceitual
Baseada no MER
Voc j tem bastante informao sobre modelagem conceitual e MER.
Agora chegou a hora de juntar as informaes e aprender a construir um
modelo conceitual. Nesta unidade, voc acompanhar os passos para a
criao de um modelo conceitual de banco de dados para a empresa X.
Com base no que voc aprendeu nos captulos anteriores deste livro sobre modelagem conceitual e MER, ser explanado, nesta unidade, como
construir o modelo conceitual para o banco de dados de uma empresa
X. Todos os passos aqui apresentados devero ser realizados com base
no aprendizado das unidades 4, 5 e 6.

SEO 1

Definindo as entidades
A definio das entidades o primeiro passo para a construo de um
modelo conceitual baseado em entidade-relacionamento. Defina todas
as entidades para que seja possvel iniciar o modelo de entidade-relacionamento. Acompanhe o exemplo de um sistema de uma simples padaria,
onde as entidades que podem ser definidas so as seguintes:

Figura 28: Entidades definidas

SEO 2

Definindo os relacionamentos
Essas entidades soltas, como esto, nada representam em um MER,
portanto, preciso interlig-las utilizando os relacionamentos. Visualizando essas entidades, pode-se definir o seguinte:

Nota fiscal se relaciona com a empresa (a prpria padaria), pois em


uma nota fiscal h o nome da empresa que vendeu o produto.
Nota fiscal se relaciona com o produto, pois em uma nota fiscal

sempre h a descrio dos produtos comprados.

A empresa se relaciona com seus clientes e tambm com seus


funcionrios, pois, para ter funcionrio, preciso ter uma empresa, e o
mesmo acontece para o cliente, quando tambm necessria a existncia de uma empresa.

A empresa se relaciona com


seus produtos, pois, para existirem, necessrio que a padaria
os compre.
Se a empresa compra o produto, o compra de um fornecedor,
representado por uma entidade.
Voc j deve ter previsto, ento,
que o produto tambm se relaciona com o fornecedor, certo?
Diante dessas afirmaes, voc
consegue descrever com que
outras entidades a nota fiscal se
relaciona? Pense um pouco no
trmite do negcio na vida real e
tente imaginar os relacionamentos. Que dados ou informaes
so necessrias para gerar a nota
fiscal que emitida para o cliente?
Facilmente podemos afirmar que
os dados dos produtos, da padaria
e do cliente so necessrios para
gerar essa nota.
Mas e a nota fiscal da compra dos
produtos? Podemos afirmar que
as informaes pertinentes para a
nota de entrada seriam as informaes do fornecedor, da padaria
e, logicamente, do produto. Dessa
forma:

A nota fiscal se relaciona com

o fornecedor, a padaria (empresa), o cliente e os produtos.


Deve-se, preferencialmente, identificar a entidade que mais possui
relacionamentos e coloc-la no
meio do diagrama, pois o conjunto de relacionamentos pode atrapalhar no entendimento do MER.
Ento, qual a entidade que mais
possui relacionamentos? Nesse
caso, so trs as entidades que

BANCO DE DADOS I

47

mais possuem relacionamentos: a Nota fiscal, a Empresa e o Produto.


Elas possuem o maior nmero de relacionamentos (4) e uma delas, no
caso definida pela entidade Nota Fiscal, fica no meio do MER, pois a
probabilidade de ela ter mais relacionamentos posteriormente grande.
Aps todas essas afirmaes, j possvel construir o MER com os
relacionamentos. Veja na figura a seguir como ficou o MER com os
relacionamentos:

Figura 29: MER simulando um banco de dados de uma padaria

Est criando forma de diagrama, no mesmo? Porm, ele ainda no


est finalizado! Falta utilizar os conceitos de cardinalidade para informar
as ocorrncias existentes entre as entidades.

SEO 3

Definindo as cardinalidades
No primeiro relacionamento, voc pode ver que a Empresa se relaciona
com a Nota fiscal. Quantas ocorrncias voc acha que h nesse ponto?
Pense que a padaria pode emitir vrias notas fiscais, porm cada nota
fiscal tem apenas um emissor (a padaria), portanto o relacionamento
entre empresa e nota fiscal do tipo um para muitos (possibilidade de
existir apenas uma empresa em cada nota fiscal e muitas notas fiscais
para cada empresa).

Figura 30: Relacionamento entre Empresa e Nota fiscal

48

CURSOS TCNICOS SENAI

Pensando agora no relacionamento Nota fiscal e Produto: quantos


produtos podem ser inseridos em
uma Nota fiscal (apenas um ou
vrios?). isso mesmo! Vrios
produtos podem ser inseridos em
uma Nota fiscal. O mesmo vale
para a leitura contrria, ou seja,
esses mesmos produtos tambm
podem estar em outras Notas
fiscais, afinal, voc pode vender
um suco e um salgado para vrios
clientes, certo? Ento esse relacionamento de N para N ou muitos
para muitos.

SEO 4

Contextualizao
Figura 31: L-se: uma nota fiscal contm vrios produtos, assim como um produto
pode estar contido em mais de uma nota fiscal

Agora est fcil. Imagine o restante dos relacionamentos para contruir


as cardinalidades.

A Empresa se relaciona com seus Clientes de forma um para N

(nesse caso, no importa se os clientes compraro em outras padarias,


por isso, est indicado que o cliente somente dessa padaria).

A Empresa se relaciona com seus Produtos de forma um para

N (nesse caso, no importa se esses produtos sero vendidos pelo


fornecedor para outras padarias, por isso est indicado que o produto
somente est nessa padaria).

A entidade Fornecedor se relaciona com Produto de forma N para


N, pois um produto pode ser comprado de mais de um fornecedor e
esses fornecedores podem fornecer mais de um produto.
A Empresa se relaciona com seus Funcionrios de forma um1 para

N.
Veja agora como ficou o diagrama de entidade-relacionamento (DER)
conceitual referente ao banco de dados de uma padaria com os relacionamentos e suas respectivas cardinalidades:

Esse o incio efetivo do projeto


de um banco de dados, demonstrando as entidades e os relacionamentos bsicos de um negcio.
Perceba que esse conjunto bsico de entidade e relacionamento
pode ser aplicado no somente
em uma padaria, mas em quaisquer empresas que possuam requisitos e regras de negcios similares, como uma loja de autopeas
ou outro comrcio com as mesmas caractersticas de relacionamentos, por exemplo.
Vale lembrar que este apenas
um ncleo do modelo conceitual. A partir da, vrias outras
entidades surgiro e caracterizaro um negcio em especfico, por exemplo, as entidades
de acervo e status de filme para
uma videolocadora ou de descrio dos servios para uma
oficina mecnica.

Voc j aprendeu a construir um


modelo conceitural e vai ver que
agora ficar mais fcil construir
um modelo lgico. Acompanhe,
na prxima unidade, os passos
para a modelagem lgica baseada
no DER conceitual.

Figura 32: Exemplo de um DER Conceitual de uma padaria

BANCO DE DADOS I

49

Unidade de
estudo 9
Sees de estudo
Seo 1 Construindo um modelo lgico
Seo 2 Mapeamento das entidades, dos
relacionamentos, da cardinalidade e dos
atributos
Seo 3 Atributos de chave primria e chave
estrangeira

Modelagem Lgica Baseada


no DER Conceitual
SEO 1

Construindo um
modelo lgico
O modelo lgico exige a definio de uma abordagem de dados,
e, neste livro, a abordagem utilizada ser a abordagem relacional
de dados.
A migrao de um modelo conceitual para um modelo lgico
relacional feita por meio do
repasse das vises e dos conceitos pelo desenvolvedor. Todas as
entidades identificadas no modelo DER conceitual passaro a ser
chamadas de tabelas no DER lgico, utilizando a abordagem relacional de dados.

SEO 2

Mapeamento das entidades, dos relacionamentos, das cardinalidade e dos atributos


Seguindo no mesmo projeto de
confeco de um banco de dados para uma padaria, traga para
c todas as entidades do DER e
altere o formato dessas entidades
para representar uma tabela, por
exemplo, as entidades Produto e
Nota fiscal:

Figura 33: Representao lgica da entidade Produto e da entidade Nota fiscal

Nessa linha, voc dever transformar todas as entidades em tabelas e


fazer o mapeamento de relacionamentos, cardinalidade e atributos. Veja
esses passos a seguir.
Executar os relacionamentos entre as tabelas requer ateno, pois eles
so primordiais para o bom funcionamento do banco de dados.

Voc se lemba dos relacionamentos aplicados anteriormente, no modelo


conceitual? Agora voc far o mesmo procedimento no modelo lgico,
aplicando os relacionamentos entre as tabelas, com as devidas cardinalidades.
Neste modelo, voc pode abolir a utilizao do losango com os verbos
para representar as aes, afinal, voc j consegue supor qual a ao
executada entre os relacionamentos apenas visualizando as entidades relacionadas.

Figura 34: Tabelas relacionadas com suas devidas cardinalidades

Feitos os relacionamentos, preciso preencher a tabela, afinal uma tabela vazia nada representa em um banco de dados. Preencha os campos
das tabelas definindo os atributos para cada uma. Para fazer isso, verifique as caractersticas comuns dentro de cada entidade, indagando-se: O
que descreve essa entidade?. Seguindo o exemplo da unidade 5, tm-se
para a entidade Cliente os seguintes atributos (ou campos):

BANCO DE DADOS I

51

nmero do CPF;
nome do cliente;
endereo;
data de nascimento.

Figura 35: Entidade Cliente com seus atributos, ou Tabela Cliente com seus Campos

Definidos os campos para todas as tabelas, deve-se, ento, relacion-las


entre si conforme a necessidade, identificando para cada relacionamento
a sua cardinalidade. Veja como est ficando o nosso exemplo:

52

CURSOS TCNICOS SENAI

Figura 36: DER lgico com suas entidades, atributos e relacionamentos

SEO 3

Atributos de chave primria


Chegou a hora de definir os identificadores das tabelas.
Os atributos de chave primria so aqueles que nunca se repetem dentro de uma entidade e tm a funo de atuar como identificadores de
cada instncia da entidade, ou seja, o atributo ou conjunto de atributos concatenados que identifica uma nica ocorrncia dentro da tabela
(ABREU; MACHADO, 2004).

Instncia vrias explicaes tcnicas e complexas poderiam ser dadas


para o termo instncia, porm, para facilitar o aprendizado, considera-se que
instncia significa o conjunto de valores inseridos nos
campos de cada tabela em
um banco de dados.

Se o valor de uma chave primria identifica uma ocorrncia dentro de uma


entidade, por exemplo, um cliente dentro da entidade Cliente, esse valor
nunca pode ser nulo, em outras palavras, ao cadastrar um cliente no ban-

co de dados, o atributo definido como chave primria nunca pode ser


deixado em branco, pois, nesse caso, o cliente no poderia ser identificado.
Nesse mesmo exemplo da entidade Cliente, com os quatro atributos j
definidos a ela, fcil identificar qual atributo poderia ser a chave primria. Pense um pouco: um atributo que no pode se repetir para os demais
clientes o CPF, certo? Ento, como o CPF no pode ser cadastrado
para mais de um cliente, ele o atributo ideal para ser a chave primria
da tabela cliente.
Para representar uma chave primria dentro de uma tabela, ser utilizado o smbolo PK, do ingls: Primary Key. Alguns livros simbolizam a
chave primria com o desenho de uma chave, e outros com o cifro ($).
Definies parte, o importante que a chave primria esteja sempre
identificada.

Figura 37: Identificao da chave primria

Adicionalmente, vale reforar que mais de uma chave primria pode


ser definida, como por exemplo, o CPF e o RG. Se esses dois campos
forem definidos como chave primria, o SGBD considerar a juno
dos dois campos como a chave primria da tabela, podendo um desses
campos se repetir ao longo dos registros, mas nunca os dois campos
sero iguais ao mesmo tempo. Adicionalmente, vale reforar que mais
de uma chave primria pode ser definida, como por exemplo, o CPF e
o RG. Se esses dois campos forem definidos como chave primria, o
SGBD considerar a juno dos dois campos como a chave primria da
tabela, podendo um desses campos se repetir ao longo dos registros,
mas nunca os dois campos sero iguais ao mesmo tempo.

BANCO DE DADOS I

53

O analista pode definir a chave


primria ao final de toda a modelagem, deixando marcados os
campos que pretende avaliar posteriormente. Esses campos so
chamados de chaves candidatas e
permanecem at que sua definio seja feita (chave primria ou
atributo comum).

SEO 4

Nesse relacionamento, a chave estrangeira vai sempre do lado de cardinalidade N (muitos).

Continuando o exemplo da padaria, em que a entidade Empresa se relaciona com a entidade Funcionrio de um para N, tem-se uma chave primria para a Empresa, que pode ser o seu CNPJ, e uma chave primria
para Funcionrio, o seu CPF. Para efetivar esse relacionamento, deve-se
criar um campo de chave estrangeira na tabela de funcionrios que ser
o mesmo campo de chave primria da tabela Empresa, ou seja, o campo:
Nmero do CPF.

Atributos de chave
estrangeira
Os atributos de chave estrangeira
especificam as relaes entre as
entidades. Tambm conhecidas
como chave de relao, elas especificam as relaes que cada entidade possui e apontam sempre
para o atributo de chave primria
de outra tabela.
Segundo Abreu e Machado (2004,
p. 62), chave estrangeira [...] um
dado colocado em uma entidade
que em outra o identificador
unvoco (chave primria).
A partir da criao de uma chave
estrangeira, tambm conhecida
como FK (do ingls Foreign Key),
passa a existir um relacionamento
entre a tabela em que ela est inserida e a tabela onde est a chave
primria para qual ela est apontando.

54

CURSOS TCNICOS SENAI

Figura 38: Definio da FK na tabela Funcionrio

Agora est fcil finalizar o DER lgico! Insira todos os atributos nas tabelas que j esto relacionadas, lembrando sempre das chaves primrias
e estrangeiras, e o fato de os relacionamentos N para N gerarem uma
tabela auxiliar que se relaciona com as duas tabelas principais de N para
um.

Figura 39: DER lgico completo

Agora que voc j sabe construir um modelo conceitual e um modelo


lgico, aprenda, na prxima unidade, como construir um modelo fsico.

BANCO DE DADOS I

55

Unidade de
estudo 10
Sees de estudo
Seo 1 Construindo um modelo fsico
Seo 2 Migrao do DER lgico relacional
para o modelo fsico
Seo 3 Estudo das tabelas
Seo 4 Definio de padres nas nomenclaturas dos campos
Seo 5 Estudo e caracterizao dos atributos
Seo 6 Sugestes para a confeco

Modelagem Fsica Baseada no


DER Lgico
Seo 1

Construindo um
modelo fsico
Essa etapa leva em considerao as caractersticas do SGBD
ao qual ser aplicado o modelo e
criado o banco de dados. O desenvolvedor, juntamente com o
DBA, implementa esse modelo
e se preocupa, nessa etapa, com
o tamanho dos campos de cada
tabela, as formas de buscas de
informaes e o tipo dos registros que sero inseridos em cada
campo, ou seja, qual o formato
do registro, se so nmeros, datas,
textos ou outros.
A migrao do modelo lgico
relacional para o modelo fsico
representa a reta final no planejamento do projeto de construo
de um banco de dados, e possvel definir algumas regras para que
essa migrao seja bem-sucedida.

SEO 2

Estudo das tabelas


Nesse ponto, o SGBD utilizado
j conhecido, portanto, devem-se estudar as tabelas a fim de verificar se elas esto aptas a serem
utilizadas no SGBD escolhido. Por
exemplo, dependendo do SGBD,
uma tabela definida no modelo lgico pode gerar mais de uma tabela no modelo fsico, ou at mesmo
desaparecer, caso a insero de um
campo em outra tabela abstraia a
necessidade de criao desta.

Por isso, para facilitar a pesquisa, criao e alterao de campos


das tabelas, importante definir padres de nomeclatura para
os campos constantes na tabela.
Uma tabela funcionrio pode ter,
por exemplo, os seguintes campos:

Query termo muito utilizado entre os tipos de usurios de banco de dados,


que representa simplesmente uma consulta ao banco.

CPF do funcionrio;
nome completo;
data de nascimento;
grau de instruo.

Como campos de tabela, esses


nomes no so adequados e podem dificultar uma futura query
e at mesmo a confeco de relacionamentos entre tabelas, j
que as chaves estrangeiras apontam para as chaves primrias de
outras tabelas, buscando-as pelos
nomes. Portanto, pode-se definir um padro para cada tipo de
campo. Aqui ser dada a seguinte
sugesto:

Campos com nmeros


iniciam-se com nr_XXX. Exemplo: nr_cpf.
Campos que definem nomes iniciam-se com nm_XXX.
Exemplo nm_cliente.
Campos que definem descries de algo iniciam-se com
ds_XXX. Exemplo: ds_endereco
ou ds_grau_de_instrucao.

BANCO DE DADOS I

57

Campos de datas iniciam-se


com dt_XXX. Exemplo: dt_nascimento ou dt_pedido.
Mais que uma sugesto, uma
obrigatoriedade, campos com
acentos no so aceitos, dessa

forma, nome do funcionrio


alterado para: nm_funcionario.
Seguindo esses padres, a tabela
de clientes fica:

campos, se so do tipo numrico,


data, texto ou outros. Dependendo do tipo do SGBD, pode haver
diferenas na nomenclatura dos
campos, por isso utilizaremos
aqui os tipos aceitos pelo MySQL
(banco de dados que ser abordado na unidade 11 deste livro).
H vrios tipos de campos de dados, como:

INT e INTEGER quando os


campos forem receber registros
em forma de nmeros inteiros;

racteres mximo entre parnteses


ao lado da descrio do tipo.
Dessa forma, para a mesma tabela
Cliente, os tipos dos campos so:

nr_cpf: CHAR(11);
nm_cliente: TEXT(50);
ds_endereco: VARCHAR(70);

dt_nascimento: SMALLDATETIME;
Assim, a tabela de clientes no modelo fsico fica:

TEXT quando os registros

forem ser do tipo texto;

CHAR e VARCHAR quando


os registros forem ser do tipo
nmeros, textos e/ou caracteres
especiais;
Figura 40: Tabela cliente com os campos no padro de nomenclatura

SEO 3

Estudo e caracterizao
dos atributos
Aps a definio das tabelas e
da nomenclatura dos campos,
preciso estabelecer os tipos dos
registros que sero inseridos nos

DATE, DATETIME e

SMALLDATETIME quando os
registros tm a forma de data.
Eles so inseridos ao lado do
nome do campo, separados pelo
caractere: (dois pontos).
Exemplo: nm_cliente:TEXT
Entre os tipos de dados citados,
para os tipos INT, CHAR, VARCHAR e TEXT, possvel definir
o tamanho mximo do registro
que ser inserido no respectivo
campo inserindo o nmero de ca-

Figura 41: Tabela cliente no modelo


fsico

Pronto! Depois de todo o aprendizado at ento, j possvel


construir o diagrama fsico relacional que dar origem, enfim,
ao banco de dados de um sistema
nesse caso, o sistema de uma
padaria. Transformando o DER
lgico relacional para fsico, ele ficar como na figura seguinte.

Figura 42: Diagrama fsico relacional

58

CURSOS TCNICOS SENAI

A importncia dos tipos de campos


A definio dos tipos dos campos muito importante para o correto armazenamento dos dados e para a performance nas consultas. Por exemplo,
os tipos de campos CHAR e VARCHAR armazenam os mesmos tipos
de dados e poderiam ser utilizados no campo ds_endereco. Por que,
ento, foi prefervel a utilizao do campo VARCHAR? Por um simples
motivo: o tipo de campo VARCHAR armazena apenas os caracteres que
o usurio inserir no campo.
Exemplo: Nesse campo, h espao para um registro de 70 caracteres,
mas se o usurio inserir apenas 20, sendo do tipo VARCHAR, o banco
reservar espao para apenas 20 caracteres, ao contrrio do tipo CHAR,
que, apesar de trazer mais rapidez nas consultas, reservaria espao
para os 70 caracteres, mesmo que os outros caracteres no fossem utilizados.

Ento, pensando dessa forma, por que, para o campo nr_cpf, utilizou-se
o tipo CHAR em vez do VARCHAR? A resposta est no tamanho do
campo. Um CPF sempre tem 11 dgitos e, se algum tiver menos que 11
dgitos, completado com zeros esquerda (038.479...). Dessa forma,
no h variao do tamanho dos dados, ento, a utilizao do CHAR
adequada, pois no sobrecarregaria o tamanho do banco de dados e
traria maior rapidez nas consultas das tabelas.
Imaginando que, como o nr_cpf a chave primria da tabela cliente,
receber muitas consultas, ento, vantajosa a utilizao de um tipo de
dados de tamanho fixo, o qual agilizar as pesquisas nessa tabela. Para
traduzir isso tudo para o seu real cotidiano, lembre-se da ltima vez que
voc ligou para uma operadora de celular, de carto de crdito ou at
mesmo para instituies financeiras. Qual a primeira informao solicitada? Isso mesmo, o CPF, o que refora o fato de considerar o CPF a
chave primria da tabela clientes e definir o valor como CHAR, agilizando as consultas por meio desse campo.
SAIBA MAIS
importante que voc faa uma pesquisa ao final desta unidade sobre
os tipos de campos de alguns bancos de dados. Voc pode utilizar os
sites <www.microsoft.com> e <http://dev.mysql.com> para se aprofundar no assunto.

Lembre-se: o alinhamento com


o DBA anteriormente criao
do banco de dados muito importante, pois ele que vai administr-lo e prever melhorias
ps-implementao.

Bom, at aqui, voc j aprendeu


a confeccionar os modelos conceituais, lgico e fsico, completando todo o planejamento de
um banco de dados, porm falta
cri-lo efetivamente. J tem ideia
de como isso pode ser feito? No
se preocupe, esse o assunto que
ser abordado a partir de agora.
H duas formas de criar o banco
de dados a partir do modelo fsico
relacional de dados:

Pela criao do modelo fsico


em uma ferramenta case que
permita a migrao das tabelas
e relacionamentos diretamente
para o banco de dados; ou
Pela criao manual de todas
as tabelas e relacionamentos via
comandos SQL.
Para comear esse assunto, voc
conhecer, na prxima unidade,
um pouco da ferramenta de banco de dados MySQL, e nas unidades seguintes, acompanhar um
detalhamento dessas duas formas
de criar banco de dados. Siga em
frente!

SEO 4

Sugestes para uma boa confeco do DER fsico


Um formato interessante que visa a facilitar a confeco do DER fsico
executar essa migrao do modelo lgico para o fsico em conjunto
com o DBA, onde o desenvolvedor apresenta o modelo lgico ao administrador sugerindo os formatos e tamanhos dos campos e este verifica
o diagrama versus suas consequncias em termos de armazenamento de
dados, administrao e performance do banco.
BANCO DE DADOS I

59

Unidade de
estudo 11
Sees de estudo
Seo 1 O que MySQL
Seo 2 O aplicativo EasYPHP
Seo 3 O funcionamento do MySQL
Seo 4 Pormenores

Banco de Dados MySQL

SEO 1

SEO 2

Segundo MySQL (2010a), MySQL um SGBD com larga utilizao


mundial, que utiliza a linguagem SQL como interface para comunicao.
considerado o banco de dados mais popular no mundo, possuindo
mais de 10 milhes de instalaes atualmente, entre verses gratuitas e
pagas.

Voc pode fazer o download do


MySQL, instal-lo e configur-lo
diretamente ou fazer o download
do aplicativo EasyPHP que, alm
do MySQL, traz consigo o aplicativo PHP, o web server Apache e o
gerenciador da base de dados, o
PhpMyAdmin, que podero ser
utilizados futuramente em um
projeto de um novo software integrado com o MySQL.
Segundo EasyPHP (2010), o
EasyPHP um pacote mvel
completo que traz os principais
servios para o desenvolvimento
de um sistema web, podendo ser
instalado no computador ou em
uma mdia removvel qualquer,
possibilitando o desenvolvimento
dos sistemas necessrios de qualquer computador.

O que MySQL

Figura 43: Logotipo MySQL

Por ter uma interface prtica com relao a esse contedo, por possuir
uma verso gratuita, proporcionar uma boa compatibilidade com sistemas web e possibilitar tima integrao com a linguagem PHP (Hypertext
Processor) que o MySQL foi escolhido para estudarmos.

O aplicativo EasyPHP

SAIBA MAIS
Atualmente, o MySQL encontra-se na verso 5.1 e pode ser disponvel
para download no endereo: <www.mysql.com>.

Figura 44: EasyPHP

BANCO DE DADOS I

61

Script comando executado dentro de um programa para executar determinadas aes.

A vantagem da instalao do EasyPHP sobre a instalao unicamente do


MySQL que, alm de vir com os aplicativos mencionados nesta seo,
o EasyPHP no exige maiores configuraes durante e aps a instalao,
sendo facilmente instalado e configurado em um tempo menor, exigindo inclusive mnimos conhecimentos tcnicos para tal.
SAIBA MAIS
O EasyPHP encontra-se atualmente na verso 5.3 e est disponvel no
endereo: <www.easyphp.org>.

SEO 3

O funcionamento do MySQL
O MySQL, independentemente do modo como instalado, cria estruturas dos bancos e manipula os dados via comandos de linguagem SQL,
podendo estes serem gerados via programas de apoio como o MySQL
Workbench, que ser visto na unidade 12, phpMyAdmin ou por meio
de cdigos SQL gerados manualmente, opo que ser vista na unidade
13 e a mais utilizada por desenvolvedores experientes em empresas de
grande porte.
Lembre-se de que essas formas de execuo de scripts de linguagem
SQL so apenas meios, mas apontam para um mesmo fim, que gerenciar as informaes que esto dentro do banco de dados.

62

CURSOS TCNICOS SENAI

SEO 4

Pormenores
Silva (2001) afirma que, se h algum ponto fraco no MySQL, este poderia ser atribudo ao fato de a interface para o usurio ser executada
por meio de linhas de comando que podem desalentar os usurios ou
desenvolvedores que esto iniciando no tema e acostumados com as
interfaces grficas do Microsoft Windows.
Porm, essa deficincia compensada com a instalao de um aplicativo
do tipo GUI (Graphics Users Interface) para Windows. Se voc instalar
o EasyPHP descrito na seo 2 desta unidade, voc automaticamente ter instalado tambm uma ferramenta de interface grfica, que o
PhpMyAdmin. Silva (2001) complementa ainda que o acesso e a manipulao dos dados pela interface grfica so bem mais versteis que a
interao com o DOS.
SAIBA MAIS
Outras ferramentas GUI podem ser encontradas no site do fabricante
do SGBD pelo endereo: <www.mysql.com>.

Voc j sabe criar modelos de diagramas de dados. Na prxima unidade,


voc comear a parte prtica. Prepare-se!

BANCO DE DADOS I

63

Unidade de
estudo 12
Sees de estudo
Seo 1 Utilidade de uma ferramenta case
Seo 2 MySQL Workbench
Seo 3 Criando o modelo fsico (estrutura)
Seo 4 Inserindo os dados
Seo 5 Criando o banco de dados MySQL
Seo 6 Sincronizando o DER com o banco
de dados MySQL

Utilizao de Ferramenta case


MySQL Workbench
SEO 1

Utilidade de uma ferramenta case


At o momento, voc viu modelos e diagramas de dados que podem e devem ser feitos em uma
simples folha de papel. Primeiramente, indica-se rascunhar os modelos em uma folha ou caderno,
para depois serem passados para
o computador.
H alguns softwares que suportam
a confeco do modelo fsico dos
dados e at mesmo interagem com
o banco de dados, criando automaticamente todas as tabelas, atributos e relacionamentos no banco. Esses softwares so chamados
de ferramenta case, que significa
Computer-Aided Software Engineering.
Traduzindo: Engenharia de Software Auxiliada por Computador.
Conforme Schaefer (2010), as
ferramentas case servem para automatizar atividades de gesto de
projetos de software, podendo aumentar a produtividade, diminuir
o tempo e o custo de desenvolvimento de um projeto, mantendo
um alto nvel de qualidade.
Ainda segundo Schaefer (2010),
as ferramentas case automatizam
uma grande variedade de tarefas,
entre elas, a gerao de cdigos.
Em outras palavras, com uma das
vrias ferramentas case disponveis
no mercado, voc pode confeccionar o diagrama fsico dos dados e
gerar o cdigo para criar todas as
tabelas, atributos e relacionamentos dentro de um banco de dados.

Entre as vrias ferramentas disponveis, neste livro, ser utilizada a


MySQL Workbench, por ser gratuita e apresentar alto grau de usabilidade e intuitividade, ideal para
voc que est comeando a se familiarizar com bancos de dados.

SEO 2

MySQL Workbench
Segundo MySQL (2010b), a MySQL Workbench uma ferramenta
case ou software de modelagem de
dados da empresa MySQL que
prov, ao DBA e a desenvolvedores, um conjunto de ferramentas
integradas para modelar um banco de dados, desenvolver em SQL
e administrar uma base de dados
j criada.

Ela a evoluo da ferramenta


DbDesigner, anteriormente fabricada e distribuda pela empresa Fabforce, descontinuada em
2006.
SAIBA MAIS
Atualmente, a mais nova
verso do software MySQL
Workbench a 5.2, que pode
ser adquirida gratuitamente
na pgina <http://wb.mysql.
com>.
Neste curso, sero informados apenas os conceitos macros para confeccionar o DER
fsico na ferramenta MySQL
Workbench. Esses pequenos
procedimentos no podem ser
confundidos com o manual do
software. Se voc desejar saber
mais detalhes sobre sua utilizao, deve fazer o download do
manual de utilizao no mesmo site.

SEO 3

Criando o modelo fsico


(estrutura)

Figura 45: Logomarca MySQL


Workbench

Para criar o modelo fsico no


MySQL Workbench, abra-o e clique no cone create a new EER
model e posteriormente em Add
diagram.

BANCO DE DADOS I

65


Figura 46: Iniciando um novo DER fsico
no MySQL Workbench

Utilize a barra de ferramentas do


lado esquerdo para criar o modelo
fsico que voc confeccionou na
unidade de estudo 10.
Lembre-se de criar os relacionamentos corretamente e repare
que o lado N dos relacionamentos representado por um smbolo parecido com um p de
galinha, representao normal
nas ferramentas case que voc
pode utilizar, tambm, para fazer
o modelo lgico e fsico no papel
anteriormente modelagem utilizando softwares.
Clicando duas vezes em cima das
tabelas criadas, voc poder alterar seus nomes na aba: Table e
adicionar os atributos necessrios
na aba: Columns.

Figura 47: Editando as configuraes da tabela

Sempre crie o nome das tabelas e dos atributos de acordo com um padro intuitivo.
No crie nomes como: tabela1, atributo3, XyV456 etc. Lembre-se da lio aprendida na unidade 10, sobre os padres de nomenclatura.

Repare na figura a aba Columns. Existem algumas opes que caracterizam cada atributo, entre eles, a opo PK, que indica a chave primria de
cada tabela, podendo ser escolhida mais de uma, conforme j estudado.

66

CURSOS TCNICOS SENAI

A opo NN significa Not


Null, ou seja, no nulo. Com
essa opo marcada em algum
atributo, o SGBD impede que, ao
incluir um registro na tabela, esse
atributo fique nulo, ou seja, sem
nenhum registro inserido. Lembre-se de que um campo de chave primria nunca pode ser nulo.
Ento, se voc definir um campo
como chave primria, deve automaticamente marcar tambm a
opo de NN para ela.
Outra opo importante a ser definida para cada atributo a opo
de AI, do ingls Auto Incremental. Essa opo autoincrementa
um campo. Mesmo que voc no
insira nenhum valor, o SGBD
completa esse campo a cada novo
registro. Ela muito til para as
tabelas que no tm uma predefinio de PK. No caso da tabela
Nota fiscal, por exemplo, pode-se
definir que o campo nr_nota_fiscal a PK com o campo determinado para autoincrementar a cada
novo registro, sendo que, a cada
nova Nota fiscal cadastrada, esse
campo autocompletado gradativamente (Nota fiscal 01, Nota
fiscal 02, Nota fiscal 03...).
Conforme voc estudou anteriormente, quando h um relacionamento de cardinalidade N para N
entre as tabelas, necessrio criar
uma tabela auxiliar contendo as
chaves primrias das duas tabelas que a originaram. No MySQL
Workbench, a tabela auxiliar
criada automaticamente, inclusive
com as duas chaves primrias necessrias.

Essa tabela gerada se relaciona


com as duas tabelas que a originaram de forma N para um e deve
ser considerada uma tabela normal, inclusive podendo se relacionar com outras e acrescentado os
atributos necessrios ou, at mesmo, ter seu nome alterado para o
que melhor lhe convier.

Povoada quando se diz


que uma tabela est povoada, significa que uma tabela
est cheia de dados nela inseridos.

SEO 4

Inserindo os dados
Aps criada a estrutura, hora de
inserir os dados necessrios, um
processo simples e rpido.
Quando voc est editando uma
tabela, h uma aba chamada Inserts. Ao clicar nessa aba, visualizam-se todos os campos na horizontal, em formato de colunas.
Insira manualmente os dados
desejados na primeira linha, comeando pela PK. Ao terminar,
parta para a segunda linha, e assim
por diante, at completar todos os
registros desejados.
Fazendo isso para todas as tabelas, elas (na modelagem) estaro
povoadas de dados, e o seu banco, depois de criado, j vir com
esses registros.

Figura 48: Criao da tabela auxiliar em um relacionamento N para N

BANCO DE DADOS I

67

SEO 6

Sincronizando o DER
com o banco de dados
MySQL
Para conectar-se ao banco de dados MySQL por meio do MySQL
Workbench, voc deve seguir basicamente trs passos:

criar uma conexo com o


banco de dados;
sincronizar a modelagem;
confirmar a criao e verificar

a estrutura.

Figura 49: Insero de dados nas tabelas

Prepare-se para criar efetivamente


a estrutura de seu banco de dados!

Depois da estrutura criada e dos dados inseridos, hora de criar o banco


de dados e sincronizar a modelagem com ele.

Criar uma conexo


com o banco de dados

SEO 5

Criando o banco de dados MySQL


Existem vrias formas de voc acessar o MySQL e criar um banco de
dados ou verificar sua estrutura. Mas, supondo que voc instalou o
EasyPHP, voc pode utilizar o PhpMyAdmin, programa que est inserido no pacote EasyPHP, por meio do endereo: <http://localhost/
home/mysql> para executar tal ao.
Na tela que se abrir, aparecer uma mensagem em ingls perguntando
se voc deseja criar um novo banco de dados (Create new database).
Escolha o melhor nome para banco de dados e clique em create. Como
estamos continuando o exemplo inicial de um software de controle de
uma padaria, vamos chamar esse banco de dados de padaria-silva.
Ao lado esquerdo da tela, voc ver o seu novo banco criado, possivelmente com mais um banco j pr-criado, o mydb, banco padro que
criado na instalao do EasyPHP.

68

CURSOS TCNICOS SENAI

Aps criar o seu banco de dados


conforme instrues da seo 6,
necessrio, ento, via MySQL
Workbench, criar uma conexo
para que possamos migrar a modelagem criada para esse novo
banco de dados.
Para isso, deve-se, com o seu
DER fsico aberto, clicar em:
Database e depois em Manage
Connection. Crie uma nova conexo clicando em: New e insira os parmetros de seu banco,
lembrando que, se voc instalou
o EasyPHP no mesmo computador que est desenvolvendo sua
modelagem, essa conexo dever
apontar para localhostou para o
IP 127.0.0.1, que representa seu prprio computador. Se
voc criou uma senha para o seu
banco de dados quando o criou
no PhpMyAdmin, voc tambm
deve inseri-la nessa tela.

Seus parmetros de conexo ficaro parecidos com a figura a seguir:

Figura 50: Parmetros de conexo com o banco de dados

Sincronizar a modelagem
preciso, ento, sincronizar a modelagem com o banco MySQL para
que os scripts de criao e manipulao sejam criados e automaticamente
executados no banco, criando assim todas as tabelas, campos, definindo
as chaves primrias e estrangeiras e, consequentemente, os relacionamentos.
Para sincronizar a modelagem, voc deve clicar no menu Database e
em Synchronize Model. Uma nova tela se abrir e nela voc dever selecionar sua conexo, criada anteriormente, e seguir adiante.

Figura 51: Tela de confirmao de conexo com o banco

Selecione seu banco de dados, que foi criado no PhpMyAdmin, e siga


em frente.

BANCO DE DADOS I

69

Uma tela de confirmao aparecer e, aps esse passo, voc deve confirmar o sentido da sincronizao da sua modelagem, que ser do modelo
para o destino: banco de dados.

Figura 52: Tela de seleo do banco

Observe que na prxima tela mostrado todo o script SQL que est sendo criado automaticamente pelo MySQL Workbench para gerar tabelas,
campos e relacionamentos no banco.
Voc dever, ento, clicar em executar e, quando a tela de confirmao
do sincronismo aparecer, finalizar o processo, criando a estrutura para
seu banco de dados.
Pronto! Voc j est com sua estrutura de banco de dados montada, mas,
logicamente, sem nenhuma informao armazenada. Para verificar sua
estrutura do banco, v diretamente ao MySQL por meio do PhpMyAdmin e confirme se o sincronismo foi efetuado com sucesso.

Confirmar a criao e verificar a estrutura


Acesse o endereo <http://localhost/home/mysql>. Do lado esquerdo, voc ver o(s) banco(s) de dado(s) j criado(s). Clique no banco de
dados que voc criou se voc seguiu o exemplo deste livro, o banco de
dados o padaria-silva.

Figura 53: Viso dos bancos de dados do MySQL por meio do PhpMyAdmin

70

CURSOS TCNICOS SENAI

Aparecero, ento, todas as tabelas que voc criou na modelagem. Para


mostrar seus respectivos campos, clique no cone Structure e, para
mostrar os valores que esto inseridos nos campos, clique em Browse.
Ambos os botes localizam-se ao lado de cada tabela.
Pelo PhpMyAdmin, voc tambm pode alterar a estrutura do banco,
tabelas e inserir ou excluir dados e, posteriormente, fazer a engenharia reversa para a modelagem no MySQL Workbench, mas sugere-se
executar essas alteraes sempre em lugar nico, na ferramenta case que
voc desejar e, posteriormente, sincroniz-las com o banco de dados.
Conforme voc j aprendeu, o SGBD MySQL gerencia os bancos de
dados por meio de scripts SQL. O que o MySQL Workbench faz nada
mais do que transformar a modelagem e os dados inseridos nesses
scripts para que sejam entendveis pelo MySQL, facilitando seu trabalho
e evitando que voc tenha de confeccionar o script com todos os comandos manualmente.
Repare que esse processo poder ser executado a qualquer momento,
mesmo depois de ter sido executado pela primeira vez. Por exemplo, se
depois de criada a estrutura e inseridos os dados voc precisar alter-los, faa isso na modelagem, exclua ou inclua tabelas e campos, altere
relacionamentos, chaves primrias, insira, altere ou exclua dados e sincronize-os novamente. Voc perceber que suas alteraes se refletiro
no banco de dados.
Mas, alm de consultas, possvel manipular dados e definies de estrutura e de segurana do banco de dados utilizando SQL. Esse o tema
da prxima unidade. Aproveite as aulas para trocar ideias com o professor. No fique com dvidas.

BANCO DE DADOS I

71

Unidade de
estudo 13
Sees de estudo
Seo 1 O que SQL
Seo 2 Breve histrico
Seo 3 O funcionamento
Seo 4 DDL
Seo 5 DML
Seo 6 DCL
Seo 7 Vantagens na utilizao do SQL

SQL

SEO 1

SEO 2

SEO 3

SQL significa Structure Query Language, em portugus, Linguagem


de Consulta Estruturada. Foi desenvolvida especificamente para
o padro relacional de dados e
permite no somente consultas,
como o nome indica, mas tambm manipulao de dados e
definies de estrutura e de segurana do banco de dados. Alm
do MySQL, h vrios SGBDs
atualmente que utilizam a linguagem SQL como padro para a
manuteno e gerenciamento de
seus bancos de dados, entre eles
Firebird, Microsoft SQL Server,
PostgreeSQL, ORACLE.
Segundo Korth, Silverschatz e
Sudarshan (1999), a SQL utiliza
uma combinao de construtores
em lgebra e clculo relacional e
a linguagem comercial mais utilizada do mercado, j que apresenta
certa facilidade para seus usurios.
A inteno deste livro, assim
como no caso das ferramentas
case e do MySQL, no apresentar um tutorial ou guia completo
para os usurios, desenvolvedores ou administradores do banco, mas apresentar conceitos e
sintaxes bsicas para um breve
entendimento dos fundamentos
dessa linguagem. Conceitos mais
avanados dessa linguagem so
detalhados no livro de Banco de
Dados II.

A primeira verso do SQL foi


desenvolvida no incio dos anos
1970, com o patrocnio da empresa IBM. Fundamentava-se
no modelo relacional de dados e
chamava-se SEQUEL, que significa Structure English Query Language. Segundo Abreu e Machado
(2004), a partir de 1976, essa linguagem foi revisada e ampliada
e, por razes jurdicas, teve seu
nome alterado para SQL.
Por volta de 1986, os padres para
a SQL foram renovados pela International Standarts Organization
(ISO) e pelo American National
Standards Institute (ANSI) e publicados no mercado como SQL-86.
A partir da, uma srie de revises
foram feitas por essas duas entidades e por outras.
A empresa IBM personalizou a
ento verso em 1989 e lanou
seu prprio padro, nomeado de
SQL-89. A partir de 1992, a ANSI
e a ISO revisaram diversas vezes
suas verses e lanaram no mercado o padro SQL-92 em 1992,
o SQL3 em 1999 e os padres
SQL: 2003 e SQL: 2008 em 2003
e 2008, respectivamente. Nessas
ltimas verses, foram adicionadas algumas caractersticas de
orientao a objetos, melhorados
os mtodos de consultas com a
utilizao de consultas recursivas
e iniciada a utilizao de gatilhos.

Ainda que a SQL tenha sido padronizada pelo ANSI e pela ISO,
diversos fabricantes de SGBDs
a adaptaram para seus prprios
aplicativos. Dessa forma, alguns
conceitos apresentados aqui podem variar de SGBD para SGBD,
mas foco estar nos padres atuais da ANSI, que se aplicam entre
outros, ao MySQL.
Dentro da SQL, h vrias funes
e comandos que so divididos em
grupos. Os mais conhecidos e utilizados grupos de comandos so
DDL, DML e DCL, assunto para
as trs prximas sees, nas quais
sero observadas suas caractersticas e sintaxes.

O que SQL

Breve histrico

O funcionamento

SEO 4

Comandos DDL
DDL significa Data Definition Language, em portugus, Linguagem
de Definio de Dados. Representa o conjunto de comandos
que permite criao, alterao e
excluso da estrutura das tabelas
do banco (SILVA, 2001), ou seja,
define como os dados so estruturados.
Alguns exemplos de comandos
DDL so: CREATE, ALTER e
DROP.

BANCO DE DADOS I

73

CREATE
O comando CREATE cria um
objeto, que pode ser uma tabela
ou at mesmo um banco de dados.
Sua sintaxe para criao de novos
bancos de dados : CREATE
DATABASE nome do banco de
dados Onde nome do banco de
dados, que deve ser substituda
pelo nome do seu banco de dados, sem aspas. Exemplo:
CREATE DATABASE padaria-silva

J a criao de novas tabelas dentro do banco de dados representada com a seguinte sintaxe: CREATE TABLE nome da tabela (
Descrio do campo 1
Descrio das chaves )

Agora ser observada a criao de


duas tabelas que possuem relacionamentos de N para 1, nas quais,
ao lado N, haver uma chave estrangeira (FK), que, conforme
voc j aprendeu, sempre a PK
da outra tabela que representa o
lado 1 do relacionamento.
Sero criadas as tabelas empresa
e cliente do banco de dados da
ento padaria-silva. Voc j sabe
que empresa se relaciona com os
clientes de 1 para N, ento ser
criado primeiramente o lado 1
dessa relao, que a tabela empresa, com apenas trs atributos:
CREATE TABLE empresa (
cd_empresa INT not null,
nm_empresa VARCHAR(40),
ds_endereco
VARCHAR(50),
PRIMARY KEY (cd_produto)
)

Exemplo:
CREATE TABLE produto (
cd_produto INT not null,
nm_produto VARCHAR(20),
PRIMARY KEY (cd_produto)
)

Onde cd_produto e nm_produto


representam os nomes dos campos, INT e VARCHAR o tipo do
campo, nesse caso, respectivamente campos dos tipos nmeros
inteiros e do tipo letras e nmeros
com no mximo 20 caracteres.
Primary Key representa a definio
da chave primria que, no caso
dessa tabela, o atributo cd_produto (cdigo do produto).

74

CURSOS TCNICOS SENAI

Aps o lado 1, cria-se o lado N


do relacionamento. Para isso,
preciso adicionar mais um atributo, que ser a FK, acrescentando a
sintaxe a seguir na parte de definio das chaves:
CONSTRAINT nome da constraint FOREIGN KEY (nome
do atributo)
REFERENCES nome da tabela a qual este atributo a PK
(nome desse campo dentro
dessa tabela).

CREATE TABLE cliente (


cd_cliente INT not null,
nm_cliente VARCAHR(20),
dt_nascimento DATE,
cd_empresa INT,
PRIMARY KEY (cd_produto),
CONSTRAINT c1 FOREIGN KEY
(cd_empresa)
REFERENCES
empresa(cd_empresa) )

Repare que o atributo de FK da


tabela cliente deve ser do mesmo
tipo que est configurado na tabela empresa.
Agora voc acabou de criar um
relacionamento de N para 1 entre
as tabelas Cliente e Empresa.
A sintaxe CONSTRAINT significa restrio e impede que o usurio insira
no campo de chave estrangeira um
valor que seja diferente de quaisquer valores inseridos na PK da tabela empresa.

Observe tambm que o nome c1


no representa nenhum atributo
ou tabela: simplesmente o nome
dado para a restrio criada.
Exemplificando: se h uma empresa Padaria Silva de cdigo
01, cadastrada na tabela empresa,
quando for cadastrado o cliente,
o usurio nunca poder inserir
no campo cd_empresa da tabela
cliente o cdigo 02, pois isso significaria que o cliente da empresa de cdigo 02, a qual no existe.

DROP
Dessa forma, toda a sintaxe de
criao dessa tabela fica:

J que foi possvel criar o banco


de dados e as tabelas via comandos SQL, logicamente possvel
exclu-las tambm via comandos
SQL. Para isso, utiliza-se o comando DROP, que possui a sintaxe a seguir:

DROP DATABASE nome do


banco de dados
DROP TABLE nome da tabela
Exemplos:

Alguns exemplos de comandos


DML so: INSERT, DELETE e
SELECT.

INSERT
DROP DATABASE padaria-silva
(para excluir o banco de dados
padaria-silva)
DROP TABLE produto (para excluir a tabela produto)

ALTER
Veja a sintaxe do comando ALTER, que altera a estrutura de
uma tabela:
ALTER TABLE nome da tabela(
ADD COLUMN nome do campo );
Exemplo:
ALTER TABLE produto (
ADD COLUMN ds_produto
VARCHAR(50) );

Nesse caso, o campo ds_produto


est sendo adicionado na tabela
produto, porm possvel excluir
campos substituindo o ADD pelo
DROP, renomear campos e tabelas substituindo o ADD pelo
RENAME, alterar colunas substituindo pelo CHANGE etc.

SEO 5

Comandos DML
DML significa Data Manipulation
Language, em portugus, Linguagem de Manipulao de Dados.
Engloba os comandos necessrios para alteraes, inseres e
excluses de dados dentro das
tabelas (KORTH; SILVERSCHATZ; SUDARSHAN, 1999).

O comando INSERT insere um


registro dentro dos campos das
tabelas. Sua sintaxe para insero
de registros :
INSERT INTO nome da tabela (nome do campo) VALUES
(valor do campo);
Onde nome da tabela, nome
do campo e valor do campo
devem ser substitudos respectivamente pelo nome da tabela
desejada, nome do atributo que
deseja inserir os dados e o valor a
ser inserido, sem aspas. Exemplo:
INSERT INTO produto (cd_produto) VALUES (1);

Nesse caso, voc est inserindo


o primeiro produto na tabela,
que possui cdigo 1. Mas e os
outros campos? De acordo com
os exemplos anteriores, na linguagem DDL, a tabela produtos
possui trs campos: o cd_produto, o nm_produto e o ds_produto.
Apenas foi inserido o cdigo do
produto no campo cd_produto,
que a PK dessa tabela. Ento,
necessrio inserir o restante dos
dados completando o registro, e
voc pode fazer isso de uma s
vez, ou seja, inserir dados em mais
de um campo com apenas um comando INSERT separando os
campos por vrgulas. Veja:
INSERT INTO produto (nm_produto, ds_produto) VALUES
(refrigerante, bebida com
gs 300ml);

Repare que os valores devem


estar na mesma ordem que os
campos. Essa a sintaxe bsica do comando INSERT para
atribuir valores para cada atributo, mas voc pode inserir
registros para todos os campos
de uma s vez, sem a necessidade de descrever todos os
campos, apenas inserindo os
valores na mesma ordem dos
campos. Como exemplo, ser
inserido o segundo item na tabela produto:
INSERT INTO produto VALUES (2,arroz, pacote de
arroz branco com 5 kg);

Nesse caso, foi inserido o produto arroz, que possui cdigo


2 no banco de dados, e assim
segue, sucessivamente, at inserir todos os registros desejados.

DELETE
Se voc deseja excluir alguns
registros, o comando to simples quanto o INSERT. Basta
utilizar o DELETE juntamente com a clusula WHERE.
DELETE FROM nome da
tabela WHERE descrio
dos parmetros.
Onde os parmetros so as
condies necessrias que determinaro qual registro ser
excludo. Exemplo:
DELETE FROM produto
WHERE cd_produto = 1

Nesse caso, est sendo excludo o produto 1 da tabela produto que, de acordo com o que
foi inserido anteriormente, o
produto refrigerante.

BANCO DE DADOS I

75

SELECT
Voc se lembra de que o SQL,
mesmo no sendo apenas uma
linguagem de consulta de dados,
tem seu nome ligado a essa funo, certo? Portanto, sero apresentados alguns parmetros do
comando mais comumente utilizados em um banco de dados, segundo Abreu e Machado (2004):
o SELECT, que tem a funo de
extrair dados de uma tabela.
A sintaxe bsica do comando SELECT :
SELECT nome do campo
FROM nome da tabela.
Assim como no comando INSERT, voc tambm pode selecionar vrios campos para serem
pesquisados separando-os por
vrgula:
SELECT nome do campo 1,
nome do campo 2 FROM
nome da tabela

No caso anterior, so listadas, em


uma tabela, apenas as linhas das
colunas desejadas. Exemplo:
Com o comando:

Se voc desejar listar todos os campos de uma tabela, no necessrio


descrever todos. Basta colocar o * (asterisco) no lugar dos atributos.
Assim:
SELECT * FROM produto

Com essa sintaxe, deve ser apresentado o seguinte resultado:

Figura 55: Lista de todos os campos da tabela

Caso houvesse mais campos inseridos na tabela, mais colunas apareceriam em sua respectiva ordem.

SELECT com clusulas e operadores lgicos


Em uma tabela com grande nmero de registros, os comandos anteriores, que mostram todos os registros inseridos, demandariam recursos do
servidor, podendo prejudicar sua performance. Para limitar as consultas,
trazer resultados mais limpos e onerar menos os recursos do servidor,
utilizam-se a clusula WHERE e operadores lgicos, como AND, OR e
LIKE, operadores aritmticos, como +, e / e tambm operadores de
comparao, como = , < e !.
Por exemplo, se for necessrio trazer apenas o nome do item de cdigo
1, pode-se utilizar a sintaxe:
SELECT nm_produto WHERE cd_produto = 1
Devendo apresentar o resultado:

SELECT cd_produto,nm_produto FROM produto

Devem ser apresentadas apenas


as colunas cd_produto e nm_produto conforme resultado a seguir:

Figura 56: Item de cdigo 1

Para utilizar operaes lgicas como parmetros, veja a seguir:


SELECT ds_produto WHERE cd_produto = 2 AND nm_produto LIKE arroz

Figura 54: Resultado apresentado com


o SELECT cd_produto e nm_produto

76

CURSOS TCNICOS SENAI

Essa sintaxe trar a descrio de um produto que possui cdigo 02 e


cujo nome arroz, apresentando o seguinte resultado:

Figura 57: Descrio do produto com


cdigo 2

Existem muitas sintaxes e operaes lgicas do comando SELECT e dos outros aqui apresentados, as quais devem ser
pesquisadas para melhor entendimento.

SEO 6
DCL

DCL significa Data Control Language, em portugus, Linguagem


de Controle de Dados. Como o
nome j diz, possui comandos
responsveis pelo controle de
acesso ao banco de dados, como
o GRANT e REVOKE que, respectivamente, concedem e revogam o acesso de usurios especficos a um banco de dados. Esse
processo extremamente importante para manter a segurana das
informaes constantes no banco
de dados.
Segundo Abreu e Machado
(2004), cada usurio tem uma determinada necessidade em relao
aos dados armazenados. De acordo com as definies feitas no
projeto de banco de dados, alguns
usurios somente podem consultar dados, outros podem atualizar
alguma informao, outros inserir, e assim por diante. Na maioria
dos casos, os acessos so controlados por funes e departamentos ou, tecnicamente falando, por
tabelas, sendo que as permisses
de acesso podem se dar para um
conjunto de dados.

Exemplo:
Um usurio simples da rea comercial pode consultar os dados referentes aos pedidos do ms, mas no pode alter-los e tampouco consultar
ou alterar dados de outro setor como o setor contbil. Porm, um usurio avanado do mesmo setor comercial pode, alm de consultar, alterar
os dados dos pedidos, mas continua sem ler ou alterar os dados do setor
contbil.
Para que todas essas restries sejam efetuadas, os comandos GRANT
e REVOKE so primordiais. com eles que se executam essas permisses.

GRANT
O comando GRANT, que concede acesso a uma tabela especfica a um
determinado usurio, possui a seguinte sintaxe:
GRANT lista de privilgios ON Nome da tabela TO usurio
Se for necessrio dar acesso para o usurio Vinicius para consultar a
tabela de produtos, por exemplo, a sintaxe para executar esse comando
ficaria:
GRANT SELECT ON pedido TO Vinicius

Se preferssemos dar acesso de gravao de novos registros mesma


tabela para o usurio Maurcio, a sintaxe seria:
GRANT INSERT ON pedido TO Mauricio

Assim, temos outras sintaxes, como UPDATE, que permite atualizar registros j inseridos, DELETE, que permite excluir registros, e ALL, que
concede todos os privilgios, entre outras. Se voc ainda desejar oferecer
acesso total a um usurio a uma tabela e tambm conceder acesso para
que ele possa controlar o acesso de outras pessoas, basta adicionar o
comando WITH GRANT OPTION ao final da sintaxe. Exemplo:
GRANT ALL ON pedido TO Marta WITH GRANT OPTION

Pronto, Marta agora possui poderes para executar quaisquer aes na


tabela pedidos e tambm para conceder ou revogar acesso de outros
usurios nessa tabela.

BANCO DE DADOS I

77

SEO 7

REVOKE
Assim como um administrador ou usurio avanado pode dar acesso a
outro usurio, ele tambm pode revog-lo, utilizando o comando REVOKE, que possui uma sintaxe similar ao comando GRANT. Para revogar o acesso de gravao de Paulo tabela de clientes, utiliza-se a
sintaxe a seguir:

Vantagens na utilizao
do SQL

REVOKE INSERT ON cliente FROM Paulo

Independncia entre fabrican-

Abreu e Machado (2004) apontam algumas vantagens da utilizao da linguagem SQL:


tes.

Caso se desejar retirar os acessos de seleo e insero de Felipe mesma tabela, pode-se fazer isso no mesmo comando, no qual necessrio
separar os dois privilgios por vrgulas:
REVOKE INSERT, SELECT ON cliente FROM Paulo

Agora, alm de voc j saber como criar o banco, as tabelas e inserir os


registros, tambm sabe como manter o mnimo necessrio de segurana
de acesso para garantir a segurana das informaes existentes no banco
de dados.

78

CURSOS TCNICOS SENAI

Portabilidade entre computadores.


Reduo dos custos de treina-

mento.

Isso tudo quer dizer que, mesmo


que alguns fabricantes de SGBDs
tenham personalizado os mtodos de desenvolvimento de estruturas do banco e de manipulao de dados, a imensa maioria
dos comandos padronizados pela
ANSI e ISO respeitada fazendo
com que usurios avanados, administradores e desenvolvedores
tenham conhecimentos equivalentes nos mais diversos fabricantes de SGBD aqui mencionados,
no necessitando altos investimentos em caso de troca de um
dos SGBDs por outro tambm
baseado em SQL.

Com certeza, a SQL no perfeita e apresenta tambm algumas desvantagens. Uma delas, tambm apresentada por Abreu e Machado (2004),
que o fato de ser to padronizada pode levar a uma natural inibio da
criatividade, pois o desenvolvedor retrai-se a solues nicas j predispostas na linguagem. Porm, diante de todas as vantagens que possui,
com certeza, esse e outros possveis pontos ruins so minoria e no
apresentam relevncia na escolha da linguagem manipuladora do banco
de dados.
Como a SQL a linguagem mais utilizada mundialmente em termos de
usurios e de quantidades de SGBDs atualmente disponveis, claro que
voc precisa conhecer como so feitas as transaes de bancos de dados.
Ento, fique atento! Esse o tema da prxima unidade.

BANCO DE DADOS I

79

Unidade de
estudo 14
Sees de estudo
Seo 1 Conceitos
Seo 2 Na prtica
Seo 3 Controle transacional

Transaes de Banco de Dados

SEO 1
Conceitos

Voc j ouviu falar em uma transao financeira? Provavelmente


sim, e de vrias formas, como, por
exemplo, execuo de transaes
na bolsa de valores e execuo de
emprstimos ou transferncias
bancrias. Isso so transaes, ou
seja, so ocorrncias que resultam, geralmente, em atualizao
de sua conta bancria, seja um dbito ou um crdito.

Segundo Korth, Silberschatz e Sudarshan (1999), uma transao uma


unidade de execuo de programa que acessa e [...] atualiza vrios itens
de dados [...], geralmente, o resultado da execuo de um programa
de usurio escrito em uma linguagem de manipulao de dados de alto
nvel ou em uma linguagem de programao, como por exemplo, SQL,
COBOL, C ou PASCAL.

SEO 2
Na prtica

Por exemplo, para efetuar o pagamento de um boleto pela internet, o


banco de dados do banco faz vrias operaes em ordem cronolgica,
que juntas podem ser consideradas uma transao. Nesse exemplo, a
ordem das operaes que o banco de dados da instituio financeira
executa aps o login no internet banking pode ser:
1. Verificao do cdigo de barras do boleto para confirmao de sua
veracidade.
2. Confirmao da existncia de alguma regra que poderia no permitir
ao correntista pagar esse tipo de conta.
Figura 58: Transao bancria

3. Verificao do saldo atual da conta.


4. Verificao da senha para pagamento.

Uma transao em banco de dados tem conceitos similares.

5. Efetivao do pagamento.
6. Atualizao do saldo da conta para refletir esse pagamento.

considerado uma transao


todo o conjunto de operaes
que resultam em uma consulta, podendo atualizar dados
constantes em uma tabela especfica.

Todo esse conjunto de operaes pode ser considerado uma transao


dentro do banco de dados da instituio financeira, no devendo acontecer em ordem diferente. Em caso de erro em alguma dessas operaes,
as outras operaes no devem continuar. Se houver lentido em uma
delas, a prxima obrigatoriamente dever aguardar at que esta se conclua.

BANCO DE DADOS I

81

SEO 3

Controle transacional
Internamente, uma transao pode ser executada de diversas maneiras,
sempre iniciando quando uma instruo SQL executada e terminando
quando o comando COMMIT emitido.
Voc pode estar se perguntando ento: por que as criaes de banco de
dados, de tabelas, campos e inseres de dados, considerados transaes,
no necessitavam de COMMIT, ainda que cada um daqueles comandos
sejam transaes?.
Bom, para esses comandos, o COMMIT j feito automaticamente,
sendo considerado um AUTO COMMIT. A SQL entende que cada operao uma transao. Para voc declarar que deseja fazer uma transao com vrios comandos, necessrio inici-la com a sintaxe:BEGIN
(conjunto de comandos SQL) END
O final de uma transao tambm representado por COMMIT ou
ROLLBACK, onde COMMIT informa ao banco que todas as operaes ali includas foram finalizadas com xito e ROLLBACK informa
que as operaes resultaram em algum erro e o restante da transao
no pode continuar. Aborta-se, ento, o processo e volta-se ao estado
anterior ao incio da transao.

Figura 59: Controle das transaes

82

CURSOS TCNICOS SENAI

H casos em que, se houver algum erro, importante que, mesmo assim,


uma parte da transao seja executada. Nesses casos, possvel inserir
pontos de salvamento, os savepoints, e configurar o ROLLBACK para
retornar a um ponto especfico da transao, no voltando, ento, ao
estado anterior a essa transao, mas a um estado anterior ao acontecimento do erro.

Figura 60: Controle das transaes com savepoints

Na prxima unidade, voc conhecer a normalizao e a integridade referencial, que padronizam e complementam os bancos de dados. At l!

BANCO DE DADOS I

83

Unidade de
estudo 15
Sees de estudo
Seo 1 Normalizao
Seo 2 Integridade referencial

Elementos Complementares
Normalizao e Integridade
Referencial
SEO 1

Normalizao
Normalizao em banco de dados
um processo que busca padronizao e consistncia na armazenagem, evitando redundncias de
dados e permitindo acessos consistentes s informaes ali armazenadas.
O conceito de normalizao foi
introduzido em 1970 por E. F.
Codd, um dos mentalizadores,
na mesma poca, da abordagem
relacional de dados. Essa tcnica
permite substituir um conjunto
de registros repetitivos por entidades relacionadas que apresentaro dados nicos e padronizados
(ABREU, MACHADO, 2004).

SAIBA MAIS
H vrias formas normais atualmente estabelecidas, mas no foco
deste livro abordar cada uma delas. Voc poder consult-las no livro
Sistemas de Bancos de Dados, cuja referncia se encontra ao final deste
livro.

SEO 2

Integridade referencial
A integridade referencial um conjunto de regras que fornecem a garantia de que muitas mudanas feitas no banco de dados por usurios
autorizados no resultem em perda de consistncia de dados (KORTH;
SILVERSCHATZ; SUDARSHAN, 1999). Dessa forma, possvel afirmar que a integridade protege o banco de dados de alteraes indevidas
acidentais.
Vejamos um exemplo prtico em que no banco de dados de uma padaria
h tabelas e classes de produtos. Se o produto refrigerante, e a classe
desse produto bebidas, pode-se afirmar que o produto est dentro da
classe de bebidas. Dessa forma, essas duas tabelas se relacionariam de N
para 1, conforme figura a seguir.

BANCO DE DADOS I

85

Figura 61: Tabelas de produto e classe e seu relacionamento

Para cadastrar um produto, necessrio sempre associ-lo a uma classe,


por exemplo: refrigerante a bebidas, queijo a derivados de leite, po francs classe pes. Lembre-se de que as classes no podem ser excludas
caso exista algum produto cadastrado para elas.

Figura 62: Registros das tabelas produto e classe

86

CURSOS TCNICOS SENAI

Na figura anterior no podemos excluir a categoria pes, pois existe o


item po francs cadastrado e associado a essa categoria.
Isso um resumo do que integridade referencial. Voc ver mais sobre
esse tema no livro de Banco de Dados II.
Agora que voc j viu todos os conceitos de bancos de dados, SGBDs,
modelagens, ferramenta case e comandos SQL, voc est apto para
projetar, modelar e criar um banco de dados, assim como inserir e
manipular seus registros, conceder e revogar permisses de acesso.
Conhecimento nunca demais. Continue lendo o livro e absorvendo
todo o conhecimento possvel. Interaja sempre com seu professor para
sanar suas dvidas e fazer exerccios adicionais.
As unidades 16 e 17 tratam, respectivamente, das arquiteturas atualmente
disponveis para suportar os diversos tipos de bancos de dados e mtodos
de extrao de informaes. Siga em frente e aproveite!

BANCO DE DADOS I

87

Unidade de
estudo 16
Sees de estudo
Seo 1 Sistemas de computadores pessoais
Seo 2 Plataformas centralizadas
Seo 3 Sistemas cliente-servidor
Seo 4 Sistemas distribudos

Arquiteturas de Bancos de
Dados

SEO 1

Sistemas de computadores pessoais


Para os mais variados tipos de
necessidades, h uma soluo de
banco de dados que se difere em
sua arquitetura.
Devem ser considerados vrios
aspectos para garantir a boa performance das transaes do banco de
dados, como localizao do pblico usurio, mtodos de trabalho,
nmero de consultas x alteraes,
entre outros, que so detalhados
no levantamento de requisitos e
regras de negcio na confeco
do projeto de banco de dados.
Nas prximas sees, voc ver
uma breve anlise de algumas arquiteturas de banco de dados disponveis.
Sistemas que rodam em computadores pessoais geralmente possuem um pequeno nmero de
usurios, podendo ser at mesmo
um simples usurio que deseja
controlar suas contas pessoais ou
de sua microempresa.

No exigem grandes investimentos, e um usurio avanado pode bus-

car um SGBD gratuito, instal-lo e configur-lo com auxlio de tutoriais


especficos.

SEO 2

Plataformas centralizadas
Na arquitetura centralizada, existe um computador com grande capacidade de processamento onde hospedado o SGBD.

Figura 63: Plataforma centralizada

Essa arquitetura utilizada geralmente em grandes empresas que conseguem justificar o alto investimento em infraestrutura. Nesse caso,
possvel ter milhares de usurios com acessos simultneos, o que exige
alto investimento em hardware para possibilitar boa performance do banco
mesmo com tantos acessos.

BANCO DE DADOS I

89

SEO 3

Sistemas cliente-servidor
A arquitetura cliente-servidor no deixa de fazer parte de uma arquitetura centralizada, com o processamento das transaes centralizados
em um servidor nico que, dependendo desse hardware, pode suportar
um extraordinrio nmero de usurios. A diferena que, nesse caso, o
servidor central divide o processamento com o computador do usurio
que processa a entrada de requisies, assim como as telas de acesso.

Figura 64: Plataforma cliente-servidor

Essa arquitetura tambm usada, majoritariamente, nas grandes empresas, que conseguem justificar facilmente o custo-benefcio, inclusive
aproveitando o processamento das mquinas de seus usurios.

SEO 4

Sistemas distribudos
Nessa arquitetura, a informao est distribuda em diversos servidores
e cada um deles atua como cliente-servidor, porm as requisies dos
aplicativos e usurios so feitas para quaisquer servidores sem diferenas
nos resultados.

Figura 65: Arquitetura distribuda


90

CURSOS TCNICOS SENAI

Mas, nesse caso, como e em quais servidores so armazenados os dados?


H vrias formas de se fazer isso, e uma das premissas para que um sistema distribudo realmente atenda as necessidades a definio da topologia de rede e a utilizao de infraestrutura de comunicao adequada
para possibilitar o funcionamento nessa arquitetura.

Armazenagem de dados centralizada


Bom, no parece estranho falar em armazenagem de dados centralizada
quando se est explanado um sistema de bancos de dados distribudo?
Pode parecer, mas possvel que isso acontea, j que o conceito de bancos de dados distribudos representa apenas o recebimento da requisio
dos usurios e a execuo das transaes distribuidamente, mas os dados
podem estar em apenas um lugar.
Vrios autores abordam esses conceitos de maneiras diferentes, com
suas vantagens e desvantagens, porm pode-se afirmar que um armazenamento centralizado de dados no traz alta disponibilidade ao sistema,
sendo que, se o banco de dados que est sendo utilizado para armazenar
as informaes falhar, os dados no so encontrados em outro lugar,
tornando-se um ponto de falha. Por esse ponto, cabvel, em grande
parte dos sistemas, um armazenamento de dados distribudo.

Armazenagem de dados distribuda


Nesse conceito, os dados so replicados de um servidor para todos os
outros de forma simultnea, estrutura que garante maior segurana s
bases de dados, mas exige um alto grau de investimento em infraestrutura. Considera-se esse tipo de armazenagem mais prprio s empresas que necessitam de alta disponibilidade para executar seus trabalhos,
como instituies financeiras, de logstica, de manufatura, entre outras.
Mas no basta definir qual ser o tipo de armazenagem dos dados.
preciso conhecer algumas ferramentas que do suporte tomada de deciso. Quer saber mais? Na prxima unidade voc ver!

BANCO DE DADOS I

91

Unidade de
estudo 17
Sees de estudo
Seo 1 Data warehouse
Seo 2 Business Intelligence
Seo 3 Data Minning
Seo 4 Utilizao

Tpicos Especiais Ferramentas


de Suporte Deciso
SEO 1

SEO 2

SEO 3

Antes de explanar algumas ferramentas de suporte deciso,


ideal que se tenha uma viso do
que data warehouse.
Traduzindo para o portugus, data
warehouse significa armazm de dados e prev o depsito de dados
consolidados em um local nico.
Esses dados contm o histrico
da empresa, como, por exemplo,
os clientes que compraram determinado produto em determinado
ms, valores, quantidades, formas de pagamento, entre outros
dados. Uma data warehouse pode
armazenar dados constantes em
vrios bancos de dados espalhados pela corporao, facilitando
a gerao de consultas e possibilitando suporte deciso.
Existem vrias ferramentas de suporte deciso que se aproveitam
da estrutura de um data warehouse
para poder gerar as informaes
necessrias para apoiar os executivos de uma empresa, e duas delas
sero abordadas a seguir: o Business Intelligence e o Data Minning.

Absoro de conhecimento representa exatamente o que uma


ferramenta de Business Intelligence
(BI). Voc sabe, a partir da leitura
do primeiro captulo deste livro,
que, de um banco de dados,
possvel extrair dados, e que com
eles possvel visualizar as informaes necessrias para a tomada
de deciso de certa empresa.
O BI une essas informaes em
formato dinmico, gerencial e reproduz a realidade de negcios da
corporao. Com uma ferramenta
de BI implantada, possvel, por
exemplo, observar a evoluo de
seu faturamento ao longo dos meses, a quantidade de devolues
de mercadorias, seu lucro mensal
ou a posio de estoque durante
todos os dias do ms corrente.

Data minning significa minerao


ou garimpo de dados que se referem busca de informaes
relevantes ou descoberta de
conhecimento a partir de um
grande volume de dados armazenados, possivelmente tambm
em um data warehouse. Esse tipo
de extrao de dados tenta encontrar padres estatsticos, regras e
modelos a partir dos dados armazenados e talvez seja esse um
dos maiores motivos para a busca
cada vez maior da normalizao
em banco de dados atualmente.
Voc j percebeu que, em diversas
lojas, televendas, supermercados,
entre outros estabelecimentos, ao
realizar o seu cadastro, lhe perguntam sua data de nascimento,
seu grau de instruo, estado civil
e diversas outras informaes pessoais, no mesmo? Com essas
informaes, ferramentas de data
minning permitem traar o perfil
do cliente daquele estabelecimento para se determinarem modelos
ou regras entre os mais diversos
consumidores para, a partir da,
poder criar produtos que melhor
atendam determinados perfis de
clientes.

Data warehouse

Business Intelligence

Data minning

BANCO DE DADOS I

93

SEO 4
Utilizao

O qualitativo dessas informaes reunidas em formato on-line e dinmico traz um grande conhecimento de negcios ao usurio, que pode,
por sua vez, utilizar sua sabedoria e competncia para tomar a deciso
correta quanto ao rumo da empresa.

Figura 66: Extrao da informao

A utilizao de ferramentas de BI e data minning est conquistando cada


vez mais os grandes executivos e, para que seja possvel manter esse
crescimento, necessrio que um dos pr-requisitos bsicos para o bom
funcionamento o banco de dados seja cada vez mais robusto e performtico, utilizando suas mais diversas arquiteturas para suportar as
particularidades de cada corporao.

94

CURSOS TCNICOS SENAI

Finalizando
Com o estudo desta unidade curricular, buscou-se ampliar seus conhecimentos a respeito dos principais conceitos e prticas de bancos de dados, procurando um entendimento com base em fundamentao terica e a construo de um banco de dados com base nas modelagens e instrues
prticas.
Voc pde contemplar toda a teoria em torno dos SGBDs e exercitar a modelagem de dados
confeccionando uma base de conhecimentos para poder projetar bancos de dados consistentes de
acordo com as melhores prticas utilizadas atualmente. Tudo comeou com a compreenso dos
conceitos de bancos de dados, SGBDs e modelos de dados, a fim de proporcionar aprendizado
bsico para, em seguida, praticar a modelagem, criar o banco e utilizar os comandos bsicos de SQL.
Os estudos tambm contemplaram a utilizao de ferramentas gratuitas, que atualmente esto em
ascendncia no mercado, e voc as utilizou para modelar e editar um banco de dados de acordo
com os requisitos e regras de negcio capturados de uma empresa fictcia. Conheceu e utilizou a
linguagem SQL e entendeu os conceitos de armazenagem de dados, infraestrutura de implantao
de bancos de dados e formas de extrao de informaes gerenciais de suporte deciso.
Caso algo tenha ficado para trs, volte aos estudos e aperfeioe seus conhecimentos buscando
outras fontes de informao. Lembre-se sempre de que as mudanas nessa rea so constantes, por
isso importante que voc continue seus estudos sobre o tema, prezando sempre pela busca de
melhorias das prticas aplicadas s empresas.
Sucesso para voc, e at uma prxima!

BANCO DE DADOS I

95

Referncias

ABREU, Mauricio P.; MACHADO, Felipe N. R. Projeto de banco de dados: uma viso
prtica. 11. ed. So Paulo, SP: tica, 2004.

ARAJO, Mrcio S. V.; MATOS, Katherine H. O. Gesto de projetos. Florianpolis:


3 maio, 2010.

CARVALHO, Carlos E. Testes de software. Florianpolis: no prelo.

BARBOSA, Eudes; INGRID, Anne; LABORDE, Gregory. Histria dos bancos de dados: a necessidade de armazenamento. Rio de Janeiro, [2010]. Disponvel em: <www.
scribd.com/doc/17324554/HISTORIA-DOS-Bancos-de-dados>. Acesso em: 26 out.
2010.

CANTO, Cleunisse R. L.; MEDEIROS, Marco A.; VALDO, Clayton A. Banco de dados. [Joinville]: [s.n.], fev. 1997. 43 f. (Apostila da disciplina de banco de dados, curso
tcnico em informtica, Escola Tcnica Tupy).

EASYPHP. EasyPHP. [S.I], 2010. Disponvel em:<www.easyphp.org>. Acesso em: 7


nov. 2010.

FERREIRA, Joo E; ITALIANO, Isabel C.; TAKAI, Osvaldo K. Introduo a banco


de dados. So Paulo, 2005. 124 f. (Apostila de Introduo a banco de dados). Disponvel em: <www.apostilando.com/download.php?cod=3131&categoria=Banco%20de%20
Dados>. Acesso em: 25 out. 2010.

HEUSER, Carlos A. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004.

MYSQL. MySQL: The worlds most popular open source database. [S.I.], 2010a. Disponvel em: <www.mysql.com/products>. Acesso em: 2 nov. 2010.

______. 2010b. Disponvel em: <www.mysql.com/products/workbench>. Acesso em:


14 nov. 2010.

OLIVEIRA, Jos P.M.; SANTOS, Clesio S.S. A informtica nos anos 90: alguns avanos e desafios. Porto Alegre, [1998?]. (Universidade Federal do Rio Grande do Sul,
instituto de informtica). Disponvel em: <www.buscalegis.ufsc.br/revistas/index.php/
buscalegis/article/viewFile/5681/5250>. Acesso em: 28 out. 2010.

PROJECT MANAGEMENT INSTITUTE. Project Management body of knowledge:


um em gerenciamento de projetos. 4. ed. Newtown Square, PA, 2008.

SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco


de dados. 3. ed. So Paulo, SP: Makron Books, c1999. xxii.

SCHAEFER, Roberto. Inmersin. [S.I.], maio. 2010. Disponvel em: <www.inmersion.com.br/Archive/TI/Artigos%20e%20Palestras/Palestra_Ferramenta_CASE.pdf>.


Acesso em: 13 nov. 2010.

SILVA, Luciano C. Banco de dados para web: do planejamento implementao. So


Paulo: rica, 2001.

BANCO DE DADOS I

97

UNIVERSIDADE DE MARLIA. Banco de dados. Marlia, [s.d.]. 49 f. Disponvel em:


<www.apostilando.com/download.php?cod=2837&categoria=Banco%20de%20Dados>. Acesso em: 27 out. 2010.

VIDAL, Vnia M.P. Banco de dados relacional-objeto. [Fortaleza], [200-?]. (Universidade Federal do Cear). Disponvel em: <http://disciplinas.lia.ufc.br/bdnc061/arquivos/
parteI.ppt>. Acesso em: 30 out. 2010.

98

CURSOS TCNICOS SENAI

Equipe de Desenvolvimento de Recursos Didticos


Coordenao de Educao a Distncia
Beth Schirmer
Coordenao Projetos EaD
Maristela de Lourdes Alves
Coordenao de Desenvolvimento de Recursos
Didticos
Gisele Umbelino
Projeto Educacional
Angela Maria Mendes
Israel Braglia
Projeto Grfico
Daniela de Oliveira Costa
Jordana Paula Schulka
Juliana Vieira de Lima

Design Educacional
Evelin Lediani Bao
Capa, Ilustraes, Tratamento de Imagens
Dimitre Camargo Martins
Diego Fernandes
Luiz Eduardo Meneghel
Diagramao
Flavia Akemi Ito
Reviso e Fechamento de Arquivos
Daniela de Oliveira Costa
Juliana Vieira de Lima
Reviso Ortogrfica e Normatizao
FabriCO

BANCO DE DADOS I

99