Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Banco de Dados I
Rafael Lucchesi
Diretor do Departamento Nacional do SENAI
Alcantaro Corra
Presidente da Federao da Indstria do Estado de Santa Catarina
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
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
38 Seo 3 - Atributos
40 Seo 5 - Cardinalidade
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
61 Seo 1 - Construindo um
modelo 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
98
98
93 Seo 1 - Normalizao
93 Seo 2 - Integridade referencial
Finalizando
105
Referncias
107
10
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
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.
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
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.
SEO 2
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
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:
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.
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
BANCO DE DADOS I
19
SEO 2
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
Quantidade de funcionrios: 38
Quantidade de filiais: 2
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.
Registros so conjuntos
de dados armazenados em
algum local, nesse caso, em
um banco de dados.
SEO 3
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
SEO 4
22
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
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
BANCO DE DADOS I
25
SEO 3
SEO 4
SEO 5
SEO 6
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
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.
28
SEO 7
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.
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
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.
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?
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.
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
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
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:
to ou uma pessoa;
BANCO DE DADOS I
35
SEO 3
Atributos
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.
36
Figura 21: Representao das entidades Produto e Cliente com seus atributos
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
SEO 5
Cardinalidade
Voc j reparou nos verbos que explicam os relacionamentos? So apenas fatos reais. Preste ateno:
Figura 23: Parte do DER do mdulo comercial de uma empresa de vendas de varejo
38
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.
BANCO DE DADOS I
39
Figura 26: Relacionamento do tipo muitos para um entre Nota fiscal e Cliente
40
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
SEO 1
SEO 2
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!
Portanto, sempre que criar um banco de dados, planeje, planeje, planeje e somente depois execute!
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
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.
SEO 2
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:
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:
BANCO DE DADOS I
47
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).
48
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
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:
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
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
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
52
SEO 3
BANCO DE DADOS I
53
SEO 4
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
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.
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
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
CPF do funcionrio;
nome completo;
data de nascimento;
grau de instruo.
BANCO DE DADOS I
57
nr_cpf: CHAR(11);
nm_cliente: TEXT(50);
ds_endereco: VARCHAR(70);
dt_nascimento: SMALLDATETIME;
Assim, a tabela de clientes no modelo fsico fica:
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-
58
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.
SEO 4
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
SEO 1
SEO 2
O que 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>.
BANCO DE DADOS I
61
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
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>.
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
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.
SEO 3
BANCO DE DADOS I
65
Figura 46: Iniciando um novo DER fsico
no MySQL Workbench
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
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.
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:
a estrutura.
SEO 5
68
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.
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.
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.
Figura 53: Viso dos bancos de dados do MySQL por meio do PhpMyAdmin
70
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
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 )
Exemplo:
CREATE TABLE produto (
cd_produto INT not null,
nm_produto VARCHAR(20),
PRIMARY KEY (cd_produto)
)
74
DROP
Dessa forma, toda a sintaxe de
criao dessa tabela fica:
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) );
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).
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
Caso houvesse mais campos inseridos na tabela, mais colunas apareceriam em sua respectiva ordem.
76
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
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
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
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
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
78
mento.
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
SEO 1
Conceitos
SEO 2
Na prtica
5. Efetivao do pagamento.
6. Atualizao do saldo da conta para refletir esse pagamento.
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.
82
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
86
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
SEO 2
Plataformas centralizadas
Na arquitetura centralizada, existe um computador com grande capacidade de processamento onde hospedado o SGBD.
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.
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.
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
SEO 2
SEO 3
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.
94
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.
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).
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.
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.
BANCO DE DADOS I
97
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
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