Sei sulla pagina 1di 88

Tcnico em Informtica para

internet
Sistemas de Gerenciamento de Banco de Dados

Prof. Matheus Franco

So Joo da Boa Vista -SP


2010
Presidncia da Repblica Federativa do Brasil

Ministrio da Educao

Secretaria de Educao a Distncia

Este Caderno foi elaborado em parceria entre o Instituto Federal de So Paulo e o


Sistema Escola Tcnica Aberta do Brasil e-Tec Brasil.

Equipe de Elaborao Projeto Grfico


Instituto Federal de So Paulo Eduardo Meneses e Fbio Brumana

Coordenao Diagramao
Instituto Federal de So Paulo Juliana Ayres

Professor-autor Reviso
Matheus Franco Prof. Gustavo Aurelio Prieto e
Elizabeth Vanni

Ficha catalogrfica

Projeto grfico / [equipe de elaborao: Instituto Federal


de So Paulo . So Paulo : IFSP, 2010.
88 p. : il., tabs.
Inclui referncias
Desenvolvido para o Sistema Escola Tcnica Aberta do
Brasil.
ISBN: XXXXXXXXXXX-XX
I. Instituto Federal de So Paulo.
II. Escola Tcnica Aberta do Brasil.
Apresentao e-Tec Brasil

Amigo(a) estudante!

O Ministrio da Educao vem desenvolvendo Polticas e Programas para ex-


panso da Educao Bsica e do Ensino Superior no Pas. Um dos caminhos
encontrados para que essa expanso se efetive com maior rapidez e eficincia
a modalidade a distncia. No mundo inteiro so milhes os estudantes que
frequentam cursos a distncia. Aqui no Brasil, so mais de 300 mil os matricu-
lados em cursos regulares de Ensino Mdio e Superior a distncia, oferecidos
por instituies pblicas e privadas de ensino.

Em 2005, o MEC implantou o Sistema Universidade Aberta do Brasil (UAB),


hoje, consolidado como o maior programa nacional de formao de profes-
sores, em nvel superior.

Para expanso e melhoria da educao profissional e fortalecimento do Ensino


Mdio, o MEC est implementando o Programa Escola Tcnica Aberta do Brasil
(e-TecBrasil). Espera, assim, oferecer aos jovens das periferias dos grandes cen-
tros urbanose dos municpios do interior do Pas oportunidades para maior
escolaridade, melhores condies de insero no mundo do trabalho e, dessa
forma, com elevado potencialpara o desenvolvimento produtivo regional.

O e-Tec resultado de uma parceria entre a Secretaria de Educao Pro-


fissionale Tecnolgica (SETEC), a Secretaria de Educao a Distncia (SED)
do Ministrio daEducao, as universidades e escolas tcnicas estaduais e
federais.

O Programa apia a oferta de cursos tcnicos de nvel mdio por parte das
escolas pblicas de educao profissional federais, estaduais, municipais e, por
outro lado,a adequao da infra-estrutura de escolas pblicas estaduais e mu-
nicipais.

Do primeiro Edital do e-Tec Brasil participaram 430 proponentes de ade-


quao de escolas e 74 instituies de ensino tcnico, as quais propuse-
ram 147 cursos tcnicosde nvel mdio, abrangendo 14 reas profissionais.
O resultado desse Edital contemplou 193 escolas em 20 unidades federa-
tivas. A perspectiva do Programa que sejam ofertadas10.000 vagas, em
250 polos, at 2010.

Assim, a modalidade de Educao a Distncia oferece nova interface para


amais expressiva expanso da rede federal de educao tecnolgica dos l-
timos anos: aconstruo dos novos centros federais (CEFETs), a organizao
dos Institutos Federaisde Educao Tecnolgica (IFETs) e de seus campi.

O Programa e-Tec Brasil vai sendo desenhado na construo coletiva e partici-


pao ativa nas aes de democratizao e expanso da educao profissional
no Pas,valendo-se dos pilares da educao a distncia, sustentados pela for-
mao continuidade professores e pela utilizao dos recursos tecnolgicos
disponveis.

A equipe que coordena o Programa e-Tec Brasil lhe deseja sucesso na sua
formao profissional e na sua caminhada no curso a distncia em que est
matriculado(a).

Braslia, Ministrio da Educao setembro de 2008.


Sumrio

Palavra do Professor Autor 7

Indicao de cone 9

Apresentao da Disciplina 11

Aula 1 - Conceitos Fundamentais 13

Aula 2 - Modelos e Modelagem de dados 27

Aula 3 - O modelo de Dados Relacional 45

Aula 4 - Implementao do Banco de Dados 59

Aula 5 - Linguagem de Manipulao e Consulta de Dados 73

Aula 6 - Projeto Final da Dsiciplina 85

Referncias 87
Palavra do professor-autor

Caro aluno!

Antes de tudo vou me apresentar, sou o professor Matheus Franco, mestre em


Sistemas de Produo, especialista em Redes e Aplicaes Distribudas pela
PUC Minas, bacharel em Cincia da Computao pela Universidade de Alfenas.
Atualmente sou Professor do Ensino Tcnico e Tecnolgico do Instituto Federal
de Educao, Cincia e Tecnologia de So Paulo no Campus de So Joo da
Boa Vista. Possuo experincia em Cincia da Computao, atuando principal-
mente nas reas de: redes de computadores, redes neurais, banco de dados,
programao SQL, sistemas distribudos e de alta disponibilidade (Clusters).

Desejo que tenha um timo aprendizado!

Um grande abrao!

Prof. Matheus Franco

Sistemas de Gerenciamento de Banco de Dados 7 e-Tec Brasil


Indicao de cone

Os cones so elementos grficos utilizados para ampliar as formas de lingua-


gem e facilitar a organizao e a leitura hipertextual

Ateno: indica pontos de maior relevncia no texto.

Saiba mais: oferece novas informaes que enriquecem o assunto ou curiosidades


e notcias recentes relacionadas ao tema estudado.

Glossrio: indica a definio de um termo, palavra ou expresso utilizada no texto.

Mdias Integradas: remete o tema para outras fontes: livros, filmes, msicas, sites,
programas de TV.

Atividades de aprendizagem: apresenta atividades em diferentes nveis de apren-


dizagem para que o estudante possa realiz-las e conferir o seu domnio do tema
estudado.

Sistemas de Gerenciamento de Banco de Dados 9 e-Tec Brasil


Apresentao da Disciplina

Esta disciplina apresenta uma viso introdutria sobre banco de dados. A n-


fase ser no modelo relacional, atualmente o modelo mais

utilizado na indstria. Abordaremos aspectos tericos, tais como:

processamento de consultas e cardinalidade.

Durante a disciplina, ser desenvolvido um trabalho que utilizar os tpicos


estudados proporcionando experincia na utilizao dos conceitos estudados.
Analisaremos tambm os principais Sistemas de Gerenciamento de Bando de
Dados existentes no Mercado.

Ao final desta aula, voc aluno dever ter assimilado os conceitos fundamen-
tais sobre Banco de Dados e de Sistemas de Gerenciamento de Banco de Da-
dos, assim como os aspectos de acesso, integridade, modelagem e implemen-
tao de um banco de dados relacional.

Sistemas de Gerenciamento de Banco de Dados 11 e-Tec Brasil


Projeto instrucional

Disciplina: Sistemas de Gerenciamento do Banco de Dados

(carga horria: 60h).

Ementa: Idem plano de ensino.


Aula I - Conceitos Fundamentais

Objetivos da aula

- Apresentar os conceitos bsicos sobre banco de dados;

- Apresentar as principais caractersticas de um Sistema de Gerencia-


mento de Banco de Dados.

1.1 Introduo
Todos ns, em nosso dia a dia, temos a necessidade de armazenar e recuperar
dados. Cadernos de endereos, listas de telefones, dados

financeiros, receitas, enfim, estamos sempre lanando mo de memrias au-


xiliares. O ideal seria que estas memrias pudessem ser seguras, confiveis e
estivessem disponveis quando precisssemos dela. Um dado guardado, mas
que no sabemos como recuperar praticamente to intil quanto se no
existisse. Assim, temos uma grande necessidade de armazenar informaes
que no se encontram isoladas, como por exemplo, as fichas de matricula de
um aluno que contm informaes diversas sobre o mesmo, conforme a figura
abaixo.

Figura 1.1 : Ficha de um aluno

Sistemas de Gerenciamento de Banco de Dados 13 e-Tec Brasil


Alm de uma forma adequada para definir o armazenamento destas informa-
es, os usurios desejam realizar operaes sobre esta coleo de dados, tais
como: adicionar novos dados, consultar um determinado subconjunto de da-
dos, atualizar ou modificar a estrutura dos dados e eliminar informaes no
mais necessrias.

Uma soluo para este problema foi apresentada com o advento da tecnolo-
gia em Bancos de Dados (BD, Database em Ingls). Um banco de dados uma
coleo de dados relacionados. Os dados so fatos que podem ser gravados e
possuem um significado implcito. Por exemplo, considere o exemplo anterior
da ficha com dados de um aluno ou uma lista telefnica. Esses dados podem
ser armazenados em uma ficha, agenda ou no computador por meio de apli-
cativos como o Microsoft Excel ou Access. Essas informaes tm um signifi-
cado implcito, portanto formam um banco de dados.

Algumas definies mais precisas de Banco de Dados podem ser (ELMASRI &
NAVATHE, 2005):

a) Um Banco de Dados uma coleo logicamente coerente de dados com


um determinado significado inerente. Isto significa que um conjunto alea-
trio de dados no pode ser considerada um Banco de Dados.

b) Um Banco de Dados projetado, construdo e composto por um conjunto


de dados para um propsito especfico (como no nosso exemplo acima
para armazenar um conjunto de informaes de alunos). Existe um grupo
de usurios ou algumas aplicaes pr-concebidas onde estes dados sero
utilizados.

c) Um Banco de Dados representa aspectos de uma parte restrita do mundo


real, denominado de mini-mundo. Alteraes que ocorra no mini-mundo
so refletidas em todo o Banco de Dados.

Alm do conceito de BD, existe o conceito de Sistema de Gerenciamento de


Bancos de Dados (SGBD), que uma coleo de programas que permite ao
usurio definir, construir e manipular um Banco de Dados para as mais diversas
aplicaes. O objetivo principal de um sistema de banco de dados possibi-
litar um ambiente que seja adequado e eficiente para uso na recuperao e
armazenamento de informaes.

e-Tec Brasil 14 Tcnico em Informtica para Internet


Figura 1.2 Sistema de Gerenciamento de Banco de Dados

Banco de Dados e seu software so juntos denominados de Sistema de Bancos


de Dados (SBD).

Imagine um armrio de ao, com vrias gavetas, em cada gaveta contm algu-
ma informao (como a ficha do aluno) que esto agrupadas de acordo com
seu tipo. O armrio no caso forma de gerenciamento dos dados ali contidos,
l podemos: inserir, excluir, selecionar ou alterar algum documento que ali
contenha. Neste primeiro momento podemos pensar que um banco de dados
computacional consiste em levar os dados deste armrio de ao para o com-
putador, porm seguiremos algumas regras para que o armazenamento seja
mais eficiente.

1.2. HISTRIA

Os primeiros SBDs foram lanados no mercado no final da dcada de 60 e


eram conceitualmente muito simples, de acordo com as necessidades das apli-
caes da poca. No inicio as empresas que

impulsionaram este segmento foram a IBM, ORACLE e SYBASE. Assim como


outras tecnologias na computao, os fundamentos de bancos de dados
relacionais nasceram na empresa IBM, nas dcadas de 1960 e 1970, por meio
de pesquisas de funes de automao de escritrio. Foi durante um pero-
do da histria nas quais as empresas verificaram que era necessrio empregar
muitas pessoas, alm do alto custo para fazer trabalhos, tais como: armazenar
e organizar seus arquivos. Por este motivo, eram importantes os esforos e in-
vestimentos em pesquisa para obter-se um meio mais barato e eficiente de
armazenamento de dados.

Sistemas de Gerenciamento de Banco de Dados 15 e-Tec Brasil


Em 1970 a IBM publicou o primeiro trabalho sobre bancos de dados relacio-
nais. Este trabalho tratava sobre o uso de clculo e lgebra relacional para que
usurios no tcnicos pudessem manipular grande quantidade de informa-
Um banco de dados es.
relacional organiza
seus dados em rela- Devido natureza tcnica e a relativa complicao matemtica, o significado e
es. Cada relao proposio do trabalho no foram prontamente realizados. Assim, a IBM mon-
pode ser vista como tou um grupo de pesquisa conhecido como System R.
uma tabela, onde
cada coluna corres- O projeto do Sistema R tinha como proposta a criao de um sistema de banco
ponde a atributos da de dados relacional o qual eventualmente se tornaria um produto. Os primei-
relao e as linhas ros prottipos foram utilizados por vrias organizaes, como MIT Sloan Scho-
correspondem s tu- ol of Management. Novas verses foram testadas com empresas de aviao.
plas ou elementos
da relao. Em uma O Sistema R evoluiu para SQL/DS tornando-se o DB2. O grupo do Sistema R
nomenclatura mais criou a Structured Query Language (SQL) - Linguagem de Consulta Estrutura-
prxima quela de da. Esta linguagem tornou-se um padro na indstria para bancos de dados
sistemas de arqui- relacionais e hoje em dia um padro ISO (International Organization for Stan-
vos, muitas vezes as dardization).
tuplas so denomi-
nadas registros e os Mesmo a IBM sendo a empresa que inventou o conceito original e o padro
atributos, campos. SQL, ela no produziu o primeiro sistema comercial de banco de dados. Isto foi
realizado pela Honeywell Information Systems Inc., tendo seu sistema lanado
em junho de 1976. O sistema foi desenvolvido com base em muitos dos prin-
cpios que a IBM concebeu, mas foi modelado e implementado fora da IBM.

1.3. Usurios (Atores De um Banco de Dados)

Um Banco de Dados pode apresentar diversos usurios cada qual com uma
necessidade em especial, e com um envolvimento diferente com os dados. Os
usurios podem ser classificados em categorias:

