You are on page 1of 255

Universidade do Sul de Santa Catarina

Banco de Dados I

Disciplina na modalidade a distncia


Universidade do Sul de Santa Catarina

Banco de Dados I
Disciplina na modalidade a distncia

Palhoa
UnisulVirtual
2011

banco de dados I.indb 1 16/09/11 15:40


Crditos
Universidade do Sul de Santa Catarina Campus UnisulVirtual Educao Superior a Distncia
Avenida dos Lagos, 41 Cidade Universitria Pedra Branca | Palhoa SC | 88137-900 | Fone/fax: (48) 3279-1242 e 3279-1271 | E-mail: cursovirtual@unisul.br | Site: www.unisul.br/unisulvirtual

Reitor Unisul Assistente e Auxiliar de Luana Borges da Silva Gerncia de Desenho Jeferson Pandolfo
Ailton Nazareno Soares Coordenao Luana Tarsila Hellmann e Desenvolvimento de Karine Augusta Zanoni
Maria de Ftima Martins (Assistente) Luza Koing Zumblick Materiais Didticos Marcia Luz de Oliveira
Vice-Reitor Fabiana Lange Patricio Maria Jos Rossetti Mrcia Loch (Gerente)
Tnia Regina Goularte Waltemann Marilene de Ftima Capeleto Assuntos Jurdicos
Sebastio Salsio Heerdt Ana Denise Goularte de Souza Bruno Lucion Roso
Patricia A. Pereira de Carvalho Desenho Educacional
Chefe de Gabinete da Paulo Lisboa Cordeiro Cristina Klipp de Oliveira (Coord. Grad./DAD) Marketing Estratgico
Coordenadores Graduao Silvana Souza da Cruz (Coord. Ps/Ext.)
Reitoria Adriano Srgio da Cunha Paulo Mauricio Silveira Bubalo Rafael Bavaresco Bongiolo
Rosngela Mara Siegel Aline Cassol Daga
Willian Mximo Alosio Jos Rodrigues Ana Cludia Ta Portal e Comunicao
Ana Lusa Mlbert Simone Torres de Oliveira
Vanessa Pereira Santos Metzker Carmelita Schulze Catia Melissa Silveira Rodrigues
Pr-Reitora Acadmica Ana Paula R. Pacheco Carolina Hoeller da Silva Boeing Andreia Drewes
Arthur Beck Neto Vanilda Liordina Heerdt
Miriam de Ftima Bora Rosa Elosa Machado Seemann Luiz Felipe Buchmann Figueiredo
Bernardino Jos da Silva Gesto Documental Flavia Lumi Matuzawa Marcelo Barcelos
Pr-Reitor de Administrao Catia Melissa S. Rodrigues Lamuni Souza (Coord.) Gislaine Martins Rafael Pessi
Fabian Martins de Castro Charles Cesconetto Clair Maria Cardoso Isabel Zoldan da Veiga Rambo
Diva Marlia Flemming Daniel Lucas de Medeiros Jaqueline de Souza Tartari Gerncia de Produo
Pr-Reitor de Ensino Fabiano Ceretta Eduardo Rodrigues Joo Marcos de Souza Alves Arthur Emmanuel F. Silveira (Gerente)
Jos Carlos da Silva Junior Guilherme Henrique Koerich Francini Ferreira Dias
Mauri Luiz Heerdt Horcio Dutra Mello Josiane Leal
Leandro Roman Bamberg
Letcia Laurindo de Bonfim Design Visual
Itamar Pedro Bevilaqua Marlia Locks Fernandes
Campus Universitrio de Jairo Afonso Henkes
Lygia Pereira Pedro Paulo Alves Teixeira (Coord.)
Tubaro Lis Air Fogolari Adriana Ferreira dos Santos
Janana Baeta Neves Gerncia Administrativa e Luiz Henrique Milani Queriquelli
Diretora Jardel Mendes Vieira Financeira Alex Sandro Xavier
Milene Pacheco Kindermann Marina Melhado Gomes da Silva Alice Demaria Silva
Joel Irineu Lohn Renato Andr Luz (Gerente) Marina Cabeda Egger Moellwald
Jorge Alexandre N. Cardoso Ana Luise Wehrle Anne Cristyne Pereira
Campus Universitrio da Melina de La Barrera Ayres Cristiano Neri Gonalves Ribeiro
Jos Carlos N. Oliveira Anderson Zandr Prudncio Michele Antunes Corra
Grande Florianpolis Jos Gabriel da Silva Daniel Contessa Lisboa Daiana Ferreira Cassanego
Ngila Hinckel Diogo Rafael da Silva
Diretor Jos Humberto D. Toledo Naiara Jeremias da Rocha Pmella Rocha Flores da Silva
Hrcules Nunes de Arajo Joseane Borges de Miranda Rafael Bourdot Back Edison Rodrigo Valim
Rafael Arajo Saldanha Frederico Trilha
Luciana Manfroi Thais Helena Bonetti Roberta de Ftima Martins
Campus Universitrio Luiz G. Buchmann Figueiredo Valmir Vencio Incio Higor Ghisi Luciano
Roseli Aparecida Rocha Moterle Jordana Paula Schulka
UnisulVirtual Marciel Evangelista Catneo Sabrina Bleicher
Maria Cristina S. Veit Gerncia de Ensino, Pesquisa Marcelo Neri da Silva
Diretora Sabrina Paula Soares Scaranto Nelson Rosa
Maria da Graa Poyer e Extenso Viviane Bastos
Jucimara Roesler Mauro Faccioni Filho Oberdan Porto Leal Piantino
Moacir Heerdt (Gerente) Patrcia Fragnani de Morais
Moacir Fogaa Aracelli Araldi Acessibilidade
Nlio Herzmann Vanessa de Andrade Manoel (Coord.) Multimdia
Equipe UnisulVirtual Onei Tadeu Dutra Elaborao de Projeto e Letcia Regiane Da Silva Tobal
Reconhecimento de Curso Srgio Giron (Coord.)
Patrcia Fontanella Mariella Gloria Rodrigues Dandara Lemos Reynaldo
Diretora Adjunta Rogrio Santos da Costa Diane Dal Mago
Patrcia Alberton Vanderlei Brasil Avaliao da aprendizagem Cleber Magri
Rosa Beatriz M. Pinheiro Fernando Gustav Soares Lima
Tatiana Lee Marques Francielle Arruda Rampelotte Geovania Japiassu Martins (Coord.)
Secretaria Executiva e Cerimonial Gabriella Arajo Souza Esteves
Jackson Schuelter Wiggers (Coord.) Valnei Carlos Denardin Extenso Conferncia (e-OLA)
Roberto Iunskovski Jaqueline Cardozo Polla Carla Fabiana Feltrin Raimundo (Coord.)
Marcelo Fraiberg Machado Maria Cristina Veit (Coord.) Thayanny Aparecida B.da Conceio
Tenille Catarina Rose Clr Beche Bruno Augusto Zunino
Rodrigo Nunes Lunardelli Pesquisa
Assessoria de Assuntos Sergio Sell Daniela E. M. Will (Coord. PUIP, PUIC, PIBIC) Gerncia de Logstica Produo Industrial
Internacionais Mauro Faccioni Filho(Coord. Nuvem) Jeferson Cassiano A. da Costa (Gerente) Marcelo Bittencourt (Coord.)
Murilo Matos Mendona Coordenadores Ps-Graduao
Aloisio Rodrigues Ps-Graduao Logsitca de Materiais Gerncia Servio de Ateno
Assessoria de Relao com Poder Bernardino Jos da Silva Anelise Leal Vieira Cubas (Coord.) Carlos Eduardo D. da Silva (Coord.)
Pblico e Foras Armadas Abraao do Nascimento Germano Integral ao Acadmico
Carmen Maria Cipriani Pandini Maria Isabel Aragon (Gerente)
Adenir Siqueira Viana Daniela Ernani Monteiro Will Biblioteca Bruna Maciel
Walter Flix Cardoso Junior Salete Ceclia e Souza (Coord.) Fernando Sardo da Silva Andr Luiz Portes
Giovani de Paula Carolina Dias Damasceno
Karla Leonora Nunes Paula Sanhudo da Silva Fylippy Margino dos Santos
Assessoria DAD - Disciplinas a Renan Felipe Cascaes Cleide Incio Goulart Seeman
Distncia Leticia Cristina Barbosa Guilherme Lentz
Marlon Eliseu Pereira Francielle Fernandes
Patrcia da Silva Meneghel (Coord.) Luiz Otvio Botelho Lento Holdrin Milet Brando
Carlos Alberto Areias Rogrio Santos da Costa Gesto Docente e Discente Pablo Varela da Silveira
Enzo de Oliveira Moreira (Coord.) Rubens Amorim Jenniffer Camargo
Cludia Berh V. da Silva Roberto Iunskovski Juliana Cardoso da Silva
Conceio Aparecida Kindermann Thiago Coelho Soares Yslann David Melo Cordeiro
Capacitao e Assessoria ao Jonatas Collao de Souza
Luiz Fernando Meneghel Vera Regina N. Schuhmacher Docente Avaliaes Presenciais Juliana Elen Tizian
Renata Souza de A. Subtil Simone Zigunovas (Capacitao) Graciele M. Lindenmayr (Coord.) Kamilla Rosa
Gerncia Administrao Alessandra de Oliveira (Assessoria)
Assessoria de Inovao e Acadmica Ana Paula de Andrade Maurcio dos Santos Augusto
Qualidade de EAD Adriana Silveira Angelica Cristina Gollo Maycon de Sousa Candido
Angelita Maral Flores (Gerente) Alexandre Wagner da Rocha
Denia Falco de Bittencourt (Coord) Fernanda Farias Cristilaine Medeiros Monique Napoli Ribeiro
Andrea Ouriques Balbinot Elaine Cristiane Surian Daiana Cristina Bortolotti Nidia de Jesus Moraes
Carmen Maria Cipriani Pandini Secretaria de Ensino a Distncia Juliana Cardoso Esmeraldino Delano Pinheiro Gomes Orivaldo Carli da Silva Junior
Iris de Sousa Barros Samara Josten Flores (Secretria de Ensino) Maria Lina Moratelli Prado Edson Martins Rosa Junior Priscilla Geovana Pagani
Giane dos Passos (Secretria Acadmica) Fabiana Pereira Fernando Steimbach Sabrina Mari Kawano Gonalves
Assessoria de Tecnologia Adenir Soares Jnior Fernando Oliveira Santos Scheila Cristina Martins
Osmar de Oliveira Braz Jnior (Coord.) Tutoria e Suporte
Alessandro Alves da Silva Claudia Noemi Nascimento (Lder) Lisdeise Nunes Felipe Taize Muller
Felipe Jacson de Freitas Andra Luci Mandira Marcelo Ramos Tatiane Crestani Trentin
Jefferson Amorin Oliveira Anderson da Silveira (Lder)
Cristina Mara Schauffert Ednia Araujo Alberto (Lder) Marcio Ventura Vanessa Trindade
Phelipe Luiz Winter da Silva Djeime Sammer Bortolotti Osni Jose Seidler Junior
Priscila da Silva Maria Eugnia F. Celeghin (Lder)
Douglas Silveira Andreza Talles Cascais Thais Bortolotti
Rodrigo Battistotti Pimpo Evilym Melo Livramento
Tamara Bruna Ferreira da Silva Daniela Cassol Peres
Fabiano Silva Michels Dbora Cristina Silveira Gerncia de Marketing
Fabricio Botelho Espndola Francine Cardoso da Silva Fabiano Ceretta (Gerente)
Coordenao Cursos Felipe Wronski Henrique Joice de Castro Peres Relacionamento com o Mercado
Coordenadores de UNA Gisele Terezinha Cardoso Ferreira Karla F. Wisniewski Desengrini
Indyanara Ramos Eliza Bianchini Dallanhol Locks
Diva Marlia Flemming Maria Aparecida Teixeira
Marciel Evangelista Catneo Janaina Conceio Mayara de Oliveira Bastos Relacionamento com Polos
Roberto Iunskovski Jorge Luiz Vilhar Malaquias Patrcia de Souza Amorim Presenciais
Juliana Broering Martins Schenon Souza Preto Alex Fabiano Wehrle (Coord.)

banco de dados I.indb 2 16/09/11 15:40


Marcelo Medeiros
Luciano Jos Svio

Banco de Dados I
Livro didtico

Reviso e atualizao de contedo


Tatiane dos Santos Leal

Design instrucional
Viviane Bastos

4 edio

Palhoa
UnisulVirtual
2011

banco de dados I.indb 3 16/09/11 15:40


Copyright UnisulVirtual 2011
Nenhuma parte desta publicao pode ser reproduzida por qualquer meio sem a prvia autorizao desta instituio.

Edio Livro Didtico


Professores Conteudistas
Marcelo Medeiros
Luciano Jos Svio

Reviso e atualizao de contedo


Tatiane dos Santos Leal

Design Instrucional
Viviane Bastos

Assistente Acadmico
Roberta de Fatima Martins

Projeto Grfico e Capa


Equipe UnisulVirtual

Diagramao
Rafael Pessi
Anne Cristyne Pereira (4 edio)

Reviso
Simone Rejane Martins
Diane Dal Mago (4 edio)

005.74
M43 Medeiros, Marcelo
Banco de dados I : livro didtico / Marcelo Medeiros, Luciano Jos
Svio ; reviso e atualizao de contedo Tatiane dos Santos Leal ; design
instrucional Viviane Bastos. 4. ed. Palhoa : UnisulVirtual, 2011.
253 p. : il. ; 28 cm.

Inclui bibliografia.

1. Banco de dados. 2. Engenharia de software. 3. Tecnologia da


informao. I. Svio, Luciano Jos. II. Leal, Tatiane dos Santos. III. Bastos,
Viviane. IV. Ttulo.

Ficha catalogrfica elaborada pela Biblioteca Universitria da Unisul

banco de dados I.indb 4 16/09/11 15:40


Sumrio

Apresentao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Palavras dos professores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Plano de estudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

UNIDADE 1 - Banco de dados e a tecnologia da informao. . . . . . . . . . . . . 17


UNIDADE 2 - Conceitos de bancos de dados. . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
UNIDADE 3 - Modelagem de dados e projeto de banco de dados . . . . . . . 75
UNIDADE 4 - Produtos de Banco de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
UNIDADE 5 - Implementao do projeto de banco de dados. . . . . . . . . . . 119
UNIDADE 6 - Ferramentas case para apoio ao projeto
e banco de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
UNIDADE 7 - Acesso e manipulao de dados. . . . . . . . . . . . . . . . . . . . . . . . . 167
UNIDADE 8 - Recuperao de informaes do banco de dados . . . . . . . . 185
UNIDADE 9 - Recuperao de informaes por meio de tabelas. . . . . . . . 213

Para concluir o estudo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237


Referncias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Sobre os professores conteudistas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Respostas e comentrios das atividades de autoavaliao. . . . . . . . . . . . . . 243
Biblioteca Virtual. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

banco de dados I.indb 5 16/09/11 15:40


banco de dados I.indb 6 16/09/11 15:40
Apresentao

Este livro didtico corresponde disciplina Banco de Dados I.

O material foi elaborado visando a uma aprendizagem autnoma


e aborda contedos especialmente selecionados e relacionados
sua rea de formao. Ao adotar uma linguagem didtica
e dialgica, objetivamos facilitar seu estudo a distncia,
proporcionando condies favorveis s mltiplas interaes e a
um aprendizado contextualizado e eficaz.

Lembre-se que sua caminhada, nesta disciplina, ser


acompanhada e monitorada constantemente pelo Sistema
Tutorial da UnisulVirtual, por isso a distncia fica
caracterizada somente na modalidade de ensino que voc optou
para sua formao, pois na relao de aprendizagem professores
e instituio estaro sempre conectados com voc.

Ento, sempre que sentir necessidade entre em contato; voc tem


disposio diversas ferramentas e canais de acesso tais como:
telefone, e-mail e o Espao Unisul Virtual de Aprendizagem,
que o canal mais recomendado, pois tudo o que for enviado e
recebido fica registrado para seu maior controle e comodidade.
Nossa equipe tcnica e pedaggica ter o maior prazer em lhe
atender, pois sua aprendizagem o nosso principal objetivo.

Bom estudo e sucesso!

Equipe UnisulVirtual.

banco de dados I.indb 7 16/09/11 15:40


banco de dados I.indb 8 16/09/11 15:40
Palavras dos professores

Ol, voc est iniciando o estudo da disciplina Banco de


Dados I.

Se voc parar um pouco para avaliar o seu dia a dia, notar


que convive com um mundo de informaes, que so usadas
nas suas atividades dirias, por mais simples que sejam.

Ao fazer uma ligao telefnica, realizar uma compra ou


simplesmente utilizar o seu meio de transporte at o trabalho,
um conjunto de informaes so necessrias para que cada
uma dessas atividades seja realizada de forma rpida e
eficiente.

Nesta disciplina voc conhecer as formas de armazenamento


e acesso aos dados gravados no computador e algumas
ferramentas existentes no mercado de trabalho que permitiro
organizar suas informaes de forma confivel. Ver tambm
que o ambiente de banco de dados utiliza uma linguagem
padro para manipulao dos dados, chamada de SQL.

Enfim, voc poder entender melhor o funcionamento


das principais ferramentas de banco de dados, criar alguns
modelos deles e e manipul-los de forma prtica.

Espero que voc possa aproveitar ao mximo o contedo desta


disciplina.

Bom estudo!

Profs. Marcelo Medeiros e Luciano Svio

banco de dados I.indb 9 16/09/11 15:40


banco de dados I.indb 10 16/09/11 15:40
Plano de estudo

O plano de estudos visa a orient-lo no desenvolvimento da


disciplina. Ele possui elementos que o ajudaro a conhecer o
contexto da disciplina e a organizar o seu tempo de estudos.

O processo de ensino e aprendizagem na UnisulVirtual leva


em conta instrumentos que se articulam e se complementam,
portanto, a construo de competncias se d sobre a
articulao de metodologias e por meio das diversas formas de
ao/mediao.

So elementos desse processo:

o livro didtico;

o Espao UnisulVirtual de Aprendizagem (EVA);

as atividades de avaliao (a distncia, presenciais e de


autoavaliao);

o Sistema Tutorial.

Ementa
Origens de um sistema de banco de dados. Caractersticas
de um sistema de banco de dados. Modelo de dados. Bancos
de dados relacionais e orientados a objetos. Linguagens de
definio e manipulao de dados. Modelos de entidade/
relacionamento.

Ferramentas computacionais para implementao de bancos de


dados. Perfil do profissional de banco de dados.

banco de dados I.indb 11 16/09/11 15:40


Universidade do Sul de Santa Catarina

Objetivos

Geral:
Propiciar o desenvolvimento e a utilizao de sistemas de banco
de dados, por meio dos conceitos fundamentais sobre eles, os
seus sistemas de gerenciamento, formas de modelagem de dados
e as caractersticas da linguagem de programao para banco de
dados.

Especficos:
Conhecer os conceitos bsicos sobre banco de dados,
origem e a sua forma de funcionamento.

Apresentar as principais ferramentas de sistema de banco


de dados.

Apresentar os conceitos de banco de dados relacional e


orientado ao objeto.

Conhecer como instalar e praticar em um sistema


gerenciador de banco de dados relacional.

Conhecer a linguagem de programao para banco de


dados relacional.

Possibilitar a criao e manipulao de um modelo de


banco de dados.

Refletir sobre as tendncias de ferramentas e profissionais


para rea de banco de dados.

Carga Horria
A carga horria total da disciplina de 60 horas-aula.

12

banco de dados I.indb 12 16/09/11 15:40


Banco de Dados I

Contedo programtico/objetivos
Veja, a seguir, as unidades que compem o livro didtico desta
disciplina e os seus respectivos objetivos. Estes se referem aos
resultados que voc dever alcanar ao final de uma etapa de
estudo. Os objetivos de cada unidade definem o conjunto de
conhecimentos que voc dever possuir para o desenvolvimento
de habilidades e competncias necessrias sua formao.

Unidades de estudo: 9

Unidade 1 - Banco de dados e a tecnologia da informao


Nesta unidade ser abordado sobre a rea de banco de dados nas
organizaes, sua importncia e um pouco da histria acerca
da evoluo e consolidao dos bancos de dados no mercado. O
contedo desta unidade centrar-se- na anlise de dois aspectos:
a informtica como meio de produo ou a informtica como
produto final.

Unidade 2 Conceitos de bancos de dados


Com o estudo desta unidade, voc vai conhecer os conceitos de
banco de dados e os tipos de sistemas de gerenciamento de banco
de dados. Alm disso, vai conhecer os modelos de banco de
dados disposio do profissional desta rea.

Unidade 3 Modelagem de dados e projeto de banco de dados


Nesta unidade, sero apresentados os processos para se projetar
um banco de dados bem como o conceito de modelagem de
dados. Sero apresentados, tambm, os tipos de cardinalidades
nas relaes entre os elementos do modelo de dados.

13

banco de dados I.indb 13 16/09/11 15:40


Universidade do Sul de Santa Catarina

Unidade 4 Produtos de banco de dados


Esta unidade apresentar os conceitos de Software Livre e de
software de tecnologia proprietria. Vai abordar sobre alguns
produtos de banco de dados construdos sob o mbito de software
proprietrio e sob o mbito de software livre. Com isso, este
estudo permitir compreender o impacto do Software Livre nos
produtos de banco de dados.

Unidade 5 Implementao do projeto de banco de dados


Esta unidade abordar a origem da linguagem SQL, os tipos de
dados da linguagem SQL e os comandos de definio de dados
(DDL). Ser abordado, tambm, a funcionalidade das chaves
primrias e estrangeiras em um banco de dados e os elementos de
um projeto de banco de dados numa ferramenta de SGBD.

Unidade 6 Ferramentas Case para apoio ao projeto de banco de


dados
Nesta unidade, ser abordada a importncia das ferramentas
Case e as vantagens do uso dessas ferramentas como apoio
modelagem de dados.

Unidade 7 Acesso e manipulao de dados


Esta unidade aborda os comandos de manipulao de dados
(DML), mostra como e o que fazer para inserir dados em uma
tabela e para alterar e remover os dados cadastrados.

Unidade 8 Recuperao de informaes do banco de dados


Nesta unidade, sero apresentados os passos para selecionar
dados em SQL, usando a DML e as funes agregadas em
SQL. Ser apresentado, tambm, como se gera consultas com
agrupamento em SQL.

14

banco de dados I.indb 14 16/09/11 15:40


Banco de Dados I

Unidade 9 Recuperao de informaes por meio de tabelas


Esta unidade apresenta como selecionar dados em SQL usando
mais de uma tabela como referncia. Apresenta, tambm, os
tipos de junes em SQL e como se gera consultas em SQL mais
eficientes.

Agenda de atividades/ Cronograma

Verifique com ateno o EVA, organize-se para acessar


periodicamente a sala da disciplina. O sucesso nos seus
estudos depende da priorizao do tempo para a leitura, da
realizao de anlises e snteses do contedo e da interao
com os seus colegas e tutor.

No perca os prazos das atividades. Registre no espao


a seguir as datas com base no cronograma da disciplina
disponibilizado no EVA.

Use o quadro para agendar e programar as atividades relativas


ao desenvolvimento da disciplina.

15

banco de dados I.indb 15 16/09/11 15:40


Universidade do Sul de Santa Catarina

Atividades obrigatrias

Demais atividades (registro pessoal)

16

banco de dados I.indb 16 16/09/11 15:40


1
unidade 1

Banco de dados e a tecnologia


da informao

Objetivos de aprendizagem
Compreender a importncia dos bancos de dados na
rea de tecnologia da informao.

Entender a evoluo dos sistemas de armazenamento


para sistemas gerenciadores de banco de dados.

Compreender o papel dos profissionais de banco de


dados.

Sees de estudo
Seo 1 Banco de dados e a rea de tecnologia da
informao

Seo 2 De sistemas de arquivos a sistemas


gerenciadores de banco de dados

Seo 3 O mercado de trabalho e seus profissionais

banco de dados I.indb 17 16/09/11 15:40


Universidade do Sul de Santa Catarina

Para incio de estudo


Nesta unidade ser contextualizada a rea de banco de dados nas
organizaes, sua importncia, bem como os profissionais que
nela atuam e tambm como os bancos de dados evoluram e se
consolidaram no mercado.

Porm, para compreender melhor o mercado de informtica


voltado para rea de banco de dados, preciso analis-lo a partir
de dois importantes aspectos, que so: a informtica como meio
de produo ou a informtica como produto final.

Mas o que significa analisar estes aspectos dos bancos


de dados?

Quando uma empresa utiliza a informtica como complemento


sua produo, ou criao do seu produto final, no est
vendendo um servio de informtica, mas sim utilizando-se
desse servio para alcanar os seus objetivos. Essa empresa usa a
informtica como um processo complementar s suas atividades,
por isso referida como empresa que utiliza a informtica como
meio.

Um exemplo disso so os supermercados. Eles utilizam a


informtica, os sistemas de banco de dados e softwares para
permitir que seus clientes realizem os servios desejados.
Entretanto, esse servio no est sendo diretamente vendido
ao cliente, que muitas vezes nem se d conta da quantidade de
recursos de informtica que foram necessrios para a realizao
de determinada tarefa.

H tambm no mercado as empresas que tm a informtica como


seu principal produto, criando softwares, realizando consultorias
na rea da computao, instalando e montando equipamentos.
Essas empresas tm a informtica como seu produto final.

Por exemplo, a MicroSoft uma empresa que tem


na criao de produtos de informtica, nesse caso,
softwares, o seu principal recurso financeiro. A
informtica o produto final da sua linha de produo
e seus produtos sero utilizados como meio de
produo em muitas empresas de todo o mundo.
18

banco de dados I.indb 18 16/09/11 15:40


Banco de Dados I

Voc deve estar se perguntando: e da? Bem, como temos cenrios


diferentes para o uso da informtica, temos tambm necessidades
de profissionais diferentes para desenvolver as tarefas do dia a dia.

E nesse escopo que esta unidade ser inserida, de forma a


apresentar a voc o contexto da rea de banco de dados dentro da
Tecnologia da Informao das empresas, o papel dos profissionais que
esto envolvidos com a informtica, seja ela produto meio ou fim.

Alm disso, voc vai conhecer como ocorreu a evoluo dos


sistemas de armazenamento de dados at o advento dos Sistemas
Gerenciadores de Banco de dados ou SGBDs.

Seo 1 Banco de dados e a rea de tecnologia da


informao
A tecnologia da informao, ou simplesmente TI, est em constante
evoluo, assim como tudo na rea da informtica. A cada dia
surgem novos conceitos e jarges utilizados pelo mercado, a fim
de representar uma nova tecnologia, tcnica ou mesmo um novo
produto. Se vocs fizerem uma pesquisa pela rede mundial podero
se deparar com termos j no mais utilizados, ou em desuso no
mercado da informtica, como por exemplo, downsizing, rightsizing,
mainframe, dentre outros, mas que em algum momento da
histria estiveram presentes e indicavam algum tipo de tcnica ou
tecnologia utilizada.

Atualmente, banco de dados est posicionada nas reas de TI das


empresas junto s reas de redes, telecomunicaes e hardware,
formando a infra estrutura base da rea de informtica dessas
empresas. Ter uma infra estrutura consolidada e robusta
indispensvel para qualquer organizao, pois representa segurana
nas operaes fundamentais para o fluxo das informaes na
empresa.

Dentre essas operaes fundamentais destacam-se o fornecimento


de informaes e os mecanismos que permitem com que essas
informaes circulem pela organizao.

Unidade 1 19

banco de dados I.indb 19 16/09/11 15:40


Universidade do Sul de Santa Catarina

Os elementos formadores da rea de infra estrutura so ditos de


funes crticas, ou seja, muito importantes para que toda a rea
de TI funcione adequadamente. Imagine voc em uma empresa
com 500 pontos de redes interconectados, utilizando-se de 25
tipos de softwares. Todo esse pessoal depende exclusivamente
das redes de comunicaes, para que consiga trocar e armazenar
informaes, e tambm do banco de dados, onde as informaes
utilizadas por esses usurios so registradas por meio dos sistemas
de informao e processadas.

Seguindo essa lgica, qualquer problema envolvendo algum


elemento da rea de infra estrutura pode causar uma paralizao
das atividades de grande parte da empresa, inviabilizando
o trabalho de muitas pessoas. Da, atualmente, a grande
importncia atribuda a essa rea e, consequentemente, ao banco
de dados das organizaes.

O elemento principal responsvel pelo fornecimento das


informaes na rea de TI , sem dvida, o banco de dados,
ou melhor, o Sistema Gerenciador de Banco de Dados. Ele o
responsvel por toda a manuteno da informao que mantida
pela empresa, conforme apresentado na prxima seo.

Seo 2 De sistemas de arquivos a sistemas


gerenciadores de banco de dados
O armazenamento de dados passou por algumas transformaes
e adaptaes ao longo do tempo. Essas mudanas se deram em
funo da evoluo da tecnologia, com novos equipamentos e
solues para o armazenamento de dados, e tambm pela prpria
evoluo das novas necessidades de armazen-los, dentre elas,os
volumes cada vez maiores de informao, alm da recuperao e
armazenamento mais rpidos e eficientes, com maior segurana.

At 30 anos atrs, o foco principal da rea de informtica


estava no processamento dos dados e no aprimoramento
da tecnologia para que este processamento tivesse melhor
performance. Trabalhou-se muito para que os processadores, a
memria e o conjunto de componentes internos evolussem e

20

banco de dados I.indb 20 16/09/11 15:40


Banco de Dados I

se tornassem cada vez mais performticos e seguros nas suas


operaes. Uma vez que se adquiriu uma qualidade significativa
com esses elementos, uma necessidade pelo armazenamento
mais seguro das informaes comeou a ser delineada, j que,
com muita capacidade de processamento disposio, deveria
haver mecanismos para que se armazenasse o resultado desse
processamento ou que servisse de fonte de informaes para
serem processadas.

A necessidade de armazenar mais e mais informaes levou a


rea de informtica a desenvolver novas tecnologias para que
pudesse suportar maiores capacidades de armazenamento e que
essas informaes estivessem com um mnimo de segurana e
confiabilidade.

Com o aumento da capacidade de armazenamento e recuperao


das informaes, e tambm com o desenvolvimento de novas
metodologias de desenvolvimento de softwares, tornou vivel
o processamento de grandes volumes de informaes, e as
organizaes passaram a se informatizar num ritmo mais
acelerado, vislumbrando maior agilidade e, consequentemente,
maior competitividade no mercado em que estavam inseridas.

A arquitetura utilizada pelos sistemas de informao era bastante


simples, conforme mostra a figura a seguir.

SISTEMAS

Contabilidade Estoque RH

Arq 1 Arq 2 Arq 3

ARQUIVOS DE DADOS
Figura 1.1 Arquitetura de sistemas de informao
Fonte: Elaborao do Autor.

Unidade 1 21

banco de dados I.indb 21 16/09/11 15:40


Universidade do Sul de Santa Catarina

De acordo com a Figura 1.1, nesta arquitetura, cada sistema


de informao proprietrio, detentor da sua prpria base de
dados. Isso significa que cada sistema de informao detm
o conhecimento, quero dizer, cdigo de como manipular os
dados mantidos e quais as regras que devem ser seguidas para
que se insira, altere ou elimine cada uma das informaes ali
armazenadas.

Nesse tipo de arquitetura, fica evidente algumas limitaes, como


por exemplo, a necessidade de redundncia das informaes, ou
seja, informaes idnticas cadastradas em mais de um sistema.
Um exemplo claro dessa limitao o fato de que existem
informaes que so de uso de vrios departamentos da empresa,
sendo denominadas de informaes corporativas.

Como nesta arquitetura cada sistema mantm seu prprio


arquivo de dados, se o sistema X necessita do endereo do cliente
e o sistema Y tambm necessita dessa informao, essa ser
registrada em duplicidade. Ao longo do tempo, essa redundncia
pode acarretar problemas, pois caso o cliente atualize o endereo
no departamento X, eventualmente o departamento Y pode
no ser informado dessa atualizao, gerando dados inexatos na
organizao.

Outra limitao que pode ser identificada no que diz respeito


ao compartilhamento das informaes. Como cada sistema
mantm o controle de como acessar e manipular as informaes
nos seus arquivos de dados, os demais sistemas esto limitados
a trabalharem apenas com as informaes de seus prprios
arquivos, por no possurem conhecimento da estrutura de
organizao dos arquivos de dados dos outros sistemas, no sendo
possvel efetuar o seu acesso. Mas apesar das limitaes, essa
arquitetura cumpria com o seu papel, uma vez que a consolidao
das informaes e o compartilhamento dos dados no era uma
necessidade premente, pois as empresas estavam organizadas
departamentalmente.

Houve, porm, uma mudana significativa na forma como


as empresas estavam sendo administradas. Por uma nova
necessidade de mais agilidade, as organizaes comearam a
ter o estilo de administrao por processos, ao invs do estilo
departamental. Nesse tipo de administrao, uma ao ocorrida
num departamento, pode ecoar em alteraes em diversos outros
setores da empresa. Veja um exemplo prtico.
22

banco de dados I.indb 22 16/09/11 15:40


Banco de Dados I

Caso o setor de almoxarifado pretenda contratar um


novo funcionrio, esse deve comunicar ao setor de
RH, o qual deve informar ao pessoal de recrutamento
e seleo, alm de comunicar ao setor financeiro que
a folha de pagamento vai passar a ter gastos extras.
A rea de finanas, por sua vez, deve comunicar ao
pessoal de vendas que elas devem aumentar, pois os
gastos aumentaram. O pessoal de vendas se comunica
com a produo, que deve ser incrementada, a fim de
suprir as novas vendas.

Um novo desafio foi lanado: como prover tamanha integrao


entre os sistemas de forma a suportar essa nova necessidade
administrativa?

Um dos reflexos imediatos foi que essa arquitetura, na qual


estavam arquitetados os sistemas de informao, logo comeou
a apresentar dificuldades para se manter, uma vez que uma nova
necessidade passou a ser cobrada por parte das organizaes, o
compartilhamento das informaes entre os diversos sistemas.
Isso decorre das prticas administrativas das empresas que
estavam em franca evoluo e troca de informaes entre os
diversos departamentos passou a ser elemento fundamental para
que as empresas pudessem ter maior agilidade nos seus processos
e consequentemente adquirir maior competitividade no mercado.

A partir dessa necessidade, a arquitetura para a implementao


de sistemas de informao passou a ter que vencer um grande
obstculo: permitir o compartilhamento de informaes entre
os diversos sistemas existentes. Cabe citar aqui, h 20, 30 anos
no havia tecnologias to avanadas para interoperabilidade e
interconectividade entre as tecnologias existentes, dessa forma,
no era trivial encontrar sistemas operacionais conversando
entre si, nem tampouco sistemas de informao compartilhando
informaes.

Nesse momento, voc pode perguntar: mas no basta apenas


o Sistema X acessar a base de dados do Sistema Y para que se
compartilhem as informaes?

Realmente, apenas esse o desafio, e por que est sendo tratado


como desafio? Por duas razes principais:

Unidade 1 23

banco de dados I.indb 23 16/09/11 15:40


Universidade do Sul de Santa Catarina

1. O sistema de informao X no tem conhecimento


de como o sistema Y trabalha os seus dados, pois
toda a estrutura e as regras de manipulao dos dados
armazenados esto codificadas dentro do sistema
Y. Como exemplo, imagine que o sistema X precise
armazenar uma nova informao na base de dados
do sistema Y. Como ele vai conseguir isso se no tem
conhecimento de quais as regras estabelecidas para que se
faa a insero desta nova informao? Assim sendo, fica
muito difcil um sistema compartilhar uma informao
de outro sistema, inclusive tendo que manter informaes
duplicadas em vrios sistemas, incorrendo na
redundncia de dados, causando mais dificuldades para
a manuteno e o seu controle. Novamente, voc pode
concluir: simples, basta que um sistema conhea como o
outro sistema trabalha os seus dados!!! Isso mesmo, mas
para que isso ocorra implica numa questo de mercado,
de concorrncia, apresentada no prximo item.

2. O mercado de algum tempo atrs era muito segmentado


e com atuaes pontuais. Dessa forma, a empresa A
fornecia o software para RH e Finanas, por exemplo.
A empresa B fornecia o software para Vendas e Estoque,
assim por diante. Como as organizaes estavam
orientadas a trabalhar de forma departamental, ou
seja, cada departamento resolvia os seus problemas
internamente, normalmente cada departamento
tambm escolhia no mercado o software que mais
se adaptava s suas necessidades e o adquiria, sem a
preocupao com o compartilhamento das informaes
com outros departamentos e outros sistemas.
Com a nova necessidade de compartilhamento de
informaes, passou-se a ter grandes dificuldades, pois
os softwares adquiridos pelos diversos departamentos
no conversavam entre si, e por duas razes principais:
ou a tecnologia utilizada era incompatvel entre
si, dificultando a interoperabilidade, ou o prprio
fabricante do software no tinha o menor interesse em
abrir a estrutura dos dados do seu software para outro
fabricante, que inclusive poderia ser seu concorrente em
outros softwares.

24

banco de dados I.indb 24 16/09/11 15:40


Banco de Dados I

Como pode ser percebido, a arquitetura para os sistemas de


informao apresentada na figura 1.1 j no era a mais adequada
para as necessidades atuais das organizaes. Ento, comearam
a ser trabalhadas novas alternativas para a problemtica do
compartilhamento das informaes e para a diminuio da
redundncia dos dados.

A alternativa que obteve mais xito e aceitao foi a de que os


sistemas de informao se tornassem clientes das bases de dados,
e no mais proprietrios, a fim de proporcionar um mtodo
de acesso nico a essas bases de dados, de forma que qualquer
sistema de informao pudesse se conectar a qualquer base de
dados e dela compartilhar as informaes de seu interesse.

Para que os sistemas de informao pudessem se tornar clientes


de bases de dados, algum deveria prover um mtodo nico e
padronizado para o acesso a bases de dados e tambm armazenar
as regras de manipulao dos dados mantidos por ela.

Comeava a nascer um novo tipo de aplicao, o gerente para


as bases de dados, ou mais propriamente falando, o Sistema
Gerenciador de Banco de Dados - SGBD.

Para que o SGBD pudesse ser contemplado, uma nova


arquitetura para a construo de sistemas de informao deveria
ser definida conforme a figura 1.2.

SISTEMAS

Contabilidade Estoque RH

SGBD

BD 1 BD 2 BD 3 BD 4

Figura 1.2 Arquitetura de sistemas de informao com SGBD


Fonte: Elaborao do Autor.

Unidade 1 25

banco de dados I.indb 25 16/09/11 15:40


Universidade do Sul de Santa Catarina

O SGBD atua como um elemento intermedirio entre os


sistemas de informao e a base de dados, padronizando a
forma de acesso s informaes ali mantidas, proporcionando o
compartilhamento das informaes entre os sistemas e atuando
fortemente no controle da redundncia dos dados, uma vez que
vrios sistemas podem acessar uma mesma informao, no
necessitando armazen-la novamente, com duplicao.

Mas afinal, o que SGBD?

