Vous êtes sur la page 1sur 68

e-Tec Brasil/CEMF/Unimontes

Escola Tcnica Aberta do Brasil


Informtica
Banco de Dados
Leandro Clementino de Almeida

Ministrio da
Educao
e-Tec Brasil/CEMF/Unimontes
Escola Tcnica Aberta do Brasil
Informtica
Banco de Dados
Leandro Clementino de Almeida
Montes Claros - MG
2011
Ministro da Educao
Fernando Haddad
Secretrio de Educao a Distncia
Carlos Eduardo Bielschowsky
Coordenadora Geral do e-Tec Brasil
Iracy de Almeida Gallo Ritzmann
Governador do Estado de Minas Gerais
Antnio Augusto Junho Anastasia
Secretrio de Estado de Cincia, Tecnologia
e Ensino Superior
Alberto Duque Portugal
Reitor
Joo dos Reis Canela
Vice-Reitora
Maria Ivete Soares de Almeida
Pr-Reitora de Ensino
Anette Marlia Pereira
Diretor de Documentao e Informaes
Huagner Cardoso da Silva
Coordenador do Ensino Profssionalizante
Edson Crisstomo dos Santos
Diretor do Centro de Educao Profssonal e
Tecnlogica - CEPT
Masa Tavares de Souza Leite
Diretor do Centro de Educao Distncia
- CEAD
Jnio Marques Dias
Coordenadora do e-Tec Brasil/Unimontes
Rita Tavares de Mello
Coordenadora Adjunta do e-Tec Brasil/
CEMF/Unimontes
Eliana Soares Barbosa Santos
Coordenadores de Cursos:
Coordenador do Curso Tcnico em
Agronegcio
Augusto Guilherme Dias

Coordenador do Curso Tcnico em Comrcio
Carlos Alberto Meira