e-Tec Brasil 16 Tcnico em Informtica para Internet


Administradores de Bancos de Dados (DBA): em qualquer organizao
onde muitas pessoas compartilham muitos recursos, existe a necessidade
de um administrador chefe para supervisionar e gerenciar estes recursos.
Em um ambiente de base de dados, o recurso primrio a prpria base de
dados e os recursos secundrios so o prprio SGBD e software relaciona-
dos. A administrao desses recursos de responsabilidade do DBA (Da-
tabase Administrator). O DBA responsvel por autorizar acesso base
de dados e coordenar e monitorar seu uso, como tambm responsvel
por problemas, tais como: quebra de segurana ou baixo desempenho. Em
grandes organizaes, existe uma equipe de DBAs;

Analistas de Bancos de Dados (Projetistas): possuem a responsabilidade de


identificar os dados a serem armazenados no BD e pela escolha da estru-
tura apropriada utilizada para armazen-los. Eles devem se comunicar com
os possveis usurios do BD, obter a viso dos dados que cada um possui,
integrando-as de forma a se obter uma representao adequada de todos
os dados. Estas vises so ento analisadas e, posteriormente, integradas
para que, ao final, o projeto da base de dados possa ser capaz de dar supor-
te aos requisitos de todos os grupos de usurios;

Usurios Finais: existem profissionais que precisam ter acesso base de


dados para consultar, modificar e gerar relatrios. A base de dados existe
para estes usurios. Podem ser usurios comuns do sistema, analistas de
negcios ou usurios avanados que necessitam de uma maior interao
com o BD.

Analistas de Sistemas e Programadores de Aplicaes: Os analistas de-


terminam os requisitos dos usurios finais e desenvolvem especificaes
para transaes que atendam estes requisitos, e os programadores im-
plementam estas especificaes, como: programas, testando, depurando,
documentando e dando manuteno no mesmo. importante que, tanto
analistas quanto programadores, estejam a par dos recursos oferecidos.

Sistemas de Gerenciamento de Banco de Dados 17 e-Tec Brasil


1.4. NVEIS DE ABSTRAO

A arquitetura ANSI/SPARC prev mltiplas vises de dados, um esquema con-


ceitual (lgico) e um esquema interno (fsico). Um SBD se divide em geral em
trs nveis:

Nvel Externo: possui as diversas descries do BD de acordo com os gru-


pos de usurios.

Nvel Conceitual: descreve a estrutura de todo o BD para uma determina-


da comunidade de usurios, ocultando detalhes sobre a organizao fsica
dos dados e apresentando a descrio lgica dos dados e das ligaes exis-
tentes entre eles.

Nvel Interno: descreve a estrutura de armazenamento fsico dos dados do


BD, descreve o modelo fsico dos dados que inclui detalhes sobre os cami-
nhos de acesso aos dados internamente

Fonte: ELMASRI & NAVATHE, 2005

Figura 1.4 Vises de um banco de dados

Sobre os nveis de abstrao de um banco de dados podemos pensar assim:


Nvel externo o que o usurio pensa e quer e deseja visualizar, nvel concei-
tual como o projetista ir implementar o banco de dados, e nvel interno
como estes dados sero armazenados, formas de acesso fsico por exemplo

e-Tec Brasil 18 Tcnico em Informtica para Internet


Observe que os trs nveis apresentam apenas descries dos dados. Como os
trs nveis apresentam descries diferentes para os mesmos dados, torna-se
necessrio converter uma representao em outra, ou seja, definir mapeamen-
tos de dados entre os nveis.

1.5. SGBD

Um Sistema de Gerenciamento de Bancos de Dados tem como principais pro-


priedades:

Um Sistema de Gerenciamento de Bancos de Dados tem como principais


propriedades.

Controle de Redundncia: Em um sistema tradicional de controle de arqui-


vos cada usurio normalmente apresenta seus prprios arquivos armaze-
nando o conjunto de dados que de seu interesse, e nestes casos comum
ocorrer redundncia de dados. Esta redundncia consiste no armazena-
mento de uma mesma informao em locais diferentes, o que pode pro-
vocar srios problemas. Alguns destes problemas consistem inicialmente
no aumento de esforo computacional para realizar a atualizao destes
dados; aumento do espao necessrio para o armazenamento dos dados.
O problema mais srio que a representao dos dados desta forma pode
tornar-se inconsistente, pois duas informaes podem aparecer em locais
distintos, mas apresentando valores diferentes. Em um sistema de BD as
informaes s se encontram armazenadas em um nico local ou esto
existindo duplicao controlada dos dados.

Compartilhamento dos Dados: Um SGBD deve incluir um software para o


controle de concorrncia ao acesso dos dados em um ambiente multiusu-
rio, de forma que possibilite o compartilhamento dos dados, garantindo
que se vrios usurios tentem realizar operaes de atualizao sobre um
mesmo conjunto de dados, o resultado destas operaes possa ser correto
e consistente.

Controle de Acesso: Quando vrios usurios compartilham os dados, co-


mum que alguns no apresentem autorizao para acesso a todo o BD.
Por exemplo, os dados do faturamento de uma empresa podem ser con-
siderados confidenciais e, desse modo, somente pessoas autorizadas de-
vem ter acesso. Alm disso, pode ser permitido, a alguns usurios, apenas
a recuperao dos dados. J, para outros, so permitidas a recuperao e

Sistemas de Gerenciamento de Banco de Dados 19 e-Tec Brasil


a modificao. Assim, o tipo de operao de acesso - recuperao ou mo-
dificao - pode tambm ser controlado. Tipicamente, usurios e grupos
de usurios recebem uma conta protegida por senhas, que usada para
se obter acesso base de dados, o que significa dizer que contas diferen-
tes possuem restries de acesso diferentes. Um SGBD deve fornecer um
subsistema de autorizao e segurana, que usado pelo DBA para criar
contas e especificar restries nas contas. O SGBD deve ento obrigar es-
tas restries automaticamente.

Possibilidade de Mltiplas Interfaces: Diversos usurios com nveis de


conhecimento tcnico diferentes representam necessidades diversas no
que se refere aos tipos de interfaces fornecidas pelo SGBD. Interfaces para
consultas de dados, programao, e interfaces baseadas em menus ou em
linguagem natural, so exemplos de alguns tipos que podem estar dispo-
nveis

Um usurio com conhecimento tcnico pode utilizar uma interface em que


recupera dados mediante uma linguagem de consulta de dados, como SQL,
j usurios com menor conhecimento tcnico devem utilizar uma interface
grfica onde visualizam os dados e os selecionam para obter a consulta que
necessitam ao invs de utilizarem uma linguagem para isto

Representao de Relacionamento Complexo entre Dados: uma base de


dados pode possuir uma variedade de dados que esto inter-relacionados
de muitas formas. Um SGBD deve ter a capacidade de representar uma va-
riedade de relacionamentos complexos entre dados, bem como recuperar
e modificar dados relacionados de maneira fcil e eficiente.

Forar Restries de Integridade: A maioria das aplicaes de um banco


de dados apresenta servios que possibilitam garantir a integridade dos
dados no BD. A restrio de integridade mais simples consiste na especi-
ficao do padro de formato para os dados ou valores assumidos como
um padro.

e-Tec Brasil 20 Tcnico em Informtica para Internet


Como exemplo de restrio de integridade, podemos pensar quando quere-
mos armazenar o nome e a idade de uma pessoa. O nome deve ser uma cadeia
de caracteres (string) menor que 50 caracteres alfabticos, j a idade deve ser
um dado numrico inteiro menor que 150. Estes so dois exemplos de restri-
es que podemos aplicar ao armazenar dados com intuito de garantir sua
integridade

Garantir Backup e Restaurao de Dados: Um SGBD deve prover recursos


para realizao de cpias de segurana e restaurao caso ocorra falhas de
hardware ou software. O subsistema de backup e restaurao do SGBD
o responsvel pela restaurao. Por exemplo, se o sistema de computador
falhar no meio da execuo de um programa que esteja realizando uma al-
terao complexa na base de dados, o subsistema de restaurao respon-
svel em assegurar que a base de dados seja restaurada no estado anterior
ao incio da execuo do programa. Alternativamente, o subsistema de res-
taurao poderia assegurar que o programa seja re-executado a partir do
ponto em que havia sido interrompido.

Alguns exemplos de
1.5.1. VANTAGENS DE UM SGBD SGBDs modernos
que apresentam as
A escolha da tecnologia adequada de Banco de Dados e sua correta utilizao vantagens citadas:
trazem benefcios maioria das organizaes, tais como: MySQL, Oracle, MS
SQL Server Post-
greSQL. Para exem-
Potencial para garantir Padres: a abordagem de base de dados permite plificar nossas aulas
que o Administrador do Banco (DBA) defina e force a padronizao entre utilizaremos o SGBD
os usurios da base de dados em grandes organizaes. Isso facilita a co- MySQL, que reco-
municao e a cooperao entre vrios departamentos, projetos e usu- mendo a todos j
rios. Padres podem ser definidos para: formatos de nomes, elementos de realizarem o down-
dados, telas, relatrios, terminologias, etc. O DBA pode obrigar a padroni- load no site: http://
zao em um ambiente de base de dados centralizado, muito mais facil- www.mysql.com/
mente que em um ambiente onde cada usurio ou grupo tem o controle downloads/mysql/,
de seus prprios arquivos e software; e posteriormente
realizarem a instala-
Reduo do Tempo de Desenvolvimento de Aplicaes: um dos principais o.
argumentos de venda para o uso da abordagem de um banco de dados
o tempo reduzido para o desenvolvimento de novas aplicaes, tal como a

Sistemas de Gerenciamento de Banco de Dados 21 e-Tec Brasil


recuperao de certos dados da base de dados para a impresso de novos
relatrios. Projetar e implementar uma nova base de dados pode tomar
mais tempo do que escrever uma simples aplicao de arquivos especia-
lizada. Porm, uma vez que a base de dados esteja em uso, geralmente o
tempo para se criar novas aplicaes, usando-se os recursos de um SGBD,
bastante reduzido. O tempo para se desenvolver uma nova aplicao em
um SGBD estimado em 1/4 a 1/6 do que o tempo de desenvolvimento,
usando-se apenas o sistema de arquivos tradicional;

Independncia de Dados: As aplicaes de banco de dados no devem de-


pender da forma como os dados esto representados e/ou armazenados;

Flexibilidade: Pode ser necessrio alterar a estrutura de uma base de da-


dos devido a mudanas nos requisitos. Por exemplo, um novo grupo de
usurios pode surgir com necessidade de informaes adicionais, no dis-
ponveis atualmente na base de dados. Um SGBD moderno permite que
tais mudanas na estrutura da base de dados sejam realizadas sem afetar a
maioria dos programas de aplicaes existentes;

Disponibilidade para atualizar as informaes: Um SGBD disponibiliza o


banco de dados para todos os usurios. Imediatamente aps um usurio
modificar uma base de dados, todos os outros usurios sentem imediata-
mente esta modificao. Essa disponibilidade de informaes atualizadas
essencial para muitas aplicaes, tais como: sistemas de reservas de pas-
sagens areas ou bases de dados bancrias. Isso somente possvel devido
ao subsistema de controle de concorrncia e restaurao do SGBD;

Economia de Escala: a abordagem de SGBDs permite a consolidao de


dados e de aplicaes, reduzindo-se, desse modo, o desperdcio em ativi-
dades redundantes de processamento em diferentes projetos ou departa-
mentos. Isto possibilita organizao como um todo investir em processa-
dores mais poderosos e perifricos de armazenamento e de comunicao
mais eficientes do que cada departamento adquirir seu prprio (menos
potente) equipamento, o que reduz o custo total da operao e gerencia-
mento.

Apesar de todas as facilidades oferecidas por um banco de dados, um pro-


jeto de implantao pode gerar um alto custo inicial para a organizao.

e-Tec Brasil 22 Tcnico em Informtica para Internet


1.5.2. LINGUAGENS

Uma vez que o projeto do BD tenha se completado e um determinado SGBD


tenha sido escolhido para a sua implementao, o primeiro

passo consiste em realizar uma especificao dos esquemas conceituais e in-


ternos, e os respectivos mapeamentos entre eles. Para estas etapas o SGBD
oferece algumas linguagens apresentadas abaixo:

Linguagem de Definio de Dados (DDL - Data Definition Language): Uti-


lizada pelos analistas e projetistas do BD para a definio dos esquemas
do banco de dados.O SGBD tambm apresentar um interpretador para a
DDL, o qual ser responsvel pelo processamento dos comandos da DDL,
e realiza o armazenamento do esquema definido em estruturas internas
do BD. Por exemplo, os comandos para criar, definir ndice de uma tabela
fazem parte da linguagem de definio de dados. Uma vez definido e pre-
enchido o BD com os seus dados, estes normalmente sofrero uma srie de
operaes de acesso s informaes nele armazenado.

Linguagem de Manipulao de Dados (DML): O SGBD fornece esta lingua-


gem para a especificao das operaes de acesso ao banco. Os comandos
da DML podem aparecer embutidos em outra linguagem (geralmente uma
linguagem de programao de alto nvel), e neste caso esta denomina-
da de Linguagem hospedeira, e DML denominada de Sublinguagem de
dados. De outra forma, se DML for utilizada isoladamente de uma forma
interativa, passa a ser denominada de Linguagem de consulta (ou query
language como a SQL).

Linguagem de Controle de Dados (DCL): No controle de acesso e transa-


es dos dados utiliza-se esta linguagem, que inclusive possibilita estabe-
lecer os diversos nveis de segurana de cada usurio.

RESUMO DA SEMANA

Nesta semana introdutria, definimos um banco de dados como uma cole-


o de dados relacionados, na qual os dados significam fatos registrados. Um
SGBD um pacote de software para implementao e manuteno de dados
computadorizados. Em seguida, discutimos as categorias principais de usu-
rios de um banco de dados. Depois, apresentamos uma lista de capacidades

Sistemas de Gerenciamento de Banco de Dados 23 e-Tec Brasil