O SGBD nada mais do que um sistema intermedirio


que atua entre os sistemas de informao e a base
de dados, provendo aos sistemas as informaes
armazenadas por meio de mecanismos eficientes e
seguros, a fim de proporcionar maior performance no
armazenamento e recuperao das informaes, alm
de garantir integridade e consistncia aos dados.

O SGBD ento assume a responsabilidade pela manuteno


das informaes, retirando essa responsabilidade dos sistemas
de informao. Portanto, se uma data invlida, ou se uma
informao depende de uma outra para poder ser armazenada,
o sistema de informao no precisa mais se preocupar com isso,
pois essas questes ficam a cargo do SGBD.

Assim sendo, os sistemas de informao puderam se preocupar


muito mais e dedicar mais esforos em ergonomia e apresentao
das informaes ao usurio, deixando a tarefa de tratamento das
informaes com os SGBDs.

Agora que est mais claro o surgimento e a consolidao dos


SGBDs no mercado da informtica, veja, na prxima seo, a
importncia e o papel dos profissionais que atuam nesta rea.

26

banco de dados I.indb 26 16/09/11 15:40


Banco de Dados I

Seo 3 O mercado de trabalho e seus profissionais


Dentro de uma anlise em que a informtica tida como
produto fim, de forma resumida, o mercado de trabalho na
rea de informtica pode ser dividido em trs grandes linhas
profissionais:

desenvolvimento de software - programadores;


anlise de sistemas.
Na primeira opo tem-se o especialista em linguagens e tcnicas
de programao de computadores, que aquele profissional que
domina algumas linguagens de programao, tendo como sua
principal base de conhecimento, os algoritmos.

J na segunda, tem-se o profissional com alta capacidade


analtica, que domina metodologias de modelagem e
desenvolvimento de sistemas.

Ento, qual a terceira linha profissional na rea da


informtica?

Nesse caso, que entra o profissional de banco de dados. Ele


no est em uma nica categoria dentro das reas citadas. Talvez
esteja a a grande complexidade nas atividades desse profissional.

Um programador de computador responsvel por transformar


as tarefas executadas pelo ser humano em um conjunto de
comandos que sero executados pelo computador. Porm, quando
essas atividades envolvem armazenamento de dados, passa a ser
necessrio um especialista para projetar e manipular o modelo de
banco de dados criado.

O mesmo tipo de problema pode ocorrer quando um analista de


sistemas precisa modelar um sistema que envolva banco de dados.
Ser necessrio que ele tenha um especialista em banco de dados
para auxili-lo nesse processo de modelagem.

Unidade 1 27

banco de dados I.indb 27 16/09/11 15:40


Universidade do Sul de Santa Catarina

importante que se distinga a tarefa de modelar um sistema de a


tarefa de modelar um banco de dados:

quando o analista est modelando um sistema, ele est


definindo todas as atividades de interao do usurio
para com o sistema que ser implementado;
j a modelagem do banco de dados representa a forma
como os dados que so manipulados pelo sistema sero
armazenados.

Modelar sistema - define as regras de interao do


usurio com o sistema.
Modelar banco de dados - define as regras de
armazenamento dos dados que sero manipulados
pelo sistema.

O profissional de banco de dados interage com o programador


e com o analista de sistemas, formando uma equipe de
desenvolvimento.

A no ser em casos muito especficos, essa interao pode ser


realizada. Se a interao do profissional de banco de dados na
rea de informtica alta, quando se analisa as empresas em que
a informtica o meio de produo, ela se torna maior ainda, pois
na maioria das vezes esse profissional interage com profissionais
das mais diversas reas.

Dentro de um ambiente desses, o profissional de banco de dados


possui as mais diversas tarefas, que so de grande importncia
para o funcionamento da empresa, pois todos os processos da
empresa esto baseados no seu desempenho.

Conhea algumas atividades executadas por esse profissional:

Populao das tabelas dos bancos de dados


atualizao de dados.
Modelagem do banco de dados definio das regras
para armazenamento dos dados que sero manipulados
pelo sistema.

28

banco de dados I.indb 28 16/09/11 15:40


Banco de Dados I

Manuteno do banco de dados garantir que ele no


pare de funcionar.
Backup dos dados realizar a cpia de segurana dos
dados para garantir a fidelidade dos mesmos.
Gerenciar o banco de dados definir senhas e
prioridades de acesso ao sistema, evitando que acessos
indevidos sejam realizados.
Manter o contato com o fabricante da ferramenta
de banco de dados para realizao de atualizaes e
instalaes de novos recursos.

Observe que essas atividades so fundamentais para que a


empresa se mantenha em funcionamento. A maioria das
atividades de produo dependente do sistema de banco de
dados, por isso grande a responsabilidade desse profissional, ou
da equipe que ele gerencia.

Em pequenas organizaes comum encontrar o analista de


sistemas atuando como programador, modelando banco de dados
e gerenciando os projetos de informtica. Agora, quanto maior a
organizao, maior a complexidade do sistema de banco de dados
e, consequentemente, maior deve ser a equipe envolvida. Assim,
pode-se identificar mais alguns papis para a diviso das tarefas
de um especialista em banco de dados:

Administrador de banco de dados (DBA)


Em uma organizao onde muitas pessoas utilizam os mesmos
recursos, existe a necessidade de um administrador para
gerenciar esses recursos. Em ambiente de banco de dados, o
recurso primrio o banco de dados propriamente dito e o
recurso secundrio o SGBD, ambos sobre a superviso do
administrador desse banco (DBA). O DBA responsvel
pela autorizao de acesso ao banco de dados, monitorao e
coordenao de seu uso, e est envolvido com os seus aspectos
fsicos (estruturas de armazenamento, mtodos de acesso etc).

Unidade 1 29

banco de dados I.indb 29 16/09/11 15:40


Universidade do Sul de Santa Catarina

Projetistas de banco de dados


Projetistas de banco de dados so responsveis pela identificao
dos dados e pela escolha de estruturas apropriadas para
representar e gravar tais dados. Essas tarefas so executadas antes
da implementao desse banco. necessria uma comunicao
com os usurios do banco de dados e analistas de sistemas para
entender seus requisitos, de modo que o projeto possa atend-los.
A viso de cada grupo de usurios deve ser entendida, e o projeto
final dever suportar os requisitos de todos os grupos de usurios.

Usurio final
Usurio final a pessoa cujo trabalho requer acessar o banco de
dados para consulta e atualizar os dados; um banco de dados
existe primariamente para seu uso. A maioria dos usurios
finais utiliza programas voltados ao desempenho de suas
funes profissionais, interagindo com tais programas em seu
dia a dia. Nessa classe, pode-se citar caixa bancrio, caixa de
supermercado, agente de turismo, vendedores de varejo etc.
Alguns usurios mais sofisticados, como engenheiros e cientistas,
esto mais familiarizados com as facilidades de um SGBD e so
capazes de utilizar ferramentas para elaborar suas consultas.

Sntese

Nesta unidade, voc pde observar que a rea de banco de dados


essencial para que se consiga uma rea de TI consolidada e
robusta, pois essas ferramentas propiciam maior agilidade e
garantia no armazenamento das informaes, essenciais para
qualquer organizao na sociedade em que vivemos. Essa agilidade
e garantia no armazenamento sero melhor discutidas nas
prximas unidades desta disciplina, onde podero ser constatados
diversos mecanismos presentes nos SGBDs que proporcionem
essas caractersticas com relao ao armazenamento dos dados.

Os SGBDs so fruto de uma evoluo nos sistemas de


armazenamento, inicialmente constitudos apenas num sistema

30

banco de dados I.indb 30 16/09/11 15:40


Banco de Dados I

de arquivos de dados onde os sistemas de informao os


manipulavam diretamente, evoluindo para um modelo onde
h uma padronizao na forma de acesso aos dados, por meio
da figura do gerente dos dados, ou Sistemas Gerenciadores de
Banco de Dados. Isto proporcionou um compartilhamento mais
eficiente das informaes armazenadas, bem como na diminuio
da redundncia dos dados armazenados.

Foi apresentado tambm, nessa unidade, o papel do profissional


de banco de dados e como est organizado o mercado de trabalho
para esses profissionais.

Esse profissional tem tido importante posio no mercado de


trabalho, principalmente pelo grande fluxo de informaes que
trafegam nesse mundo globalizado. praticamente inadmissvel
que nos dias atuais algum utilize papel ou algo similar como
forma de organizar e armazenar informaes para suas atividades
do dia a dia.

E junto a essa quantidade de informaes que o profissional de


tecnologia da informao executar as suas tarefas de projetar,
criar e manipular um conjunto de sistemas de banco de dados,
essenciais ao funcionamento de uma empresa que tenha a
informtica como produto final, ou como meio de produo.

Nesse mercado, esse profissional deve estar atento s diversas


tendncias, avaliando novas ferramentas e novas tecnologias,
mantendo-se sempre atualizado, sem nunca esquecer que sua
ferramenta de trabalho o seu crebro, seus conhecimentos
adquiridos, tendo o computador como a ferramenta que ir
auxili-lo nas tarefas dirias.

Unidade 1 31

banco de dados I.indb 31 16/09/11 15:40


Universidade do Sul de Santa Catarina

Atividades de autoavaliao
Ao final de cada unidade, voc realizar atividades de autoavaliao. O
gabarito est disponvel no final do livro didtico. Esforce-se para resolver
as atividades sem ajuda do gabarito, pois, assim, voc estar promovendo
(estimulando) a sua aprendizagem.

1) Por que a rea de banco de dados considerada crtica numa empresa?

2) Programador, analista de sistemas e especialista em banco de dados


so os profissionais envolvidos com banco de dados. Para as grandes
empresas, o especialista nessa rea possui diferentes papis. Descreva
as responsabilidades dos 5 profissionais envolvidos em todo o processo
de um banco de dados nas grandes empresas.

32

banco de dados I.indb 32 16/09/11 15:40


Banco de Dados I

3) Quais os principais benefcios proporcionados pelo surgimento do


SGBD para as empresas?

Saiba mais

Para conhecer mais detalhes sobre os contedos desta unidade,


h sugestes para a pesquisa dos seguintes ttulos:

DATE, C.J. Introduo a sistemas de bancos de dados. Rio de


Janeiro: Campus, 1991.

KORTH, H.F.; Silberschatz, A. Sistema de banco de dados. 3.


ed. So Paulo: Makron Books, 1999.

33

banco de dados I.indb 33 16/09/11 15:40


banco de dados I.indb 34 16/09/11 15:40
2
unidade 2

Conceitos de bancos de dados

Objetivos de aprendizagem
Compreender o conceito de banco de dados.

Conhecer os diferentes tipos de banco de dados.

Entender a arquitetura que compe um banco de dados.

Sees de estudo
Seo 1 Conceitos de banco de dados

Seo 2 Tipos de sistemas de gerenciamento de


banco de dados

Seo 3 Modelos de banco de dados

banco de dados I.indb 35 16/09/11 15:40


Universidade do Sul de Santa Catarina

Para incio de estudo


O computador uma mquina e como tal deve ser sempre assim
referenciado. Essa mquina possui algumas caractersticas que
a distingue das demais, como a velocidade de processamento
e a capacidade de armazenamento. considerado um
equipamento, que com o passar dos anos se tornou de uso pessoal
e profissional, podendo ser usado no lazer e no dia a dia, nas mais
variadas tarefas e de complexidades mais diversas.

Olhando por um prisma mais direto, o computador possui trs


tarefas bsicas, que so: entrada de dados, processamento de
dados e sada de dados.

A entrada de dados responsvel pela importao das


informaes para o computador e est diretamente relacionada
interao com o usurio, pois na maioria das vezes depende da
informao digitada por ele, na forma mais simples de interao,
o teclado.

J a sada de dados representa os dados informados na entrada,


mas que de alguma forma foram transformados, atendendo s
expectativas do usurio, sendo apresentados por meio de algum
dispositivo de sada, como impressora ou monitor.

A essa transformao dos dados da entrada at dados


da sada chama-se processamento.

At aqui, se fosse apenas isso, seria muito mais simples


compreender o ambiente em volta de um computador, porm,
com o passar dos anos, uma nova propriedade foi adicionada
a essas trs tarefas, e no sendo menos importante: o
armazenamento dos dados.
To importante quanto informar os dados, process-los e
apresent-los organizao, o armazenamento desses dados passou
a ser uma tarefa essencial, principalmente pelo grande nmero de
usurios que interagem com o equipamento ao mesmo tempo.

Com passar dos anos, o nmero de dados processados por


um computador cresceu de forma assustadora, e de forma

36

banco de dados I.indb 36 16/09/11 15:40


Banco de Dados I

inversamente proporcional o computador tem diminudo de


dimenses fsicas e tambm aumentando a sua capacidade de
armazenamento e processamento de dados, tornando-se cada vez
mais pessoal.

Gerenciar e armazenar dados tornou-se uma tarefa complexa,


que envolve muitas ferramentas e tecnologias de armazenamento
e acesso aos dados. Com a grande evoluo da computao em
geral, ou da informtica em geral, os equipamentos tm evoludo
muito, deixando seu custo mais acessvel.

Com isso, o uso dos computadores tem atingido os mais variados


perfis de usurios, dos mais experientes que o usam sem
nenhuma dificuldade, aos mais novatos que o veem como uma
mquina do outro mundo. Dessa forma, o parque tecnolgico
em todo o mundo tem atingido nmeros expressivos.

Fazendo uma matemtica simples, imagine que a principal


finalidade do computador armazenar dados que possam ser
acessados a qualquer momento e em qualquer lugar do mundo;
quanto maior o nmero de computadores, maior o nmero de
dados para serem gerenciados e processados. Como a tendncia
que esse nmero deva aumentar a cada ano, a complexidade dos
dados armazenados dever ser um grande problema da rea de
informtica.

Seria possvel resumir em: mais computadores


significam mais problemas?

Em paralelo ao grande nmero de novos usurios de


computadores, bem como a expanso na facilidade de acesso
aos computadores e s novas tecnologias em hardware, h
tambm o surgimento de novas ferramentas computacionais para
gerenciamento e integridade dos dados. Essa demanda gera uma
nova expectativa ao profissional da informtica quanto ao seu
envolvimento com as tecnologias de banco de dados.
Alm de ser um especialista em banco de dados, o profissional
deve ter capacidade de compreender as diferentes tecnologias
do mercado, de escolher aquela que melhor atenda s suas
necessidades e deve propor e modelar solues aos diversos
problemas que faro parte das suas atividades profissionais.

Unidade 2 37

banco de dados I.indb 37 16/09/11 15:40


Universidade do Sul de Santa Catarina

A esse conjunto que envolve ferramentas


computacionais, gerenciamento de dados,
armazenamento e integridade aos dados, chama-
se sistema de gerenciamento de banco de dados.

E nesse mundo que voc embarca, a partir de agora,


interagindo com um mundo de armazenamento e manipulao
de dados.

Seo 1 Conceitos de banco de dados


Quando nos referimos ao computador como uma mquina, temos
como foco a sua capacidade de gerenciamento e armazenamento
de informaes. Vale salientar que as outras propriedades,
como velocidade de processamento e fcil interao com
usurio, so tambm muito importantes, porm, como o escopo
desta disciplina banco de dados, ser dada maior nfase ao
armazenamento dos dados.

De forma simplificada, pode-se conceituar banco de


dados como sendo um sistema de armazenamento
de dados baseado em computador, cujo objetivo
registrar e manter informaes consideradas
significativas a qualquer organizao ou a um nico
usurio. (DATE, 1990)

importante que voc se atenha aos seguintes aspectos:

Um banco de dados um sistema de armazenamento


de dados baseado nos relacionamentos entre
elementos de dados, buscando a no redundncia
deles. (SALEMI, 1983)

O banco de dados possui uma estrutura fsica que representa


os dados que esto armazenados, com estruturas e regras de
manipulao bem definidas. No caso da computao, o banco
de dados representa o arquivo fsico de dados armazenados em

38

banco de dados I.indb 38 16/09/11 15:40


Banco de Dados I

dispositivos perifricos, nos quais esto os dados de diversos


sistemas para consulta e atualizao pelo usurio.

Sendo assim, a partir dos conceitos anteriormente citados, pode-se


chegar a um conceito mais amplo de banco de dados:

Banco de dados um sistema que possui um


arquivo fsico de dados armazenados em dispositivos
perifricos, nos quais esto armazenados aqueles
relacionados entre si, de diversos sistemas, para
consulta e atualizao pelo usurio.

Definindo dado e informao


Uma vez que voc teve o primeiro contato com o conceito de banco
de dados, importante que se defina um aspecto importante, a
diferena entre dado e informao. A princpio parecem ter o
mesmo significado, mas quando se refere a esse tema no escopo de
banco de dados, existe uma significativa diferena.

O dado o valor cadastrado no banco de dados, que ser


exportado para o usurio por meio das consultas realizadas. Cada
conjunto de informaes exportadas, ou listadas, est diretamente
relacionado forma pela qual foi definida a regra de seleo
dos dados. Nesse contexto, um dado pode ser representado pelo
nome de um cliente, pela rua onde mora, nmero da casa, enfim,
ele representa um elemento de informao.

A informao diz respeito a um conjunto de dados que,


devidamente contextualizados, representa algo para o usurio.
Por exemplo, rua, nmero da casa, bairro, CEP, cidade,
estado (UF) podem ser encarados como dados cadastrais de
um cliente, porm, o conjunto desses dados compe uma
informao, representando o endereo completo do cliente.

Os dados abrangem uma grande e variada forma de representao.


Como qualquer informao armazenada no banco de dados um
dado, eles podem representar qualquer tipo de informao, como
uma data, uma hora, um nome, uma idade, etc.

Unidade 2 39

banco de dados I.indb 39 16/09/11 15:40


Universidade do Sul de Santa Catarina

Assim sendo, os dados sero armazenados num banco sob um


determinado padro pr-estabelecido, visando a delimitar o que
pode ser armazenado como um valor para o dado. Esses padres
so denominados Tipos de Dado, em que cada dado definido
como elemento componente de um SGBD deve estar associado
ao seu tipo de dado correspondente.

Seguindo esse raciocnio, podemos encontrar num banco de


dados um tipo de dado que s armazena nmeros inteiros,
utilizados, por exemplo, para armazenar o nmero de uma nota
fiscal, ou o cdigo do DDD de um nmero de telefone.

J para armazenar uma data de nascimento, o tipo inteiro no


consegue represent-la, pois as regras que regem as datas so
mais complexas, por exemplo, se tentarmos armazenar a data de
11/01/2011 em um tipo data, certamente o SGBD no aceitar
esse valor, uma vez que a data invlida.

As regras de definio dos dados so essenciais para mant-los


dentro de um padro esperado e de fcil compreenso.

No faz muito sentido utilizar um dado do tipo inteiro


para se armazenar o nome de uma pessoa, pois,
dessa forma, o armazenamento dos dados no estar
representando fielmente a realidade.

Sistemas de gerenciamento de banco de dados (SGBD)


Dentro da informtica em geral, principalmente quando se refere
ao desenvolvimento de softwares, o banco de dados recebe uma
nomenclatura bem mais ampla: sistema gerenciador de banco de
dados, ou simplesmente SGBD.

O SGBD o software responsvel pelo gerenciamento,


armazenamento e recuperao dos dados no banco
de dados.

40

banco de dados I.indb 40 16/09/11 15:40


Banco de Dados I

Os sistemas gerenciadores de banco de dados surgiram no


incio da dcada de 70, com a finalidade de promover maior
performance e segurana na tarefa de armazenamento,
recuperao e manuteno dos dados, impactando tambm numa
maior padronizao no acesso a eles por parte das aplicaes.
Os primeiros produtos de SGBDs tinham um custo elevado,
pois eram desenvolvidos sob uma tecnologia que necessitava de
um alto grau de especializao para serem operados. Na medida
em que novos investimentos foram aplicados na rea e novas
pesquisas desenvolvidas, os SGBDs evoluram consideravelmente,
tornando a sua utilizao muito mais simplificada e os seus
recursos mais avanados. Atualmente, encontra-se como padro
no mercado o banco de dados relacional, que opera sob o
enfoque de relacionamento entre os dados armazenados.
A partir da dcada de 80, com o barateamento na produo de
equipamentos e a produo em grande escala de computadores,
esse sistema de banco de dados passou a dominar o mercado,
tornando-se um padro internacional.

Entretanto, as pesquisas no pararam por a. Com a evoluo


tecnolgica dos equipamentos, o mercado passou a investir
na pesquisa de novas metodologias, tcnicas e padres para a
modelagem de bancos de dados, ou projeto deles.

Sendo assim, at hoje so vrias as metodologias ou tcnicas que


surgem com a finalidade de auxiliar os profissionais na rdua
tarefa de projetar banco de dados.

Pode-se dizer, ento, que um sistema gerenciador de


banco de dados uma ferramenta computacional em
constante atualizao e evoluo.

Uma ferramenta de banco de dados exige do seu usurio um


largo conhecimento de projetos sobre isso, que sero amplamente
testados e implementados.

Unidade 2 41

banco de dados I.indb 41 16/09/11 15:40


Universidade do Sul de Santa Catarina

Fundamentos de um sistema gerenciador de banco de dados


Algumas caractersticas importantes dos sistemas de banco de
dados os diferenciam dos sistemas de arquivos tradicionais,
que tambm so formas de armazenamento de dados. Essas
caractersticas so:

a separao entre programas e dados;

o compartilhamento de dados e processamento


multiusurio;

o armazenamento no prprio banco de dados da sua


estrutura ou esquema.

Voc poder ler a seguir uma breve explicao de cada um


desses itens, a fim de facilitar a sua compreenso sobre o que h
de diferente em um sistema de banco de dados que o torna to
especial.

Separao entre programas e dados


Esse tpico refere-se a uma propriedade fundamental para o
bom desempenho de um sistema de banco de dados. Planejar
um banco de dados no tarefa simples, ou fcil. O projeto deve
representar fielmente as tarefas executadas diariamente fora do
computador e que, por algum motivo, foram implementadas nele.

Ou seja, um projeto de banco de dados deve


representar o mundo real, de forma eficiente e ntegra.

Porm, quando se refere computao, principalmente rea de


desenvolvimento de softwares, o projeto de um banco de dados
envolve duas tarefas distintas:
a criao do modelo de banco de dados realizada por
meio de uma ferramenta computacional;

42

banco de dados I.indb 42 16/09/11 15:40


Banco de Dados I

a implementao de um programa de computador


que ser responsvel por interagir com esse banco de
dados. A criao do programa de computador se faz por
meio das linguagens de programao.

A criao do modelo de dados e sua implementao num SGBD


tarefa geralmente designada a um especialista da rea, o qual
deve ter conhecimentos especficos de como desenvolver e
implementar o projeto do banco de dados, de forma a obter maior
performance da ferramenta.

J o desenvolvedor ou analista de sistemas deve implementar o


programa de computador de forma que consiga interagir com
o SGBD de modo eficiente e com toda a performance nas
operaes realizadas no banco de dados. Esse um dos pontos
cruciais de um projeto de um sistema de informao.

Por vezes, porm, tanto o projeto do banco de dados quanto


o programa em si podem ser desenvolvidos pelo mesmo
profissional, desde que tenha as qualificaes adequadas s
funes.

As ferramentas de banco de dados tm como principal


propriedade a abstrao dos dados. Isso significa dizer que o
programador de uma linguagem de programao no precisa
implementar o funcionamento das estruturas que compem
o banco de dados, muito menos saber como elas funcionam e
foram criadas.

Cabe ao programador usar os recursos que a


ferramenta de banco de dados disponibiliza,
independente da linguagem de programao usada.

Veja a figura a seguir, ela ilustra um esquema de desenvolvimento


de software com acesso a banco de dados:

Unidade 2 43

banco de dados I.indb 43 16/09/11 15:40


Universidade do Sul de Santa Catarina








 
  
 

Figura 2.1 Esquema de desenvolvimento de Software com acesso a banco de dados.


Fonte: Elaborao do autor.

O programador responsvel por criar o programa de


computador que far a integrao da interface grfica com os
dados do banco. Ser por meio dessa aplicao que eles sero
cadastrados e manipulados pelo usurio.

As regras de funcionamento, ou de negcio, dessa aplicao


sero criadas pela linguagem de programao utilizada pelo
programador, sem ele saber como o funcionamento interno do
gerenciador de banco de dados.

O banco de dados representa as tabelas que foram criadas para


o armazenamento e relacionamento dos dados. Esse esquema
segue as regras definidas pelo sistema gerenciador de banco de
dados. Esse banco uma estrutura fsica armazenada em algum
dispositivo de armazenamento, como um hard disk (HD).

O sistema gerenciador de banco de dados a ferramenta


computacional utilizada pelo especialista da rea para modelar e
projetar o banco de dados fsico, que dever representar as tarefas
executadas pelo mundo real.

O especialista em banco de dados, que em alguns casos


tambm o programador, responsvel por modelar esse banco,
identificando junto ao cliente final quais so as suas reais
necessidades.

44

banco de dados I.indb 44 16/09/11 15:40


Banco de Dados I

importante salientar que a aplicao desenvolvida possui


regras separadas das implantadas no banco de dados. A aplicao
desenvolvida ou o programa de computador representa as regras
de utilizao do sistema, chamadas de regras de negcio.

Os dados armazenados esto em uma outra camada que


representa a forma pela qual os dados sero manipulados e
armazenados. Uma camada no precisa saber detalhes de como a
outra foi desenvolvida, que linguagem usou ou como os dados so
fisicamente armazenados no computador. Isso abstrao.

Veja a prxima figura. Ela representa essa separao entre


programa e dados, e ainda acrescenta uma camada que representa
a interface grfica de interao entre usurio e programa de
computador.

Figura 2.2 Separao entre programas e dados.


Fonte: Elaborao do autor.

O compartilhamento de dados e o processamento multiusurio


To importante quanto a definio de uma soluo em
camadas, na qual h um grande nvel de abstrao como
visto anteriormente, o compartilhamento de dados uma
caracterstica predominante em solues que utilizam banco
de dados.

Essa caracterstica fundamental para que dados cadastrados em


um sistema possam ser acessados por vrios usurios ao mesmo
tempo, de lugares distintos.

Unidade 2 45

banco de dados I.indb 45 16/09/11 15:40


Universidade do Sul de Santa Catarina

Alm de permitir que os dados sejam acessados por vrios usurios,


evita-se o cadastro repetido da mesma informao em banco de
dados diferentes, o que acarretar uma redundncia de informaes
e impreciso dos dados.

Cabe salientar que aqui se tem mais um exemplo da separao


entre dados e programa, pois ao programador da aplicao
computacional no necessrio que saiba como esse multiacesso
funciona, mas essencial que ele possa utilizar-se desses recursos
do sistema gerenciador de banco de dados.

Na representao a seguir, temos uma soluo em que cada


usurio acessa uma nica base de dados, idnticas, porm sem
integrao. Em cada base de dados esto os produtos vendidos
pela filial, gerando, dessa forma, um controle de estoque essencial
ao funcionamento da empresa.

 

 

 
   
  
   


Figura 2.3 Acesso a dados em bancos independentes.


Fonte: Elaborao do autor.

Alm de ter um nico acesso base de dados idnticas o que


pode gerar dados incorretos e redundncia das informaes , no
h uma distribuio de equipamentos, pois tanto a filial A como a
B tero um computador dedicado ao armazenamento dos dados,
bem como um computador para cada usurio, pois o acesso aos
dados local.

O que significa afirmar que para cada usurio haver


um computador com acesso a uma base de dados local e,
consequentemente, mais uma rplica dos dados armazenados,
o que, com certeza, resultar em uma grande redundncia de

46

banco de dados I.indb 46 16/09/11 15:40


Banco de Dados I

informaes e dados incorretos. Alm disso, h o custo mais alto


para se manter essa soluo que parece ser a mais simples.

Alguns problemas so comuns de acontecerem quando se utiliza


uma soluo no compartilhada. Veja a seguir:

entrada repetida da mesma informao;


inconsistncia dos dados;
excesso de dados;
falta de padro dos dados cadastrados.

Para resolver esse problema primordial que se utilize o aspecto


de compartilhamento de dados que um sistema gerenciador de
banco de dados disponibiliza. Alm de uma base mais confivel,
o custo de manuteno e instalao da soluo ser mais barato,
pois ser um computador dedicado ao armazenamento de dados
e a vrios terminais de acesso, que no necessariamente precisam
ser computadores de alto valor no mercado.

Veja essa soluo no diagrama:





  





 




Figura 2.4 Acesso a banco de dados centralizado.
Fonte: Elaborao do autor.

Unidade 2 47

banco de dados I.indb 47 16/09/11 15:40


Universidade do Sul de Santa Catarina

O armazenamento no prprio banco de dados da sua estrutura ou esquema

De forma sucinta, um banco de dados pode ser visto


como sendo uma estrutura formada pelos dados
armazenados e pelas regras que criam as tabelas do
modelo projetado.

Assim como os dados so armazenados fisicamente no banco


de dados, no dispositivo de armazenamento disponibilizado
para o mesmo, como o hard disk (HD), o esquema que define
quais so as tabelas do banco, o relacionamento entre elas e o
tipo de dado de cada coluna tambm so armazenados junto
ao banco de dados.
Assim sendo, os dados e as regras de manipulao e
armazenamento dos dados no precisam ser tratados de forma
diferente pelo especialista em banco de dados que utiliza a
ferramenta, na verdade, mais um nvel de abstrao, pois para
ele indiferente a forma pela qual a ferramenta computacional
armazena essas regras.

Veja a figura a seguir:

SGBD





Figura 2.5 Base de dados.


Fonte: Elaborao do autor.

Arquitetura lgica de SGBD


Trs caractersticas importantes da abordagem de banco de dados
so: isolamento entre dados e programas, suporte a mltiplas
vises do usurio e uso de um catlogo para gravar a descrio do
banco de dados (esquema).

48

banco de dados I.indb 48 16/09/11 15:40


Banco de Dados I

A figura a seguir ilustra uma arquitetura em nveis:

Usurios Finais

Viso VIso
Externa Interna
Nvel Externo

Nvel Conceitual Esquema Conceitual

Esquema Interno
Nvel Interno

Banco de Dados Armazenado

Figura 2.6 Arquitetura lgica de SGBD em nveis.


Fonte: Elaborao do autor.

O nvel interno tem um esquema interno, que descreve a


estrutura de armazenamento fsico do banco de dados. O
esquema interno usa um modelo de dados fsico e descreve
detalhes de armazenamento de dados e caminhos de acesso para
esse banco.

O nvel conceitual tem um esquema conceitual, que descreve


o banco de dados para a comunidade de usurios. O esquema
conceitual a descrio global do banco de dados que esconde os
detalhes da estrutura fsica de armazenamento e concentra-se em
descrever entidades, tipos de dados, relacionamentos e restries.
Um modelo de dados de alto nvel ou um modelo de dados de
implementao podem ser usados nesse nvel.

O nvel externo ou viso inclui um nmero de esquemas


externos ou vises do usurio. Cada esquema externo envolve
a viso do banco de dados de um grupo de usurios. Cada

Unidade 2 49

banco de dados I.indb 49 16/09/11 15:40


Universidade do Sul de Santa Catarina

viso tipicamente descreve a parte do banco de dados que um


particular grupo de usurios est interessada e esconde o resto
do banco daquele grupo. Um modelo de dados de alto nvel ou
um modelo de dados de implementao podem ser usados neste
nvel.

Independncia de dados
A arquitetura lgica em 3 nveis pode ser usada para esclarecer
o conceito de independncia de dados, que pode ser definida
como a capacidade de alterar o esquema em um nvel sem alterar
o esquema do nvel imediatamente superior. Apresentam-se 2
nveis de independncia de dados:

Independncia de dados lgica - a capacidade de


alterar o esquema conceitual sem alterar o esquema
externo ou programas de aplicao. Pode-se alterar o
esquema conceitual pela adio de um novo tipo de
registro ou item de dado, pela remoo de um tipo de
registro ou item de dado. No ltimo caso, esquemas
externos que se referem aos dados restantes no seriam
afetados.
Independncia de dados fsica - a capacidade de
alterar o esquema interno sem alterar o esquema
conceitual. Alteraes no esquema interno podem
ser necessrias, pois alguns arquivos fsicos so
reorganizados por exemplo, pela criao de estruturas
de acesso adicionais para melhorar a performance de
consulta ou atualizao.

Arquiteturas de acesso de banco de dados


Plataformas centralizadas - na arquitetura centralizada,
existe um computador com grande capacidade de
processamento, o qual o hospedeiro do SGBD e o
emulador para os vrios aplicativos. Essa arquitetura
tem como principal vantagem a de permitir que muitos
usurios manipulem grande volume de dados. Sua
principal desvantagem est no seu alto custo, pois
exige ambiente especial para mainframes e solues
centralizadas.

50

banco de dados I.indb 50 16/09/11 15:40


Banco de Dados I

Minicomputador
ou Mainframe

Terminais Locais

Modem

Terminal
Modem Remoto

Figura 2.7 Arquitetura centralizada.


Fonte: Elaborao do autor.

Sistemas de computador pessoal /PC - os


computadores pessoais trabalham em sistema stand-
alone, ou seja, fazem seus processamentos sozinhos.
No comeo, esse processamento era bastante limitado,
porm, com a evoluo do hardware, tem-se hoje PCs
com grande capacidade de processamento. Eles utilizam
o padro Xbase e, quando se trata de SGBDs, funcionam
como hospedeiros e terminais. Dessa maneira, possuem
um nico aplicativo a ser executado na mquina. A
principal vantagem desta arquitetura a simplicidade.
Banco de dados cliente-servidor - na arquitetura
cliente-servidor, o cliente (front_end) executa as tarefas
do aplicativo, ou seja, fornece a interface do usurio
(tela, e processamento de entrada e sada). O servidor
(back_end) executa as consultas no SGBD e retorna
os resultados ao cliente. Apesar de ser uma arquitetura
bastante popular, so necessrias solues sofisticadas de
software que possibilitem: o tratamento de transaes,
as confirmaes de transaes (commits), desfazer
transaes (rollbacks), linguagens de consultas (stored
procedures) e gatilhos (triggers). A principal vantagem
desta arquitetura a diviso do processamento entre dois
sistemas, o que reduz o trfego de dados na rede.

Unidade 2 51

banco de dados I.indb 51 16/09/11 15:40


Universidade do Sul de Santa Catarina

Consulta Servidor de
Banco de Dados
Resultado da consulta
pc pc

cabo de Rede

pc

Figura 2.8 Arquitetura cliente-servidor.


Fonte: Elaborao do autor.

Banco de dados distribudos (N camadas) - nesta


arquitetura, a informao est distribuda em diversos
servidores. Como exemplo, observe a Figura a seguir.
Cada servidor atua como no sistema cliente-servidor,
porm, as consultas oriundas dos aplicativos so
feitas para qualquer servidor indistintamente. Caso a
informao solicitada seja mantida por outro servidor ou
servidores, o sistema encarrega-se de obter a informao
necessria, de maneira transparente para o aplicativo,
que passa a atuar consultando a rede, independente de
conhecer seus servidores. Exemplos tpicos so as bases
de dados corporativas, em que o volume de informao
muito grande e, por isso, deve ser distribudo em
diversos servidores. Porm, no dependente de aspectos
lgicos de carga de acesso aos dados, ou base de dados
fracamente acopladas, em que uma informao solicitada
vai sendo coletada numa propagao da consulta, em
uma cadeia de servidores. A caracterstica bsica a
existncia de diversos programas aplicativos consultando
a rede para acessar os dados necessrios, porm, sem
o conhecimento explcito de quais servidores dispem
desses dados.

52

banco de dados I.indb 52 16/09/11 15:40


Banco de Dados I

Figura 2.9 Arquitetura distribuda (N camadas).


Fonte: Elaborao do autor.

Nesta primeira seo, voc teve um contato inicial com os conceitos


do sistema gerenciador de banco de dados, ou simplesmente
SGBD. Voc deve ter percebido que em alguns momentos nos
referimos aos dados armazenados como sendo tabelas.

Entretanto, essa uma notao normalmente utilizada quando


se interage com banco de dados, mas que no reflete a realidade
de mercado atual. Quando nos referimos a um SGBD, ele pode
ter duas formas bsicas de representao dos dados, as tabelas,
base de um SGBD relacional, e as classes, que so a base de um
SGBD orientado a objetos.

Unidade 2 53

banco de dados I.indb 53 16/09/11 15:40


Universidade do Sul de Santa Catarina

Seo 2 Tipos de sistemas de gerenciamento de


banco de dados
Dentro das caractersticas de cada ferramenta computacional
de banco de dados, ou SGBD, os bancos podem ser divididos
em duas formas de representao dos dados: banco de dados
relacional e banco de dados orientado a objetos.

Alguns autores poderiam ampliar essa definio, porm ela est


voltada para as ferramentas de gerenciamento de banco de dados
existentes no mercado atual, ou seja, para o escopo de ferramenta
computacional e a forma pela qual os dados so armazenados e
gerenciados pelo sistema.

a) Banco de dados relacional


Em um banco de dados relacional, os dados so armazenados em
estruturas fsicas que possuem relacionamentos entre si. Essas
estruturas recebem o nome de tabelas relacionais.

Uma tabela relacional uma simples estrutura


de linhas e colunas. Cada linha contm um mesmo
conjunto de colunas ou campos, porm, as linhas
seguem um determinado tipo de ordem.

Cada linha da tabela, formada por um conjunto de colunas,


representa um registro (ou tupla). Os registros no precisam
necessariamente conter dados em todas as colunas, ocorrendo
a ausncia de informao, caracterizando o que denominamos
valor nulo, a ser melhor apresentado na seo 2 da Unidade 5.
As colunas de uma tabela tambm so chamadas de campos.
Os campos possuem caractersticas que definem o dado que ser
Cada coluna identificada
por um nome e um tipo de armazenado na tabela. Os sistemas de banco de dados possuem
dado. regras para consistir os dados que sero armazenados.
Em um banco de dados relacional podem existir uma ou centenas
de tabelas. O limitador imposto exclusivamente pela ferramenta
computacional, ou o SGBD utilizado.

54

banco de dados I.indb 54 16/09/11 15:40


Banco de Dados I

Comparando uma tabela relacional com um arquivo tradicional,


do sistema de arquivos de um computador, identificam-se as
seguintes diferenas:

TABELA RELACIONAL ARQUIVOS

As linhas de uma tabela no possuem Os registros podem ser armazenados de


nenhum tipo de ordenao. forma ordenada, por meio da aplicao de
algortimos de ordenao.
A busca a um desejado dado na tabela no
pode ser feita por indexao.

No possvel acessar uma linha da tabela


com base na posio da mesma dentro da
estrutura.

Um campo da tabela monovalorado, ou seja, Cada registro do arquivo pode ser


formado por um nico valor. representado por vrios valores de tipos
diferentes.

O acesso aos dados de uma tabela pode O acesso ao arquivo pode ser randmico,
obedecer aos mais variados critrios, sem que seqencial ou indexado.
novas estruturas precisem ser criadas.

As tabelas so formadas por linhas e colunas. Os arquivos so formados por registros.