Coordenador do Curso Tcnico em Meio
Ambiente
Edna Helenice Almeida
Coordenador do Curso Tcnico em
Informtica
Frederico Bida de Oliveira
Coordenadora do Curso Tcnico em
Vigilncia em Sade
Simria de Jesus Soares
Coordenadora do Curso Tcnico em Gesto
em Sade
Zaida ngela Marinho de Paiva Crispim
BANCO DE DADOS
e-Tec Brasil/CEMF/Unimontes
Elaborao
Leandro Clementino de Almeida
Projeto Grfco
e-Tec/MEC
Superviso
Wendell Brito Mineiro
Diagramao
Hugo Daniel Duarte Silva
Marcos Aurlio de Almeida e Maia
Impresso e Acabamento
Grfca RB Digital
Designer Instrucional
Anglica de Souza Coimbra Franco
Ktia Vanelli Leonardo Guedes Oliveira
Reviso
Maria Ieda Almeida Muniz
Patrcia Goulart Tondineli
Rita de Cssia Silva Dionsio
Presidncia da Repblica Federativa do Brasil
Ministrio da Educao
Secretaria de Educao a Distncia
e-Tec Brasil/CEMF/Unimontes Banco de Dados
AULA 1
Alfabetizao Digital
3
Prezado estudante,
Bem-vindo ao e-Tec Brasil/Unimontes!
Voc faz parte de uma rede nacional pblica de ensino, a Escola
Tcnica Aberta do Brasil, instituda pelo Decreto n 6.301, de 12 de dezem-
bro 2007, com o objetivo de democratizar o acesso ao ensino tcnico pblico,
na modalidade a distncia. O programa resultado de uma parceria entre
o Ministrio da Educao, por meio das Secretarias de Educao a Distancia
(SEED) e de Educao Profssional e Tecnolgica (SETEC), as universidades e
escola tcnicas estaduais e federais.
A educao a distncia no nosso pas, de dimenses continentais e
grande diversidade regional e cultural, longe de distanciar, aproxima as pes-
soas ao garantir acesso educao de qualidade, e promover o fortalecimen-
to da formao de jovens moradores de regies distantes, geografcamente
ou economicamente, dos grandes centros.
O e-Tec Brasil/Unimontes leva os cursos tcnicos a locais distantes
das instituies de ensino e para a periferia das grandes cidades, incenti-
vando os jovens a concluir o ensino mdio. Os cursos so ofertados pelas
instituies pblicas de ensino e o atendimento ao estudante realizado em
escolas-polo integrantes das redes pblicas municipais e estaduais.
O Ministrio da Educao, as instituies pblicas de ensino tc-
nico, seus servidores tcnicos e professores acreditam que uma educao
profssional qualifcada integradora do ensino mdio e educao tcnica,
no s capaz de promover o cidado com capacidades para produzir, mas
tambm com autonomia diante das diferentes dimenses da realidade: cul-
tural, social, familiar, esportiva, poltica e tica.
Ns acreditamos em voc!
Desejamos sucesso na sua formao profssional!
Ministrio da Educao
Janeiro de 2010
Apresentao e-Tec Brasil/CEMF/
Unimontes
e-Tec Brasil/CEMF/Unimontes Banco de Dados
AULA 1
Alfabetizao Digital
5
Indicao de cones
Os cones so elementos grfcos utilizados para ampliar as formas
de linguagem e facilitar a organizao e a leitura hipertextual.
Ateno: indica pontos de maior relevncia no texto.
Saiba mais: oferece novas informaes que enriquecem o assunto ou
curiosidades e notcias recentes relacionadas ao tema estudado.
Glossrio: indica a defnio de um termo, palavra ou expresso utilizada
no texto.
Mdias integradas: possibilita que os estudantes desenvolvam atividades
empregando diferentes mdias: vdeos, flmes, jornais, ambiente AVEA e
outras.
Atividades de aprendizagem: apresenta atividades em diferentes nveis
de aprendizagem para que o estudante possa realiz-las e conferir o seu
domnio do tema estudado.
e-Tec Brasil/CEMF/Unimontes Banco de Dados
AULA 1
Alfabetizao Digital
Sumrio
7
Palavra dos professores conteudistas ....................................... 11
Projeto instrucional ........................................................... 13
Aula 1 - Introduo ............................................................ 15
1.1 Processamento tradicional de arquivos x banco de dados ..... 17
1.2 Profssionais e atividades envolvidas em um SGBD ............. 18
1.3 Vantagens e desvantagens do uso de banco de dados ......... 18
Resumo ................................................................... 20
Atividades de Aprendizagem ........................................... 20
Aula 2 Sistemas da banco de dados (SBD): conceitos e arquitetura .. 21
2.1 Introduo ........................................................... 21
2.2 Modelos de dados ................................................... 22
2.3 Esquema ............................................................. 26
2.4 Instncia ............................................................. 26
Resumo ................................................................... 27
Atividades de Aprendizagem ........................................... 27
Aula 3 Modelagem Ae dados Modelo Entidade Relacionamento MER . 29
3.1 Introduo ........................................................... 29
3.2 Entidade, atributo e relacionamento ............................ 30
3.3 Tipos de entidades e atributos .................................... 32
3.4 Diagrama Entidade Relacionamento (DER) ...................... 33
Resumo ................................................................... 35
Atividades de Aprendizagem ........................................... 36
Aula 4 Modelagem de dados Modelo Relacional (MR) ................. 37
4.1 Introduo ........................................................... 37
4.2 Relaes, domnios, tuplas e atributos .......................... 38
4.3 Atributos-chave ..................................................... 38
4.4 Mapeamento do MER para MR ..................................... 39
Resumo ................................................................... 42
Atividades de Aprendizagem ........................................... 42
Aula 5 SQL bsico ............................................................ 45
5.1 Conceito .............................................................. 45
5.2 Comandos de defnio de dados ................................. 45
5.3 Comandos de Manipulao de Dados ............................. 49
5.4 Restries de dados ................................................ 55
Resumo ................................................................... 58
Atividades de Aprendizagem ........................................... 58
Aula 6 Integrao de banco de dados e internet ....................... 61
6.1 SGBD web ............................................................ 61
6.2 Conexo do SGBD com internet ................................... 62
Resumo ................................................................... 63
Atividades de Aprendizagem ........................................... 64
Referncias ..................................................................... 65
Currculo do professor conteudista ......................................... 66
e-Tec Brasil/CEMF/Unimontes Banco de Dados
AULA 1
Alfabetizao Digital
9
Caro estudante!
Neste mdulo, iniciaremos os estudos sobre banco de dados. Nele,
teremos a oportunidade de aprender os principais conceitos, recursos, apli-
caes e servios trabalhados em banco de dados.
Por acaso, j teve a oportunidade de estudar alguma coisa sobre
banco de dados? No? Ento, este momento ser muito proveitoso para todos
ns. Caso j tenha algum conhecimento sobre banco de dados, os estudos
realizados no sero menos importantes, pois haver um momento de relem-
brar coisas e de tambm aprender assuntos novos.
Dito isto, que tal comearmos nossos estudos?
O termo banco de dados, assim como as tecnologias de bancos de
dados, tem ganhado cada vez mais importncia e est se tornando cada dia
mais til e popular, com a expanso da utilizao dos computadores.
Os bancos de dados e os sistemas de bancos de dados tornaram-se
componentes essenciais no cotidiano da sociedade moderna. Em nosso coti-
diano, deparamo-nos com diversas atividades que envolvem alguma intera-
o com banco de dados. Um exemplo a utilizao de servios bancrios,
como depsito, saque, pagamentos de contas etc. Todos esses servios so
possveis graas a um bom sistema de banco de dados. Outros exemplos: se
acessamos o catlogo de uma biblioteca virtual (informatizada) para consul-
tar uma bibliografa; se compramos produtos, como livros, brinquedos, equi-
pamentos eletrnicos etc., ou de um fornecedor por intermdio de sua pgi-
na na internet (na web); se fazemos reservas em um hotel ou para a compra
de passagens areas ou terrestres; quase que certamente, essas atividades
envolvero uma pessoa e/ou um programa de computador que acessar um
banco de dados.
H alguns anos apenas, as grandes empresas se benefciavam da uti-
lizao de sistemas de banco de dados, porm, a sua implementao vem ga-
nhando espao at mesmo em pequenas empresas e em pequenos comrcios.
Essas interaes so exemplos do que podemos denominar aplica-
es tradicionais de banco de dados, nos quais, a maioria das informaes
que so armazenadas e acessadas apresenta-se em formatos textual ou nu-
mrico. Alm disso, cada vez mais crescente a utilizao de bancos de
dados que armazenam dados multimdia, geogrfcos e vetoriais. Nos ltimos
anos, os avanos tecnolgicos geraram aplicaes bastante inovadoras e in-
teressantes dos sistemas de banco de dados.
Neste mdulo, voc ter condies de desenvolver seus conheci-
mentos sobre banco de dados, pois trataremos, aqui, dos fundamentos e da
prtica desse contedo.
Palavra do professor conteudista
e-Tec Brasil/CEMF/Unimontes Informtica 10
Voc ter oportunidade, ao longo da leitura das aulas, de perceber
que a utilizao de banco de dados e sistemas de banco de dados faz parte
do seu cotidiano e fundamental para o conhecimento da rea de inform-
tica, principalmente na rea de desenvolvimento.
Neste sentido, o contedo deste caderno didtico foi elaborado
adotando-se uma dinmica de organizao na qual partiu-se de uma introdu-
o sobre a temtica, passando pelos conceitos fundamentais dela, na busca
da sua compreenso sobre banco de dados e sobre a importncia deste na
formao do tcnico em Informtica.
Assim, na Aula I, voc ser introduzido nos conceitos de banco de
dados, sistema gerenciador de banco de dados (SGBD), sistema de banco
de dados. Ser apresentado um breve comparativo entre banco de dados
e processamento tradicional de arquivos, alm de apresentar situaes nas
quais no se necessita de um SGBD. Daremos continuidade a essa iniciao
na Aula II, abordando conceitos de modelos de dados e os principais, e ainda
esquema e instncias.
Na Aula III, voc ser apresentado modelagem de dados e ir co-
nhecer, especifcamente, o Modelo Entidade Relacionamento e seus princi-
pais conceitos, como entidade, atributo, relacionamento, tipos de entidades
e atributos e Diagrama de Entidade Relacionamento. Na Aula IV, voc conhe-
cer o modelo de dados relacional, tido como o mais utilizado no mundo, e
tambm os principais conceitos envolvidos nesse modelo.
Na Aula V, ser apresentada a linguagem estruturada de consulta
(SQL) e seus principais recursos.
Finalmente, na Aula VI, voc ter oportunidade de conhecer como
se faz a integrao do banco de dados com a internet.
Assim, esperamos que, ao fnal desta disciplina, voc esteja habi-
litado a:
especifcar projeto fsico e lgico de banco de dados;
gerenciar transaes de banco de dados por intermdio do uso
de mtodos, tcnicas e ferramentas que envolvam os elementos
de gesto de dados e transaes;
estar familiarizado com a tecnologia de banco de dados, en-
volvendo linguagens de defnio, consulta a banco de dados e
aspectos de segurana e integridade.
Sugerimos que voc dedique tempo sufciente para fazer a leitura,
realizar as atividades e retirar suas dvidas. Sempre que considerar necess-
rio, volte ao texto e refaa as atividades! No se limite a este material; faa
pesquisas, converse com professores e colegas. Voc ver que aprender
uma interessante aventura!
Bons estudos!
Leandro Clementino de Almeida
e-Tec Brasil/CEMF/Unimontes Banco de Dados
AULA 1
Alfabetizao Digital
11
Disciplina: Banco de Dados (carga horria: 60h).
Ementa: Conceituao sobre banco de dados. Identifcao e an-
lise de modelos de bancos de dados. Identifcao e aplicao de um mode-
lo de banco de dados. Conceituao de sistemas de gerncia de banco de
dados multiusurio. Conceituao e anlise de caractersticas prprias de
sistemas de gerenciamento de banco de dados multiusurio: gerenciamento
de transaes, controle de concorrncia, recuperao de falhas, segurana
e integridade de dados. Comparao de abordagens no convencionais para
bancos de dados; integrao de bancos de dados e internet.
AULA OBJETIVOS DE APRENDIZAGEM MATERIAIS
CARGA
HORRIA
Aula 1.
Introduo
- Conceituar os principais termos de
banco de dados;
- distinguir processamento de arqui-
vos tradicional de banco de dados;
- apresentar aspectos referentes
importncia da aplicao e do uso de
banco de dados;
- possibilitar ao aluno defnir quando
no for aconselhada a utilizao de
um SGBD.
- 8h
Aula 2.
Sistemas de
banco de da-
dos: conceitos
e arquitetura
- Apresentar os principais conceitos
envolvidos em sistemas de banco de
dados, bem como sua arquitetura,
seus componentes e, principalmente,
os modelos de dados mais relevantes;
- tornar o aluno capaz de identifcar
um modelo de dados e, com isto, criar
e desenvolver a modelagem de um
projeto de banco de dados em qual-
quer um dos modelos apresentados.
- 8h
Aula 3.
Modelagem de
dados Mo-
delo Entidade
Relaciona-
mento (MER)
- Descrever os conceitos envolvidos na
Modelagem Entidade Relacionamento;
- apresentar os principais termos
utilizados na construo de um banco
de dados no MER;
- possibilitar aos alunos construir o
conhecimento para a criao de mo-
delos e diagramas ER, com os respec-
tivos relacionamentos.
- 12h
Projeto instrucional
e-Tec Brasil/CEMF/Unimontes Informtica 12
Aula 4.
Modelagem de
dados Mode-
lo Relacional
(MR)
- Conceituar e apresentar os princi-
pais elementos do Modelo Relacional;
- demonstrar as principais aplicaes
do modelo na construo de projeto
de banco de dados relacional;
- realizar o mapeamento do Modelo
Entidade Relacionamento (MER) para
o Modelo Relacional (MR).
- 12h
Aula 5.
Linguagem
de consulta
estruturada
(SQL) - bsico
- Apresentar os principais conceitos
sobre linguagem de consulta estrutu-
rada (SQL);
- realizar estudos sobre DDL e DML;
- realizar aplicaes prticas dos prin-
cipais comandos SQL;
- defnir e criar restries de dados
em SQL.
- 16h
Aula 6.
Integrao de
banco de da-
dos e internet
- Apresentar a importncia do uso de
SGBD integrados internet;
- apresentar o processo de conexo de
um sistema com o banco de dados na
internet;
- demonstrar como se realiza a cone-
xo do sistema com o banco de dados
na web.
- 4h
e-Tec Brasil/CEMF/Unimontes Banco de Dados
AULA 1
Alfabetizao Digital
13
Aula 1 - Introduo
Objetivos
conceituar os principais termos de banco de dados;
distinguir processamento de arquivos tradicional de banco de
dados;
apresentar aspectos referentes importncia da aplicao e do
uso de banco de dados;
possibilitar ao aluno defnir quando no for aconselhada a utili-
zao de um SGBD.
Voc j parou para pensar no crescimento do uso de computadores
em nosso cotidiano? E na quantidade de empresas e de lojas comerciais que
fazem uso de sistemas para gerenciar seus negcios? Pois o banco de dados
(BD) e as demais tecnologias em volta dele esto entre os principais elemen-
tos que provocam um grande impacto no crescimento do uso de computa-
dores na sociedade moderna. O BD representa uma ferramenta essencial
em quase todas as reas nas quais os computadores so utilizados, incluindo
negcios diversos, comrcio eletrnico, Engenharia, Medicina, Direito, Edu-
cao e as Cincias da Informao, para citar apenas algumas delas.
Bom, antes de continuarmos a falar deste termo to importante e
til nos dias atuais, preciso defni-lo. Vamos aprender?
Uma defnio bastante genrica dada por Elmasri & Navathe (2005):
Um banco de dados uma coleo de dados relacionados. Os da-
dos so fatos que podem ser gravados e que possuem um signifca-
do implcito. Por exemplo, considere nomes, nmeros telefnicos
e endereos de pessoas que voc conhece. Esses dados podem ter
sido escritos em uma agenda de telefones ou armazenados em um
computador, por meio de programas como o Microsoft Access ou
Excel. Essas informaes so uma coleo de dados com um signi-
fcado implcito, consequentemente, um banco de dados.
Como a defnio anterior muito genrica, para evitar entendi-
mentos equivocados, os mesmos autores descrevem ainda que um banco de
dados possui as seguintes propriedades:
um banco de dados uma coleo lgica coerente de dados com
um signifcado inerente; uma disposio desordenada dos dados
no pode ser referenciada como um banco de dados;
um banco de dados projetado, construdo e populado com da-
dos para um propsito especfco; um banco de dados possui um
conjunto pr-defnido de usurios e aplicaes;
um banco de dados representa algum aspecto do mundo real, o
qual chamado de minimundo; qualquer alterao efetuada
no minimundo automaticamente refetida no banco de dados.
As leituras auxiliares
so sempre importantes
e enriquecedoras. No
deixe de faz-las!
Populado: o mesmo que
alimentado/povoado, de
acordo com Figueiredo
(2011).
e-Tec Brasil/CEMF/Unimontes Informtica 14
Para melhor entendimento, podemos destacar alguns ingredientes
necessrios em um BD, conforme Elmasri e Navathe (2005):
uma fonte de dados da qual so derivados os dados;
a interao com o mundo real;
o pblico que demonstra interesse nos dados contidos no banco
de dados.
Sendo assim, um banco de dados pode ser de qualquer tamanho e
de complexidade varivel; pode ser gerado e mantido manualmente ou pode
ser automatizado (computadorizado). Desta forma, um BD pode ser cria-
do e mantido por um conjunto de programas desenvolvidos especialmente
para isto, ou ainda melhor, por um Sistema Gerenciador de Banco de Dados
(SGBD). Um SGBD permite que as pessoas (os usurios) criem e manipulem
seus bancos de dados. O objetivo principal de um SGBD proporcionar um
ambiente efciente para o armazenamento e para a recuperao das infor-
maes no banco de dados. (ELMASRI; NAVATHE, 2005).
O conjunto formado por um banco de dados mais as aplicaes que
manipulam esse banco (o SGBD) chamado de Sistema de Banco de Dados
- SBD, conforme ilustra a fgura a seguir.
Figura 1: Constituio de um SGBD.
Fonte: Acervo prprio.
Os bancos de dados so implementados e utilizados em diversas
reas. Vamos conhec-las? A seguir, esto relacionadas algumas delas.
Instituies de ensino: para informaes administrativas, de
alunos, cursos, notas etc.
Empresas de energia: para a gerncia do consumo de energia,
gerao de contas etc.
Bancos: para informaes de clientes, contas, emprstimos, f-
nanciamentos e todas as transaes bancrias.
Meio ambiente: para o controle das questes climticas, infor-
maes sobre desmatamentos, sobre o solo etc.
Transaes com carto de crdito: para compras com cartes
e gerao de faturas.
Telecomunicao: para manter registros de chamadas, geren-
ciar contas, gerenciar informaes de conectividade, links de
internet etc.
Finanas: para armazenar informaes de compras, vendas etc.
Indstria: para gerenciamento e controle da produo e de to-
dos os itens envolvidos.
e-Tec Brasil/CEMF/Unimontes Banco de Dados 15
Recursos humanos: para informaes sobre funcionrios, sal-
rios, lanamentos em folha de pagamento (benefcios e impostos
pagos), gerao de contracheques.
Outras reas.
Na verdade, um banco de dados pode ser utilizado em qualquer
rea. Tudo depender da necessidade.
1.1 Processamento tradicional de arquivos x
banco de dados
Voc sabe a diferena que h entre fazer uso de processamento tra-
dicional de arquivos para acessar informaes e utilizar um banco de dados?
Bem, isto que iremos explicar ao longo deste caderno e tambm alguns
outros assuntos correlacionados.
Antes de falar do processamento de arquivos e do banco de dados
propriamente dito, preciso esclarecer que o SGBD possui uma caracters-
tica de autoinformao que tem a capacidade de manter os dados na forma
como so armazenados, constituindo, assim, em uma descrio completa do
banco de dados. Essas informaes so armazenadas num local que contm
a estrutura de cada arquivo, o tipo e o formato do armazenamento de todos
os tipos de dados, chamado catlogo do SGBD. O que faz com que este possa
manipular diversas bases de dados. (ELMASRI; NAVATHE, 2005).
No processamento de arquivos, o programa que manipula os dados
dever conter as informaes do catlogo do SGBD, fcando limitado a mani-
pular as informaes que o mesmo conhece.
No processamento tradicional de arquivos, os usurios criam e de-
fnem os arquivos necessrios para cada aplicao especfca, resultando em
grandes redundncias e, muitas vezes, no desperdcio de espao de armaze-
namento. Normalmente, nesses arquivos, no existe qualquer estruturao
dos dados nele contidos.
Em banco de dados, no armazenado somente o banco em si, isto
, os dados, mas sim um catlogo de dados.
Em banco de dados, o acesso s informaes no requer conheci-
mento das estruturas do mesmo, o que chamamos de independncia dos
dados, de acordo com Elmasri e Navathe (2005). J no processamento tradi-
cional de arquivos, o acesso a qualquer informao requer um conhecimento
prvio da estrutura do arquivo.
Em banco de dados, quando houver qualquer alterao na estrutura
dos dados, os programas (SGBD) no precisam ser alterados. J em proces-
samento tradicional, no. Neste caso, toda alterao na estrutura dos dados
exigiria uma alterao nos programas que manipulam as informaes dos
arquivos.
Ainda segundo o autor supracitado, em banco de dados, as informa-
es do catlogo so chamadas de metadados.
Autoinformao:
o mesmo que ter
informao de si
mesmo.
e-Tec Brasil/CEMF/Unimontes Informtica 16
1.2 Profssionais e atividades envolvidas em um
SGBD
Por acaso, voc conhece algum profssional que trabalha com banco
de dados? Ou mesmo que utilize o banco de dados por meio do acesso aos
sistemas empregados no trabalho, por exemplo?
Pois bem, em um banco de dados pequeno, por exemplo, de uso pes-
soal, uma nica pessoa ser quem vai defnir, construir e manipular o banco
de dados. Porm, em um grande banco de dados, com dezenas, centenas (ou
milhes) de usurios e com restries de acesso para cada um, necessrio um
controle rgido sobre o mesmo e, neste sentido, podemos identifcar e destacar
alguns perfs de pessoas que interagem com banco de dados, conforme desta-
cam Elmasri e Navathe (2005):
administrador do banco de dados (DBA);
projetista do banco de dados;
analista de sistemas;
programador de aplicaes;
usurio fnal.
Cada um desses profssionais encarregado de uma srie de fun-
es inerentes ao seu perfl. Sendo assim, segue, a seguir, uma descrio
das atividades desenvolvidas por cada um deles, segundo Elmasri e Nava-
the(2005).
Administrador de dados (DBA): o supervisor do banco de dados,
responsvel pela autorizao de acesso ao banco, pelo monitoramento e
pela coordenao do uso. Est envolvido com os aspectos fsicos do banco de
dados (estruturas de armazenamento, mtodos de acesso etc.).
Projetistas do banco: so responsveis pela identifcao dos da-
dos e pela elaborao de estruturas apropriadas para armazen-los. Para
isto, necessrio compreender os requisitos necessrios aos grupos de usu-
rios do banco de dados antes de sua implementao.
Analista de sistemas: determina os requisitos dos usurios e desen-
volve especifcaes que atendam estes requisitos.
Programadores: implementam as especifcaes na forma de pro-
gramas, elaborando toda a documentao.
Usurio (fnal): um banco de dados existe para a utilizao do usu-
rio fnal, cujo trabalho, normalmente, requer consultas e atualizaes. A
maioria dos usurios utiliza programas voltados ao desempenho profssional,
utilizando-os em seu dia a dia.
1.3 Vantagens e desvantagens do uso de banco
de dados
Que tal comearmos com as vantagens? O uso de banco de dados
nos proporciona diversas vantagens em relao ao mtodo de processamento
tradicional de arquivos. A seguir, veremos algumas dessas vantagens e des-
vantagens observadas na obra de Elmasri e Navathe (2005).
e-Tec Brasil/CEMF/Unimontes Banco de Dados 17
Controle sobre a redundncia: reduo do espao necessrio
para armazenamento, eliminao da duplicao de esforos na
manuteno das informaes e reduo de inconsistncia na
base de dados.
Compartilhamento de dados: se diversos usurios tm aplica-
es integradas no BD, precisa-se de um software de controle
de concorrncia para a atualizao do banco. Facilidade na def-
nio da viso do usurio, especifcando uma poro do BD que
tem interesse particular de um grupo de usurios.
Restrio de acesso no autorizado: possui um sistema de se-
gurana que garantia o acesso especfco a cada usurio (perso-
nalizado para grupos ou individual), possibilitando maior segu-
rana ao BD.
Fornecimento de mltiplas interfaces: disponibiliza vrios ti-
pos de interface de acesso aos dados, dependendo dos nveis de
conhecimento entre os usurios. O BD permite o uso de lingua-
gem para consulta de usurios casuais; linguagem de programa-
o, para o programador de aplicaes; formulrios e menus,
para acesso de outros usurios etc.
Forar restries de integridade: permite a defnio de regras
associadas aos dados, como identifcao do tipo de dado, dado
de tipo nico, impossibilidade do dado no ser informado (ser
nulo), relacionamento entre os dados armazenados etc. Isto ir
difcultar a ocorrncia de erro, porm, ele ainda poder acon-
tecer.
Sistema de backup e recovery: possui controle do BD, no caso
de falha do hardware ou do software, permitindo a recuperao
da situao anteriormente encontrada de forma gil e prtica.
Outras vantagens de BD: quanto ao desenvolvimento de pa-
dres, permite ao DBA defnir e forar padres (nomenclaturas,
formatos, terminologias etc.), facilitando a comunicao e a co-
operao entre os setores, projetos e usurios dentro da orga-
nizao; Garante maior fexibilidade ao permitir alteraes na
estrutura do BD. Projetar e implementar uma nova aplicao
mais rpido em um BD existente do que se ele no existisse ou
fosse feito sobre a abordagem tradicional de arquivos. Torna dis-
ponvel o BD para todos os usurios (com permisso de acesso),
devido ao controle de concorrncia e recuperao do SGBD.
Contudo, cabe ressaltar tambm que existem algumas situaes nas
quais desaconselhado o uso de banco de dados. Vamos ver em quais situa-
es isto acontece?
As desvantagens ocorrem quando:
seu uso apresentar um custo desnecessrio em relao aborda-
gem tradicional de arquivos;
requerer um alto investimento inicial com software e hardware;
gerar uma sobrecarga na proviso de controle de segurana,
controle de concorrncia, recuperao e integrao de funes;
o banco de dados e as aplicaes so simples, bem defnidas e
no necessitam de mudanas no projeto;
Backup:
o processo de criar
cpia dos dados.
Recovery:
a restaurao dos
dados backupeados.
e-Tec Brasil/CEMF/Unimontes Informtica 18
h necessidade de processamento em tempo real de certas apli-
caes, que seriam extremamente prejudicadas pela sobrecarga
causada pelo uso de um SGBD;
os mltiplos acessos no so necessrios.
Resumo
Nesta aula, voc aprendeu:
conceitos envolvidos em banco de dados;
a importncia de um bom banco de dados, principalmente em
relao ao mtodo de processamento tradicional de arquivos;
quando usar e quando no usar um banco de dados.
Atividades de aprendizagem
1. Informe um conceito para defnir banco de dados.
2. Quais so as reas do mundo globalizado que se utilizam da tecnologia
de banco de dados?
3. Um grupo qualquer de informaes pode ser considerado um banco de
dados? Por qu?
4. Quais so os elementos essenciais para se afrmar que um determinado
conjunto de informaes , de fato, um banco de dados?
5. Qual a diferena entre processamento tradicional de arquivos e banco
de dados?
6. O que o catlogo do SGBD? E metadados?
7. O que signifca independncia de dados em banco de dados?
e-Tec Brasil/CEMF/Unimontes Banco de Dados
AULA 1
Alfabetizao Digital
19
Aula 2 Sistemas de banco de dados
(SBD): conceitos e arquitetura
Objetivos
apresentar os principais conceitos envolvidos em sistemas de
banco de dados, bem como sua arquitetura, seus componentes
e, principalmente, os modelos de dados mais relevantes;
tornar o aluno capaz de identifcar um modelo de dados e, com
isto, criar e desenvolver a modelagem de um projeto de banco
de dados em qualquer dos modelos apresentados.
2.1 Introduo
J tinha ouvido falar em sistema de banco de dados (SBD)? Acredito
que, alguns, sim; mas, de qualquer forma, nesta aula, iremos abordar diver-
sos conceitos envolvendo sistemas de banco de dados, a arquitetura de um
sistema de banco de dados e seus componentes e, principalmente, apresen-
tar os modelos de dados mais conhecidos e utilizados.
Para melhor compreenso de um SBD, segue, a seguir, na fgura 02,
um diagrama simplifcado com a sua arquitetura.
Figura 2: Diagrama simplifcado da arquitetura do sistema de banco de dados.
Fonte: Disponvel em: <http://www.ime.usp.br/~andrers/aulas/bd2005-1/aula5.html>. Acesso em
03 de abril de 2011.
No fque preso apenas
a este caderno; busque
outras fontes de estudo
sobre banco de dados.
e-Tec Brasil/CEMF/Unimontes Informtica 20
A fgura 2 nos ilustra os principais elementos de um SBD:
o banco de dados: dados armazenados e metadados ou catlogo
de dados;
SGBD: processador/otimizador de consultas e software para
acessar os dados;
SBD: banco de dados + SGBD + programas aplicativos/consultas.
2.2 Modelos de dados
Para ter condies de construir projetos de banco de dados, preci-
so, antes, conhecer e entender os modelos de dados. Vamos comear, ento?
De acordo com Silberschatz, Korth & Saudarshan (1999), uma gran-
de vantagem do uso de banco de dados o poder de abstrao dos dados que
o banco permite. Neste caso, o usurio no necessita conhecer detalhes do
armazenamento de dados para acess-los ou manipul-los.
Os modelos de dados so um conjunto de conceitos utilizados para
a descrio da estrutura de um banco de dados. A estrutura de um banco
de dados deve ser entendida como sendo a defnio dos tipos de dados, dos
relacionamentos e das restries que devem suportar os dados.
Baseando-nos em Elmasri e Navathe (2005), os modelos de dados
podem ser classifcados em trs tipos bsicos, descritos a seguir.
2.2.1 Modelo de alto nvel
Tambm conhecido como modelo de dados conceituais,descreve
os dados como os usurios os percebem, segundo Elmasri e Navathe (2005).
Como exemplos de modelos de alto nvel, podemos destacar dois
tipos, dados a seguir.
Modelo Entidade Relacionamento: o Modelo Entidade Relacio-
namento (E-R) baseado em uma percepo de um mundo real,
que consiste em uma coleo de objetos bsicos, chamados en-
tidades, e de relaes entre esses objetos, chamadas de relacio-
namentos. Este modelo ser mais bem descrito na aula 3 deste
caderno. A fgura 3 apresenta um exemplo do Modelo Entidade
Relacionamento. Nesta fgura, est representado o modelo de
um pequeno banco de dados, composto das tabelas Pessoa e
Computador, que registram as informaes de todas as pessoas
que utilizam os computadores de uma lan house, por exemplo.
Figura 3: Exemplo de banco de dados do Modelo Entidade Relacionamento.
Fonte: Disponvel em: <http://lh6.ggpht.com/franciscogpneto/SLCf7mfnSuI/AAAAAAAAGM8/E77w-
LNEf3o/s1600-h/image%5B3%5D.png>. Acesso em 05 de abril de 2011 (Francisco G. P. Neto).
Lan house:
um local para as
pessoas acessarem a
internet. Normalmente
cobrada uma taxa.
(SAWAYA, 1999)
e-Tec Brasil/CEMF/Unimontes Banco de Dados 21
Modelo orientado a objeto: Assim como o modelo ER, o modelo
orientado a objetos tem por base um conjunto de objetos. Um
objeto contm valores que so armazenados em variveis; es-
tes valores de variveis so conhecidos como instncias dentro
do objeto. Alm disso, um objeto contm conjuntos de cdigos
(chamados de operaes) que operam o objeto. A principal mo-
tivao para o surgimento desse modelo foi a necessidade de
extrapolar os limites de armazenamento e de representao se-
mntica dos dados, impostos pelo modelo relacional (tido como
a melhor soluo at ento). A princpio, achava-se que o mode-
lo orientado a objeto dominaria o mercado de banco de dados,
porm isso no se confrmou e, o modelo relacional ainda o
modelo mais empregado pelas empresas ao redor do planeta.
Com sua maior fexibilidade e robustez o modelo orientado a
objeto tornou-se uma boa soluo em sistemas complexos que
lidam com tipos de informaes variadas (geogrfcas, multim-
dia, vetoriais etc.) e em grande volume. Podemos citar como
exemplos desse modelo os sistemas de informaes geogrfcas
(SIG), os sistemas CAD e CAM, que so mais facilmente constru-
dos usando tipos complexos de dados. Na fgura 4, a seguir, est
um pequeno exemplo de banco de dados orientado a objetos,
demonstrando um sistema de registro de informaes de clien-
tes, dos ttulos (flmes) e de todos os movimentos/locaes de
ttulos efetuados pelos clientes. (ELMASRI; NAVATHE, 2005).
Figura 4: Exemplo de banco de dados do modelo orientado a objeto.
Fonte: Disponvel em: <http://jpleonidas.fles.wordpress.com/2009/12/001.png>. Acesso em 05 de
abril de 2011 (J. P. Leonidas).
Os CADs so programas
que se utilizam de
tcnicas grfcas para
o desenvolvimento
de projetos; o CAM
todo processo de
fabricao controlado
por computador. Os
dois juntos (CAD/CAM)
formam um conjunto
de ferramentas
muito utilizadas pela
Engenharia para a
criao de projetos.
(SAWAYA, 1999).
e-Tec Brasil/CEMF/Unimontes Informtica 22
2.2.2 Modelo de baixo nvel
Conhecido como modelo de dados fsicos, descreve os detalhes de
como os dados esto armazenados no computador, de acordo com Elmasri e
Navathe (2005). Este modelo tem relao direta com a mquina, o hardware.
Geralmente, mais til e signifcativo para os especialistas em har-
dware de computador.
No possui exemplos de modelos diagramados descritos na litera-
tura, pois atua em nvel de hardware e, alm disso, no objeto de estudo
deste caderno didtico.
2.2.3 Modelo de dados representacionais
Modelo intermedirio que oferece os conceitos que podem ser en-
tendidos pelos usurios fnais e tambm dispe de informaes de como os
dados esto organizados dentro do computador, conforme relatam Elmasri e
Navathe (2011). Normalmente, utilizado pelos especialistas. Este modelo
o mais utilizado em SGBDs comerciais tradicionais.
Como exemplos de modelos de dados representacionais, podemos
destacar os trs que so descritos a seguir.
Modelo relacional: utiliza um conjunto de tabelas para repre-
sentar tanto os dados como a relao entre eles. Cada tabela
possui, normalmente, diversas colunas, e cada uma possui um
nome nico. Este modelo ser mais bem descrito na aula 4 deste
caderno. A fgura apresenta um exemplo de banco de dados bem
simples, no qual existem apenas duas tabelas, Empregado e
Departamento, sendo que cada empregado est ligado a ape-
nas um departamento.
Figura 5: Exemplo de banco de dados do modelo relacional.
Fonte: Disponvel em: <http://lh3.ggpht.com/franciscogpneto/SMWGV0ACPjI/AAAAAAAAGrY/
Zd2ORsFnAz4/image_thumb%5B2%5D.png>. Acesso em 05 de abril de 2011 (Francisco G. P. Neto).
e-Tec Brasil/CEMF/Unimontes Banco de Dados 23
Modelo de rede: neste modelo, os dados so representados por
um conjunto de registros, e as relaes entre esses registros
so representadas por links (ligaes), os quais podem ser vistos
por ponteiros (setas). Os registros so organizados no banco de
dados por um conjunto arbitrrio de grfcos. O modelo em rede
possibilita acesso a qualquer n da rede sem passar pela raiz da
rede, diferentemente do modelo hierrquico. Um exemplo de
sistema/empresa que utilizou o modelo em rede foi o sistema
comercial CAIDMS, da Computer Associates. O exemplo apresen-
tado a seguir, na fgura 6, ilustra o mesmo banco de dados do
modelo relacional anterior, porm, agora, no modelo de rede.
Figura 6: Exemplo de banco de dados do modelo em rede.
Fonte: Disponvel em: <http://lh5.ggpht.com/franciscogpneto/SMWG3zwANyI/AAAAAAAAGrg/
ustUmKAn7bw/image_thumb%5B2%5D.png>. Acesso em 05 de abril de 2011 (Francisco G. P. Neto).
Modelo hierrquico: o modelo hierrquico assemelha-se ao mo-
delo em rede, uma vez que os dados e as suas relaes so
representados, respectivamente, por registros e links, tambm.
A diferena principal que, no modelo hierrquico, os regis-
tros esto organizados em rvores, em vez de serem em grfcos
arbitrrios. Outro aspecto que o distingue do modelo em rede
que, no modelo hierrquico, para se acessar qualquer n do
banco (da rede), necessrio sempre passar pela raiz. Nesse
modelo, os dados so estruturados em hierarquias ou rvores.
Os ns das hierarquias (ou da rvore) contm ocorrncias de re-
gistros; cada registro uma coleo de campos (atributos), cada
um contendo apenas uma informao. O registro da hierarquia
que precede aos outros o registro pai; os outros, por sua vez,
so chamados de registros flhos. Um exemplo de sistema/em-
presa que adotou o modelo hierrquico foi o sistema comercial
Information Management System, da IBM Corp (IMS), e alguns
outros, como o System 2K (da SAS Inc.) e o TDMS. O exemplo a
seguir, da fgura 7, apresenta o mesmo banco de dados dos dois
modelos anteriores (relacional e de rede), s que, agora, no mo-
delo hierrquico.
e-Tec Brasil/CEMF/Unimontes Informtica 24
Figura 7: Exemplo de banco de dados do modelo hierrquico.
Fonte: Disponvel em: <http://lh5.ggpht.com/franciscogpneto/SMWHaftiOSI/AAAAAAAAGro/dAe-R1_
w5HI/image_thumb%5B3%5D.png>. Acesso em 05 de abril de 2011 (Francisco G. P. Neto).
Como voc pode observar, existem diferentes modelos de dados
em BD. Porm, devido ao tempo curto para estudo da disciplina e, principal-
mente, maior utilizao do modelo relacional em relao aos demais, este
caderno concentrar-se- na explicao mais detalhada apenas dos modelos
que envolvem o relacional (o Modelo Entidade Relacionamento e o Modelo
Relacional).
2.3 Esquema
Certamente, voc j ouviu falar em esquema, porm, muito prova-
velmente, em outra conotao. Portanto, para no confundirmos esquema
em banco de dados com outros esquemas, vamos aprend-lo logo?
Bom, como descrito, muitas vezes, as pessoas confundem os termos
descrio do banco de dados com o banco de dados propriamente dito.
A descrio do banco de dados conhecida como esquema do banco de
dados; este defnido durante o desenvolvimento (criao) do projeto do
banco de dados. Um esquema, uma vez defnido, no deve ser modifcado
frequentemente; desta forma, a sua defnio requer bastante anlise e mui-
tos critrios.
No esquema, basicamente, ser defnida a estrutura do banco de
dados (tabelas, atributos, domnios, relacionamentos, restries), conforme
Date (2000). A maioria dos modelos de dados apresenta algumas convenes
para a exibio de esquemas por meio de diagramas, conforme ilustram as
fguras da seo 2.2.
Para uma melhor compreenso de um esquema, vamos fazer uma
analogia com linguagem de programao e algoritmos. Neste sentido, as va-
riveis e os tipos de dados assumidos por elas seriam o esquema.
Se ainda no fcou claro, no se preocupem, pois, na aula 4, sero
apresentados mais exemplos de esquemas.
e-Tec Brasil/CEMF/Unimontes Banco de Dados 25
2.4 Instncia
Para entendermos o que uma instncia, vamos aproveitar da mes-
ma analogia feita com linguagem de programao e algoritmos, apresentada
na seo anterior (2.3). Entende-se por instncia do banco de dados os valo-
res/dados assumidos pelas variveis do programa. Assim, podemos dizer que
os dados (valores) armazenados em um banco de dados, em um determinado
instante do tempo, formam um conjunto chamado de instncia do banco de
dados, conforme concebem Elmasri e Navathe (2005).
A instncia, diferentemente do esquema, altera toda vez que o
banco de dados sofre qualquer modifcao de contedo.
O SGBD responsvel por garantir que toda instncia do banco de
dados satisfaa ao esquema do banco de dados, respeitando sua estrutura e
suas restries.
Resumo
Nesta aula, voc aprendeu:
os principais conceitos de sistemas de banco de dados;
a arquitetura de um SBD e os componentes dessa arquitetura;
a conhecer e a identifcar um modelo de dados;
a planejar e AA desenvolver a modelagem de um projeto de
banco de dados nos diferentes modelos apresentados (principal-
mente o relacional).
Atividades de aprendizagem
1. Quais so os elementos que compem a arquitetura de um sistema de
banco de dados?
2. O que so os modelos de dados?
3. Qual a principal motivao para a criao do modelo relacional? E para o
modelo orientado a objeto?
4. O que so esquema e instncia em banco de dados?
No deixe de
acompanhar as
novidades e inovaes
do SGBD! Lembre-se, a
aprendizagem sempre
contnua!
e-Tec Brasil/CEMF/Unimontes Banco de Dados
AULA 1
Alfabetizao Digital
27
Aula 3 Modelagem de dados Modelo
Entidade Relacionamento MER
Objetivos
descrever os conceitos envolvidos na modelagem Entidade Re-
lacionamento;
apresentar os principais termos utilizados na construo de um
banco de dados no MER;
possibilitar aos alunos a construo do conhecimento para a
criao de modelos e diagramas ER, com os respectivos rela-
cionamentos.
3.1 Introduo
Agora que j conhecemos os tipos de modelos de dados, vamos
iniciar nossos estudos descrevendo sobre o modelo mais simples, mas no
menos til na construo do projeto de banco de dados relacional. Vamos l?
O Modelo Entidade Relacionamento um modelo de dados con-
ceitual de alto nvel, tido como o mais popular; utilizado principalmente
durante o processo de projeto de banco de dados, conforme relatam Elmasri
e Navathe (2011).
No MER, os conceitos envolvidos na construo de um bom projeto
de banco de dados foram planejados para estar o mais prximo possvel do
entendimento e da viso que o usurio tem dos dados, no se preocupando
em representar como esses dados estaro realmente armazenados.
A construo de um projeto de banco de dados constituda de al-
gumas fases; cada uma delas, responsvel pela realizao de algumas aes
especfcas, conforme ilustra a fgura 8. Na fase inicial, de partida, so ob-
servados aspectos do mundo real, chamados de minimundo. A partir da,
realiza-se a obteno e a anlise dos requisitos por meio de reunies e de
outras formas, nas quais se discutem todas as questes pertinentes ao que
se deseja do sistema de banco de dados. Vencida esta fase, renem-se to-
das as informaes (requisitos) para a construo do projeto conceitual da
base de dados. Na fase de projeto conceitual, desenvolvido o esquema
conceitual, no qual so especifcados os esquemas do banco de dados em
construo. neste momento em que mais se aplicam os modelos de entida-
de relacionamento. Na fase de mapeamento do modelo de dados, tambm
conhecida como projeto lgico, o objetivo transformar o esquema de mo-
delo de dados de alto nvel (projeto conceitual) em um modelo de dados de
implementao. At esta fase, tudo que se defne independente do SGBD
a ser utilizado. Qualquer que seja o sistema gerenciador de banco de dados
e-Tec Brasil/CEMF/Unimontes Informtica 28
adotado, o que foi desenvolvido at ento ser perfeitamente aproveitado.
A partir da fase de mapeamento, preciso conhecer qual o SGBD que ser
utilizado e realizar todo o mapeamento baseado especifcamente no sistema
escolhido. A ltima etapa a fase do projeto fsico, na qual so defnidas as
estruturas de armazenamento interno, os ndices, os caminhos de acesso e
as organizaes de arquivo para os arquivos do banco de dados, conforme
descrevem Elmasri e Navathe (2005).
Figura 8: Diagrama ilustrando as principais fases de um projeto de banco de dados.
Fonte: Acervo prprio.
3.2 Entidade, atributo e relacionamento
Voc j tinha lido ou ouvido falar de algum desses termos? Prova-
velmente sim, porm, talvez em outro contexto. Em se tratando do contexto
de banco de dados, vamos ver o que so e como so utilizados?
Comecemos falando, ento, de entidade. O principal objeto ou o
objeto bsico que um modelo ER representa a entidade. Uma entidade
um objeto com uma existncia prpria, podendo ser fsica (concreta) uma
pessoa, um veculo, um equipamento ou abstrata (conceitual) um depar-
tamento, um curso, um cargo, uma conta. (ELMASRI; NAVATHE, 2005).
e-Tec Brasil/CEMF/Unimontes Banco de Dados 29
Ainda segundo Elmasri e Navathe (2005), cada entidade possui um
conjunto de blocos de informaes, devidamente organizados, que a carac-
teriza e a identifca. Esses blocos de informaes so chamados de atribu-
tos. Para melhor compreenso, podemos ter, como exemplos de entidades,
PROFESSOR, ALUNO, DISCIPLINA. A entidade PROFESSOR poderia ser consti-
tuda, por exemplo, pelos atributos: Matrcula, MatrProf, NomeProf, Funo,
Salrio. A entidade DISCIPLINA teria os atributos: Cdigo, NomeDisc, Pro-
fDisp, CargaHorria, NumAlunosMatr. J a entidade ALUNO seria constituda
dos atributos: MatrAluno, NomeAlu, Curso, Mdia. Cada um dos atributos de
cada entidade ter um valor particular, e o conjunto desses valores que
responsvel pela maior ocupao de espao de armazenamento na base de
dados do banco.
Agora que vimos entidade e atributo, vamos entender relaciona-
mento. De acordo com Date (2000), o relacionamento uma associao
entre uma ou vrias entidades. Por exemplo: ao fazermos a associao entre
as entidades PROFESSOR e DISCIPLINA, estaremos construindo um relaciona-
mento entre ambas, que poderamos chamar de Ministra ou Leciona, deno-
tando que o professor ministra ou leciona a disciplina.
Para maior controle e organizao dos dados, os relacionamentos
so criados com algumas restries. Essas restries chamam-se razo de
cardinalidade, e especifcam a quantidade de instncias em um relaciona-
mento que os elementos das entidades podem participar, segundo Elmasri e
Navathe (2005). De acordo com Elmasri e Navathe (2011) a razo de cardina-
lidade pode ser classifcada em trs tipos, descritos a seguir.
1:1 (l-se um para um): signifca que s pode haver uma nica
instncia entre as duas entidades envolvidas, ou seja, sendo duas
entidades A e B, uma ocorrncia em A estar associada com, no
mximo, uma nica ocorrncia em B, e uma ocorrncia em B
estar associada com, no mximo, uma nica ocorrncia em A.
Por exemplo: o relacionamento Gera, entre as entidades PEDIDO
e FATURA; pode conter a cardinalidade 1:1, indicando que um
pedido s pode gerar uma nica fatura, e, ainda, que uma fatura
s pode ter sido gerada por um nico pedido. A representao
para este relacionamento est exibida na fgura 09 (como fazer
esta representao ser explicado na seo 3.4, deste caderno).
Figura 9: Exemplo de diagrama de relacionamento 1:1.
Fonte: Acervo prprio.
1:N ou N:1 (l-se um para N ou N para um - onde N signif-
ca muitos): signifca que, em uma das entidades (1), s poder
haver um nica instncia relacionada; na outra entidade (N),
poder haver uma ou mais instncias relacionadas, ou seja, sen-
do duas entidades A e B, uma ocorrncia em A estar associada
e-Tec Brasil/CEMF/Unimontes Informtica 30
com uma ou vrias ocorrncias em B, e uma ocorrncia em B
estar associada com, no mximo, uma nica ocorrncia em A.
Por exemplo: o relacionamento Leciona, entre as entidades PRO-
FESSOR e DISCIPLINA, representado na fgura 10, normalmente
possui uma razo de cardinalidade de 1:N, na qual um professor
pode lecionar vrias disciplinas e uma determinada disciplina s
pode ser lecionada por um nico professor. O digrama de repre-
sentao desse relacionamento est ilustrado na fgura 10.
Figura 10: Exemplo de diagrama de relacionamento 1:N.
Fonte: Acervo prprio.
M:N (l-se M para N - onde M e N signifcam muitos): signifca
que poder haver uma ou vrias instncias em ambas as en-
tidades envolvidas, ou seja, sendo duas entidades A e B, uma
ocorrncia em A poder estar associada a uma ou vrias ocor-
rncias em B, e vice-versa. Por exemplo: no relacionamento Fre-
quenta, entre as entidades ALUNO e DISCIPLINA, um aluno pode
frequentar vrias disciplinas, e uma mesma disciplina pode ser
frequentada por vrios alunos. O diagrama para representar este
relacionamento, seria conforme o exposto na fgura 11.
Figura 11: Exemplo de diagrama de relacionamento M:N.
Fonte: Acervo prprio.
3.3 Tipos de entidades e atributos
As entidades e os atributos so classifcados em diferentes tipos.
Que tal conhecermos esses tipos?
Para isto, vamos comear com a classifcao dos tipos de entidades,
segundo Date (2000).
Entidade fraca: so as entidades que no possuem atributos-
-chave prprios, isto , que dependem dos atributos-chave de
uma outra entidade. Por exemplo: numa relao entre as duas
entidades, DEPENDENTE e EMPREGADO, todos os elementos da
entidade Dependente so dependentes da entidade Empregado,
ou seja, s ir existir um dependente se houver o registro do
empregado correspondente ao mesmo. Portanto, a entidade De-
pendente uma entidade fraca.
Entidade forte: so as entidades que possuem seus prprios
atributos-chave, ou seja, so independentes. Por exemplo: ain-
e-Tec Brasil/CEMF/Unimontes Banco de Dados 31
da utilizando o exemplo anterior, a entidade EMPREGADO inde-
pendente de qualquer outra entidade, ou seja, possui existncia
prpria. Neste caso, a entidade Empregado uma entidade forte.
Exemplos da representao de entidade fraca e de entidade forte
esto na prxima seo; mais detalhes na aula 4, deste caderno.
De acordo com Silberschatz, Korth & Sudarshan (1999), os atributos, no
modelo ER, podem ser caracterizados pelos seguintes tipos descritos a seguir.
Simples ou compostos: atributos simples so aqueles que no
so divisveis, ou seja, o seu contedo no pode ser separado
em partes, como, por exemplo: matrcula, funo, salrio. J os
compostos, eles podem ser separados em partes (isto , sepa-
rados em outros atributos), caso seja necessrio. Por exemplo:
NomeProf poderia ser estruturado em PriNomeProf, SegNome-
Prof e UltNomeProf. Sendo que PriNomeProf corresponderia ao
primeiro nome do professor, SegNomeProf, ao segundo nome, e
UltNomeProf, ao ltimo nome do professor.
Monovalorados ou multivalorados: atributos monovalorados
so aqueles constitudos de um nico valor para uma referida
entidade, por exemplo: data_de_nascimento, cpf, salrio de
uma entidade chamada EMPREGADO. Os multivalorados so
aqueles que podem assumir mais de um valor para uma determi-
nada instncia de um atributo. Como exemplos, podemos citar
os atributos dependente, telefone e e-mail. Ainda considerando
a entidade Empregado, citada anteriormente, cada um desses
atributos poderia possuir nenhum, um ou mais valores em seu
contedo. No caso dos atributos multivalorados, o mais adequa-
do que se estabeleam limites inferiores e, principalmente,
superiores para tais atributos.
Derivados: o valor desse tipo de atributo derivado de outro
atributo ou entidade a ele relacionadas. Para um melhor enten-
dimento, podemos citar o atributo idade, que pode ser obtido
atravs da diferena entre a data atual do sistema e a data_de_
nascimento informada na entidade da pessoa.
Nulo: utilizado quando uma entidade no possuir valor para
um determinado atributo. Como exemplos, podemos citar os
atributos: dependente (nem todos os empregados possuem de-
pendentes), e-mail (nem todos os empregados possuem email),
celular (nem todos possuem). Nulo, na verdade, a ausncia de
valor, ou seja, quando voc deixa de informar o valor para um
determinado atributo, o mesmo ir assumir o valor nulo (como
padro). Mas, ateno! Nulo diferente de espao em branco.
Se voc pressionar a barra de espao em um determinado atri-
buto (dependente, email, celular, por exemplo) na hora da inser-
o de dados, isso no signifca nulo, e sim espao em branco.
3.4 Diagrama Entidade Relacionamento (DER)
Voc tem algum conhecimento sobre DER? Sabe para que serve?
Bom, se a sua resposta for no, no h problema, pois estamos aqui
para explicar. Sendo assim, vamos iniciar.
e-Tec Brasil/CEMF/Unimontes Informtica 32
O Modelo Entidade Relacionamento representado atravs de al-
guns smbolos que compem o Diagrama Entidade Relacionamento (DER).
Para cada elemento de um relacionamento (entidade, atributo, re-
lacionamento, razo de cardinalidade), existe um smbolo representativo.
Sendo assim, vamos apresentar cada um desses smbolos a seguir, ilustrados
na fgura 12.
Figura 12: Resumo de notao de diagrama ER.
Fonte: Acervo prprio.
Agora, vamos apresentar trs exemplos de DER, na fgura 13, para
entendermos melhor a sua aplicao.
Passos para construir
um Modelo Entidade
Relao:
1) identifcar as
entidades;
2) para cada entidade,
procurar identifcar os
atributos necessrios
e defnir a chave
primria;
3) buscar
identifcar todos os
relacionamentos entre
as entidades;
4) procurar validar o
modelo obtido e repetir
este processo desde
o 1 passo, caso seja
necessrio.
Dicas para a construo
de diagramas ER:
- a presena de
um substantivo,
usualmente, indica uma
entidade;
- a presena de um
verbo uma forte
indicao de um
relacionamento.
e-Tec Brasil/CEMF/Unimontes Banco de Dados 33
Figura 13: a) Demonstra um relacionamento unirio Gerencia, entre a entidade
EMPREGADO e ela mesma; b) ilustra o relacionamento binrio Possui, entre as
entidades FUNCIONRIO e DEPENDENTE; c) exibe um relacionamento ternrio
Ministra, entre as entidades PROFESSOR, DISCIPLINA e ALUNO (quando no h
exigncias, pode-se omitir a razo de cardinalidade e os atributos).
Fonte: Acervo prprio.
Segundo Elmasri e Navathe (2005), a quantidade de entidades par-
ticipantes de um mesmo relacionamento caracterizada como Grau do
Relacionamento. Assim, o grau do relacionamento pode ser de trs tipos,
conforme os descrevemos a seguir.
Unirio: tambm chamado de autorrelacionamento ou relaciona-
mento recursivo, a relao de uma entidade com ela mesma, ou seja, ape-
nas uma entidade participante. O item (a) da fgura 13 demonstra um bom
exemplo de autorrelacionamento.
Binrio: o relacionamento entre duas entidades distintas. O item
(b) da fgura 13 apresenta um exemplo de relacionamento binrio.
Ternrio: o relacionamento envolvendo trs entidades distintas.
O item (c) da fgura 13 ilustra um exemplo de relacionamento ternrio.
Podem existir relacionamentos envolvendo mais de trs entidades,
porm, isto no ser objeto de estudo neste caderno didtico.
e-Tec Brasil/CEMF/Unimontes Informtica 34
Resumo
Nesta aula, voc aprendeu:
os principais conceitos e termos envolvidos num Modelo Entida-
de Relacionamento (ER);
a aplicao de um modelo ER num projeto de banco de dados;
planejar e construir modelos e diagramas ER de um banco de
dados.
Atividades de aprendizagem
1. Qual o principal objetivo do Modelo Entidade Relacionamento (MER)?
2. O que mapeamento do modelo de banco de dados?
3. Descreva a sequncia de aes para se construir uma modelagem Enti-
dade Relacionamento.
4. Defna e exemplifque os termos entidade, atributo e relacionamento.
5. Construa exemplos de diagramas de relacionamento de cardinalidade
1:1, 1:N e M:N. No mnimo 1 de cada e que sejam diferentes dos exemplos
do caderno da disciplina.
6. O que signifca grau de relacionamento? Quais so os tipos? Explique cada
um deles.
7. Desenvolva um DER para que um banco possa gerenciar as contas parti-
culares de cada cliente em suas respectivas agncias. Voc dever de-
cidir quais atributos de cada entidade sero necessrios para o modelo.
8. Preencha os diagramas a seguir com as respectivas entidades e os seus rela-
cionamentos; informe tambm qual o grau de cardinalidade em cada caso.
a.
Entidades Relacionamento
Banco, agncia Administra
b.
Entidades Relacionamento
Cliente, pedido Solicita
e-Tec Brasil/CEMF/Unimontes Banco de Dados
AULA 1
Alfabetizao Digital
35
Aula 4 Modelagem de dados Modelo
Relacional (MR)
Objetivos
conceituar e apresentar os principais elementos do modelo re-
lacional;
demonstrar as principais aplicaes do modelo na construo
de projeto de banco de dados relacional;
realizar o mapeamento do Modelo Entidade Relacionamento
(MER) para o Modelo Relacional (MR).