que devem ser oferecidas por um software SGBD. Finalmente, vimos as lingua-
gens envolvidas com banco de dados.

Frum

Realize uma pesquisa sobre a seguinte questo: SGBDs gratuitos e pagos. Exemplos, vantagens e
desvantagens.

Atividades de aprendizagem

Para apoio comple- 1. Um conjunto de programas que apiam a criao, manuteno e opera-
mentar a esta pri- o de um banco de dados so chamadas: ________________________
meira semana sugi-
ro dois vdeos para 2. A linguagem usada para definir tabelas, esquemas e domnios de atribu-
maior contextualiza- to de dados chamada:
o:
a. ( ) linguagem de definio de armazenamento
http://www.
youtube.com/ b. ( ) linguagem de definio de banco de dados
watch?v=qgnuH_
qSI9o c. ( ) linguagem de definio de dados

http://www.youtu- d. ( ) linguagem de definio de vises


be.com/watch?v=tE
EAIs6aB2s&feature= e. ( ) linguagem de definio de esquema
related
3. A linguagem de manipulao do banco de dados permite:

a. ( ) modificar o esquema conceitual

b. ( ) modificar o esquema interno

c. ( ) especificar atualizaes e recuperaes

d. ( ) modificar o esquema externo

e. ( ) acessar o contedo do banco de dados

f. ( ) modificar a estrutura do banco de dados

e-Tec Brasil 24 Tcnico em Informtica para Internet


4. Qual das opes abaixo no consiste em uma vantagem de se usar bancos
de dados?

a. ( ) informaes atualizadas

b. ( ) flexibilidade

c. ( ) redundncia controlada

d. ( ) interfaces mltiplas com o usuriow

e. ( ) Investimentos iniciais baixos em hardware, software e treinamento.

5. Quem ou o que responsvel por manter a consistncia do banco de da-


dos?

a) ( ) aplicaes de banco de dados

b) ( ) vendedor do SGBD

c) ( ) todas as anteriores

d) ( ) administrador do sistema de banco de dados

e) ( ) usurios finais

f ) ( ) projetista do banco de dados

6. DBA significa ____________________

7. Realize uma pesquisa na internet e descreva as funcionalidades de ao me-


nos 3 SGBDs existentes.

________________________________________________________________

________________________________________________________________

________________________________________________________________

Sistemas de Gerenciamento de Banco de Dados 25 e-Tec Brasil


8. Na empresa onde trabalha, ou em outro local que possua um sistema de
informao que conhea, qual o SGBD utilizado? Quem interage com o
banco de dados? Quais vantagens voc enxerga em sua utilizao em con-
traposio se fosse necessrio o armazenamento de forma manual como
em um armrio de ao.

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

e-Tec Brasil 26 Tcnico em Informtica para Internet


Aula 2 Modelos e Modelagem de Dados

Objetivos da Aula

O Objetivo desta aula apresentar os modelos de dados existentes,


bem como o processo de modelagem de dados utilizando o Modelo
Entidade Relacionamento.

2.1. Modelos de Dados

Os SGBDs evoluram de sistemas de arquivos de armazenamento em disco,


criando novas estruturas de dados com o objetivo de armazenar informaes
de forma mais eficiente e segura. Com o tempo, os SGBDs passaram a utilizar
diferentes formas de representao, ou modelos de dados, para descrever a
estrutura das informaes contidas em seus bancos de dados. O modelo de
dados a principal ferramenta no fornecimento de informaes sobre a abs-
trao realizada na parte de interesse especfico no mundo real. Os seguintes
modelos de dados so normalmente utilizados pelos SGBDs: modelo hierr-
quico, modelo em redes, modelo relacional (amplamente usado) e o modelo
orientado a objetos.

2.1.1. Modelo Hierrquico

O modelo hierrquico foi o primeiro a ser reconhecido como um modelo de


dados. Nesse modelo de dados, os dados so estruturados em hierarquias ou
rvores. Os ns das hierarquias contm ocorrncias de registros, onde cada
registro uma coleo de campos (atributos), cada um contendo apenas uma
informao. O registro da hierarquia que precede a outros o registro-pai, os
outros so chamados de registros-filhos.

Uma ligao uma associao entre dois registros. O relacionamento entre


um registro-pai e vrios registros-filhos possui cardinalidade 1:N (um para

Sistemas de Gerenciamento de Banco de Dados 27 e-Tec Brasil


muitos, ou seja um pai pode ter vrios filhos). Os dados organizados segundo
este modelo podem ser acessados segundo uma seqncia hierrquica com
uma navegao do topo para as folhas e da esquerda para a direita. Um regis-
tro pode estar associado a vrios registros diferentes, desde que seja replicado.
A replicao possui duas grandes desvantagens: pode causar inconsistncia
de dados quando houver atualizao e o desperdcio de espao inevitvel.
Caractersticas:

Cada pai pode ter vrios filhos.

Cada filho pode ter apenas um pai.

Duas entidades podem possuir apenas um relacionamento.

Qualquer recuperao de dados deve obrigatoriamente percorrer a estru-


tura da rvore. (pai a filhoa neto...)

Como exemplos de banco de dados que utilizam o modelo hierrquico pode-


mos citar: IMS e System 2.

Vamos tomar como exemplo a figura 2.1, uma agncia bancria como pai de
um relacionamento pode ter vrios clientes e um cliente pode ter vrias con-
tas, porm se um cliente pertencer a mais de uma agncia, seus dados tero
que ser replicados, o que pode causar inconsistncia e desperdcio de espao.

Figura 2.1 Exemplo modelo hierrquico

e-Tec Brasil 28 Tcnico em Informtica para Internet


2.1.2. MODELO EM REDE

O modelo em rede surgiu como uma extenso ao modelo hierrquico, elimi-


nando o conceito de hierarquia e permitindo que um mesmo registro estives-
se envolvido em vrias associaes. No modelo em rede, os registros so orga-
nizados em grafos onde aparece um nico tipo de associao que define uma
relao 1:N (um para muitos) entre 2 tipos de registros: proprietrio e membro.

Ao contrrio do Modelo Hierrquico, em que qualquer acesso aos dados pas-


sa pela raiz, o modelo em rede possibilita acesso a qualquer n da rede sem
passar pela raiz, pois o modelo em rede permite a existncia de entidades pais
com muitos filhos e de entidades filhos com muitos pais.

Estes dois modelos: Hierrquico e Rede so orientados a registros, isto , qual-


quer acesso base de dados insero, consulta, alterao ou remoo
feito em um registro de cada vez.

O modelo em rede apresenta como principal vantagem a possibilidade de


uma modelagem mais prxima da realidade, porm no se firmou no mercado
pelo surgimento do modelo relacional que veremos a seguir.

Vamos tomar como exemplo a figura 2.2, um equipamento pode ter vrias
bombas e motores, e estes dois podem sofrer manuteno mecnica. Assim
neste modelo perde-se a restrio hierrquica.

Figura 2.2: Exemplo modelo em rede

So exemplos de SGBDs em rede: DBMS10,IDSII,DMSII,IMAGE.

Sistemas de Gerenciamento de Banco de Dados 29 e-Tec Brasil


2.1.3. MODELO RELACIONAL

Os SGBDs que apresentaram maior sucesso e confiabilidade no mercado so


os que adotaram o Modelo Relacional como base para sua construo. O Mo-
delo Relacional, de modo geral, permite que os dados sejam vistos como ta-
belas. Ora, esta uma maneira muito natural de armazenar e recuperar dados.
Geralmente, quando fazemos uma relao de dados, tendemos a organiz-los
em linhas e colunas, no formato de tabelas. Esta uma importante razo para
o sucesso das planilhas eletrnicas no mundo dos negcios.

O modelo relacional surgiu devido s necessidades de se aumentar a indepen-


dncia de dados nos sistemas gerenciadores de banco de dados, prover um
conjunto de funes apoiadas em lgebra relacional para armazenamento e
recuperao de dados alm de permitir processamento dedicado. O Modelo
relacional revelou-se ser o mais flexvel e adequado ao solucionar os vrios
problemas que se colocam no nvel da concepo e implementao da base
de dados. A estrutura fundamental do modelo relacional a relao (tabela).
Uma relao constituda por um ou mais atributos (campos) que traduzem
o tipo de dados a armazenar. Cada instncia do esquema (linha) chamada
de tupla (registro). O modelo relacional no tem caminhos pr-definidos para
se fazer acesso aos dados como nos modelos que o precederam. Este modelo
implementa estruturas de dados organizadas em relaes. Porm, para traba-
lhar com essas tabelas, algumas restries precisaram ser impostas para evitar
aspectos indesejveis, como a redundncia e perda de dados e a incapacidade
de representar parte da informao. Essas restries so: integridade referen-
cial, chaves e integridade de junes de relaes.

Vamos tomar como exemplo a figura 2.3, um aluno pode cursar vrias disci-
plinas e uma disciplina pode ser cursada por vrios alunos criando assim uma
relao muitos para muitos entre as tabelas Aluno e Disciplina.

Figura 2.3 Exemplo modelo relacional

e-Tec Brasil 30 Tcnico em Informtica para Internet


Atualmente, mesmo que informalmente, o Modelo Relacional visto no mer-
cado quase como um sinnimo de Sistemas de Banco de Dados. Normalmen-
te, quando nos referimos a banco de dados, os usurios j imaginam um con-
junto de tabelas relacionadas.

Em nossa disciplina utilizaremos um SGBD que utiliza o Modelo Relacional


como base para sua construo. Atravs das regras e conceitos deste modelo,
enxergaremos nosso banco de dados implementado computacionalmente
como um conjunto de tabelas inter-relacionadas.

2.1.4. MODELO DE DADOS ORIENTADO OBJETO

Representam os dados como colees que obedecem a propriedades. So


modelos geralmente conceituais dispondo de poucas aplicaes reais. Neste
Modelo no seria interessante a existncia de uma tabela de funcionrios e
dentro dela alguma referncia para cada registro, de forma a podermos saber
onde (em que departamento) o funcionrio est alocado. Um conjunto de re-
gras disponibilizaria em separado os funcionrios da fbrica, que, no entanto,
estariam agrupados aos demais, para o sistema de folha de pagamento.

2.2. MODELAGEM DE DADOS

Utilizaremos para nossa modelagem o modelo Entidade Relacionamento, pois


este um modelo de dados conceitual de alto nvel, cujos conceitos foram
projetados para estar mais prximo possvel da viso que o usurio tem dos
dados, no se preocupando em representar como estes dados estaro real-
mente armazenados de maneira fsica. O modelo ER utilizado principalmente
durante o processo de projeto conceitual de banco de dados.

Quando pensamos no Modelo Entidade Relacionamento temos trs conceitos


bsicos:

Conjunto de Entidades: Uma entidade pode ser vista como uma pessoa,
coisa ou objeto no mundo real que distinguvel de todos os outros ob-
jetos, como por exemplo, um cliente de um banco.

Figura 2.4 Entidade Cliente

Sistemas de Gerenciamento de Banco de Dados 31 e-Tec Brasil


J um conjunto um grupo de entidades do mesmo tipo que compartilham
os mesmos atributos, como por exemplo, um conjunto de clientes bancrios,
animais ou pessoas.

Figura 2.5 Conjunto de Entidades mundo real

Figura 2.6 Conjunto de Entidades Banco de Dados

Conjunto de Atributos: Uma entidade representada por um conjunto de


atributos. Possveis atributos do conjunto de entidades cliente, podem ser:
nome-cliente, cpf, rua e cidade-cliente. Possveis atributos do conjunto de
entidade CONTA so: nmero-conta e saldo. Para cada atributo, existe um
conjunto de valores permitidos chamado domnio daquele atributo. O do-
mnio do atributo nome-cliente pode ser o conjunto de todas as cadeias de
texto (strings) de certo tamanho.

Por exemplo, podemos limitar o tamanho do nome de uma pessoa a 50 carac-


teres, ento este seu domnio. Como tambm, o domnio do atributo nme-
ro-conta pode ser o conjunto de todos os inteiros positivos. O atributo idade
de uma entidade pessoa poderia ter como domnio os nmeros inteiros entre
0 e 150

Formalmente, um atributo uma funo que mapeia um conjunto de entida-


des em um domnio.

e-Tec Brasil 32 Tcnico em Informtica para Internet


Conjunto de Relacionamentos: Um relacionamento uma associao entre
diversas entidades. Por exemplo, podemos definir um relacionamento que
associa o cliente Jos Silva conta 401. Isto especifica que Jos Silva um
cliente com conta bancria nmero 401. Um conjunto de relacionamentos
uma coleo de relacionamentos do mesmo tipo. Esse relacionamento
pode ser representado pelo diagrama abaixo:

Figura 2.7 Exemplo relacionamento entre cliente e conta

Nosso projeto conceitual de Banco de Dados ser feito atravs da modelagem


de dados usando o Modelo Entidade-Relacionamento (ME-R). Este modelo
fornece as regras e conceitos para a criao de um Diagrama Entidade Relacio-
namento (DER), que dever representar o banco de dados em questo, como
por exemplo, um banco com vrios clientes e contas, uma loja de produtos de
beleza, de um consultrio odontolgico, uma indstria de peas, uma loca-
dora de vdeo, uma escola, enfim, o negcio a que este banco de dados deve
servir. Desta maneira, usaremos dois modelos tericos para a construo de
um banco de dados:

O Modelo Entidade Relacionamento para criao do projeto conceitual do


banco de dados;

O Modelo Relacional para a implementao em um ambiente computacio-


nal pr-existente. Este ambiente computacional pr-existente ser o nosso
Sistema Gerenciador de Banco de Dados Relacional - MySql.

Com intuito de realizar a transferncia entre modelos sero aplicadas as re-


gras de mapeamento do Modelo Entidade Relacionamento ME-R para o Mo-
delo Relacional MRel. Ou seja, para converter o diagrama conceitual de nosso
banco de dados em um conjunto de tabelas relacionadas que possa ser im-
plementado em um SGBD Relacional, usaremos um conjunto de passos. Este
processo chamado mapeamento do MER para o MRel.

Sistemas de Gerenciamento de Banco de Dados 33 e-Tec Brasil