Quadro 2.1 - Diferena entre tabela relacional e arquivos.


Fonte: Elaborao do autor.

Para ilustrar melhor uma tabela relacional, veja a representao


abaixo:

Colunas /Campos

Linhas / Registros

Cada coluna de uma tabela obedece s regras definidas na


criao da tabela, recebendo um tipo de dado, que representa o
conjunto de valores que podem ser armazenados.

Unidade 2 55

banco de dados I.indb 55 16/09/11 15:40


Universidade do Sul de Santa Catarina

Uma coluna do tipo numrico s poder armazenar


dados do tipo numrico. Ao se tentar inserir dados
que no sejam numricos, o SGBD recusar o cadastro,
da forma pela qual a ferramenta executa essa tarefa.
Cada ferramenta pode executar essa tarefa de forma
diferente, porm, todas elas evitaram o cadastro
indevido dos dados.

Basicamente, cada coluna representa o tipo de cada dado,


ou seja, as regras de entrada dos dados, de modo a evitar a
incompatibilidade deles. J as linhas representam todos os dados
cadastrados, ou seja, um conjunto de colunas ou campos.
Imagine o cadastro de alunos de uma escola. Os dados ou
colunas que representam um aluno poderiam ser nomeados como:
Matricula, Nome, Idade e Sexo entre outros.

As linhas da tabela representam um registro nico, ou seja, os


dados de um nico aluno, com os valores cadastrados:

Lembre-se de que as
linhas representam o
CodigoAluno Nome Idade Sexo
nmero de registros
1 Fulano de Tal 35 M
cadastrados na tabela e
as colunas representam
campos que compem a
estrutura. Alguns campos da tabela, alm do tipo de dados e do nome de
identificao, possuem uma propriedade adicional. Esses campos
recebem o nome de chave.

Chaves
O conceito bsico para identificar linhas e estabelecer relaes
entre linhas de tabelas de um banco de dados relacional o de
chave.Em um banco de dados relacional h ao menos dois tipos
de chaves a considerar: a chave primria e a estrangeira.

As chaves so restries de integridades impostas ao


banco de dados.

56

banco de dados I.indb 56 16/09/11 15:40


Banco de Dados I

Chave primria
A chave primria a chave que identifica cada registro, dando-lhe
unicidade. Essa chave primria nunca se repetir dentro da
estrutura da tabela. Ela pode ser formada por um nico campo
ou coluna, ou por vrios campos.

A chave primria uma coluna ou conjunto de


colunas cujos valores distinguem uma linha das demais
dentro de uma mesma tabela.

Assim, duas entidades (de mesmo tipo) no podem ter o mesmo


valor para o atributo chave. Essa no uma propriedade de uma
extenso particular, mas uma restrio para todas extenses do
tipo de entidade. Por exemplo, o atributo CodigoAluno do tipo
de entidade Aluno possui um valor diferente para cada entidade
aluno (dois alunos no podem ter o mesmo cdigo).

Quando uma chave formada por vrios campos, diz-se que ela
uma chave primria composta.
Uma tabela no pode
ter mais de uma chave
Na tabela Alunos, apresentada anteriormente, o campo
primria. Porm, em se
CodigoAluno uma coluna sujeita a ser uma chave
tratando de uma chave
primria, uma vez que no podero ser cadastrados
primria composta, ela
vrios alunos com o mesmo cdigo. Entretanto, os
ter mais de uma coluna
campos Idade, Nome e Sexo podem ser repetidos
(atributo).
durante o cadastro de alunos, pois podemos ter alunos
com o mesmo nome, idade e sexo, dessa forma, no
podem ser de forma alguma chave primria.

Voc ver a forma de criar e definir essas chaves nas prximas


unidades. Por isso, no se preocupe, por enquanto, com a forma
de como se fazer isso em um sistema gerenciador de banco de
dados, mas sim com a finalidade de cada uma dessas estruturas
dentro de um banco de dados relacional.

Unidade 2 57

banco de dados I.indb 57 16/09/11 15:40


Universidade do Sul de Santa Catarina

Chave estrangeira

A chave estrangeira corresponde aos campos, ou campo,


de uma tabela, cujos valores cadastrados aparecem
necessariamente na chave primria de outra tabela.

A chave estrangeira o mecanismo que permite a implementao


de relacionamentos em um banco de dados relacional.
Uma chave estrangeira impe algumas restries ao banco de
dados modelado, so elas:

Quando h a incluso de uma linha na tabela que contm


a chave estrangeira, necessrio que o valor inserido
exista na tabela principal, caso contrrio, a incluso no
poder ser realizada.

Observe a figura a seguir. Os valores inseridos na tabela


pai ou principal esto todos cadastrados na tabela
filho ou secundria. Caso tentssemos inserir uma
cidade no cadastrada na tabela aluno, o SGBD emitiria
uma mensagem de erro.

Figura 2.10 Exemplo de incluso de uma linha na tabela.


Fonte: Elaborao do autor.

Quando da alterao de valores da chave estrangeira,


necessrio que o novo valor cadastrado exista na
chave primria da tabela secundria, caso contrrio a
alterao no ser realizada.

58

banco de dados I.indb 58 16/09/11 15:40


Banco de Dados I

Observe na figura a seguir, que a cidade do aluno 3 foi


alterada. Essa alterao s foi possvel porque a cidade
cadastrada existia na tabela secundria.

Figura 2.11 Exemplo de alterao de valores da chave estrangeira.


Fonte: Elaborao do autor.

Quando da excluso de um dado da tabela principal, cujo


valor exista em alguma tabela relacionada, a excluso
deve ser cancelada ou o registro na tabela relacionada
tambm dever ser excludo.

No momento da criao da chave estrangeira, temos


a opo de criar, permitindo a excluso dos dados
envolvidos ou no. No permitindo a excluso, o SGBD
emitir uma mensagem de erro, acusando que existem
dados relacionados. Permitindo a excluso, todos os
dados relacionados sero excludos.

Figura 2.12 Exemplo de excluso de um dado da tabela.


Fonte: Elaborao do autor.

Unidade 2 59

banco de dados I.indb 59 16/09/11 15:40


Universidade do Sul de Santa Catarina

Quando da alterao de um campo de chave primria


que chave estrangeira para outra tabela, a alterao
deve se refletir a todas as tabelas relacionais, contendo
o novo valor do campo.

Exemplo: observe que foi alterado o cdigo da cidade


de Braslia para 30, essa alterao se estendeu a todos
os registros relacionados.

Figura 2.13 Exemplo de alterao de um campo de chave.


Fonte: Elaborao do autor.

Continuando no estudo da estrutura de uma banco de dados


relacional, a definio de uma chave estrangeira essencial ao
sistema de tabelas relacionais.

A chave estrangeira fundamental na criao de um


relacionamento entre tabelas.

60

banco de dados I.indb 60 16/09/11 15:40


Banco de Dados I

Imagine um sistema computacional para o


cadastramento de cursos e matrculas de alunos. As
tabelas de Alunos e Cursos representam diretamente
os dados cadastrados. A entrada de dados acontece
diretamente nas tabelas.
J na tabela de Matrculas, as linhas ou registros
devem representar o aluno e o curso no qual ele se
matriculou. Diferente das tabelas anteriores, a tabela
de Matrcula tem dois relacionamentos diretos: um
com o aluno que est cadastrado na tabela de Alunos
e outro com o curso que est cadastrado na tabela de
Cursos.
Sendo assim, diz-se que a tabela de matrculas est
relacionada com a de alunos e com a tabela de cursos.
Isso possvel porque a tabela de Matrculas possui
uma chave estrangeira para tabela de Alunos, que
se relaciona com o campo Matricula dessa tabela, e
outra chave estrangeira para tabela de cursos, que se
relaciona com o campo Codigo dessa tabela.

Veja a seguir uma representao da chave estrangeira:

Figura 2.14 Representao de chaves estrangeiras.


Fonte: Elaborao do autor.

Sempre que se for cadastrar uma matrcula de aluno, no


necessrio recadastrar os dados do aluno e nem mesmo do curso.
A tabela matrcula cadastrar como aluno o CodigoAluno

Unidade 2 61

banco de dados I.indb 61 16/09/11 15:40


Universidade do Sul de Santa Catarina

do estudante desejado na tabela de alunos e, em curso, o


CodigoCurso, originrio da tabela de cursos.

Isso garante uma propriedade importante de um SGBD: a


integridade dos dados. Como os campos esto relacionados, no
ser possvel cadastrar numa matrcula um aluno inexistente ou
um curso inexistente.

b) Banco de dados orientado a objetos


Hoje, o banco de dados orientado a objetos um fator emergente
que integra o banco de dados e a tecnologia de orientao a
objetos.

Os bancos de dados orientados a objetos iniciaram-se,


primeiramente, em projetos de pesquisa nas universidades e
centros de pesquisa. Em meados dos anos 80, eles comearam
a se tornar produtos comercialmente viveis e se mantm em
constante evoluo at os dias atuais.

O desenvolvimento dos sistemas de gerenciamento


de banco de dados orientado a objetos (SGBDOO)
teve origem na combinao de ideias dos modelos
de dados tradicionais, SGBD, e de linguagens de
programao orientada a objetos, LPOO.

Os modelos de dados orientados a objetos tm um papel


adicional nos SGBDs, pois so mais adequados para o tratamento
de objetos complexos, como: textos, grficos e imagens.

Modelos de dados orientados a objetos


Resumidamente, pode-se dizer que orientao a objetos
corresponde organizao de sistemas como uma coleo de
objetos que integram estruturas de dados e comportamentos.

Dessa forma, um banco de dados orientado a objetos no possui


a sua arquitetura baseada em tabelas, como no sistema relacional,
mas sim em objetos. Afinal, o que so esses objetos?

62

banco de dados I.indb 62 16/09/11 15:40


Banco de Dados I

Objeto

Os objetos so abstraes de dados do mundo real,


com um estado descrito por atributos que podem
apenas ser acessados ou modificados por meio de
operaes definidas pelo criador do objeto. Um objeto
individual chamado de instncia ou ocorrncia de
objeto.

A parte estrutural de um objeto similar noo de tabelas no


modelo relacionamento. Ou seja, fazendo uma correlao com o
banco de dados relacional, a sua estrutura formada por tabelas,
que so a juno de linhas e colunas. As informaes de cada
tabela so definidas pelas estruturas de cada campo ou coluna.
Em um objeto no h a figura de uma tabela, mas sim um
conjunto de atributos ou propriedades que definem as suas
caractersticas e a forma pela qual ele pode ser acessado. A forma
de acesso acontece por meio dos mtodos que foram atribudos a
ele, caso contrrio, seus valores no podem ser modificados.

Para quem cria as regras dos objetos, importantssimo que


sejam avaliadas todas as possibilidades de uso desse objeto. J
para quem o usa, h um alto grau de abstrao, pois ele no
precisa saber como essas regras foram implementadas, mas
essencial que saiba como utiliz-las.

Importante: vale destacar que, em alguns casos, a


mesma pessoa responsvel pela definio do objeto
pode ser o seu usurio final.

De forma sucinta, pode-se imaginar que o criador do objeto


define as suas propriedades e as regras de uso. J o usurio do
objeto o responsvel por aplic-lo nas resolues dos seus
problemas.
Em uma soluo orientada a objetos, podem ser utilizados vrios
deles, como se fossem as tabelas de um modelo relacional. A esse

Unidade 2 63

banco de dados I.indb 63 16/09/11 15:40


Universidade do Sul de Santa Catarina

conjunto de objetos chamamos de classe. Cada classe segue as


regras implementadas nos objetos que a compem.

O objeto pode ser visto como a descrio ou


especificao de objetos. Esse objeto possui duas
partes: a interface, que visvel para o usurio, e a
implementao, visvel s para o usurio construtor
do objeto.

Representao do objeto
Em um modelo relacional, cada tabela representa unicamente
a estrutura dos dados que sero armazenados ali e as regras de
integridade, como chaves primrias e estrangeiras.

Em um modelo orientado a objetos, essa representao


alterada significativamente, pois alm dos dados armazenados,
tambm so armazenadas as regras de uso do objeto, com as
operaes e validaes que sero permitidas.

Veja a figura a seguir, que representa um objeto Aluno:

Os mtodos representam
a forma de acesso ao Figura 2.15 Representao do objeto aluno.
objeto. pelos mtodos Fonte: Elaborao do autor.
que se executa uma
determinada tarefa do
objeto ou se alteram as
Observe que no h mais a representao em forma de tabelas,
suas propriedades. Os com linhas e colunas. O que temos um nico objeto Aluno que
mtodos podem ser do tipo possui como propriedades o codigoaluno, o nome, a idade e o sexo.
construtor, recuperador
ou modificador. O objeto Aluno deve conter as regras de uso desse objeto.
As propriedades dele s podem ser alteradas pelos mtodos
implementados pelo seu criador. Assim, o objeto Aluno passa a
ter uma estrutura mais complexa, como a seguir:

64

banco de dados I.indb 64 16/09/11 15:40


Banco de Dados I

Figura 2.16 Objeto aluno e seus mtodos.


Fonte: Elaborao do autor.

Para cada atributo de Alunos, h um mtodo para alterar o seu


valor e um mtodo para visualizar o seu valor atual. Essas so
as nicas formas de se alterar e visualizar os dados de um aluno
cadastrado.

Alm dos mtodos modificadores e recuperadores, h um


outro para cadastrar todos os dados do aluno (LerDados)
e um outro para listar os dados de um determinado aluno
(VisualizarDados).

Muitos outros mtodos podero ser agregados a esse objeto, com


as mais variadas finalidades. O usurio que for interagir com esse
objeto no precisa saber como essas regras foram implementadas
ou criadas, porm, precisa saber us-las de forma a alcanar os
resultados esperados.

Para o cadastramento de vrios alunos, no h uma estrutura


como tabela, mas sim um conjunto de instncias (criaes) de
objetos Alunos, conforme pode ser visto na figura a seguir:

Unidade 2 65

banco de dados I.indb 65 16/09/11 15:40


Universidade do Sul de Santa Catarina

Figura 2.17 Instncias de aluno.


Fonte: Elaborao do autor.

Para efeito didtico, para o nosso estudo ser adotado o modelo


relacional, por se tratar ainda do modelo mais usado no mercado
de trabalho. Entretanto, os conhecimentos adquiridos podero
ser aplicados a quaisquer tipos de banco de dados, independente
de ferramenta, tipo ou fabricante.

Seo 3 Modelos de banco de dados

Um modelo de banco de dados uma descrio dos


tipos de informaes que esto armazenadas em um
banco de dados.

No caso da tabela de alunos, apresentada na Seo anterior,


o modelo de dados poderia informar que o banco de dados
armazena informaes de alunos e que, para cada um, so
armazenados seu codigoaluno, nome, idade e sexo.
Em um modelo de dados no so informados os valores dos
campos cadastrados para cada tabela, mas sim a estrutura que
compe a tabela de maneira formal e padronizada.

A criao de um modelo de dados deve seguir algumas regras


para que qualquer pessoa possa compreender a sua finalidade.
Para tanto, necessria a utilizao de uma metodologia de

66

banco de dados I.indb 66 16/09/11 15:40


Banco de Dados I

modelagem de dados. Existem, basicamente, duas formas de se


representar um modelo de banco de dados: textuais e grficas.

O modelo criado para um banco de dados


denominado esquema de banco de dados.

Para que voc possa compreender melhor as definies


apresentadas, veja a figura a seguir:







Figura 2.18 Esquema de banco de dados.


Fonte: Elaborao do autor.

Em um modelo de banco de dados, normalmente so


considerados dois nveis de representao: o modelo conceitual e
o modelo lgico.

Modelo conceitual
O modelo conceitual
pode ser facilmente
Um modelo de dados conceitual uma descrio encontrado nas referncias
do banco de dados que ser projetado de forma bibliogrficas como
independente da ferramenta computacional de SGBD. modelo de entidade
relacionamento, ou
simplesmente MER.
Esse modelo representa os dados de cada tabela sem se preocupar
com a forma pela qual esses sero registrados no SGBD
utilizado. A estrutura de cada tabela passa a ser referenciada
como entidade, que compe o esquema de banco de dados,
porm, de forma independente do SGBD a ser utilizado.

Para essa representao adotada uma tcnica


chamada de entidade-relacionamento, cuja
principal finalidade descrever as entidades, seus
atributos e relacionamentos.

Unidade 2 67

banco de dados I.indb 67 16/09/11 15:40


Universidade do Sul de Santa Catarina

A partir deste momento usaremos a mesma representao para


o modelo conceitual. Acompanhe: na seo 2, foi feita uma
representao da tabela Alunos da seguinte forma:

CodigoAluno Nome Idade Sexo

1 Fulano de Tal 35 M

Vamos, ento, represent-la a partir de um modelo de entidade


relacionamento, MER, por se tratar de um modelo mundial.
Este modelo constitui uma forma de representao grfica para
os conceitos atribudos ao Modelo Entidade Relacionamento.
Podem-se observar diversas notaes adotadas por estudiosos na
rea. A seguinte notao ser adotada:

Tipo de entidade

Tipo de entidade fraca

Tipo de relacionamento

Tipo de relacionamento de identificao

Atributo

Atributo chave

Atributo multivalorado

Atributo derivado

Atributo composto

E1 R E2 Participao total de E2 em R

E1 R E2 Cardinalidade 1 : N para E1 : E2 em R

(min, max)

R E Restrio (min, max) de E em R

68

banco de dados I.indb 68 16/09/11 15:40


Banco de Dados I

Assim, a tabela Alunos ser representada como:

CdigoAluno

Figura 2.19 Representao do MER.


Fonte: Elaborao do autor.

Nesse modelo esto descritos os campos da entidade Alunos, com


uma informao adicional de que o campo CodigoAluno trata-se
de uma chave primria (nica), por isso a representao .

Como o modelo pode e normalmente representa vrias tabelas do


esquema de banco de dados, vamos incluir mais algumas tabelas
a esse modelo para que voc tenha uma viso mais ampla desse
tipo de representao:

Figura 2.20 MER de duas entidades.


Fonte: Elaborao do autor.

De acordo com o modelo anterior, tem-se o relacionamento entre


as entidades Alunos e Cursos. Os atributos da entidade Alunos
continuam os mesmos, sendo que cada aluno identificado
unicamente pelo seu CodigoAluno. Na entidade Cursos,
que possui os atributos CodigoCurso, Descricao e Vagas, a
identificao de unicidade realizada pelo atributo CodigoCurso.

Note que foradamente no foram acentuados os nomes de


atributos. Isso uma regra que deve ser mantida, uma vez que na

Unidade 2 69

banco de dados I.indb 69 16/09/11 15:40


Universidade do Sul de Santa Catarina

criao formal deste modelo as ferramentas computacionais no


aceitam acentuao.

Voltando ao modelo: surgiu uma nova entidade, representada por


um losango que representa uma entidade associativa e indica que
a relao de Alunos para Curso de 1 e de Cursos para Alunos
de N, ou seja:

Cada aluno pode se matricular em apenas um curso.


Cada curso pode receber N alunos matriculados.

Modelo lgico

O modelo lgico uma representao do esquema


de banco de dados que leva em considerao a
ferramenta computacional que ser utilizada para o
projeto do banco de dados.

Dessa forma, se o SGBD for relacional, ele ter um tipo de


representao. Caso seja orientado a objetos, ele ter outra
representao. Em outras palavras, o modelo torna-se dependente
direto do SGBD utilizado.
Como esta disciplina se baseia no modelo relacional, adotaremos
o modelo lgico para SGBD relacional, que se estrutura a partir
de tabelas de banco de dados. Essas tabelas compem o esquema
de banco de dados e, para cada uma h os nomes das colunas.

O modelo lgico tem como principal finalidade


descrever as tabelas que compem o banco de
dados e as suas respectivas colunas, resolvendo o
relacionamento entre elas, ou seja, mostrando os
campos que passam pelo relacionamento.

Veja o mesmo modelo conceitual apresentado anteriormente,


agora em uma representao de modelo lgico:

70

banco de dados I.indb 70 16/09/11 15:40


Banco de Dados I

Perceba que o nvel


de detalhamento das
informaes deste nvel
bem maior. So indicadas
as colunas que so chaves
primrias (PK), as que
pertencem como chaves
estrangeiras (FK), as que
so chave estrangeira
Figura 2.21 MER nvel lgico. e tambm pertencem
Fonte: Elaborao do autor. chave primria (PFK), tipos
de dados, dentre outras
Cabe observar que um modelo no exclui o outro, ou seja, em informaes.
um projeto de banco de dados pode-se adotar ambos os modelos,
dependendo do grau de representao que o especialista deseja
implantar. Para cada um dos modelos utilizados h um conjunto
de regras para auxiliar na definio dos relacionamentos entre as
tabelas, que recebem o nome de cardinalidade.

Sntese

Voc teve a oportunidade, nesta unidade, de se familiarizar


com alguns conceitos importantes banco de dados. De forma
simplificada, quando se fala em banco de dados, fala-se em
gerenciamento de informaes ou dados.

Um banco de dados um sistema complexo, que envolve


recursos humanos e materiais, que vo alm do computador.
Na computao, o gerenciamento de dados representado pelo
SGBD, que pode utilizar duas formas de armazenamento de
dados: o Relacional e o Orientado a Objetos.

No modelo relacional os dados so armazenados em Tabelas,


representadas por meio de linhas e colunas. Cada coluna possui
um tipo de dado que define as regras de entrada dos valores que
sero armazenados. J as linhas representam os registros (ou
conjunto de colunas) armazenados na tabela.

As tabelas possuem regras para garantir a integridade dos dados.


As principais regras so: definio do campo que no pode

Unidade 2 71

banco de dados I.indb 71 16/09/11 15:40


Universidade do Sul de Santa Catarina

repetir (chave primria) e a definio dos campos que dependem


de outra tabela (chave estrangeira).

J no modelo orientado a objetos, os dados so armazenados em


objetos, que so definidos por meio de classes. Essas representam
a estrutura do objeto e as regras de manipulao dos objetos.

As caractersticas de cada objeto so definidas por meio de


atributos da classe, que define as regras de entrada dos valores no
objeto.

Atividades de autoavaliao

Ao final de cada unidade, voc realizar atividades de autoavaliao. O


gabarito est disponvel no final do livro didtico. Esforce-se para resolver
as atividades sem ajuda do gabarito, pois, assim, voc estar promovendo
(estimulando) a sua aprendizagem.
1) Se lhe fosse apresentado um conjunto de ferramentas computacionais
para o gerenciamento de dados, quais requisitos voc utilizaria para
avaliar a melhor ferramenta?

72

banco de dados I.indb 72 16/09/11 15:40


Banco de Dados I

2) A utilizao de uma ferramenta computacional do tipo SGBD significa


garantia de que o banco de dados modelado atender a todas as
necessidades do usurio?

Saiba mais

Para aprofundar as questes abordadas nesta unidade, voc


poder pesquisar em:

CHU, S. Y. Banco de dados: organizao, sistemas e


administrao. So Paulo: Atlas, 1983.

CHEN, P. Modelagem de dados: a abordagem entidade-


relacionamento para projeto lgico. So Paulo: Makron Books,
1990.

DATE, C. J. Bancos de dados: fundamentos. Rio de Janeiro:


Campus, 1985.

. Introduo a sistemas de banco de dados. 8. ed.


Rio de Janeiro: Campus, 1990.

Unidade 2 73

banco de dados I.indb 73 16/09/11 15:40


banco de dados I.indb 74 16/09/11 15:40
3
unidade 3

Modelagem de dados e projeto


de banco de dados

Objetivos de aprendizagem
n Compreender os processos para se projetar um banco
de dados.
n Entender o conceito de modelagem de dados.

n Identificar os tipos de cardinalidades nas relaes entre


os elementos do modelo de dados.

Sees de estudo
Seo 1 Projetando um banco de dados

Seo 2 Entendendo e definindo as cardinalidades

banco de dados I.indb 75 16/09/11 15:40


Universidade do Sul de Santa Catarina

Para incio de estudo


Como voc observou na unidade anterior, um banco de
dados formado por muitas tabelas, cuja principal finalidade
proporcionar um acesso rpido aos dados e garantir a sua
integridade.

O ato de projetar uma soluo de banco de dados uma tarefa


rdua, pois deve representar todas as informaes manipuladas
por uma determinada organizao no seu dia a dia. Junto a essas
informaes h um conjunto de regras que so realizadas por
cada usurio no manuseio com os dados. Essas regras, na maioria
das vezes, so de conhecimento e domnio de cada programador
a respeito das tarefas executadas.

Transcrever essas tarefas, informaes, dados e regras de


utilizao consiste em um processo demorado, que deve ser
realizado de forma consciente, e que exige um forte padro de
anlise e documentao das metodologias utilizadas.

Dessa forma, nesta unidade voc estudar algumas regras que


devem ser adotadas ao se modelar um projeto de banco de dados e
quais as formas de se representar o relacionamento entre os dados.

Seo 1 Projetando um banco de dados


Projetar um banco de dados significa estruturar a soluo que
ser implementada mais tarde em um SGBD. Ou seja, define-se
o que ser feito e como ser feito antes de se comear a trabalhar
realmente.

O SGBD uma ferramenta computacional que


apenas formalizar as regras definidas no projeto
da soluo de banco de dados. Regras definidas de
forma inconsistente sero criadas pelo SGBD de forma
inadequada. E a que est o perigo.

76

banco de dados I.indb 76 16/09/11 15:40


Banco de Dados I

A ao de projetar o esquema de banco de dados objetiva


especificar as tabelas que sero criadas, que campos essa tabela
ter, quais os tipos de cada campo. Essa tarefa deve ser analisada
de forma a se evitar, ao mximo, constantes alteraes, pois, no
modelo de banco de dados, elas significam trabalho redobrado e
alto custo de produo.

Sendo assim, algumas regras devem ser seguidas para a definio


do modelo de banco de dados:

Determinar qual a finalidade do banco que est sendo


modelado: isso importante para definio de quais
dados sero armazenados.

Dividir o problema em vrias tabelas: dividir em


quantas tabelas forem necessrias, de forma que
representem um conjunto de dados semelhantes ao
mundo real, gerando regras especficas para cada uma
delas e definindo um formato para cada campo.

Determinar os relacionamentos: gerar as chaves


primrias e estrangeiras de cada tabela, de forma que a
integridade dos dados seja mantida.

Refinar o modelo criado: validar e comparar os


resultados obtidos com os valores do mundo real.

Assim como voc teve acesso a um conjunto de regras para se


alcanar o objetivo desejado, veja os problemas mais comuns em
um projeto de banco de dados.

Nmero excessivo de campos nas tabelas: certifique-se


de que os campos definidos, para uma tabela, dizem
realmente respeito ao assunto.

Campos que normalmente no so cadastrados: isso


um grande indcio de que essas informaes esto no
lugar errado e que devem ser melhor estruturadas.

Vrias tabelas com os mesmos campos: isso gera


redundncia de informao.

Unidade 3 77

banco de dados I.indb 77 16/09/11 15:40


Universidade do Sul de Santa Catarina

Tabelas sem chaves primrias e estrangeiras: conforme


abordado na unidade 2, as chaves primrias e estrangeiras
so elementos muito importantes no banco de dados.
Durante o projeto do banco de dados deve-se analisar
individualmente cada dado, identificando claramente
a funo de cada um deles, elegendo-os membros
participantes de chaves primrias e/ou estrangeiras.

Durante a etapa de projeto de um banco de dados


imprescindvel que voc tenha seu foco nos dados e na sua
funo dentro das atividades que esto sendo informatizadas,
sem se preocupar ou se deixar influenciar por aspectos relativos
ao software que vai acessar esses dados. Com o advento dos
SGBDs, conseguiu-se a independncia entre programas e dados,
Um determinado dado pode ser
acessado por diversas aplicaes. dessa forma, o endereo de um cliente, por exemplo, no pertence
mais exclusivamente a um determinado setor ou software da
empresa, mas poder ser acessado pelo software de mala direta,
pelo software de cobrana, de credirio, e tantos quantos
necessitarem da informao.

muito importante que voc se atenha ao escopo de um


profissional de banco de dados, principalmente aquele que
vai modelar o projeto. Quando esse profissional executar as
suas tarefas, partir de um modelo real de processos, que so
executados no dia a dia por vrias pessoas e que, por algum
motivo, deseja-se automatizar essas tarefas por meio do
computador.

As informaes que fazem parte do escopo


do problema a ser resolvido precisam ser bem
compreendidas por quem vai projetar o banco
de dados, pois a soluo deve refletir o mesmo
funcionamento atual, de forma mais rpida, precisa e
automtica.

Basicamente, a soluo esperada pelo cliente tem que ser


transformada em um conjunto de tabelas relacionais que
representem fielmente o processo atual e que, de preferncia,
agilizem as tarefas executadas diariamente e garantam a
integridade dos dados.

78

banco de dados I.indb 78 16/09/11 15:40


Banco de Dados I

Conceitos e modelagem de dados


Se voc pretende desenvolver um projeto de banco de dados
dever possuir os conceitos bsicos sobre modelagem de
dados. No importa se sua aplicao simples ou no: a correta
modelagem dos dados tornar a sua aplicao mais robusta e de
mais fcil manuteno.

Para efeito didtico, apresentamos os conceitos bsicos sobre


modelagem de dados, pois esse assunto muito abrangente e
extenso. Aqui, voc o conhece de forma mais objetiva, tendo em
vista a aplicabilidade, imediata, dos conceitos aprendidos.

As finalidades de se projetar um problema so as mais variadas.


Com a modelagem pode-se:
Vale a pena lembrar que
uma das finalidades de
representar formalmente o ambiente observado; se projetar representar
as tabelas e os seus
documentar e formalizar; relacionamentos, de forma
a se verificar se atendem
fornecer processos de validao. ou no soluo desejada.

Ao se construir um modelo de dados, estamos projetando um


ambiente real para um ambiente informatizado, isso implica
em transformar o mundo real em representaes formais
aceitas por um SGBD. Num modelo de dados estaremos nos
utilizando de entidades, as quais mantero as informaes do
mundo real por meio de seus campos (ou colunas), e atravs de
especificaes de como esses dados se relacionam entre si, ou seja,
os relacionamentos entre as entidades.

Para que um relacionamento seja definido, temos que determinar


algumas de suas propriedades, que vo refletir no comportamento
das informaes quando este banco de dados estiver em operao,
a essas propriedades damos o nome de cardinalidade.

Unidade 3 79

banco de dados I.indb 79 16/09/11 15:40


Universidade do Sul de Santa Catarina

Seo 2 Entendendo e definindo as cardinalidades


As tabelas presentes num banco de dados interagem entre si, por
meio dos relacionamentos existentes entre as informaes, por
exemplo, na tabela de alunos h a informao de qual curso cada
um pertence; na tabela de venda h a informao de qual produto
est sendo vendido.

Ao se estabelecer essa interao, devemos estar atentos forma


como essa interatividade acontece, e projetarmos adequadamente
o modelo de dados de forma a representar fielmente o
ambiente que est sendo informatizado. Nesta seo, estaremos
abordando as formas de interao entre as tabelas, denominadas
cardinalidades.

Tipos de cardinalidade
As cardinalidades classificam-se em mnima e mxima. Veja a
seguir as caractersticas de cada uma delas.

Cardinalidade mnima

A cardinalidade mnima define se o relacionamento


entre duas tabelas obrigatrio ou no.

Para que voc compreenda melhor a cardinalidade mnima entre


as tabelas, observe o exemplo a seguir, que representa a relao
entre Pas e Unidades Federativas (UF).

80

banco de dados I.indb 80 16/09/11 15:40


Banco de Dados I


 


Figura 3.1: Exemplo de cardinalidade mnima

Analisando a figura, possvel perceber que um pas


pode ser cadastrado sem que haja uma unidade
federativa para ele. Por isso, a representao de um
zero (0) na cardinalidade mnima da entidade Pas para
entidade UF.
Por outro lado, na cardinalidade mnima de UF para
Pas h uma cardinalidade mnima de 1 ( representada
por |). Ou seja, uma unidade federativa deve
pertencer a um nico pas.
Dessa forma, o diagrama acima pode ser lido como:
Cardinalidade mnima:

cada Pas pode ou no possuir UF;

cada UF deve pertencer a um nico Pas.

Uma abordagem prtica do comportamento dos pases com


relao a suas Unidades Federativas e vice-versa, abordado na
figura 3.1, pode ser observada na figura a seguir.

P1 P2 P3 PASES
P4 P5

O P1,U3 O P2,U4
O P1,U1 OP5,U2 O P3,U5
Relacionamentos de Pases e UFs

U1 U2 UF
U3 U4 U5

Figura 3.2 Representao dos relacionamentos entre os elementos de duas tabelas.


Fonte: Elaborao do autor.

Unidade 3 81

banco de dados I.indb 81 16/09/11 15:40


Universidade do Sul de Santa Catarina

Perceba que cada pas pode ou no estar associado a UF. No caso


do pas 4, no est associado a nenhuma UF. J cada UF deve
obrigatoriamente estar associada a um PAS, portanto, no h a
possibilidade de encontrarmos uma UF sem estar atrelada a um
PAS.

Cardinalidade mxima

A cardinalidade mxima define a quantidade


mxima de ocorrncias entre as entidades que
participam de um relacionamento.

Observe, a seguir, as mesmas entidades Pas e UF, porm


representadas pela cardinalidade mxima.


 


Figura 3.3 - Exemplo de cardinalidade mxima.


Fonte: Elaborao do autor.

Analisando a figura, possvel perceber que um


pas pode ter vrias unidades federativas. Por isso a
representao por meio do smbolo .
Por outro lado, a cardinalidade mxima de UF para
Pas continua com a cardinalidade mxima de 1 (
representada por | ). Ou seja, uma unidade federativa
deve pertencer a um nico pas.
Dessa forma, o diagrama acima pode ser lido como:
Cardinalidade mxima:

cada Pas pode no possuir ou possuir uma ou

vrias UF;
cada UF deve pertencer a um nico Pas.

Como pode ser percebido na figura 3.2 que explana de maneira


prtica o estabelecimento dos relacionamentos, o pas P4 no est

82

banco de dados I.indb 82 16/09/11 15:40


Banco de Dados I

ligado a nenhuma UF, j o pas P3 est ligado a apenas uma UF,


a UF5, e o pas P1 est ligado a duas UFs, a UF1 e a UF3..

Juntando a cardinalidade mxima e mnima desse modelo, tem-


se o seguinte diagrama:


 


Figura 3.4 - Exemplo de cardinalidade mxima e mnima.Fonte:


Elaborao do autor.

Neste diagrama, um pas pode ou no ter unidades federativas e


uma unidade federativa obrigatoriamente deve pertencer a uma
entidade pas.

Alm da cardinalidade mxima e mnima, uma cardinalidade


pode ainda representar outros relacionamentos.

a. Cardinalidade um para um (1:1)


Na cardinalidade um para um, o relacionamento entre as tabelas
sempre ocorre de um para um, ou seja:

Para cada registro de uma tabela, s existe uma nica


ocorrncia relacionada em outra tabela.

Observe a figura a seguir:


 







Figura 3.5 - Exemplo de cardinalidade um para um.


Fonte: Elaborao do autor.

Unidade 3 83

banco de dados I.indb 83 16/09/11 15:40


Universidade do Sul de Santa Catarina

Na representao da Figura 3.5, a entidade UF possui uma nica


Capital e a entidade Capital pertence a uma nica UF.

Na grande maioria dos casos, as duas entidades que esto


envolvidas num relacionamento um para um se fundem numa
nica entidade, e o motivo bastante simples, veja:

Suponha que a entidade UF possua dois campos: COD_UF


e NOME_UF, e a entidade CAPITAL possua tambm dois
campos COD_CAP e NOME_CAP. Agora cadastre duas UFs e
suas respectivas capitais. Vamos l?

UF
UF CAPITAL
CAPITAL
COD_UF NOME_UF COD_CAP NOME_CAP
COD_UF NOME_UF COD_CAP NOME_CAP
11 SC
SC 11 FLORIANPOLIS
FLORIANOPOLIS

22 SP
SP 22 SO PAULO
SO PAULO

Temos, ento, que cada UF est associada a sua CAPITAL e a


leitura inversa tambm vlida.

Neste modelo de dados, conforme visto na figura 3.3, temos


duas entidades e um relacionamento entre elas. Mas reflita sobre
o seguinte: se cada UF se relaciona com uma e somente uma
CAPITAL e, por conseguinte, cada CAPITAL se relaciona com
uma e somente uma UF, no seria mais simples se fosse includa
o nome da capital diretamente na entidade UF??

Vamos ver como ficaria a entidade UF sob esta nova abordagem.

UF
COD_UF NOME_UF NOME_CAP

1 SC FLORIANPOLIS

2 SP SO PAULO

Perceba que conseguimos representar as UFs e suas respectivas


CAPITAIS simplesmente com uma entidade. Com isso,
foi eliminada muita complexidade do modelo de dados e,
consequentemente, o banco de dados est com menos entidades e
relacionamentos, o que deve permitir mais performance ferramenta.

84

banco de dados I.indb 84 16/09/11 15:40


Banco de Dados I

Esta abordagem deve ser levada em considerao sempre que for


estabelecido um relacionamento um para um, a fim de verificar a
viabilidade de se reduzir a situao a apenas uma entidade. Caso
existam implicaes em funo do restante do modelo de dados,
ento deve ser mantido o relacionamento e as duas entidades.
Para efeito de uma utilizao didtica do relacionamento um para
um, continue o estudo mantendo nos exemplos as duas entidades
com o relacionamento.

b. Cardinalidade um para N (1:N)


Nesse segundo tipo de cardinalidade j possvel que um registro
de uma determinada tabela se relacione com vrios registros de
outra tabela.

Observe a figura a seguir:


 

 

 

 

Figura 3.6 - Exemplo de cardinalidade um para N.


Fonte: Elaborao do autor.

A entidade Continente possui vrios pases. J a entidade Pas


pertence a um nico Continente.

Assim como foi demonstrada a possibilidade de reduo de


um modelo de dados a apenas uma entidade onde existir um
relacionamento um para um entre duas entidades, veja, a seguir,
por que no possvel a mesma operao quando houver um
relacionamento um para N.

Suponha que a entidade CONTINENTE possua dois campos:


COD_CON e NOME_CON e a entidade PAS possua
tambm dois campos COD_PAIS e NOME_PAIS. Agora

Unidade 3 85

banco de dados I.indb 85 16/09/11 15:40


Universidade do Sul de Santa Catarina

vamos cadastrar um continente e trs pases, que em tese esto


associados quele continente.

CONTINENTE PAS

COD_PAIS NOME_PAIS
COD_CON NOME_CON
1 ALEMANHA
1 EUROPA
2 ITLIA

3 FRANA

Ao reduzir o modelo com o relacionamento um para N


para apenas uma entidade, veja como ficaria a entidade
CONTINENTE:

CONTINENTE
COD_CON NOME_COM NOME_PAS

1 EUROPA ALEMANHA, ITLIA, FRANA

possvel perceber claramente que podem existir situaes em


que vrios pases pertenam a um mesmo continente, acarretando
o registro de todos eles num mesmo campo, NOME_PAIS.