4.1 Introduo
Agora que aprendemos sobre o Modelo ER, que tal conhecermos o
Modelo Relacional? Voc observar, inclusive, que existem algumas seme-
lhanas entre ambos.
O Modelo Relacional tem muita semelhana com o Modelo ER. Eu
diria que o MR complementar ao MER.
Conforme Elmasri e Navathe (2005), o Modelo Relacional represen-
ta um banco de dados como uma coleo de relaes comumente chamadas
de tabelas. Cada relao entendida como uma tabela que contm valores,
e cada linha nesta tabela composta de um conjunto de dados relacionados.
Os valores contidos nas linhas seriam as instncias de uma entidade ou de
um relacionamento.
Cada relao ou cada tabela composta de linhas e colunas. Ainda
segundo o autor referenciado anteriormente, na terminologia do Modelo Re-
lacional, uma tabela chamada de relao, um linha chamada de tupla e
as colunas so chamadas de atributos.
A fgura 14 ilustra cada um desses elementos (destacados em cores
diferentes) do Modelo Relacional na tabela PRODUTO. Observem atentamente!
Figura 14: Relao Produto, identifcando cada um dos elementos.
Fonte: Acervo prprio.
Apesar do crescimento
do uso de outros
modelos, o MR ainda
o mais utilizado pelas
empresas.
e-Tec Brasil/CEMF/Unimontes Informtica 36
4.2 Relaes, domnios, tuplas e atributos
Apesar de serem termos de nomenclaturas diferentes, voc ir per-
ceber que eles tm praticamente a mesma funo de alguns dos termos da
aula 3. Vamos conferir?
As relaes em modelos relacionais, conforme dito anteriormente,
representam o conjunto de informaes de uma tabela (entidade no MER).
Assim como no Modelo ER, as relaes so construdas defnindo-se, primei-
ramente, o esquema da relao, no qual so especifcados o nome da relao
e os atributos.
A especifcao dos atributos segue-se da defnio dos domnios
dos mesmos. Um domnio consiste de um conjunto de valores (dados) atmi-
cos que um atributo pode assumir. Um valor dito atmico quando o mesmo
no pode ser dividido, separado, ou seja, ele indivisvel. Assim, de acordo
com Date (2000), um domnio determinado pelo tipo de dado que um
atributo pode assumir. Por exemplo: um atributo CDIGO, do tipo inteiro,
s pode aceitar dados numricos (nmeros) inteiros; um atributo DESCRI-
O, do tipo caractere, de tamanho 20, pode aceitar letras, nmeros, ponto,
acento etc., porm, no pode ultrapassar 20 caracteres.
Conforme mencionado anteriormente, as tuplas so as linhas da re-
lao. Tomando o exemplo da fgura 14, a linha com | 1020 | leo | 9 | 2,15
| corresponde a uma tupla da relao ALUNO. Assim como | 1045 | Arroz |
10 | 8,99 | tambm constitui uma tupla da mesma relao.
Os atributos de uma relao so representados pelas colunas. Os
atributos, aqui, tm a mesma representao que no Modelo ER.
4.3 Atributos-chave
J leram ou ouviram alguma coisa sobre atributos-chave? De qual-
quer forma, importante o bom entendimento desta seo, pois, dela, de-
pendero muitas outras informaes constantes no restante deste caderno.
Uma relao constituda de um conjunto de tuplas e atributos dis-
tintos. Para uma correta distino das instncias de uma relao, o Modelo
Relacional adotou o conceito de atributo-chave. De acordo com Elmasri e
Navathe (2005), o atributo chave pode ser constitudo de um ou mais atri-
butos, e eles so encarregados de identifcar e distinguir, de forma nica e
exclusiva, cada tupla de uma relao; assim, so chamados de superchave.
Toda relao ir possuir, no mnimo, uma superchave, que ser o conjunto
de todos os seus atributos.
Ainda segundo o mesmo autor, as chaves de uma relao podem ser
classifcadas das seguintes formas, descritas a seguir.
Chave primria: composta por um ou mais atributos capazes de
identifcar, de forma nica e exclusiva, cada tupla da relao.
Quando constituda de mais de um atributo, ela chamada
de chave primria composta, e cada um dos atributos desta
Os atributos-chave so
essenciais em BD; por
isso, procurem assimilar
bem as informaes
apresentadas.
e-Tec Brasil/CEMF/Unimontes Banco de Dados 37
chave composta deve possuir a capacidade de, sozinho, tambm
identifcar de forma nica cada tupla da relao. A chave pri-
mria no MR representada colocando-se o(s) atributo(s)-chave
sublinhado(s). Exemplos: o atributo Cdigo da relao PRODUTO
uma chave primria, conforme ilustrado na fgura 15, item (a);
numa relao ALUNO, constituda dos atributos matrcula, CPF,
nome, curso, e-mail, os atributos Matrcula e CPF formam uma cha-
ve primria composta, conforme ilustrado na fgura 15, item (b).
a. Produto
Cdigo Descrio Qtde ValorUnit
b. Aluno
Matrcula CPF Nome Curso e-mail
Figura 15: Esquema das relaes PRODUTO e ALUNO.
Fonte: Acervo prprio.
Chave candidata: formada pelo conjunto de atributos capazes
de se tornarem uma chave primria. Exemplo: qualquer um dos
atributos Matrcula e CPF da relao ALUNO so chaves candi-
datas.
Chave estrangeira: formada pela chave primria de uma outra
relao. Exemplo: considerando as relaes PRODUTO com os
atributos cdigo, descrio, Qtde e ValorUnit, e ITENS_PEDIDO
com os atributos CodProd, CodPed, Quant, o atributo CodProd
da relao ITENS_PEDIDO chave estrangeira, pois representa o
atributo Cdigo da relao PRODUTO, conforme ilustra a fgura
16. Na terminologia do MR, a chave estrangeira representada
colocando o atributo-chave em itlico.
Produto
Cdigo Descrio Qtde ValorUnit
Itens_Pedido
CdProd CodPed Quant
Figura 16: Modelo identifcando chave estrangeira.
Fonte: Acervo prprio.
4.4 Mapeamento do MER para MR
J participou de algum projeto no qual foi realizado o mapeamento
de MER para MR? Tem ideia do que seja?
Nesta seo, iremos aprender o que e como fazer um mapeamen-
to desse tipo.
Embora seja crescente o uso da modelagem orientada a objeto,
ainda grande o uso, em projetos de banco de dados, da modelagem em alto
e-Tec Brasil/CEMF/Unimontes Informtica 38
nvel (o MER). Contudo, o uso dessa modelagem apenas parte do processo
de construo do projeto de banco de dados.
O resultado da modelagem ER so esquemas de observaes, ou
seja, Diagramas Entidade Relacionamento (DER) que devem ser integrados,
posteriormente, para originar apenas um grande e nico esquema. O mape-
amento do Modelo Entidade Relacionamento para o Modelo Relacional uti-
lizado justamente para este fm, para complementar e completar o projeto
de banco de dados.
A seguir, segue um resumo dos passos bsicos necessrios para se
fazer o mapeamento do MER para o MR, baseado na obra de Elmasri e Nava-
the (2005).
Passo 1: todas as entidades so mapeadas para uma relao con-
tendo os mesmos atributos do MER. Veja o exemplo da fgura 17.
Figura 17: Mapeamento de entidade MER para MR.
Fonte: Acervo prprio.
Na fgura 17, foi apresentado o MER de uma entidade chamada Em-
pregados, com os atributos CPF (onde a bolinha preenchida representa chave
primria), nome e idade (as bolinhas vazias representam atributos comuns).
Fazendo-se o mapeamento para o Modelo Relacional, a relao Empregados
fcou como mostrado na fgura.
Passo 2: para entidade fraca criada a relao contendo todos os
seus atributos, tendo acrescido, como chave estrangeira, a chave primria
da entidade forte (pai). Veja o exemplo da fgura 18.
Figura 18: Mapeamento de entidade fraca de MER para MR.
Fonte: Acervo prprio.
e-Tec Brasil/CEMF/Unimontes Banco de Dados 39
Na fgura 18, foi apresentado o MER do relacionamento Possui en-
tre as entidades Funcionrio, com os atributos CodFunc, Nome, DataNasc e
Idade e Dependente, com os atributos CodDep, Nome e DataN. Fazendo-se
o mapeamento para o Modelo Relacional, a relao Dependente fcou como
mostrado na fgura.
Passo 3: para relacionamentos 1:1 - dentre as relaes que ma-
peiam as entidades participantes, escolha uma delas (a que for mais fraca,
dependente) e inclua como chave estrangeira a chave primria da outra.
Veja o exemplo da fgura 19.
Figura 19: Mapeamento de relacionamento 1:1 de MER para MR.
Fonte: Acervo prprio.
Na fgura 19, foi apresentado o MER do relacionamento Retirou (com
o atributo DtRetirada) entre as entidades Pessoas, com os atributos CPF,
Nome e Endereo e CateirasMotorista, com os atributos Numero, Validade,
DataExpedio e Categoria. Fazendo-se o mapeamento para o Modelo Rela-
cional, as relaes Pessoas e CarteirasMotorista fcaram como mostrado na
fgura.
Passo 4: para relacionamentos 1:N escolha a relao que repre-
senta a entidade presente no lado N e acrescente, como chave estrangei-
ra, a chave primria da entidade do lado 1. Veja o exemplo da fgura 18,
no passo 2.
Passo 5: para relacionamentos M:N criada uma nova relao
contendo, como chaves estrangeiras, as chaves primrias das entidades par-
ticipantes mais os atributos do relacionamento. Veja o exemplo da fgura 20.
e-Tec Brasil/CEMF/Unimontes Informtica 40
Figura 20: Mapeamento de relacionamento M:N de MER para MR.
Fonte: Acervo prprio.
Na fgura 20, foi apresentado o MER do relacionamento Participa
(com o atributo DataIncio) entre as entidades Empregado, com os atributos
CPF, Nome e Projeto, com os atributos Cdigo e Nome. Fazendo-se o mapea-
mento para o Modelo Relacional, as relaes Empregados, Projeto e Partici-
pa (que virou uma entidade) fcaram como mostrado na fgura.
Resumo
Nesta aula, voc aprendeu:
os principais conceitos e termos envolvidos num Modelo Rela-
cional;
a aplicao de um Modelo Relacional num projeto de banco de
dados;
mapear um Modelo ER em um Modelo Relacional;
planejar e construir modelos relacionais de um banco de dados.
Atividades de aprendizagem
1. Defna e exemplifque cada um dos seguintes termos em banco de dados:
relao, tupla e domnio.
2. Qual a importncia do Modelo Relacional para as organizaes?
e-Tec Brasil/CEMF/Unimontes Banco de Dados 41
3. Faa o mapeamento dos seguintes modelos ER para o Modelo Relacional:
a.
b.
4. Pesquise e apresente trs exemplos de representao de banco de dados
relacionais. Pode utilizar o prprio local de trabalho como cenrio para isto.
5. O que so atributos-chave?
6. Qual a diferena entre chave primria e superchave?
7. O que uma chave estrangeira?
e-Tec Brasil/CEMF/Unimontes Banco de Dados
AULA 1
Alfabetizao Digital
43
Aula 5 SQL bsico
Objetivos
apresentar os principais conceitos sobre Linguagem de Consul-
ta Estruturada (SQL);
realizar estudos sobre DDL e DML;
realizar aplicaes prticas dos principais comandos SQL;
defnir e criar restries de dados em SQL.
5.1 Conceito
Voc sabe o que signifca SQL? J leu ou ouviu falar?
Bom, SQL (Structured Query Language Linguagem de Consulta Es-
truturada), como o prprio nome diz, uma linguagem de defnio e de ma-
nipulao de um banco de dados relacional, conforme descreve Date (2000).
A SQL foi criada especifcamente para trabalhar com os SGBDs relacionais
criados pelo mundo; rapidamente, se tornou o padro de linguagem de con-
sulta mais utilizado no planeta.
Uma das grandes vantagens do uso da SQL que ela um padro
reconhecido por todos os SGBDs relacionais existentes. Qualquer que seja o
SGBD escolhido pelo usurio ou pela empresa, a SQL ir se comunicar bem
com ele. Caso o usurio resolva mudar de SGBD, ele no ir precisar se pre-
ocupar com o acesso aos seus dados se tiver adotado o SQL como linguagem
de consulta, pois os seus sistemas praticamente no sofrero mudanas.
Segundo Elmasri e Navathe (2005), a SQL formada por dois gran-
des grupos de funes e comandos, chamados de DDL (Linguagem de Defni-
o de Dados) e DML (Linguagem de Manipulao de Dados).
5.2 Comandos de defnio de dados
Por acaso, voc j ouviu falar em comandos de defnio de dados?
Sabe o que signifca? O grupo de comandos de defnio de dados conheci-
do como o grupo DDL, e forma a fase inicial para a construo de qualquer
banco de dados em SQL. De acordo com Elmasri e Navathe (2005), a DDL for-
ma um conjunto de comandos responsveis pela criao, alterao e deleo
da estrutura das tabelas e dos ndices de um banco de dados.
Antes de continuarmos, importante destacar que os comandos
SQL podem sofrer pequenas alteraes de um SGBD (SQL Server, Oracle, Mys-
ql, PostgreSQL, DB2, Firebird etc.) para outro, principalmente nas sintaxes
Nesta seo, iremos
abordar os comandos
de defnio de dados
em SQL utilizados no
modo Shell (linhas de
comandos digitados num
prompt de comando).
e-Tec Brasil/CEMF/Unimontes Informtica 44
dos comandos. Sendo assim, todo o material sobre SQL deste caderno est
baseado no MySql. Para uma maior assimilao dos contedos estudados, se-
ro apresentados exemplos prticos de cada um dos comandos relacionados.
Para cada exemplo, ser apresentado um problema e, em seguida, a soluo
(resposta) ao problema dado.
Para iniciar, comearemos falando do comando para a criao do
banco de dados. Para se criar um banco de dados em SQL, usa-se o comando:
CREATE DATABASE <nome-do-banco-de-dados>;
Veja um exemplo de aplicao.
Problema: criar uma base de dados (um banco de dados) chamada
AULASQL.
Soluo/Resposta:
CREATE DATABASE aulasql;
Uma vez defnido (criado) o nome da base de dados, para poder
trabalhar com esta base, preciso abri-la para a edio. Para isto, utilizamos
o seguinte comando (padro do mysql):
USE <nome-do-banco-de-dados>
Veja um exemplo de aplicao.
Problema:
Abrir o banco de dados para a edio/manipulao dos dados.
Soluo/Resposta:
USE aulasql;
At ento, ns criamos a base de dados e a abrimos para a edio.
Agora, preciso criar as tabelas que faro parte deste banco de dados. Para
isto, preciso aprender o comando de criao de tabelas em SQL. O coman-
do, neste caso, possui a seguinte sintaxe:
CREATE TABLE <nome_tabela>
(nome_atributo1 < tipo > [ NOT NULL ],
nome_atributo2 < tipo > [ NOT NULL ],
......
nome_atributoN < tipo >) ;
PRIMARY KEY (nome-atributo-chave)
FOREIGN KEY nome-atributo-chave-estrangeira REFERENCES
nome-atributo-chave-primria (nome-tabela-pai) ON DELETE
[RESTRICT] ou
[CASCADE] ou
[SET NULL]
Onde:
nome_tabela - o nome da tabela a ser criada;
nome_atributo - o nome do atributo (da coluna) a ser criado
na tabela;
SQL Server SGBD -,
desenvolvido e mantido
pela Microsoft (http://
www.microsoft.com);
Oracle - SGBD -,
desenvolvido e mantido
pela empresa Oracle
(http://www.oracle.com);
MySql - SGBD -,
desenvolvido pela
MySql AB, atualmente,
mantido pela Oracle
(http://www.mysql.com);
PostgreSQL
um projeto open
source (cdigo
aberto) coordenado
pelo PostgreSQL
Global Development
Group (http://www.
postgresql.org) -;
DB2 SGBD -,
desenvolvido e mantido
pela IBM (www.ibm.com/
software/data/db2);
Firebird SGBD -,
desenvolvido e
mantido pela Fundao
FirebirdSQL (http://
www.frebirdsql.org).
Os comandos SQL
devem ser sempre
fnalizados com o uso
do ponto e vrgula (;),
conforme ilustra o
exemplo anterior e os
demais exemplos deste
caderno.
e-Tec Brasil/CEMF/Unimontes Banco de Dados 45
tipo - a especifcao do tipo de atributo (integer ou int,
char(n), varchar(n), decimal(n,m), real(n,m), date...);
n- nmero de dgitos ou de caracteres;
m- nmero de casas decimais;
NOT NULL indica que o atributo no aceita valor nulo (ou va-
zio);
PRIMARY KEY (nome-atributo-chave) serve para defnir qual
atributo ser a chave primria da tabela. Podem ser defnidos
mais de um atributo como chave; neste caso, os mesmos devem
vir separados por vrgula dentro do parntese;
FOREIGN KEY - nome-atributo-chave-estrangeira - REFERENCES
nome-atributo-chave-primria (nome-tabela-pai) - serve para
defnir qual atributo ser a chave estrangeira da tabela, ou seja,
o campo que a chave primria de outra tabela. Na opo RE-
FERENCES, deve ser especifcada a tabela que possui a chave
primria referenciada. Para cada chave estrangeira, deve-se es-
pecifcar uma sequncia do Foreign Key;
ON DELETE - esta opo s se aplica com o Foreign Key e es-
pecifca o que deve ser feito pelo SGBD, quando houver uma
excluso de um registro na tabela pai (que contm a chave pri-
mria referenciada) e houver algum registro correspondente nas
tabelas flhas (com a respectiva chave estrangeira). As opes
disponveis so as especifcadas a seguir.
RESTRICT a opo padro. Ela no permite a excluso na
tabela pai de um registro em que a chave primria exista em
alguma tabela flha.
CASCADE opo que executa a excluso em todas as tabe-
las flhas que possuam o valor da chave que ser excluda na
tabela pai.
SET NULL - opo que atribui o valor NULO nos atributos das
tabelas flhas que contenham o valor da chave que ser ex-
cluda na tabela pai.
Veja um exemplo de aplicao.
Problema:
Criar uma tabela de nome EMPREGADO com os seguintes atributos
e restries:
Cdigo do tipo inteiro, chave primria e no deve aceitar valor
vazio ou nulo;
Nome do tipo caracter, de tamanho 40, no deve aceitar valor
vazio ou nulo;
Dtnasc do tipo data;
Salrio do tipo decimal, de tamanho 7 com duas casas decimais;
CPF do tipo inteiro e no aceita valor vazio ou nulo.
Soluo/Resposta:
CREATE TABLE empregado (
codigo int not null, -- cdigo funcional
nome varchar2(40) not null, -- nome do empregado
As intrues Primary
Key e Foreign Key sero
explicadas em mais
detalhes na Aula 5.
e-Tec Brasil/CEMF/Unimontes Informtica 46
dtnasc date, -- data de nascimento
salario decimal(7,2), -- valor do seu salrio
CPF int not null, -- CPF do empregado
Primary key (cdigo); -- defne cdigo como chave primria
Caso a estrutura defnida com os comandos anteriores no seja a
mais adequada ou que necessite de alguns ajustes, existe um comando que
responsvel por fazer modifcaes na estrutura do banco. O comando em
questo o ALTER TABLE, que capaz de alterar a estrutura de uma tabela
acrescentando, retirando e alterando nomes, formatos das colunas e a inte-
gridade referencial defnidos em uma determinada tabela.
A sintaxe do comando Alter Table segue logo a seguir.
ALTER TABLE <nome-tabela>
DROP <nome-atributo>;
ADD <nome-atributo > <tipo-do-dado> [NOT NULL];
RENAME <nome-atributo > <novo-nome-atributo >;
RENAME TABLE <novo-nome-tabela>;
MODIFY <nome-atributo > <tipo-do-dado> [NULL]; ou
[NOT NULL]
Onde:
DROP serve para excluir um atributo;
ADD serve para adicionar um novo atributo;
RENAME serve para renomear um atributo;
RENAME TABLE serve para renomear a tabela;
MODIFY serve para modifcar/alterar o tipo do dado do atributo.
Visando uma melhor compreenso dos comandos anteriores, sero
relacionados alguns exemplos prticos, a seguir.
Veja alguns exemplos de aplicao.
Problema 1: acrescentar o atributo fone, do tipo caractere de ta-
manho 14, na tabela EMPREGADO.
Soluo/Resposta:
ALTER TABLE empregado ADD fone varchar(14).
Problema 2: acrescentar o atributo codsetor como chave estrangei-
ra, na tabela EMPREGADO.
Soluo/Resposta:
ALTER TABLE empregado ADD FOREIGN KEY codsetor REFERENCES
(Setor).
Problema 3: renomear o atributo dtnasc para datanasc na tabela
EMPREGADO.
Soluo/Resposta:
ALTER TABLE empregado RENAME dtnasc datanasc.
e-Tec Brasil/CEMF/Unimontes Banco de Dados 47
Problema 4: modifcar o tipo do atributo salrio (acrescentando 2
dgitos na parte inteira) na tabela EMPREGADO.
Soluo/Resposta:
ALTER TABLE empregado MODIFY salrio decimal(9,2).
Problema 5: excluir o atributo fone da tabela EMPREGADO.
Soluo/Resposta:
ALTER TABLE empregado DROP fone.
Por fm, caso queira excluir a tabela como um todo, existe o coman-
do DROP TABLE. A sintaxe deste comando :
DROP TABLE <nome-da-tabela>
Veja um exemplo de aplicao.
Problema:
Excluir/deletar a tabela EMPREGADO.
Soluo/Resposta:
DROP TABLE empregado; -- exclui/deleta a tabela EMPREGADO.
5.3 Comandos de Manipulao de Dados
Agora, iremos falar dos comandos de manipulao de dados, j ou-
viu algo sobre isto?
Os comandos de manipulao de dados (DML) so os responsveis
pela insero, excluso, alterao e consulta (pesquisa) ou recuperao de
dados em um banco de dados.
Dadas as suas funcionalidades, os comandos de manipulao so
os mais utilizados no gerenciamento e na manipulao de um BD, uma vez
que costumam ser aplicados diversas vezes ao longo de um dia de trabalho.
Sendo assim, preciso um cuidado maior na execuo dos mesmos, para que
no sejam cometidos equvocos (inconsistncias) ou ainda erros (lanamen-
tos ou recuperao de dados incorretos) na base de dados.
Agora, vamos falar dos comandos da DML. Para isto, iremos iniciar
descrevendo sobre o comando INSERT. Voc o conhece?
O comando INSERT serve para inserir um novo registro (uma nova
linha) em uma tabela do BD. Para isto, necessrio escrever a sintaxe do
comando corretamente, conforme o modelo a seguir:
INSERT INTO <nome-tabela> [(<nome-atributo>, [<nome-atributo>])]
VALUES (<relao dos valores a serem includos>)
Onde:
nome-tabela - representa o nome da tabela na qual ser includo
o registro (a linha);
nome-atributo - representa o nome do(s) atributo(s) que
receber(o) dado(s) no momento da operao de incluso.
e-Tec Brasil/CEMF/Unimontes Informtica 48
Exemplo de aplicao
Problema
Considerando a seguinte tabela com os seus respectivos atributos
ALUNO (matricula, nome, turma, nota), inserir os dados a seguir:
Matricula (tipo int) = 10105
Nome (tipo varchar) = Lus Incio Lula da Silva
Turma (tipo char) = 1A
Nota (tipo decimal) = 95
Soluo/Resposta:
INSERT INTO Empregado (matricula, nome, turma, nota) VALUES
(10105, Lus Incio Lula da Silva, 1A, 95).
O nosso prximo comando a ser estudado chama-se UPDATE. O
UPDATE serve para atualizar (alterar) um ou mais registros numa tabela. A
forma de aplicao deste comando, ou seja, a sua sintaxe :
UPDATE <nome-tabela>
SET <nome-atributo> = <novo contedo do atributo>
[<nome-atributo> = <novo contedo do atributo>]
WHERE <condio>
Onde:
nome-tabela - representa o nome da tabela cujo contedo ser
alterado;
nome-atributo - representa o nome do(s) atributo(s) que ter(ao)
seu(s) contedo(s) alterado(s) com o novo valor especifcado;
condio - representa a condio para a seleo do(s) registro(s)
que ser(o) atualizado(s). Quando a seleo contiver mais de
um registro retornado, a alterao ir ocorrer em todos esses
registros.
Veja o exemplo de aplicao.
Problema:
Ainda considerando a tabela ALUNO (matricula, nome, turma,
nota), dos exemplos anteriores, alterar a nota para 88 do aluno de matrcula
igual a 1023.
Soluo:
UPDATE Aluno SET nota = 88 WHERE matricula=1023
Observem que no foram utilizadas aspas para a nova nota e nem
para a matrcula, porque ambos so atributos do tipo inteiro.
Bom, at aqui, aprendemos a inserir dados e a alterar dados. Mas e
se eu quiser excluir algum dado, como eu fao? Ser que isto difcil?
Respondendo: o comando para se excluir qualquer contedo de
uma tabela (ou mesmo todo o contedo de uma tabela) chama-se DELETE.
importante ressaltar
que os atributos do
tipo numricos (inteiro,
decimal, foat etc.),
como matricula e nota
do exemplo anterior,
tm os seus valores
atribudos sem o uso de
aspas. J os atributos
do tipo caractere (char,
varchar etc.), como
nome e turma, tm os
seus valores atribudos
sempre utilizando
as aspas (simples ou
duplas).
e-Tec Brasil/CEMF/Unimontes Banco de Dados 49
E no, no difcil utiliz-lo. Porm, preciso bastante cuidado na hora de
utilizar o DELETE, pois sempre h a possibilidade de se excluir alguma infor-
mao equivocadamente, se no tiver ateno.
O comando DELETE pode ser utilizado de dois modos, descritos a
seguir.
1. O primeiro o mais perigoso, pois ele exclui todo o contedo de
uma tabela, inadvertidamente. Vamos conhecer a sua sintaxe. Ela assim:
DELETE FROM <nome-tabela>
Onde:
nome-tabela - representa o nome da tabela cujos registros se-
ro deletados. Neste caso, sero excludos todos os registros da
tabela.
Veja o exemplo de aplicao
Problema:
Excluir todos os registros da tabela ALUNO.
Soluo/Resposta:
DELETE FROM Aluno
2. O segundo modo de usar o DELETE selecionando (fltrando)
os registros que se deseja excluir, utilizando-se da instruo Where. Veja a
sintaxe abaixo:
DELETE FROM <nome-tabela>
WHERE <condio>
Onde:
nome-tabela - representa o nome da tabela cujos registros sero
excludos;
condio - representa a condio para a excluso dos registros.
Esta condio ser responsvel por selecionar o(s) registro(s) que
ser(ao) excludo(s).
Veja o exemplo de aplicao
Problema:
Excluir todos os alunos com nota inferior a 50.
Soluo/Resposta:
DELETE FROM Aluno WHERE nota<50
Bom, at aqui, aprendemos os comandos responsveis por povoar
um banco de dados, inserindo, alterando e excluindo dados. Espero que es-
tejam gostando!
A partir de agora, iremos aprender o comando de consulta (busca)
de dados, chamado de SELECT. Este, com certeza, o comando mais utiliza-
do no SQL. Com o SELECT, voc poder responder os mais diversos questio-
e-Tec Brasil/CEMF/Unimontes Informtica 50
namentos de sua chefa, de maneira rpida e prtica. Com ele, voc poder
construir inclusive relatrios, se utiliz-lo de maneira correta e criativa.
Dito isto, vamos aprender, ento, como a sintaxe do SELECT?
Antes, preciso dizer que existem diversas maneiras de se construir uma
consulta utilizando o SELECT. Neste caderno, iremos aprender as principais
maneiras de faz-lo.
Para comearmos, vamos apresentar a estrutura bsica do SELECT.
Ela constituda da seguinte sintaxe:
SELECT <nome-atributo> [,<nome-atributo>]
FROM <nome-tabela> [, <nome-tabela>]
WHERE <condio>
Onde:
nome-atributo representa o(s) nome(s) do(s) atributo(s) que se-
ro utilizados na consulta. Pode ser utilizado um ou mais;
nome-tabela - representa o nome da(s) tabela(s) que contm
o(s) atributo(s) que ser(ao) selecionada(s) (informadas aps o
Select) ou que ser(ao) utilizada(s) para a execuo da consulta;
condio - representa a condio para a seleo dos registros. A
seleo poder resultar em um ou vrios registros;
WHERE - especifca o critrio (a condio) de seleo dos regis-
tros nas tabelas especifcadas.
Agora que aprendemos como utilizar o comando Select na sua for-
ma mais bsica, vamos aplicar o seu uso em exemplos prticos? Ento, va-
mos l. A seguir, seguem alguns exemplos.
Veja alguns exemplos de aplicao
Problema 1:
Selecionar o nome dos aprovados (com nota >= 70).
Soluo/Resposta:
SELECT nome FROM Aluno WHERE nota>=70
Problema 2:
Listar todos os campos (atributos) dos alunos que esto de prova
fnal/recuperao (notas >=50 e <70).
Soluo/Resposta:
SELECT * FROM Aluno WHERE nota>=50 AND nota <70
Problema 3:
Informe o nmero de matrcula e o nome dos alunos.
Soluo/Resposta:
SELECT matricula, nome FROM Aluno
A maioria das pesquisas
de dados e informaes
em sistemas so
feitas utilizando-se do
comando Select.
Observe que, como
foi pedida a seleo
apenas do nome do
aluno, foi informado,
aps o Select, apenas o
atributo nome.
O asterisco (*) utilizado
logo aps o Select
chamado de caractere
curinga, e a sua
funo de representar
todos os atributos da
tabela informada aps
o From. No lugar do
asterisco, poderia ter
sido usada a instruo
ALL (que representa
todos tambm). Tanto
o (*) quanto ALL tm a
mesma funo.
e-Tec Brasil/CEMF/Unimontes Banco de Dados 51
E ento, estamos indo bem at aqui? timo! Sendo assim, que tal
passarmos para o prximo passo do estudo do Select?
Vamos agora aprender como usar o Select, utilizando mais alguns
recursos.
Ento, comecemos falando das funes agregadas. As funes agre-
gadas so muito teis para a realizao de consultas, principalmente quando
se deseja executar operaes matemticas.
As principais funes agregadas so relacionadas na tabela a seguir.
Tabela 1: Funes agregadas de SQL
Sintaxe Objetivo da funo
Avg(n*) retornar a mdia de n, ignorando nulos
Count(exp) retornar a quantidade de vezes que exp satisfeita
Max(exp**) retornar o maior valor de exp
Min(exp) retornar o menor valor de exp
Sum(n) retornar a soma dos valores de n, ignorando nulos
Fonte: Acervo prprio.
* n representa um atributo do tipo numrico.
** exp representa uma expresso (ou atributo) que pode ser numrica ou alfanumrica.
Agora que vimos as funes, hora de apresentarmos alguns exem-
plos prticos.
Veja alguns exemplos de aplicao
Problema 1:
Quantos alunos conseguiram aprovao?
Soluo/Resposta:
SELECT count(*) FROM Aluno WHERE nota>=70
Problema 2:
Qual a mdia das notas dos alunos?
Soluo/Resposta:
SELECT avg(*) FROM Aluno
Problema 3:
Qual a maior nota obtida e o aluno que a obteve?
Soluo/Resposta:
SELECT nome, max(nota) FROM Aluno
e-Tec Brasil/CEMF/Unimontes Informtica 52
Problema 4:
Qual a menor nota obtida pelos alunos?
Soluo/Resposta:
SELECT min(nota) FROM Aluno
Problema 5:
Para este exemplo, vamos utilizar a tabela Empregado (cdigo,
nome, dtnasc, salrio, CPF), referenciada no incio da seo 5.2.
Qual o gasto total da empresa com os salrios dos empregados?
Soluo/Resposta:
SELECT sum(salario) FROM Empregado
Passadas as funes agregadas, falaremos do ORDER BY. Ele tem a
funo de apresentar o resultado da consulta, ordenado de forma crescente
(ASC) ou decrescente (DESC) pelos atributos informados aps o Order By.
Para isto, veja como a sintaxe do Order By:
SELECT <nome-atributo> [,<nome-atributo>]
FROM <nome-tabela> [, <nome-tabela>]
WHERE <condio>
ORDER BY <nome-atributo> [,<nome-atributo>] ASC
DESC
Onde:
nome-atributo: representa o(s) nome(s) do(s) atributo(s) a ser orde-
nado em ordem crescente (ASC) ou decrescente (DESC). Se for utilizado mais
de um atributo, os mesmos devem ser separados por vrgula.
Veja um exemplo de aplicao
Problema:
Selecionar o nome e a nota dos alunos aprovados, ordenados pela
nota, em ordem decrescente.
Soluo/Resposta:
SELECT nome, nota FROM Aluno WHERE nota>=70 ORDER BY nota DESC
Outra funo que pode ser utilizada com o Select o GROUP BY.
A funo Group by serve para agrupar os dados nos atributos informados.
No agrupamento de um atributo, os dados so organizados (agrupados) em
subconjuntos nos quais os dados coincidentes fcaro representados por uma
nica linha no resultado.
Veja, a seguir, com fca a sintaxe do GROUP BY.
SELECT <nome-atributo> [,<nome-atributo>]
FROM <nome-tabela> [, <nome-tabela>]
WHERE <condio> [o Where aqui opcional]
e-Tec Brasil/CEMF/Unimontes Banco de Dados 53
GROUP BY <nome-atributo> [,<nome-atributo>]
HAVING <condiohaving>
Onde:
HAVING semelhante ao Where; ele especifca uma condio
para a seleo de um grupo de dados. Esta opo s utilizada
combinada com a opo GROUP BY;
condiohaving representa a condio para seleo dos regis-
tros agrupados pelo Group By.
Para entender como isto funciona, vamos aos exemplos.
Veja alguns exemplos de aplicao
Problema 1:
Informar as turmas e a mdia das notas de cada turma.
Soluo/Resposta:
SELECT turma, avg(nota) FROM Aluno GROUP BY turma
Problema 2:
Informar as turmas e a mdia das notas das turmas superiores a 80.
Soluo/Resposta:
SELECT turma, avg(nota) FROM Aluno GROUP BY turma HAVING
avg(nota)>80
5.4 Restries de dados
As restries em banco de dados so fundamentais para garantir a
exatido, a consistncia e a integridade dos dados. A utilizao das restri-
es ajuda a evitar danos acidentais no banco de dados.
Existem inmeros tipos de restrio de integridade, desde uma sim-
ples defnio de tipo de varivel, que ir determinar que a mesma s aceite
aquele tipo de dado, uma defnio de chave primria ou estrangeira, at
restries mais complexas, como gatilhos (triggers) e asseres (assertions).
Neste caderno, iremos abordar as restries de integridade garan-
tidas pelo SGBD: restries de vazio, de domnio, de chave e de integridade
referencial. Todas essas restries so efetuadas e gerenciadas pelo prprio
SGBD, no necessitando da interferncia humana. Todas elas so efetuadas
pelo SGBD de forma transparente ao usurio, ou seja, so executadas auto-
maticamente pelo sistema de banco de dados, sem que o usurio intervenha.
Inicialmente, vamos falar das restries de vazio. De acordo com
Elmasri e Navathe (2011), as restries de vazio so conseguidas por meio
da defnio do tipo de atributo como NOT NULL. Quando defnimos que um
atributo do tipo NOT NULL, estaremos criando uma restrio de vazio, ou
seja, o atributo no aceitar que lhe seja atribudo valor vazio ou nulo.
Cabe ressaltar que a
SQL possui ainda muitos
outros recursos, porm,
a proposta deste
caderno era apresentar
os principais e os mais
comumente utilizados.
e-Tec Brasil/CEMF/Unimontes Informtica 54
Veja o exemplo de aplicao
Considerando a tabela Aluno (matricula, nome, turma, nota), uti-
lizada nos exemplos anteriores, vamos tentar executar a seguinte linha de
comando SQL para inserir valores na tabela:
INSERT INTO Aluno VALUES (, Joaquim da Silva, 2B, 75);
A execuo desta sequncia SQL dar erro, pois o primeiro atributo
(matrcula) do tipo NOT NULL e, portanto, obrigatoriamente, deve receber
algum valor; neste caso, foi atribudo vazio a ele.
Em MySql, o erro seria de um tipo assim:
MySQL Erro: Null value in column matricula violates not-null cons-
traint
A segunda a restrio de domnio. Ainda segundo Elmasri e Na-
vathe (2011), a restrio de domnio refere-se ao domnio de um atributo,
ou seja, o conjunto de valores que esse atributo pode receber. Este tipo de
restrio talvez a mais elementar, pois criada quando se defne o tipo do
atributo (inteiro, char, varchar, decimal etc.).
Veja o exemplo de aplicao
Na tabela Aluno (matricula, nome, turma, nota), referenciada ante-
riormente, foi criado, por exemplo, o atributo matricula como sendo do tipo
inteiro (ou int). Isto signifca que foi criada uma restrio de domnio para o
atributo matricula, assim, o mesmo s poder aceitar caractere numrico e
do tipo inteiro.
INSERT INTO Aluno VALUES (1AB9, Joaquim da Silva, 2B, 75)
A execuo desta sequncia ir gerar erro, pois tentou-se atribuir a
matrcula um valor que no numrico, afnal, possui letras junto aos nmeros.
A terceira restrio a de chave. Conforme o mesmo autor, a res-
trio de chave determina que cada linha de uma tabela deve ser identifca-
da por um valor nico, ou seja, o(s) atributo(s)-chave(s) deve(m) ser nico(s)
na tabela.
Como exemplos de atributos-chave, vamos apresentar as chaves
primria (simples ou composta) e estrangeira (explicada como integri-
dade referencial). Vamos ilustrar um exemplo de declarao e defnio de
cada um deles.
Veja o exemplo de restrio de chave primria simples
Considerando a tabela Aluno, referenciada anteriormente, vamos as-
sumir que a mesma no tenha sido criada ainda e vamos simular a criao dela:
CREATE TABLE Aluno (matricula int not null,
nome varchar(40),
e-Tec Brasil/CEMF/Unimontes Banco de Dados 55
turma char(2),
nota decimal(6,2),
primary key (matricula))
A defnio da matrcula como primary key (chave primria), na
ltima linha do comando Create Table, delimita uma restrio de chave, no
caso de chave primria simples, pois se defniu apenas um atributo como
chave primria.
Para o caso de chave primria composta vamos usar o seguinte
exemplo:
CREATE TABLE Aluno (matricula int not null,
nome varchar(40),
turma char(2) not null,
nota decimal(6,2),
primary key (matricula, turma))
A defnio da matricula e da turma como chaves primrias deter-
mina uma restrio de chave, neste caso, de chave primria composta, pois
se defniu dois atributos-chave.
Por fm, vamos apresentar a restrio de integridade referencial,
reconhecida como sendo talvez a mais importante restrio em banco de
dados.
Elmasri e Navathe (2005) ressalta que a restrio de integridade
referencial busca garantir que valores de atributos, que so chave estran-
geira em uma relao R1, possuam valores correspondentes em chaves pri-
mrias da tabela referenciada R2.
Vamos trazer um exemplo para tornar isto mais claro?
Veja, ento, o exemplo da criao/defnio de uma restrio de
integridade referencial.
Para este exemplo, vamos criar trs novas tabelas:
CREATE TABLE Mdico (codMedico integer not null,
nome varchar(30) not null,
endereco varchar(35),
PRIMARY KEY (matricula) )
CREATE TABLE Consulta (codMed integer not null,
codPac integer not null,
data date not null,
FOREIGN KEY codMed REFERENCES
codMedico (Medico),
FOREIGN KEY codPac REFERENCES
codPaciente (Paciente) )
CREATE TABLE Paciente (codPaciente integer not null,
nome varchar(30) not null,
e-Tec Brasil/CEMF/Unimontes Informtica 56
endereco varchar(35),
fone varchar(14),
PRIMARY KEY (CodPaciente))
Uma vez criada a(s) chave(s) estrangeira(s) numa tabela, toda e
qualquer manipulao de dados na(s) tabela(s) pai (onde est a chave prim-
ria correspondente) ir repercutir na(s) tabela(s) flha(s). Portanto, no exem-
plo anterior, quando se criaram as chaves estrangeiras com o Foreign Key na
Tabela Consulta, foi determinada uma restrio de integridade referencial,
onde os dados da tabela Consulta fazem referncia aos dados nas Tabelas
Mdico e Paciente.
Neste caso, como no foi especifcada nenhuma ao na defnio
da chave estrangeira, o padro que no ser aceito; por exemplo: a exclu-
so de nenhum registro nas tabelas pai que possurem o respectivo valor do
atributo-chave nas tabelas flhas.
Resumo
Nesta aula, voc aprendeu:
os conceitos envolvidos em SQL;
a importncia da SQL para os sistemas e os bancos de dados
relacionais e, consequentemente, para as empresas;
os principais comandos SQL de DDL e de DML;
a aplicao prtica dos comandos SQL em um banco de dados.
a gerenciar os dados de banco de dados de forma automatizada,
organizada, com segurana, integridade e confabilidade.
Atividades de aprendizagem
1. Para que serve a SQL?
2. Explique as siglas DDL e DML em banco de dados.
3. Para que servem os comandos Create Database, Create Table e Use, em
SQL?
4. Informe a sequncia do comando SQL para se criar a base de dados cha-
mada bdteste. E tambm para se criar a tabela tbteste.
5. Qual comando SQL utilizado para se mudar o nome da tabela tbteste
para TableTeste? Demonstre.
6. Apresente a sequncia de comando SQL para se criar uma tabela chama-
da Cliente com os seguintes atributos e caractersticas:
e-Tec Brasil/CEMF/Unimontes Banco de Dados 57
cdigo: inteiro, como chave primria;
nome: varchar, de tamanho 50;
endereo: varchar, de tamanho 80;
sexo: char, de tamanho 1;
fone: varchar, de tamanho 14;
datanasc: date.
7. Informe os comandos SQL para realizar a insero dos seguintes dados na
tabela Cliente:
Registro 1:
Cdigo = 2010
Nome = Joo Pedro e Silva
Endereo = Av. Um, 100
Sexo = M
Fone = (38) 3221-0101
DataNasc = 01/01/1980
Registro 2:
Cdigo = 2011
Nome = Maria Aparecida Linhares
Endereo = R. So Jos, 20
Sexo = F
Fone = (31) 3422-0202
DataNasc = 10/12/1990
8. Qual a sequncia de comando SQL para alterar o endereo do cliente
de cdigo = 2010 para Rua Porto Alves, 45, ao invs de Av. Um, 100.
9. Com base no esquema apresentado, informe a sequncia SQL para resol-
ver as questes que se seguem:
Esquemas
Mdico (CodMed, CRM, Nome, Especialidade, CPF, Endereco, CEP,
Cidade, Fone)
Paciente (Codigo, Nome, Endereco, Cidade, Fone, CodMed)
a. Listar todos os mdicos mostrando o nome, a especialidade e o telefone
de cada um, ordenados pelo nome.
b. Listar todos os campos mdico, ordenados por cidade.
c. Liste o total da folha de pagamento, ou seja, o somatrio dos salrios.
d. Liste os nomes dos pacientes da cidade de Belo Horizonte que foram
atendidos pelo mdico Ivo Pitangui.
e. Informe a quantidade de mdicos por cidade.
e-Tec Brasil/CEMF/Unimontes Banco de Dados
AULA 1
Alfabetizao Digital
59
Aula 6 Integrao de banco de dados e
internet
Objetivos
apresentar a importncia do uso de SGBD integrados internet;
apresentar o processo de conexo de um sistema com o banco
de dados na internet;
demonstrar como se realiza a conexo do sistema com o banco
de dados na web.
6.1 SGBD web
Voc sabe como fazer para conectar os seus sistemas a um banco
de dados? E a um SGBD que funciona na web (internet)? Conhece algum SGBD
que rode na rede mundial de computadores, a internet?
Bom, existem diversos SGBD que funcionam na web como o prprio
MySql (que est sendo utilizado nos exemplos deste caderno), o PostgreSQL,
o SQL Server, o DB2, o Oracle, o Firebird e outros. No entanto, o objetivo
deste caderno no o de ensinar esses SGBD, nem a programar e muito
menos desenvolver aplicaes web. Nesta seo, ns iremos abordar apenas
alguns conceitos sobre SGBD web e algumas informaes importantes para se
conectar um sistema a um SGBD na internet.
O uso de sistemas web, isto , sistemas que funcionam e so aces-
sados via internet est dominando o mercado tecnolgico e se tornando
o tipo de soluo mais utilizada pelas organizaes. Um sistema web tem
inmeros atrativos, que comeam pela fexibilidade e acesso remoto, onde o
mesmo pode ser acessado de qualquer lugar (desde que tenha uma conexo
internet), e vo at a portabilidade e a disponibilidade, em que pode ser
acessado utilizando-se de diferentes tipos de sistemas operacionais e em
qualquer horrio, desde que o servidor do banco de dados esteja ligado, ou
seja, on line.
Como j foi dito, existem diversos SGBD, e cada um apresenta um con-
junto de caractersticas particulares, as quais no so objeto de estudo deste
caderno didtico. A escolha do SGBD que ser utilizado deve ser feita baseada
nas funcionalidades e caractersticas de cada um e no que foi defnido no projeto
de banco de dados, ou seja, naquilo que a empresa planejou e determinou como
estrutura do seu banco de dados e tipo de informaes que sero trabalhadas.
Neste caderno, optou-se por trabalhar com exemplos e funes do MySql, por se
tratar de um SGBD gratuito, leve, de fcil manuseio e que detm bastante ma-
terial de apoio para estudos publicados em livros e em trabalhos de pesquisa na
internet, tornando-o uma tima opo de estudos prticos em nvel acadmico.
Para maiores
informaes e
enriquecimento de
contedo, procure
outras referncias,
como Elmasri e Navathe
(2011), ou ainda sites,
como Sistema de
Bibliotecas da Unicamp
(http://www.sbu.
unicamp.br/), Portal
da Capes (http://www.
periodicos.capes.
gov.br/), Domnio
Pblico (http://www.
dominiopublico.gov.br/)
etc.
e-Tec Brasil/CEMF/Unimontes Informtica 60
6.2 Conexo do SGBD com internet
Meu caro aluno, voc acessa a internet frequentemente? Acessa
sistemas de pesquisa, de cadastros de dados e sistemas de banco on line? En-
to, voc, com certeza, utiliza alguma conexo com um SGBD, pois a maioria
dos sistemas se utiliza de um SGBD para gerenciar e armazenar seus dados.
Sendo assim, toda vez que for necessria a insero, a alterao, a excluso
ou a consulta de dados no banco, o sistema o far utilizando-se das funcio-
nalidades do SGBD.
Para voc ter uma ideia mais clara de como seria, segue, a seguir,
uma ilustrao (fgura 21) de como isto acontece.
Figura 21: Conexo com banco de dados na internet.
Fonte: Acervo prprio.
O acesso ao banco de dados disparado, solicitado pelo usurio, e o
sistema que o usurio est operando (localmente) ir se conectar internet (1
evento), procurando o servidor web no qual est o SGBD e o banco de dados (2
evento). Uma vez encontrado o banco de dados, efetuada, ento, a conexo
entre o sistema e o banco (3 evento), possibilitando a troca de informaes en-
tre ambos. Depois, feito o caminho de volta, em resposta ao usurio.
A proposta deste caderno, no entanto, de apresentar apenas
como proceder para se estabelecer uma conexo do sistema com o banco
de dados MySql. Sendo assim, segue, a seguir, um pequeno passo a passo de
como faz-lo.
Utilizando PHP + MySql, por exemplo, seria assim:
<?php
/* Conectando, escolhendo o banco de dados */
$link = mysql_connect(localdoservidor, usurio, senha)
or die(No foi possvel conectar ao servidor! .
mysql_error());
mysql_select_db(nome do BD) or die(No foi possvel selecionar o
banco de dados);
?>
PHP
(Personal Home Page)
uma linguagem
de programao de
interpretao livre e
utilizada para gerar
contedo dinmico
na rede mundial de
computadores (www).
(SAWAYA, 1999).
e-Tec Brasil/CEMF/Unimontes Banco de Dados 61
Onde:
localdoservidor = o endereo (caminho) de onde est armaze-
nado o seu servidor MySql. Se estiver usando o banco de dados
na sua mquina local, apenas a confgurao seria localhost;
usurio = o nome do usurio do banco de dados criado;
senha = a senha que foi defnida para este usurio;
nome do BD = nome do banco de dados que foi criado.
Uma vez feita a conexo com MySql e tambm com o banco de
dados, o programador poder realizar qualquer operao permitida com o
banco de dados. Para isto, ele necessitar conhecer os comandos descritos
neste caderno didtico. A utilizao dos comandos em SQL, relacionados
neste caderno obedecer praticamente a mesma sintaxe apresentada neste,
podendo, talvez, serem necessrios alguns pequenos ajustes, dependendo
do SGBD adotado. As funcionalidades dos comandos sero sempre as mes-
mas, apenas as sintaxes que podero sofrer algum tipo de ajuste.
Para aplicao ou utilizao dos comandos SQL, ainda necessrio
saber mais uma informao importante.
Usando o mysql, por exemplo, a forma mais adequada e aconselha-
da do seu uso atravs da seguinte linha de:
$query= Select * from [nome-da-tabela];
$result= mysql_query($query);
Onde:
$query: a representao da varivel em php chamada query.
Em php, as variveis utilizadas so sempre precedidas do $. Esta
varivel conter a sequncia de comando SQL Select * from
[nome-da-tabela] a ser executado pelo BD. At este momento,
o comando SQL ainda no foi executado de fato. Para isto,
necessria a execuo do comando mysql_query;
mysql_query($query): mysql_query o comando responsvel
por executar o comando SQL direto no banco de dados. Neste
caso, a execuo do comando descrito (Select ...) atribuir a
varivel $result o resultado do comando empregado, isto , se
executar o comando Select * from tabela, o resultado ser
todos os campos da tabela referida.
Resumo
Nesta aula voc aprendeu:
a importncia da integrao dos SGBD aos sistemas web;
que a escolha do SGBD deve ser um processo criterioso;
como realizar a conexo com o SGBD na web.
e-Tec Brasil/CEMF/Unimontes Informtica 62
Atividades de aprendizagem
1. O que um SGBD web?
2. Relacione 4 SGBD web.
3. Explique, passo a passo, como feita a conexo com o banco de dados na
internet, independente de qual seja esse SGBD.
e-Tec Brasil/CEMF/Unimontes Banco de Dados 63
Referncias
DATE, C. J.. Introduo a Sistemas de Bancos de Dados. Rio de Janeiro: Cam-
pus, 2000.
ELMASRI, Ramez; NAVATHE, Shamkant B.. Sistemas de Banco de Dados. 4
Ed. So Paulo: Pearson Addison Wesley, 2005.
______________________________________. Sistemas de Banco de Da-
dos. 6 Ed. So Paulo: Pearson Addison Wesley, 2011.
SANCHES, Andr Rodrigo. Fundamentos de Armazenamento e Manipulao
de Dados. Disponvel em <http://www.ime.usp.br/~andrers/aulas/bd2005-1/
aula5.html>. Acessado em 03 de abril de 2011.
SAWAYA, Mrcia Regina. Dicionrio de Informtica e Internet. So Paulo: No-
bel, 1999.
SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S.. Sistema de Ban-
co de Dados. So Paulo: Makron Books, 1999.
WELLING, Luke; THOMSON, Laura. PHP e MySQL desenvolvimento Web. Rio
de Janeiro: Elsevier, 2005.
e-Tec Brasil/CEMF/Unimontes Informtica 64
Currculo do professor conteudista
Leandro Clementino de Almeida
Graduado em Sistemas de Informao pela Universidade Estadual de Montes
Claros/Unimontes, Especializao em Administrao de Redes Linux, pela
Universidade Federal de Lavras, e Mestrando em Administrao, pela Facul-
dade de Estudos Administrativos de Minas Gerais. Atualmente, professor da
Universidade Estadual de Montes Claros e do e-Tec Brasil e, ainda, adminis-
trador de redes do Centro de Ensino Profssional e Tecnolgico da Unimontes.
e-Tec Brasil/CEMF/Unimontes
Escola Tcnica Aberta do Brasil

Vous aimerez peut-être aussi