Figura 2.8 Representao Mundo Real para Modelagem Banco de Dados

Para realizarmos o mapeamento dos dados entre os modelos, primeiramente


utilizaremos os requisitos coletados para construo e realizaremos a modela-
gem utilizando o Modelo Entidade Relacionamento, em seguida convertere-
mos os diagramas gerados em tabelas sobre o modelo relacional para imple-
mentarmos em um SGBD.

Figura 2.9 Implementao de um BD

Agora veremos como construir um diagrama Entidade Relacionamento DER


para o projeto de um banco de dados. Este ser o primeiro passo para a cons-
truo de nosso banco de dados. O Modelo Entidade Relacionamento MER
composto por Entidades e Relacionamentos sem nos esquecermos dos atri-
butos.

2.2.1. REPRESENTAES

A estrutura lgica geral de um banco de dados pode ser expressa graficamen-


te por um diagrama ER, que consiste nos seguintes componentes:

1. Retngulos que representam conjuntos de entidades;


2. Elipses que representam atributos;
3. Losangos que representam relacionamentos entre conjuntos de

e-Tec Brasil 34 Tcnico em Informtica para Internet


entidades;
4. Linhas que ligam atributos a conjuntos de entidades e conjun-
tos de entidades a relacionamentos. Alguns autores chamam as linhas
de arestas, em analogia s teorias de grafos e redes.

2.2.2. ENTIDADES E ATRIBUTOS

Como descrito acima, a representao para um conjunto de entidades um


retngulo e, para cada atributo, uma elipse, como por exemplo, um conjunto
de entidades Aluno pode possuir os atributos nome, pronturio e data de nas-
cimento:

Figura 2.10 Entidade com seus atributos

Este conjunto de entidades ALUNO possui os conjuntos de atributos Nome,


Prontuario e Data_Nasc. Uma entidade desse conjunto poderia ser {Iago,
10123, 2000-12-16).

2.2.3. CHAVE DE UM CONJUNTO DE ENTIDADES

importante poder especificar como entidades e relacionamentos so identi-


ficados. Conceitualmente, entidades e relacionamentos individuais so distin-
tos, mas em uma perspectiva de banco de dados a diferena entre eles precisa
ser expressa em termos de seus atributos. Uma restrio importante sobre en-
tidades a aplicao de uma chave nica. Um conjunto de entidades sem-
pre possui um atributo cujo valor diferente e vlido para cada entidade. Tal
atributo chamado atributo-chave, e seu valor usado para identificar cada
entidade de modo unvoco, nico, como por exemplo, o atributo CPF de uma
pessoa sempre nico, ou o pronturio de um aluno sempre nico. A chave
de um atributo ser sempre sublinhada.

Sistemas de Gerenciamento de Banco de Dados 35 e-Tec Brasil


Figura 2.11 Atributo chave de um entidade

possvel ocorrer situaes onde preciso mais de um atributo para identifi-


car cada entidade do conjunto. Por exemplo, o RG (registro geral) dos brasilei-
ros no identifica um nico cidado. possvel, que um mesmo nmero de RG
possa ocorrer em duas unidades diferentes da federao, ou seja, um mesmo
nmero de RG poderia ser emitido em So Paulo e Minas Gerais. Assim, para
ser identificador, o RG precisa ser composto com o valor do rgo Emissor, no
caso de So Paulo, SSP_SP. Estes dois atributos (RG e rgo Emissor) se, juntos,
identificam cada brasileiro. Nestes casos, quando necessrio mais de um atri-
buto, a chave do conjunto de entidades ser composta.

2.2.4. RELACIONAMENTOS

Nenhuma informao armazenada no Banco de Dados existe isoladamente.


Todos os elementos pertencentes ao mundo real (restrito) modelado de al-
guma forma esto associados a outros elementos. Normalmente estas asso-
ciaes representam aes fsicas ou alguma forma de dependncia entre os
elementos envolvidos. Um relacionamento uma associao entre diversas
entidades.

Por exemplo, vamos considerar um conjunto de relacionamentos TRABALHA


entre os conjuntos de entidades: EMPREGADO e DEPARTAMENTO que apre-
sentado na figura 2.18. Este relacionamento associa cada empregado com
o departamento em que ele trabalha. Cada instncia de relacionamento em
TRABALHA associa uma entidade empregado a uma entidade departamento.
Cada instncia de relacionamento conecta uma entidade EMPREGADO a uma
entidade DEPARTAMENTO. Na figura abaixo, os empregados e1, e3 e e6 traba-
lham para o departamento d1; e2 e e4 trabalham para d2; e e5 e e7 trabalham
para d3

e-Tec Brasil 36 Tcnico em Informtica para Internet


A representao dos conjuntos de entidades e de relacionamentos apresen-
tadas acima no Modelo Entidade Relacionamento representada na figura
abaixo:

Figura 2.12 Modelo ER para relacionamento TRABALHA

O conjunto de relacionamentos , portanto, representado por um losango. En-


quanto que para os conjuntos de entidades os atributos so obrigatrios, para
os conjuntos de relacionamentos, eles so optativos.

O conjunto de entidade s faz sentido quando especificamos seus atributos.

J um conjunto de relacionamentos (CR), nem sempre precisa possuir atribu-


tos. Sua existncia justifica-se apenas pela funo de relacionar uma ou mais
entidades. Em geral, os atributos dos conjuntos de relacionamentos, quando
existem, especificam dados sobre tempo (data, horrio), quantidades, valores,
enfim, atributos relativos a transaes, aes, ocorrncias, que caracterizam os
relacionamentos.

2.2.5. GRAU DE RELACIONAMENTO

O grau de um conjunto de relacionamentos indica o nmero de conjuntos de


entidades participantes. Um tipo de relacionamento de grau dois chamado
binrio, de grau trs de ternrio, de grau quatro quaternrio, acima disso, n-
-rio. A quantidade de Entidades envolvidas em um Relacionamento pode ser
determinada por sua semntica. Desta forma, podem-se categorizar os graus
de relacionamento em:
Unrio: o grau de Relacionamento que envolve um nico Tipo de Enti-
dade.

Figura 2.13 Exemplo de relacionamento Unrio

Sistemas de Gerenciamento de Banco de Dados 37 e-Tec Brasil


Binrio: o grau de Relacionamento que envolve dois Tipos de En-
tidades.

Figura 2.14 Exemplo de relacionamento binrio

Ternrio: o grau de Relacionamento que envolve trs Tipos de Entidades.

Figura 2.15 Exemplo de relacionamento ternrio

Quaternrio: o grau de Relacionamento que envolve quatro Tipos de En-


tidades.

Figura 2.16 Exemplo de relacionamento quartanrio

e-Tec Brasil 38 Tcnico em Informtica para Internet


A quantidade de Entidades envolvidas em cada Relacionamento determi-
nada pela Cardinalidade do grau de Relacionamento, ou seja, podemos esta-
belecer a quantidade mnima e mxima de Entidades envolvidas com cada
Entidade relacionada.

A Cardinalidade Mnima determina a quantidade mnima de Entidades re-


lacionadas por um nmero representativo, ou seja, 0 (zero) 1, 2, ...., N (mui-
tos).

A Cardinalidade Mxima determina a quantidade mxima de Entidades re-


lacionadas por um nmero representativo, ou seja, 1, 2, ...., N (muitos)

2.2.6. RESTRIES DE RELACIONAMENTO

Os relacionamentos entre entidades possuem certas restries que limitam as


combinaes possveis das entidades que dele participam. Uma destas res-
tries a razo de cardinalidade. A quantidade de Entidades envolvidas em
cada Relacionamento determinada pela Cardinalidade do Tipo de Relaciona-
mento, ou seja, pode-se estabelecer a quantidade mnima e mxima de Enti-
dades envolvidas com cada Entidade relacionada.

At agora vimos, de modo geral, como construir um diagrama de entidade


relacionamento (DER) para projetar um banco de dados. Aprendemos os qua-
tro principais construtores deste modelo: os conjuntos de entidades (CE), os
conjuntos de relacionamentos (CR), os atributos de entidades e relacionamen-
to. Agora, veremos um dos mais importantes conceitos do MER: a restrio
de razo de cardinalidade do relacionamento. O entendimento deste conceito
ser imprescindvel para o processo de mapeamento do diagrama entidade
relacionamento DER para o Modelo Relacional Mrel, ou seja, para transformar
o projeto conceitual do banco de dados em um conjunto de tabelas.

Para o grau de Relacionamento Binrio (que so mais comuns) podemos citar


que as Cardinalidades so as seguintes:

UM-PARA-MUITOS (1 : N) ou alternativamente (N : 1):


Vamos ver um exemplo. No relacionamento binrio TRABALHA, os conjuntos
de entidades DEPARTAMENTO : EMPREGADO foram representados a seguir
como tendo razo de cardinalidade 1:N (um para muitos) conforme DER abai-
xo.

Sistemas de Gerenciamento de Banco de Dados 39 e-Tec Brasil


Figura 2.17 Exemplo de Diagrama ER Um-Para-Muitos

J a figura abaixo apresenta o diagrama de ocorrncias para a cardinalidade


entre as entidades.

Fonte: ELMASRI & NAVATHE, 2005


Adaptado pelo autor
Figura 2.18 Diagrama de ocorrncias para o relacionamento um para muitos

Desta maneira, na empresa a qual este diagrama representa, cada entidade


EMPREGADO pode estar relacionada a apenas um DEPARTAMENTO (um em-
pregado pode trabalhar apenas para um departamento), mas cada entidade
DEPARTAMENTO pode estar relacionada a inmeras entidades EMPREGADO
(um departamento pode conter vrios empregados).

UM-PARA-UM (1 : 1):

Vejamos um exemplo de cardinalidade 1:1. No caso do relacionamento GE-


RENCIA
Fonte: ELMASRI & NAVATHE, 2005

Figura 2.19: Exemplo de diagrama de ocorrncias para o


relacionamento um para um

Uma entidade DEPARTAMENTO est relacionada a apenas um EMPREGADO,


que gerencia esse departamento. Este relacionamento 1:1, pois cada empre-
gado gerente pode gerenciar apenas um departamento e, dado um departa-
mento, este departamento pode ter apenas um gerente. Podemos ver que,
apenas uma seta sai de um empregado ligando-o a apenas um departamento,
e vice-versa. A representao deste relacionamento no DER seria:

e-Tec Brasil 40 Tcnico em Informtica para Internet


Figura 2.20: Exemplo diagrama ER para o relacionamento um para um

importante salientarmos que esta restrio de cardinalidade de UM-PARA-


-UM definida pela realidade da empresa que se deseja representar no banco
de dados. Se em outra empresa, for possvel que um mesmo empregado ge-
rencie diversos departamentos, a razo de cardinalidade 1:1 j no seria ade-
quada a esta representao e sim 1 : N.

MUITOS-PARA-MUITOS (N : M)

Para exemplificar a razo de cardinalidade N:M (muitos para muitos), tomemos


o relacionamento TRABALHA-EM entre EMPREGADO e PROJETO (ELMASRI &
NAVATHE, 2005). Vamos considerar que um empregado pode trabalhar em di-
versos projetos e que diversos empregados podem trabalhar em um projeto.
Fonte: ELMASRI & NAVATHE, 2005

Figura 2.21: Exemplo de diagrama de ocorrncia para o


relacionamento binrio muitos para muitos

A partir da figura 2.21 apresentada acima, podemos ver que o empregado e2


trabalha nos projetos p1 e p4; por sua vez, no projeto p4 trabalha alm do
empregado e2, tambm o empregado e3. O empregado e3 trabalha em 3 pro-
jetos; o projeto p2 conta com apenas 1 empregado.

Vejamos abaixo como seria a representao deste relacionamento no DER:

Figura 2.22 : Exemplo de diagrama ER binrio muitos para muitos

Sistemas de Gerenciamento de Banco de Dados 41 e-Tec Brasil


Figura 2.22 : Exemplo de diagrama ER binrio muitos para muitos

Os relacionamentos de grau maior que dois (binrios), ou seja, ternrios, quar-


tenrios e acima, possuem tambm razo de cardinalidades. Mas, como este
conceito no interferir na criao de um banco de dados simples, no ob-
jeto de estudo de nosso curso. Para saber mais a respeito, veja a bibliografia
deste caderno.

AUTO- RELACIONAMENTO

Para efetuar a mo- Vimos at agora o conceito de razo de cardinalidade para relacionamentos
delagem utilizando binrios. bom lembrar que os relacionamentos unrios tambm possuem
o modelo entidade este conceito. No relacionamento unrio os elementos de uma entidade se
relacionamento, relacionam a outros elementos dessa mesma entidade. Podemos verificar este
fao o download do tipo de relacionamento no exemplo abaixo:
software DIA no site
http://dia-installer.
de/index_en.html ,
nele podemos cons-
truir nossos diagra-
mas e realizarmos
a exportao para
imagens Figura 2.23: Exemplo de relacionamento unrio

Com esta cardinalidade, um Coordenador (que um funcionrio) coordena


vrios funcionrios e Funcionrio coordenado por um s Coordenador.

RESUMO DA AULA

Nesta aula vimos alguns conceitos importantes como os principais modelos


de dados possveis para implementao de um banco de dados. Apresenta-
mos os conceitos de modelagem presentes em um modelo conceitual de alto
nvel, o modelo Entidade-Relacionamento (ER). Definimos ento os conceitos
bsicos de entidades e atributos no modelo ER. Discutimos tambm de forma
breve, conceitos do modelo ER como o conjunto de entidades e relaciona-
mentos, atributos, atributos-chave, tipos de relacionamentos. Conhecemos as
notaes para representarmos os esquemas ER na forma de diagramas. Vimos
por fim, como aplicar restries estruturais (cardinalidade) em relacionamen-
tos, especialmente no tipo binrio.

e-Tec Brasil 42 Tcnico em Informtica para Internet


Atividades de aprendizagem:

1. Atravs de exemplos de Diagramas ER diferentes dos exemplificados neste


caderno, ilustre os conceitos a seguir do modelo ER:

a. Entidade

b. Relacionamento