Voc pode ento indagar: mas que problemas isso pode acarretar?
Uma das dificuldades mais bvias a apresentar se refere
impossibilidade de se definir, a priori, com grau suficiente de
certeza, quantos pases podero pertencer a um continente, a fim
de que possamos definir qual o nmero mximo de caracteres
(letras) que precisaremos reservar para registrar os pases.

Outra dificuldade diz respeito necessidade, por exemplo, de


se extrair desse banco de dados o nome do continente do pas
chamado ITLIA. Para conseguirmos essa informao, teremos
que pesquisar no valor do campo NOME_PAIS por parte
do seu contedo. Essa atividade ir acarretar dificuldades de
implementao alm de prejudicar o desempenho do SGBD.

86

banco de dados I.indb 86 16/09/11 15:40


Banco de Dados I

c. Cardinalidade N para N (N:N)


Bem, agora voc chegou ao ltimo tipo de cardinalidade,
que representa um modelo em que vrios registros de uma
determinada tabela se relacionam com vrios registros de outra
tabela. Veja o diagrama a seguir:

 
  


 

 

 

Figura 3.7 - Exemplo de cardinalidade N para N.


Fonte: Elaborao do autor.

Nesse caso, a entidade Habitantes pode pertencer a vrias


unidades federativas. J a entidade UF possui vrios habitantes.

Em um projeto de banco de dados, em termos conceituais,


possvel aceitar o estabelecimento de um relacionamento N
para N, conforme visto na figura 3.7, porm, ao refinarmos este
projeto para um modelo no nvel lgico, ou ao implementarmos
esse modelo num SGBD, no ser possvel implementar um
relacionamento deste tipo. Veja o porqu.

Suponha que as referidas entidades UF e HABITANTES


apresentadas na figura 3.7 possuam, respectivamente, os
seguintes campos e que existam cadastrados, em ambas as
entidades, o exposto a seguir:

Unidade 3 87

banco de dados I.indb 87 16/09/11 15:40


Universidade do Sul de Santa Catarina

UF HABITANTES

COD_UF(PK) NOME_UF COD_HAB(PK) NOME _HAB

1 SC 1 JOAO BIS

2 SP 2 MARIA HOFF

3 TECO TROTSK

Segundo o exposto no quadro, o UF SC possui como habitantes


JOAO BIS E MARIA HOFF. Mas MARIA HOFF, por sua
vez, considerada habitante de duas UFs: SC e SP.

Alm disso, o relacionamento est demonstrado atravs dos


traos entre os habitantes e suas UFs. Para que se estabelea o
relacionamento entre duas entidades, deve ser criada uma chave
estrangeira(FK - Foreign key), relacionando-a com a chave
primria(PK Primary key) da entidade principal.

Como neste caso temos uma chave estrangeira em UF e outra em


HABITANTES, esto apresentadas abaixo as duas entidades,
agora contendo as colunas que sero referncia para as chaves
estrangeiras.

UF
UF HABITANTES
HABITANTES
COD_UF NOME_UF
COD_UF(PK) NOME_UFHABIT(FK)
HABIT COD_HAB NOME_HAB
COD_HAB(PK) NOME_HAB UF
UF(FK)
(PK) (FK) (FK) (FK)
1 1 SC
SC 1,21,2 11 JOO BIS
JOAO BIS 1 1

2 2 SP
SP 2,32,3 22 MARIA HOFF
MARIA HOFF 1,21,2

33 TECO TROSTSK
TECO TROTSK 2 2

Neste quadro, voc pode notar que ocorre a mesma situao


ocorrida com a entidade continente, ao tentarmos incluir todos
os pases num nico campo. Como as colunas, HABIT e UF,
possuem a indicao de que so chaves estrangeiras (FK), elas
somente podem aceitar os valores das colunas que so chaves
primrias (PK) das entidades das quais dependem. Portanto, a
coluna HABIT s pode assumir valores que existam na coluna
COD_HAB e a coluna UF s pode receber valores que existam
na coluna COD_UF.

88

banco de dados I.indb 88 16/09/11 15:40


Banco de Dados I

Mas ateno para um detalhe: quantos valores existem para cada


coluna HABIT e UF? Para algumas UF, existem dois habitantes,
j para alguns habitantes existem 1 ou 2 UFs, mas poderiam
existir N habitantes para cada UF, assim como poderiam existir
N UF para cada habitante, afinal, este um relacionamento N
para N.

Nessa situao, estamos novamente com vrias informaes numa


mesma coluna, assim como ocorreu na coluna NOME_PAIS da
entidade continente. J ficou claro que vai ser impossvel, a priori,
definir um nmero mximo de habitantes na entidade UF e um
nmero mximo de UF na entidade HABITANTES.

Para que seja resolvido o impasse, ou seja, para que consigamos


claramente identificar quais so os habitantes de cada UF e quais
so as UFS de cada habitante, implementado uma terceira
entidade, denominada entidade associativa, que vai resolver a
problemtica do relacionamento N para N.

A entidade que relaciona duas entidades de um


relacionamento N para N chama-se entidade
associativa.

No caso representado pela Figura 3.7, o relacionamento entre as


entidades UF e Habitantes ficaria da seguinte forma:

Figura 3.8 - Exemplo de entidade associativa.


Fonte: Elaborao do autor.

Dessa forma, transforma-se um relacionamento N para N em um


relacionamento um para N, pois a tabela associativa sempre se

Unidade 3 89

banco de dados I.indb 89 16/09/11 15:40


Universidade do Sul de Santa Catarina

relaciona com as tabelas externas por meio de uma cardinalidade


mnima de um.

Figura 3.9 - Exemplo de entidade associativa resultante de uma cardinalidade N para N.


Fonte: Elaborao do autor.

Toda vez que tivermos um relacionamento N para


N, precisamos resolv-lo, criando uma entidade
associativa.

Toda entidade associativa vai ter na composio da sua chave


primria, no mnimo, as colunas das chaves primrias das
tabelas que a originaram, no caso da tabela UF_ Habitantes, sua
estrutura seria a seguinte:

Toda entidade associativa vai ter na composio da sua chave


primria, no mnimo, as colunas das chaves primrias das
tabelas que a originaram, no caso da tabela UF_Habitantes, sua
estrutura seria a seguinte:

A chave primria da entidade UF_HABITANTES


composta (chave primria composta) por duas colunas,
que so chaves estrangeiras. No esquea, que toda
entidade s poder ter uma chave primria e ser
composta por N colunas.

90

banco de dados I.indb 90 16/09/11 15:40


Banco de Dados I

Agora fica fcil identificar quem quem entre UF e


HABITANTES, por exemplo, o UF de cdigo 1 (SC) possui
os habitantes de cdigo 1 e 2, o HABITANTE de cdigo 3
pertence ao UF 2.

Com o uso da tabela associativa UF_HABITANTES, o modelo


passa a ter para cada UF um grupo nico de habitantes. E cada
habitante pertence a um nico grupo de UFs.

Bem, depois dessas representaes todas voc deve estar se


perguntando: terei que fazer esses desenhos para modelar um
banco de dados?

Essa uma forma padro para representao de relacionamento


entre entidades, e mais do que isso, essa representao o
primeiro passo para que a soluo implementada venha a atender
as necessidades do usurio final.

Sendo assim, necessrio que voc desenhe essas representaes,


porm no preciso que voc faa isso mo. A informtica
disponibiliza algumas ferramentas que permitem a voc desenhar
e analisar o modelo de dados proposto, permitindo inclusive a
converso para alguns tipos de SGBD.

Sntese

Voc estudou nesta unidade que o processo de modelar um banco


de dados uma tarefa exaustiva, que exige muita concentrao
e dedicao do profissional. Modelar um banco de dados
significa representar um mundo real por meio de entidades e seus
relacionamentos.

A relao entre as entidades representada pelas cardinalidades,


que podem ser mximas e mnimas. Essa relao pode ser
representada por meio de trs tipos de relacionamentos, que so:
um para um (1:1), um para N (1:N) e N para N (N:N).

Nos relacionamentos N para N, ou tambm denominados


muitos-para-muitos, necessria a utilizao de uma entidade
chamada associativa, responsvel por agrupar os dados das
entidades correlacionadas. Sempre que o modelo apresentar

Unidade 3 91

banco de dados I.indb 91 16/09/11 15:40


Universidade do Sul de Santa Catarina

um relacionamento N para N, ele deve ser alterado para


um relacionamento N para um, por intermdio da entidade
associativa.

Atividades de autoavaliao
Ao final de cada unidade, voc realizar atividades de autoavaliao. O
gabarito est disponvel no final do livro didtico. Esforce-se para resolver
as atividades sem ajuda do gabarito, pois, assim, voc estar promovendo
(estimulando) a sua aprendizagem.
A empresa Pare Aqui deseja implantar um sistema para controle dos seus
clientes. A empresa possui vrios ptios de estacionamento na cidade,
porm, o controle realizado por meio de anotaes em caderno, e isso
tem gerado uma perda muito grande de recursos financeiros e at mesmo
de clientes.
A empresa adota as seguintes regras:

no caderno de clientes so cadastrados: o nome do cliente, a


sua data de nascimento e o seu CPF;

no caderno de veculos so cadastrados: a placa, a cor e o


modelo;

no caderno de estacionamento so cadastrados: a data de


entrada e sada, a hora de entrada e sada e a placa do veculo;

o mesmo cliente pode ter mais de um carro estacionado no


ptio.

1. Com base nessa descrio, desenhe a cardinalidade que liga as tabelas


do modelo criado a seguir.

 
  

  
  


 
 

 

 





92

banco de dados I.indb 92 16/09/11 15:40


Banco de Dados I

2. Identifique na tabela de Clientes o campo sujeito chave primria.

3. Identifique na tabela de Veculos o campo sujeito chave primria.

4. Identifique na tabela de Estacionados os campos sujeitos chave


primria e s chaves estrangeiras.

Saiba mais

Para aprofundar as questes abordadas nesta unidade, voc


poder pesquisar em:

CHEN, P. Modelagem de dados: a abordagem entidade-


relacionamento para projeto lgico. So Paulo: Makron Books,
1990.

COUGO, P. Modelagem conceitual e projeto de banco de


dados. 7. Reimp. Rio de Janeiro: Campus, 2001.

LIMA, A. da S. ERwin 4.0: modelagem de dados. 2. ed. So


Paulo: rica, 2002.

Unidade 3 93

banco de dados I.indb 93 16/09/11 15:40


Universidade do Sul de Santa Catarina

OLIVEIRA, A. R de. Modelagem de dados. So Paulo: Senac,


2004.

SOARES, S. P. de M. Dominando o ERwin: modelagem de


dados para banco oracle. So Paulo: Cincia Moderna, 2004.

94

banco de dados I.indb 94 16/09/11 15:40


4
unidade 4

Produtos de Banco de Dados

Objetivos de aprendizagem
Entender os conceitos de software livre e de software de
tecnologia proprietria.

Conhecer alguns produtos de banco de dados construdos


sob o mbito de software proprietrio e sob o mbito de
software livre.

Compreender o impacto do Software Livre nos produtos de


banco de dados.

Realizar a instalao de um banco de dados..

Sees de estudo
Seo 1 O mercado de software livre e de software
proprietrio

Seo 2 As novas metodologias de banco de dados

Seo 3 As ferramentas de SGBD

Seo 4 A instalao de um SGBD

Seo 5 O acesso ao banco de dados MySQL

banco de dados I.indb 95 16/09/11 15:40


Universidade do Sul de Santa Catarina

Para incio de estudo


Existem aspectos de modelagem de dados para o projeto de
um banco de dados. assim como tcnicas para mapear as
necessidades de um ambiente do mundo real para um modelo
de dados. Tal processo permite que este modelo de dados,
quando implementado num produto de banco de dados, possa
corresponder e atender a essas necessidades.

Passado este passo, o prximo o da implementao do modelo


de dados num produto de banco de dados. Porm, necessrio
conhecer esses produtos de banco de dados para compreender
como o mercado est organizado no fornecimento desses
softwares.

Para isso, nesta unidade, ser abordado e consolidado o mercado


de softwares, ditos proprietrios, e uma nova tendncia: a do
mercado de softwares livres. Alm disso, sero apresentados os
conceitos de software proprietrio e livre, bem como algumas
ferramentas de banco de dados e o mercado ao qual esto
relacionados.

Seo 1 O mercado de software livre e de software


proprietrio
A tecnologia de banco de dados, assim como a informtica
de modo geral, sofre atualizaes constantes. Como todo
profissional, o especialista em banco de dados tem tambm
o desafio de manter-se informado sobre as atualizaes do
mercado, no que se refere aos novos produtos.

Nos ltimos anos, a rea de banco de dados sofreu uma grande


modificao com a chegada das ferramentas gratuitas, ou de
uso livre, como normalmente so chamadas. To importante
quanto o fato de elas serem gratuitas, foi o fato das ferramentas
se apresentarem robustas e confiveis, o que agradou o mercado
de trabalho.

96

banco de dados I.indb 96 16/09/11 15:40


Banco de Dados I

As ferramentas gratuitas esto baseadas na idia de Software


Livre, que tem como princpio:

Software Livre uma questo de liberdade, no de


preo.

Refere-se liberdade dos usurios executarem, copiarem,


distriburem, estudarem, modificarem e aperfeioarem o
software. Mais precisamente, refere-se a quatro liberdades para
os usurios do software:

a liberdade de executar o programa, para qualquer


propsito;
a liberdade de estudar como o programa funciona e
adapt-lo para as suas necessidades. Acesso ao cdigo-
fonte, um pr-requisito para essa liberdade;
a liberdade de redistribuir cpias de modo que voc possa
ajudar ao seu prximo;
a liberdade de aperfeioar o programa e liberar os seus
aperfeioamentos, de modo que toda a comunidade se
beneficie.

Bem, como voc pode ter notado, o software livre uma


tendncia de mercado. As ferramentas atuais, como: MySQL,
PostgreSQL, FireBird e outros, tm apresentado a cada
ano verses mais confiveis e amigveis, que permitem ao
usurio realizar as mesmas rotinas de outros bancos de dados
proprietrios, com a mesma qualidade.
Essa uma tendncia de mercado e caber a voc, como gestor
da rea de tecnologia da informao, escolher a ferramenta que
melhor agrade e atenda as suas necessidades.
J o mercado de softwares proprietrios apresenta as seguintes
caractersticas:

Unidade 4 97

banco de dados I.indb 97 16/09/11 15:40


Universidade do Sul de Santa Catarina

Normalmente cobrado um valor pelo uso do software,


a to conhecida licena de uso. Esse valor pode ser
cobrado por meio da venda do direito do uso por tempo
ilimitado, ou ainda outra modalidade de comercializao
a venda do direito de uso por um determinado perodo
de tempo.
H a figura do proprietrio do software, ou seja, de
quem o construiu e que responde pelo seu adequado
funcionamento.
O proprietrio quem fornece possveis correes
no produto comercializado. Isso representa um certo
nvel de garantia ao consumidor, uma vez que se
tem identificado a quem recorrer no caso de alguma
anormalidade no funcionamento do software.
Geralmente, o software proprietrio possui uma poltica
de atualizao e/ou evoluo, onde esto contempladas
as inovaes a serem incorporadas ao software, num
determinado perodo de tempo.
As ferramentas proprietrias existentes no mercado, como
Oracle, Ms-SQLServer, IBM-DB2, tambm tm a sua grande
contribuio no mercado de trabalho, pois so robustas, confiveis
e de grande utilizao no mercado atual, principalmente pelas
empresas de grande porte.
O mercado de banco de dados est em constante atualizao e,
dessa forma, abre espao para todos os tipos de ferramentas, o
que bom, pois abre as portas para os profissionais da rea de
tecnologia da informao, em especial aos com conhecimento em
banco de dados.
Lembre-se de que um especialista em tecnologia da informao
no um especialista em ferramentas, mas em solues, ele
no deve se prender a fabricantes ou produtos, mas precisa estar
preparado para as constantes mudanas que o mercado dever
sofrer.
Independente das mudanas, as ferramentas de banco de dados
tendem a facilitar a vida do profissional de informtica, tornando
a sua produtividade maior e mais eficiente, evitando que ele
tenha que editar comandos na mo, ou criar tabelas por meio de
comandos extensos.

98

banco de dados I.indb 98 16/09/11 15:40


Banco de Dados I

As novas ferramentas apresentam uma interface amigvel de


maneira que o usurio cria e testa seus modelos de banco de
dados sem a necessidade de escrever comandos, com apenas um
clique do mouse.

Seo 2 As novas metodologias de banco de dados


Assim como as ferramentas de desenvolvimento de banco de
dados tm evoludo, novas metodologias de implementao
tambm tm sido apresentadas ao mercado de trabalho. A
metodologia de banco de dados orientado a objetos tem obtido
grande aceitao no mercado de trabalho.

Mas o que um banco de dados orientado a objetos?

Trata-se basicamente de um sistema em que a unidade de


armazenamento tida como um objeto e, dessa forma, passa a ter
propriedades e no campos.

A principal caracterstica desse tipo de banco de dados a


abstrao dos dados, que significa:

esconder os detalhes da implementao de seus mdulos;


atrelar a manipulao dos dados a mtodos previamente
programados no banco de dados;
compartilhar objetos;
expandir seus sistemas por meio de outros mdulos j
existentes.

O banco de dados orientado a objetos combina os benefcios


e conceitos da programao orientada a objetos, com a
funcionalidade dos bancos de dados.

Unidade 4 99

banco de dados I.indb 99 16/09/11 15:40


Universidade do Sul de Santa Catarina

Mas qual a diferena entre os dois tipos de banco de


dados apresentados nessa disciplina?

A diferena simples.

Os bancos de dados relacionais usam uma arquitetura tabular


ou matricial, em que os dados so referenciados por meio de
linhas e colunas. J os bancos de dados orientados a objetos
podem ser inteligentes, combinando a lgica e dados.

No que se refere aos bancos de dados relacionais:

As tabelas so definidas tendo como base a teoria da


normalizao, evitando a redundncia dos dados e
facilitando a pesquisa e atualizaes.
O mercado hoje dominado pelos relacionais.
So descritos em duas dimenses, por meio de linhas e
colunas.

A linguagem SQL (Structure Query Language) um


padro aberto para consulta e manipulao dos
bancos de dados relacionais de todos os fornecedores.
O SQL permite que os sistemas relacionais
desenvolvidos por muitos fornecedores possam se
comunicar entre si e acessar banco de dados comuns.

No que se refere aos bancos de dados orientado a objetos:

No possuem uma linguagem padro, dificultando


a conexo entre os bancos de dados de diferentes
fornecedores.
Com o crescimento do mercado de multimdia, video
games e aplicaes Web que utilizam a linguagem
orientada a objetos Java, o uso de bancos orientados a
objetos est crescendo. Para atender a essa demanda,
os fornecedores de bancos de dados relacionais esto
introduzindo facilidades de armazenamento de objetos
em seus bancos de dados, chamando-os de banco de
dados relacional por objetos.

100

banco de dados I.indb 100 16/09/11 15:40


Banco de Dados I

A vantagem do banco de dados orientado a Objetos


a lgica contida no objeto e a possibilidade de ser
reutilizado vrias vezes em diversas aplicaes.
So exemplos de ferramentas de banco de dados
orientados a objetos, banco de dados Cach e banco de
dados Oracle.

importante salientar que os bancos de dados comuns,


tradicionais, foram desenvolvidos para empresas relativamente
estveis, com grandes volumes de dados de baixa complexidade.

O mercado atual liderado pela tecnologia relacional. Mas qual


o motivo desta liderana, uma vez que a tecnologia orientada a
objetos j realidade para o desenvolvimento de software?

Para responder a essa questo, preciso observar, no apenas


a tecnologia puramente empregada, mas tambm em como o
mercado de banco de dados encara essa mudana de tecnologia,
da relacional para a orientada a objetos.

Com relao questo da tecnologia, est claro que a orientada a


objetos possui vantagens significativas, principalmente no que diz
respeito reutilizao de cdigo e manipulao dos elementos do
software, tratados como objetos, possuindo os dados atrelados a
seus mtodos de manipulao.

O grande e principal obstculo da tecnologia orientada a objetos,


como padro para ferramentas de banco de dados, est no fato
da sua padronizao, principalmente na linguagem de acesso aos
objetos, e tambm numa questo de mercado, ou seja, no custo
da migrao de uma base de dados relacional para uma base
orientada a objetos e seu impacto nos softwares que se utilizam
desta base de dados.

Este elemento de mercado merece especial ateno devido ao fato


de que os bancos de dados com tecnologia relacional possuem
atualmente caractersticas muito importantes para o mercado:

Padronizao
Performance

Unidade 4 101

banco de dados I.indb 101 16/09/11 15:40


Universidade do Sul de Santa Catarina

Compatibilidade entre os produtos com a mesma


tecnologia
Assim sendo, sob o ponto de vista tecnolgico, fica relativamente
claro as vantagens que se tm ao utilizar-se de produtos
orientados a objetos. Porm, sob o ponto de vista empresarial,
do consumidor que paga pela mudana, por vezes, fica difcil
argumentar ou justificar os custos envolvidos numa mudana
de tecnologia em banco de dados, em que ser modificada a
tecnologia mas os resultados continuaro sendo os mesmos,
ou seja, o banco de dados orientado a objetos vai continuar
fornecendo os dados aos aplicativos, como os que operam sob
a tecnologia relacional o fazem hoje, e j esto devidamente
instalados na empresa e com pessoas devidamente qualificadas a
operar com essa tecnologia.

Um aspecto que deve ser levado em considerao de que o


banco de dados concentra importncia crtica no ambiente de
tecnologia da informao, uma vez que fornece dados para
inmeros departamentos das empresas e. Qualquer problema
envolvendo essa rea vai ecoar para os softwares que atendem a
esses departamentos.

Qualquer modificao na rea de banco de dados


sempre questionada e deve ser muito bem
dimensionada, avaliando-se os riscos e os benefcios
que sero acarretados com a mudana.

Isso no significa afirmar que a rea de banco de dados


estanque e que a tecnologia relacional vai se perpetuar. Mas sim,
que a mudana de padro, de relacional para orientado a objetos,
est em curso, acontece de modo mais cauteloso. Provavelmente,
daqui a algum tempo estar se consolidando definitivamente
como um padro para a rea.

102

banco de dados I.indb 102 16/09/11 15:40


Banco de Dados I

Seo 3 As ferramentas de SGBD


O objetivo desta seo no avaliar critrios para definir qual
ferramenta a mais eficiente, mas sim apresentar as diferentes
plataformas existentes no mercado e quais as suas principais
caractersticas.

a) MySQL
O aplicativo MySQL um sistema de gerenciamento de banco Acesso direto em: <http://
de dados relacionais baseado em comandos SQL (Structured www.mysql.com>.

Query Language - Linguagem Estruturada para Pesquisas), que


vem ganhando grande popularidade, sendo, atualmente, um dos
bancos de dados mais populares.

O MySQL foi criado na Sucia por dois suecos e um finlands:


David Axmark, Allan Larsson e Michael Widenius, que
trabalham juntos desde a dcada de 80.

O sucesso do aplicativo deve-se em grande parte fcil


integrao com linguagens de programao para web, como
o PHP, e principalmente por se tratar de um banco de dados
gratuito, ou seja, o usurio no tem custo algum para adquirir o
produto, que pode ser baixado diretamente da internet.

Em 2008, o MySQL foi comprado pela Sun, que, em 2009, foi


comprada pela Oracle, a qual recebeu no portflio de produtos o
MySQL.

b) PostgreSQL
O aplicativo PostgreSQL um sistema de gesto de bases de Acesso direto em: <http://
www.postgresql.org>.
dados relacionais, desenvolvido como projeto de software livre.
Sua origem PostgreSQL est de certo modo ligada ao projeto
Ingres, desenvolvido na Universidade de Berkeley, Califrnia.
O lder do projeto, Michael Stonebraker, um dos pioneiros das
bases de dados relacionais, deixou a universidade em 1982 para
comercializar o Ingres, acabando por regressar a Berkeley.

Unidade 4 103

banco de dados I.indb 103 16/09/11 15:40


Universidade do Sul de Santa Catarina

Em 1985, Stonebraker inicio um novo projeto ps-Ingres com


o objetivo de responder a muitos dos problemas que surgiam
relacionados a bases de dados relacionais. Esse novo projeto receberia
o nome de Postgres e, apesar do parentesco, no partilhou o cdigo
base com o Ingres, seguindo sempre caminhos separados.

Em 1993 o projeto Postgres foi oficialmente abandonado pela


Universidade de Berkeley, mas devido ao fato do seu cdigo-
fonte estar sob uma licena gratuita, foi possvel manter o
desenvolvimento pela comunidade BSD.

Em 1995 foi adicionado um interpretador SQL, para substituir


a linguagem QUEL (desenvolvida para o Ingres) e o projeto
foi renomeado, primeiro para Postgres95 e mais tarde para
PostgreSQL.

c) InterBase
Acesso direto em: <http:// O aplicativo InterBase um gerenciador de banco de dados
www.borland.com.br>.
relacionais da Borland, mesmo fabricante das linguagens de
programao Delphi, Borland C++ e Borland Java.

Ele uma opo alternativa aos bancos de dados tradicionais


como o SQL Server da Microsoft e tem as vantagens de ser
grtis e cdigo aberto, o que significa que seu cdigo pode ser
modificado e melhorado por qualquer usurio. Dessa forma a
ferramenta se mantm em constante evoluo, sem custo algum
aos seus usurios.

d) SQLite
Acesso direto em: <http://www. O aplicativo SQLite uma biblioteca em linguagem C que
sqlite.org>.
implementa um banco de dados SQL embutido. Programas que
usam a biblioteca SQLite podem ter acesso a banco de dados
SQL sem executar um processo separado.

O SQLite um servidor de banco de dados. A biblioteca SQLite


l e escreve diretamente no arquivo do banco de dados.

Algumas caractersticas do SQLite:

104

banco de dados I.indb 104 16/09/11 15:40


Banco de Dados I

software livre/domnio pblico e multiplataforma;

no necessita de instalao, configurao ou


administrao;

implementa a maioria do padro SQL;

o banco de dados guardado em um nico arquivo;

suporta bases de dados acima de dois terabytes;

sem dependncias externas.

e) MS SQL Server
Acesso direto em: <http://
www.microsoft.com/
O aplicativo MS SQL Server um gerenciador de banco de sqlserver>.
dados fabricado pela Microsoft. um banco de dados muito
robusto e usado em empresas e por grandes sistemas corporativos.

f) Oracle
O aplicativo um sistema de banco de dados que surgiu no final Acesso direto em:
dos anos 70, quando Larry Ellison vislumbrou uma oportunidade <http://www.oracle.
com.br>.
que outras companhias no haviam percebido, quando encontrou
uma descrio de um prottipo funcional de um banco de
dados relacional e descobriu que nenhuma empresa tinha se
empenhado em comercializar essa tecnologia. Ento, Ellison e os
co-fundadores da Oracle Corporation, Bob Miner e Ed Oates,
perceberam que havia um tremendo potencial de negcios no
modelo de banco de dados relacional, tornando-os assim a maior
empresa de software empresarial do mundo.

A empresa oferece seus produtos de bancos de dados, ferramentas


e aplicativos, bem como servios relacionados de consultoria,
treinamento e suporte. A tecnologia Oracle pode ser encontrada
em quase todos os setores do mundo inteiro e nos escritrios de
98 das empresas citadas na lista da Fortune 100.

Unidade 4 105

banco de dados I.indb 105 16/09/11 15:40


Universidade do Sul de Santa Catarina

Constitui-se atualmente de um dos softwares de banco de dados


mais confiveis e estveis do mercado.

f) Cach
Acesso direto em: <http:// O banco de dados Cach considerado um banco de dados ps-
www.intersystems.com.br>. relacional. A sua arquitetura unificada de dados constri uma
camada de descrio para objetos e tabelas relacionais e tem como
uma das caractersticas importantes, permitir uma integrao
entre dois mundos: SQL (Relacional) e Objetos.

As tecnologias de desenvolvimento para a Web, como por


exemplo, Java, tendem a ser orientadas a objetos. Com isso,
muitos desenvolvedores perceberam que faz sentido aliar o
desenvolvimento com um banco de dados com orientao a
objetos. Alm disso, os objetos promovem o desenvolvimento
rpido, no s pela sua modularidade, mas tambm por
oferecerem uma modelagem mais prxima da realidade.

Um problema dos bancos de dados que trabalham com objetos foi


a falta de uma linguagem de consulta rpida e simples, j que os
bancos relacionais possuem o SQL.

Seo 4 A instalao de um SGBD


A ferramenta base de SGBD que ser usada para estudo nesta
disciplina a ferramenta MySQL, onde sero implementados os
modelos de dados e sob a qual sero desenvolvidos os exerccios e
exemplos prticos da disciplina.

Mas, por que utilizar o MySQL?

Veja os motivos.

106

banco de dados I.indb 106 16/09/11 15:40


Banco de Dados I

uma ferramenta que possui como linguagem de acesso


a linguagem padro SQL.
Permite portabilidade entre vrias plataformas, dentre as
quais a Windows e Linux.
Possui todos os mecanismos bsicos necessrios a uma
ferramenta de SGBD.
uma ferramenta amplamente de cdigo aberto, grtis e
muito difundida atualmente no mercado de trabalho.
De instalao fcil e rpida, conforme poder ser
observado no decorrer desta unidade.
Com muito pouco consumo de recursos dos
equipamentos computacionais, permite que seja instalada
em equipamentos no muito sofisticados.

A instalao e uso do MySQL

A partir de agora, voc vai conhecer os passos para a instalao e


como usar a ferramenta de SGBD MySQL.

Em primeiro lugar, para promover a instalao do MySQL,


preciso ter acesso ao programa instalador do banco de dados.
Crie uma pasta chamada Install na pasta C:\ do seu computador,
e baixe a verso do instalador.
A verso do instalador est
Como essas ferramentas esto em constante evoluo, disponvel na Midiateca
voc pode encontrar verses mais recentes do banco da sala virtual desta
MySQL. Normalmente, essas verses so compatveis disciplina.
com as anteriores, portanto, seno quiser utilizar
a verso da midiateca, voc poder baixar a mais
recente que encontrar. Vamos utilizar a verso da
midiateca por padronizao.

Uma vez de posse do instalador do banco de dados, agora hora


de realizar a instalao do produto em nosso equipamento. Ento
mos obra e siga os passos descritos a seguir.

Unidade 4 107

banco de dados I.indb 107 16/09/11 15:40


Universidade do Sul de Santa Catarina

Instalao do MySQL

Passos para a instalao do MySQL. Veja a descrio.

1. Localize o arquivo instalador do MySQL no seu


computador. Descompacte o arquivo, ficando, ento, com
os seguintes arquivos na pasta C:\Install:

Figura 4.1 Passo 1 para instalao do MySQL.


Fonte: Microsoft Office.
2. Execute o arquivo Instalador, dando um duplo clique
no arquivo mysql-essencial-5.1.37-win32.exe. Caso seja
mostrado um aviso de segurana na forma de uma janela
que se abrir em seguida, clique no boto executar.

Est iniciado o processo de instalao do produto. A seguir, sero


apresentadas passo a passo as telas, bem como as informaes
necessrias para que a instalao seja completada com sucesso.

1. A figura a seguir, mostra a tela de apresentao.


Simplesmente clique no boto Next.

Figura 4.2 Passo 3 para instalao do MySQL.


108 Fonte: MYSQL Server 5.1.

banco de dados I.indb 108 16/09/11 15:40


Banco de Dados I

2. Tela de configurao do tipo de instalao. Clique no


boto Typical para realizar uma instalao padro.

Figura 4.3 Passo 4 para instalao do MySQL.


Fonte: MYSQL Server 5.1.

3. A figura a seguir apresenta a tela de incio da instalao


do produto no seu equipamento. Tambm contm
as informaes da sua instalao: tipo de instalao
selecionada, local onde ser instalada a ferramenta e onde
sero instalados os arquivos do banco de dados. Clique
no boto install para iniciar a instalao e aguarde alguns
minutos.

Figura 4.4 Passo 5 para instalao do MySQL.


Fonte: MYSQL Server 5.1.

Unidade 4 109

banco de dados I.indb 109 16/09/11 15:40


Universidade do Sul de Santa Catarina

4. A seguir, aparecer a tela indicando as vantagens em


se cadastrar junto ao fabricante e ferramentas para
monitorar o MySQL. Clique no boto Next.

Figura 4.5 Passo 6 para instalao do MySQL.


Fonte: MYSQL Server 5.1.
5. A seguir, voc tem a tela que indica o final da instalao
do produto.

Figura 4.6 Passo 7 para instalao do MySQL.


Fonte: MYSQL Server 5.1.

Deixe a opo Configure the MySQL Server now selecionada


e clique no boto Finish.

A partir desse momento, a instalao do banco de dados est


terminada, e ser automaticamente executado o programa de
configurao do banco de dados.

110

banco de dados I.indb 110 16/09/11 15:40


Banco de Dados I

6. A figura a seguir apresenta a tela de incio da


configurao do banco de dados, clique no boto Next.

Figura 4.7 Tela de incio de configurao do banco de dados.


Fonte: MYSQL Server 5.1.

7. Na tela em que questiona o tipo de configurao


necessria, selecione a opo Standard Configuration e
clique no boto Next.

Figura 4.8 Tela que apresenta o tipo de configurao desejada.


Fonte: MYSQL Server 5.1.

8. Selecione a opo Install as Windows Service, como


Service Name deixe a informao padro MySQL e
selecione tambm a opo Launch the MySQL Server
automatically, para que o banco de dados sempre esteja a
sua disposio para utiliz-lo. Selecione a opo Include

Unidade 4 111

banco de dados I.indb 111 16/09/11 15:40


Universidade do Sul de Santa Catarina

Bin Directory in Windows PATH, assim, de qualquer


lugar da linha de comando voc poder iniciar o cliente
MySQL,, clique em Next.

Figura 4.9 Tela que apresenta o nome do servio a ser criado no Windows.
Fonte: MYSQL Server 5.1.

9. Na prxima tela a ser apresentada, conforme mostra a


figura a seguir, deve ser informada uma senha na opo
New root password, a qual deve ser confirmada na opo
Confirm.

A ttulo de sugesto e como padronizao para os acessos


posteriores, sugerimos a senha virtual para a atual instalao.
Aps digitar a senha e confirm-la, clique em Next.

Figura 4.10 Tela de configurao da senha de acesso.


Fonte: MYSQL Server 5.1.

112

banco de dados I.indb 112 16/09/11 15:40


Banco de Dados I

10. Tela de execuo das configuraes selecionadas. Clique


no boto Execute para que as configuraes sejam
aplicadas ao banco de dados.

Figura 4.11 Tela que define a execuo do MySQL.


Fonte: MYSQL Server 5.1.

11. A figura a seguir mostra a tela indicando que as


operaes de configurao foram executadas com
sucesso. Clique no boto Finish.

Figura 4.12 Finalizao da instalao.

Pronto! Est concluda a instalao do MySQL em seu


computador. Agora, a prxima etapa conhecer os passos para
acessar o banco de dados que voc acabou de instalar.

Unidade 4 113

banco de dados I.indb 113 16/09/11 15:40


Universidade do Sul de Santa Catarina

Seo 5 O acesso ao banco de dados MySQL


Nesta seo ser realizado um acesso ao banco de dados que foi
instalado, conforme voc estudou anteriormente.

O acesso ao banco de dados pode ser realizado por meio de


vrios aplicativos, entretanto, para este estudo, ser utilizado um
acesso considerado simples, que instalado durante a instalao
do banco MySQL: o aplicativo MySQL Command Line Client.
Para execut-lo, v ao menu Iniciar e abra o grupo de programas
MySQL.

Figura 4.13 Aplicativo MySQL Command Line Client.


Fonte: MYSQL Server 5.1.

Execute o aplicativo MySQL Command Line Client (conforme


mostra a figura) e confirme a senha que foi informada durante a
instalao (a sugesto repassada foi a palavra virtual)

114

banco de dados I.indb 114 16/09/11 15:40


Banco de Dados I

Figura 4.14 Solicitao de senha de acesso.


Fonte: MYSQL Server 5.1.

Este aplicativo bastante simples e ser utilizado sempre que


necessitar executar alguma tarefa no banco de dados. Uma nova
tela aparecer e voc estar apto a digitar os comandos para
interagir com o banco de dados.

Sntese

Nesta unidade voc conheceu alguns produtos de SGBD, bem


como o mercado de software livre e de software proprietrio.

No que tange ao mercado envolvendo os produtos de banco


de dados, o software livre, apesar de ainda no consolidado,
apresenta-se como uma opo interessante ao usurio que no
quer ficar na dependncia de um fabricante ou proprietrio do
produto. Porm, esse tambm deve medir os riscos de no ter
disposio a figura do responsvel direto pela confeco do
produto, que por muitas vezes pode representar alguma garantia
de continuidade no desenvolvimento e atualizao do produto.

Com relao aos produtos de banco de dados, voc conheceu


alguns dos mais conhecidos e utilizados atualmente, o que
proporciona uma viso dos principais atuantes no mercado atual,
sem a inteno de avaliar produtos, o que exigiria uma avaliao
profunda, inclusive com relao rea da sua aplicao.

Unidade 4 115

banco de dados I.indb 115 16/09/11 15:40


Universidade do Sul de Santa Catarina

Atividades de autoavaliao

Ao final de cada unidade, voc realizar atividades de autoavaliao. O


gabarito est disponvel no final do livro didtico. Esforce-se para resolver
as atividades sem ajuda do gabarito, pois, assim, voc estar promovendo
(estimulando) a sua aprendizagem.

1) Qual a diferena entre banco de dados relacional e banco de dados


orientado a objetos?

2) Caso uma empresa lhe questionasse sobre as vantagens e


desvantagens de se ter ferramentas de uso livre, que tipo de
informao voc passaria?

116

banco de dados I.indb 116 16/09/11 15:40


Banco de Dados I

Saiba mais

Para aprofundar as questes abordadas nesta unidade voc poder


pesquisar os seguintes livros:

GUIMARES, Clio Cardoso. Fundamentos de bancos de


dados. So Paulo: Editora Unicamp, 2008.

NASSU, Eugnio A.; SETZER, Valdemar W. Banco de dados


orientado a objetos. So Paulo: Edgard Blucher, 1999.

Unidade 4 117

banco de dados I.indb 117 16/09/11 15:40


banco de dados I.indb 118 16/09/11 15:40
5
unidade 5

Implementao do projeto de
banco de dados

Objetivos de aprendizagem
n Conhecer a origem da linguagem SQL.

n Compreender os tipos de dados da linguagem SQL.

n Identificar os comandos de definio de dados (DDL).

n Entender a funcionalidade das chaves primrias e


estrangeiras em um banco de dados.

n Implementar os elementos de um projeto de banco de


dados numa ferramenta de SGBD.

n Saber como criar, alterar e remover tabelas de banco de


dados.

Sees de estudo
Seo 1 A estrutura da Linguagem SQL

Seo 2 Como criar tabelas

Seo 3 Como definir tabelas relacionais em SQL