c. Auto-relacionamento

2. Construa diagramas de Entidade Relacionamento com sua cardinalidades


para as atividades abaixo propostas:

a. Cliente compra carro.

b. Mdico consulta paciente.

c. Professor de informtica ministra curso utilizando softwares.

d. Empregado trabalha no departamento, sendo que o empregado e o de-


partamento possuem telefone.

Exemplo do exerccio 2: Instrutor ensina curso utilizando vrios textos.

3. Tendo em considerao o seguinte texto:

Um professor pode lecionar vrias disciplinas que pode ser lecionada por v-
rios professores. Um professor pode ser responsvel de diversas turmas e
cada turma tem de ter um nico professor responsvel. Cada turma tem
uma s sala onde tem as suas aulas, mas cada sala pode ter mais do que
uma turma com aulas ao longo do dia. Cada turma tem vrios alunos. Cada
aluno pertence uma e uma s turma. Cada turma pode cursar vrias dis-
ciplinas, que podem ser cursadas por turmas diferentes.

Sistemas de Gerenciamento de Banco de Dados 43 e-Tec Brasil


Dado o diagrama E-R abaixo, marque as cardinalidades situao descrita.

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

e-Tec Brasil 44 Tcnico em Informtica para Internet


Aula 3 O Modelo de Dados Relacional

Objetivo da aula:

Esta aula tem como objetivo apresentar os principais conceitos do mo-


delo de dados mais utilizado atualmente para implementao de um
banco de dados, o Modelo Relacional que representa um banco de da-
dos em um conjunto de relaes.

Na aula anterior conhecemos e vimos como construir diagramas utilizando o


modelo ER. Nesta aula conheceremos o modelo de dados relacional. O Modelo
de Dados Relacional foi introduzido por Ted Codd da IBM em 1970. Entre os
modelos de dados de existentes, o modelo relacional o mais simples e difun-
dido, com uma estrutura de dados uniforme, e tambm o mais formal.

3.1. Conceitos

O Modelo Relacional ser a base para implementarmos nosso banco de dados.


Ele representa os dados da base de dados como uma coleo de relaes. Po-
demos pensar que, cada relao pode ser entendida como uma tabela ou um
simples arquivo de registros (Citao). Por exemplo, a base de dados de arqui-
vos que so mostradas pela Figura 3.1, similar a representao do modelo
relacional. No entanto, possui algumas importantes diferenas entre relaes
e arquivos como veremos a seguir.

Sistemas de Gerenciamento de Banco de Dados 45 e-Tec Brasil


Fonte: Adaptado de ELMASRI & NAVATHE, 2005
Figura 3.1: Exemplo de um arquivo de dados baseado no modelo relacional

Ao pensarmos em uma relao como uma tabela de valores, cada linha repre-
senta uma coleo de valores que esto relacionados. Esses valores podem ser
interpretados como um fato que descreve uma entidade ou uma instncia.
Utilizamos o nome da tabela e os nomes das colunas para nos ajudar a inter-
pretar o significado dos valores em cada linha da tabela, que so na verdade,
dados a respeito dos dados, chamados metadados.

Como exemplo vamos observar a figura 3.1, a primeira tabela chamada ALU-
NO porque cada linha representa fatos sobre uma entidade aluno em particu-
lar. Os nomes das colunas - Nome, Nmero, Turma, Departamento - especifi-
cam como interpretar os valores em cada linha baseando-se nas colunas que
cada valor se encontra

Na linguagem do modelo relacional, cada linha chamada de tupla, a coluna


ou cabealho chamado de atributo e a tabela de relao. Desta maneira, o
conjunto de nomes das tabelas e suas colunas so chamados de esquema da
relao. Assim, o esquema da relao ALUNO :

ALUNO = {nome, nmero, turma, departamento}

e-Tec Brasil 46 Tcnico em Informtica para Internet


Temos que conhecer tambm conceito de grau de uma relao, este o n-
mero de atributos da relao, no exemplo acima ento, o grau de relao do
esquema ALUNO quatro, pois possui quatro colunas.

Uma coluna de dados possui um tipo de dado que descreve os valores que
podem aparecer nela, por exemplo, na coluna NMERO de um aluno espera-
mos um valor numrico como 17, 18 e no caracteres, este tipo de dado que
especifica os possveis valores de uma coluna chamada de domnio.

No esquema de relao ALUNO podemos especificar alguns domnios para


atributos da relao ALUNO, vejamos alguns exemplos:

Nome: Conjunto de cadeia de caracteres que representa nomes de pesso-


as;

Numero: Conjunto de dados numricos com limite de cinco dgitos;

Turma: Conjuntos de cdigos das turmas da faculdade;

Departamento: Conjunto de cdigos dos departamentos acadmicos,


como CC, EP, etc.

Assim, de acordo com nosso exemplo de domnio para a tabela ALUNO, o que
esperamos obter em uma linha (tupla), o conjunto de valores dos atributos
para um determinado estudante. Por exemplo, existe um aluno de nome Smi-
th, seu nmero 17, sua turma 1 e seu departamento CC.

A figura 3.2 apresentada abaixo mostra um exemplo da relao ALUNO. Cada


tupla representa uma entidade aluno em particular, cada atributo correspon-
de a um cabealho de coluna, os valores apresentados como nulos (null) repre-
sentam atributos em que os valores no existem para alguma tupla individual
de ALUNO.
ELMASRI & NAVATHE, 2005
Fonte: Adaptado de

Figura 3.2: Conjunto de atributos e tuplas da relao ALUNO

Sistemas de Gerenciamento de Banco de Dados 47 e-Tec Brasil


3.2. ATRIBUTOS-CHAVES

Uma relao definida como um conjunto de tuplas. Por padro, todos os ele-
mentos de um conjunto devem ser distintos. Assim, todas as tuplas de uma
relao tambm so distintas. Isto significa que nenhuma tupla pode ter a
mesma combinao de valores para todos os seus atributos. Desta maneira,
temos que ter um valor que chamamos de atributo-chave que utilizado para
identificar de modo unvoco uma tupla em uma relao.

Vamos voltar figura 3.1, nela podemos verificar que o Nr 18 da relao ALU-
NO serve para identificar o aluno Brown

Geralmente, um esquema de relao pode ter mais que uma chave. Nos casos
em que isto ocorra, cada chave chamada chave-candidata. Por exemplo, o
esquema da relao ALUNO poderia ter um atributo adicional Cdigo, para in-
dicar o cdigo interno de alunos na escola. Assim, o esquema teria duas chaves
candidatas: Nr e Cdigo.

Aps identificarmos as chaves candidatas devemos definir uma delas como a


chave-primria da relao. A indicao no modelo de qual chave-candidata
a chave-primria realizada se sublinhado os atributos que formam a chave-
-candidata escolhida como podemos ver na figura 3.3.

Fonte: Elaborado pelo autor

Figura 3.3: Tabela ALUNO com duas chaves candidatas: Nr e Codigo

Vejamos um exemplo, o atributo Nome da relao ALUNO no deve ser indi-


cado como chave, uma vez que nada garante a que no haja ocorrncia de
nomes duplicados (homnimos).

Em certas relaes pode ser necessrio mais de um atributo para identificar


cada tupla da relao de forma unvoca. Por exemplo, vejamos a relao PES-
SOA apresentada na figura 3.4 ao lado::

e-Tec Brasil 48 Tcnico em Informtica para Internet


Fonte: Elaborado pelo autor
Figura 3.3: Tabela PESSOA utilizando chave composta

Conforme j vimos na aula dois, um determinado atributo pode no garantir


a unicidade de uma tupla, desta maneira a identificao de cada pessoa deve
ser feita pelo valor do atributo RG e do atributo OrgaoEmissor. A utilizao
de mais de um atributo para a composio da chave primria chamamos de
chave composta. Alternativamente para no utilizarmos uma chave composta
na relao PESSOA, poderamos incluir um campo de identificao nica como
um cdigo, por exemplo.

3.3. CHAVE ESTRANGEIRA

O conceito de chave estrangeira de grande importncia na construo de


banco de dados relacional. Vamos comear com exemplo:
Fonte: Elaborado pelo autor

Figura 3.4: Tabelas para um esquema de um banco de dados relacional

No esquema de tabelas apresentada na figura 3.4 temos trs relaes (tabelas).


A relao FUNCIONARIO possui os dados de um funcionrio de uma empre-
sa, como o Nome, CPF, Setor onde trabalha e Data de Nascimento. A relao
SETOR possui o Nome e Localizao de um setor que identificada por um
cdigo. A relao DEPENDENTE possui o CPF deste como chave primria, o
CPF do funcionrio o qual ele dependente, o Nome e a Data de Nascimento
do dependente.

Sistemas de Gerenciamento de Banco de Dados 49 e-Tec Brasil


Podemos verificar que alguns atributos esto presentes em mais de uma tabe-
la. Atravs das relaes apresentadas abaixo podemos verificar que o atributo
Setor da tabela FUNCIONARIO representa o cdigo do setor onde o funcion-
rio est lotado, sendo o mesmo atributo Cod_Setor da tabela SETOR. O mesmo
caso ocorre entre os atributos CPF e CPF_Funcionario das tabelas FUNCIONA-
RIO e DEPENDENTE respectivamente. A figura 3.5 apresentada abaixo ilustra
esta relao.

Fonte: Elaborado pelo autor


Figura 3.5: Relao entre tabelas

Como podemos verificar na figura 3.5, apenas a chave primria de uma tabela
deve ser repetida em outra tabela. o que acontece no esquema relacional
apresentado. A chave primria de FUNCIONARIO est representada na tabela
DEPENDENTE e a chave primria da tabela SETOR est representada na tabela
FUNCIONARIO, como chave estrangeira. Desta maneira, podemos saber, por
exemplo, qual o SETOR de um funcionrio (atravs do atributo Setor) ou quais
dependentes possui um FUNCIONARIO atravs do atributo CPF_Funcionario.

O valor do atributo Setor na tabela FUNCIONARIO poderia ser null (nulo) se o


funcionrio no estiver locado em nenhum setor no momento.

Desta forma, a chave estrangeira possibilita a implementao do conceito de


relacionamento entre entidades. Com isto, podemos no Modelo Relacional, re-
alizar a modelagem representada no Modelo Entidade Relacionamento que
mostra um conjunto de entidades relacionado a outro conjunto de entidades,
com determinada razo de cardinalidade. Ento, o diagrama ER corresponden-
te ao mapeamento realizada na figura 3.5 poderia ser representado conforme
a figura 3.6 abaixo.

e-Tec Brasil 50 Tcnico em Informtica para Internet


Fonte: Elaborado pelo autor
Figura 3.6: Diagrama ER entre entidades

3.4. INTEGRIDADE REFERENCIAL

A restrio de integridade referencial responsvel por manter a consistncia


entre tuplas (registros) de duas relaes. Esta restrio de integridade referen-
cial estabelece que uma tupla de uma relao que se refere outra relao
deve se referir a uma tupla existente naquela relao. Vamos exemplificar para
ficar mais claro, vejamos a figura 3.7 abaixo:
Fonte: Elaborado pelo autor

Figura 3.7: Relaes FUNCIONARIO e SETOR

Na figura 3.7 podemos observar que o atributo Setor de FUNCIONARIO indica


o nmero do SETOR que cada funcionrio trabalha. Assim, todos os valores do
atributo Setor (chave estrangeira) nas tuplas da relao FUCIONARIO devem
pertencer ao conjunto de valores do atributo Cod_Setor (chave primria) da
relao SETOR. Desta maneira podemos definir que o conceito de Integridade
Referencial decorre da implementao de chaves estrangeiras em um esque-
ma relacional. Assim temos duas regras para dizer que um conjunto de atribu-
tos ser chave estrangeira de uma relao:

Os atributos da chave estrangeira tm o mesmo domnio dos atributos da


chave-primria a qual se relaciona. Podemos dizer ento que os atributos
chave estrangeira fazem referncia chave primria.

Sistemas de Gerenciamento de Banco de Dados 51 e-Tec Brasil


O valor da chave estrangeira ser algum valor que ocorre na chave prim-
ria a que ela faz referncia ou ter o valor null.

Se as duas regras apresentadas acima no ocorrerem, no h INTEGRIDADE


REFERENCIAL no banco de dados implementado

As restries de integridade devem ser especificadas no esquema da base de


dados relacional se o projetista quiser manter essas restries vlidas para
toda a base de dados. Desta maneira, em um sistema relacional, a linguagem
de definio de dados (DDL) deve fornecer mtodos para especificar os vrios
tipos de restries tal que o SGDB possa garanti-las automaticamente

3.5. MAPEAMENTO

Como j vimos anteriormente, o Modelo Relacional (MRel) implementa as ta-


belas relacionadas, com muitos recursos para segurana dos dados, contro-
le de acesso, consultas e manuteno dos dados. Porm, este modelo no
o modelo mais adequado para se fazer projetos de banco de dados. Ento
conhecemos o Modelo Entidade Relacionamento MER, que por meio de seus
recursos visuais, se apresenta mais claro, simples e intuitivo.

Desta maneira, em projetos de banco de dados, normalmente a modelagem


dos dados realizada atravs de um modelo de dados de alto-nvel. O modelo
de dados de alto-nvel geralmente adotado o Modelo Entidade-Relaciona-
mento (MER) e o esquema das vises e de toda a base de dados especificado
em diagramas entidade-relacionamento (DER).
Fonte: Elaborado pelo autor

Figura 3.8: Mapeamento entre MER e MRel

O Modelo Entidade Relacionamento possui um maior nmero de abstraes


do que as que foram vistas em nossas aulas. Existem ainda definies para:
Conjunto de Entidades Fracas, Atributos Compostos, Atributos Multivalorados,
por exemplo. Vimos em nossas aulas os principais conceitos do modelo, que

e-Tec Brasil 52 Tcnico em Informtica para Internet


permitem a construo da maior parte dos bancos de dados para as aplicaes
comerciais mais comuns.

Agora, veremos como traduzir um DER para um esquema MRel. Para isto utili-
zaremos um conjunto de passos para que possamos implementar nosso ban-
co de dados em um SGBD Relacional.

Passo 1: Mapeamento dos tipos de entidades: Consiste na criao de uma re- O livro texto
lao que inclua todos os atributos de uma entidade. Assim, as entidades do deste cader-
MER so transformadas em tabelas no MRel. O atributo chave da entidade pas- no - ELMASRI &
sa a ser a chave primria da relao (tabela). Vejamos um exemplo na figura 3.9. NAVATHE, 2005
- descreve to-
das as extenses

Fonte: Elaborado pelo autor


possveis de um
banco de dados,
muito til para
o estudante que
queira se apro-
Figura 3.9: Primeiro passo no mapeamento entre MER e MRel fundar no conte-
do.>
No exemplo da figura 3.9, criamos as relaes FUNCIONARIO e SETOR, que cor-
respondem s entidades FUNCIONARIO e SETOR presentes no DER. Neste mo-
mento no nos preocupamos ainda com os relacionamentos. O que fizemos
foi apenas definir as chaves primrias conforme dito anteriormente.

Nos prximos passos iremos realizar o mapeamento dos relacionamentos. Este


mapeamento depende do grau do relacionamento (nmero de conjuntos de
entidades nele envolvidos binrio, ternrio, etc.) e da razo de cardinalidades
(1:1, 1:N e N:M).

Passo 2: Mapeamento dos Conjuntos de Relacionamentos binrios de razo


de cardinalidade 1:1: Para este caso temos 3 possveis opes de mapeamen-
to: (1) criar chave estrangeira em uma das relaes, (2) gerar uma nica relao
para as entidades e o relacionamento, (3) gerar uma relao exclusiva para o
relacionamento, porm, esta opo caracteriza como veremos mais adiante o
mapeamento N:M.

As opes mais utilizadas e que devem ser seguidas so a primeira e a tercei-


ra.>

Sistemas de Gerenciamento de Banco de Dados 53 e-Tec Brasil


Vamos observar na figura 3.10 apresentada abaixo uma opo de mapeamen-
to utilizando a primeira opo.

Fonte: Elaborado pelo autor


Figura 3.10: Primeira opo de mapeamento para relao 1:1.

De acordo com a primeira opo de mapeamento apresentada na figura 3.10,


foi acrescentada relao FUNCIONARIO os atributos do relacionamento GE-
RENCIA (Data_Inicio) e a chave primria da relao SETOR (Cod_Setor) virou
uma chave estrangeira da relao FUNCIONARIO (Setor), assim na prtica ape-
nas um percentual de tuplas na relao FUNCIONARIO ter um valor no atribu-
to Setor, o restante dos valores dessa chave estrangeira assumiro o valor null
(nulo), tendo em vista que somente alguns funcionrios gerenciaro algum
setor.

A segunda opo s seria aplicvel se pensarmos no relacionamento de forma


isolada, pois consistiria em gerar uma nica tabela para as entidades e seu
relacionamento como podemos observar na figura 3.11.

Fonte: Elaborado pelo autor

Figura 3.12: Terceira opo de mapeamento para relao 1:1

Como podemos observar na figura 3.12, esta opo de mapeamento gerou


uma tabela exclusiva para o relacionamento, onde as chaves primrias de FUN-
CIONARIO (CPF) e SETOR (Cod_Setor) so chaves estrangeiras em GERENTE
(Cod_Funcionario e Cod_Setor). A relao GERENTE possui como atributos um
cdigo que identifica de forma nica suas tuplas e o atributo Data_Inicio do

e-Tec Brasil 54 Tcnico em Informtica para Internet


relacionamento que originou a tabela.

Passo 3: Mapeamento dos Conjuntos de Relacionamentos binrios de razo


de cardinalidade 1:N - Em primeiro , devemos gerar uma tabela para cada um
dos conjuntos de entidades conforme descrito em nosso primeiro passo. Para
o mapeamento 1:N a relao que mapeia o Conjunto de entidades do lado N
recebe a chave primria do outro Conjunto de Entidades (lado 1) como chave
estrangeira e os atributos do relacionamento. Vejamos o exemplo abaixo na
figura 3.13:

Fonte: Elaborado pelo autor


Figura 3.13: Mapeamento para relao 1:N.

Como podemos observar na figura 3.13, o diagrama ER apresenta as entida-


des FUNCIONARIO e SETOR com relacionamento 1:N, ou seja, um setor pode
possuir vrios funcionrios. Para o mapeamento deste relacionamento, foi in-
cludo na tabela gerada pela entidade do lado N (FUNCIONARIO) a chave pri-
mria da tabela gerado pela entidade do lado 1 (SETOR), desta forma a tabela
FUNCIONARIO possui a chave primria de SETOR (Cod_Setor) como sua chave
estrangeira (Setor), alm de possuir tambm os atributos da relao TRABA-
LHA (Data_Inicio).

Desta maneira, poderamos ter as seguintes tabelas no banco de dados que foi
mapeado a partir do diagrama apresentado na figura 3.14:
Fonte: Elaborado pelo autor

Figura 3.14: Tabelas geradas pelo mapeamento da relao 1:N.

Sistemas de Gerenciamento de Banco de Dados 55 e-Tec Brasil


As tabelas acima mostram qual funcionrio trabalha em cada setor. Sabemos
ento que Jos trabalha no setor de Informtica desde 01/01/2000.

Passo 4: Mapeamento dos Conjuntos de Relacionamentos binrios de razo de


cardinalidade N:M: Devemos criar uma nova tabela para representar o relacio-
namento. Nesta nova tabela devemos incluir como chave-estrangeira as cha-
ves-primrias das tabelas que representam os tipos de entidade participantes;
sua combinao ir formar a chave-primria desta nova tabela. Vejamos um
exemplo na figura 3.15.

Fonte: Elaborado pelo autor


Figura 3.15: Exemplo mapeamento da relao N:M.

Nosso exemplo apresentado na figura 3.15 acima representa uma relao onde
um PROJETO pode ter vrios funcionrios trabalhando e um funcionrio pode
trabalhar em vrios projetos. No mapeamento deste relacionamento foi criada
a relao FUNCIONARIO_PROJETO. Esta relao contm os atributos do rela-
cionamento (no caso Data_Inicio) e as chaves primrias das relaes FUNCIO-
NARIO e PROJETO (Cod_Funcionario e Cod_Projeto) como chave estrangeira.

Vejamos um conjunto de tabelas de um banco de dados que foi mapeado a


partir do diagrama apresentado na figura 3.16:
Fonte: Elaborado pelo autor

Figura 3.16: Tabelas geradas pelo mapeamento da relao N:M.

e-Tec Brasil 56 Tcnico em Informtica para Internet


Na figura 3.16 podemos observar que na tabela FUNCIONARIO_PROJETO po-
demos saber qual funcionrio trabalha em qual projeto. Por exemplo, no pro-
jeto Informtica para todos trabalha os funcionrios Jos e Carlos. Desta ma-
neira podemos ver que um projeto pode ter vrios funcionrios, assim como
um funcionrio pode fazer parte de vrios projetos. Como chave primria da
tabela FUNCIONARIO_PROJETO criamos um novo campo Codigo, poderamos
ainda ter identificado esta tabela atravs de uma chave composta pelas duas
chaves estrangeiras da relao (Cod_Funcionario e Cod_Projeto).

Passo 5: Mapeamento de Relacionamentos N-rios: Para os relacionamentos


de grau maior que dois devemos criar uma nova relao (tabela) para repre-
sentar o relacionamento. Temos que incluir nesta tabela como chave-estran-
geiras as chaves-primrias das relaes que representam os tipos de entidades
participantes. Temos que incluir tambm qualquer atributo simples do tipo
de relacionamento n-rio. A chave-primria desta relao normalmente uma
combinao de todas as chaves-estrangeiras fazendo referncia s relaes
que representam os tipos de entidades do relacionamento

RESUMO DA AULA

Nesta semana nos aprofundamos no Modelo de Dados Relacional, vimos


seus conceitos fundamentais e como um projeto de um esquema conceitual
do modelo ER pode ser mapeado para um banco de dados relacional. Vimos
tambm conceitos importantes como o de chave estrangeira, domnio e inte-
gridade referencial. Foi ilustrado por meio de exemplos os passos necessrios
para o mapeamento entre MER x MRel.

ATIVIDADES DE APRENDIZAGEM
1. Defina os conceitos de:

a. Chave-primria;

b. Chave-composta;

c. Domnio de uma relao;

d. Integridade referencial.

Sistemas de Gerenciamento de Banco de Dados 57 e-Tec Brasil


2. O que significa efetuar mapeamento entre MER e MRel?

________________________________________________________________

________________________________________________________________

________________________________________________________________

3. Efetue o mapeamento para os diagramas ER abaixo:

a.

b.

c.

d.

e-Tec Brasil 58 Tcnico em Informtica para Internet


AULA IV - Implementao do Banco de
Dados

Objetivo:

Apresentar os conceitos necessrios para implementao de um


banco de dados em um Sistema de Gerenciamento de Banco de Da-
dos que implemente o modelo relacional.

Agora que j vimos como efetuar o mapeamento entre o modelo ER para o


MRel iremos realizar a implementao de um banco de dados em um SGBD.

4.1. MySQL

Em nossa disciplina utilizaremos o SGBD Relacional MySQL. Este SGBD gra-


tuito e possui cdigo aberto. comum a utilizao deste SGBD em aplicaes
para ambiente WEB como nosso escopo.
Como foi solicitado anteriormente, necessrio o download e instalao do
MySQL. Veja a rea do desenvolvedor na figura abaixo.

Veja mais sobre o


MySQL em http://
d e v. my s q l . c o m /
doc/refman/4.1/
pt/index.html , esta
documentao
referente a verso
4.1 (portugus), a
documentao das
verses mais atu-
ais (5.X) podem ser
Figura 4.1 Site MySQL acessadas em in-
gls.
Navegue pelo site para conhecer seu contedo, documentaes, rea de do-
wnload, fruns, artigos entre outras opes. Para apoio na instalao do SGBD
MySQL utilize o exemplo multimdia disponvel em nosso ambiente.

Sistemas de Gerenciamento de Banco de Dados 59 e-Tec Brasil


Para que possamos criar nosso banco de dados com suas tabelas, utilizaremos
um conjunto de comandos que compe a linguagem de definio de dados
DDL, como vimos em nossa primeira aula. Estes comandos possuem uma s-
rie de clusulas. Em nossa disciplina utilizaremos somente as clusulas para
No ambiente virtual a construo de nosso banco de dados. Utilize nosso livro de referncia para
de aprendizagem est conhecer mais sobre as clusulas de definio de um banco de dados.
disponvel um vdeo
que explica passo a
passo para a instala- 4.2. CRIANDO UM BANCO DE DADOS
o e configurao do
MySQL. Para que possamos iniciar a criao de um banco de dados vamos utilizar um
exemplo.

Figura 4.2 MER e MRel do banco de dados Exemplo

Vamos analisar a figura 4.2, no MER podemos ver que possumos duas entida-
des que possuem dois relacionamentos, um relacionamento 1:N e outro 1:1,
seguindo nossos passos para mapeamento foram geradas as trs tabelas apre-
sentadas.

Para iniciarmos a criao de nosso banco, vamos abrir o MySQL atravs do


MySQL Command Line Client.

Figura 4.3 Iniciando o cliente de linha de comando do MySQL

e-Tec Brasil 60 Tcnico em Informtica para Internet


Ao abrir o cliente de linha de comando do MySQL, a senha que definiu no mo-
mento da instalao ser solicitada para acesso.

Todo comando na interface deve ser finalizado com ; (ponto e virgula).

Aps abrirmos o cliente de comando teremos a seguinte tela apresentada na


figura 4.4

Figura 4.4 Tela MySQL


Nosso primeiro passo ser a criao de um banco de dados para abrigar nossas
tabelas geradas a partir do mapeamento.

Para criarmos um banco de dados devemos utilizar o seguinte comando:

CREATE DATABASE <nome>;

Onde <nome> a identificao de nosso banco de dados, nosso primeiro ban-


co de dados se chamar exemplo, ento o comando utilizado ser:

CREATE DATABASE exemplo;

Aps escrever a instruo acima tecle <Enter> e o MySQL apresentar a men-


sagem <Query OK, 1 row affected> informando que a criao foi realizada
com sucesso. Vejamos a figura 4.5:

Figura 4.5 Criao de um banco de dados

Sistemas de Gerenciamento de Banco de Dados 61 e-Tec Brasil


Para visualizarmos os bancos de dados existentes em nosso sistema devemos
utilizar o seguinte comando:

SHOW DATABASES;

Figura 4.6 Execuo do comando SHOW DATABASES

Podemos visualizar na figura 4.6 que nosso banco de dados exemplo foi real-
mente criado, os outros bancos que aparecem so de estruturas internas ou
exemplos do MySQL.

O prximo passo ser a criao das tabelas de nosso banco de dados. Antes
disso devemos dizer que nosso banco de dados deve ser utilizado para a cria-
o de nossas tabelas. Vamos executar o seguinte comando:

USE exemplo;

Desta maneira, o banco de dados exemplo que criamos anteriormente passa


a ser utilizado, assim todas as tabelas que forem criadas faro parte do banco
de dados em uso.

4.3. TIPOS DE DADOS


A instruo para criao de tabelas o CREATE TABLE. Vamos ver a sintaxe pa-
dro:

CREATE TABLE <nome_tabela> (


<nome_coluna> <tipo_dado> <NULL/NOT NULL> <DEFAULT valor>
<AUTO_INCREMENT>, <PRIMARY KEY (nome(s)_atributo(s))>,
<FOREIGN KEY (nome_atributo) REFERENCES <nome_tabela> > );

e-Tec Brasil 62 Tcnico em Informtica para Internet


O tipo de dado apresentado na instruo acima se refere informao que
ser armazenada, por exemplo, se formos armazenar o nome de uma pessoa,
este tipo de dado ser uma cadeia de caracteres. A linguagem SQL possui v-
rios tipos de dados, que podemos classificar em trs grupos:

1. Tipos numricos

2. Tipos de Data