Seo 4 Como remover as tabelas do banco de


dados

banco de dados I.indb 119 16/09/11 15:40


Universidade do Sul de Santa Catarina

Para incio de estudo


A linguagem SQL (Structured Query Language) surgiu no incio
dos anos 70 como resultado de um projeto da IBM para o
desenvolvimento de uma linguagem que se adequasse ao modelo
relacional. O primeiro sistema de banco de dados baseado em
SQL ficou disponvel, comercialmente, no final dos anos 70,
junto a outros sistemas de banco de dados relacionais.

Por volta da dcada de 80 foi publicada a primeira verso


padronizada da Linguagem SQL, seguindo a padronizao
ANSI e ISO.

Desde ento, a linguagem vem evoluindo, gerando novas verses


padronizadas, como: SQL-92 e SQL-99, assim chamadas em
referncia aos anos em que foram publicadas.

Com suas seguidas evolues, a linguagem tornou-se a mais


poderosa ferramenta de definio e manipulao de bancos
de dados relacionais, e hoje utilizada na grande maioria dos
sistemas de bancos de dados.

A linguagem SQL basicamente uma linguagem de definio


e manipulao do banco de dados, diferente das linguagens
comuns de programao, por no ser uma linguagem procedural.
procedural. uma linguagem relacional, isto , ela ideal para
o tratamento de dados relacionados, aqueles que podem ser
Linguagem procedural aquela na
qual os comandos so agrupados
arranjados em uma tabela, na qual cada linha forma uma unidade
em procedimentos ou funes. lgica de dados.

Essa linguagem funciona tanto para definio como manipulao


de dados, isto , usando SQL pode-se criar tabelas e tambm
acessar os dados ali cadastrados.

Sendo assim, nesta unidade, vamos fazer parte deste seleto grupo
de programadores que usam a linguagem SQL para manipulao
e definio de dados. Bom estudo!

120

banco de dados I.indb 120 16/09/11 15:40


Banco de Dados I

Seo 1 A estrutura da linguagem SQL


A linguagem de programao SQL formada por um grupo
muito grande de comandos que podem ser executados para os
mais diversos objetivos.

Para facilitar o entendimento e o uso dessa poderosa


linguagem de banco de dados, os comandos so
divididos em linguagem de definio de dados (DDL)
e linguagem de manipulao de dados (DML).

a) Linguagem de definio de dados (data definition


language DDL): fornece comandos para criao e
modificao das tabelas do modelo de banco de dados,
bem como a remoo de tabelas e criao de ndices.
Os principais comandos que fazem parte da DDL so:
Create table, Drop table, Alter table.

b) Linguagem de manipulao de dados (data


manipulation language DML): inclui uma linguagem
de consulta aos dados das tabelas. Compreende os
comandos para inserir, remover e modificar informaes
em um banco de dados. Os comandos bsicos da DML
so: Select, Insert, Update, Delete.

Os comandos da linguagem de definio de dados (DDL)


O principal objetivo dos comandos da linguagem de definio de
dados (DDL) possibilitar ao usurio criar as tabelas do seu modelo
de banco de dados, bem como os relacionamentos entre elas.

Antes de iniciar o estudo dos comandos de criao de


tabelas, importante que voc fique por dentro dos
tipos de dados em um banco de dados, pois esse
item essencial para especificao dos valores que
podem ser aceitos em cada campo, ou coluna, de uma
tabela.

Unidade 5 121

banco de dados I.indb 121 16/09/11 15:40


Universidade do Sul de Santa Catarina

Os tipos de dados em SQL

O padro SQL-92 aceita uma variedade de tipos de dados,


incluindo os seguintes:

Varchar (n) uma cadeia de caracteres de tamanho


varivel, com o tamanho n mximo definido pelo
usurio. Por exemplo: um campo do Tipo Varchar(30)
significa que ali podem ser cadastrados, no mximo, 30
smbolos quaisquer, como nmero e letras. String de
tamanho flexvel entre 1 e 255 caracteres.
Int ou Integer define um tipo inteiro entre 0 e
4294967295 (sem sinal).
Numeric(p,d) um nmero de ponto fixo cuja preciso
definida pelo usurio. O nmero consiste de p dgitos
e d casas decimais. Por exemplo, um campo do tipo
Numeric (9,2) tem a seguinte representao: 9999999.99,
ou seja, 7 dgitos antes da vrgula e 2 aps a vrgula,
totalizando os 9.
Real - um nmero com ponto flutuante, ou seja, a
representao de nmero real pode mudar de acordo com
a representao atual. Como por exemplo: 100.0 igual a
10.0 E+2.
Float(n) um nmero com ponto flutuante. A preciso
definida pelo usurio, em pelo menos n dgitos.
Date representa uma data que contm um ano (com
quatro dgitos), ms e dia do ms. Por exemplo, a data
23/01/1998 ser representada no MySQL como sendo
1998-01-23. O formato padro YYYY-MM-DD.
Char (n) strings de tamanho fixo entre 1 e 255
caracteres.
Text, Blob strings de tamanho indefinido. A diferena
entre TEXT e BLOB que o primeiro armazena o texto
como caractere e o segundo como objeto binrio.
Bool ou boolean tipo boleano (true/false), em que no
valor igual a zero temos false e diferente de zero, ento,
temos true.
Time representa horrio, em horas, minutos e
segundos. O formato padro HH:MM:SS.
122

banco de dados I.indb 122 16/09/11 15:40


Banco de Dados I

importante salientar que outros tipos de dados podem existir,


dependendo da tecnologia e do grau de sofisticao da ferramenta
de SGBD.

Bem, agora que voc j conhece os tipos de dados existentes


para linguagem SQL, eles sero teis quando voc for definir as
tabelas que faro parte de seu banco de dados.

Seo 2 Como criar tabelas


Antes da criao das tabelas no banco de dados preciso criar
uma rea para receber estas tabelas. Essa rea no MySQL
chamada de database.

O database considerado um agrupador de tabelas.


Podemos criar um database para cada modelo lgico,
ou seja, para cada conjunto de tabelas que sero
utilizadas num sistema.

Sua sintaxe :

create database nome_do_database; <enter>

Para o modelo lgico, representado na figura 5.1, a seguir, vamos


criar o seguinte database:

mysql> create database escola; <enter>

Aps criar o database, preciso informar ao MySQL qual


database que ele dever utilizar. Para isso, utilizamos o seguinte
comando:

mysql> use escola; <enter>

Uma vez criado um database, ao sair do MySQL e


retornar, voc no precisar criar novamente, apenas
utilize o comando Use nome_database para continuar
o seu trabalho.

Unidade 5 123

banco de dados I.indb 123 16/09/11 15:40


Universidade do Sul de Santa Catarina

Para remover um database e todas as tabelas contidas nele, utilize


a seguinte sintaxe:

mysql> drop database escola; <enter>

Para visualizar os databases existentes no banco de dados utilize:

mysql> show databases; <enter>

Observe na figura a seguir como ficaram os comandos na


ferramenta MySQL Command Line Client:

Figura 5.1 Resultado dos comandos de criao e manipulao de database.


Fonte: MySQL Server 5.1.

H outras variaes de comandos para criao e manipulao


de database, mas por enquanto, a variao aqui apresentada
suficiente para voc continuar os estudos. Vamos, ento, criao
das tabelas.

A tarefa de criar uma tabela significa especificar seu nome, o


nome de cada coluna e o tipo de dados que ser armazenado em
cada coluna.

Porm, esse processo pode ser mais amplo. A tabela um


conjunto de dados e com isso pode-se especificar as regras de
acesso e uso, as quais recebem o nome de regras de integridade.

Uma tabela em SQL definida usando o comando Create Table,


que possui como sintaxe:

124

banco de dados I.indb 124 16/09/11 15:40


Banco de Dados I

create table nome da tabela (


Atributo1 Tipo1,
Atributo2 Tipo2,
..,
AtributoN TipoN,
<regras de integridade 1>,
<regras de integridade 2>,
...,
<regras de integridade n>
);

Normalmente, um banco de dados abrange um conjunto de


tabelas. Para cada uma delas deve ser executado um comando
Create Table para sua definio.

A esse conjunto de tabelas chama-se Modelo Lgico


de Dados, que representa graficamente as tabelas do
banco de dados.

Para facilitar sua compreenso, veja o Modelo Lgico a seguir:

Figura 5.2 Modelo relacional com as tabelas alunos, matriculas e cursos.

Os comandos a seguir descrevem os passos para implementao


deste modelo, criando cada uma das tabelas, por meio do
comando Create Table.

Inicialmente, descreva o comando para criao fsica no


computador da tabela Alunos:

Unidade 5 125

banco de dados I.indb 125 16/09/11 15:40


Universidade do Sul de Santa Catarina

Create table Alunos (


Codigo_Aluno Integer,
Nome_Aluno Varchar(30),
Idade Integer,
Sexo Char
); <enter>

Aps a execuo do comando, as tabelas podem ser manipuladas


das mais diversas formas, como: insero de dados, alterao de
Na execuo de comandos maiores,
procure faz-los mais divididos em dados etc.
linhas, como no exemplo. Assim, se
ocorrer um erro, o MySQL mostrar Para visualizar a estrutura da tabela criada usa-se o comando
melhor onde ele est. Describe.

Comando Describe: representa de forma estrutural os


campos da tabela e seus respectivos tipos de dados.
Subentende-se por campos, as
colunas da tabela.
O comando Describe possui a seguinte sintaxe:

Describe Nome_Da_Tabela; <enter>

Nesse caso, aps a execuo do comando Describe Alunos, a


seguinte estrutura ser apresentada:

Campos - Field Tipo - Type Primary Key Key Null


Codigo_Aluno Integer Sim
Nome_Aluno Varchar (30) Sim
Idade Integer Sim
Sexo Char Sim

Quadro 5.1 Resultado da execuo do comando describe alunos.


Fonte: Elaborao do autor.

O comando Describe pode ser abreviado por Desc, ficando


assim:

Desc Nome_Da_Tabela; <enter>

126

banco de dados I.indb 126 16/09/11 15:40


Banco de Dados I

Observe que a tabela de alunos possui os campos Codigo_Aluno,


do tipo de dado Inteiro, Nome_Aluno do tipo Varchar, Idade do
tipo Inteiro e Sexo do tipo Char.

Essas regras, at o momento, definem apenas o escopo de cada


coluna, ou seja, nas colunas Codigo_Aluno e Idade s podem
ser cadastrados nmeros, de no mximo 11 dgitos. J o campo
Nome_Aluno aceita um conjunto de caracteres de tamanho
mximo 30, e, por fim, o campo Sexo, que aceita apenas um
caractere (F ou M, por exemplo).

O que significa a expresso Null?

Todas as colunas da tabela Alunos possuem como valor


para coluna null um Sim. Essa configurao determina ao
banco de dados que todas as colunas da tabela Alunos podem
ser cadastradas com valores nulos, ou seja, no so campos
obrigatrios.

Toda vez que criamos uma tabela, as colunas por padronizao


sempre comeam com o status de Null, ou seja, no obrigatrias.

Como definir para que o campo seja


obrigatoriamente cadastrado?

Voc estudou anteriormente que toda vez que se cria as colunas


de uma tabela, por padro, so cadastradas com Null, certo?

Para definir que o campo de uma tabela obrigatrio, deve-se


colocar a expresso Not Null na sua definio do mesmo, da
seguinte forma:

Nome da Coluna Tipo de Dado Not Null.

Vamos criar a tabela de Alunos novamente, mas desta vez


obrigando o cadastramento do cdigo do aluno e do nome, ok?

Unidade 5 127

banco de dados I.indb 127 16/09/11 15:40


Universidade do Sul de Santa Catarina

Observe como ficaria o comando SQL:

Create table Alunos (


Codigo_Aluno Integer not null,
Nome_Aluno Varchar(30) not null,
Idade Integer,
Sexo Char
); <enter>

A definio dos campos obrigatrios vale apenas para os campos


definidos como not null (no nulos). Caso seja necessrio
especificar todos os campos como obrigatrios, dever ser
colocada a clusula not null ao lado de cada campo. Aps a
execuo desse comando, a estrutura do quadro passar a ter a
seguinte formatao:

Campos - Field Tipo - Type Primary Key Null


Key
Codigo_Aluno Integer Sim
Nome_Aluno Varchar (30) Sim
Idade Integer Sim
Sexo Char Sim

Quadro 5.2 Resultado do comando describe alunos.


Fonte: Elaborao do autor.

Outras regras de integridade dos dados


As regras de integridade so importantssimas para que um
banco de dados evite redundncia nos dados e garanta a sua
integridade.

A obrigatoriedade de informao dos dados de uma tabela uma


regra de integridade do banco de dados, e existem muitas outras
que podem ser associadas a uma tabela, as regras de integridade
permitidas englobam:

primary key(Atributo1, Atributo2, ..., AtributoN);


check (P);
foreign key(Atributo1, Atributo2, ..., AtributoN) references Nome da Tabela.

128

banco de dados I.indb 128 16/09/11 15:40


Banco de Dados I

Sobre a sintaxe apresentada, considere:

A especificao Primary Key diz que os atributos


Atributo1, Atributo2, ..., AtributoN formam a chave
primria da tabela. A chave primria corresponde ao
campo, ou campos, que no pode, de forma alguma,
ter valores repetidos dentro da tabela. No caso da
chave primria ser composta por mais de uma coluna,
a combinao dessas colunas no poder ter valores
repetidos.

A clusula check impe um domnio a um determinado


campo da tabela, forando-o a aceitar apenas as opes
pertencentes ao domnio estabelecido. Por exemplo, para
a coluna Sexo pode ser estabelecido o domnio (M,F).
Isso implementado por meio da seguinte clusula
check, ao se implementar uma tabela: ...check Sexo in
(M,F)... Dessa forma, o SGBD far uma verificao
sempre que um valor for inserido ou alterado na coluna
Sexo, a fim de averiguar se seu valor encontra-se dentro
do domnio estabelecido.

A clusula foreing key inclui a relao dos atributos que


constituem a chave estrangeira (Atributo1, Atributo2, ...,
AtributoN) e em quais tabelas esses campos fazem
referncia aos campos formadores da chave primria em
outra tabela.

Todos os atributos de uma chave primria so


declarados implicitamente como not null.

Agora que j temos a tabela Alunos criada, vamos definir um


campo do tipo chave primria para essa estrutura. Como o Nome
do Aluno, Idade e Sexo so campos que podem ter o mesmo
valor, adotarei o Cdigo do Aluno como chave primria.
Chave Primria aquele
campo que no pode, de
Como alterar a estrutura da tabela? forma alguma, repetir-se
dentro da tabela.

Unidade 5 129

banco de dados I.indb 129 16/09/11 15:40


Universidade do Sul de Santa Catarina

A alterao da estrutura de uma tabela do banco de dados pode


ser realizada de duas formas: ou se acrescenta um campo novo
ou se altera a estrutura do campo desejado.

A alterao realizada se refere sempre estrutura da tabela e


nunca aos campos cadastrados na mesma. A alterao dos dados
cadastrados realizada por meio de outro comando.

Retomando o exemplo da nossa tabela...

Como a tabela Alunos j existe no nosso banco de dados, a tarefa


que ser executada representa uma alterao na estrutura da
tabela. Ser ento adicionada a regra de chave primria ao campo
Codigo_Aluno.

Para isso, ser necessria a utilizao do comando em SQL:


Alter Table, que possui a seguinte sintaxe:

Alter Table Nome_ da_Tabela Operao Nome_ do_ Campo Nova Regra;

A operao pode ser:

Operao Funcionalidade
ADD Adiciona um novo campo.
MODIFY Altera a estrutura de um campo.

Tabela 5.3 Formas de uso do comando Alter Table.


Fonte: Elaborao do autor.

Ao alterar o campo Codigo_Aluno para ser uma chave primria,


sua sintaxe ser:

Alter Table Alunos Add Primary Key(Codigo_Aluno);

Observe se a alterao foi realizada. Para tanto, o comando


Describe deve ser novamente executado, com a finalidade de
descrever a estrutura da tabela.

130

banco de dados I.indb 130 16/09/11 15:40


Banco de Dados I

Campos - Field Tipo Type Primary Key Null


Key
Codigo_Aluno Integer Sim No
Nome_Aluno Varchar (30) Sim
Idade Integer Sim
Sexo Char Sim

Quadro 5.3 Estrutura da tabela de alunos aps a execuo do comando describe alunos.
Fonte: Elaborao do autor.

Importante notar que a coluna Null para o campo Codigo_


Aluno possui o valor No, pois toda chave primria,
obrigatoriamente, deve ser cadastrada. Caso voc tenha esquecido
de colocar o campo Codigo_Aluno como not null, por se tratar
de uma chave primria, ele receberia automaticamente o not null.

Antes de continuar a criar as tabelas Cursos e Matrculas que


fazem parte do modelo proposto nesta seo, realizaremos outras
alteraes na tabela Alunos, para exemplificar a sintaxe do
comando Alter Table.

Como alterar o tamanho do campo Nome_Aluno?

O comando a ser utilizado ser:

Alter Table Alunos MODIFY Nome_Aluno Varchar(40);

Observe que nesse exemplo, ao invs de utilizar a clusula Add,


foi utilizada a clusula Modify, pois o campo Nome_Aluno j
existia, porm, com outro tamanho. Por isso, o campo foi apenas
modificado.

Acompanhe outras aplicaes de comandos:

Unidade 5 131

banco de dados I.indb 131 16/09/11 15:40


Universidade do Sul de Santa Catarina

Adicionando o campo Endereco, do tipo varchar(30);

Alter Table Alunos ADD Endereco Varchar(3);

Adicionando o Campo Cidade, do tipo Varchar(25):

Alter Table Alunos ADD Cidade Varchar(25);

Adicionando o Campo UF, do tipo Varchar(02):

Alter Table Alunos ADD UF Varchar(02);

Adicionando um domnio no campo Sexo, para isso


vamos utilizar a clusula check:

Alter Table Alunos ADD check (sexo in (M,F));

Tem-se, ento, a seguinte estrutura:

Campos - Field Tipo - Type Primary Key Null


Key
Codigo_Aluno Integer Sim No
Nome_Aluno Varchar (30) Sim
Idade Integer Sim
Sexo Char Sim
Endereo Varchar(30) Sim
Cidade Varchar(25) Sim
UF Varchar(2) Sim

Quadro 5.4 Resultado do comando describe alunos aps as alteraes.


Fonte: Elaborao do autor.

Como criar a estrutura da tabela em um Grupo nico


de Comandos?

132

banco de dados I.indb 132 16/09/11 15:40


Banco de Dados I

No item acima, na criao da tabela de Alunos, realizamos


vrios comandos para definio da tabela. Basicamente, uma
tabela um conjunto de campos, chaves primrias e campos
obrigatrios, sendo assim, podemos criar todas essas regras num
nico passo, como ser feito a seguir, na criao da tabela de
Cursos, observe:

Create Table Cursos(


Codigo_Curso Integer,
Descricao Varchar(30) not null,
Numero_Vagas Integer not null,
Periodo Char,
Primary Key(Codigo_Curso)
);

Executando o comando Describe para visualizar a estrutura da


tabela, tem-se:

Campos - Field Tipo - Type Primary Key Null


Key
Codigo_Curso Integer Sim No
Descricao Varchar (30) No
Numero_Vagas Integer No
Periodo Char Sim

Quadro 5.5 - Visualizando a estrutura da tabela Cursos.


Fonte: Elaborao do autor.

Como caracterstica desta tabela, observe que os campos


Codigo_Curso, Descricao e Numero_Vagas so obrigatrios, e
o campo Codigo_Curso ainda uma chave primria. O nico
campo que pode ser cadastrado sem valores o campo Perodo.

Unidade 5 133

banco de dados I.indb 133 16/09/11 15:40


Universidade do Sul de Santa Catarina

Seo 3 Como definir tabelas relacionadas em SQL


At aqui voc criou um conjunto de tabelas que no estavam
relacionadas e cuja principal finalidade era cadastrar diretamente
os dados.

Figura 5.3 Modelo relacional com as tabelas alunos, matriculas e cursos.


Fonte: Elaborao do autor.

Porm, no modelo de dados do incio desta unidade, foi


apresentada uma tabela associativa chamada Matriculas, que
dever conter o Aluno que fez a matrcula, o Curso no qual ele se
matriculou e a data em que efetuou isso.

Note que com essa tabela associativa, no h necessidade de


recadastrar os dados do aluno e do curso, mas sim, fazer uma
referncia das tabelas Alunos e Cursos na tabela Matriculas.

A referncia entre tabelas chama-se de chave


estrangeira.

A tabela Matrcula ter duas chaves estrangeiras, os campos


cod_alu_mat e cod_curso_mat, que referenciam a tabela
Alunos pelo campo Codigo_Aluno e a tabela Cursos pelo campo
Codigo_Curso, respectivamente.
Em outras palavras, pode-se dizer que o cdigo identificador do
aluno matriculado na tabela Matriculas, que estar armazenado
no campo cod_alu_mat, dever vir da tabela de Alunos,
originrio do campo Codigo_Aluno. J o Cdigo do curso, na

134

banco de dados I.indb 134 16/09/11 15:40


Banco de Dados I

tabela Matriculas, que ser armazenado no campo cod_curso_


mat, dever vir da tabela Cursos, pelo campo Codigo_Curso.

 

 
 

Figura 5.4 Origem dos valores das colunas COD_ALU_MAT E COD_CURSO_MAT


Fonte: Elaborao do autor.

Essas referncias possuem a seguinte regra e so feitas na


seguinte sintaxe:

Para o campo cod_alu_mat, da tabela de Matriculas, que


os dados vm da tabela de Alunos, pelo campo Codigo_
Aluno, o comando em SQL :

Foreign Key (cod_alu_mat) references Alunos (Codigo_Aluno);

Para o campo cod_curso_mat, da tabela de Matriculas,


que os dados vm da tabela de Cursos, pelo campo
Codigo_Curso, o comando em SQL :

Foreign Key (cod_curso_mat) references Cursos (Codigo_Curso);

Como definir os tipos de dados das chaves


estrangeiras?

O que e como referenciar uma chave estrangeira voc aprendeu


no item anterior, porm, qual o tipo de dados de um campo cujos
seus dados vm de outra tabela?

Unidade 5 135

banco de dados I.indb 135 16/09/11 15:40


Universidade do Sul de Santa Catarina

Como o campo cod_alu_mat da tabela de Matriculas vem do


campo Codigo_Aluno em Alunos, os dois campos devem ter o
mesmo tipo, sendo assim, o campo cod_alu_mat ser do tipo: Int
ou Integer (inteiro).

A mesma regra deve ser aplicada ao campo cod_curso_mat.


Como o campo Codigo_Curso na tabela de Cursos Integer,
o campo cod_curso_mat dever ser inteiro (Int ou Integer)
tambm.

Como o campo Data_Matricula no um campo chave


estrangeira, ele ser do tipo Date.

Como um aluno no pode se matricular no mesmo


curso, na mesma data, todos os campos da tabela
Matriculas sero chaves primrias.

Dessa forma, a tabela Matrculas seria criada pelo comando SQL


a seguir:

Create table Matriculas (


Cod_Alu_Mat Integer,
Cod_Curso_Mat Integer,
Data_Matricula Date,
Primary Key (Cod_Alu_Mat, Cod_Curso_Mat, Data_Matricula),
Foreign Key (Cod_Alu_Mat) references Alunos (Codigo_Aluno),
Foreign Key (Cod_Curso_Mat) references Cursos (Codigo_Curso)
);

A representao da tabela Matrculas a partir do comando


Describe::

Campos - Field Tipo - Type Primary Key Null


Key
Cod_Alu_Mat Integer Sim No

Cod_Curso_Mat Integer Sim No

Data_Matricula Date Sim No

Quadro 5.6 - Representao da tabela Matriculas a partir do comando Describe.


Fonte: Elaborao do autor.

136

banco de dados I.indb 136 16/09/11 15:40


Banco de Dados I

Note que todos os campos so marcados com Primary Key igual


a SIM, em uma referncia chave primria.

Aps criar uma tabela, se voc quiser verificar o


comando que a originou, utilize a sintaxe:
mysql> show create table nome_da_tabela; <enter>

Bem, com isso voc finalizou o processo de transformar o modelo


lgico do incio desta unidade num modelo fsico, ou seja, voc
transformou um modelo lgico num banco de dados de verdade.

Seo 4 Como remover as tabelas do banco de dados


Assim como voc pode criar novas tabelas para um banco de
dados, poder tambm remov-las por meio do comando Drop
Table.

Sua sintaxe :

Drop Table Nome_da_tabela; <enter>

Porm, algumas regras devem ser respeitadas para que uma


tabela seja removida, ou dropada, no jargo de banco de dados.
Essas regras so:

uma tabela s pode ser removida se ela no possuir


campos considerados como sendo chave estrangeira para
outra tabela;

se uma tabela possui como referncia uma chave


estrangeira para outra tabela, ser preciso primeiro
remover as tabelas para as quais so feitas as referncias;

uma tabela s pode ser removida se no possuir nenhum


dado cadastrado, caso contrrio, primeiro ela dever ser
esvaziada para depois ser removida.

Unidade 5 137

banco de dados I.indb 137 16/09/11 15:40


Universidade do Sul de Santa Catarina

Para remover a tabela Alunos do banco de dados criado


anteriormente, utilize o comando Drop Table, com a seguinte
sintaxe:

Drop Table Alunos

Porm, ao se excluir a tabela de Alunos, ser criada uma


inconsistncia no esquema do banco de dados, pois a tabela
Matriculas estar fazendo referncia a uma tabela que no existe
mais, dessa forma os dados no refletem a realidade esperada.

Para que esse problema no ocorra, o SGDB no permitir que


a tabela Alunos seja removida, pois h alguma outra no esquema
que depende dela.

Veja o diagrama a seguir:

 

Figura 5.5 Representao da remoo de uma tabela com campos que so foreign key para outra
tabela.
Fonte: Elaborao do autor.

Para se excluir a tabela de Alunos, necessrio que se


exclua antes a tabela de Matriculas, para que a ligao
entre as mesmas no exista mais.

Note que o processo de excluso de tabelas pode resultar em

138

banco de dados I.indb 138 16/09/11 15:40


Banco de Dados I

problemas graves de inconsistncia de dados, gerando uma


necessidade de excluso de vrias tabelas do banco de dados
devido ao nmero de relacionamento entre elas.
Portanto, fundamental que ao se modelar um banco de dados
sejam previstos todos os relacionamentos possveis e as tabelas
que so realmente necessrias, a fim de se evitar o trabalho
redobrado.

Nesse casso, para excluir a tabela Alunos necessrio dois


comandos Drop Table, com as seguintes sintaxes:

Drop Table Matriculas;

  

Figura 5.6 Remoo da tabela Matricula


Fonte: Elaborao do autor.

Drop Table Alunos;

  

Figura 5.7 Tabelas restantes aps as remoes.


Fonte: Elaborao do autor.

Aps esses dois comandos, o modelo de banco de dados ficar


assim:



Figura 5.8 Tabelas restantes aps as remoes.


Fonte: Elaborao do autor.

O prximo passo compreender os comandos que permitam


manipular os dados desse banco de dados, fazendo inseres,

Unidade 5 139

banco de dados I.indb 139 16/09/11 15:40


Universidade do Sul de Santa Catarina

alteraes, excluses e consultas nas tabelas, os chamados


comandos de DML (Linguagem de Manipulao de Dados).

Sntese

A programao em banco de dados utiliza uma linguagem de


programao prpria, chamada de linguagem estruturada de
pesquisa, ou simplesmente SQL. A linguagem SQL segue um
padro para qualquer ferramenta de banco de dados, sendo assim,
ela independente do ambiente no qual ser utilizada.

A linguagem SQL dividida basicamente em duas formas, os


comandos de Definio de Dados (DDL) e os de Manipulao
de Dados (DML).

Dentro do conjunto dos comandos de DDL esto: Create Table,


Alter Table e Drop Table. O comando Create Table permite ao
programador a criao das tabelas do modelo fsico, definindo a
descrio de cada coluna e o seu tipo de dado.

As restries da tabela so chamadas de constraints e podem


ser de dois tipos, basicamente: chaves primrias e chaves
estrangeiras. As chaves primrias so sempre do tipo not null,
ou seja, seus dados devem ser preenchidos obrigatoriamente. Os
campos do tipo Null tm seu preenchimento opcional.

Qualquer alterao na estrutura da tabela realizada pelo


comando Alter Table, e possui duas formas de uso, ADD
quando se deseja incluir um novo campo na tabela e Modify
quando se deseja alterar um campo j existente.

Para se remover uma tabela do banco de dados, existe o comando


Drop Table.

Para que uma tabela seja removida, ela no pode ter dados
cadastrados e nem ser uma tabela estrangeira para outra tabela.

Para visualizar a estrutura de uma tabela do banco de dados


utiliza-se o comando Describe, seguido do nome da tabela. Esse
comando mostra na tela os nomes das colunas da tabela e o tipo

140

banco de dados I.indb 140 16/09/11 15:40


Banco de Dados I

de cada uma dessas colunas. Pode-se abreviar o comando usando


simplesmente Desc.

Atividades de autoavaliao
Ao final de cada unidade, voc realizar atividades de autoavaliao. O
gabarito est disponvel no final do livro didtico. Esforce-se para resolver
as atividades sem ajuda do gabarito, pois, assim, voc estar promovendo
(estimulando) a sua aprendizagem.
Nesta atividade voc revisar os comandos de definio de dados por
meio da criao de um banco de dados fsico, a partir de um modelo
conceitual.
Com base no modelo de dados a seguir, escreva os comandos em SQL que
realizam cada uma das tarefas solicitadas.

LEGENDA
Smbolo Significado
PK Chave Primria
NN Not Null
Chave Primria e
PFK
Chave Estrangeira

FK Chave Estrangeira

1. Comando em SQL para a criao da tabela Tipo_Produto.

Unidade 5 141

banco de dados I.indb 141 16/09/11 15:40


Universidade do Sul de Santa Catarina

2. Comando em SQL para criao da tabela Produtos.

3. Comando em SQL para criao da tabela Nota_Fiscal.

4. Altere o campo Descricao_Produto da tabela Produtos para o tipo


Varchar(50).

5. Altere a tabela Nota_Fiscal, adicionando o campo ICMS do tipo Float.

142

banco de dados I.indb 142 16/09/11 15:40


Banco de Dados I

6. Altere a tabela Produtos, adicionando o campo Peso do tipo Float.

7. Altere a tabela Produtos, adicionando o campo Data_Validade do tipo


Date.

8. Escreva o comando em SQL, que apresenta a estrutura da tabela


Produtos.

9. Escreva o comando em SQL que apresenta a estrutura da tabela Nota_


Fiscal.

Unidade 5 143

banco de dados I.indb 143 16/09/11 15:40


Universidade do Sul de Santa Catarina

10. Remova a tabela Itens do modelo de banco de dados.

Saiba mais

Para aprofundar as questes abordadas nesta unidade, voc


poder pesquisar os seguintes livros:

HERNANDEZ, M. J. Aprenda a projetar seu prprio banco


de dados. So Paulo: Pearson Education do Brasil Ltda., 1999.

JESUS, Joo Batista de. ANSI: SQL 89/92. So Paulo: Axcel


Books do Brasil Ltda., 2004.

SETZER, V. W.; SILVA, F. S. da. Banco de dados. So Paulo:


Edgard Blucher, 2005.

SOARES, Walace. MySQL: conceitos e aplicaes. So Paulo:


Erica, 2003.

No que se refere aos tipos de tabelas, leia o recorte do artigo


de Eber Duarte, o qual aborda esse assunto de forma bem
esclarecedora.

144

banco de dados I.indb 144 16/09/11 15:40


Banco de Dados I

Tipos de tabelas para o MySQL