3. Tipos de Cadeia

Vejamos abaixo os principais tipos de dados (CRIAR WEB, 2010):

TIPOS NUMRICOS:
Existem tipos de dados numricos, que se podem dividir em dois grandes gru-
pos, os que esto em vrgula flutuante (com decimais) e os que no (inteiros)
como j viram anteriormente na disciplina de algoritmos.

TinyInt: um nmero inteiro com ou sem sinal. Com sinal a margem de valores
vlidos desde -128 at 127. Sem signo, a margem de valores de 0 at 255.

SmallInt: nmero inteiro com ou sem sinal. Com sinal a margem de valores
vlidos desde -32768 at 32767. Sem signo, a margem de valores de 0 at
65535.

Integer, Int: nmero inteiro com ou sem sinal. Com sinal a margem de valores
vlidos desde -2147483648 at 2147483647. Sem signo, a margem de valo-
res de 0 at 429.496.295

BigInt: nmero inteiro com ou sem sinal. Com sinal a margem de valores v-
lidos desde -9.223.372.036.854.775.808 at 9.223.372.036.854.775.807. Sem
signo, a margem de valores de 0 at 18.446.744.073.709.551.615.

Float: nmero pequeno em vrgula flutuante de preciso simples. Os valo-


res vlidos vo desde -3.402823466E+38 at -1.175494351E-38,0 e desde
175494351E-38 at 3.402823466E+38.

Sistemas de Gerenciamento de Banco de Dados 63 e-Tec Brasil


Double: nmero em vrgula flutuante de dupla preciso. Os valores permitidos
vo desde -1.7976931348623157E+308 at -2.2250738585072014E-308, 0 e
desde 2.2250738585072014E-308 at 1.7976931348623157E+308.

TIPOS DATA:
Para armazenar datas, o MySQL verifica se o ms est compreendido entre 0 e
12 e que o dia est compreendido entre 0 e 31.

Date: tipo data armazena uma data. A margem de valores vai desde o 1 de
Janeiro de 1001 ao 31 de dezembro de 9999. O formato de armazenamento
de ano-mes-dia.

DateTime: Combinao de data e hora. A margem de valores vai desde o 1 ed


Janeiro de 1001 s 0 horas, 0 minutos e 0 segundos ao 31 de Dezembro de
9999 s 23 horas, 59 minutos e 59 segundos. O formato de armazenamento
de ano-mes-dia horas:minutos:segundos

Time: armazena uma hora. A margem de horas vai desde -838 horas, 59 minu-
tos e 59 segundos. O formato de armazenamento HH:MM:SS.

TIPOS DE CADEIA:

Para armazenar cadeias de caracteres, os dois principais tipos so:

Char(n): armazena uma cadeia de longitude fixa. A cadeia poder conter desde
0 at 255 caracteres.

VarChar(n): armazena uma cadeia de longitude varivel. A cadeia poder con-


ter desde 0 at 255 caracteres. A diferena para o tipo CHAR que os caracte-
res em branco a direita so desprezados. Por isso, quando formos armazenar
uma cadeia de caracteres utilizaremos este tipo.

4.4. CRIANDO TABELAS

A partir dos tipos de dados bsicos que acabamos de conhecer, vamos cons-
truo de nossa tabela. Vamos voltar a nossa instruo bsica para a criao
de tabelas:

e-Tec Brasil 64 Tcnico em Informtica para Internet


CREATE TABLE <nome_tabela> (
<nome_coluna> <tipo_dado> <NULL/NOT NULL> <DEFAULT valor>
<AUTO_INCREMENT>, <PRIMARY KEY (nome(s)_atributo(s))>,
<FOREIGN KEY (nome_atributo) REFERENCES <nome_tabela> > );

Vejamos o significado das instrues que compem o comando acima,


<nome_tabela> nome da tabela que vamos criar; <nome_coluna> o cam-
po ou atributo a ser definido; <tipo_dado> como vimos anteriormente se re-
fere ao tipo de dado a ser armazenado; <NULL/NOT NULL> define se o campo
ir aceitar valores nulos; <DEFAULT valor> determina um valor padro para o
campo; <AUTO_INCREMENT> define se o campo ser preenchido automatica-
mente, sendo muito til para cdigos ou campos de identificao. <PRIMARY
KEY> e <FOREIGN KEY> determinam as chaves primrias e estrangeiras da ta-
bela respectivamente. Vamos agora montar o esquema para criao de nossa
primeira tabela SETOR.

Figura 4.7: Dicionrio de dados para a tabela SETOR

Sistemas de Gerenciamento de Banco de Dados 65 e-Tec Brasil


Ao esquema apresentado na figura 4.7 acima, damos o nome de Dicionrio de
Dados, embora apresentado de maneira simplificada, o dicionrio de dados
extremamente importante para a documentao de nosso banco dados a ser
criado.

Para criarmos nossa tabela SETOR vamos utilizar ento a seguinte instruo:

CREATE TABLE setor (


Cod_Setor INTEGER NOT NULL,
Nome_Setor VARCHAR(40) NOT NULL,
Localizacao VARCHAR(30),
PRIMARY KEY (Cod_Setor
);

A figura 4.8 mostra o resultado da instruo de criao da tabela SETOR.

Figura 4.8: Criao da tabela SETOR

Para visualizarmos as tabelas que nosso banco de dados possui, basta utili-
zarmos o comando SHOW TABLES. Para visualizarmos a estrutura da tabela,
devemos utilizar o comando DESCRIBE <nome_tabela>.

Figura 4.9: Resultado da execuo das instrues SHOW TABLES e DESCRIBE

Agora vamos dar sequncia na criao de nossas tabelas. Temos que criar as
tabelas FUNCIONARIO e GERENTE_SETOR. Vamos criar a tabela FUNCIONARIO.
Nesta tabela teremos que implementar uma chave primria (CPF) e uma cha-
ve estrangeira (Setor_Trabalha). Vejamos o dicionrio de dados para a tabela
FUNCIONARIO.

e-Tec Brasil 66 Tcnico em Informtica para Internet


Figura 4.10: Dicionrio de dados para a tabela FUNCIONARIO

Podemos observar na figura 4.10 que o tipo de dado para o campo CPF Bi-
gInt, isto se fez necessrio pois o tipo inteiro no comportaria o CPF de uma
pessoa, pois possui 11 dgitos.

Vejamos agora as instrues necessrias para implementarmos a tabela FUN-


CIONARIO.

CREATE TABLE funcionario (


CPF BIGTINT NOT NULL,
Nome VARCHAR(40) NOT NULL,
Setor_Trabalha INT,
DataNasc DATE,
DataInicio DATE,
PRIMARY KEY (CPF),
FOREIGN KEY (Setor_Trabalha) references SETOR (Cod_Setor)
);

Sistemas de Gerenciamento de Banco de Dados 67 e-Tec Brasil


Observe no cdigo acima que o comando FOREIGN KEY responsvel pela
definio da chave estrangeira. Esta clusula informa que Setor_Trabalha refe-
rencia o campo Cod_Setor da tabela SETOR. Assim, os valores permitidos para
o atributo chave estrangeira Setor_Trabalha da tabela FUNCIONARIO devem
encontrar correspondncia aos valores do atributo Cod_Setor, chave primria,
da tabela SETOR.

Vejamos o resultado da execuo da instruo acima na figura 4.11.

Figura 4.12: Dicionrio de dados para a tabela GERENTE_SETOR

Podemos observar na figura 4.12 que a chave primria desta relao uma
chave composta por dois atributos (Cod_Setor e Cod_Funcionario), e esta ta-
bela tambm possui duas chaves estrangeiras. Observe tambm que o campo
Cod_Funcionario do tipo BIgInt pois o campo a qual ele se relaciona deste
tipo (CPF).

Vejamos as instrues para implementao da tabela GERENTE_SETOR.

CREATE TABLE gerente_setor (

Cod_Setor INT NOT NULL,

Cod_Funcionario BIGINT NOT NULL,

DataInicio DATE,

PRIMARY KEY (Cod_Setor, Cod_Funcionario),

FOREIGN KEY (Cod_Setor) references SETOR (Cod_Setor) ,

FOREIGN KEY (Cod_Funcionario) references FUNCIONARIO (CPF)

);

e-Tec Brasil 68 Tcnico em Informtica para Internet


Podemos observar no cdigo acima que foram necessrias duas linhas para
definio das duas chaves estrangeiras, j a chave primria composta pode ser
definida em uma nica linha. Vejamos na figura 4.13 o resultado da execuo
desta seqncia de instrues.

Figura 4.13: Resultado da execuo das instrues para criao da tabela GERENTE_SETOR

Agora vamos ver todas nossas tabelas criadas. Qual comando devemos utilizar?
E para ver a estrutura das tabelas? Vejamos na figura 4.14

Figura 4.14: Tabelas criadas no banco de dados EXEMPLO.

4.5. APAGANDO E ALTERANDO TABELAS

Uma tabela pode ser modificada devido a alguma necessidade que surja aps
sua criao. Podemos adicionar um campo, alterar a chave primria ou at
mesmo modificar a estrutura. O comando utilizado o ALTER TABLE <tabela>
<operao>;

Um exemplo seria se precisssemos adicionar um novo campo para armazenar


o salrio em nossa tabela FUNCIONARIO

A instruo para inserir o campo Salario na tabela FUNCIONARIO ser a se-


guinte:

ALTER TABLE funcionario ADD salario FLOAT(10,2);

Sistemas de Gerenciamento de Banco de Dados 69 e-Tec Brasil


Podemos ver na instruo acima que adicionaremos o campo salrio que vai
ser do tipo float com tamanho dez e duas casas decimais.

Para vermos a alterao da tabela com o novo campo vamos utilizar o coman-
do DESCRIBE.

Figura 4.15: Alterao da tabela FUNCIONARIO.

Por algum motivo pode ser necessrio excluir uma tabela criada, para isto de-
vemos utilizar a instruo DROP TABLE <nome_tabela>. Se fosse necessrio
removermos a tabela FUNCIONARIO do banco de dados EXEMPLO, usamos o
comando DROP:

DROP TABLE funcionario;

RESUMO DA AULA

Nesta aula aprendemos a implementar um banco de dados em um SGBD re-


lacional de auto nvel. Vimos como criar nosso banco de dados e tabelas, im-
plementamos chaves-primrias e estrangeiras em nossas tabelas. Criamos um
banco de dados de exemplo com trs tabelas relacionadas. Alm disso, vimos
como alterar e excluir uma tabela do banco de dados.
Atividade de aprendizagem

1. Cite e explique as instrues para:

a) Criar um banco de dados;

b) Visualizar os bancos de dados que seu servidor possui;

c) Criar uma tabela;

d) Definir chave primria e estrangeira;

e) Visualizar os campos de uma tabela.

e-Tec Brasil 70 Tcnico em Informtica para Internet


2. Crie um banco de dados para armazenarmos os dados dos alunos, profes-
sores formadores e disciplinas de nosso curso.

O banco de dados vai se chamar TI (Tcnico em Informtica);

Realize o mapeamento e crie as tabelas de acordo com o diagrama ER abai-


xo:

Ser necessria a criao das tabelas: PROFESSOR, DISCIPLINA, TURMA, LE-


CIONA (para o relacionamento, contendo as chaves de cada uma das enti-
dades para formar sua chave primria), e ALUNO.

Envie os dicionrios de dados de cada uma das tabelas, bem como as ins-
trues necessrias para criao deste banco de dados.

Sistemas de Gerenciamento de Banco de Dados 71 e-Tec Brasil


AULA V Linguagem de Manipulao
e Consulta de Dados

Objetivos:

O Objetivo desta aula apresentar as instrues necessrias para a


manipulao de dados utilizando o ambiente do SGBD MySQL.

Na ultima aula, aprendemos a criar um banco de dados com suas tabelas e


relacionamentos. Agora veremos como manipular os dados em nossas tabelas,
inserindo, excluindo, atualizando e consultando.

5.1. INSERINDO REGISTROS

A partir do momento em que uma tabela est pronta, ela j pode receber da-
dos. Vejamos a sintaxe da instruo INSERT INTO que utilizada para insero
de dados em uma tabela.

INSERT INTO nome_tabela


(nome_coluna1, nome_coluna2,... ,nome_colunaN)
VALUES
(Valor1, Valor2,....,ValorN)

Voltemos ao nosso banco de dados EXEMPLO. Vamos comear inserindo dados


na tabela SETOR, para isso usaremos o comando INSERT INTO.

INSERT INTO setor (Cod_Setor, Nome_Setor, Localizacao)


VALUES (1, 'Informatica', 'Segundo Andar');

Os valores textuais (cadeias de caracteres) para os campos Nome_Setor e Lo-


calizacao devem estar entre aspas simples ...

Sistemas de Gerenciamento de Banco de Dados 73 e-Tec Brasil


Na instruo INSERT INTO, aps o nome da tabela, fazemos referncia aos cam-
pos, e aps, so indicados seus valores. A figura 5.1 mostra o resultado da ins-
truo.

Figura 5.1: Inserindo dados na tabela SETOR

A partir do exemplo que acabamos de ver acima vamos inserir mais dois regis-
tros em nossa tabela setor.

INSERT INTO setor (Cod_Setor, Nome_Setor, Localizacao)


VALUES (2, Financeiro, Trreo - Sala1);

INSERT INTO setor (Cod_Setor, Nome_Setor, Localizacao)


VALUES (3, Recepo, Trreo);

Caso tentemos incluir um valor duplicado no campo de chave primria da ta-


bela ser apresentado um erro de integridade. Vejamos na figura 5.2 apresen-
tado abaixo.

Figura 5.2: Erro de integridade na tabela SETOR

Podemos observar na figura 5.2, que tentamos incluir o setor Recepo, com o
mesmo Cdigo do setor Financeiro, assim nos foi apresentado o erro: Duplica-

Agora que nossa tabela SETOR possui dados, insira voc, dados nas tabelas
FUNCIONARIO e GERENTE_SETOR.

e-Tec Brasil 74 Tcnico em Informtica para Internet


Vejamos um exemplo de insero de dados na tabela FUNCIONARIO:

INSERT INTO funcionario (CPF, Nome, Setor_Trabalha, DataNasc, Da-


taInicio, salario)
VALUES (05598128691,Matheus Fran-
co,1,1983-11-14,2000-01-01,1250.00);

importante lembrar que durante a insero de dados verificada a integrida-


de referencial, assim ao inserirmos dados na tabela FUNCIONARIO, por exem-
plo, o campo Setor_Trabalha dever possuir como valor um dos valores j
existentes no campo Codigo da tabela SETOR. Repare tambm, que para inse-
rirmos dados do tipo Data os valores devem estar tambm entre aspas simples

5.2. CONSULTANDO REGISTROS

A consulta de uma listagem de registros armazenadas em uma tabela uma


das funes mais importantes da linguagem de manipulao de dados, afinal,
do que adianta termos dados armazenados se no pudermos consult-los?
SQL uma lin-
Para realizar a consulta aos dados de uma tabela, a linguagem SQL disponibi- guagem padro-
liza o comando SELECT. Este comando a base para a recuperao de dados nizada para a
nos bancos de dados relacionais. Ele possui vrios parmetros, com diversas definio e ma-
combinaes possveis e pode chegar a composies um tanto quanto com- nipulao de
plexas. Sua forma bsica : bancos de da-
dos relacionais.
SELECT < nome_coluna1, nome_coluna2,... ,nome_colunaN>
FROM <tabela>
WHERE <condio para escolha dos registros>

A clusula SELECT relaciona os campos (colunas) que queremos recuperar. A


clusula FROM relaciona as tabelas envolvidas na consulta. A clusula WHERE
permite a seleo de registros a recuperar a partir de uma condio.

Quando quisermos apresentar todas as colunas de uma tabela, ao invs de


relacion-las uma a uma na clusula SELECT, podemos utilizar o * (asterisco).
Imagine que queiramos verificar a listagem de todos os setores cadastrados
na tabela SETOR. Para isso utilizaremos a seguinte instruo.

SELECT * FROM setor;

Sistemas de Gerenciamento de Banco de Dados 75 e-Tec Brasil


Podemos observar na figura 5.3 que o uso do asterisco faz com que todos os
campos da tabela sejam apresentados, como no tivemos clusula de condi-
o (WHERE), todos os registros da tabela foram apresentados.

Figura 5.3: Consultando a tabela SETOR

Podemos listar tambm, somente alguns campos conforme a necessidade.


Vejamos como selecionar somente os campos Nome e CPF da tabela FUNCIO-
NARIO.

SELECT nome,CPF FROM funcionario;

Figura 5.4: Consultando campos da tabela FUNCIONARIO

Podemos observar na figura 5.4 que foram apresentados somente os campos


definidos na clusula SELECT.

Agora imaginemos que seja necessrio visualizarmos o Nome_Setor do setor


cujo cdigo seja igual a 1. Vejamos a instruo para isto.

SELECT nome FROM setor WHERE cod_setor=1 ;

Figura 5.5: Apresentao do campo Nome_Setor igual a 1 da tabela SETOR

Agora vamos imaginar que precisamos consultar o nome de um funcionrio.


Para a consulta de campos de caracteres, nem sempre desejvel a compara-
o exata do contedo de um campo, usando a igualdade. muito comum a
necessidade de se comparar parte desta cadeia. Para testar sequncias de ca-
racteres em uma cadeia, podemos usar a clusula LIKE. Vejamos um exemplo:

e-Tec Brasil 76 Tcnico em Informtica para Internet


SELECT CPF, nome, DataNasc FROM funcionario where nome LIKE
M%;

Figura 5.6: Consultado dados com a clusula LIKE

O caracter % dentro das aspas interpretado pelo SGBD como delimitador da


cadeia de caracteres a ser comparada. Assim, no exemplo, sero aceitas todas
as cadeias de caracteres que possurem M na primeira posio, independente
dos demais caracteres.

Para testar uma seqncia de caracteres em qualquer posio de uma cadeia,


usamos o carcter %.

5.2.1. DATAS

Normalmente os SGBDs fornecem um repertrio de funes para o tratamen-


to de datas, por exemplo, no MySQL temos as funes YEAR, MONTH e DAY,
para consultarmos uma data a partir de um determinado ano, ms ou dia.

Vejamos um exemplo, vamos apresentar os nomes, data de nascimento e sal-


rio dos funcionrios que nasceram em um determinado ano. Para isso utiliza-
remos o seguinte comando;

SELECT nome,datanasc,salario FROM funcionario WHERE


year(datanasc)=1983;

Figura 5.7: Consultado datas

Sistemas de Gerenciamento de Banco de Dados 77 e-Tec Brasil


Como podemos ver na figura 5.7, com a utilizao da funo YEAR foram apre-
sentados somente os registros cujo ano atendeu a condio. O mesmo pode
realizar com as funes MONTH e DAY.

5.2.2. ORDENANDO REGISTROS

Para ordenao dos registros apresentados podemos utilizar a clusula ORDER


BY. Podemos ordenar a apresentao dos dados a partir de qualquer registro
ou campo da seleo. Vejamos alguns exemplos

SELECT nome,salario FROM funcionario ORDER BY nome;

SELECT nome,salario FROM funcionario ORDER BY salario;

SELECT nome,salario FROM funcionario ORDER BY nome,salario;

Como podemos ver no ltimo exemplo apresentado, podemos ter mais de um


critrio de ordenao, assim no exemplo, o primeiro critrio o campo Nome,
e o segundo o Salrio.

Figura 5.8: Ordenao de registros

5.2.3. JUNO DE TABELAS

Atravs da juno de tabelas podemos gerar consultas com tabelas relaciona-


das como se fosse uma nica tabela. Vamos pensar no nosso banco de dados
exemplo, nele temos as tabelas SETOR e FUNCIONARIO. Imagine que precisa-
mos apresentar todos os funcionrios que trabalham no setor de informtica,
com o que sabemos at o momento seria necessrio sabermos o cdigo do se-
tor. Mas se precisarmos apresentar o nome do setor e no o cdigo. Como fa-
remos isto, tendo em vista que os funcionrios esto em uma tabela e o nome
do setor em outra?

e-Tec Brasil 78 Tcnico em Informtica para Internet


Atravs da juno das duas tabelas que pode ser realizada pelo relacionamen-
to existente entre elas. Vejamos abaixo:

SELECT nome, nome_setor FROM funcionario


INNER JOIN setor on setor.cod_setor = funcionario.setor_trabalha
WHERE nome_setor=Informatica;

No exemplo apresentado acima realizada a juno entre as tabelas SETOR e


FUNCIONARIO atravs da utilizao da clusula INNER JOIN que realiza a liga-
o do campo Cod_Setor com o campo Setor_Trabalha das tabelas envolvi-
das. Desta maneira podemos selecionar o campo Nome que pertence a tabela
FUNCIONARIO e o campo Nome_Setor que pertence a tabela SETOR dos regis-
tros cujo Nome_Setor seja igual a Informatica.

Figura 5.9: Juno de tabelas

5.3. REMOVENDO REGISTROS

Dentre as operaes de manuteno de registros, temos a possibilidade de


removermos registros que no sejam mais necessrios. Vejamos agora como
excluir linhas de uma tabela. Para isto precisaremos utilizar a instruo DELETE
FROM conforme apresentado abaixo:

DELETE FROM <tabela> <condio para remoo>;

Fique atento ao utilizar a instruo DELETE, muito cuidado! Se no for especi-


ficada clusula WHERE, que indica a condio para a seleo da tupla que ser
excluda, todos os dados da tabela sero eliminados! Por exemplo, o comando:
DELETE FROM setor; eliminar todos os registros da tabela!

Sistemas de Gerenciamento de Banco de Dados 79 e-Tec Brasil


importante ressaltar tambm que no momento da tentativa de uma remoo
verificada a integridade referencial. Vejamos a figura abaixo.

Figura 5.10.: Tentativa de remoo Integridade referencial

Podemos observar na figura 5.10 que o comando

DELETE FROM setor WHERE cod_setor=1

gerou um erro devido a tentativa de remoo do registro 1, que possui chaves


estrangeiras vinculadas a este registros, ou seja, temos registros da tabela FUN-
CIONARIO que possuem o campo Setor_Trabalha=1;

Como no temos nenhum registro vinculado ao Cod_Setor =2 vamos remove-


-lo. Vejamos o comando necessrio para isto:

DELETE FROM setor WHERE cod_setor=2;

Podemos observar o resultado desta instruo na figura 5.11 apresentada


abaixo.

Figura 5.11: Remoo e listagem dos registros aps remoo

Tambm podemos observar na figura 5.11 a listagem dos registros aps a re-
moo do setor cujo Cod_Setor=2.

5.4. ALTERANDO REGISTROS

Comumente necessria a atualizao de dados diretamente no banco. A al-


terao de dados obtida atravs do comando UPDATE em conjunto com o
comando SET, que possui a seguinte sintaxe:

e-Tec Brasil 80 Tcnico em Informtica para Internet


UPDATE <tabela> SET <campo> = valor_novo,
<campo2>=valor_novo, .....
WHERE <condi para alterao>;

Por exemplo, vamos modificar a localizao do setor 2.

Figura 5.12: Apresentao dos registros antes e depois da alterao.

Podemos observar na figura 5.12 a listagem dos registros da tabela SETOR an-
tes e depois da alterao da localizao do setor 1.

Como vimos no comando DELETE, a nica forma de termos certeza de que


apenas uma linha ser removida especificar, na clusula WHERE, o valor do
atributo chave primria. O mesmo cuidado devemos tomar para alterao de
valores em um registro.

RESUMO DA AULA

Nesta aula conhecemos os principais comandos para manipulao de dados:


INSERT, DELETE e UPDATE. Estes comandos para a insero, excluso e altera-
o de dados so definidos na linguagem de manipulao de dados ou DML
(Data Manipulation Language) que pertence ao padro de banco de dados
relacionais. Alm disso, vimos como ordenar dados e realizar junes entre
tabelas. A partir de agora j estamos aptos a desenvolver um projeto de um
banco de dados para os principais tipos de aplicaes comerciais

Sistemas de Gerenciamento de Banco de Dados 81 e-Tec Brasil


Exerccios de aprendizagem

1. Defina a funo das seguintes instrues:

a. INSERT INTO:

b. SHOW TABLE:

c. SELECT FROM:

d. UPDADE SET:

e. DELETE FROM:

2. Qual a finalidade da juno de tabelas? Cite exemplos.

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

3. Observando as tabelas ALUNO, PROFESSOR_FORMADOR e TURMA que j


criou na aula passada

e-Tec Brasil 82 Tcnico em Informtica para Internet


a. Faa com que as tabelas contenham os dados apresentados.

b. Tente remover o registro 1 da tabela TURMA. Foi possvel, explique a ocor-


rncia.

c. Altere o nome do ALUNO pronturrio 1234 para Jos Silva.

d. Apresente somente os nomes e pronturios dos alunos que estudam na


turma 1.

e. Apresente todos os nomes de professores formadores que se iniciam com


M.

f. Faa uma seleo utilizando a juno de tabelas onde dever ser apresen-
tado o nome do aluno e a descrio de sua turma.

Apresente todas as instrues que utilizou para execuo da atividade.

Sistemas de Gerenciamento de Banco de Dados 83 e-Tec Brasil


AULA VI Projeto Final da Disciplina

Objetivos

O Objetivo desta aula realizar a definio do projeto final da


disciplina, bem como orientar seu desenvolvimento.

Como j vimos na disciplina de Anlise e Projeto de Sistemas, um projeto con-


siste num esforo temporrio com um objetivo pr-estabelecido, seja para criar
um novo produto, servio ou processo. Tem incio, meio e fim bem definidos,
durao e recursos limitados, com uma sequncia de atividades relacionadas.
Em nossa disciplina desenvolveremos um projeto de construo de um banco
de dados relacional utilizando o SGBD MySQL.

6.1. PROJETO DE BANCO DE DADOS

Nosso projeto de banco de dados consiste na criao de uma base de dados


para armazenar notas finais bimestrais de alunos de um curso, como por exem-
plo, o nosso. O Diagrama ER apresentado na figura 6.1 ilustra o banco de dados
a ser criado.

Figura 6.1: Diagrama ER do projeto final

De acordo com o diagrama apresentado na figura 6.1 podemos observar a


existncia de duas entidades (ALUNO E DISCIPLINA) e um relacionamento N:N
(POSSIU_NOTA). importante observar que o relacionamento POSSUI_NOTA
gerar uma tabela onde sua chave primria dever ser composta. Assim, de
acordo com o diagrama voc ter que implementar no banco de dados ESCO-
LA para armazenamento e recuperao das notas de alunos.

Sistemas de Gerenciamento de Banco de Dados 85 e-Tec Brasil


A figura 6.2 apresenta um esquema para desenvolvimento do projeto.

Figura 6.2: Esquema para desenvolvimento do projeto.

Assim, levando-se em considerao que j sabe o que fazer e possui o mo-


delo conceitual (MER), voc dever seguir os seguintes passos:

Realizar o mapeamento entre o modelo ER para o modelo Relacional;

Criar os dicionrios de dados para cada tabela;

Criar as tabelas no SGBD MySQL;

Inserir dados nas tabelas;

Criar instrues de consulta para o banco de dados.

Como resultado do projeto dever ser entregue um relatrio contendo o ma-


peamento, dicionrio de dados e todas as instrues necessrias para criao
das tabelas, alm das instrues necessrias para insero e consulta de dados.

e-Tec Brasil 86 Tcnico em Informtica para Internet


REFERNCIAS
CRIAR WEB. Site Criar Web.
Disponvel em http://www.criarweb.com/artigos/118.php. Acesso em maio
de 2010.
ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de Dados. Ed. So
Paulo: Addison, 2005.
MANZANO, Jos Augusto N. G. MySQL 5 Interativo. Guia bsico de Orientao
e Desenvolvimento. Ed. rica, 1 Ed. 2007.

Sistemas de Gerenciamento de Banco de Dados 87 e-Tec Brasil

Potrebbero piacerti anche