O MySQL possui uma caracterstica um pouco diferente dos outros sistemas
gerenciadores de banco de dados, uma vez que no MySQL possvel escolher
o tipo da tabela no momento de sua criao. O formato de armazenamento
dos dados e alguns recursos do banco de dados so dependentes do tipo de
tabela escolhido.
1. MyISAM: As tabelas MyISAM so armazenadas em 3 arquivos: .FRM, que
armazena a definio da tabela, o arquivo .MYD que contm os dados e o
.MYI, contendo os ndices. Estas tabelas so de grande importncia para a
leitura, uma vez que os seus ndices so armazenados em rvores binrias
balanceadas, o que prov um ganho para o acesso s informaes. O
MyISAM no prov controle de transaes (commit ou rollback) e tambm
no possui integridade referencial, isto , ao incluir uma chave estrangeira
com alguns constraints, essa servir apenas como documentao, mas as
restries no sero respeitadas pelo banco.
2. HEAP: Tabelas HEAP so armazenadas em memria, por isso so
extremamente rpidas, por outro lado, o seu contedo voltil, uma vez
que no so gravadas em disco. Caso haja uma queda do SGBD, os dados
dessas tabelas sero perdidos. Alm disso, necessrio um processo
para dar a carga inicial nos dados quando o servidor de banco iniciar e
sua execuo. A principal aplicao das tabelas HEAP seria para tabelas
que so consultadas com muita frequncia, mas que no sofrem muitas
alteraes (lookup tables).
3. MERGE: As tabelas MERGE so colees de tabelas MyISAM idnticas. Esse
recurso permite a diviso de uma tabela grande em vrias partes menores,
ainda assim permite acesso ao contedo de todas elas, como se fossem
uma nica tabela.
4. BDB: O tipo de tabela BDB vem de BerkeleyDB, e desenvolvido
pela Sleepycat (http://www.sleepycat.com). O BDB prov ao MySQL
um manipulador de tabelas com controle de transao, isto , voc
poder utilizar os comandos COMMIT e ROLLBACK, alm de fornecer a
recuperao automtica de dados, em caso de queda do sistema. O BDB
apresenta um mecanismo de lock em nvel de pgina, onde apenas os
dados de uma mesma pgina ficaro bloqueados durante um perodo de
lock. Alm disso, voc poder ter vrios locks ativos numa nica tabela
BDB, uma vez que a tabela poder ser constituda de vrias pginas.
5. InnoDB: O tipo de tabela padro para o MySQL 5.1 que estamos utilizando
o InnoDB. Ao utilizar o comando show create table nome_da_tabela,
voc poder perceber, no final do comando, que o MySQL colocou
automaticamente o tipo de tabela que foi utilizada para criao.
InnoDB funciona mais rpido que MyISAM, quando h mo
dificaes constantes nos dados, uma vez que esse tipo de armazenagem usa

Unidade 5 145

banco de dados I.indb 145 16/09/11 15:40


Universidade do Sul de Santa Catarina

a proteo por registros (row locking) e no por tabelas (table locking), como o
faz o MyISAM. Contudo, em vrias situaes, innoDB mais lento que MyISAM,
devido ao fato de que innoDB funciona com transaes.
Outro ponto interessante so as restries de chaves estrangeiras (foreign key
constraints) e transaes. Esses recursos esto disponveis apenas no InnoDB.
MyISAM apropriado para tabelas cujos dados no mudam com frequncia. Um
exemplo disso uma tabela de cidades e estados. Como geralmente este tipo de
tabela usado apenas como consulta, no h necessidade do uso de InnoDB.
MyISAM tem a vantagem de ser um arquivo simples, se comparado com o
innodb. Mesmo na opo para criar dentro do contexto, o arquivo fica instvel
em volumes grandes, perfomace de cache sempre importante.
O MyISAM foi implementado a partir do cdigo da tabela ISAM., introduzindo
diversas melhorias, como:
os arquivos de tabela so transportveis entre diferentes sistemas
operacionais;
campos BLOB e TEXT podem ser indexados;
os Arquivos ndices e de dados podem ser armazenados em dispositivos
diferentes (aumento de performance);
algoritmos de distribuio de dados e gerenciamento de ndices
melhorados.
Com relao ao InnoDB, pode-se afirmar que:
rodam sob um engine, desenvolvido pelo Innobase, que acrescenta ao
mysql o suporte a transaes e a constraints de chave estrangeira;
para obter o mximo de performance com tabelas innoDB, necessrio
configurar o arquivo my.conf (ou my.ini no Windows), de acordo com as
caractersticas de hardware do servidor onde o mysql est rodando. Os
Detalhes dessa configurao podem ser obtidos no manual do InnoDB.
para a verso do MySQL, que estamos utilizando esta configurao, j
vem na instalao padro.
A vantagem da utilizao de tipos de tabela que voc poder optar por utilizar
um determinado tipo ou outro, dependendo dos requisitos exigidos pela sua
aplicao. Por exemplo, se a sua aplicao apenas de consulta, voc pode
optar pelo tipo MyISAM, em vez do InnoDB, com isso voc evita o overhead da
transao, obtendo um maior desempenho. importante lembrar que voc
poder utilizar vrios tipos de tabelas em um mesmo banco de dados. Nesse caso,
deve-se tomar cuidado com a utilizao de determinados recursos, por exemplo,
se voc tiver uma transao envolvendo tabelas InnoDB e MyISAM e submeter um
comando ROLLBACK, apenas os comandos executados no InnoDB sero desfeitos,
enquanto que os executados no MyISAM persistiro. A utilizao do tipo de tabela
correto um fator chave para determinar o desempenho da sua aplicao.

Fonte: Adaptado de: DUARTE, Eber M. Trabalhando com os vrios tipos de tabelas do MySQL. Publicado em: 08
nov 2006. Disponvel em: <http://www.criarweb.com/artigos/674.php>. Acesso em: 28 fev 2011.

146

banco de dados I.indb 146 16/09/11 15:40


6
unidade 6

Ferramentas case para apoio ao


projeto de banco de dados

Objetivos de aprendizagem
n Compreender a importncia das ferramentas Case.

n Identificar as vantagens no uso de uma ferramenta Case


como apoio modelagem de dados.

n Conhecer algumas ferramentas Case para modelagem


de dados.

Sees de estudo
Seo 1 Ferramentas Case

Seo 2 Ferramenta Case Studio Toad Data Modeler


Seo 1 Ferramenta MySQL Workbench
Seo 2 Ferramenta ERWin

banco de dados I.indb 147 16/09/11 15:40


Universidade do Sul de Santa Catarina

Para incio de estudo


Um SGBD uma ferramenta relativamente complexa, onde
existem uma srie de mecanismos implementados, bem como
algumas regras a serem seguidas para a sua utilizao, todas
visando a preservar e manter os dados de maneira ntegra.

O projeto de um banco de dados demanda muito mais esforo


do que a sua implementao ou implantao. Isso se deve ao
fato de que se, ao ser projetado o banco de dados, for omitido
ou registrado de forma equivocada alguma informao, esse no
contemplar adequadamente as necessidades do ambiente de
negcio que estiver sendo informatizado, refletindo diretamente
em problemas na sua utilizao.

Para que um projeto de banco de dados seja bem sucedido


imprescindvel que se construa um modelo de dados, ou seja, que
sejam expostos os elementos que fazem parte do banco de dados.

Um modelo de dados relacional composto, principalmente,


pelas tabelas que compem este banco de dados e seus
relacionamentos, e indicam como as informaes se comportam
e como esto inter-relacionadas. Para se construir um modelo de
dados com poucos elementos, devidamente documentado, no
tarefa das mais desafiadoras.

Voc j se imaginou projetando um banco de dados e tendo que


construir um modelo de dados com centenas de tabelas e outras
centenas de relacionamentos, tudo manualmente? Parece ser um
pouco mais complicado, no mesmo? Ainda mais se pensarmos
na manuteno desse modelo durante o seu tempo de vida.

Para que esses modelos possam ser mais facilmente construdos


e mantidos, entram em cena as ferramentas Case, ferramentas
que possuem funcionalidades especficas para a construo de
modelos de dados, e o que ser apresentado nesta unidade.
Bons estudos!

148

banco de dados I.indb 148 16/09/11 15:40


Banco de Dados I

Seo 1 Ferramentas Case


As ferramentas Case (Computer Aided Software Engineering) esto
para a Engenharia de Software assim como o CAD (Computer
Aided Design) est para a Engenharia Civil.

Ambas as ferramentas so programas que auxiliam o analista


na construo do sistema, prevendo, ainda na etapa de
estudos, como ser sua estrutura, quais sero suas entidades e
relacionamentos. Para tanto, so elaborados vrios diagramas que
em conjunto constituem praticamente uma planta do sistema a
ser desenvolvido.

Cabe ressaltar que as ferramentas Case disponveis no mercado


tm abrangncias distintas, implicando no seu grau de utilizao
e envolvimento durante um projeto de um sistema informatizado.
Algumas dessas ferramentas limitam-se ao auxlio no projeto
do banco de dados, gerando apenas uma visualizao grfica do
seu projeto, outras possibilitam tambm a gerao do cdigo
para a implementao do banco de dados, outras so ainda mais
abrangentes e complexas, possibilitando tambm o projeto do
software (telas, relatrios...), gerando, inclusive, o cdigo de
implementao em alguma linguagem de programao.

As ferramentas Case tambm se distinguem pelo nvel de


modelagem e documentao que proporcionam. Algumas
delas se limitam ao projeto nvel lgico, em que so definidas
as tabelas, suas colunas e seus relacionamentos. Outras j so
mais abrangentes, permitindo uma modelagem inicial em
termos conceituais, dando uma viso de negcio ao modelo de
dados, uma vez que o modelo lgico bastante tcnico. Essa
posio auxilia na definio dos elementos do modelo junto ao
usurio final, que geralmente no um especialista na rea de
informtica.

Encontramos ainda no mercado ferramentas que proporcionam


desde uma viso da modelagem de processos, em que so
mapeados os processos de negcio do ambiente que se est
informatizando, at a implementao do banco de dados. Isso
permite um maior controle na obteno das informaes de
quais elementos esto envolvidos no ambiente a informatizar,

Unidade 6 149

banco de dados I.indb 149 16/09/11 15:40


Universidade do Sul de Santa Catarina

reduzindo a possibilidade de erros no mapeamento do mundo real


para o modelo de dados, aumentando, porm, a complexidade da
ferramenta e o volume de trabalho a ser realizado.

Outra caracterstica importante nesse tipo de ferramenta a


possibilidade de se executar o que denominamos engenharia
reversa. Apesar do nome imponente, essa atividade se resume a
realizar o processo inverso da criao de um banco de dados, ou
seja, ao invs de cri-lo a partir do modelo de dados, criado o
modelo de dados a partir de um banco de dados j existente. Isso
se torna interessante quando encontramos uma determinada base
de dados j em operao, que necessita de manuteno, porm,
no existe um modelo de dados documentado sobre aquela base.
Nesse caso, primeiro realizada a engenharia reserva, na qual
a ferramenta Case pesquisa, na base de dados, quais tabelas
existem e traa um mapeamento desses elementos, construindo
um modelo de dados em termos lgico, identificando cada tabela,
suas colunas, chaves primrias e estrangeiras. A partir desse
modelo de dados, podemos ter uma viso completa do banco de
dados que est sendo implementado, assim se pode trabalhar com
mais preciso nas alteraes a serem realizadas.

As ferramentas Case suportam notaes advindas da Tcnica


Estruturada Anlise Estruturada, surgida no final da dcada
de 70 com Tom De Marco. Em seguida atualizadas com Chris
A tcnica estruturada
se fundamenta em trs
Gane, Trish Sarson e Edward Yourdon.
modelos: o Modelo de
Entidade Relacional, o Existem inmeras ferramentas Case disponveis no
Diagrama de Fluxo de mercado. Entre elas podemos citar: Rational Rose,
Dados e o Dicionrio de ERwin, Oracle Designer, Genexus, Clarifu, Dr. Case,
Dados. Para saber mais, Paradigm, PowerDesigner, Arena, Visio, DB Designer,
pesquise a bibliografia: MySQL Workbench, Case Studio (que agora Toad
GANE, Sarso. Anlise Data Modeler etc.
estruturada. So
Paulo: LTC, 1996.
Podemos perceber que no mercado existem ferramentas com
diversos nveis de abrangncia para o mapeamento dos dados,
bem como diversos nveis de detalhamento de um modelo de
dados. Para o estudo desta unidade, sero demonstradas trs
delas: Case Studio (Toad Data Modeler), MySQL Workbench e
Erwin. A inteno fornecer as caractersticas de cada uma para
que no futuro voc possa optar pelo software mais adequado ao

150

banco de dados I.indb 150 16/09/11 15:40


Banco de Dados I

seu perfil. Desse ponto de vista, o estudo mais uma anlise do


que uma avaliao criteriosa.

Para a avaliao, foram escolhidos alguns pr-requisitos, que so:

Pr-requisito Avaliao

Quais os diagramas que a ferramenta gera e qual o nvel de


Diagramas inteligncia de cada um desses diagramas.

Qual o nvel de gerao de scripts e quais os bancos de dados


Scripts de banco de dados compatveis.

Recursos extras Recursos que a ferramenta disponibiliza.

Documentao Quais os documentos gerados.

Quadro 6.1 Pr-requisitos.


Fonte: Elaborao do autor.

A seguir, voc vai conhecer algumas telas dessas ferramentas.

Seo 2 Ferramenta Case Studio - Toad Data Modeler


Essa ferramenta computacional desenvolvida por Charonware,
uma empresa da Repblica Tcheca, possui como caracterstica Na Midiateca da sala
principal o suporte a vrias verses de banco de dados, como: virtual da disciplina, est
MySQL, PostGreSQL, FireBird, Oracle etc. disponvel o instalador
desta ferramenta Case.
Outra alternativa para
instalar acessar o site da
O Case Studio teve seu nome alterado recentemente
empresa Quest Software,
para Toad Data Modeler. Isso porque a empresa Quest
a qual disponibiliza uma
Software comprou a empresa Charonware. verso freeware.

O fato positivo destaca-se por ser uma ferramenta bastante


simples para ser utilizada, exigindo muito pouco recurso do
equipamento para a sua operao. O fato negativo, porm, fica
por conta da ferramenta no possuir uma verso em portugus.

Entre os principais recursos do Toad Data Modeler, temos:

Unidade 6 151

banco de dados I.indb 151 16/09/11 15:40


Universidade do Sul de Santa Catarina

implementao dos principais relacionamentos de forma


automtica;
controle de usurio e segurana, tornando possvel o
controle das operaes disponveis em uma determinada
entidade.
A seguir, a tela inicial da ferramenta Toad Data Modeler:

Figura 6.1 - Tela inicial da ferramenta Toad Data Modeler


Fonte: Quest Software.

O Toad Data Modeler utiliza somente a Anlise Estruturada


(AE), por meio dos diagramas de MER (Modelo de Entidade
Relacional) e o DFD (Diagrama de Fluxo de Dados), de forma
O Modelo de Entidade
Relacional representa as tabelas
interativa e visual.
e o relacionamento entre elas.
Veja, a seguir, uma imagem do ambiente Toad Data Modeler:
O Diagrama de Fluxo de
Dados representa os processos
que podem ser executados em
cada tabela.

Figura 6.2 - Iniciando no Toad Data Modeler


Fonte: Adaptado de Toad Data Modeler.

152

banco de dados I.indb 152 16/09/11 15:40


Banco de Dados I

Ao clicar no boto New Model, conforme seta na figura acima


ser solicitada, para qual ferramenta de banco de dados deve ser
gerado o esquema das entidades. No caso da nossa disciplina, o
MySQL 5.1.

A definio da estrutura das entidades realizada de forma


rpida e fcil.

Na interface de definio da entidade, o usurio


informa o nome da entidade, os nomes das colunas e
os seus respectivos tipos.

Veja na figura a seguir a definio da entidade Alunos:

Figura 6.3 - Interface de definio dos campos da tabela Alunos.


Fonte: Adaptado de MySQL Toad Data Modeler.

A representao grfica da entidade Alunos apresenta o nome da


entidade, seus atributos e a sua chave primria. Observe a seguir:

Figura 6.4 - Representao da chave primria da tabela Alunos no Toad Data Modeler.
Fonte: Elaborao do autor.

Unidade 6 153

banco de dados I.indb 153 16/09/11 15:40


Universidade do Sul de Santa Catarina

Com relao cardinalidade, a ferramenta s permitir a


cardinalidade N para N, que se transforma em uma entidade
associativa.

Figura 6.5 - Tipos de relacionamento do Toad Data Modeler.


Fonte: Adaptado de MySQL Toad Data Modeler.

Na figura a seguir, tem-se o nosso modelo criado na ferramenta


Toad Data Modeler.

Figura 6.6 - Representao do modelo na ferramenta Toad Data Modeler.


Fonte: MySQL Toad Data Modeler.

A criao das entidades e seus relacionamentos no


significa que o banco de dados tenha sido criado
fisicamente. O que se tem na tela uma representao
que poderia ser desenhada em papel ou em qualquer
outro acessrio de documentao, assim como temos
a planta de uma casa, de um prdio, feita por um
engenheiro civil.

A transferncia das regras representadas no diagrama para um


banco de dados real realizada pelos scripts de banco de dados,
que so, na verdade, os comandos de programao para esse
banco, sem a sintaxe do banco de dados escolhido.

154

banco de dados I.indb 154 16/09/11 15:40


Banco de Dados I

No caso do Toad Data Modeler, a ferramenta permite:

a criao de tabelas;
a definio dos nomes de campos e seus respectivos tipos;
a definio das chaves primrias e estrangeiras.
A seguir, tem-se a gerao do script para criao das tabelas
Alunos, Cursos e Matriculas, representadas graficamente nas
figuras anteriores.

3
Figura 6.7 - Script SQL gerado pelo Toad Data Modeler.
Fonte: MySQL Toad Data Modeler.

Uma das grandes vantagens de se utilizar uma ferramenta Case


a produtividade. Observe que atravs do diagrama possvel
gerar todos os comandos necessrios para a criao do modelo no
banco de dados, num clicar de boto.

Unidade 6 155

banco de dados I.indb 155 16/09/11 15:40


Universidade do Sul de Santa Catarina

Seo 3 Ferramenta MySQL Workbench


O MySQL Workbench uma ferramenta visual para design,
desenvolvimento e administrao de base de dados MySQL .
Essa ferramenta originria do DBDesigner .

Foi criada na Sucia por David Axmark, Allan Larsson e


Michael Monty Widenius na dcada de 1980. Em 2008, no Foi
incorporado aos produtos da Sun Microsystems, com a aquisio
por esta da MySQL AB, desenvolvedora do MySQL. E assim
como o banco de dados MySQL, a atual empresa a Oracle.

Para acessar o instalador desta ferramenta Case, voc


poder utilizar o que disponibilizamos na Midiateca
do EVA. Voc pode encontrar a ltima verso no
site especfico do MySQL. Mas lembre-se, s inicie a
instalao, aps ter o MySQL Server 5.1, ou superior,
instalado no seu computador.

Assim, como o MySQL, essa ferramenta livre, suporta


praticamente qualquer plataforma, compatvel com diversas
linguagens de programao, inclusive o Java, tem bom
desempenho e estabilidade, exige poucos recursos de hardware e
de fcil utilizao.

Principais caractersticas:

representao visual de tabelas, views, stored procedure /


funes e chaves estrangeiras;
engenharia reversa;
banco de dados de sincronizao / modelo;
gerao de scripts SQL;
arquitetura expansvel;
exportao como SQL script CREATE;
possui suporte para MySQL 5 ou superior.
Veja, a seguir, a tela de abertura da ferramenta MySQL
Workbench:

156

banco de dados I.indb 156 16/09/11 15:40


Banco de Dados I

Figura 6.8 - Tela inicial da ferramenta MySQL Workbench.


Fonte: MySQL Workbench.

Ao comear a utilizar a ferramenta, temos a opo de utiliz-la


para acesso ao banco de dados SQL Development (configurao
de conexo, execuo de scripts etc.), Data Modeling e Server
Administration, para administrao do banco de dados.

Figura 6.9 - Tela de seleo de qual ferramenta utilizar no MySQL Workbench.


Fonte: MySQL Workbench.

Selecionando a opo Create New EER Model, iniciamos


a criao do modelo. Como exemplo, utilizaremos o mesmo
modelo com as tabelas Alunos, Cursos e Matriculas.

A definio da estrutura das tabelas que compem o esquema


de banco de dados realizada por meio de uma interface
muito amigvel, na qual o usurio vai interagindo direto com

Unidade 6 157

banco de dados I.indb 157 16/09/11 15:40


Universidade do Sul de Santa Catarina

a propriedade da tabela a ser criada. Veja, na figura a seguir,


a representao da estrutura da tabela Alunos, modelada pelo
MySQL Workbench.

2 D um duplo clique
na entidade, para inserir
os atributos
1

Figura 6.10 - Interface de definio dos campos da tabela Alunos no MySQL Workbench.
Fonte: MySQL Workbench.

Com relao cardinalidade (relacionamentos), a ferramenta


trabalha com as opes da figura abaixo. Basta clicar no boto,
depois na entidade de origem e, em seguida, na de destino.
Pronto o MySQL Workbench, criar o relacionamento
automaticamente.

Figura 6.11 - Tipos de relacionamentos do MySQL Workbench.


Fonte: MySQL Workbench.
158

banco de dados I.indb 158 16/09/11 15:40


Banco de Dados I

O diagrama pode ser transformado em um banco de dados fsico,


por meio da gerao do script de banco de dados. A gerao
de scripts no MySQL Workbench possui os recursos mais
comuns e esperados nessa operao, como scripts de tabelas,
chaves primrias, chaves estrangeiras, nomes das colunas e seus
respectivos tipos de dados.

Veja o script gerado pelo MySQL Workbench para criao do


modelo com as tabelas Alunos, Cursos e Matriculas:
Para gerar o script, utilize o
menu File, opo Export.

Figura 6.12 - Script SQL gerado no MySQL Workbench


Fonte: MySQL Workbench.

Seo 4 Ferramenta ERWin


Esta ferramenta Case ficou por muito tempo conhecida como
ERwin/ERX, uma ferramenta leve e de fcil utilizao. Porm,
em 1998 a desenvolvedora do ERwin, a Logic Works, foi
comprada pela Platinum. Na poca, era disponibilizada a verso
2.5, que foi transformada na verso Platinum ERwin ERX
3.52. Verso essa que existiu at 1999, quando a CA (Computer
Associates) adquiriu a Platinum.

Quando a CA adquiriu o ERwin, incluiu o software em um


pacote de ALM (Application Lyfe Cycle Management), chamado
AllFusion. O ERwin passou a se chamar AllFusion ERwin Data
Modeler. Com isso, ganhou uma interface mais arrojada e alguns
recursos muito interessantes.
Unidade 6 159

banco de dados I.indb 159 16/09/11 15:41


Universidade do Sul de Santa Catarina

Como as outras duas ferramentas anteriores, o ERwin segue o


paradigma de modelagem voltada entidade-relacionamento,
com vises lgica e fsica do modelo. O diagrama feito com
recursos de arrastar e soltar, com todas as validaes de chaves
estrangeiras e primrias.

Veja a seguir a interface de integrao do usurio com o modelo a


ser criado:

Figura 6.13 - Interface geral do Erwin.


Fonte: MySQL ERWin.

A ferramenta suporta uma grande quantidade de


bancos de dados, como: DB2, Oracle, Ingres, SQL
Server, Sybase, PROGRESS, Clipper, dBaseIII, dBaseIV,
Access, FoxPro, Paradox.

A ferramenta ERwin disponibiliza uma srie de recursos muito


interessantes como:

complete compare: uma ferramenta que simplesmente


compara a estrutura de banco de dados com o MER,
apontando as diferenas existentes;
o comando de impresso do DER disponibiliza o
redimensionamento da escala do diagrama, permitindo
controlar e prever em quantas pginas ser impresso o
diagrama, sem alterar a posio das entidades;

160

banco de dados I.indb 160 16/09/11 15:41


Banco de Dados I

model sources: um modelo ou um projeto pode ser


constitudo de vrios outros modelos, ou seja, pode
ser criado um vnculo entre arquivos do ERwin e
depois sincroniz-los. Isso til em casos tpicos de
compartilhamento de entidades entre vrios projetos.

O ERwin possui um gerador de relatrios em vrios formatos, de


fcil manipulao e interao pelo usurio. Na imagem a seguir
apresentada a tela de interao com usurio do ERwin, para
criao dos relatrios de documentao:

Figura 6.14 - Interface de documentao do Erwin.


Fonte: MySQL ERWin

Est disponvel na Midiateca da sala virtual da


disciplina, a verso Trial do software Erwin: CA Erwin
Data Modeler Community Edition.

Como apresentado, existem algumas ferramentas computacionais


que podem auxiliar voc no processo de construo do projeto
de um banco de dados. Muitas outras ferramentas poderiam ser
abordadas tambm, porm, o objetivo principal deste estudo
mostrar o quanto uma ferramenta Case pode ser til para um
profissional de banco de dados.

Lembre-se de que a ferramenta apenas um complemento s


suas atividades. Se o processo de modelar e analisar o problema
for realizado de forma errada, a ferramenta far a representao
grfica tambm de forma errada.

Unidade 6 161

banco de dados I.indb 161 16/09/11 15:41


Universidade do Sul de Santa Catarina

Sendo assim, cabe a voc analisar o problema com calma e


utilizar os recursos da ferramenta de forma adequada, gerando
um trabalho em equipe, voc e o computador.

Sntese

Voc estudou nesta unidade que a utilizao de ferramentas


computacionais para facilitar o processo de criao dos modelos
de banco de dados pode ser de fundamental importncia durante
o projeto de um banco de dados. Tamanha importncia se
deve ao fato de que as ferramentas Case agregam a um projeto
algumas caractersticas, como:

maior produtividade na construo do modelo de


dados. Utilizando-se de ferramental especfico para esta
finalidade, h elementos facilitadores para a construo
destes modelos;
mais comodidade na manuteno dos modelos
de dados. Os modelos de dados so alterados mais
facilmente e com mais preciso, uma vez que a
ferramenta no permite certas definies inadequadas
para uma determinada situao;
maior controle de todo o modelo de dados. A
partir do momento em que um projeto de banco de
dados passa a contar com mais de uma dezena de
tabelas inter-relacionadas, torna-se muito difcil dar
manuteno a esse modelo manualmente, ou at mesmo
complement-lo. Com o uso de ferramentas Case o
trabalho fica mais fcil e seguro, uma vez que voc pode
visualizar apenas parte do modelo de dados, no se
atendo a situaes que no lhe interessem no momento;
Gerao automtica do cdigo para a implementao
do projeto do banco de dados.

162

banco de dados I.indb 162 16/09/11 15:41


Banco de Dados I

Atividades de autoavaliao
Ao final de cada unidade, voc realizar atividades de autoavaliao. O
gabarito est disponvel no final do livro didtico. Esforce-se para resolver
as atividades sem ajuda do gabarito, pois, assim, voc estar promovendo
(estimulando) a sua aprendizagem.
A empresa Pare Aqui deseja implantar um sistema para controle dos seus
clientes. Ela possui vrios ptios de estacionamento na cidade, porm, o
controle realizado por meio de anotaes em caderno, e isso tem gerado
uma perda muito grande de recursos financeiros e at mesmo de clientes.
A empresa adota as seguintes regras:

no caderno de clientes so cadastrados: o nome do cliente, a


sua data de nascimento e o seu CPF;
no caderno de veculos so cadastrados: a placa, a cor e o
modelo;
no caderno de estacionamento so cadastrados: a data de
entrada e sada, a hora de entrada e sada e a placa do veculo;
o mesmo cliente pode ter mais de um carro estacionado no
ptio.

Com base nessa descrio, construa o modelo de dados numa ferramenta


Case e perceba como fica mais fcil trabalhar com o apoio de uma
ferramenta especializada para essa finalidade.

Unidade 6 163

banco de dados I.indb 163 16/09/11 15:41


Universidade do Sul de Santa Catarina

164

banco de dados I.indb 164 16/09/11 15:41


Banco de Dados I

Saiba mais

Para aprofundar as questes abordadas nesta unidade, voc


poder pesquisar os seguintes livros:

ABREU, Mauricio.MACHADO, Felipe Nery Rodrigues.


Projeto de Banco de Dados. So Paulo: Erica, 2009.

SETZER, V. W.; SILVA, F. S. da. Banco de dados. So Paulo:


Edgard Blucher, 2005.

SOARES, Walace. MySQL: conceitos e aplicaes. So Paulo:


Erica, 2003.

Unidade 6 165

banco de dados I.indb 165 16/09/11 15:41


banco de dados I.indb 166 16/09/11 15:41
7
unidade 7

Acesso e manipulao de dados

Objetivos de aprendizagem
n Identificar os comandos de manipulao de dados (DML).

n Inserir dados em uma tabela.

n Alterar e remover os dados cadastrados.

Sees de estudo
Seo 1 A estrutura dos comandos de manipulao
de dados

Seo 2 Insero de dados em uma tabela

Seo 3 Alterao dos dados da tabela

Seo 4 Excluso de dados da tabela

banco de dados I.indb 167 16/09/11 15:41


Universidade do Sul de Santa Catarina

Para incio de estudo


Voc j utilizou uma ferramenta de banco de dados para criao
de um modelo de banco de dados, ou seja, j criou um conjunto
de tabelas que atendem a alguma necessidade especfica. Porm,
voc criou as tabelas, dentro das regras de chaves primrias e
estrangeiras, mas no utilizou o modelo criado. E, pensando
bem, de pouca valia seria voc ter um modelo de banco de dados
vazio, sem a possibilidade de cadastrar e manipular os dados.

Por isso, nesta unidade voc conhecer um novo conjunto de


comandos, os comandos de manipulao de dados, chamados
abreviadamente de DML. Por meio desses comandos voc
poder cadastrar, alterar, remover e listar os dados de uma
determinada tabela, ou de vrias tabelas ao mesmo tempo.

Sendo assim, nesta unidade voc aprimorar seu conhecimento


sobre comandos de SQL, que normalmente voc utiliza no seu
dia a dia, realizando relatrios, pesquisas e cadastramento de
dados.

Bons estudos!

Seo 1 A estrutura dos comandos de manipulao


de dados
A linguagem de programao SQL formada por dois grupos
de comandos. Nesta unidade, voc estudar um desses grupos: o
grupo dos comandos DML ou Linguagem de Manipulao de
Dados.

A Linguagem de Manipulao de Dados (DML)


uma linguagem de consulta e atualizao do banco
de dados e compreende os comandos para inserir,
remover e modificar informaes em um banco de
dados.

168

banco de dados I.indb 168 16/09/11 15:41


Banco de Dados I

So quatro comandos bsicos na Linguagem de Manipulao de


Dados:
Select
Insert
Update
Delete

Basicamente, a funo de cada comando :


Select o comando mais usado, pois permite ao usurio
especificar uma pesquisa com a descrio do resultado
desejado;

Insert usado para cadastrar dados em uma tabela.Esta


insero segue as regras definidas na criao da tabela,
como por exemplo: campos do tipo Chave Primria no
podero ter valores repetidos;

Update altera os valores dos campos j cadastrados na


tabela;

Delete o comando que permite remover registros


existentes em uma tabela.

Como voc pode verificar, cada comando possui uma sintaxe


prpria e sobre isso que voc vai estudar a partir de agora.
Quais as caractersticas de cada comando, como escrev-los
e o que esperar como resposta do banco de dados aps a sua
execuo.

Seo 2 Insero de dados em uma tabela


Como voc estudou na seo anterior, o comando Insert permite
a incluso de novas linhas na tabela: uma linha de cada vez ou
vrias linhas resultantes de uma consulta. Para isso, as colunas da
lista de insero podem estar em qualquer ordem.

Caso o valor inserido no atenda o tipo de dado definido para


aquela coluna, a insero no ser realizada. Ser apresentada
uma mensagem indicando qual ou quais campos no atendem

Unidade 7 169

banco de dados I.indb 169 16/09/11 15:41


Universidade do Sul de Santa Catarina

a alguma regra de integridade. Os Campos do tipo not null so


obrigatrios e, dessa forma, a insero s ser realizada caso os
dados forem informados.
No caso de insero de dados em
colunas do tipo Chave Primria, a
Acompanhe o exemplo a seguir:
insero s ser realizada se o valor
a ser inserido no existir para a
mesma coluna.
A estrutura da tabela para cadastramento de produtos :

Caso 1. A insero no precisa seguir a ordem das colunas.

Produto
Codigo_Produto Integer NN (PK)
Descricao_Produto Varchar(30) NN
Preco_Produto Float NN

Figura 7.1 Estrutura da tabela.


Fonte: Elaborao do autor.

A insero no precisa ser na ordem das colunas da


tabela. Voc pode inserir um dado informando primeiro
o Preo, a Descrio e, por ltimo, o Cdigo.

Caso 2. A insero deve obedecer ao tipo de dado da


Coluna.
Na mesma tabela Produtos, se for inserido o cdigo do
produto valendo ABCD, a insero no ser realizada,
pois a coluna do tipo (INT) integer. Portanto, s
aceitar nmeros como dados de cadastro.

Caso 3. A insero de campos not null.

Na tabela de produtos, se voc analisar, perceber que


todos os campos so do tipo not null, pois h um NN
(not null) ao lado de cada campo da tabela. Isso significa
que todos os campos so obrigatrios. Se a insero for
executada sem que todos os campos tenham seu valor
informado, a insero ser cancelada.

Caso 4. Campos do tipo Chave Primria.

O campo Codigo_Produto do tipo chave primria, pois


o campo possui um PK ao lado da definio do tipo.

170

banco de dados I.indb 170 16/09/11 15:41


Banco de Dados I

Assim sendo, caso seja feita uma insero com um valor


que essa coluna j possui, a insero ser cancelada.

Agora que voc j sabe dos cuidados a serem tomados na insero


de dados, hora de aprender a sintaxe deste comando:

Insert into Nome_Da_tabela (Coluna1,Coluna2,...,ColunaN)


Values (Valor1,Valor2,...,ValorN);

Cadastrando os elementos na tabela Produtos apresentada


anteriormente, tem-se:

Codigo_Produto Descricao_Produto Preco_Produto


1 Banana 0.79
2 Uva 2.50
3 Ma 1.80
4 Mamo 2.00
Quadro 7.1 Dados da tabela produtos.
Fonte: Elaborao do autor.

Os campos que no so do tipo numrico devem ficar entre


aspas ( ` ).

Insert into Produtos values (1, Banana, 0.79);

Veja o que acontece ao se executar esse comando:

 
 



Figura 7.2 Cadastramento de produtos na tabela.


Fonte: Elaborao do autor.

Unidade 7 171

banco de dados I.indb 171 16/09/11 15:41


Universidade do Sul de Santa Catarina

Continuando as inseres:

Insert into Produtos values (2,Uva,2.50);


Insert into Produtos values (3,Ma,1.80);
Insert into Produtos values (4,Mamo,2.00);

Como a insero dos dados para todos os campos da tabela, no


h a necessidade de especificar as colunas do Insert. Voc apenas
Adote a definio dos nomes das estaria escrevendo a mais.
colunas somente quando no for
inserir dados para todas as colunas Se voc seguisse a regra geral do Insert, o comando ficaria assim:
da tabela.

Insert into Produtos (Codigo_Produto,Descricao_Produto,Preco_Produto) values (1,Banana,0.79);

Sempre que estiver construindo uma interface de um software


ou qualquer outro programa que necessite incluir um comando
de insero, adote como padro sempre definir os nomes das
colunas. Isto pode minimizar erros futuros devido a alteraes na
base de dados como, por exemplo, a incluso de uma nova coluna
no obrigatria (null), a qual o seu insert no est preparado.

Ao inserir dados informalmente nas tabelas, a sim, para obter


maior produtividade e digitar um nmero mnimo de caracteres,
sugiro que omita a definio dos nomes das colunas nos
comandos de insero. Adote a definio dos nomes das colunas
somente quando no for inserir dados para todas as colunas da
tabela.

Agora, vamos tentar cadastrar um novo produto, porm com o


cdigo de produto valendo 1, que j foi cadastrado anteriormente:

Insert into Produtos (Descricao_Produto, Preco_Produto, Codigo_Produto) Values (Banana, 0.79,1);

Note que, ao inverter a ordem dos campos, foi necessrio escrever


o nome de cada coluna que receber os valores da insero. Por
padro, a insero segue a ordem da criao da tabela, que pode
ser visualizada atravs do comando Describe.

172

banco de dados I.indb 172 16/09/11 15:41


Banco de Dados I

O resultado da execuo do comando ser:

Figura 7.3 Execuo do comando describe.


Fonte: MySQL Server 5.1.

Dessa forma, a insero no ser realizada.

No caso a seguir, vou forar a insero de um campo literal


(varchar) na coluna de preos:

Insert into Produtos Values (10, Banana, OLA);

O resultado da execuo do comando ser:

Figura 7.4 Execuo do comando describe insero campo literal.


Fonte: MySQL Server 5.1.

Sendo assim, a insero no ser realizada.

Para finalizar, vamos tentar inserir alguns campos nulos:

Insert into Produtos (Codigo_Produto, Descricao_


Produto)
Values (100, Batata);

O resultado da execuo do comando ser:

Unidade 7 173

banco de dados I.indb 173 16/09/11 15:41


Universidade do Sul de Santa Catarina

Figura 7.5 Execuo do comando describe insero campo nulo.


Fonte: MySQL Server 5.1.

Sendo assim, a insero no ser realizada.

Agora que voc j sabe como inserir dados em uma tabela, que
tal voc aprender a alterar as informaes cadastradas? Esse ser
seu prximo aprendizado, est preparado?

Seo 3 Alterao dos dados da tabela


O comando Update altera os valores das colunas especificadas em
todas as linhas que satisfaam a uma determinada condio.

As colunas a serem alteradas devem ser declaradas no comando


Update e seguidas dos novos valores para cada coluna,
respectivamente. Somente as colunas a serem modificadas devem
aparecer na lista de colunas da declarao.

Os novos valores de cada coluna devem obedecer ao tipo de


dados da coluna, ou seja, campos do tipo numrico s podem
receber nmeros e campos no numricos devem ter o valor de
atualizao entre aspas simples (), como no comando de insero.

Caso no seja especificada uma condio, a alterao valer para


todas as linhas da tabela.

Mas ento, o que uma condio?

174

banco de dados I.indb 174 16/09/11 15:41


Banco de Dados I

Uma condio qualquer deciso que voc inclua no seu


comando de SQL e que esteja associada a um operador lgico.
Se a condio retornar como verdadeira (true), a execuo do
comando ser realizada.

Conhea ento, os operadores lgicos:

Operador Funo
= Igual
<> Diferente
> Maior
< Menor
>= Maior ou Igual
<= Menor ou Igual
AND E lgico Verdadeiro quando todas as condies so verdadeiras.
OR OU lgico Verdadeiro quando pelo menos uma Condio verdadeira.
No Inverte o valor. Se for verdadeiro, troca para falso, se falso troca para
NOT verdadeiro.

Bem, agora que voc j sabe dos cuidados a serem tomados na


alterao de dados, hora de aprender a sintaxe desse comando:

Update Nome_Da_tabela set Coluna1= valor1,...,ColunaN = valor N


Where (Condio);

Para exercitar esse comando, sero alterados alguns dados da


tabela de produtos que foram inseridos por meio do comando
Insert. As alteraes sero as seguintes:

Codigo_Produto Descricao_Produto Preco_produto


1 Banana 0.79
2 Uva 2.50
3 Ma 1.80
4 Mamo 2.00

Trocar o cdigo para 15 Trocar a descrio Trocar o preo para 2.10


para Melancia
Figura 7.6 Comando insert.
Fonte: Elaborao do autor.

Unidade 7 175

banco de dados I.indb 175 16/09/11 15:41


Universidade do Sul de Santa Catarina

a) Trocando a descrio do produto Banana para Melancia


e o preo para 2.10:

Update Produtos set Descricao_Produto =


Melancia, Preco _Produto = 2.10
Where Codigo_Produto = 1;

ou

Update Produtos set Descricao_Produto =


Melancia, Preco _Produto= 2.10
Where Descricao_Produto = Banana;

b) Trocando o Cdigo do produto Uva para 15:

Update Produtos set Codigo_Produto = 15


Where Codigo_Produto = 2;

ou

Update Produtos set Codigo_Produto = 15


Where Descricao_Produto = Uva;

c) Dar um aumento de 10% em todos os produtos cadastrados:

Update Produtos set Preco_Produto = Preco_Produto * 1.1

Como no foi apresentada uma condio Where, a


atualizao ser realizada em todas as linhas da tabela,
na coluna Preco_Produto.

Veja a tabela com os dados atualizados:

Codigo_Produto Descricao_Produto Preco_produto


1 Melancia 2.31
15 Uva 2.75
3 Ma 1.98
4 Mamo 2.20
Quadro 7.2 Dados da tabela produtos.
Fonte: Elaborao do autor.

176

banco de dados I.indb 176 16/09/11 15:41


Banco de Dados I

Seo 4 Excluso de dados da tabela


O comando Delete exclui as linhas que satisfazem a uma
determinada condio na tabela especificada.

Se a condio estiver ausente, o efeito a excluso de todas


as linhas da tabela. O resultado vai ser uma tabela vlida,
porm, vazia.

Caso a tabela possua alguma coluna que seja chave estrangeira


para outra tabela, e os valores dela esto sendo usados como
referncia, a excluso no poder ser realizada, pois a excluso
resultar em campos nulos na tabela referenciada.

Observe a representao a seguir:

Figura 7.7 Excluso de dados na tabela.


Fonte: Elaborao do autor.

A tabela ItensDaNota uma entidade associativa, pois para que


ela possua dados cadastrados necessrio que existam dados na de
produtos e na de nota_fiscal. Se for solicitado um comando para
excluir os dados da tabela nota_fiscal, a referncia a ela, na tabela
ItensDaNota, ficar com qual valor?

Caso voc tenha imaginado que a tabela ItensDaNota ficaria


inalterada, isso no pode ocorrer, pois ela estaria referenciando
um valor que no existe mais na tabela de origem.

Unidade 7 177

banco de dados I.indb 177 16/09/11 15:41


Universidade do Sul de Santa Catarina

Por outro lado, a tabela no pode ficar com esses campos nulos
(vazios), pois so do tipo not null.

Assim sendo, o comando SQL que exclui os dados da tabela


Nota_Fiscal ser cancelado, de forma que a excluso no seja
realizada.

Com certeza, agora voc deve estar se perguntando,


como excluir esses dados?

Bem, no caso de excluso de dados em uma tabela que tem dados


compartilhados, deve-se primeiro excluir os que esto nas tabelas
que fazem a associao, para depois excluir na tabela principal.

Por exemplo, no caso descrito anteriormente, que utilizava


a tabela Nota_Fiscal e ItensDaNota, primeiro devem ser
excludos os dados da tabela ItensDaNota, para depois exclu-los
na Nota_Fiscal.

medida que voc avanar nos exerccios de SQL, esses


cuidados ficaro mais claros, por enquanto, so apenas lembretes
para a parte prtica dos comandos.

Bem, agora s falta voc conhecer a sintaxe do comando de


excluso de dados:

Delete from Nome_Da_Tabela where Condio;

Antes de voc utilizar o comando, conhea quais so os dados a


serem excludos:

Tarefa Comando em SQL


Remover os produtos que custam menos de Delete from Produtos where Preco_
dois (2) reais produto<2

Delete from Produtos where Descricao_


Remover o produto de descrio Melancia produto = Melancia

Delete from Produtos where Codigo_


Remover o produto de cdigo 3 Produto=3

178

banco de dados I.indb 178 16/09/11 15:41


Banco de Dados I

Caso a inteno seja excluir todos os dados da tabela, basta


executar o comando:

Delete from Nome_Da_Tabela;

importante que voc atente para as condies que


envolvem tipos que no so numricos.
Imagine que na tabela de produtos tenha-se um
produto com a descrio PRA. A palavra PERA
diferente de Pera que diferente de PRA. Ou seja,
os dados alfanumricos so case sensitive, em
que maisculo diferente de minsculo, alm da
acentuao.
Neste caso, ao usar o comando a seguir, esse no
exclura o registro, pois PERA diferente de PRA:

Delete from Produtos where Descricao_Produto = PERA

Para solucionar esse problema, voc pode utilizar a funo de


converso para maiscula, que se chama Upper, e possui a
seguinte sintaxe:
Upper (Coluna);

Essa funo retorna o valor literal que est na coluna especificada


com todos os caracteres em maisculo.

Veja:
Nome Upper(Nome)
fulano FULANO
Fulano FULANO
FULANO FULANO
fulaNO FULANO

Unidade 7 179

banco de dados I.indb 179 16/09/11 15:41


Universidade do Sul de Santa Catarina

Para transformar em minsculo, utilize a funo Lower,


que possui a mesma sintaxe:

Lower (coluna);

Aplicando essa funo ao comando que exclui o produto PERA,


o comando ficaria assim:

Delete from Produtos where Upper(Descricao_Produto) = Upper(pra);

Sntese

muito importante voc se lembrar que esses comandos vistos


anteriormente podem ser executados em qualquer ferramenta de
banco de dados, pois seguem um padro mundial chamado de
SQL ANSI.

Cada comando possui uma caracterstica prpria e medida que


voc for utilizando-os, mais fcil ser a sua compreenso.

No comando de Insert, que responsvel pelo cadastramento


dos dados nas tabelas, voc sempre deve tomar o cuidado de
respeitar as regras de criao da tabela, como:

campos obrigatrios not null;

chaves primrias no podem ter o valor repetido;

chaves estrangeiras valores que existem em outra


tabela;

tipos de dados de cada coluna tipos que no so


numricos devem ter seu valor de cadastro entre aspas
simples. Campos numricos s aceitam nmeros.

180

banco de dados I.indb 180 16/09/11 15:41


Banco de Dados I

Lembre-se de que qualquer desrespeito a pelo menos uma destas


regras a insero no ser realizada.

No comando Insert, voc s precisa especificar a ordem das


colunas de insero quando no forem informados valores para
todos os campos da tabela.

INSERT em Todos os Campos INSERT em Alguns Campos

Insert into Tabela values (v1,v2,...,vn); Insert into Tabela (c1,c2,..cn) values (v1,v2,,vn);

Para alterao dos dados da tabela, voc deve usar o comando


Update. Esse deve estar associado a uma condio, caso
contrrio, todas as linhas da tabela sero alteradas.

UPDATE com Condio UPDATE sem Condio


Altera somente as linhas da tabela que atendam condio. altera todas as linhas da tabela. (CUIDADO !!!)

Update Tabela set Campo1 = Valor 1 where Condio; Update Tabela set Campo1 = Valor 1;

A excluso de dados da tabela deve ser realizada por meio do


comando Delete. Esse comando tambm est associado a uma
condio, porm, quando se deseja excluir todos os dados da
tabela, a condio no precisa ser informada.

DELETE com Condio DELETE sem Condio


Remove somente as linhas da tabela que atendam condio. Remove todas as linhas da tabela.

DELETE from Tabela where Condio; DELETE from Tabela;

Quando uma tabela excluda, a estrutura da tabela contnua


existindo, porm, ela estar vazia, sem registros. Quando se
deseja remover uma tabela do banco de dados, usa-se o comando
Drop Table.

Excluir dados da Tabela Remover a Tabela

DELETE from Tabela ; DROP Table Tabela;

Unidade 7 181

banco de dados I.indb 181 16/09/11 15:41


Universidade do Sul de Santa Catarina

Para encerrar esta sntese, voc deve tomar o cuidado na hora


de excluir os dados de uma tabela, principalmente se ela possuir
campos que so chaves estrangeiras para outras tabelas, pois se
isso for verdadeiro, a excluso no ser realizada.

Com relao ao Delete, voc estar removendo os dados


da tabela, e caso a excluso tenha sido realizada de forma
equivocada, ser necessrio recadastr-los um a um, por isso o
mximo de cuidado na hora de usar este comando.

Atividades de autoavaliao

Ao final de cada unidade, voc realizar atividades de autoavaliao. O


gabarito est disponvel no final do livro didtico. Esforce-se para resolver
as atividades sem ajuda do gabarito, pois, assim, voc estar promovendo
(estimulando) a sua aprendizagem.

1. Com base no modelo de banco de dados abaixo, escreva os comandos


em SQL que executem as seguintes tarefas:

Produto
Codigo_Produto Integer NN (PK)
Descricao_Produto Varchar(30) NN
Preco_Produto Float NN

A) Cadastre os seguintes produtos:

Questo Codigo_Produto Descricao_Produto Preco_produto


A1 100 Caneta Azul 1.00
A2 200 Borracha 0.80
A3 300 Caderno de Desenho 2.20
A4 500 Rgua 0.25

A1.

182

banco de dados I.indb 182 16/09/11 15:41


Banco de Dados I

A2.

A3.

A4.

B) Altere os dados dos seguintes produtos:

B1. Altere o preo da Caneta Azul para 2.50.

B2. Altere o cdigo da Rgua para 400.

Unidade 7 183

banco de dados I.indb 183 16/09/11 15:41


Universidade do Sul de Santa Catarina

B3. Altere a descrio do Caderno de Desenho para Caderno de 12


Matrias.

C) Exclua os seguintes produtos:


C1. Remova os produtos que possuem preo inferior a 1.00.

C2. Remova os produtos que possuem o codigo = 100.

C3. Exclua todos os produtos cadastrados na tabela de Produtos.

Saiba mais

Para aprofundar as questes abordadas nesta unidade, voc


poder pesquisar os seguintes livros:

HERNANDEZ, M. J. Aprenda a projetar seu prprio banco de


dados. So Paulo: Pearson Education do Brasil Ltda., 1999.

JESUS, Joo Batista de. ANSI: SQL 89/92. So Paulo: Axcel


Books do Brasil Ltda., 2004.

SETZER, V. W.; SILVA, F. S. da. Banco de dados. So Paulo:


Edgard Blucher, 2005.

SOARES, Walace. MySQL: conceitos e aplicaes. So Paulo:


184 Erica, 2003.

banco de dados I.indb 184 16/09/11 15:41


8
unidade 8

Recuperao de informaes do
banco de dados

Objetivos de aprendizagem
n Selecionar dados em SQL usando a DML.

n Compreender as funes agregadas em SQL.

n Gerar consultas com agrupamento em SQL.

Sees de estudo
Seo 1 A Estrutura do Comando Select

Seo 2 Ordenando e agrupando os dados

Seo 3 As funes de agregao

Seo 4 Condies especiais

banco de dados I.indb 185 16/09/11 15:41


Universidade do Sul de Santa Catarina

Para incio de estudo


Para criar e trabalhar com tabelas de um banco de dados
necessrio utilizar um conjunto de comandos da linguagem de
definio de dados (create table) e de manipulao deles, que
permitia o cadastramento, a alterao e a excluso dos dados
(respectivamente, Insert, Update e Delete).

Como podemos perceber, a criao do banco de dados uma


tarefa complexa. Transformar os processos executados por
pessoas em um conjunto de dados por meio de tabelas, no
tarefa uma simples, quanto possa parecer. Cada processo possui
um conjunto de possibilidades e todas elas devem ser amplamente
contempladas por meio da sua soluo. Por isso, a criao do
banco de dados dever ser feita analisando-se todo o escopo do
problema.

Uma vez terminada a tarefa e atendidas as necessidades do


problema a ser solucionado, esse deixa de ser alterado e torna-se
um Modelo Esttico, pronto para ser utilizado.

Deve-se, ao mximo, evitar alteraes em um modelo de banco


de dados, pois isso pode impossibilitar a sua utilizao. Mas caso
as alteraes sejam necessrias, devero ser realizadas para o
perfeito funcionamento do sistema criado.

Para exemplificar, imagine que voc esteja projetando


um automvel, o qual deve atender a um conjunto
de requisitos funcionais ou expectativas de seus
compradores. Depois de estud-lo e ele contemplar
as necessidades de mercado, voc o coloca em
produo. E na linha de produo, na qual so
colocados os bancos, vidros, acessrios etc., esto
todos trabalhando a pleno vapor.
Mas o que aconteceria se voc chegasse a concluso
que algumas peas do veculo devessem ser
reprojetadas? Com certeza, o caos, a produo pararia,
atrasos aconteceriam e com certeza o desagrado dos
clientes que aguardam o veculo.

186

banco de dados I.indb 186 16/09/11 15:41


Banco de Dados I

Um banco de dados possui os mesmos problemas. Aps a sua


criao e validao, deve-se tomar o cuidado de no alterar a
sua estrutura, pois quem o utiliza pode ter srios problemas em
consequncia dessas modificaes.

Aps a criao do banco e o cadastramento dos dados comeam


os processos de utilizao dos dados, que so os processos de
consulta base deles. O principal objetivo do sistema de banco
de dados permitir ao usurio uma consulta rpida e eficiente.
Dessa forma, o processo de consulta a tarefa que mais se repete
e aquela em que o usurio final mais interage, gerando a maior
expectativa junto ao usurio.

Quando voc acessa sua conta bancria por meio da


internet, voc no est preocupado em saber como
aquele banco de dados foi modelado. Mas sim se as
suas consultas so rpidas e se representam fielmente
a verdade dos dados. Essa consulta se repetir para
outras tarefas que voc venha a realizar junto ao
sistema.

E com este escopo de um sistema de banco de dados que voc


passar a interagir a partir desta unidade. Chegou a hora de voc
comear a interagir com o comando que ser, com certeza, o mais
executado nos seus projetos: o comando Select.

Seo 1 A estrutura do comando Select


Selecionar os dados pode parecer uma tarefa complexa. Mas com
certeza muito mais simples do que voc possa imaginar.

Para facilitar sua compreenso sobre o que faz um comando de


seleo, ser usado como recurso, a tabela.

Produto
Codigo_Produto Integer NN (PK)
Descricao_Produto Varchar(30) NN
Preco_Produto Float NN

Figura 8.1 Tabela Produtos.

Unidade 8 187

banco de dados I.indb 187 16/09/11 15:41


Universidade do Sul de Santa Catarina

Como a tabela a juno entre linhas e colunas, necessrio


ter-se duas informaes para se realizar uma consulta aos seus
dados: quais linhas e colunas mostrar e quais linhas devem ser
mostradas.

A definio das linhas a serem mostradas resultado direto


de uma condio que especifica os dados que podem ser
apresentados.

Ento, como definir quais as colunas que devem ser


mostradas de uma tabela?

muito simples! Voc dever especificar o nome das colunas que


deseja listar. Se desejar listar todas as colunas, voc no precisa
escrever o nome de todas, mas represent-las por um asterisco (*).

A seleo dos dados que sero mostrados realizada pelo


comando Select, que retorna as linhas ou registros de uma ou
mais tabelas que atendam a uma determinada condio. Como
nos comandos Update e Delete, uma condio representada
pela clusula Where. Se essa clusula for omitida, todas as linhas
da tabela sero listadas.

Veja a figura a seguir representando o que foi descrito


anteriormente:

rea de atuao do SELECT (colunas)

Coluna 1 Coluna 2 Coluna N

rea de atuao da clusula


...
WHERE (linhas)

Figura 8.2 rea de atuao dos comandos Select e Where.

A clusula Select especifica quais as colunas que sero


apresentadas no resultado da seleo dos dados. J a clusula
Where especifica quais as linhas da tabela que sero apresentadas
no final da execuo do comando.

188

banco de dados I.indb 188 16/09/11 15:41


Banco de Dados I

Um comando Select determina quais colunas e linhas


de uma tabela formam um subconjunto de dados
desejado.

A sintaxe do comando Select :

Select Coluna1,Coluna2,...,ColunaN
From Nome_Tabela [ ou tabelas ]
Where condio
Group By expresso
Having condio
Order By expresso;

Como voc pode ver, o comando Select bem amplo. Algumas


clusulas s sero usadas quando realmente necessrio,
diminuindo sensivelmente o tamanho do comando a ser escrito.

Quais os termos bsicos do comando Select?

Acompanhe, a seguir, o papel de cada termo existente nesta


estrutura.

Voc vai comear a ter contato com a estrutura bsica do


comando Select que :

Select (Coluna1, Coluna2,...,


ColunaN)
From Nome_Tabela

a) Colunas do Select
A expresso coluna1,coluna2...colunaN representa as colunas
que devem ser listadas pelo comando Select. Caso voc deseje
selecionar todos os campos, pode simplesmente colocar um
asterisco no lugar do nome das colunas.

Unidade 8 189

banco de dados I.indb 189 16/09/11 15:41


Universidade do Sul de Santa Catarina

Com base na tabela Produtos, pode-se realizar algumas


consultas, tais com:

Tarefa Comando em SQL


... ...

... ...

Select Preco_Produto, Codigo_


Listar os Preos, Cdigos e Descries Produto, Descricao_Produto

... ...

Quadro 8.1 Tarefas e respectivos comandos


Fonte: Elaborao do autor.

b) A clusula From
Esta clusula especifica uma ou mais tabelas de origem para o
Select. Se mltiplas tabelas de origem forem especificadas, o
resultado ser, conceitualmente, o conjunto das linhas de todas as
tabelas envolvidas na seleo, que se chama produto cartesiano.

Por exemplo, com base na tabela Produtos, as mesmas consultas


anteriores seriam escritas especificando a tabela de origem da
consulta, dessa forma:

190

banco de dados I.indb 190 16/09/11 15:41


Banco de Dados I

Tarefa Comando em SQL

Listar os cdigos dos produtos. Select Codigo_Produto from Produtos

Listar os cdigos e as descries. Select Codigo_Produto,Descricao_Produto from Produtos

Select Preco_Produto, Codigo_Produto,Descricao_Produto from


Listar os preos, cdigos e descries. Produtos
Select Codigo_Produto,Descricao_Produto,Preco_Produto from
Listar todos os campos. Produtos
ou simplesmente Select * from Produtos

Quadro 8.2 - Tarefas e respectivos comandos acerca da tabela Produtos


Fonte: Elaborao do autor.

A partir de agora, conhea como funciona a clusula Where do


comando Select.

c) A clusula Where
Esta clusula responsvel por restringir quais as linhas das
tabelas sero apresentadas. A clusula Where possui a forma
geral:

Where expresso_booleana;
A expresso booleana
pode ser qualquer
expresso que retorne um
S para fixar, os operadores lgicos so: valor booleano (verdadeiro
ou falso).

Operadores Lgicos Significado


= Igual
> Maior
< Menor
<> Diferente
>= Maior ou Igual
<= Menor ou Igual
AND E Lgico
OR OU Lgico

Quadro 8.3 Operadores lgicos


Fonte: Elaborao do autor.

Unidade 8 191

banco de dados I.indb 191 16/09/11 15:41


Universidade do Sul de Santa Catarina

Para exemplificar melhor a estrutura estudada, utilize a tabela de


Produtos com os seguintes dados:

Codigo_Produto Descricao_Produto Preco_Produto


1 Banana 1.00
2 Ma 2.80
3 Uva 3.25
4 Pra 1.00
5 Maracuj 2.00
6 Mamo 2.55
7 Goiaba 2.00
8 Laranja 3.25
9 Limo 0.85
10 Melancia 2.55

Quadro 8.4 Tabela Produtos dados


Fonte: Elaborao do autor.

a) Para listar todos os Produtos, utilize o comando que


listar a tabela de modo idntico tabela anterior.

Select * from Produtos;

Resultado: esse comando listar a tabela de modo


idntico tabela anterior.

Lembre-se de que a clusula Where atua nas linhas


da tabela, realizando um filtro. Como no comando
acima no foi especificada a clusula Where, no haver
restrio de linhas. A clusula Select especifica quais
colunas sero apresentadas. No caso acima, o smbolo
asterisco (*) representa todas as colunas da tabela.

b) Para listar os produtos com preo inferior a 3.00:

Select * from Produtos where preco_produto < 3.00;

Resultado:

192

banco de dados I.indb 192 16/09/11 15:41


Banco de Dados I

Codigo_Produto Descricao_Produto Preco_Produto


1 Banana 1.00
2 Ma 2.80
4 Pra 1.00
5 Maracuj 2.00
6 Mamo 2.55
7 Goiaba 2.00
9 Limo 0.85
10 Melancia 2.55

Quadro 8.5 Tabela Produtos resultado


Fonte: Elaborao do autor.

c) Para listar o Cdigo e a Descrio dos produtos com


preo de 1.00:

Select Codigo_Produto, Descricao_Produto from Produtos where Preco_Produto = 1.00;

Resultado:

Codigo_Produto Descricao_Produto
1 Banana
4 Pra

d) Para listar os dados do Produto de cdigo 5:

Select * from Produtos where Codigo_Produto = 5;

Resultado:

Codigo_Produto Descricao_Produto Preco


5 Maracuj 2.00

Unidade 8 193

banco de dados I.indb 193 16/09/11 15:41


Universidade do Sul de Santa Catarina

e) Para listar os dados de todos os Produtos com preo =


1.00 e Cdigo = 10:

Select * from Produtos where Preco_Produto=1 AND Codigo_Produto=10;;

Resultado:

Codigo_Produto Descricao_Produto Preco_Produto

Observe que nenhuma linha da tabela atende a essa


condio.

f) Listar a descrio e os preos dos produtos:

Select Descricao_Produto, Preco_Produto from Produtos;

Resultado:

Descricao_Produto Preco_Produto
Banana 1.00
Ma 2.80
Uva 3.25
Pra 1.00
Maracuj 2.00
Mamo 2.55
Goiaba 2.00
Laranja 3.25
Limo 0.85
Melancia 2.55

Quadro 8.6 Tabela Produtos resultado


Fonte: Elaborao do autor.

O comando Select possui vrias atribuies e possibilita


inmeras combinaes. Assim, tem-se a possibilidade de
construir comandos que extraiam exatamente os dados
desejados, seguindo as suas necessidades.

194

banco de dados I.indb 194 16/09/11 15:41


Banco de Dados I

Seo 2 Ordenando e agrupando os dados


Voc aprendeu at agora sobre como acessar e listar os dados
da tabela. Nessa seo, voc aprender como melhorar a
apresentao dos dados que so listados, ordenando-os e
agrupando-os.

Para isso, ser necessrio que voc conhea mais duas clusulas
do comando Select, as clusulas Order By e Group By.

a) A clusula Order By
A clusula Order By serve para ordenar os dados que sero
listados. A ordem de apresentao pode ser crescente (ASC) ou
decrescente (DESC).

Se no for informada a ordem de apresentao, ela ser


por padro crescente (ASC).

A sintaxe do comando :

Order By coluna1,coluna2,...,colunaN ASC ou DESC;

Um item do Order By pode ser o nome ou o nmero da coluna


na estrutura da tabela.

Observe a tabela, aps a execuo do comando:

Select * from Produtos;

Unidade 8 195

banco de dados I.indb 195 16/09/11 15:41


Universidade do Sul de Santa Catarina

Codigo_Produto Descricao_Produto Preco_Produto


1 Banana 1.00
2 Ma 2.80
3 Uva 3.25
4 Pra 1.00
5 Maracuj 2.00
6 Mamo 2.55
7 Goiaba 2.00
8 Laranja 3.25
9 Limo 0.85
10 Melancia 2.55

Quadro 8.7 Tabela Produtos


Fonte: Elaborao do autor.

Usando o Order By, a tabela ser listada em ordem decrescente


de Cdigo:

Select * from Produtos Order By Codigo_Produto DESC;

Resultado:

Codigo_Produto Descricao_Produto Preco_Produto


10 Melancia 2.55
9 Limo 0.85
8 Laranja 3.25
7 Goiaba 2.00
6 Mamo 2.55
5 Maracuj 2.00
4 Pra 1.00
3 Uva 3.25
2 Ma 2.80
1 Banana 1.00

Quadro 8.8 Tabela Produtos resultado usando o Order By


Fonte: Elaborao do autor.

Veja outros exemplos do uso do Order By para mesma tabela:

Listar Codigo e Descriao dos produtos com preo


menor que 3.00, em ordem crescente de Descriao:

196

banco de dados I.indb 196 16/09/11 15:41


Banco de Dados I

Select Codigo_Produto,Descricao_Produto from Produtos where Preco_


Produto < 3.00 Order By Descricao_Produto;

Resultado:
Codigo_Produto Descricao_Produto
1 Banana
7 Goiaba
9 Limo
2 Ma
6 Mamo
5 Maracuj
10 Melancia
4 Pra
Quadro 8.9 Tabela Produtos.
Fonte: Elaborao do autor.
Listar os Produtos com cdigo inferior a 5 e ordenados
crescentemente por Preo:

Select * from Produtos where Codigo_Produto<5 Order By Preco_Produto;

Resultado:
Codigo_Produto Descricao_Produto Preco_Produto
1 Banana 1.00
4 Pra 1.00
2 Ma 2.80
3 Uva 3.25
Quadro 8.10 Tabela Produtos
Fonte: Elaborao do autor.

Listar os produtos ordenados por preo e descrio:


Select * from Produtos Order By Preco_Produto,Descricao_Produto;

Unidade 8 197

banco de dados I.indb 197 16/09/11 15:41


Universidade do Sul de Santa Catarina

Resultado:

Codigo_Produto Descricao_Produto Preco_Produto


9 Limo 0.85
1 Banana 1.00
4 Pra 1.00
7 Goiaba 2.00
5 Maracuj 2.00
6 Mamo 2.55
10 Melancia 2.55
2 Ma 2.80
8 Laranja 3.25
3 Uva 3.25
Quadro 8.11 Tabela Produtos.
Fonte: Elaborao do autor.

Observe que nas linhas em que os preos so os mesmos, a


ordenao foi feita tambm pela descrio do produto em ordem
crescente.

b) A clusula Group By
A clusula Group By condensa, em uma nica linha, todas as
linhas selecionadas que compartilham os mesmos valores para as
colunas agrupadas.

Um item do Group By pode ser o nome de uma coluna ou o


nmero da coluna na estrutura da tabela.

A sintaxe do comando :

Group By coluna1, coluna2, ..., colunaN;

Para exemplificar essa clusula Group By, vamos utilizar o


seguinte modelo de banco de dados:

198

banco de dados I.indb 198 16/09/11 15:41


Banco de Dados I

Figura 8.3 Modelo de banco de dados - clusula Group By


Fonte: Elaborao do autor.

Listando os dados de cada tabela, tem-se:

1. Select * from Regiao;

Resultado:

Codigo_Regiao Nome_Regiao
1 Sul
2 Norte
3 Centro-oeste
4 Nordeste
Quadro 8.12 Tabela Produtos
Fonte: Elaborao do autor.

2. Select * from Produtor:

Resultado:

Codigo_Produtor Nome_Produtor
1 Produtor 001
2 Produtor 002
3 Produtor 003
Quadro 8.13 Tabela Produtos
Fonte: Elaborao do autor.

3. Select * from Produtos;

Unidade 8 199

banco de dados I.indb 199 16/09/11 15:41


Universidade do Sul de Santa Catarina

Resultado:

Codigo_Produto Codigo_Regiao Codigor_Produtor Preco_Produto Descricao_Produto


11 1 1 1.44 Produto A
12 2 2 1.55 Produto B
13 1 1 2.99 Produto C
14 3 3 1.45 Produto D
15 1 1 1.99 Produto E
16 4 2 1.59 Produto F
17 2 1 1.55 Produto G
Quadro 8.14 Tabela Produtos
Fonte: Elaborao do autor.

Lembre-se de que a tabela de produtos faz referncia tabela


de produtor e tabela de Regiao por meio das colunas Codigo_
Produtor e Codigo_Regiao, respectivamente. Dessa forma,
pode-se afirmar que o produto de Cdigo 11, cuja descrio
Produto A, produzido pelo Produtor 001, da regio Sul, ao
preo de 1.44.

Sendo assim, a tabela de produtos possui os seguintes dados, se


vista pelas chaves estrangeiras:

Codigo_Produto Codigo_Regiao Codigor_Produtor Preco_Produto Descricao_Produto


11 Sul Produtor 001 1.44 Produto A
12 Norte Produtor 002 1.55 Produto B
13 Sul Produtor 001 2.99 Produto C
14 Centro-oeste Produtor 003 1.45 Produto D
15 Sul Produtor 001 1.99 Produto E
16 Nordeste Produtor 002 1.59 Produto F
17 Norte Produtor 001 1.55 Produto G
Quadro 8.15 Tabela Produtos.
Fonte: Elaborao do autor.

Com base nessa tabela de Produtos, sero executados alguns


comandos, utilizando a clusula Group By, veja:

Listar todos os produtores por regio:

Select Codigo_Produtor, Codigo_Regiao from Produtos


Group By Codigo_Regiao;

Resultado:

200

banco de dados I.indb 200 16/09/11 15:41


Banco de Dados I

Codigo_Produtor Codigo_Regiao
1 1
2 2
3 3
2 4
Quadro 8.16 Tabela Produtos
Fonte: Elaborao do autor.

Listar os produtos por produtor:

Select Descricao_Produto, Codigo_Produtor from Produtos


Group By Codigo_Produtor;

Resultado:

Descricao_Produto Codigo_Produtor
Produto A 1
Produto B 2
Produto D 3
Quadro 8.17 Tabela Produtos
Fonte: Elaborao do autor.

Note que ao fazer o agrupamento, os itens que possuem o mesmo


valor no so reapresentados.

Seo 3 - As funes de agregao


Uma funo de agregao retorna um nico resultado para vrias
linhas de entrada de uma tabela. Por exemplo: existem funes de
agregao para contar, somar, calcular a mdia, calcular o valor
mximo e o valor mnimo para um conjunto de linhas.

Uma funo de agregao recebe os dados de vrias


linhas de uma tabela, porm, um nico valor de
retorno apresentado.

As principais funes de agregao so:

Unidade 8 201

banco de dados I.indb 201 16/09/11 15:41


Universidade do Sul de Santa Catarina

Funo O que faz


Count Retorna o nmero de ocorrncias da coluna da tabela;
Sum Retorna a soma dos valores da coluna da tabela;
Avg Retorna a mdia de valores da coluna da tabela;
Max Retorna o maior valor da coluna da tabela;
Min Retorna o menor valor da coluna da tabela;
Distinct No permite que valores iguais de uma coluna sejam apresentados na consulta.
Quadro 8.18 Principais funes de agregao
Fonte: Elaborao do autor.

A funo de agregao sempre est associada a uma coluna da


tabela, dessa forma a sintaxe do comando :

Funo_de_Agregao (Coluna)

Veja alguns exemplos de uso das funes de Agregao:

Selecionar o maior e, o menor preo, a mdia


deles, o total de preos e a quantidade de produtos
cadastrados.

select
max(preco_produto) as maior,
min(preco_produto) as menor,
avg(preco_produto) as media,
count(codigo_produto)as Qtde,
sum(preco_produto) as somatrio
from produtos;

Resultado:

maior menor media Qtde somatrio


2.99 1.44 1.7943 7 12.56
Quadro 8.19 Tabela Produtos
Fonte: Elaborao do autor.

Note que acrescentamos ao lado de cada funo um nome


para apresentao da coluna. Para essa substituio, usamos
o comando AS. Por exemplo: a funo max(preo_produto)
ser mostrada como sendo a coluna maior, mas em vez de sair

202

banco de dados I.indb 202 16/09/11 15:41


Banco de Dados I

no nome da coluna max(preo_produto), ser substitudo


por maior. Essa notao foi utilizada para esclarecer o que
representa cada resultado da funo executada.

Acompanhe, a seguir, outros exemplos!

1. Listar a quantidade de produtos com preo de 2,99:

Select count(codigo_produto) as Quantidade from


produtos where preco_produto = 2,99;

2. Listar a soma dos preos de produtos com cdigo


maior que 13:

Select sum(preco_produto) as Soma from produtos where


codigo_produto = 13;

3. Listar todos os preos de produtos sem que os


preos iguais sejam repetidos:

Select distinct(preco_produto) as Preo from produtos;

Veja o resultado do comando acima:

Preo
1.44
1.45
1.55
1.59
1.99
2.99

Unidade 8 203

banco de dados I.indb 203 16/09/11 15:41


Universidade do Sul de Santa Catarina

Seo 4 Condies especiais


Para restringir as linhas de resultado Select, usa-se a clusula
Where. Entretanto, h casos em que no poder ser desta forma.
Como apresentado no exemplo anterior, para selecionar o maior
preo da tabela de Produtos foi usado o comando:

Select max(preco_produto) From produtos;

Mas se fosse solicitado a voc para localizar o produto com maior


preo? Talvez, de incio voc imaginaria algo como:

Select descricao_produto
From produtos
Where preco_produto = max(preco_produto);

Porm, isso no pode ser feito porque a funo de agregao


max no pode ser usada na clusula Where. A clusula Where
determina as linhas que vo passar para o estgio de agregao
e, portanto, precisa ser avaliada antes das funes de agregao
serem computadas.

A consulta pode ser reformulada para obter o resultado


pretendido, sendo feito por meio de uma subconsulta:

Select descricao_produto
From produtos
Where preco_produto = (Select max(preco_produto ) from produtos);

Veja a representao abaixo:

204

banco de dados I.indb 204 16/09/11 15:41


Banco de Dados I

Figura 8.4 Subconsulta.


Fonte: Elaborao do autor.

Isso est correto porque a subconsulta uma ao independente


que calcula sua agregao isoladamente do que est acontecendo
na consulta externa. As agregaes tambm so muito teis
quando combinadas com a clusula Group By.

Select Codigo_Regiao, max(Preco_Produto)


From Produtos
Group By Codigo_Regiao;

Para produzir uma linha de sada para cada regio, significa que
cada resultado da agregao calculado sobre as linhas da tabela,
correspondendo a uma regio. Essas linhas agrupadas podem ser
filtradas utilizando a clusula Having.

Select Codigo_Regiao, max(Preco_Produto)


From Produtos
Group By Codigo_Regiao
Having max(Preco_Produto) > 100;

importante que voc compreenda a interao entre as


agregaes e as clusulas Where e Having do SQL. A diferena
fundamental entre essas duas clusulas :

Unidade 8 205

banco de dados I.indb 205 16/09/11 15:41


Universidade do Sul de Santa Catarina

Where seleciona as linhas de entrada antes de os grupos


e agregaes serem computados, portanto, controla quais
linhas iro para o computo da agregao;
Having seleciona grupos de linhas aps os grupos e
agregaes serem computados. Portanto, a clusula
Where no pode conter funes de agregao. Por
outro lado, a clusula Having sempre possui funo de
agregao.

Essa restrio entre as clusulas Where e Having se d em


funo de como os SGBDs executam o comando Select. Por
mais estranho que possa parecer, o comando Select comea a ser
executado pela clusula From, no pelo prprio Select. Vejamos a
ordem de execuo das clusulas do comando Select:

ORDEM CLUSULA
6 Select
1 From
2 Where
3 Group by
4 Having
5 Order By

Quadro 8.20 Ordem de execuo das clusulas do Comando Select


Fonte: Elaborao do autor.

Assim sendo, perceba que ao ser executado o Where, o banco de


dados ainda no tem conhecimento de como sero constitudos
os grupos de dados. Dessa forma, no podem processar as
funes de agregao.

Conforme o exposto, a projeo das colunas selecionadas


sempre a ltima operao na execuo do comando select, isso
explica, por exemplo, porque podemos ordenar as informaes
a serem apresentadas por uma informao que no est sendo
selecionada.

Para concluir, se desejarmos somente produtos cuja descrio


comece pela letra S, podemos utilizar a funo LIKE, por
exemplo:

206

banco de dados I.indb 206 16/09/11 15:41


Banco de Dados I

Select Descricao_Produto
From Produtos
Where Descricao_Produto LIKE S%;

Sntese

O comando Select usado em SQL para todas as formas de


pesquisar informao. Este um comando bastante poderoso
e verstil, tendo algumas variaes. Informalmente, todos os
comandos Select podem ser estruturados na seguinte forma:

Select lista de colunas


From tabelas
Where restries;

Para acessar dados da tabela sem que sejam apresentados valores


repetidos, deve-se utilizar a clusula Distinct:

Select distinct (Coluna) from Tabela;

possvel combinar restries de pesquisa, como:

Select Coluna1, Coluna2


From Tabela
Where Coluna2 <> Valor1 AND Coluna1 <> Valor2;

possvel ainda que o comando Select seja escrito dentro de


outros comandos:

Select Coluna2, Coluna3


From Tabela
Where Coluna = (Select
Coluna from Tabela);

Unidade 8 207

banco de dados I.indb 207 16/09/11 15:41


Universidade do Sul de Santa Catarina

O comando Like permite fazer uma pesquisa na tabela sem


saber o valor exato que se procura. Usa-se o % para representar
qualquer sequncia de caracteres que tenha um smbolo em
especfico:

Select Coluna
from Tabela
where Coluna Like n%;

As funes de agregao so:

Funo O que faz:


Count Retorna o nmero de ocorrncias da coluna da tabela
Sum Retorna a soma dos valores da coluna da tabela;
Avg Retorna a mdia de valores da coluna da tabela
Max Retorna o maior valor da coluna da tabela
Min Retorna o menor valor da coluna da tabela
Quadro 8.21 Funes de agregao
Fonte: Elaborao do autor.

Apesar de parecerem idnticos, os comandos Where e Having


possuem caractersticas diferentes, como voc pode verificar.

WHERE seleciona as linhas de entrada antes de os


grupos e agregaes serem computados, portanto,
controla quais linhas iro para o computo da agregao;

HAVING seleciona grupos de linhas aps os grupos


e agregaes serem computados. Portanto, a clusula
WHERE no pode conter funes de agregao. Por
outro lado, a clusula HAVING sempre possui funo
de agregao.

208

banco de dados I.indb 208 16/09/11 15:41


Banco de Dados I

Atividades de autoavaliao

Ao final de cada unidade, voc realizar atividades de autoavaliao. O


gabarito est disponvel no final do livro didtico. Esforce-se para resolver
as atividades sem ajuda do gabarito, pois, assim, voc estar promovendo
(estimulando) a sua aprendizagem.

1) Dada a tabela Alunos a seguir:

Codigo Nome Sexo Idade


1 Charles Medeiros M 35
2 Ana Paula Bertoldo F 25
3 Lucas Giaretta M 7
4 Sthefanie Caroline F 19
5 Djalma Medeiros M 65
6 Artur Paes M 5
7 Eduarda Duda F 8

Escreva os comandos em SQL que:

a) Liste todos os alunos do sexo Masculino:

b) Liste todos os alunos que possuem o sobrenome Medeiros,


ordenados crescentemente por idade.

c) Liste a mdia de idade dos alunos e escreva na coluna o nome Mdia:

Unidade 8 209

banco de dados I.indb 209 16/09/11 15:41


Universidade do Sul de Santa Catarina

d) Liste a maior idade dos alunos:

e) Liste a quantidade de alunos com idade menor que 20 anos:

f) Liste o Nome e o Cdigo do aluno chamado Lucas Giaretta:

g) Liste o aluno com a menor idade.

h) Liste a quantidade de alunos com idade entre 10 e 20 anos, e que sejam


do sexo masculino.

i)Liste a quantidade de mulheres cadastradas na tabela de Alunos.

A melhor forma de identificar se suas respostas esto


corretas fazer o teste prtico no MySQL. Faa isso e
potencializar seu aprendizado.

210

banco de dados I.indb 210 16/09/11 15:41


Banco de Dados I

Saiba mais

Para aprofundar as questes abordadas nesta unidade, voc


poder pesquisar os seguintes livros:

ABREU, Mauricio, MACHADO, Felipe Nery Rodrigues.


Projeto de Banco de Dados. Editora rica , 2009.

JESUS, Joo Batista de. ANSI: SQL 89/92. So Paulo: Axcel


Books do Brasil Ltda., 2004.

HEUSER, CARLOS ALBERTO. Projeto de Banco de Dados.


So Paulo: Bookman, 2009.

Unidade 8 211

banco de dados I.indb 211 16/09/11 15:41


banco de dados I.indb 212 16/09/11 15:41
9
unidade 9

Recuperao de informaes
por meio de tabelas

Objetivos de aprendizagem
Selecionar dados em SQL usando mais de uma tabela
como referncia.

Compreender os tipos de junes em SQL.

Gerar consultas em SQL mais eficientes.

Sees de estudo
Seo 1 O que uma juno
Seo 2 Junes de produto cartesiano
Seo 3 Junes internas

Seo 4 Junes externas

banco de dados I.indb 213 16/09/11 15:41


Universidade do Sul de Santa Catarina

Para incio de estudo


O comando de manipulao de dados chamado Select ser um
dos mais executados por qualquer aplicao de computador que
envolva um SGBD. A estrutura de um comando de seleo
bem simples. Definem-se as colunas que sero apresentadas,
quais as tabelas relacionadas que fazem parte da seleo e qual a
condio de filtro para a definio das linhas que faro parte do
conjunto de dados recuperado.

Porm, na maioria das vezes, a seleo de dados que ser


executada envolve mais de uma tabela ao mesmo tempo, pois
os dados esto distribudos em vrias tabelas relacionais ligadas
pelas chaves estrangeiras, os chamados relacionamentos.

Assim, durante a construo de consultas em SQL, muito


comum surgir a necessidade de extrair informaes de diferentes
tabelas para se gerar o resultado esperado.

Nesta unidade voc ter uma integrao maior com o comando


Select, criando consultas que envolvam mais de uma fonte de
dados.

Sendo assim, bem-vindo ao mundo do Select!

Seo 1 O que uma juno


Nos modelos de banco de dados, principalmente naqueles que
envolvem um nmero elevado de tabelas, muito comum, na
elaborao das consultas, a necessidade da seleo de dados em
diferentes tabelas.

Essa operao necessita que o especialista em banco de dados


defina os critrios para o agrupamento dessas tabelas.

214

banco de dados I.indb 214 16/09/11 15:41


Banco de Dados I

Os critrios para o agrupamento so chamados de


condies de juno, ou apenas juno.

A juno de tabelas ocasiona uma tabela derivada de outras


duas, de acordo com as regras de juno elaborada. As regras
de juno so muito parecidas com as da teoria de conjunto da
matemtica, como unio, interseco e diferena. Veja a figura
abaixo:

 





Figura 9.1 Representao da juno entre tabelas


Fonte: Elaborao do autor.

Na Figura 9.1 tem-se duas tabelas com dados quaisquer. A


juno executada resulta em uma terceira tabela que agrupa dados
em comum entre A e B, o que se pode chamar de interseco
entre elas. Porm, uma nova juno entre essas tabelas poderia
ser realizada, de forma a retornar uma terceira com todos os
dados das duas anteriores, fazendo a unio dos dados, conforme
a figura a seguir:

Unidade 9 215

banco de dados I.indb 215 16/09/11 15:41


Universidade do Sul de Santa Catarina

Figura 9.2 Juno com a unio dos dados das duas tabelas
Fonte: Elaborao do autor.

Veja na prxima figura um terceiro caso, em que a juno retorna


os dados que esto na Tabela A, mas no esto na Tabela B,
correspondendo operao de conjunto A-B :

Figura 9.3 Juno que retorna os dados que esto na tabela A, mas no esto na tabela B
Fonte: Elaborao do autor.

216

banco de dados I.indb 216 16/09/11 15:41


Banco de Dados I

As formas de juno so definidas pela clusula Where do


comando Select, como qualquer outra condio da consulta, e
possuem influncia direta sobre a escolha do mtodo de juno
que ser realizado pelo especialista em banco de dados.

Essas condies de consulta so utilizadas para realizar a unio


entre os dados contidos nas diferentes tabelas, combinando os
registros, formando um nico registro que contm os campos
definidos na clusula Select.

Conforme as condies de juno, possvel obter os seguintes


tipos de juno:

produtos cartesianos retorna toda a combinao de


registros das duas tabelas de dados, uma vez que no
existe nenhuma restrio definida na clusula where;

junes interna (inner-join) a consulta retornar


apenas os registros que atendem s condies definidas
nas tabelas de dados;

junes externas (outer join) semelhante juno


simples, porm, retornar tambm os registros da fonte
de dados externa, que no esto presentes na tabela
interna.

Na definio da juno, o especialista em banco de dados deve


tomar alguns cuidados, como:

identificar as chaves primrias das tabelas;

identificar as chaves estrangeiras das tabelas;

identificar os relacionamentos entre as tabelas;

visualizar toda estrutura do modelo de dados que est


sendo utilizado, com nome dos campos e tipos de cada
campo;
ater-se aos dados que sero apresentados pelo
comando de seleo.

Unidade 9 217

banco de dados I.indb 217 16/09/11 15:41


Universidade do Sul de Santa Catarina

De forma resumida, independentemente do tipo


de juno, a criao da juno deve levar em
considerao os dados que sero apresentados pela
seleo, qual o relacionamento existente entre as
tabelas que fazem parte da pesquisa a ser elaborada,
quais os campos nicos e quais os nomes e tipos de
cada campo.

Na prxima seo, voc estudar a forma de representar cada um


dos tipos de junes vistos anteriormente, utilizando o comando
Select.

Seo 2 Junes de produto cartesiano


Esse mtodo de juno se baseia nas regras de relacionamento
entre as tabelas que fazem parte da seleo, sendo que as chaves
estrangeiras so referenciadas diretamente na formulao do
comando Select.

Esse mtodo de juno deve ser utilizado quando as tabelas possuem


poucos registros e existe uma relao direta entre as tabelas.

Lembre-se de que a relao direta entre tabelas


realizada pelas chaves estrangeiras.

Essa juno realiza uma pesquisa em todas as tabelas que fazem


parte do comando Select, de forma que o prprio SGBD define
uma tabela principal, que servir de base para a busca dos
registros nas tabelas dependentes.

Para cada registro existente na tabela principal, o SGBD buscar


os registros relacionados na tabela dependente, desde que
atendam s condies da clusula Where. Antes de apresentar
exemplos de comandos Select que implementam a juno com
produto cartesiano, voc ver o modelo de dados que usaremos
como exemplo, bem como:

218

banco de dados I.indb 218 16/09/11 15:41


Banco de Dados I

os comandos de definio de dados que criam as tabelas


do modelo;

os comandos de insero de dados de cada tabela do


modelo;

a representao grfica de cada tabela com os dados j


cadastrados.

Veja todas as caractersticas do modelo de dados que ser


utilizado, bem como relembre de alguns comandos que j foram
vistos nas unidades anteriores. A seguir, est a representao
grfica do modelo que usaremos como exemplo:

Figura 9.4 Modelo de dados para o exemplo de juno por produto cartesiano
Fonte: Elaborao do autor.

Nesse modelo de dados, pode-se notar que a tabela Pais a nica


que no depende de dados das outras tabelas. Por outro lado, a
tabela de SubRegiao possui um campo que a chave estrangeira
para a tabela Pais, representada pelo relacionamento nmero
1 da figura acima. Dessa forma, tem-se uma regra de chave
estrangeira na tabela SubRegiao da seguinte forma:

A coluna chamada Codigo_Pais da tabela SubRegiao


referencia a tabela Pais pelo campo Codigo_Pais.
J a tabela Cidade possui a sua coluna Codigo_SubRegiao como
chave estrangeira para tabela SubRegiao, representada pelo
relacionamento nmero 2 da figura acima, da seguinte forma:

Unidade 9 219

banco de dados I.indb 219 16/09/11 15:41


Universidade do Sul de Santa Catarina

A coluna Codigo_SubRegiao da tabela Cidade referencia


a tabela SubRegiao pelo campo Codigo_SubRegiao.
Para elucidar esse modelo de dados, representado na ltima
Figura, veja a seguir os comandos de definio de dados que
criaram esse modelo.

Create Table Pais (


Codigo_Pais Integer,
Nome_Pais Varchar(30),
Primary Key (Codigo_Pais)
);
Create Table SubRegiao (
Codigo_SubRegiao integer,
Nome_SubRegiao Varchar(30),
Codigo_Pais integer,
Primary Key (Codigo_SubRegiao),
Foreign Key (Codigo_Pais) references Pais (Codigo_Pais)
);
Create Table Cidade (
Codigo_Cidade integer,
Nome_Cidade Varchar(30),
Codigo_SubRegiao integer,
Primary Key (Codigo_Cidade),
Foreign Key (Codigo_SubRegiao) references SubRegiao (Codigo_SubRegiao)
);

Figura 9.5 - Comandos de definio de dados


Fonte: Elaborao do autor.

A partir de agora, sero apresentados os comandos em SQL para


preenchimento das tabelas. Comearemos pela tabela Pais. Em
SQL, por meio do comando Insert, o preenchimento da tabela de
pases foi feito assim:

220

banco de dados I.indb 220 16/09/11 15:41


Banco de Dados I

Cadastro na Tabela Pais

Insert Into Pais Values (1,Brasil);


Insert Into Pais Values (2,Argentina);
Insert Into Pais Values (3,Estados Unidos);
Insert Into Pais Values (4,Canada);

Quadro 9.1 Comandos de insert na tabela Pais


Fonte: Elaborao do autor.

Graficamente a tabela ficou desta forma:

Tabela 9.1 Tabela Pais com os dados cadastrados.


Codigo_Pais Nome_Pais
1 Brasil
2 Argentina
3 Estados Unidos
4 Canad
Fonte: Elaborao do autor.

Agora, os comandos de insero para montar a tabela SubRegiao:

Cadastro na Tabela Sub-Regio


Insert Into SubRegiao Values (1,Parana,1);
Insert Into SubRegiao Values (2,Sao Paulo,1);
Insert Into SubRegiao Values (3,Santa Catarina,1);
Insert Into SubRegiao Values (4,Buenos Aires,2);
Insert Into SubRegiao Values (5,Cordoba,2);
Insert Into SubRegiao Values (6,California,3);
Insert Into SubRegiao Values (7,Rio Grande do Sul,1);
Quadro 9.2 Comandos insert na tabela SubRegiao
Fonte: Elaborao do autor.

Graficamente a tabela ficou desta forma:

Tabela 9.2 Tabela de SubRegiao com os dados cadastrados.


Codigo_SubRegiao Nome_SubRegiao Codigo_Pais
1 Parana 1
2 Sao Paulo 1
3 Santa Catarina 1
4 Buenos Aires 2
5 Cordoba 2
6 California 3
7 Rio Grande do Sul 1
Fonte: Elaborao do autor.

Unidade 9 221

banco de dados I.indb 221 16/09/11 15:41


Universidade do Sul de Santa Catarina

Para finalizar, os comandos de insero para montar a tabela


Cidade:

Cadastro na Tabela Cidade


Insert Into Cidade Values (1,Sao Paulo,2);
Insert Into Cidade Values (2,Florianopolis,3);
Insert Into Cidade Values (3,Buenos Aires,4);
Insert Into Cidade Values (4,La Plata,4);
Insert Into Cidade Values (5,Los Angeles,6);
Insert Into Cidade Values (6,San Francisco,6);
Quadro 9.3 Comandos de insert na tabela Cidade
Fonte: Elaborao do autor.

Graficamente a tabela ficou desta forma:

Tabela 9.3 Tabela Cidade com os dados cadastrados

Codigo_Cidade Nome_cidade Codigo_Subregiao


1 Sao Paulo 2

2 Florianopolis 3

3 Buenos Aires 4

4 La Plata 4

5 Los Angeles 6

6 San Francisco 6

Fonte: Elaborao do autor.

Bem, agora que est tudo preparado, veja alguns comandos em


SQL que fazem a seleo de dados pela juno por produto
cartesiano.

Selecionando todos os dados da tabela Cidade:

Select * from Cidade;

222

banco de dados I.indb 222 16/09/11 15:41


Banco de Dados I

O Resultado do Select ser:

Codigo_Cidade Nome_cidade Codigo_SubRegiao


1 Sao Paulo 2
2 Florianopolis 3
3 Buenos Aires 4
4 La Plata 4
5 Los Angeles 6
6 San Francisco 6

Quadro 9.4 Resultado do comando.


Fonte: Elaborao do autor.

At aqui no h nada de diferente dos demais processos.


Contudo, a tabela fica inconsistente quando se percebe que as
cidades pertencem a sub-regies como: 2, 3, 4 e 6. Esses valores
correspondem aos cdigos das sub-regies cadastradas na tabela
SubRegiao, conforme a figura a seguir:

Codigo_ Nome_cidade Codigo_


Cidade SubRegiao
1 Sao Paulo 2
2 Florianopolis 3
3 Buenos Aires 4
4 La Plata 4
5 Los Angeles 6
6 San Francisco 6

Codigo_ Nome_ Codigo_


Cidade SubRegiao Pais
1 Parana 1
2 Sao Paulo 1
3 Santa Catarina 1
4 Buenos Aires 2
5 Cordoba 2
6 California 3
7 Rio Grande do Sul 1

Figura 9.6 Relacionamento entre as tabelas Cidade e SubRegiao


Fonte: Elaborao do autor.

Unidade 9 223

banco de dados I.indb 223 16/09/11 15:41


Universidade do Sul de Santa Catarina

Sendo assim, o comando de seleo de todos os registros da


tabela de cidades pode ser escrito da seguinte forma:

Select Cidade.Codigo_Cidade,Cidade.Nome_Cidade,SubRegiao.Nome_SubRegiao
From Cidade,SubRegiao
Where Cidade.Codigo_SubRegiao = SubRegiao.Codigo_SubRegiao;

Nesse caso, h uma juno entre as tabelas de Cidade e


SubRegiao, por meio da chave estrangeira Codigo_SubRegiao da
tabela Cidade, que a relaciona com a tabela SubRegiao.

O resultado do comando ser:

Codigo_Cidade Nome_Cidade Nome_SubRegiao


1 Sao Paulo Sao Paulo
2 Florianopolis Santa Catarina
3 Buenos Aires Buenos Aires
4 La Plata Buenos Aires
5 Los Angeles Califrnia
6 San Francisco Califrnia
Quadro 9.5 Resulta da juno entre as tabelas Cidade e SubRegiao
Fonte: Elaborao do autor.

Tem-se um produto cartesiano com dados das tabelas Cidade e


SubRegiao. Veja mais alguns comandos de seleo.

Selecionar a sub-regio da cidade de Florianpolis:

Select SubRegiao.Nome_SubRegiao
From Cidade, SubRegiao
Where Upper(Cidade.Nome_Cidade) = FLORIANOPOLIS AND
Cidade.Codigo_SubRegiao = SubRegiao.Codigo_SubRegiao;

224

banco de dados I.indb 224 16/09/11 15:41


Banco de Dados I

O resultado do comando ser:

Figura 9.7 Resultado do comando Select


Fonte: Elaborao do autor.

Selecionar o cdigo e o nome das cidades da sub-regio de So


Paulo:

Select Cidade.Codigo_Cidade, Cidade.Nome_Cidade


From Cidade, SubRegiao
Where Upper(SubRegiao.Nome_SubRegiao) = SAO PAULO AND
Cidade.Codigo_SubRegiao = SubRegiao.Codigo_SubRegiao;

O resultado do comando ser:

Selecionar o nome das sub-regies que pertencem ao pas


chamado Brasil:

Figura 9.8 Resultado do comando Select


Fonte: Elaborao do autor.

Selecionar o nome de todas as sub-regies e seus respectivos


pases:

Select SubRegiao.Nome_SubRegiao, Pais.Nome_Pais


From SubRegiao, Pais
Where Pais.Codigo_Pais = SubRegiao.Codigo_Pais;

O resultado do comando acima ser:

Unidade 9 225

banco de dados I.indb 225 16/09/11 15:41


Universidade do Sul de Santa Catarina

Figura 9.9 Resultado do comando Select


Fonte: Elaborao do autor.

Selecionar o nome das sub-regies que pertencem ao pas


chamado Brasil:

Select SubRegiao.Nome_SubRegiao
From SubRegiao, Pais
Where Upper(Pais.Nome_Pais) = BRASIL AND
Pais.Codigo_Pais = SubRegiao.Codigo_Pais;
O resultado do comando ser:

Figura 9.10 Resultado do comando Select


Fonte: Elaborao do autor.

Selecionar o nome da cidade, o nome da sua respectiva sub-


regio e pas:

Select Cidade.Nome_Cidade, SubRegiao.Nome_SubRegiao, Pais.Nome_Pais


From Cidade, SubRegiao, Pais
Where Cidade.Codigo_SubRegiao = SubRegiao.Codigo_SubRegiao AND
SubRegiao.Codigo_Pais = Pais.Codigo_Pais;

226

banco de dados I.indb 226 16/09/11 15:41


Banco de Dados I

O resultado do comando ser:

Figura 9.11 Resultado do comando Select.


Fonte: Elaborao do autor.

Note que a condio Where sempre especifica as


chaves estrangeiras que interligam as tabelas da
seleo. Isso uma caracterstica da juno do tipo
produto cartesiano.

Na prxima seo, voc ver como criar junes sem usar a chave
estrangeira diretamente.

Seo 3 Junes internas


A utilizao da clusula Inner o que caracteriza o comando
para uma juno interna, porm, ele no obrigatrio. Pode
parecer, primeira vista, que as junes internas se equiparam
com as junes de produto cartesiano vistas anteriormente.

Mas nas junes internas sempre obrigatria a especificao


de condio de juno, ou seja, quais linhas de uma tabela tm
alguma ligao com a linha de outra tabela. Para isso, deve-se
utilizar a clusula On.

A clusula On se assemelha em muito com a clusula Where, ou


seja, um par com uma linha da Tabela A e uma linha da Tabela
B correlacionado se a expresso da clusula On for verdadeira.

Unidade 9 227

banco de dados I.indb 227 16/09/11 15:41


Universidade do Sul de Santa Catarina

Por exemplo, a seleo de todos os registros da tabela Cidade


pode ser escrita da seguinte forma:

SELECT *
FROM Cidade
INNER JOIN SubRegiao
ON Cidade.Codigo_SubRegiao = SubRegiao.Codigo_SubRegiao;

Note que a clusula On est sendo utilizada de forma


semelhante clusula Where das junes de produto
cartesiano.

Porm, o resultado do Select ser diferente. Veja a sada realizada


pelo comando anterior:

Figura 9.12 Resultado de uma juno interna entre as tabelas de Cidade e SubRegiao
Fonte: Elaborao do autor.

Como ambas as tabelas possuem o campo Codigo_SubRegiao,


uma coluna se manteve como Codigo_SubRegiao e outra
foi renomeada para Codigo_SubRegiao_1, que representa
exatamente o relacionamento entre as tabelas e a condio da
clusula On.

Veja um exemplo de Select com juno interna para selecionar o


nome de todas as sub-regies e seus respectivos pases:

Select SubRegiao.Nome_SubRegiao,Pais.Nome_Pais
From SubRegiao
INNER JOIN Pais
ON SubRegiao.Codigo_Pais = Pais.Codigo_Pais;

228

banco de dados I.indb 228 16/09/11 15:41


Banco de Dados I

O resultado desse comando ser:

Figura 9.13 Resultado de uma juno interna entre as tabelas de SubRegiao e Pais.
Fonte: Elaborao do autor.

Bem, o que era importante a respeito do assunto juno interna


foi apresentado nesta seo. Na prxima voc ter contato com as
junes externas.

Seo 4 Junes externas


Para representar uma juno externa utiliza-se a clusula Outer,
no entanto, ela no obrigatria. O que caracteriza realmente as
junes externas so as clusulas Left e Right.

Juno externa left outer join


Esse tipo de juno externa funciona da seguinte forma:

executa uma juno interna;

verifica quais linhas da primeira tabela no possuem


relacionamento com a segunda tabela da seleo;

para cada linha da segunda tabela que no possui


relacionamento inserido um campo com valor null.

Veja o exemplo a seguir:

Unidade 9 229

banco de dados I.indb 229 16/09/11 15:41


Universidade do Sul de Santa Catarina

SELECT *
FROM SubRegiao
LEFT OUTER JOIN Cidade
ON Cidade.Codigo_SubRegiao = SubRegiao.Codigo_SubRegiao;

O resultado do Select ser:

Figura 9.14 Resultado de um left outer joiner entre as tabelas SubRegiao e Cidade.
Fonte: Elaborao do autor.

Repare nas linhas destacadas na figura acima que as sub-regies


as quais no possuem cidade relacionada s colunas Codigo_
Cidade, Nome_Cidade e Codigo_SubRegiao_1 ficaram sem
valores, ou seja, foram preenchidas com null. Em uma seleo
normal essas linhas seriam ignoradas.

Com o uso de left outer joiner todas as linhas das tabelas da


esquerda que no possuem correspondentes na tabela da direita
so apresentadas no resultado da consulta.

Juno externa right outer join


Esse tipo de juno externa funciona da seguinte forma:

executa uma juno interna;

verifica quais linhas da segunda tabela no possuem


relacionamento com a primeira tabela da seleo;

para cada linha da primeira tabela que no possui


relacionamento inserido um campo com valor null.

230

banco de dados I.indb 230 16/09/11 15:41


Banco de Dados I

Ou seja, a juno externa right outer join o inverso da juno left


outer join. Veja o prximo exemplo, supondo que no h nenhuma
sub-regio cadastrada para o pas Canad:

SELECT *
FROM SubRegiao
RIGHT OUTER JOIN Pais
ON Pais.Codigo_Pais = SubRegiao.Codigo_Pais;

O resultado do Select ser:

Figura 9.15 Resultado de um right outer joiner entre as tabelas SubRegiao e Pais

Basicamente, a diferena entre right e left est na escolha da


tabela em que os elementos que no possuem relacionamento
sero escolhidos para serem acrescidos com null.

Unidade 9 231

banco de dados I.indb 231 16/09/11 15:41


Universidade do Sul de Santa Catarina

Sntese

Nesta unidade, voc ficou sabendo que a maioria das selees


criadas por especialistas em banco de dados envolve mais de uma
tabela relacional.

Essas selees necessitam de regras especficas para o cruzamento


dos dados das tabelas referenciadas na clusula Where. E essas
regras recebem o nome de juno.

Se as tabelas que fazem parte da seleo que ser implementada


possuem poucos registros cadastrados e existe uma relao direta
entre as chaves estrangeiras, o ideal a adoo da juno por
produto cartesiano.

Porm, se as tabelas possuem um nmero elevado de registros,


pode-se utilizar dois mtodos: a juno interna e a juno
externa.

Quando o objetivo listar os dados de todas as tabelas que fazem


parte da seleo e que possuem valores relacionados, o ideal
a juno interna, ou simplesmente inner-join, representada pela
clusula Inner.

Por outro lado, podem ser adotadas as junes externas, Left e


Right, quando se deseja listar todos os dados das tabelas, mesmo
que o relacionamento direto no exista.

As junes externas Left e Right especificam quais tabelas tero


seus campos preenchidos com null.

232

banco de dados I.indb 232 16/09/11 15:41


Banco de Dados I

Atividades de autoavaliao
Ao final de cada unidade, voc realizar atividades de autoavaliao. O
gabarito est disponvel no final do livro didtico. Esforce-se para resolver
as atividades sem ajuda do gabarito, pois, assim, voc estar promovendo
(estimulando) a sua aprendizagem.
Com o modelo de dados abaixo, escreva os comandos em SQL que
resultam na seleo solicitada.

1. Utilizando uma juno de produto cartesiano, selecione o nome dos


professores, a descrio dos seus respectivos cursos e os locais em que
esses so ministrados:

2. Utilizando uma juno de produto cartesiano, selecione a descrio dos


seus cursos ministrados em Santa Catarina.

Unidade 9 233

banco de dados I.indb 233 16/09/11 15:41


Universidade do Sul de Santa Catarina

3. Utilizando uma juno de produto cartesiano, selecione o nome e a


titulao dos professores do curso de Banco de Dados I.

4. Utilizando uma juno de produto cartesiano, selecione o local, a


cidade e a unidade federativa de todos os cursos que ainda possuem
vagas.

5. Utilizando uma juno interna (inner join), selecione todos os cursos e


seus respectivos locais em que so lecionados.

6. Utilizando uma juno interna (inner join), selecione todos os


professores e seus respectivos cursos.

234

banco de dados I.indb 234 16/09/11 15:41


Banco de Dados I

7. Utilizando uma juno externa (outer join), selecione todos os


professores e seus respectivos cursos, de forma que os professores sem
curso tenham os seus campos preenchidos com null.

8. Utilizando uma juno externa (outer join), selecione todos os


professores e seus respectivos cursos, de forma que os cursos sem
professor tenham os seus campos preenchidos com null.

Saiba mais

Para aprofundar as questes abordadas nesta unidade, voc


poder pesquisar os seguintes livros:

ABREU, Mauricio, MACHADO, Felipe Nery Rodrigues.


Projeto de Banco de Dados. Editora rica , 2009.

COSTA, R. L. de C. SQL: guia prtico. So Paulo. Brasport,


2004.

FONSECA, L. C. Trabalhando com 10g Oracle Database.


Cincia Moderna, 2005.

HEUSER, CARLOS ALBERTO. Projeto de Banco de Dados.


So Paulo: Bookman, 2009.

Unidade 9 235

banco de dados I.indb 235 16/09/11 15:41


Universidade do Sul de Santa Catarina

MECENAS, I.; OLIVEIRA, V. de. Banco de dados: do


modelo conceitual implementao fsica. Alta Books, 2005.

OPEEL, A. Banco de dados desmistificado. Rio de Janeiro.


Alta Books, 2005.

RANGEL, A. MySQL: projeto, modelagem e desenvolvimento.


Rio de Janeiro. Alta Books, 2005.

236

banco de dados I.indb 236 16/09/11 15:41


Para concluir o estudo

Chegamos ao final de mais uma grande jornada.

Nesta disciplina, a inteno foi colocar voc em contato


com o mundo dos sistemas de bancos de dados,
possibilitando a compreenso do seu papel como um
profissional que est envolvido com armazenamento
e gerenciamento de informaes, identificando as
atividades que sero executadas e algumas ferramentas
que podem ser utilizadas. O mais importante que a
tecnologia um adicional a sua capacidade de solucionar
problemas.

Para muitos de vocs, os comandos e as tecnologias


aqui apresentadas talvez no tenham sido novidade, no
entanto, esperamos que a disciplina tenha contribudo
para um aprimoramento do seu conhecimento,
independente dos seus conhecimentos prvios acerca do
assunto.

Acreditamos que muitas perguntas ainda se formam em


sua mente, porm, esse o nosso papel como autores,
fomentar a dvida, a curiosidade e estimular a busca por
novos conhecimentos. Esperamos ter atingido isso ao
plantar a semente da busca pela informao.

Parabns, voc acaba de dar mais um grande passo rumo


ao objetivo maior que se tornar um profissional que
domine a tecnologia da informao!

Se a caminhada parecia longa, voc acaba de encurt-la.

Desejamos que cada vez mais voc esteja prximo do seu


objetivo maior, mesmo que em alguns momentos o final
da caminhada se apresente mais distante.

Levante a cabea, tome flego e... rumo ao sucesso!

banco de dados I.indb 237 16/09/11 15:41


banco de dados I.indb 238 16/09/11 15:41
Referncias

ABREU, Mauricio, MACHADO, Felipe Nery Rodrigues. Projeto de


Banco de Dados. Editora rica , 2009.
CHU, S. Y. Banco de dados: organizao, sistemas e
administrao. So Paulo: Atlas, 1983.
CHEN, P. Modelagem de dados: a abordagem entidade-
relacionamento para projeto lgico. So Paulo: Makron Books,
1990.
COSTA, Rogrio Lus de Carvalho. SQL: Guia prtico. So Paulo.
Brasport, 2004.
DATE, C. J. Banco de dados: fundamentos. Rio de Janeiro:
Campus, 1985.
DATE, C. J. Introduo a Sistemas de Bancos de Dados. Rio de
Janeiro: Campus, 1991.
FONSECA, Luiz Claudio. Trabalhando com 10g Oracle database.
Cincia Moderna, 2005.
GUIMARES, Clio Cardoso. Fundamentos de bancos de dados.
Editora Unicamp, 2008.
HERNANDEZ, M. J. Aprenda a projetar seu prprio banco de
dados. So Paulo: Pearson Education do Brasil Ltda, 1999.
HEUSER, CARLOS ALBERTO. Projeto de Banco de Dados. So
Paulo: Bookman, 2009.
JESUS, J. B. de. Ansi SQL 89 92. Axcel Books do Brasil Ltda, 2004.
KORTH, H.F.; Silberschatz, A. Sistema de Banco de Dados. 3. ed.
So Paulo: Makron Books, 1999.COUGO, P. Modelagem conceitual
e projeto de banco de dados. 7. Reimp. Rio de Janeiro: Campus,
2001.
LIMA, A. da S. ERwin 4.0: modelagem de dados. 2. ed. So Paulo:
rica, 2002.
MECENAS, Ivan. OLIVEIRA, Viviane de. Banco de dados: do
modelo conceitual implementao fsica. Alta Books, 2005.
MEDEIROS, M. Oracle 8i: conceitos bsicos. Florianpolis:
Advanced, 2000.

banco de dados I.indb 239 16/09/11 15:41


Universidade do Sul de Santa Catarina

NASSU, E. A. Banco de dados orientado a objetos. Edgard Blucher, 1999.


OLIVEIRA, A. R de. Modelagem de dados. So Paulo: Senac, 2004.
OPEEL, Andy. Banco de dados desmistificado. Rio de Janeiro. Alta Books,
2005.
PRESTES, R. Mysql guia de consulta rpida. Novatec, 2000.
RANGEL, Alexandre. Mysql - Projeto, modelagem e desenvolvimento.
Rio de Janeiro. Alta Books, 2005.
SETZER, V. W.; SILVA, F. S. da. Banco de dados. So Paulo: Edgard Blucher,
2005.
SOARES, S. P. de M. Dominando o ERwin: modelagem de dados para
banco oracle. So Paulo: Cincia Moderna, 2004.
SOARES, W. MySQL conceitos e aplicaes. Erica, 2003.

240

banco de dados I.indb 240 16/09/11 15:41


Sobre os professores conteudistas

Marcelo Medeiros bacharel em Cincias da


Computao pela Universidade Regional de Blumenau
e professor da Unisul desde 1995, na qual leciona
as disciplinas de Banco de Dados, Programao e
Estrutura de Dados para os cursos de Engenharia,
Cincia da Computao e Sistemas de Informao.
Atualmente participa do projeto de Incubadora da
Unisul, desenvolvendo projetos de software na rea de
automao e segurana via IP. Atua como consultor junto
a empresas no desenvolvimento de novos produtos de
informtica.

Luciano Jos Svio possui graduao em Cincia


da Computaco pela Universidade do Sul de Santa
Catarina (1995) , mestrado em Engenharia de Produo
pela Universidade Federal de Santa Catarina (2000)
e cursa doutorado em Engenharia de Produo pela
Universidade Federal de Santa Catarina (2004) .
Atualmente, professor titular da Universidade do
Sul de Santa Catarina na rea de banco de dados.
Tem experincia na rea de Cincia da Computao,
com nfase em Sistemas de Computao, atuando
principalmente, nos seguintes temas: Agentes,
Inteligncia Artificial, Banco de Dados.

Tatiane dos Santos Leal mestre em Engenharia


de Produo nfase em Inteligncia Aplicada, pela
Universidade Federal de Santa Catarina UFSC,
especialista em Gesto Universitria, Dom Cabral
(em parceria com a Unisul), e bacharel em Cincia da
Computao pela Universidade do Sul de Santa Catarina
Unisul. professora na graduao presencial da Unisul
desde 1999, ministrando as disciplinas de Engenharia de
Software e Banco de Dados, e na modalidade a distncia
trabalha com Sistemas Integrados de Gesto, Gerncia
de Projetos, Gesto da Informao, Planejamento

banco de dados I.indb 241 16/09/11 15:41


Universidade do Sul de Santa Catarina

Estratgico de TI e Banco de Dados. funcionria da Assessoria


de Tecnologia da Informao ATI UNISUL desde 1996,
como auxiliar de suporte (1996 a 1998), desenvolvimento de
sistemas (1999), administradora de banco de dados (2000 a
2003). Participou do projeto Viso implantao do ERP
SAP R/3 na Unisul, em 2000, como administradora do sistema.
Analista do sistema de indicadores de gesto (BSC Balanced
Scorecard) e Business Intelligence - BI da Unisul, Painel do
Gestor, participa do grupo de trabalho de implantao do
Customer Relationship Manager CRM. Gerente de migrao
do projeto Guia implantao do sistema Acadmico Oracle/
Peoplesoft 2005; gerente de implantao do upgrade do SAP
R/3 em 2007, assim como da implantao de outros mdulos;
gerente de implantao do Projeto MinhaUNISUL portal
intranet da universidade, em 2008. Atualmente, coordena a rea
de Sistemas, vinculada Assessoria de Tecnologia da Informao
da Unisul.

242

banco de dados I.indb 242 16/09/11 15:41


Respostas e comentrios das
atividades de autoavaliao

Unidade 1
1) Os elementos formadores da rea de infraestrutura fazem
parte das funes crticas. Dentre esses elementos esto
as reas de redes de computadores, telecomunicaes e
tambm a rea de banco de dados, uma vez que o Sistema
Gerenciador de Banco de Dados (SGBD) quem prov o
acesso s informaes numa organizao. Desta forma,
qualquer problema envolvendo algum elemento da rea de
infraestrutura pode causar uma paralisao das atividades
de grande parte da empresa, inviabilizando o trabalho de
muitas pessoas.
2) As responsabilidades so:
Programador:
Promover a documentao dos projetos, segundo
metodologia estabelecida;
Monitorar a fase de testes das aplicaes desenvolvidas;
Promover manuteno e desenvolvimento dos sistemas;

Analista de sistemas:
Tem a funo de fazer o mapeamento das funcionalidades
do sistema;
A modelagem do modelo de dados que garanta o
atendimento dessas funcionalidades;
Participar do planejamento e projeto de sistemas;
Especificar as etapas de Estudo Preliminares e Anlise de
Requisitos em conjunto com os clientes;
Elaborar o Projeto de Solues;

Administrador de banco de dados


Segurana, por meio de backup, senhas e restries;
Garantir disponibilidade e performance;
Garantir as atualizaes tecnolgicas;

banco de dados I.indb 243 16/09/11 15:41


Universidade do Sul de Santa Catarina

Instalar e atualizar as ferramentas do sistema;


Dimensionar o montante de espao de armazenamento das
informaes;
Criar estrutura bsica para a instalao de novas aplicaes;
Administrar contas de usurios e concesso de privilgios;
Assegurar compatibilidade das aplicaes com a base de dados
instalada;
Planejar e desenvolver os procedimentos de backup e recuperao
de dados;
Manter documentao atualizada das mquinas servidoras de banco
de dados, bem como das bases de dados;
Instalar e atualizar os bancos de dados;
Definir estrutura bsica necessria para a implantao de bases de
dados (Hardware e Software);
Implantar e consolidar polticas de segurana;
Antecipar-se s mudanas necessrias com relao aos bancos e
bases de dados.

Projetista de banco de dados


Criar objetos das aplicaes a serem armazenadas na base de dados;
Monitorar rplicas de objetos em bases de dados distribudas;
Providenciar modificaes na estrutura da base de dados das
aplicaes;
Oferecer suporte e treinamento dos usurios da rea de
desenvolvimento quanto s caractersticas do banco de dados;
Planejar a distribuio dos dados armazenados;
Padronizar a criao de objetos no banco de dados;

Usurio final
Cadastrar dados;
Atualizar dados;
Consultar dados;
Respeitar as regras de segurana de acesso aos dados imposta na
empresa.

244

banco de dados I.indb 244 16/09/11 15:41


Banco de Dados I

3) Os principais benefcios proporcionados pelo surgimento do SGBD para


as empresas so:
o SGBD assume a responsabilidade pela manuteno das
informaes, retirando parte desta responsabilidade dos sistemas de
informao;
padronizao na forma de acesso aos dados, por meio da linguagem
SQL;
compartilhamento mais eficiente das informaes armazenadas;
diminuio ou controle da redundncia dos dados armazenados.

Unidade 2
1) Independente de ser relacional ou orientado a objetos, a ferramenta
computacional deve ser avaliada com base no problema que ser
solucionado. Nem sempre o menor preo significa custos menores.
importante que a ferramenta possua um bom grupo de usurios
no mercado de trabalho, para que seja gerada uma boa base de
conhecimento, para troca de informaes e solues j implementadas.
Alm disso, importante que a ferramenta tenha suporte ao usurio
e referncias bibliogrficas de fcil acesso. Outra caracterstica
fundamental a atualizao da ferramenta, que deve acompanhar
a evoluo da rea da informtica, podendo apresentar novas
metodologias e tecnologias de gerenciamento da informao.
Tecnicamente, essencial que a ferramenta garanta a integridade dos
dados e a fidelidade dos dados. Sem nunca esquecer que a melhor
soluo no aquela que a ferramenta disponibiliza, mas aquela que o
usurio deseja.
2) No. A ferramenta computacional um auxlio s atividades do
especialista em banco de dados. A tarefa de analisar e modelar uma
soluo que atenda s necessidades do usurio final do especialista.
Se a tarefa de anlise e definio das tabelas for realizada de forma
equivocada, a ferramenta implementar a soluo da forma proposta
pelo especialista, ou seja, tambm de forma equivocada.
A garantia de atendimento s necessidades do usurio est diretamente
relacionada ao processo de definio e criao do banco de dados, e
essa tarefa realizada pelo estudo e conhecimento do especialista.
Cabe ao especialista saber utilizar de forma correta as funcionalidades
que a ferramenta computacional lhe disponibiliza.

245

banco de dados I.indb 245 16/09/11 15:41


Universidade do Sul de Santa Catarina

Unidade 3
1)

 
  

  
  


 
 

 

 





2) CPF.
3) Placa.
4) Chaves primrias: CPF e Placa.
Chaves estrangeiras:
CPF fazendo referncia ao CPF na tabela de Clientes.
Placa fazendo referncia Placa na tabela de Veculos.

Unidade 4
1) Um banco de dados relacional tem sua estrutura de funcionamento
baseada em tabelas relacionais, que implementam as regras por
meio de chaves primrias e chaves estrangeiras. Um banco de dados
orientado a objeto tem sua estrutura de funcionamento baseada nas
regras de definio da classe. As classes representam o esqueleto do
objeto, no qual se define as propriedades e formas de acesso ao objeto.
2) A escolha da ferramenta, se proprietria ou de uso livre, deve se
adequar necessidade da empresa, ou do usurio final. A avaliao
apenas pelo requisito preo pode levar a escolhas precipitadas.
A ferramenta de uso livre deve ter, alm da gratuidade, suporte,
manuais, garantia de funcionamento e acompanhamento das
atualizaes de mercado. O mais importante avaliar se a ferramenta,
independentemente de custo, atende s necessidades do usurio.

246

banco de dados I.indb 246 16/09/11 15:41


Banco de Dados I

Unidade 5
1)
Create Table Produto (
Codigo_Produto Integer,
Descricao_Produto Varchar(30) not null,
Preco_Produto float not null,
Primary key(Codigo_Produto)
);

2)

Create Table Nota_Fiscal(


Numero_NF Integer,
Data_NF Date not null,
Valor_NF Float not null,
Primary key(Numero_NF)
);

3)

Create Table Itens(


Cod_Prod Integer,
NumNF Integer,
Num_Item Integer not null,
Qde_Item Float not null,
PrimaryKey(Cod_Prod,NumNF),
Foreign Key(Cod_Prod) references Produto(Codigo_Produto),
Foreign Key(NumNF) references Nota_Fiscal(Numero_NF)
);

4)

Alter Table Produto Modify Descricao_Produto Varchar(50);

247

banco de dados I.indb 247 16/09/11 15:41


Universidade do Sul de Santa Catarina

5)

Alter Table Nota_Fiscal Add ICMS float;

6)

Alter Table Produto Add Peso float;

7)

Alter Table Produto Add Data_Validade Date;

8)

Desc Produto;
ou
Describe Produto;

9)

Desc Nota_Fiscal;
ou
Describe Nota_Fiscal;

10)

Drop Table Itens;

248

banco de dados I.indb 248 16/09/11 15:41


Banco de Dados I

Unidade 6
1)

Unidade 7
1)
a1) Insert into Produto values (100, Caneta Azul, 1.00);
a2) Insert into Produto values (200, Borracha, 0.80);
a3) Insert into Produto values (300, Caderno de Desenho, 2.20);
a4) Insert into Produto values (400,Rgua,0.25);
b)
b1) Update Produto set Preco_Produto = 2.50
Where Descricao_Produto = Caneta Azul;
b2) Update Produto set Codigo_Produto = 400
Where Descricao_Produto=Rgua;
b3) Update Produto set Descricao_Produto = Caderno 12 Matrias
Where Descricao_Produto = Caderno de Desenho;
c1) Delete from Produtos where Preco_Produto < 1.00;
c2) Delete from Produtos where Codigo_Produto = 100;
c3) Delete from Produtos;

249

banco de dados I.indb 249 16/09/11 15:41


Universidade do Sul de Santa Catarina

Unidade 8
1)
a) Select * from Alunos where Upper(Sexo) = M;
b) Select * from Alunos where Upper(Nome) like %MEDEIROS
Order by Idade;
c) Select AVG (Idade) as Media from Alunos;
d) Select Max (Idade) from Alunos;
e) Select Count(Codigo) from Alunos
where Idade < 20;
f) Select Nome, Codigo from alunos
where Upper(Nome)=Upper(Lucas Giaretta);
g) Select Nome from Alunos
where Idade = (Select Min(Idade) from Alunos);
h) Select Count(Codigo) from Alunos
where (Idade < 10 and Idade <=20) and (Upper(Sexo)=M);
i) Select Count(Codigo) from Alunos
where Upper(Sexo)=F);

Unidade 9
1)
Select Professor.Nome_Professor,Curso.Descricao_Curso,Local.Nome_
Local
From Professor,Curso,Local
Where Professor.Codigo_Curso = Curso.Codigo_Curso AND
Curso.Codigo_Local = Local.Codigo_Local;

2)
Select Curso.Descricao_Curso
From Curso, Local

250

banco de dados I.indb 250 16/09/11 15:41


Banco de Dados I

Where upper(Local.UF) = SC AND


Local.Codigo_Local = Curso.Codigo_Local;

3)
Select Professor.Nome_Professor, Professor.Titulacao_Professor
From Professor, Curso
Where Upper(Curso.Descricao_Curso)=BANCO DE DADOS I AND
Curso.Codigo_Curso = Professor.Codigo_Curso;

4)
Select Local.Nome_Local, Local.Cidade_Local, Local.UF_Local
From Curso, Local
Where Curso.Vagas_Curso > 0 AND
Curso.Codigo_Local = Local.Codigo_Local;

5)
Select *
From Curso
INNER JOIN Local
ON Curso.Codigo_Local = Local.Codigo_Local;

6)
Select *
From Professor
INNER JOIN Curso
ON Professor.Codigo_Curso = Curso.Codigo_Curso;

7)
Select *
From Curso

251

banco de dados I.indb 251 16/09/11 15:41


Universidade do Sul de Santa Catarina

LEFT OUTER JOIN Professor


ON Professor.Codigo_Curso = Curso.Codigo_Curso;

8)
Select *
From Professor
RIGHT OUTER JOIN Curso
ON Professor.Codigo_Curso = Curso.Codigo_Curso;

252

banco de dados I.indb 252 16/09/11 15:41


Biblioteca Virtual

Veja a seguir os servios oferecidos pela Biblioteca Virtual aos


alunos a distncia:

Pesquisa a publicaes online


www.unisul.br/textocompleto
Acesso a bases de dados assinadas
www. unisul.br/bdassinadas
Acesso a bases de dados gratuitas selecionadas
www.unisul.br/bdgratuitas
Acesso a jornais e revistas on-line
www. unisul.br/periodicos
Emprstimo de livros
www. unisul.br/emprestimos
Escaneamento de parte de obra*

Acesse a pgina da Biblioteca Virtual da Unisul, disponvel no EVA


e explore seus recursos digitais.
Qualquer dvida escreva para bv@unisul.br

* Se voc optar por escaneamento de parte do livro, ser lhe enviado o


sumrio da obra para que voc possa escolher quais captulos deseja solicitar
a reproduo. Lembrando que para no ferir a Lei dos direitos autorais (Lei
9610/98) pode-se reproduzir at 10% do total de pginas do livro.

banco de dados I.indb 253 16/09/11 15:41

You might also like