Você está na página 1de 154

BANCO DE DADOS I

Simone Maria Viana Romano

2011

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Contedo
INFORMAES IMPORTANTES .................................................................................................................... 6 Sugesto de Livros e Revistas ......................................................................................................................... 6 Software Utilizados ......................................................................................................................................... 6 Avaliao ........................................................................................................................................................ 6 Contato ............................................................................................................................................................ 6 Avisos .............................................................................................................................................................. 6 Erros da Apostila ............................................................................................................................................ 6 PROJETO DE BANCO DE DADOS (TAREFA AVALIATIVA) .................................................................... 7 INTRODUO ..................................................................................................................................................... 8 HISTRIA ............................................................................................................................................................. 9 CONCEITOS ....................................................................................................................................................... 10 DADO ................................................................................................................................................................. 10 INFORMAO ..................................................................................................................................................... 10 CONHECIMENTO ................................................................................................................................................. 10 NVEIS DE INTERAO E NVEIS DE ABSTRAO ............................................................................................... 10 BANCO DE DADOS .............................................................................................................................................. 11 ARQUITETURA DE BANCO DE DADOS ................................................................................................................. 12 COMPARTILHAMENTO DOS DADOS..................................................................................................................... 13 INDEPENDNCIA DOS DADOS.............................................................................................................................. 14 TIPOS DE BANCO DE DADOS ...................................................................................................................... 14 INSTNCIA E ESQUEMA .............................................................................................................................. 15 SISTEMA DE BANCO DE DADOS................................................................................................................. 15 ABORDAGENS DE BANCO DE DADOS........................................................................................................ 16 HIERRQUICO .................................................................................................................................................... 17 REDE .................................................................................................................................................................. 17 RELACIONAL ...................................................................................................................................................... 18 ORIENTADO A OBJETO ....................................................................................................................................... 19 SISTEMA GERENCIADOR DE BANCO DE DADOS .................................................................................. 21 Definies .................................................................................................................................................... 21 Vantagens ...................................................................................................................................................... 22 Caractersticas .............................................................................................................................................. 22 PROJETO DE BANCO DE DADOS ................................................................................................................. 23 DEFINIO DO MODELO DE DADOS ................................................................................................................... 24 EXERCCIOS ................................................................................................................................................... 25 TAREFA 01 INTRODUO A BANCO DE DADOS ................................................................................. 25 MODELO CONCEITUAL DE DADOS ........................................................................................................... 26 COMPONENTES DO M.E.R. ................................................................................................................................. 26 ENTIDADE E INSTNCIA (TUPLA) ........................................................................................................ 26 RELACIONAMENTO.................................................................................................................................. 27 Diagrama de Ocorrncias ............................................................................................................................. 27 Auto-Relacionamento .................................................................................................................................... 28 Cardinalidade................................................................................................................................................ 28 Atributo.......................................................................................................................................................... 29 IDENTIFICAR ENTIDADES.................................................................................................................................... 31 RELACIONAMENTO IDENTIFICADOR ................................................................................................................... 31 ATRIBUTO-CHAVE ............................................................................................................................................. 32 EXEMPLO PRTICO............................................................................................................................................. 32 EXERCCIOS ................................................................................................................................................... 32 2

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

PROJETO: BANCO DE DADOS ...................................................................................................................... 35 ENTIDADE-RELACIONAMENTO ESTENDIDO ......................................................................................... 36 GENERALIZAO/ESPECIALIZAO ....................................................................................................... 36 NVEIS DE HERANA MLTIPLA......................................................................................................................... 38 ENTIDADE ASSOCIATIVA .................................................................................................................................... 38 NOTAO DER-X .............................................................................................................................................. 39 UTILIZAMOS A SEGUINTE NOMENCLATURA: ....................................................................................................... 40 RESTRIO DE DISJUNO ................................................................................................................................. 40 SUBCLASSES MUTUAMENTE EXCLUSIVAS:........................................................................................... 40 SUBCLASSES QUE SE SOBREPEM: .......................................................................................................... 41 ASPECTO TEMPORAL ................................................................................................................................... 42 EXERCCIOS ................................................................................................................................................... 42 TAREFA 02 - MODELO DE DADOS CONCEITUAL ................................................................................... 43 SOFTWARE BRMODELO ............................................................................................................................... 44 MENU SISTEMA ............................................................................................................................................. 45 PRTICA 01 - MODELO CONCEITUAL DE DADOS ................................................................................. 49 MODELO LGICO DE DADOS ...................................................................................................................... 50 ENGENHARIA DE INFORMAES ............................................................................................................. 50 COMPONENTES ............................................................................................................................................. 50 NOTAO ....................................................................................................................................................... 52 DIFERENA ENTRE AS NOTAES ........................................................................................................... 52 EXERCCIOS ................................................................................................................................................... 54 TRATAMENTO E CLASSIFICAO DOS DADOS .................................................................................... 57 TIPOS DOS DADOS......................................................................................................................................... 57 CLASSIFICAO DOS DADOS..................................................................................................................... 57 EXERCCIOS ................................................................................................................................................... 59 TAREFA 03TRATAMENTO DOS DADOS .................................................................................................. 61 DESCRIO DO FLUXO DE DADOS ............................................................................................................ 62 EXERCCIOS ................................................................................................................................................... 63 TAREFA 04 DESCRIO DO FLUXO DE DADOS ................................................................................... 66 RELACIONAMENTO ENTRE OBJETOS...................................................................................................... 67 CARDINALIDADE E MODALIDADE ........................................................................................................... 68 EXERCCIOS ................................................................................................................................................... 70 TAREFA 05RELACIONAMENTO ENTRE OBJETOS ................................................................................ 72 IDENTIFICAO DA INSTNCIA ................................................................................................................ 73 EXERCCIOS ................................................................................................................................................... 74 TAREFA 06IDENTIFICAO DE INSTNCIA .......................................................................................... 75 RELACIONAMENTO 1 : 1 ............................................................................................................................... 76 RELACIONAMENTO 1 : N .............................................................................................................................. 76 EXERCCIOS ................................................................................................................................................... 77 TAREFA 07 RELACIONAMENTO 1 : N...................................................................................................... 81 RELACIONAMENTO DO TIPO M : N ........................................................................................................... 82 EXERCCIOS ................................................................................................................................................... 84 TAREFA 08 RELACIONAMENTO M : N ..................................................................................................... 86 RELACIONAMENTO RECURSIVO ............................................................................................................... 87 PRATICA 02 MODELO LGICO DE DADOS ............................................................................................ 88 NORMALIZAO ............................................................................................................................................. 89

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

1 FORMA NORMAL ....................................................................................................................................... 91 2 FORMA NORMAL ....................................................................................................................................... 92 3 FORMA NORMAL ....................................................................................................................................... 92 OUTRAS FORMAS NORMAIS ....................................................................................................................... 93 FORMA NORMAL BOYCE CODD (BCNF) ................................................................................................... 93 4 FORMA NORMAL ....................................................................................................................................... 95 5 FORMA NORMAL ....................................................................................................................................... 95 DESNORMALIZAO ................................................................................................................................... 96 EXERCCIOS ................................................................................................................................................... 96 TAREFA 09 NORMALIZAO ................................................................................................................. 100 MODELO RELACIONAL ............................................................................................................................... 101 EXEMPLO DE ESTUDO DE CASO .............................................................................................................. 102 EXERCCIO .................................................................................................................................................... 103 UTILIZANDO O DBDESIGNER .................................................................................................................... 104 CONCEITO ..................................................................................................................................................... 104 ONDE ENCONTRAR O SITE ........................................................................................................................ 104 SOFTWARE ................................................................................................................................................... 104 CRIANDO OS OBJETOS ............................................................................................................................... 105 EXERCCIO .................................................................................................................................................... 111 PRTICA 03 DBDESIGNER ...................................................................................................................... 112 UTILIZANDO O ORACLE SQL DEVELOPER DATA MODELER ......................................................... 113 RELACIONAMENTOS NO MODELO LGICO ......................................................................................... 116 CARDINALIDADE ........................................................................................................................................ 116 ALTERANDO PARA O MODELO RELACIONAL...................................................................................... 116 ALTERANDO O TIPO DE DADO DE UM ATRIBUTO ............................................................................... 118 GERANDO O SCRIPT DDL........................................................................................................................... 120 EXTRAINDO UM MODELO DO BANCO DE DADOS ............................................................................... 122 DIVIDIR UMA TABELA ............................................................................................................................... 125 EXERCICIOS ................................................................................................................................................. 127 PRATICA 04 ORACLE SQL DATA MODELER........................................................................................ 128 ANEXO A - OBJETO RELACIONAL ........................................................................................................... 129 SQL ..................................................................................................................................................................... 129 ORACLE ............................................................................................................................................................ 130 VERSO 10G ................................................................................................................................................. 130 ESTRUTURA INTERNA ............................................................................................................................... 131 ORACLE 10G RELEASE EXPRESS EDITION ............................................................................................ 132 TABELAS EXISTENTES NO BANCO DE DADOS ..................................................................................... 135 INSTRUES SQL ........................................................................................................................................ 136 FERRAMENTAS DO ORACLE ..................................................................................................................... 136 SQL * PLUS .................................................................................................................................................... 136 LISTAR A ESTRUTURA DA TABELA ........................................................................................................ 137 CRIANDO INSTRUES SQL ..................................................................................................................... 137 CONECTANDO-SE AO ORACLE ................................................................................................................ 137 EXECUTANDO INSTRUES NO SQL * PLUS ........................................................................................ 137 EDIO E EXECUO DE BUFFER .......................................................................................................... 137 MANIPULAO DE BUFFER E ARQUIVO ............................................................................................... 138 EDITOR DE TEXTO ...................................................................................................................................... 138 TRATAMENTO DE EXIBIES .................................................................................................................. 138 FORMATAO ............................................................................................................................................. 138 HOME PAGE DE BANCO DE DADOS ......................................................................................................... 138 EXERCCIOS ................................................................................................................................................. 142 OBJETOS DO BANCO DE DADOS ............................................................................................................... 143 CRIANDO TABELAS ...................................................................................................................................... 143 4

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

TIPO DE DADOS ........................................................................................................................................... 143 CONVENES PARA NOMEAO ........................................................................................................... 144 ADICIONAR COLUNA ................................................................................................................................. 147 MODIFICAR COLUNA ................................................................................................................................. 148 RENOMEAR COLUNA ................................................................................................................................. 149 ELIMINAR COLUNA .................................................................................................................................... 149 RENOMEAR A TABELA .............................................................................................................................. 150 COPIAR TABELA .......................................................................................................................................... 151 ADICIONAR LINHAS A TABELA ............................................................................................................... 151 EXERCICIOS ................................................................................................................................................. 152 EXERCICIO EXTRA...................................................................................................................................... 153 EXERCICIO: CONVERSO CONCEITUAL PARA LGICO .................................................................... 154

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

INFORMAES IMPORTANTES
Sugesto de Livros e Revistas
BANCO DE DADOS PROJETO E IMPLEMENTAO Felipe Nery Rodrigues Machado, Ed. Erica, 2 Edio; PROJETO DE BANCO DE DADOS Carlos Alberto Heuser Editora SagraLuzzatto - 5 Edio; SISTEMAS DE BANCO DE DADOS Elmasri e Navathe Editora Pearson 4 Edio; SISTEMA DE BANCO DE DADOS Silberschatz, Korth, Sudarshan Editora Campus 5 Edio; FUNDAMENTOS DE SISTEMAS DE GERENCIA DE BANCO DE DADOS Mark L. Gillenson Editora LTC; BANCO DE DADOS: DO MODELO CONCEITUAL IMPLEMENTAO FSICA Ivan Mecenas e Vivianne de Oliveira Editora Alta Books. SISTEMAS DE BANCO DE DADOS PROJETO, IMPLEMENTAO E ADMINISTRAO Peter Rob e Carlos Coronel Editora Cengage 8 Edio 2011; GUIA MANG DE BANCO DE DADOS, Mana Takahashi, Shoko Azuma, Trend-Pro Co., LTD Editora Novatec 1 Edio 2009; USE A CABEA SQL Lynn Beightley Editora Alta Books 2008; Revista SQL MAGAZINE (http://www.sqlmagazine.com.br)

Software Utilizados DBDesigner 4- software opensource; Oracle Data Modeler; BR Modelo software freeware; Oracle 10G Express Edition1 (www.oracle.com.br2); Oracle 10G Interprise Edition.

Avaliao Duas provas com nota composta por (AVALIAO + TAREFAS3)/2 Trabalho a ser entregue na ltima aula do segundo bimestre. Mdia final = (1 Bim + 2 Bim + Trabalho)/3

Contato Disciplinas: Banco de Dados I, Banco de Dados II e Administrao e Gerenciamento de Banco de Dados; Email: simone_viana@yahoo.com.br e/ou simone@fatecpg.com.br

Avisos Na pgina de Banco de Dados da FATEC sempre ter avisos pertinentes ao contedo da disciplina. Erros da Apostila Caso seja encontrado erro na apostila, favor enviar por email no final do semestre. O brigada!
1 2 3

Software gratuito. Necessrio ter cadastro no site da Oracle, porm gratuito. Cada tarefa tem um valor diferente.

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

PROJETO DE BANCO DE DADOS (TAREFA AVALIATIVA)


Em grupo de no mximo cinco pessoas, criar um estudo de caso contendo: a) Descritivo expondo o estudo de caso a ser resolvido; b) Lista contendo os candidatos a objetos; c) Dicionrio de dados contendo o nome do atributo, o tipo de atributo e um descritivo do que aquele atributo ir armazenar; d) Fluxo de Dados; e) Modelo de dados normalizado: Modelo Conceitual (BRModelo); Modelo Relacional (ORACLE DATA MODELER); Modelo Lgico (BRModelo, DBDesigner e ORACLE DATA MODELER); Dicionrio de Dados; Modelo Fsico (script gerado no BRModelo, DBDesigner e ORACLE DATA MODELER). Observaes: Cada item dever estar em uma folha distinta. Na capa dever ter o nome dos alunos, a turma e o perodo; Data da Entrega: ltima aula do segundo bimestre. O script gerado dever ser enviado por email no dia da entrega do projeto.

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

INTRODUO
Que mundo fascinante este no qual vivemos hoje! Avanos tecnolgicos esto nossa volta em todos os aspectos no nosso dia-a-dia: telefones celulares a televiso via satlite, aeronaves avanadas, medicina moderna e computadores. Negcios de todos os tipos e tamanhos contam com computadores e sistemas de informaes que os apiam em um grau que teria sido inimaginvel h apenas alguns anos. Desde a produo e tcnicas de controle de estoque automatizadas, procedimentos de transaes financeiras automatizadas e ferramentas de marketing de alta tecnologia. Consumidores telefonam para os bancos, companhias de seguros e lojas de departamentos obtendo informaes instantaneamente. E tanto as empresas como os consumidores passaram a contar com a Internet para comunicao rpida... Por trs disso tudo, a base de todas as atividades so os DADOS. Esta disciplina sobre DADOS... Como pensar em dados de forma altamente organizada e ponderada? Como armazenar dados de maneira eficiente? Como podemos recuperar estes dados com eficcia? De que maneira, podemos gerenciar os dados de forma que estejam presente no momento desejado? Como reunir os dados em um conjunto organizado chamado banco de dados? Que software controla o banco de dados e supervisiona o AMBIENTE DO BANCO DE DADOS? Quais as diversas abordagens que as pessoas tm empregado para gerenciar o banco de dados? Os dados sempre existiram sem computadores e um dos motivos dele ter sido inventado foi porque precisvamos de ajuda para processar e armazenar grandes quantidades de dados.

Figura 1 Exemplo de Dados (extrada do Curso Oracle)

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

HISTRIA
Abaixo temos um quadro que representa a EVOLUO HISTRICA DO BANCO DE DADOS (DAMARIS, 2003):
GERAO Primeira DATA 1950 CARACTERSTICAS Sistema de arquivos; Acesso Seqencial; Memria secundria: fitas magnticas e cartes perfurados. Sistema de arquivos; Acesso Randmico; Memria secundria: discos magnticos. Gerao pr-relacional; Banco de dados; Informao lgica e fsica: pouca distino; Modelos emergentes: redes e hierrquico. Gerao relacional; Sistemas de banco de dados; Informao lgica e fsica: clara distino; Modelo emergente: relacional. Gerao ps-relacional; Modelos: estendido, orientado a objetos e orientado a regras.

Segunda

1960

Terceira

1970

Quarta

1980

Quinta

1990

A seguir temos um quadro que representa a EVOLUO HISTRICA DO MODELO DE DADOS (DAMARIS, 2003):
PERODO CARACTERSTICAS Surgem os sistemas operacionais; 1954 Incio do surgimento das linguagens de alto nvel. Surge o Comit CODASYL com o objetivo de especificar como manipular 1958 banco de dados garantindo integridade e independncia dos dados em relao ao hardware.

1963

Modelo de rede (dificuldades de modelagem). Modelo hierrquico;

1968

Lanado o IMS Information Managment System (IBM). Modelo relacional, baseado na teoria de conjuntos. Garante a integridade

1970

matemtica dos dados. Resulta de um trabalho de universidade de um pesquisador da IBM. Implementao do modelo relacional;

1976

Surge o MER (Modelo Entidade-Relacionamento). DB2 banco de dados relacional da IBM (casca relacional em cima do

1983

antigo IMS).

1988

Modelo de dados orientado a objetos.

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

CONCEITOS
Dado Fatos armazenados que precisamos para conduzir os esforos humanos. (GILLENSON, 2006); Fatos que podem ser gravados e que possuem um significado implcito. (ELMASRI, 2005);

Ou seja, so fatos brutos, ou seja, os fatos no foram processados para revelar seu significado e devem ser formatados adequadamente para o armazenamento, o processamento e a apresentao. Exemplo: um formulrio de pesquisa sobre a disciplina de banco de dados. Informao Resultado do processamento dos dados brutos para revelar seu significado. Este processamento pode ser simples como a organizao dos dados para revelar padres ou complexos, como a realizao de previses ou a extrao de inferncias(...) Para revelar seu significado, as informaes exigem um contexto (PETER, 2011);

Devido a atual era da informao, as informaes podem ser utilizadas para a tomada de decises, desde que sejam: precisas, relevantes e rpidas. Exemplo: os pontos fortes e fracos da disciplina de banco de dados. Obs. Alguns estudiosos acham que estamos iniciando a era do conhecimento4, onde os dados so o fundamento da informao que por sua vez a base do conhecimento corpo de informao e fatos sobre um assunto especfico.

Conhecimento Implica familiaridade, conscincia e compreenso das informaes conforme se apliquem a um ambiente. Uma caracterstica fundamental do conhecimento que o novo conhecimento pode ser obtido a partir do antigo. (PETER, 2011).

Nveis de Interao e Nveis de Abstrao Os usurios no acessam diretamente os dados. Para isto, ele faz uma solicitao a uma aplicao para manipular os dados. Esta aplicao faz uma chamada ao Sistema Gerenciador de Banco de Dados que por sua vez finalmente, acessa os DADOS.
4

Conceito criado em 1994 pelo Dr. Alvin Toffler e outros.

10

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Os nveis de abstrao so classificados em camadas: EXTERNA, LGICA e FSICA: EXTERNA: uma interface para manipular dados; LGICA: no existe fisicamente uma estrutura interna de organizao do banco de dados que chamamos de ESQUEMA; FSICA: contm todos os arquivos fsicos que possuem os registros dos dados.

Figura 3 Nveis de Abstrao (extrado da WEB)

Banco de Dados Segundo DAMARIS, o banco de dados uma coleo logicamente coerente de dados com determinada significao intrnseca, cuja principal finalidade o armazenamento organizado dessas informaes (...) Segundo DATE, o sistema de banco de dados consiste em um sistema de manuteno de informaes por computador que tem por objetivo manter as informaes e disponibiliz-las aos usurios quando solicitadas. Segundo PALMER, um banco de dados uma coleo de dados, organizados e integrados, que constituem uma representao natural de dados, sem imposio de restries ou modificaes para todas as aplicaes relevantes sem duplicao de dados. Segundo ROB, um banco de dados uma estrutura computacional e integrada que armazena um conjunto de dados do usurio final e metadados5. Resumindo: BANCO DE DADOS = DADOS + DESCRIO DOS DADOS Exemplo de Bancos de Dados

Controle Bancrio

Controle de Livros

Controle de Locao

Metadado (dados sobre dados) fornece uma descrio das caractersticas dos dados e do conjunto de relacionamentos que ligam os dados encontrados no banco de dados. Exemplo: nome de cada elemento, tipo de valor (numrico, data ou texto), pode ou no ser preenchido, entre outros.

11

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Arquitetura de Banco de Dados Os sistemas de computao tambm evoluram para que os dados tenham disponibilidade, questes de segurana, facilidade de acesso, etc. Ento temos diversas arquiteturas de banco de dados. Temos: PLATAFORMA CENTRALIZADA: um nico banco de dados, manipulado por mainframe e outros terminais que fazem o acesso do usurio ao banco de dados para manipulao destes dados. Como o mainframe possui grande capacidade de manipulao os outros terminais no precisam ter esta necessidade (terminais burros: no tem nem memria e nem processamento).

Figura 4 Plataforma Centralizada (extrada da Internet)

SISTEMA DE COMPUTADOR PESSOAL: onde a aplicao possui o seu prprio banco de dados em seu computador pessoal.

APLICAO

BANCO DE DADOS

Figura 5 Sistema de Computador Pessoal (feito pelo Autor)

BANCO DE DADOS CLIENTE-SERVIDOR: no so terminais burros, pois manipulam os dados que esto armazenados em um servidor de banco de dados.

12

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 6 Arquitetura Cliente-Servidor (extrada da Internet)

BANCO DE DADOS DISTRIBUDO: temos vrios bancos de dados que podem estar em servidores diferentes, em banco de dados diferentes, em estaes diferentes e vrios clientes nas estaes de trabalho.

Figura 7 Banco de Dados Distribudo (extrada da Internet)

Compartilhamento dos Dados Vamos imaginar uma escola de idiomas e de informtica que por exemplo, faa trs tarefas: Cadastrar os alunos, Controlar a Freqncia dos Alunos e a Cobrana das Mensalidades:
Sistema de Cobrana Sistema de Cadastro Controle de Freqncia

ALUNOS

ALUNOS

ALUNOS

Figura 8 Problemas de Arquivos (feito pelo autor)

Caso seja necessrio atualizar informao de um respectivo aluno, teremos um problema: pois o mesmo encontra-se armazenado em mais de um local6. Chamamos de REDUNDNCIA DE DADOS quando os dados so armazenados de forma desnecessria em locais diferentes. A redundncia de dados no controlada, faz com que ocorra: Inconsistncia de Dados: quando verses diferentes e conflitantes dos mesmos dados aparecem em diversos locais. Os dados que so inconsistentes tambm so chamados de desprovidos de integridade de dados. INTEGRIDADE DE DADOS definida como a condio em que todos os dados do banco so consistentes com os eventos e condies reais. Anomalia7 de Dados: quando a alterao de um dado feita em mais de um local. A anomalia ocorre quando nem todas as alteraes
A localizao dos dados em diversos locais chamado de ILHAS DE INFORMAO (que contm informaes diferentes dos mesmos dados). (ROB, 2011)
7 6

Anomalia uma anormalidade.

13

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

necessrias nos dados redundantes so realizadas com sucesso. Podem ser de atualizao, insero e excluso. Para resolver o problema, surge o COMPARTILHAMENTO DOS DADOS, onde as informaes so armazenadas uma nica vez e acessada por vrios sistemas:
Sistema de Cobrana Sistema de Cadastro Controle de Freqncia

ALUNOS

Figura 9 Banco de Dados Compartilhado (feito pelo autor)

Independncia dos Dados Independncia de (aplicaes em relao aos) dados significa que uma alterao no modelo de dados afeta pouco as aplicaes. Exemplo de sistema com pouca independncia: Modificao no esquema exige re-compilao de todos os programas. As aplicaes no contm descries dos dados. Com isso, a base de dados pode ser alterada sem que as aplicaes sejam modificadas. TIPOS DE BANCO DE DADOS

O SGBD pode dar suporte a muitos tipos de banco de dados e podem ser classificados pelo nmero de usurios, localizao, tipo e extenso do uso esperado:
Quantidade de usurios: Monousurio ou Multiusurio; Localizao dos dados: Centralizado ou Distribudo; Utilizao do banco de dados: Operacional8 ou Data WareHouse9; Estruturao dos Dados: Estruturado10, Semiestruturado11 ou No Estruturado12.

8 9

Tambm conhecido como TRANSACIONAL ou PRODUO.

Traduzindo: armazenagem de dados usado para gerar informaes necessrias na tomada de deciso: estratgica ou ttica.
10 11 12

Resultado dos dados no estruturados aps a formatao. Parcialmente processados. Existem em seu estado bruto (origem).

14

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 10 Tipos de Banco de Dados (extrado do livro de Peter Rob)

INSTNCIA E ESQUEMA Como o banco de dados muda com o tempo, as informaes armazenadas em um momento so chamados de INSTNCIA (KORTH, 2006). O projeto geral do banco de dados chamado de ESQUEMA DO BANCO DE DADOS e raramente modificado.

SISTEMA DE BANCO DE DADOS Segundo ROB, o sistema de banco de dados refere-se a uma organizao de componentes que define e regula a coleta, o armazenamento, o gerenciamento e a utilizao de dados em um AMBIENTE DE BANCO DE DADOS. O ambiente do sistema de banco de dados composto por cinco partes: HARDWARE, SOFTWARE, PESSOAS, PROCEDIMENTOS e DADOS.

Figura 11 Ambiente do sistema de banco de dados (extrado do livro Peter Rob) 15

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Os problemas do sistema de arquivos fizeram com que a utilizao de um sistema de banco de dados ficasse interessante. Abaixo temos a comparao da utilizao do sistema de banco de dados com o sistema de arquivos:

Figura 12 Comparao de um sistema de banco de dados x sistema de arquivos (extrado do livro de Peter Rob)

ABORDAGENS DE BANCO DE DADOS

Figura 13 Tipos de Abordagem (adaptado do Livro de ROB) 16

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Abordagem de banco de dados a forma como os dados em um SGBD so organizados e como permite a sua recuperao. (GILLENSON, 2006). As principais abordagens tambm chamadas por alguns autores de modelo de banco de dados podem ser: Rede, Hierrquico, Relacional e Orientado s Objetos. No quadro acima temos um comparativo da terminologia bsica utilizada entre os modelos (abordagens). Hierrquico Surge na dcada de 60, tambm pode ser chamado de Navegacional13. Organiza os dados em uma estrutura hierrquica (rvore) em um sistema unidirecional de pai para filho, iniciando sempre pela raiz, formado por uma coleo de registros conectados por links (DAMARIS, 2003). Possui o objetivo de gerenciar grandes quantidades de dados em projetos complexos. Sua estrutura lgica bsica representada por uma estrutura de rvore de cima para baixo. Esta estrutura contm nveis ou segmentos. Os segmentos equivalem ao tipo de registro em um sistema de arquivos. Representa um conjunto de relacionamentos um para muitos entre os segmentos. um conjunto de rvores, onde duas entidades esto unidas por um relacionamento: um ascendente pode ter vrios descendentes, mas, um descendente pode ser somente de um ascendente. Desvantagens: Difcil de implementar e de gerenciar; No dispe de independncia estrutural. No tem padres de implementao. Em resumo: dados filhos possuem apenas um pai. Os SGBDs mais conhecidos: IMS, ADABAS e o SYSTEM 2000.

Figura 14 Exemplo de Abordagem Hierrquica (feito pelo autor)

Rede A abordagem de rede surgiu no final da dcada de 60 e uma extenso da abordagem hierrquica. Foi desenvolvido para representar relacionamentos complexos entre os dados com eficincia e ganho de desempenho, impondo tambm um padro no banco de dados.
13

Programas que navegam para encontrar os dados.

17

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Esta abordagem permite organizar os dados em uma estrutura formada por vrias listas que define uma rede de ligaes (grafo direcionado). Os dados so organizados em tipos de registros e ligaes entre dois tipos de registros. No h restrio hierrquica, ou seja, quaisquer dois tipos de registros podem se relacionar. O conjunto composto por pelo menos dois registros: PROPRIEDADE e MEMBRO. Desvantagens: Muitas entidades gera esquema complexos de relacionamentos; Falta de consulta ad hoc; Qualquer alterao estrutural ainda poderia devastar todos os aplicativos que obtinham dados do banco. Em resumo: difere da abordagem hierrquica, pois os dados filhos podem ter mltiplos ancestrais. Os SGBDs mais conhecidos: IDMS, Total.

Figura 15 Exemplo de Abordagem de Rede (feito pelo autor)

Ou seja, para usar qualquer um desses modelos, preciso gerenciar os dados mantendo sua localizao fsica e ordem em mente. Dessa forma, difcil efetuar uma pesquisa flexvel e de alta velocidade em seus dados, se os modelos: hierrquico ou de rede forem utilizados. Ento, surge o modelo relacional... Relacional Desenvolvido por Edgar Frank Codd (Laboratrio de IBM em San Jose Califrnia) em 1970. Seu projeto inicial chamava-se Sistema R e apesar de na poca ser inovador foi considerado invivel, pois a simplicidade do modelo era conseguida a custa de sobrecarga no computador. O Sistema R definia a organizao dos dados e linguagens formais para a sua manipulao, onde cada linha de uma relao chamada de TUPLA. Conhea mais o trabalho do Dr. Codd em www.informatik.uni-trier.de/%7Eley/db/about/codd.html). Ex.: Sistema R, que definiu linguagens formais para manipulao dos dados. Surge ento a primeira verso da Linguagem de Consulta Estrutura SQL.
Figura 16 Dr. Codd (extrado da Web) 18

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Esta abordagem se tornou padro dos gerenciadores de banco de dados e o mais utilizado atualmente pelas empresas. Exemplo: Oracle, SQL Server, Informix, Sysbase, PostGreSQL, FireBird e Ingres.

Figura 17 Abordagem Relacional (extrado da Web)

Orientado a Objeto Um banco de dados relacional armazena dados em formato de texto em tabelas. No entanto, quando temos certos tipos de dados, pode ser inoportuno. Ento, surge o banco de dados orientado a objeto (BDOO). Esta abordagem utiliza objetos. Podemos ocultar os dados e expor apenas as operaes sobre os dados para lidar com o objeto como um componente independente (ENCAPSULAMENTO). Neste tipo, cada objeto representado com um identificador. As vezes, um objeto tambm chamado de instncia. Tambm podemos gerenciar objetos compostos (um objeto definido dentro do outro). O modelo para objetos chamado de CLASSE. Esta classe pode ter relacionamentos hierrquicos, ento podemos ter uma classe filha que tenha os mesmos dados e funes de uma classe base. Este relacionamento chamado de HERANA. A abordagem orientada a objeto baseada no paradigma da programao (tipos de dados abstratos, herana e identidade de projetos). uma extenso da abordagem relacional (que veremos a seguir) e muitas vezes chamada RELACIONAL ORIENTADA A OBJETO. Abaixo h uma tabela com um resumo das abordagens:

19

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 18 Principais abordagens (extrado do livro de Peter Rob)

20

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

SISTEMA GERENCIADOR DE BANCO DE DADOS

Figura 19 Sistema Gerenciador de Banco de Dados (extrado da Web)

Devido ao compartilhamento de dados, h a necessidade de uma estrutura de arquivos mais complexas, com isto surge o SISTEMA GERENCIADOR DE BANCO DE DADOS (SGBD) ou DBMS14.

Definies
Conjunto formado por um banco de dados mais as aplicaes que o manipulam. (DAMARIS, 2003); Coleo de programas que permite aos usurios criar e manter um banco de dados(...) sistema de software de propsito geral que facilita aos processos de definio, construo, manipulao e compartilhamento de banco de dados entre vrios usurios e aplicaes (ELMASRI, 2005); Software que incorpora as funes de definio, recuperao e alterao de dados em um banco de dados. (HEUSER, 2004) Um sistema gerenciador de banco de dados (DBMS) uma coleo de dados inter-relacionados e um conjunto de programas para acessar esses dados(...). O principal objetivo de um DBMS fornecer uma maneira de recuperar informaes do banco de dados que seja tanto conveniente como eficiente (...). O gerenciamento de dados envolve definir estrutura para armazenamento de informaes e fornecer mecanismos para a manipulao de informaes. Alm disso, (...) precisa garantir a segurana das informaes armazenadas, apesar das falhas do sistema ou de tentativas de acesso no autorizado. (KORT, 2006) Conjunto de programas que gerenciam a estrutura do banco de dados e controlam o acesso aos dados armazenados (...) (ROB, 2011)

14

DBMS DataBase Management System

21

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 20 Interao do usurio atravs do SGBD com a estrutura dos dados (extrado do livro de Peter Rob)

Podemos resumir dizendo que um conjunto de dados associados a um conjunto de programas (uma programa para permitir acesso outro para manipular, etc) para acesso a estes dados. Sua funo servir de intermedirio entre o usurio e o banco de dados. Exemplo de SGBD: Oracle, Sql Server, PostgreSQL e MySql. Obs: Microsoft Access no possui todas as caractersticas de um SGBD, por exemplo, controle de concorrncia. Por isto ele um banco de dados, mas, no um Sistema de Banco de Dados. Vantagens Melhoria na integridade dos dados; Melhoria no compartilhamento de dados; Minimizao da inconsistncia dos dados; Melhoria na tomada de deciso; Melhoria no acesso aos dados15; Aumento na produtividade do usurio final.

Caractersticas Integridade16 (dependncia das chaves); Restries ou consistncia (nico local de armazenamento); Restaurao ou reorganizao (atomicidade); No haver redundncia de dados; Independncia fsica (dados no dependem do esquema, dos tipos de aplicaes que acessam este banco de dados); Padronizao dos dados; AutoConteno (armazenamento dos dados e dos metadados); Abstrao17 (o usurio no precisa saber os detalhes como os dados so manipulados ou armazenados no banco de dados);
Respostas rpidas a consultas ad hoc (consulta que no pode ser previamente determinada)

15

16

Garantir a segurana, integridade e concorrncia dos dados 22

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Vises (limitao que o DBA restringe aos usurios. Segurana e privacidade); Controle das Transaes (garante a integridade dos dados); Controle de Concorrncia (no deixa dois bancos de dados acessar os dados ao mesmo tempo).

PROJETO DE BANCO DE DADOS


Todo bom sistema de banco de dados deve apresentar um projeto, que visa organizao das informaes e utilizao de tcnicas para que o futuro sistema obtenha boa performance e tambm facilite infinitamente as manutenes que venham a acontecer. Um sistema de informao utiliza um banco de dados que necessita de DADOS18 e PROCESSOS19. O PROJETO DE BANCO DE DADOS tem o objetivo de transformar as necessidades de informaes no negcio em um banco de dados. Ou seja, foca na maneira em que o banco de dados ser usado para armazenar e gerenciar os dados do usurio final e a primeira etapa criar o modelo de dados. O MODELO DE BANCO DE DADOS uma atividade desenvolvida inicialmente na fase de anlise, com o objetivo de encontrar as informaes necessrias, juntamente com as regras que definem o banco de dados. Resumindo: descrio formal da estrutura de um banco de dados. Para construir um modelo de dados, usamos uma linguagem de modelagem de dados, que so classificadas de acordo com a maneira de apresentar os dados (textuais ou grficas). Cada representao de um modelo de dados atravs de uma linguagem de modelagem de dados recebe o nome de esquema de banco de dados. No ambiente de banco de dados, o modelo representa a estruturao dos dados e suas caractersticas, relaes, restries e outros elementos. O projeto ocorre em trs fases: Modelagem conceitual, Modelo lgico e Modelo fsico. As duas primeiras so nveis de abstrao na construo do modelo de dados. Tambm pode estar dividido em: ESQUEMA CONCEITUAL: mtodo que retrata o mundo real. Determina a estrutura lgica de um banco de dados. ESQUEMA INTERNO: banco de dados visto de dentro do computador. Forma de determinar a estrutura fsica de um banco de dados. projetado aps a criao de um mtodo para fazer pesquisas no banco de dados. ESQUEMA EXTERNO: banco de dados como visto pelos usurios. Projetado aps a criao dos dados necessrios para os aplicativos. PROJETO CONCEITUAL: criamos um modelo abstrato de banco de dados de acordo com a viso da empresa, definindo o agrupamento dos elementos de dados no banco de dados. Identifica elementos redundantes e os grupos de elementos de dados repetidos para aplicaes especficas. Procuramos espelhar a realidade independente das restries de implementao. uma

17
18 19

Abstrair significa desconsiderar detalhes.


DADOS a parte mais estvel do sistema, aps definido pouco se altera. PROCESSO a parte mais dinmica, pois varia de acordo com as necessidades do negcio.

23

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

das etapas mais importantes do projeto. Nesta etapa criado o MER(Modelo Entidade Relacionamento). Vantagens: - Melhor compreenso pelo usurio leigo; - Independe dos detalhes de implementao; - Traduo para qualquer modelo de dados de banco de dados. PROJETO LGICO: mapeia o modelo conceitual para um modelo lgico (tambm chamado de modelo de dados), que pode ser, por exemplo, o modelo relacional. Em resumo, usado para padronizar de acordo com a implementao (entidade, atributo e relacionamentos). PROJETO FSICO: cria os objetos do banco de dados atravs de scripts. a representao das tabelas, colunas, chaves e ndices.

MINIMUNDO

Coleta e Anlise de Requisitos

Coleta informaes sobre os dados

REQUISITOS DE DADOS Foco: DADOS Projeto Conceitual Traa os dados principais e seus relacionamentos sem se preocupar com a implementao Necessidade dos dados definido atravs do MER Define os dados que implementam os requisitos identificados de acordo com a abordagem Definido atravs do MR

ESQUEMA CONCEITUAL Independe SGBD do Projeto Lgico para ESQUEMA LGICO Projeto Fsico Parmetros de acesso fsico Definido atravs do SQL

Especfico SGBD

ESQUEMA FSICO

Figura 21 Etapas do Projeto de Banco de Dados (feito pelo Autor)

Definio do Modelo de Dados Um modelo de banco de dados uma descrio dos tipos de informaes que esto armazenados em um banco de dados (HEUSER, 2004). Exemplo: informaes sobre alunos, como: matrcula e nome sem informar quais so os alunos.
MODELO DE DADOS = DESCRIO FORMAL DA ESTRUTURA DE UM BANCO DE DADOS

24

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

No projeto de banco de dados usamos dois nveis de abstrao20: CONCEITUAL e LGICO. Ao conjunto de conceitos usados na construo de um modelo d-se o nome de ABORDAGEM DE MODELAGEM (HEUSER, 2004). EXERCCIOS 1. O que redundncia de dados e quais caractersticas do sistema de arquivos que podem levar a ela? 2. O que independncia de dados e por que falha em sistemas de arquivos? 3. O que um SGBD e quais as suas funes? 4. Cite trs negcios onde podemos encontrar um banco de dados. 5. Explique a diferena entre dado e informao. 6. Quais so os principais componentes de um sistema de banco de dados? 7. O que so metadados? 8. Explique com suas palavras por que um projeto de banco de dados importante. 9. Quais as principais caractersticas de cada etapa de um projeto de banco de dados? 10. Pesquisar na Internet, as Doze Regras de Codd. 11. Considere os bancos de dados dos tipos de negcios a seguir e encontre as informaes que deseja armazenar: a. BIBLIOTECA; b. LOJA ONLINE.

TAREFA 01 INTRODUO A BANCO DE DADOS


1. Considere a estrutura em arquivos a seguir e faa o que pede (2,5):
Matrcula Nome Aluno 79 171 Genoveva Passione Porsidius Insensato 66 Marizildo TiTiTi Rua A, 10, Flores Santos 11090-123 Av. Neves, 20 apto. 15 So Vicente 11345-567 Praa 20 de Janeiro 15, casa 03 Santos 11070-000 3367-8990 5678-8909 INFORMATICA ANALISE Endereo Telefone Curso

3244-5678

INFORMATICA

a. Quantos dados e quantas informaes por dado - o arquivo contm? b. Que problema encontraria se fosse necessrio listar por cidade? Como resolveria este problema? c. Se fosse necessrio criar um relatrio contendo sobrenome e CEP, como alteraria o arquivo acima? Nome________________________________ Perodo: ______ Data: _______
Abstrao dos Dados: As aplicaes vem dados de forma abstrata, independente de detalhes fsicos de implementao (fatores de bloco, localizao no meio de armazenamento, existncia de ndices e caminhos de acesso).
20

25

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

MODELO CONCEITUAL DE DADOS


O modelo conceitual a descrio do banco de dados de forma independente de implementao em um SGBD (HEUSER, 2004). Tem o objetivo de registrar os dados que podem aparecer em um banco de dados, mas no registra como estes dados esto armazenados no SGBD. Ou seja, o modelo de dados abstrato, que descreve a estrutura de um banco de dados de forma independente do SGBD. A tcnica mais difundida a ABORDAGEM ENTIDADE21 RELACIONAMENTO, atravs do MER utilizando como representao grfica o DIAGRAMA DE ENTIDADE-RELACIONAMENTO (D.E.R.). Esta abordagem foi criada em 1976 por um chins chamado Peter PinShan Chen e tornou-se um padro na criao da modelagem conceitual. Este modelo possui dois componentes principais: ENTIDADES e RELACIONAMENTOS.

Figura 22 Peter Chen (extrado da WEB)

Componentes do M.E.R. ENTIDADE E INSTNCIA (TUPLA) Entidade o nome dado ao conjunto de objetos22 do mundo real, sobre as quais h necessidade de manter informaes no banco de dados. Exemplo: CURSO, ALUNO. Por padro, sempre so escritos em letras maisculas, no singular23, sem abreviaes e de preferncia, sem acentos e sem cedilha. Se for um nome com palavras compostas devero estar separadas por underline (_). Exemplo: HISTORICO_ESCOLAR, CONTROLE_BANCARIO. So representados graficamente por retngulos. Exemplo:
CURSO HISTORICO_ESCOLAR ALUNO

21

MER Modelo Entidade-Relacionamento OBJETO categoria das coisas concretas ou abstratas.

22

23

Em alguns livros o nome da entidade tambm aparece no plural. Como padronizao, somente no singular ser considerado.

26

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Chamamos de INSTNCIA ou TUPLA , o contedo de uma entidade. Por exemplo, o nome da aluna Genoveva Porsidius, uma ocorrncia da entidade ALUNO. Exemplo:
Genoveva Porsidius

ALUNO

RELACIONAMENTO Conjunto de associaes entre ocorrncias de entidades. (HEUSER, 2004). Representado graficamente por um losango. H trs tipos: 1 para M, M para N ou 1 para 1. Exemplos: a) Um departamento pode ter vrios funcionrios, porm um funcionrio pertence somente a um departamento por vez:

FUNCIONARIO

DEPARTAMENTO

Figura 23- Representao grfica do Relacionamento (extrado da Web)

A seguir temos um exemplo de como interpretar as cardinalidades em um modelo:

Figura 24 Exemplo do raciocnio utilizado no relacionamento (extrado da Web)

Diagrama de Ocorrncias A elaborao deste diagrama til, principalmente com a finalidade didtica de reconhecer a forma como acontece um determinado relacionamento entre entidades.
27

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Neste diagrama as ocorrncias de entidades so representadas por circulo branco e as ocorrncias dos relacionamentos so representados por crculos pretos. Exemplo:

Figura 25 Exemplo de Diagrama de Ocorrncias (extrado da Web)

Auto-Relacionamento o relacionamento entre ocorrncias da mesma entidade, para identificar surge o PAPEL DE ENTIDADE DE RELACIONAMENTO24. Exemplo:
PESSOA

Figura 26 Exemplo de Auto-Relacionamento (extrado da WEB)

Cardinalidade Identifica quantas ocorrncias de uma entidade podem estar associadas a uma determinada ocorrncia atravs do relacionamento. Temos as cardinalidades MNIMA25 e MXIMA. Sintaxe: (mnima, mxima). Exemplo:

Figura 27 Esquema de Relacionamento (extrado da WEB)

24

Instncia da entidade cumpre dentro de uma instncia do relacionamento. Modalidade identifica a quantidade mnima de uma ocorrncia em uma entidade.

25

28

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

A quantidade mxima expressa quantas instncias de uma entidade podem estar associadas, via relacionamento, a uma instncia de outra entidade. Pode ser 1 ou vrios (representado por n). Exemplo:

Figura 28 Exemplo de Cardinalidade Mxima.

A quantidade mnima representa o menor nmero de ocorrncia que pode estar associada a uma ocorrncia em uma entidade atravs de um relacionamento. Pode ser 126 ou 0. Exemplo:

Figura 29 Exemplo de Cardinalidade Mnima e Mxima.

Os relacionamentos acima so classificados como BINRIO devido a quantidade de entidades existentes no relacionamento. Pode ser TERNRIO, QUARTENRIO, etc. Exemplo:

Figura 30 Exemplo de Relacionamento Ternrio (extrado da WEB)

Atributo o dado associado a cada ocorrncia de uma entidade ou de um relacionamento. Ou seja, uma caracterstica de uma entidade. Exemplo:

26

Quando a cardinalidade mnima 1, significa que obrigatria. Quando 0 opcional.

29

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

PROJETO

Figura 31 Exemplo de Atributos (extrado da WEB).

Podemos colocar cardinalidades: mnima e mxima nos atributos. Quando a cardinalidade mnima 1, significa que o seu contedo obrigatrio. Quando o mnimo zero, significa que opcional. Na cardinalidade mxima, podemos classificar o atributo como: MONOVALORADO: cardinalidade mxima 1; MULTIVALORADO: cardinalidade mxima n (vrios). Exemplo:
FUNCIONARIO

Figura 31 Exemplos de Tipos de Atributos (extrado da WEB).

H outra maneira de representar os atributos. Exemplo:

CLIENTE

CONTA

Figura 32 Representao Grfica de Atributos (extrado da WEB)

Muitas vezes, os atributos no so representados graficamente para no sobrecarregar os diagramas. O conjunto de valores de um determinado atributo chamado de DOMNIO DE ATRIBUTO. Tambm podemos ter ATRIBUTOS NOS RELACIONAMENTOS. Exemplo:

Figura 33 Atributos em Relacionamentos (extrado da WEB) 30

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Identificar Entidades Toda entidade possui um IDENTIFICADOR, tambm chamado de chave, que um conjunto de um ou mais atributos e relacionamentos cujos valores servem para distinguir uma ocorrncia da entidade das demais ocorrncias da mesma entidade. (HEUSER, 2004). Exemplo:

CLIENTE CURSO

Figura 35 Exemplos de Identificador de Entidades (extrado da WEB)

Esta identificao pode ser: SIMPLES (Atmico) ou COMPOSTO (mais de um atributo). Exemplo:

Figura 36 Tipos de Identificador de Entidades (extrado da WEB)

Relacionamento Identificador A entidade DEPENDENTE chamado de ENTIDADE FRACA, pois somente existe se estiver relacionada a outra entidade. E a entidade EMPREGADO a ENTIDADE FORTE. Exemplo:

Figura 37 Exemplo de Relacionamento Identificador (extrado da WEB)

A ENTIDADE FRACA representada por forte.

ou pela linha mais

31

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Atributo-Chave Tambm chamado de CHAVE ou RESTRIO DE UNICIDADE. So valores distintos para cada uma das entidades e so usados para identificar cada entidade de forma nica. Exemplo: matrcula, cdigo de produto. Exemplo Prtico Vamos elaborar um banco de dados que permita o correto controle das matrculas dos alunos em uma escola, onde a preocupao concentra-se no acompanhamento da vida acadmica dos alunos. 1) Identificar entidades: ALUNO, CURSO e DISCIPLINA. 2) Identificar relacionamentos: ALUNO matricula-se CURSO CURSO formado por DISCIPLINA ALUNO cursa DISCIPLINA 3) Construir o modelo:

(N:1) (M:N) (M:N)

rg

ALUNO

CURSO

DISCIPLINA

Figura 38 Resoluo do Exemplo Prtico (extrado da WEB)

EXERCCIOS 1) Discuta a importncia da modelagem de dados. 2) O que um relacionamento e quais so seus trs tipos? 3) Identifique as cardinalidades: mnima e mxima dos relacionamentos abaixo: a) Um PINTOR pode pintar vrias PINTURAS; cada PINTURA criada por um PINTOR:
pinta

PINTOR

PINTURA

32

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

b) Um FUNCIONARIO pode aprender vrias HABILIDADES; cada HABILIDADE pode ser aprendida por vrios FUNCIONARIOS:

FUNCIONARIO

aprende

HABILIDADE

c) Um FUNCIONARIO gerencia uma LOJA; cada LOJA gerenciada por um FUNCIONARIO:


FUNCIONARIO gerencia LOJA

d) Um VIGILANTE substitui um ou vrios vigilantes:

4) Com base no que foi visto, identifique as cardinalidades no modelo conceito abaixo:

5) Observe o modelo conceitual seguir e com base na tabela abaixo, coloque os atributos em suas respectivas entidades e acrescente as cardinalidades mnima e mxima:

33

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

6) Identifique as entidades e crie o modelo conceitual de dados:

7) Com base no sistema de venda de passagens areas, faa o que se pede: a) Definir os relacionamentos entre as entidades e as cardinalidades e criar o modelo conceitual:
34

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

CLIENTE

PASSAGEM

AERONAVE

VO

b) Identificar os atributos e os atributos identificadores. 8) Com base no estudo de caso a seguir, crie o modelo conceitual de dados: Em uma clnica trabalham mdicos e existem pacientes internados. Cada mdico identificado pelo seu CRM, possui um nome e recebe um salrio na clnica; Um mdico tem formao em diversas especialidades (ortopedia, traumatologia, etc.), mas s exerce uma delas na clnica; Para todo paciente internado na clnica so cadastrados alguns dados pessoais: nome, RG, CPF, endereo, telefone(s) para contato e data do nascimento; Um paciente tem sempre um determinado mdico como responsvel (com um horrio de visita dirio pr-determinado). Porm vrios outros mdicos podem participar do seu tratamento; Pacientes esto sempre internados em quartos individuais, que so identificados por um nmero e ficam em um andar da clnica.

PROJETO: BANCO DE DADOS


Com base no que foi visto at o momento faa o que se pede: 1. Definir os componentes do grupo; 2. Criar um estudo de caso; 3. Criar uma lista dos candidatos a objetos e possveis atributos.

35

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

ENTIDADE-RELACIONAMENTO ESTENDIDO
O modelo entidade-relacionamento estendido ou expandido (EER), inclui os conceitos de superclasse e subclasse e os conceitos de especializao/generalizao. Tambm chamado de MER-X. GENERALIZAO/ESPECIALIZAO

Figura 39 Esquema de Especializao/Generalizao

ESPECIALIZAO: processo de definir um conjunto de subclasses de um tipo entidade, chamada de superclasse da especializao (NAVATHE, 2005); GENERALIZAO: usado para nos referir ao processo de definio de um tipo de entidade generalizada a partir de tipos de entidades fornecidas.

Atribui propriedades particulares a um subconjunto das ocorrncias (especializadas) de uma entidade genrica (herana). Representado graficamente por um tringulo issceles. Exemplo:

FILIAL

CLIENTE

PESSOA_FISICA

PESSOA_ JURIDICA

Figura 40 Exemplo de Especializao/Generalizao (adaptado pelo autor)

Pode ser classificado como: TOTAL, PARCIAL, EXCLUSIVA ou COMPARTILHADA: TOTAL: para cada entidade genrica existe sempre uma ocorrncia na especfica. Exemplo:

36

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 41 Exemplo de Especializao/Generalizao Total (adaptado pelo autor)

PARCIAL: nem toda ocorrncia da entidade genrica possui uma ocorrncia correspondente em uma entidade especfica. Exemplo:

Figura 42 Exemplo de Especializao/Generalizao Parcial (adaptado pelo autor)

COMPARTILHADA: indica uma hierarquia, uma ocorrncia da entidade genrica pode aparecer em vrias entidades. Exemplo:

Figura 43 Exemplo Especializao/Generalizao Compartilhada (adaptado pelo autor)

37

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

EXCLUSIVA: na hierarquia, uma ocorrncia de entidade genrica especializada no mximo uma vez. Nveis de Herana Mltipla

Figura 44 Exemplo de Herana Mltipla (adaptado pelo autor)

Entidade Associativa Um retngulo em torno do losango indica que o relacionamento passa a ser visto como ENTIDADE e pode ser associada a outras entidades. Exemplo:

MEDICO

PACIENTE

MEDICAMENTO
Figura 45 Exemplo de Entidade Associativa (adaptado pelo autor)

38

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

O exemplo acima equivale ao modelo abaixo:

MEDICO

PACIENTE

CONSULTA

MEDICAMENTO
Figura 44 Exemplo de Entidade Associativa (adaptado pelo autor)

Notao DER-X

Figura 45 Exemplo da Notao DER-X27 (extrado da WEB)

27

Considerar o nome das entidades com todas as letras maisculas

39

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 46 Exemplo de DER-X (extrado da WEB)

Utilizamos a seguinte nomenclatura:


SIMBOLO SIGNIFICADO Participao total da entidade relacionamento.

em

EMPREGADO

A letra a no circulo, indica especializao (conjunto de subclasses) Smbolo do subconjunto. Indica a direo do relacionamento de superclasse/ subclasse (NAVATHE, 2005) Identificador

U
cpf

Figura 47 Nomenclatura Utilizada pelo Modelo Estendido (extrado da WEB)

Restrio de Disjuno SUBCLASSES MUTUAMENTE EXCLUSIVAS: Entidade de uma superclasse deve ser membro no mximo de uma nica subclasse: d (disjoint) Exemplo: EXCLUSO MTUA: uma disciplina no pode ser de graduao E de ps ao mesmo tempo.

40

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 48 Exemplo de Excluso Mtua (extrado da WEB)

SUBCLASSES QUE SE SOBREPEM: uma entidade de uma superclasse pode ser membro de mais do que uma subclasse: o (overlap); Exemplo: SOBREPOSIO: um funcionrio pode acumular mais de uma funo ao mesmo tempo.

Figura 49- Exemplo de Sobreposio (extrado da WEB)

41

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

ASPECTO TEMPORAL

Os atributos cujos valores modificam ao longo do tempo:

Figura 50 - Exemplo de Aspecto Temporal (extrado da WEB)

Relacionamentos que modificam ao longo do tempo:

Figura 51 - Exemplo de Aspecto Temporal (extrado da WEB)

EXERCCIOS 1. Quando utilizar uma entidade associativa? 2. Utilizando o conceito de herana, criar um MER contendo FUNCIONARIO com trs funes: ATENDENTE, VENDEDOR e ENTREGADOR. 3. Modele uma hierarquia de generalizao/especializao para os tipos entidade CARRO e CAMINHO. Defina as restries de disjuno:

42

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

4. Criar um modelo entidade-relacionamento que controle o pronturio dos

pacientes de um hospital. O hospital possui um conjunto de pacientes e um conjunto de mdicos. No registro dos pacientes, temos o nome, RG, CPF, endereo e telefone. No registro dos mdicos temos o nome, especialidade, RG, CPF, CRM, endereo e telefone. Cada paciente tem associado a si um pronturio (sua ficha), onde so registradas basicamente todas ocorrncias, exames, consultas, medicamentos ministrados associadas a ele. Cada registro no seu pronturio, alm de ter a data tem que estar relacionado a um mdico, que o responsvel pela informao do registro cadastrado no sistema.

TAREFA 02 - MODELO DE DADOS CONCEITUAL


Objetivo: Construir o modelo de dados conceitual e caso seja necessrio, utilize o modelo estendido para atender o estudo de caso abaixo (5,0): 1. Uma companhia de seguros de automveis com um conjunto de clientes, onde cada um possui um certo nmero de carros. Os dados do cliente so nome, RG, CPF, endereo e telefone. Do carro deve-se armazenar a placa, cdigo Renavan, fabricante, modelo, e ano. Associado a cada carro h um histrico de ocorrncias. Um carro podem possuir vrias ocorrncias ou nenhuma. Cada ocorrncia deve ter uma data, local e descrio.

2. Para cada agncia bancria armazenado nmero, cidade e dados sobre os funcionrios que ali trabalham, tais como nome, endereo, cdigo e salrio. Cada cliente cadastrado em uma agncia especfica pode possuir vrias contas bancrias. Para os clientes deseja-se armazenar o nome, o RG e a cidade na qual residem, alm de suas contas bancrias. Dados importantes para as contas dos clientes da agncia so o nmero da conta, o saldo e informaes sobre o conjunto de transaes (nmero da transao, data e valor) associados conta.

Nome________________________________ Perodo: ______ Data: _______

43

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

SOFTWARE BRMODELO
Este software surgiu de um projeto de concluso de curso com o objetivo de criar uma ferramenta para o modelo conceitual o foco desta aplicao ao contrrio das principais ferramentas disponveis no mercado. O brModelo est fortemente acoplado aos conceitos de construo de modelos/esquemas adotados pelo Dr. Carlos A. Heuser. Suas vantagens em relao s ferramentas avaliadas, em sntese, so: o Permitir alteraes estruturais no modelo diante de novas decises do analista; o Converso de atributo em entidade; o Converso de relacionamento em entidade associativa; o Converso de especializao de restrita para opcional ou vice-versa. o Uma outra importante funcionalidade a capacidade de exibir seus modelos lgicos (salvos em XML) na mesma notao adotada pelo professor Heuser atravs do uso de XSLT; o No h necessidade de instalao, pode rodar direto do pen-drive. Ao clicar no arquivo executvel BrModelo, surge a tela a seguir:

Figura 52 - Tela Inicial (feito pelo Autor)

44

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

MENU SISTEMA

Log de Operaes: exibe o status de tudo que est ocorrendo no modelo de dados. Exportar Imagem: permite escolher o tipo BMP ou JPEG para salvar o modelo como imagem.

Figura 53- Menu Sistema (feito pelo Autor)

Ao escolher o Novo(Conceitual), podemos:

Figura 54- Modelo Conceitual (feito pelo Autor)

45

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Exemplo de Modelo Conceitual:

Figura 55 - Exemplo de Modelo Conceitual com o Log de Operaes habilitado (feito pelo Autor)

Onde: Atalho Cria uma entidade. Cria uma relao (relacionamento). Entidade Associativa. Especializao. Especializao com a criao de entidades. Especializao no-exclusiva com a criao de entidades. Criao de atributo. Atributo Identificador (chave). Atributo Composto. Atributo Opcional. Atributo Multivalorado. Auto-relacionamento. Ligar objetos (relacionamento) Descrio

46

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

No menu SISTEMA GERAR DICIONARIO DO ESQUEMA ou com a tecla de atalho F12, surge a tela abaixo:

Figura 56 - Exemplo de Dicionrio de Dados (feito pelo Autor) MENU ESQUEMA CONCEITUAL

Gerar Esquema Lgico: Converte o modelo conceitual em modelo lgico.

Figura 57 - menu Esquema Conceitual (feito pelo Autor)

47

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Surge a tela a seguir:

Figura 58 Exemplo de Modelo Lgico (feito pelo Autor) MENU ESQUEMA LGICO

Figura 59 Menu Esquema Lgico (feito pelo Autor)

Atalho Criar tabela Criar relacionamento Criar campo

Descrio

Criar campo chave estrangeira Criar campo chave primria Criar um separador de campo Criar texto (observao) Criar texto (observao) Apagar

Obs. Com base no modelo lgico criado, crie o modelo fsico, selecionando o ESQUEMA LGICO e clique na opo GERAR ESQUEMA FSICO.
48

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

CONVERSO ENTRE MODELOS


Utilizando o software DBModelo podemos criar o modelo conceitual converter para o modelo lgico e em seguida converter para o modelo fsico:

PESQUISA
Pesquisar sobre um software gratuito que possui reunido em um s programa UML e banco de dados chamado Open ModelSphere.

EXERCCIOS
1. Com base no estudo de caso abaixo e utilizando o software BRModelo, crie o modelo conceitual e em seguida converta para o lgico: Um departamento responsvel por no mnimo uma disciplina. Uma disciplina por sua vez pode ter de zero a vrias turmas que esto sendo oferecidas. Cada turma por sua vez possui no mnimo um aluno inscrito, e no pode existir uma turma que no esteja relacionada a uma disciplina. Um aluno cadastrado no sistema pode estar ou no matriculado em alguma disciplina, e pode tambm estar matriculado em vrias disciplinas. Um departamento deve ter em seu registro a sigla, o nome e o nome do chefe. Cada disciplina deve ter um nome, um cdigo, a descrio da ementa, e a bibliografia. Cada Turma deve ter um registro do seu turno (manh, tarde ou noite) e professor que ministra. Cada aluno deve ter em seus registros nome, RG, CPF, N de carteirinha, endereo e telefone.

PRTICA 01 - MODELO CONCEITUAL DE DADOS


Objetivo: Utilizando o software BRModelo, construir o modelo conceitual de dados de acordo com o estudo de caso abaixo, utilizando as nomenclaturas utilizadas (2,5): Uma firma verde produtos de limpeza e deseja melhor controlar os produtos que vende, seus clientes e os pedidos. Cada produto caracterizado por um cdigo, nome do produto, categoria (exemplo: detergente, sabo em p, sabonete, etc.), e seu preo. A categoria uma classificao criada pela prpria firma. A firma possui informaes sobre todos seus clientes, como CPF, nome, endereo (composto por logradouro, bairro, cidade e CEP) e at cinco telefones de contato. Nome________________________________ Perodo: ______ Data: _______
49

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

MODELO LGICO DE DADOS


A estruturao e a distribuio dos dados, interfere de forma direta no desempenho do sistema e na facilidade de se fazer futuras manutenes. Durante a fase de anlise realizada uma atividade considerada fator crtico de sucesso atividade que deve ser bem feita para que um objetivo seja alcanado para se obter um bom desempenho do futuro sistema de informao. Esta atividade a construo do modelo conceitual de dados do novo sistema. Uma caracterstica essencial do modelo de dados no conter nenhuma redundncia de dados. Um determinado dado ou atributo do modelo de dados s pode aparecer em um nico lugar. o meio formal de representar os dados de um sistema de informao que retrata a realidade do sistema e o ciclo de negcio representado pelo mesmo. Por retratar o ciclo de negcio e a realidade envolvida com o sistema ele deve estar ao alcance da compreenso e entendimento de seus usurios.

ENGENHARIA DE INFORMAES
A notao que estaremos utilizando no modelo lgico de dados chamada de NOTAO DE ENGENHARIA DE INFORMAES, foi criada na dcada de 80 por James Martin (HEUSER, 2004). Esta notao da nfase a modelagem de dados e usada at hoje pela ferramentas CASE. Relacionamentos binrios; Atributos somente aparecem em entidades (jamais em relacionamentos); Notao das cardinalidades grfica (o mais prximo do retngulo representa a cardinalidade mxima). Denominao de um relacionamento escrita em forma de verbos. Exemplo: DEPARTAMENTO tem lotado EMPREGADO EMPREGADO est lotado em DEPARTAMENTO.

COMPONENTES
OBJETO
Tambm chamado de ENTIDADE, representa a categoria de coisas concretas ou abstratas do mundo real, sobre a qual h interesse em guardar informao. Um objeto individualizado atravs de suas ocorrncias, definidas como INSTNCIAS ou TUPLAS. Pode ser um objeto concreto como um automvel ou uma pea de moblia. Como pode ser abstrato como uma pessoa, organizao (empresa) ou um evento ocorrido como uma reunio. Exemplos: CLIENTE, MERCADORIA, ALUNO, CURSO, TURMA, DISCIPLINA. Ou seja: O objeto CLIENTE ter a pessoa do cliente Marcelo Faria, como ocorrncia, uma individualizao, uma instncia do objeto. Cada instncia representa, descreve uma nica ocorrncia do mundo real. Temos como
50

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

decorrncia que todas as instncias ou tuplas de um determinado objeto tm as mesmas caractersticas e esto em conformidade com as mesmas regras.

ATRIBUTO
uma propriedade, uma caracterstica de um objeto (ou entidade) que o sistema necessita conhecer. O atributo o dado que fica armazenado no interior do sistema, ligado a um objeto. Os atributos so preenchidos por valores que diferenciam duas instncias de entidade de um mesmo conjunto. Para cada atributo existe ainda um conjunto de valores possveis. Exemplos: cd_matricula_aluno, nm_aluno, dt_nascimento_aluno. O nm_aluno um atributo, um dado, enquanto que Reginaldo Faria o contedo do atributo. DISCIPLINA sg_disciplina BD SO nm_disciplina Banco de Dados Sistemas Operacionais

RELACIONAMENTO
Constitui-se numa associao entre uma ou mais entidades (objetos) representado uma linha unindo os objetos. Exemplo:

CASA

COMODO

51

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

NOTAO
H vrias notaes utilizadas em modelo de dados. Abaixo temos um comparativo.

Figura 57 - Tipos de Nomenclatura (adaptado pelo Autor)

DIFERENA ENTRE AS NOTAES

Figura 58 Exemplo das Diferentes Notaes: Chen x Martin (extrado do livro ROB)

52

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

TIPOS DE NOTAO EXISTENTE AT O MOMENTO

Figura 59 Opes de Notao no MER (ELMASRI, 2005)

53

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

EXERCCIOS
1. Assinale a alternativa exceo28. ( ( ( ( ) ) ) ) No Modelo Conceitual de Dados, alguns dados redundantes, ainda que poucos so indicados para uso. No ciclo de vida de um sistema de informao, o modelo conceitual desenvolvido na fase de anlise. O modelo de dados deve ser inicialmente construdo levando-se em conta os processos envolvidos no sistema. Tupla a mesma coisa que atributo.

2. Assinale a alternativa exceo. ( ( ) O detalhamento dos processos durante a fase de anlise podem trazer ajustes no modelo de dados. ) O objeto formado por vrios atributos, os contedo dos atributos formam instncias e cada instncia descreve uma nica ocorrncia do mundo real. ) Objeto um conjunto de coisas concretas ou abstratas do mundo real sobre a qual h interesse em guardar informaes. ) nm_aluno uma instncia do objeto ALUNO.

( (

3. Relacione as colunas ( 1 ) Tabela ( 2 ) Linha da Tabela ( 3 ) Coluna da Tabela

( ( (

) Tupla ) Objeto ) Atributo

) Instncia

4. Assinale a alternativa CORRETA: Um objeto na instalao do sistema, ser um armazenador de dados que pode ser: ( ) um arquivo magntico em um disquete. ( ) um fichrio em uma gaveta. ( ) uma tabela em um banco de dados relacional. ( ) um caderno de anotaes. ( ) todas as alternativas anteriores so possveis. 5. Nos texto a seguir, indique os objetos, os atributos e os contedos dos atributos citados: Conseguimos mais alguns assinantes, o Sr. Marcelo Faria, professor, que ir fazer uma assinatura mensal do jornal EXPRESSO POPULAR a partir de 15/11/2010 e a Sra. Fernanda Montenegro, programadora, que ir fazer uma assinatura anual da revista SQL MAGAZINE a partir de 10/11/2010:

28

Entende-se por exceo, quando houver 3 alternativas verdadeiras e 1 falsa, esta ser a alternativa correta ou vice-versa.

54

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

6. Abaixo h 15 atributos. Em seguida so indicados os nomes de alguns objetos. Indique os atributos correspondentes de cada objeto. Se faltar algum objeto, crie nas demais colunas: cd_cpf_paciente nm_medico nm_remedio dt_prescricao_receita dt_consulta hr_consulta cd_remedio dt_nascimento_paciente cd_crm_medico nm_paciente dt_nascimento_medico

qt_total_remedio_receitada qt_remedio_diaria_receitada qt_tempo_previsto_consulta MEDICO CONSULTA PACIENTE

55

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

7. Defina entidades e os atributos no modelo de dados:

56

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

TRATAMENTO E CLASSIFICAO DOS DADOS


TIPOS DOS DADOS H trs tipos bsicos de dados: o NATURAL descreve o objeto e sua existncia independente da forma como o objeto ser utilizado pelo sistema. o mais adequado para ser identificador do objeto do sistema. Exemplo: nm_funcionrio, dt_nascimento_funcionario, cd_sexo_funcionario. o DERIVADO ou CALCULADO criado por causa de uma necessidade especfica do sistema. Formado por um processo que utiliza outros dados para a sua criao. Os dados utilizados so do tipo natural. Exemplo: qt_idade_funcionario depende do dado natural dt_nascimento_funcionario, vl_salario_liquido_funcionario depende vl_salario_bruto_funcionario. ARTIFICIAL criado para possibilitar uma identificao interna ao sistema. Aparecem durante o desenvolvimento do sistema, quando no se encontram dados naturais que sejam convenientes para formarem identificadores das ocorrncias do objeto. desconhecido dos usurios. Exemplo: cd_identificao_contrato.

Para saber a diferena entre um dado natural e um artificial o dado natural (exemplo cd_matricula_aluno ou cd_registro_geral_cidado) necessrio, ou seja, nasce com o objeto. J o artificial quando precisamos de uma identificao (nmero adicional) que no existe no objeto. CLASSIFICAO DOS DADOS Todos os elementos de um sistema de informao devem ser padronizados para que a comunidade envolvida com o mesmo no tenha dificuldades de entendimento e de intercmbio. Nesse sentido, os dados devem ter um padro com regras claras de forma a facilitar o uso, o manuseio e a identificao. Os dados podem ser agrupados de acordo com as caractersticas, formando o tipo de dados. Todo o dado depois de classificado e identificado o seu tipo, recebe um nome apropriado, que deve ser claro para ser entendido pelos profissionais do sistema. O nome do dado sempre ir iniciar com o mnemnico correspondente ao seu tipo. Mnemnico pode ser definido como abreviatura das entidades ou atributos do modelo lgico. Por exemplo, tbl para definir tabela. So teis para visualizar a estrutura das tabelas, pois definem bem o escopo de cada coluna. Podemos classificar de diversas maneiras e diversos tamanhos, mas um bom padro utilizarmos dois (mximo trs) caracteres para cada mnemnico. Os mais comuns so: NOME/DESCRIO: define o nome ou descrio de um objeto. Muitas vezes estes tipos de colunas podem ser confundidos entre si. Nome simplesmente a definio do objeto. Descrio uma informao relativa ao objeto. Exemplo: PRODUTO e atributos: nome e descrio do produto, com valores distintos: CANETA, cor azul e escrita fina. Estes dois campos so do tipo CARACTERE e alguns de seus mnemnicos so: nm, nom e ds, dsc ou des.

57

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

CODIGO: Coluna do tipo CARACTERE, embora possamos encontrar com valores INTEIROS para chave primria de uma tabela. Mnemnicos possveis so: cd, cd. STATUS: define o estado de um registro. Geralmente pode ser Ativo, Cancelado, Expirado, Inativo. Coluna do tipo CARACTERE com mnemnicos: ic, st, sta. DATA: podemos incluir hora, minutos, segundo e at milessegundos. Mnemnicos possveis: dt, dat, ts(Timestamp); OBSERVAO: utilizamos normalmente ds, mas podemos encontrar: txt, tx, ob, obs. IDENTIFICADOR: utilizado para chave primria. Campo do tipo NUMRICO, com possveis mnemnicos: id, ide. NMERO/VALOR/QUANTIDADE: colunas usadas para definir tipos NUMERICOS. Possveis mnemnicos: num, nbr (nmero), vl, vlr, val (valor), qt, qtd,qtt (quantidade). A T E N O!!!!! No nosso curso para padronizao - vamos definir TODOS OS DADOS, sem exceo, conforme classificao abaixo:

Sigla cd ds dt dd mm aa hr ic nm qt sg pc vl im

Descrio cdigo (alfanumrico, inclui nmeros) descrio data dia ms ano hora indicador (descreve dois valores ou estados) nome quantidade (valores no monetrios) sigla porcentagem valor imagem

Exemplo cd_nota_fiscal cd_matricula_aluno ds_equipamento dt_nascimento_aluno dd_nascimento_aluno mm_nascimento_aluno aa_nascimento_aluno hr_inicio_aula ic_debito_credito nm_professor qt_aluno_exame sg_disciplina pc_desconto_mensalidade vl_mercadoria im_aluno

Figura 60 Tipos de m-nemnicos (feito pelo autor)

O nome de um dado deve ser simples para ser entendido pelos usurios e fazer sentido no ciclo de negcio que o sistema retrata. Deve ter uma estrutura simplificada que no deixe dvidas aos desenvolvedores com relao ao sistema. Por isto, no utilizam palavras no plural, preposies, artigos, conjunes, etc. Usamos underscore _ entre as palavras para indicar que um nico dado, uma nica palavra. Obs.: Os atributos que so aceitos com abreviao so: cep, cnpj, cpf, inss, fgts e pis.
58

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

EXERCCIOS 1. Especifique os dados que retratem as necessidades a seguir: nome de uma cidade sigla de um estado brasileiro indicador se possui ou no dependente nmero de uma nota fiscal nota final de um aluno capacidade de um balde preo de um calado tamanho do p de um cliente desconto promocional das mercadorias total de alunos presentes em sala de aula foto de um produto salrio lquido de um funcionrio idade de um aluno inicio e trmino da aula durao da aula mostrar se a lmpada est acesa ou apagada sexo de um funcionrio nmero de alunos inscritos na disciplina 2. Se houver erros nos dados abaixo, indicar a maneira correta: nm_nome_fornecedor cd_nmero_ordem_servio nr_matricula_aluno vl_tamanho_capacidade_reservatrio cd_indicao_motor_ligado ds_cidade vl_preco_mercadoria_disponvel cd_produto_estoque dt_vencimento_mensalidade qt_preco_do_veiculo cd_numero_identificao_pianos qt_total_lixo_recolhido ds_placa_identificaao_motocicleta qt_preco_corte_cabelo qt_minima dt_vencimento vl_total_peso_bezerro nr_carteira_identidade st_situacao_equipamento ic_debito_credito tp_materia_prima_utilizada nm_fabricante_impressora ds_nome_endereo_funcionrio
59

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

hr_previsto_de_embarque_dos_passageiros nm_tinta_pintura_do_quadro hr_partida_voo nm_nome_cavalo_preo nm_descrio_tecido_tapete dt_de_validade ds_equipamento_eletrnico qt_largura_mesa sg_nome_empresa_area st_situao_equipamento nr_inscrio_candidato

3. No texto abaixo, grife o contedo de dados e defina o nome dos dados correspondentes.

Veja s nossas promoes, o preo do sapato preto social de cromo de R$ 130,00, o do sapato marrom esporte de camura de R$ 50,00, o da bolsa azul de nylon de R$ 85,00, e o preo da sandlia social branca de couro de R$ 75,00.

60

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

TAREFA 03TRATAMENTO DOS DADOS


Em um sistema de informao de uma agncia de turismo, indicar os dados que possam retratar as situaes abaixo (1,0): nome da empresa operadora nome dos passageiros descrio dos principais locais de interesse data da sada da excurso quantidade de passageiros mxima na excurso cidade de destino da excurso preo que o passageiro ir pagar pela excurso vencimento das faturas de financiamento identificao da companhia area tipos de transportes envolvidos guia responsvel pela excurso diferentes tipos de pagamento impedimento do excursionista em viajar ou no nmero do contrato que o passageiro assina recomendaes teis aos passageiros

Nome________________________________ Perodo: ______ Data: _______

61

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

DESCRIO DO FLUXO DE DADOS


O fluxo de dados o caminho dos dados de um ponto a outro no sistema. Tem a funo de transferir os dados entre os diversos processos (chamamos de processo, uma sequncia de atividades com o objetivo de cumprir uma determinada funo). no fluxo de dados que transformamos e manipulamos os dados e no responsvel pelo armazenamento dos dados. formado por diversos dados que so denominados de elementos de dados. Os fluxos de dados tambm tm um padro a ser seguido. Ou seja, fluxos devem ser descritos independente da maneira como sero implantados fisicamente. Portanto, todo fluxo de dados deve ter um nome que no esteja associado tecnologia de implantao do sistema.

PADRO PARA DESCRIO DOS FLUXOS DE DADOS:


Usamos os smbolos a seguir para padronizar a descrio dos fluxos e assim, criar o relacionamento entre os diversos elementos de dados que compem este fluxo: + ( ) [ / ] { } < / > E Opcional, o dado pode ou no ser informado. Ou (ocorre um ou outro). Mltipla ocorrncia, de 1 a vrias ocorrncias e/ou, ocorre somente um, vrios ou todos

Figura 61 Tabela com Nomenclatura de Descrio de Fluxo de Dados (feito pelo autor)

O nome de um fluxo de dados no se encaixa em nenhum dos tipos que descrevem os dados, portanto no dever comear com nenhum daqueles mnemnicos. Essa principal diferena, os elementos de dados tm nomes que se iniciam com m-nemnicos, enquanto que os fluxos de dados no. Exemplos vlidos: nota_fiscal, escala_horrio, inscrio_candidato, etc. Os nomes dos fluxos de dados e dos dados devem ser na medida do possvel, auto-explicativos. Ao nomear, o analista deve evitar o uso de palavras no plural, artigos, conjunes, preposies, etc. Isso facilita e evita dvidas futuras para se escrever ou fazer referncias aos nomes corretos. Exemplo correto: vl_total_fatura. Exemplo incorreto: vl_totais_das_faturas.

62

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

EXERCCIOS
1. Descreva o fluxo de dados: NOTA FISCAL Nmero: 102.030 Nome do Cliente: Toni Ramos Inscrio Estadual (se isento no preencher): CNPJ ou CPF: 373.951.988-23 Quantidade Material 3 Caneta 2 Caderno 1 Pasta c/ elstico Valor Unitrio 4,50 11,00 5,00 Data: 25/12/2010

Valor Total 13,50 22,00 5,00 40,50

TOTAL DA NOTA FISCAL:

2. Descreva o fluxo de dados que est sendo solicitado no pedido do usurio: Sr. Analista, preciso de sua ajuda para controlar as ocorrncias de ponto de nossos funcionrios. Gostaria de receber um relatrio mensal com a matrcula de cada funcionrio, as datas que ele teve ocorrncia de ponto, que ocorrncia foi (atraso, licena, falta, etc.) e a indicao se a mesma foi justificada ou no. Esta lista precisa sair separada para cada um dos nove departamentos que a empresa tem. Obrigado. 3. Considerando as regras adotadas, corrija os erros nas descries abaixo: solicitao_compra = + dt_solicitacao_compra + nome_solicitante + {cd_material_solicitado + qt_material_solicitado + qt_preco_unitario_material_solicitado + ic_confidencialidade_solicitacao_compra relao_inscritos_excurso = nm_cidade_destino_excurso + cd_tipo_transporte_excurso + dt_data_embarque_excurso + {nm_nome_turista + qt_idade_turista + cd_codigo_sexo_turista} ficha_inscrio_candidato = nm_candidato + ds_candidato + ic_candidato + <nm_pai_candidato + nm_me_candidato>
63

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

4. Descreva o fluxo de dados dos estudos de caso a seguir: a)

b)

64

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

c)

d)

Dados Cadastrais do Funcionrio

Matrcula: 951 Nome: Rodrigo Maranguape Lombardi Data Nascimento: 15/10/1976 Nacionalidade: brasileiro Sexo: masculino Estado Civil: solteiro RG: 35.951 CPF: 753.357.788-65 Endereo: Rua So Jos, n 50 apto. 34 Telefone: (11)9511-8778 Data de Admisso: 02/01/2002 Cargos Ocupados Cargo: Gerente de TI Data Incio: 02/01/2002 Data Fim: at o momento Cargo: Analista de Sistemas Data Incio: 05/10/2003 Data Fim: 31/12/2005 Departamento de Lotao Depto.: Informtica Data Incio: 02/01/2002 Data Fim: at o momento Depto.: Marketing Data Incio: 04/05/2003 Data Fim: 31/12/2005 Dependentes Nome: Data de Nascimento: Rafael 15/10/2008 65

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

TAREFA 04 DESCRIO DO FLUXO DE DADOS


1. Descreva o fluxo de dados abaixo de acordo com a classificao dos dados (1,0):

Nome________________________________ Perodo: ______ Data: _______

66

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

RELACIONAMENTO ENTRE OBJETOS

Figura 62 Tipos de Relacionamento entre Objetos (extrado do curso Oracle)

O modelo conceitual de dados deve retratar o mundo real. Os objetos so as categorias das coisas do ciclo de negcios que o sistema tem interesse em controlar e/ou armazenarem as informaes. Se tomarmos a aluna Juliana Paes ela uma instncia do objeto ALUNO. Da mesma maneira, se tomarmos a Informtica, este uma instncia do objeto CURSO:
Juliana Paes

Informtica CURSO

ALUNO

Se o modelo de dados deve retratar o mundo real, de alguma maneira ele precisa indicar que Juliana Paes cursa o curso de Informtica:
cursa ALUNO CURSO

O relacionamento no sentido inverso tambm significativo e precisa ser retratado pelo modelo de dados. preciso indicar que o curo de Informtica cursado por Juliana Paes:

ALUNO _cursado

CURSO

67

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Podemos ainda representar atravs de um trao unindo os dois objetos, estaremos indicando que as instncias dos dois objetos envolvidos tm um relacionamento significativo no ciclo de negcio em estudo:
cursa ALUNO _cursado CURSA

Dever ser atribudo um nome ao relacionamento para maior clareza e para identificao do mesmo quando do uso de ferramentas CASE. Cada nome atribudo deve ser nico em todo o modelo de dados.

CARDINALIDADE E MODALIDADE
A CARDINALIDADE descreve a quantidade mxima que um relacionamento pode ter. A MODALIDADE descreve a quantidade mnima de um relacionamento. Vamos usar os objetos NOTA FISCAL e MERCADORIA, que apresentam um relacionamento significativo no ciclo de negcio. A questo a ser respondida : Quantas mercadorias so vendidas atravs de uma nota fiscal? S tem sentido a emisso de uma nota fiscal se pelo menos uma mercadoria for vendida atravs da mesma. Portanto, uma instncia de NOTA FISCAL pode se relacionar com UMA instncia de MERCADORIA no mnimo, e com VRIAS instncias no mximo. Chegamos ento aos valores da cardinalidade e s combinaes possveis de serem feitas com os valores: mnimo e mximo. Um objeto se relaciona com outro com cardinalidade mnima de ZERO ou UM e com cardinalidade mxima de UM ou VRIOS. Isto possibilita quatro combinaes: MNIMO MXIMO REPRESENTAO DESENHO

0 1 0 1

1 1 Vrios Vrios

(1) 1 (N) N

Tabela 3 Tabela com Nomenclatura para Relacionamento entre Objetos

Assim, escrevemos o relacionamento: NOTA FISCAL (N) : N MERCADORIA (vende) ou no sentido inverso: MERCADORIA N : ( N ) NOTA FISCAL (_vendida) Os dois pontos entre as cardinalidades indicam que se trata de um relacionamento entre objetos. Abaixo temos as possveis representaes grficas nos relacionamentos:

68

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 63 Possveis Relacionamentos (extrado da WEB)

Observao: O relacionamento 1 : 1 um tipo de relacionamento muito eficiente para evitar informaes vazias desnecessariamente, que ocupam espao em disco e diminuem a performance do banco de dados. Esse tipo de relacionamento normalmente aplicado a registros (usados em determinadas situaes) com informaes nulas para determinados campos da entidade. Exemplo: FUNCIONARIO pode pertencer a uma das duas categorias bsicas: EFETIVO e CONTRATADO. Um FUNCIONARIO pode ser um e somente um EFETIVO e um EFETIVO deve ser um somente um FUNCIONARIO:
FUNCIONARIO # cd_funcionario nm_funcionario cd_telefone vl_salario EFETIVO # dt_contratao # cd_pis dt_nascimento qt_dependente

ser ser

Lembre-se: Algumas ferramentas CASE, utilizam apenas um risco para representar (1,1).
69

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

EXERCCIOS
1. Complete os desenhos abaixo que representam os relacionamentos indicados:
FORNECEDOR PRODUTO

( N ) : N (fornece)

DEPARTAMENTO

FUNCIONARIO

1 : N (aloca)

LIVRO

AUTOR

N : N (escreve)

PACIENTE

CONSULTA

1 : N (solicita)
QUESTO

AVALIAO

1 : N (tem)

2. A partir das indicaes dos relacionamentos, construa o desenho DE UM NICO modelo de dados indicado o nome dos relacionamentos no desenho. Todos os objetos e relacionamentos fazem parte do mesmo modelo de dados, portanto do mesmo desenho. ALUNO (N) : N DISCIPLINA (cursa) DISCIPLINA N : 1 PROFESSOR (_ministrada) ALUNO N : 1 CURSO (est_inscrito) DISCIPLINA (N) : (N) LIVRO (utiliza) LIVRO N : N AUTOR (inscreve) 3. Considere a seguinte situao:

O funcionrio est dedicado a um departamento, tem vrios ou nenhum dependente, pode ou no autorizar a assinatura de um contrato e , algumas vezes, responsvel por um ou mais bens do patrimnio da organizao. Um contrato pode ser autorizado por mais de um funcionrio, porm todo bem do patrimnio s pode ter um responsvel.
a) Quais os objetos encontrados na situao acima. b) Construa o provvel modelo de dados que retrate esta realidade. c) Indique os objetos onde devero estar os atributos abaixo: ATRIBUTO cd_identificao_bem_patrimonial nm_departamento dt_inicio_validade_contrato cd_matricula_funcionario OBJETO

70

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

4. Criar relacionamentos que atendam a necessidade a seguir:

5. Faa o fluxo de dados de acordo com a classificao, encontre os objetos e crie relacionamento entre eles utilizando as cardinalidades:

ACADEMIA FIQUE EM FORMA Rua Julio Conceio, n 1000 Aluno: Gloria Pires R. Gois, n 50 apto. 10 Telefone: 3222-6660 Modalidade: Yoga Modalidade: Natao Utiliza o estacionamento? CPF: 951.159.158-50 Bairro: Gonzaga Celular: 8112-5151 Dias: 2f e 4f. Dias: 3f e 5 f Sim Incio em: 06/03/2009 Cidade: Santos Outros: Horrio: 8h s 9h Horrio: 7:30 as 8:30 No

6. Crie o modelo lgico de dados com seus relacionamentos de um sistema de banco de dados para ser utilizado pelos departamentos da universidade:

Um departamento responsvel por no mnimo uma disciplina. Uma disciplina por sua vez pode ter de zero vrias turmas que esto sendo oferecidas. Cada turma por sua vez possui no mnimo um aluno inscrito, e no pode existir uma turma que no esteja relacionada uma disciplina. Um aluno cadastrado no sistema pode estar ou no matriculado em alguma disciplina, e pode tambm estar matriculado em vrias disciplinas. Um departamento deve ter em seu registro a sigla, o nome e o nome do chefe. Cada disciplina deve ter um nome, um cdigo, a descrio da ementa, e a bibliografia. Cada Turma deve ter um registro do seu turno (manh, tarde ou noite) e professor que ministra. Cada aluno deve ter em seus registros nome, RG, CPF, Nmero de carteirinha, endereo e telefone.

71

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

TAREFA 05RELACIONAMENTO ENTRE OBJETOS


Crie o modelo lgico de dados com seus relacionamentos, de um sistema de banco de dados para ser utilizado no controle de nota fiscal (1,0):

Nome________________________________ Perodo: ______ Data: _______


72

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

IDENTIFICAO DA INSTNCIA
O modelo de dados deve retratar o mundo real envolvido com o ciclo de negcio que o sistema se presta a apoiar. Chamamos de chave o identificador de cada ocorrncia do objeto. A chave um atributo - ou conjunto de atributos - capaz de identificar de forma nica, uma instncia de um objeto. Todos os atributos no chave de uma instncia devem depender do atributo chave e por ele serem identificados. O contedo da chave fixo e no pode se alterar com o tempo. E como a chave tem que ser nica, ela no pode apresentar dois contedos iguais, isto , o mesmo contedo em mais de uma ocorrncia e obrigatrio o seu preenchimento. A correta escolha da chave garante que a mesma no s identifique, mas tambm unifique a instncia do objeto, isto , garante a individualizao da instncia. Por exemplo, cd_matricula_funcionrio s pode ser chave, se na empresa referenciada pelo sistema, a numerao dos funcionrios for nica. Se entre as filiais da empresa a numerao for independente, ento este atributo embora identifique um funcionrio dentro da filial, no o unifica em toda a empresa. atravs das chaves que os processos fazem os acessos nas instncias dos diversos objetos de um sistema de informao. A chave primria um atributo natural do objeto atravs da qual, todos os demais atributos da instncia so identificados. No objeto CIDADO o atributo cd_cpf_cidado pode ser uma chave primria e os demais atributos no chave, nm_cidado, dt_nascimento_cidado, etc. se identificam atravs do cd_cpf_cidado. Pode acontecer de um objeto apresentar mais de um atributo apto a ser chave primria. Nestes casos, cabe ao analista decidir qual o mais adequado em funo do ambiente do sistema e do ciclo de negcio. Atributos do tipo nm (nome) e ds (descrio) no so apropriados para formarem chave primria, pois apresentam contedos extensos e imprecisos. Causam dvidas e no garantem que haja preciso no contedo do atributo chave. Quando uma instncia no apresenta nenhum atributo que sozinho, sirva para ser chave primria, procura-se associar dois ou mais atributos que, em conjunto possam cumprir a funo de chave da instncia do objeto. A chave concatenada o nome dado a um conjunto de atributos capaz de identificar de forma nica uma instncia do objeto. Os demais atributos no chave devem se identificar por toda a chave e no somente por parte dela. necessrio que se garanta que o contedo do conjunto de atributos escolhidos seja fixo e nico. Um atributo que forma a chave concatenada pode ter contedos repetidos, mas o conjunto de atributos que formam a chave concatenada no pode. Os dados que dizem respeito temporalidade como dt, hr, etc, no podem ser chave primria, por no haver possibilidade de unicidade do contedo, mas so comuns em chaves concatenadas. Exemplo: No objeto HOLLERITH necessrio utilizar a dt_emissao_hollerith concatenado com cd_matricula_funcionrio, pois, no mesmo dia podemos emitir mais de um hollerith. H ainda outros conceitos referente a identificao de instncia:

73

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Chave candidata atributo ou conjunto de atributos que so nicos para cada instncia do objeto. Exemplo: cpf. Chave primria entre as chaves candidatas, escolhe-se aquele atributo que ser o identificador principal da tabela. Chave alternativa chave primria. chaves candidatas, que no foram utilizadas como

Chave estrangeira atributo ou conjunto de atributos que faz ligao com uma chave candidata de outra tabela.

EXERCCIOS
1. Complete com V ou F: ( ( ( ( ( ) Instncia uma ocorrncia do mundo real. ) Se ocorrncia do mundo real, a instncia tem que ser nica. ) A chave de uma instncia tem que garantir sua identificao. ) Para ser nica, ser conhecida, uma instncia tem que ter uma chave. ) Somente a identificao da instncia no suficiente, preciso que ela seja nica, preciso garantir tambm a unicidade da instncia.

2. Dentre os tipos de atributos abaixo, CIRCULE os mais adequados para chave primria e SUBLINHE os mais adequados para chave concatenada:

cd nm sg ic

dt

ds hr pc qt vl

3. Assinale os atributos que sozinhos, podem vir a ser chave primria: ( ) cd_registro_geral_aluno ( ) cd_placa_automvel ( ) cd_cpf_cidadao ( ) cd_onibus ( ) qt_nota_final_aluno ( ) cd_matricula_aluno ( ) sg_companhia_aerea ( ) vl_salario_funcionario ( ) cd_registro_funcionario ( ) dt_emissao_hollerith 4. Assinale a alternativa exceo. Sobre chave concatenada: ( ) Pode ser formada por um nico atributo. ( ) muito comum em um modelo de dados. ( ) Nunca contm dado do tipo artificial. ( ) Pode ser formada por muitos atributos. 5. Assinale a alternativa exceo: ( ) O modelo de dados desenvolvido durante a fase de projeto. ( ) Os atributos so definidos em funo dos elementos de dados do sistema. ( ) No existe elemento de dado que seja um dado do tipo calculado.

74

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

TAREFA 06IDENTIFICAO DE INSTNCIA


1) Identifique as chaves primrias mais provveis dos objetos a seguir. Admita que todos os atributos so possveis de pertencer aos objetos indicados. Crie novos atributos para serem chaves primrias, se necessrio (0,5):

FUNCIONARIO
cd_matricula_funcionrio nm_funcionario dt_nascimento_funcionario cd_sexo_funcionario dt_admisso_funcionario nm_cliente

CLIENTE

NOTA_FISCAL
dt_emisso_nota_fiscal vl_total_nota_fiscal dt_prevista_entrega_produto qt_total_produto_comprado

dt_primeiro_contato_cliente cd_registro_geral_cliente sg_unidade_federativa_registro_geral ic_sexo_feminino_masculino_cliente

CONTRATO
dt_assinatura_contrato cd_cpf_contratante cd_cpf_contratado vl_total_contrato nm_cidade_assinatura_contrato

ALUNO
cd_matricula_aluno_aprovado nm_aluno_matriculado_curso nm_aluno_convocado_jogo qt_nota_mnima_aprovao

REUNIO
cd_sala dt_reunio ds_agenda_reunio qt_tempo_estimado_reunio

2) Identifique as chaves (se houver):

CANDIDATA

ALTERNATIVA

PRIMRIA

Nome________________________________ Perodo: ______ Data: _______


75

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

RELACIONAMENTO 1 : 1
Um relacionamento um-para-um, existe entre duas tabelas, quando um nico registro da primeira tabela est relacionado a um nico registro da segunda tabela e um nico registro da segunda tabela est relacionado a um nico registro da primeira tabela. Esse tipo de grau de relacionamento bastante restritivo na associao dos elementos e, por isso, acaba sendo pouco comum no dia-a-dia. Os relacionamentos de grau 1:1 so bastante difceis de serem caracterizados, pois qualquer mudana de interpretao ou viso pode fazer com que facilmente eles sejam questionados e at reconsiderados. Temos um exemplo para o entendimento deste relacionamento? L-SE: Uma conferncia possui uma nica comisso.

RELACIONAMENTO 1 : N
Os relacionamentos entre os objetos so criados em funo do ciclo de negcio que o modelo de dados retrata. Dois sistemas que retratem ciclos de negcios diferentes podem ter diversos objetos iguais na base de dados, mas os relacionamentos iro dar significados diferentes para cada modelo conforme o ciclo imponha. Durante a construo do modelo, para testar sua consistncia, efetuado a navegao entre os objetos, que ser a mesma que os processos realizaro para produzir diversas respostas que o sistema necessita fornecer ao ambiente. Na descrio e detalhamento dos processos, as sequncias de acessos aos objetos, ocorrero atravs dos relacionamentos. Todo relacionamento do tipo 1 : N gera um atributo estrangeiro que o elo de ligao entre duas instncias e a existncia de um atributo estrangeiro indica que h um relacionamento da instncia de um objeto com outra instncia de outro objeto, ou de maneira simples, indica que h um relacionamento entre dois objetos. No relacionamento entre dois objetos, o objeto dependente herda a chave do objeto de origem como atributo estrangeiro. O atributo estrangeiro aparece em todos os relacionamentos do tipo 1 : N independente da cardinalidade mnima dos relacionamentos. O objeto associado cardinalidade N recebe como atributo estrangeiro chave do objeto associado cardinalidade 1. O atributo estrangeiro poder ou no vir a ser chave do objeto dependente, isso depende da convenincia na identificao dos objetos. Chave estrangeira o nome dado ao atributo estrangeiro quando o mesmo chave do objeto dependente. Exemplo:

76

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

adquire
PROPRIETRIO

VECULO _adquirido

# cd_cpf_proprietrio nm_proprietrio

# cd_placa_veculo nm_veculo cd_chassi_veculo E cd_cpf_proprietrio

Chamamos de NAVEGAO NO MODELO DE DADOS, a criao do atributo estrangeiro (E) no objeto destino, baseado na chave primria do objeto de origem.

EXERCCIOS
1. Assinale a exceo. ( ( ( ( ) possvel se fazer navegao no Modelo de Dados em caminhos que no sejam pelos relacionamentos. ) Ao prever a existncia de uma chave estrangeira em um objeto preciso ter cuidado porque a mesma pode ser tornar um atributo redundante. ) Um atributo chave do objeto A pode ser um atributo estrangeiro no objeto B, e tambm chave estrangeira no objeto C. ) Alguns atributos estrangeiros so criados, independente de existir relacionamentos com os objetos aos quais pertencem.

2. Assinale a exceo. ( ( ) OBJETO A 1:N OBJETO B. Um atributo no chave do OBJETO A ser um atributo estrangeiro no OBJETO B ) Para ser um atributo estrangeiro ou uma chave estrangeira, o atributo precisa ser necessariamente atributo chave no objeto que est fazendo o relacionamento. ) Quando um objeto apresenta um atributo estrangeiro, significa que, obrigatoriamente este objeto esta relacionado de maneira N : 1 com outro objeto. ) S se lana mo de um atributo artificial para compor uma chave de objeto, quando no se encontra entre os seus atributos naturais, algum que seja mais conveniente. O atributo artificial poder vir a ser chave ou atributo estrangeiro em outro objeto.

2. Complete as estruturas a seguir com a migrao dos atributos ou chaves estrangeiras. Considere que os atributos estejam completos, s inclua um atributo novo se for solicitado.

a)
77

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

PROPRIETRIO

adquire _adquirido

IMVEL

# cd_proprietrio nm_proprietrio

# cd_imvel_prefeitura dt_venda_imvel

b) H dois funcionrios com a mesma matrcula em toda a rede de lojas:


LOJA aloca est_alocado FUNCIONRIO

# cd_loja # sg_unidade_federativa qt_rea_til_loja

# cd_matricula_funcionario nm_funcionario

c) No h dois funcionrios com a mesma matrcula em toda a rede de lojas. Se necessrio, inclua novos atributos:
LOJA aloca est_alocado FUNCIONRIO

# cd_loja # sg_unidade_federativa qt_rea_til_loja

# cd_matricula_funcionario nm_funcionario

4. Construa o modelo de dados (simbolicamente dois tipos de dados: ch chave e at = atributo no chave). OBJETO A # ch_a at_a1 at_a2 OBJETO B # ch_b at_a1 at_b2 E ch_a OBJETO C # ch_c # E ch_a at_c1

a) Os objetos que tem chave concatenada so: ( )OBJETO A ( )OBJETO B ( )OBJETO C b) Existe algum problema com os atributos do OBJETO B? ________________________________________________________________ ________________________________________________________________ ________________________________________________________________ 5. Modelo de dados a seguir est indicando que um proprietrio pode adquirir vrios veculos, e este durante sua vida necessitar de vrios licenciamentos. Coloque cada um dos atributos apresentados na lista a seguir no seu respectivo objeto, indique as chaves dos objetos e os atributos ou chaves estrangeiros. cd_placa_veiculo dt_licenciamento_veiculo cd_cpf_proprietario nm_veiculo nm_proprietario vl_licenciamento_veiculo nm_empresa_trabalha_proprietrio nm_despachante_responsvel_licenciamento
PROPRIETARIO VEICULO LICENCIAMENTO _VEICULO

78

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

6. De acordo com o modelo abaixo, faa o fluxo de dados de acordo com a classificao, identifique os relacionamentos entre eles utilizando as cardinalidades e faa a navegao no modelo de dados: a) HOLLERITH Matrcula do Funcionrio: 79 Admisso: 15/01/2004 Nome: Lima Duarte Departamento: INF - Informtica Salrio Base: R$ 2.650,00 Total de Descontos: R$ 650,00 Salrio Lquido: R$ 2.000,00 DATA DO PAGAMENTO: 10/09/2010 b)

FICHA MDICA
Nmero do Paciente: 006 Data Nasc:10/01/1938 Estado Civil: viva Nome: Maria da Dor Convnio: Santa Casa Telefone: 3456-6767 Sexo: Feminino RG: 1.345.678

Endereo: Rua Flor, numero 15 Jardins Guaruj SP CEP: 11040-000 Consultas Data 12/12/2010 15/01/2011 Horrio 16h 12h Mdico Dr. Joo Dra Joana Exames
Data e Hora da Consulta 15/01/2011 12h

Diagnstico Gripe Dengue

Observao

Exame Hemograma

Data 16/01/2011

Observao

79

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

7) Faa um modelo lgico de dados que retrate as necessidades a seguir: Sistema de controle e gerenciamento de execuo de ordens de servio em uma oficina mecnica Clientes levam veculos oficina mecnica para serem consertados ou para passarem por revises peridicas. Cada veculo designado a uma equipe de mecnicos que identifica os servios a serem executados e preenche uma ordem de servio (OS) e prev uma data de entrega. A partir da OS, calcula-se o valor de cada servio, consultando-se uma tabela de referncia de mo-de-obra. O valor de cada pea necessria execuo do servio tambm computado. O cliente autoriza a execuo dos servios e a mesma equipe responsvel pela avaliao realiza os servios. Clientes possuem cdigo, nome, endereo e telefone. Veculos possuem cdigo, placa e descrio. Cada mecnico possui cdigo, nome, endereo e especialidade. Cada OS possui um nmero, uma data de emisso, um valor e uma data para concluso dos trabalhos. Uma OS pode ser composta de vrios itens (servios) e um mesmo servio pode constar em vrias ordens de servio. Uma OS pode envolver vrios tipos de peas e um mesmo tipo de pea pode ser necessria em vrias ordens de servio.

80

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

TAREFA 07 RELACIONAMENTO 1 : N
Construir um modelo lgico de dados para um sistema de controle bancrio (1,5): Para cada agncia bancria armazenado nmero, cidade e dados sobre os funcionrios, tais como nome, endereo, cdigo e salrio. Cada cliente cadastrado em uma agncia especfica pode possuir vrias contas bancrias. Para os clientes deseja-se armazenar o nome, o RG e a cidade na qual residem, alm de suas contas bancrias. Dados importantes para as contas dos clientes da agncia so o nmero da conta, o saldo e informaes sobre o conjunto de transaes (nmero da transao, data e valor) associados conta.

Nome________________________________ Perodo: ______ Data: _______


81

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

RELACIONAMENTO DO TIPO M : N
Os objetos tambm podem se relacionar com cardinalidade M:N. E esta cardinalidade no gera atributos ou chaves estrangeiras. Mas, independente da cardinalidade, havendo relacionamento, necessrio haver a navegao entre os objetos. No caso de relacionamentos do tipo M:N, a navegao possvel atravs da resoluo deste relacionamento. Este tipo de relacionamento desaparece e em seu lugar surge um OBJETO DE RESOLUO, nome dado ao objeto associativo de um relacionamento M:N. A chave deste novo objeto formada pelos atributos estrangeiros que so chave nos objetos de origem. Desta maneira soluciona-se o problema de navegao entre os objetos:
fornece
FORNECEDOR PRODUTO

_fornecido

#cd_fornecedor nm_fornecedor cd_inscricao_estadual_fornecedor Vamos supor as seguintes instncias nos objetos: FORNECEDOR #cd_fornecedor 001 002 003 004 PRODUTO #cd_produto A B C D

#cd_produto nm_produto vl_produto

nm_fornecedor Papelaria Lpis Padaria Quente Papelaria Papel Mat.Const. Lima

cd_inscrio_estadual_fornecedor 155.155 200.250 987.789 654.456

nm_produto Areia Cal Leite Lpis

vl_produto 300.00 17.00 0.98 0.50

Segundo o relacionamento, um fornecedor pode fornecer diversos produtos. Da mesma maneira que um determinado produto pode ser fornecido por diferentes fornecedores. Como possvel saber quais produtos so fornecidos por cada um dos fornecedores? Ou quais fornecedores fornecem determinado produto? Essas respostas so possveis de serem fornecidas aps a resoluo do relacionamento que efetuada da seguinte maneira:

82

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

FORNECEDOR

FORNECIMENTO

PRODUTO

#cd_fornecedor # E cd_fornecedor nm_fornecedor # E cd_produto cd_inscrio_estadual_fornecedor vl_produto FORNECIMENTO # E cd_fornecedor 001 002 003 004 004

# cd_produto nm_produto

# E cd_produto D C D A B

Quem fornece lpis? Agora observe o atributo vl_produto no objeto PRODUTO. Este caso est retratando a situao em que um determinado produto tem um preo fixo, independente de qual seja o seu fornecedor isto , para todos os fornecedores o preo do produto o mesmo. No exemplo acima, as duas papelarias cobram 0,50 pelo lpis. No caso de cada fornecedor cobrar um preo diferente para o mesmo produto, como o modelo de dados poder fazer tal indicao? Neste caso, h uma diferena fundamental, pois o atributo vl_produto no mais exclusivo do objeto PRODUTO. Ele depende tambm do objeto FORNECEDOR. Mas tambm no s o objeto FORNECEDOR. O atributo no caso pertence aos dois objetos, mais precisamente, diz respeito aos dois objetos, ou depende dos dois objetos para ser definido. Dizer que pertence aos dois objetos, o que significa que o atributo pertence resoluo do relacionamento, portanto, definido como atributo do objeto de resoluo. Neste caso criada uma particularidade, o objeto de resoluo ter atributos no chave alm das chaves estrangeiras. Chamamos de OBJETO ATRIBUTIVO um objeto de resoluo que apresenta atributos no chave, alm das chaves estrangeiras. O objeto do tipo atributivo uma particularidade do objeto do tipo associativo. Assim, a soluo ser:
FORNECEDOR FORNECIMENTO PRODUTO

#cd_fornecedor # E cd_fornecedor nm_fornecedor # E cd_produto cd_inscrio_estadual_fornecedor vl_produto_fornecido

# cd_produto nm_produto

83

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

EXERCCIOS
1. Responda V ou F sobre o objeto do tipo associativo. ( ) Nasce da resoluo de um relacionamento do tipo M:N. ( ) uma particularidade do objeto atributivo. ( ) No pode se relacionar com outros objetos que no sejam envolvidos na resoluo. ( ) O que o diferencia do atributivo, que o atributivo, alm da chave contm atributos no chave. 2. Resolva os relacionamentos abaixo:
A # ch_a B # ch_b

C # ch_c1 # ch_c2

D # ch_d1 # ch_d2 # ch_d3

3.

Construa o modelo de dados a partir dos atributos dos objetos (simbolicamente apresentam dois tipos de dados ch = atributo chave e at = atributo no chave) OBJETO A # ch_a at_a OBJETO B # ch_b at_b1 at_b2 OBJETO C # E ch_a # E ch_b

4. O modelo de dados abaixo mostra os diversos ingredientes utilizados na fabricao de uma pizza

utiliza
PIZZA

INGREDIENTE

_utilizado

#cd_pizza nm_pizza ( ( ( ) qt_ingrediente_pizza um atributo de PIZZA. ) qt_ingrediente_pizza um atributo de INGREDIENTE.

# cd_ingrediente nm_ingrediente

) qt_ingrediente_pizza um atributo do objeto de resoluo.

5. Resolva o relacionamento do exerccio qt_ingrediente_pizza no objeto correto.

acima

inclua

atributo

84

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

6. Inclua os atributos abaixo nos objetos corretos:


qt_mdia_aluno_curso ALUNO cursa # cd_matrcula_aluno nm_aluno # cd_disciplina nm_disciplina qt_mdia_aluno_disciplina _cursada pc_falta_aluno_disciplina DISCIPLINA

7. Construir um modelo de entidade-relacionamento para controle da locao de vdeo: LOCADORA CINEMA EM CASA S/A Solicitao n: 159 Nmero do Cliente: 516 LOCAO Cdigo do Nome do Filme Filme 900 De Pernas para o Ar 987 Tron 753 Enrolados 8.

Data da Locao: 07/01/2011 Nome do Cliente: Eduardo Moscovis Cdigo Data Prevista da para Cpia Devoluo 03 18/01/2011 01 18/01/2011 01 18/01/2011 Data Real da Devoluo 23/01/2011 17/01/2011 18/01/2011

Construir um modelo de entidade-relacionamento solicitado por uma oficina mecnica que deseja armazenar as seguintes informaes:

Os nossos clientes (nome, cpf, endereo comercial, endereo residencial, telefone comercial, ramal, telefone residencial e celular) podem ter mais de um veculo (tipo (moto, utilitrio ou automvel), placa, modelo, marca, cor, ano). Precisamos armazenar todos os servios efetuados: qual foi (pintura, mecnica, funilaria, eltrica etc), quando (data da solicitao e data da entrega) e quanto foi (valor). 9. Construir um modelo de entidade-relacionamento solicitado para controlar e gerenciar o emprstimo de livros de uma biblioteca acadmica que deseja armazenar as seguintes informaes: A biblioteca dispe de livros, tambm denominados ttulos. Estes possuem nome, autores e editoras. Cada ttulo pertence a uma rea de conhecimento e possui um cdigo nico de identificao. Cada ttulo possui vrios exemplares. Cada exemplar possui um cdigo nico de identificao. Cada ttulo pode ter vrios autores e um mesmo autor pode ter escrito vrios ttulos. Um autor possui cdigo, nome, telefone e endereo. As editoras possuem cdigo, nome, telefone e endereo. As reas de conhecimento possuem cdigo e uma descrio. Usurios, que podem ser alunos, professores ou funcionrios, tomam livros emprestados por uma semana. A data de emprstimo importante no processo. Cada usurio possui um cdigo, nome, telefone e endereo. Cada ttulo possui vrias palavras-chave e uma palavra-chave pode estar ligada a vrios ttulos. Uma palavra-chave possui cdigo e descrio.
85

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

TAREFA 08 RELACIONAMENTO M : N
Criar um modelo lgico de dados que retrate a situao a seguir agncia de turismo (2,0): Uma agncia de turismo deseja armazenar informaes sobre recursos oferecidos pelas cidades que fazem parte da programao de turismo da agncia. As informaes a serem mantidas sobre cada cidade referem-se a hotis, restaurantes e pontos tursticos. Sobre os hotis que a cidade possui deseja-se guardar o cdigo, nome, endereo, categoria (sem estrela, 1 estrela, 2 estrelas,...), os tipos de quartos que formam (por exemplo: luxo, superluxo, mster,...), nmero de quartos e o valor da diria de acordo com o tipo de quarto. Sobre cada cidade deve-se armazenar seu nome, estado e a populao. Alm disso, quando uma nova cidade cadastrada no banco de dados da agncia, um cdigo a ela oferecido. Cada restaurante da cidade possui um cdigo que o identifica, um nome, endereo e o tipo de sua categoria (luxo, simples,...). alm disso, um restaurante pode pertencer a um hotel, porm um hotel associado somente a um restaurante. Diferentes pontos tursticos da cidade esto cadastrados no sistema: igrejas, casas de show e museus. A agncia somente trabalha com estes trs tipos de pontos tursticos. Nenhum outro possvel. Alm da descrio e do endereo, igrejas devem possuir como caracterstica a data e o estilo de construo. J casas de show devem armazenar o horrio de incio do show (igual para todos os dias da semana) e o dia de fechamento (apenas um nico dia na semana), alm da descrio e do seu endereo. Finalmente os museus devem armazenar o seu endereo, descrio, data de fundao e nmero de salas. Um museu pode ter sido fundado por vrios fundadores. Para estes, devese armazenar o seu nome, a data de nascimento e a data da morte (se houver), a nacionalidade e a atividade profissional que desenvolvia. Alm disso, um mesmo fundador pode ter fundado vrios museus. Quando qualquer ponto turstico cadastrado no sistema, ele tambm recebe um cdigo que o identifica. O mesmo vlido para fundadores. Finalmente, casas de show podem possuir restaurante. Quando o cliente da agncia reserva um passeio para uma casa de show, ele j sabe se esta possui restaurante e qual o preo mdio da refeio, alm da especialidade (comida chinesa, japonesa, brasileira, italiana,...). Dentro de uma casa de show, apenas um nico restaurante pode existir. sobre uma

Nome________________________________ Perodo: ______ Data: _______


86

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

RELACIONAMENTO RECURSIVO
Em algumas situaes especficas do ciclo de negcio, temos um objeto que se relacione com ele mesmo. Este tipo de relacionamento chamado de selfrelation (auto_relacionamento ou relacionamento recursivo). Os dois objetos que se relacionam desta maneira, so o mesmo, portanto tem os mesmos atributos primrios. O uso mais comum deste tipo de estrutura ocorre quando se deseja retratar uma hierarquia. Neste caso o relacionamento entre os objetos tem cardinalidade ( 1 ) : ( N ). As cardinalidades mnimas iguais zero, indicam que o primeiro objeto da hierarquia no se relaciona com nenhum objeto no nvel superior, assim como o objeto que retrata o nvel hierrquico mais baixo tambm no se relaciona com nenhum outro objeto no nvel inferior. Exemplos de hierarquia: plano de contas de um sistema contbil e organograma. A importncia de prever este relacionamento criar flexibilidade no modelo de dados, j que com o passar do tempo, o ciclo de negcios pode exigir alteraes no sentido de ampliar ou diminuir os nveis de hierarquia estabelecida. Desta forma o modelo de dados no sofrer nenhum impacto quando ocorrer uma eventual alterao. Exemplo: Estrutura_rgo_governamental = nm_rgo_governamental + cd_rgo_governamental + sg_rgo_ governamental + {nm_departamento_rgo_ governamental + cd_departamento_rgo_governamental + sg_departamento_rgo_governamental + {nm_seo_departamento_rgo_governamental + cd_seo_departamento_rgo_governamental + sg_seo_departamento_rgo_governamental } } Uma soluo possvel prever uma estrutura com trs objetos:
RGO DEPARTAMENTO SEO

# cd_rgo nm_rgo sg_rgo

# cd_departamento nm_departamento sg_departamento E cd_rgo

#cd_seo nm_seo sg_seo E cd_departamento

O problema desta soluo tem a ver com as mudanas necessrias na organizao. Como todos os objetos possuem os mesmos atributos primrios (cd, nm e sg), no h nenhum problema em adotar o relacionamento recursivo:

UNIDADE ORGANIZACIONAL

# cd_unidade_organizacional nm_unidade_organizacional sg_unidade_organizacional E cd__unidade_organizacional_superior


87

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

PRATICA 02 MODELO LGICO DE DADOS


Utilizando o BrModelo, crie o modelo lgico com base no estudo de caso abaixo (1,0):

Na conferncia so apresentados vrios artigos, cada um dos quais com um ttulo e um nmero. Cada artigo tem um ou mais autores. De cada autor, pretendesse armazenar alm do nome, o endereo de email, e o nome e endereo da instituio a que esto associados. H ainda a informao relativa aos participantes da conferncia. De cada participante dever ser retida a informao do seu nome, morada (endereo) e endereo de email. Alm disso, distingue-se entre os participantes os que so estudantes e os que no so. Cada participante no estudante tem de pagar antecipadamente a inscrio por transferncia bancria, pelo que necessrio guardar o nmero da transao. Para no pagar, o estudante tem de enviar antecipadamente um comprovante e na base de dados deve ser armazenado o nome da universidade que o passou.

Nome________________________________ Perodo: ______ Data: _______

88

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

NORMALIZAO

Figura 64 Representao Grfica da Normalizao (extrada da web)

Conjunto de regras (chamadas de Formas Normais) que simplificam os dados de um banco de dados em um domnio e que possuem os seguintes objetivos: Garantir a integridade dos dados; Organizar e dividir as tabelas de maneira eficiente, diminuindo ou eliminando a redundncia de dados; Eliminar estruturas inexistentes (atributos multivalorados). Tabelas flexveis e de fcil manuteno. As regras de normalizao so aplicadas durante o transcorrer de toda a construo do modelo de dados. Devem ser aplicadas quantas vezes for necessrio para que se obtenha um modelo estvel (nome dado a um modelo normalizado, que esteja atendendo s Formas Normais). Existem seis formas normais: 1FN (1 Forma Normal); 2FN (2 Forma Normal); 3FN (3 Forma Normal); FNBC (Forma Normal de Boyce e Codd); 4FN (4 Forma Normal); 5FN (5 Forma Normal). Com as trs primeiras, resolvemos mais de 99% dos problemas de modelagem de dados e somente em casos muito especiais se faz necessria a aplicao das demais Formas Normais. As Formas Normais so aplicadas em seqncia, sempre verificando a situao do conjunto de dados com relao Primeira Forma Normal (1FN), depois com relao Segunda Forma Normal (2FN), depois com relao Terceira Forma Normal (3FN) e assim sucessivamente. A cada reviso que se faa, inicia-se novamente pela 1FN, depois a 2FN e assim por diante. Aps a aplicao da normalizao, conseguimos os seguintes benefcios:
89

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Tabelas flexveis e de fcil manuteno; Eliminao de redundncias. Dependncia funcional relacionamento entre dois ou mais atributos de forma que o valor de um atributo identifique o valor para cada um dos outros atributos, ou seja, um atributo est relacionado a outro. Sempre que um atributo X identificar um atributo Y (X Y), dizemos que h uma dependncia funcional, ou seja, X o DETERMINANTE e Y o DEPENDENTE. Exemplo:

Figura 65 Dependncia Funcional (extrada da web)

A seguir vamos discutir cada uma das trs primeiras Formas Normais utilizando como exemplo o fluxo de dados de uma Ordem de Compra:

ORDEM DE COMPRA Cdigo: 159735 Data: 30/08/2010 FORNECEDOR Nmero: 123 Nome: Distribuidora Praiana Inscrio Estadual: 9.878 MATERIAL Cdigo Nome Quantidade Preo Unitrio 302 Arroz 5 9,00 801 Biscoito 10 1,50 Descrevendo o fluxo de dados: Ordem_Compra = cd_ordem_compra + dt_emissao_ordem_compra + cd_fornecedor + nm_fornecedor + cd_inscricao_estadual_fornecedor + {cd_material + nm_material + qt_material_solicitado + vl_unitrio_material}

90

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

1 FORMA NORMAL
Uma tupla est na 1FN, se para cada ocorrncia do objeto, existir apenas um valor de cada atributo. Ou seja: Eliminar as mltiplas ocorrncias das tuplas ou instncias (atributos multivalorados); Eliminar atributos repetidos como telefone1, telefone2 etc. Todos os registros precisam ser diferentes; Cada atributo deve ter somente um tipo de dado. Quando se aplica a 1FN os atributos com mltipla ocorrncia, formam outro objeto e se constitui um relacionamento com cardinalidade 1 : N. Voltando ao exemplo do fluxo acima, o incio do processo de modelagem se d atravs da criao do objeto ORDEM COMPRA, e teremos a seguinte situao:
ORDEM_COMPRA

# cd_ordem_compra dt_emissao_ordem_compra cd_fornecedor nm_fornecedor cd_inscricao_estadual_fornecedor {cd_material nm_material qt_material_solicitado vl_unitrio_material } O objeto da maneira como est tem um problema, uma vez que os quatro atributos que aparecem entre chaves esto repetidos, com mltiplas ocorrncias, o que tem que ser evitado. A correo feita aplicando-se a 1FN. Obteremos ento dois objetos, ORDEM_COMPRA com os atributos originais e um outro objeto a ele se relacionando de maneira 1:N, indicando que para cada ocorrncia do grupo de dados de ORDEM COMPRA teremos "n" ocorrncias dos dados que estavam inicialmente entre as chaves. A nova situao passa a ser:
_composta compe

ORDEM COMPRA

TEM ORDEM COMPRA

# cd_ordem_compra dt_emisso_ordem_compra cd_fornecedor nm_fornecedor cd_inscrio_estadual_fornecedor

#E cd_ordem_compra # cd_material qt_material_solicitado nm_material vl_unitario_material

Os dois objetos esto atendendo a 1FN, no apresentam mltiplas ocorrncias no conjunto de atributos. Vamos a 2 FN...

91

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

2 FORMA NORMAL
Uma tupla est na 2FN, se atender a 1FN, e os atributos no chave no apresentarem dependncia parcial da chave. Todos os atributos no chaves de uma instncia devem ser identificados pelo atributo que a chave da instncia. Tomemos como exemplo o objeto FUNCIONRIO, que tem como chave o atributo #cd_matrcula_funcionrio. Neste caso, entre os atributos no chave encontramos nm_funcionrio que identificado pelo atributo chave, assim como todos os demais. Quando a instncia identificada por mais de um atributo, isto , apresenta chave concatenada, todo atributo no chave deve ser identificado pela chave completa, por todos os atributos formadores da chave concatenada. Os atributos que no obedecem esta regra e so identificados por parte da chave, so atributos dependentes parcialmente da chave, e precisam ser separados para formar outro objeto onde possam ser identificados por toda a chave. Esta situao de dependncia parcial da chave uma instabilidade no modelo de dados e precisa ser corrigida. Para corrigir necessrio: Escolher uma chave primria; Verificar as dependncias parciais; Mover os campos no enquadrados na 2FN para uma nova tabela. Como correo, os atributos no chave que se identificam parcialmente formaro outro objeto cuja chave a parte da chave que os identifica no objeto original. No exemplo que est sendo discutido, os atributos nm_material e vl_unitrio_material no necessitam de cd_ordem_compra para identific-los, uma vez que apenas o atributo cd_material j suficiente para tal. Criamos ento o objeto MATERIAL com estes atributos e o mesmo ir se relacionar com cardinalidade 1 :N com o objeto TEM ORDEM COMPRA. O atributo cd_material passa a ser chave estrangeira em TEM ORDEM COMPRA. Desta maneira o objeto TEM ORDEM COMPRA passa a atender a 2FN. A nova situao ser:
ORDEM COMPRA ITEM ORDEM COMPRA MATERIAL

cd_ordem_compra # E cd_ordem_compra dt_emisso_ordem_compra # E cd_material cd_fornecedor qt_material_solicitado nm_fornecedor cd_inscrio_estadual_fornecedor

# cd_material nm_material vl_unitrio_material

Como decorrncia desta discusso, podemos perceber que a 2FN s se aplica s instncias que so identificadas por chave concatenada. E por no apresentar chave concatenada, o objeto ORDEM COMPRA no precisa ser verificado quanto ao atendimento da 2FN, uma vez que no tem como apresentar dependncia parcial da chave. O prximo passo a verificao da 3FN...

3 FORMA NORMAL

92

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Uma tupla est na 3FN, se atender a 2FN, e seus atributos no apresentarem dependncia transitiva da chave. Um atributo apresenta dependncia transitiva da chave quando ele identificado por outro atributo no chave e este por sua vez identificado pela chave. Isso quer dizer que a identificao do atributo no chave pela chave ocorre de maneira indireta, atravs de outro atributo no chave. No exemplo que est sendo discutido. O objeto ORDEM COMPRA est fora da 3FN, uma vez que nm_fornecedor e cd_insc_estadual_fornecedor so atributos identificados por cd_fornecedor e no pelo atributo # cd_ordem_compra que a chave da instncia. Esta situao se constitui em outra anormalidade que tambm precisa ser corrigida. Os atributos que so identificados transitivmente formaro outro objeto que ter como chave o atributo que os identifica. O novo relacionamento formado do tipo N: 1 e cd_fornecedor passa a ser atributo estrangeiro no objeto ORDEM COMPRA. A nova situao ser:
#cd_ordem_compra dt_emisso_ordem_compra

E cd_fornecedor

ORDEM COMPRA

ITEM ORDEM COMPRA

MATERIAL

# E cd_ordem_compra # E cd_material qt_material_solicitado


FORNECEDOR

# cd_material nm_material vl_unitrio_material

#cd_fornecedor
nm_fornecedor cd_inscrio_estadual_fornecedor

Nesta altura todos os objetos esto normalizados, atendem as trs Formas Normais, e o modelo de dados est estabilizado.

OUTRAS FORMAS NORMAIS


Na maioria dos bancos de dados a decomposio at a 3 Forma Normal suficiente. Porm na literatura surgem outras formas normais:

FORMA NORMAL BOYCE CODD (BCNF)


Criada em 1974 para tratar tipos de anomalias no tratadas pela 3FN. usada em normalizao de banco de dados que consistem em uma verso mais rigorosa da 3FN. Um objeto est na forma BCNF se para cada uma de suas dependncias funcionais X Y, X uma super chave de Y, ou seja X uma chave candidata. Somente em casos raros podemos ter um objeto na 3FN que no atinja os requisitos da forma BCNF. Exemplo: Cada linha da figura acima representa uma representa uma reserva de quadra em um clube de tnis que possui uma quadra de piso duro
93

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

(Q1) e uma de grama (Q2). Uma reservada definida pela escolha da quadra e definio do perodo que a quadra est reservada. Para cada reserva h um tipo de taxa associada a ela. Existe: USUAL (Quadra 1 membros do clube); PADRO (Quadra 1 no-membros), PREMIUM-A (Quadra 2 membros do clube) e PREMIUM-B (Quadra 2 no membros do clube): Quadra 1 1 1 2 2 2 Hora de Incio 09:30 11:00 14:00 10:00 11:30 15:00 Hora de Trmino 10:30 12:00 15:00 11:30 13:30 16:30 Tipo de Taxa SAVER SAVER PADRO PREMIUM-B PREMIUM-B PREMIUM-A

Figura 66 Exemplo de BNCF a resolver (extrado da web)

CHAVES CANDIDATAS: Quadra e Hora de Incio; Quadra e Hora de Trmino; Tipo de Taxa e Hora de Incio; Tipo de Taxa e Hora de Trmino. Para que atenda a forma BCNF, vamos alterar para que fique assim (TIPOS DE TAXA e RESERVAS DE QUADRA respectivamente):
Tipo de Taxa Quadra Indicador de Membro Quadra Hora De Incio Hora de Trmino

Indicador

de Membro

USUAL PADRO PREMIUM-A PREMIUM B

1 2 2 2

SIM NO SIM SIM

1 1 1 2 2 2

09:30 11:00 14:00 10:00 11:30 15:00

10:30 12:00 15:30 11:30 13:30 16:30

SIM SIM NO NO NO SIM

Figura 67 Exemplo de BNCF resolvida (extrada da web)

CHAVES CANDIDATAS: TIPO DE TAXA Trmino). (Tipo de Taxa) e (Quadra e Indicador Membro); (Quadra e Hora de Incio) e (Quadra e Hora do RESERVAS DE QUADRA

94

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

4 FORMA NORMAL
Dever estar na 3FN e as DEPENDNCIAS MULTIVALORADAS29 devem depender da chave (decomposio aos pares). Exemplo:

Figura 68 Exemplo da 4 Forma Normal (extrado da web)

Resoluo:

]
Figura 69 Resoluo da 4 Forma Normal (extrado da web)

5 FORMA NORMAL
De forma simplificada, pode-se dizer que uma relao est em quinta forma normal quando seu contedo no pode ser reconstitudo a partir de vrias outras tabelas. Ou seja valor do atributo multivalorado (decomposio no pares). Corresponde aos relacionamentos entre trs ou mais entidades (RELACIONAMENTOS TERNRIOS). As entidades devem estar aptas a funcionarem sozinhas como entidades individuais sem a dependncia de outros relacionamento. Exemplo:

29

DEPENDENCIA MULTIVALORADA: um relacionamento no qual um atributo de uma chave primria, por conta do seu relacionamento com outro atributo cria mltiplos registros em uma entidade.

95

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 70 Exemplo da 5 Forma Normal (extrado da web)

Resoluo

Figura 71 Resoluo da 5 Forma Normal (extrado da web)

Obs.: H pesquisar direcionadas para o desenvolvimento de uma 6 Forma Normal (6FN) para lidar com os bancos de dados temporais.

DESNORMALIZAO
Ocorre em sistemas de processamento transacional online (OLTP), onde o funcionamento ocorre melhor quando o modelo no est normalizado. o processo inverso dos passos anteriores. A normalizao no se preocupa com a otimizao dos dados e sim na melhor forma de organizao.

EXERCCIOS
1. Relacione as colunas: (1) 1FN (2) 2FN (3) 3FN ( ( ( ) Elimina dependncia transitiva da chave. ) Elimina dependncia parcial da chave. ) Elimina mltiplas ocorrncias.

96

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

2. Assinale a alternativa exceo. ( ) A 3FN no se aplica a tuplas que tenham chave concatenada. ( ) A 1FN s se aplica a tuplas que tenham chave concatenada. ( ) As regras de normalizao podem ser aplicadas para base de dados com armazenamento manual. 3. Assinale a alternativa exceo sobre normalizao. ( ) Tem o objetivo de eliminar redundncias no modelo de dados. ( ) Uma relao para estar na 3 FN, precisa estar na 1FN e na 2FN. ( ) Uma relao sem chave concatenada no estar fora da 2FN. ( ) Pode gerar um mesmo atributo em dois objetos diferentes. 4. De acordo com o problema descrito a seguir, crie um modelo de dados normalizado: Um estacionamento precisa criar um software que armazene as informaes dos clientes (nome, endereo, telefone), dos seus respectivos veculos (placa, modelo, marca e cor), das mensalidades pagas (data do pagamento e valor) quando o cliente for mensalista. Quando for, avulso precisamos armazenar a data e hora da entrada e a data e hora da sada para efetuar a cobrana. 5. Crie o fluxo de dados, encontre os objetos, faa a navegao no modelo de dados e normalize-o: HISTRICO ESCOLAR CURSO Cdigo: 001 Nome: Gesto de Negcios Ano Concluso: 2010 ALUNO Nome: Claudia Abreu Mdia Final Situao 8,0 Aprovada 6,0 Aprovada 5,0 Reprovada 8,0 Aprovada Emitido em: 30/12/2010

Matrcula: 50000 DISCIPLINA Cdigo Nome 001 Sistemas Operacionais 002 Redes de Computadores 003 Linguagem de Programao 004 Banco de Dados

6. Criar o fluxo de dados e o modelo lgico de dados do estudo de caso abaixo: ORDEM DE COMPRA Cdigo: 159735 Data: 30/08/2010 FORNECEDOR Nmero: 123 Nome: Distribuidora Praiana Inscrio Estadual: 9.878 MATERIAL Cdigo Nome Quantidade Preo Unitrio 302 Arroz 5 9,00 801 Biscoito 10 1,50

7. Considere uma empresa de seguros e a situao suposta a seguir com possvel. Crie o modelo de dados (defina candidatos objeto, fluxo de dados
97

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

e normalizao) a partir da descrio e do fluxo de dados apresentado a seguir: Todos os nossos clientes so pessoas jurdicas, so empresas que firmam contratos de plano de sade conosco. Uma empresa firma vrios contratos conosco, em diferentes pocas. Os funcionrios indicados pela empresa assinam uma aplice de seguro individual. O cnjuge e os filhos at 18 anos podem ser seus dependentes e tm os mesmos direitos. Temos vrios tipos de plano de sade, como o Master, o Executivo e o Standard. O que varia entre eles o nvel de benefcios. Em uns o paciente tem direito a internao na UTI em outros no, nem todos pagam exames de laboratrio, enfim os direitos do segurado variam de acordo com o tipo de plano de sade.
CONTRATO DE PRESTAO DE SERVIOS DE SADE CONTRATO: 789.789 CONTRATADA: Sade o que Interessa CONTRATANTE: Padaria Po a Toda Hora Ltda. APOLICE NOME SEGURADO DATA DE 4500 4500 4501 Joo Alves Letcia Alves Firminiano dos Santos DATA DE ASSINATURA: 10/01/2009 CNPJ: 10.500.800-0001/80 CNPJ: 20.800.500-0001/70 VALIDADE SIGLA TIPO DE NASCIMENTO SEGURADO APOLICE PLANO 23/03/1970 Titular 08/10/2010 S Dependente 08/10/2010 10/10/1960 S 15/01/1945 Titular 08/10/2010 E

PLANO Standard Standard Executivo

8. Considere o objeto - LOJAS MAIS PRXIMAS - abaixo e identifique: a) Chaves candidatas; b) Normalize de acordo com a BNCF. PESSOA Claudio Claudio Lindsen Amanda Amanda Amanda TIPO DE LOJA tica Farmcia Loja do Livro Farmcia Supermercados tica LOJA MAIS PRXIMA tica Avenida Droga Vida Saraiva Droga Sol Mercadinho Dias tica Avenida

9. Considere as entidades abaixo, onde apresentamos que um professor pode ministrar diversas disciplinas e que cada disciplina pode ser ministrada por mais de um professor. De acordo com isto, normalize. PROFESSOR
cd_professor 1 2 nm_professor Simone Fernanda

DISCIPLINA
cd_disciplina 1 2 nm_disciplina Banco de Dados Estrutura de Dados ds_ementa Introduo. SGBD. Modelagem de Dados Linguagem C. Algoritmos.

10.Vamos considerar que uma organizao tem a necessidade de automatizar o processo de emisso de sua nota fiscal de venda. Podemos enxergar esse documento como um grande agrupamento de atributos. Atravs das formas normais, normalize os dados a seguir:

98

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

NOTA_FISCAL (cd_nota_fiscal, dt_emisso, nm_natureza_operaao, cd_cnpj_cliente, nm_cliente, nm_endereo_cliente, cd_item, ds_item, pc_ipi, vl_unitario, qt_item, dt_sada, cd_transportadora, nm_transportadora, nm_endereo_transportadora, pc_icms) Para efeito de modelagem, iremos considerar as seguintes regras de negcios: O percentual de IPI ser por produtos e o percentual de ICMS ser calculado pelo valor total da nota fiscal; A nota fiscal de venda desta organizao pode conter diversos itens. 11. Analise a situao de cada objeto e preencha o diagnstico na matriz abaixo:
DEPARTAMENTO SOLICITAO_ COMPRA ITEM_ SOLICITAO_ COMPRA MERCADORIA

#sg_departamento nm_departamento {nm_funcionario}

#cd_solicitao_compra #E cd_solicitao_compra dt_emisso_solicitao_compra #E cd_mercadoria E nm_departamento qt_mercadoria


nm_mercadoria

#cd_mercadoria nm_fornecedor_mercadoria
cd_cnpj_fornecedor_mercadoria

Fora 1 FN Fora 2 FN Fora 3 FN Normalizado

12. Normalizar os modelos abaixo (N30) PACIENTE (nro_paciente, nome_paciente, nro_quarto, descrio_quarto, nro_cmodos_quarto, (cod_mdico, nome_mdico, fone_mdico)) ALUNO (nro_aluno, nome_aluno, nro_crditos, (nro_curso, descrio_curso, ano_ingresso)) nro_depto, nome_depto,

13. De acordo com o modelo abaixo, normalize para que atenda a 4FN:
Empresrio (PK) Joo da Silva Jos Dias Amanda Fernandes Luiz Alberto Amanda Fernandes Gravadora (PK) Sony Music Sony Music Universal Music Sony Music Univesal Music Artista (PK) Jorge Arago Roberto Carlos Ivete Sangalo Zeca Pagodinho Claudia Leite Endereo Rua J, 10 Rua RC, 50 Av. IS, 124 Pa. ZP, 89 Ra AF, 156 Telefone Gravadora (21)111111 (21)909090 (11)888888 (11)333222 (71)575757

30

No Normalizado

99

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

TAREFA 09 NORMALIZAO
Crie o modelo lgico de dados normalizado de acordo com o estudo de caso a seguir (1,5) Uma Universidade, usado para manter informaes sobre os seus estudantes: a) A Universidade mantm, para cada estudante, o seu nome, nmero de matrcula, RG, endereo e telefone atuais, endereo e telefone permanentes, data de nascimento, sexo, srie (1a, 2a, ..., 5a, se aplicar), grau (graduao ou ps-graduao), e curso. Algumas aplicaes necessitam se referir cidade, estado e CEP do endereo permanente dos estudantes, bem como ao seu ltimo nome. Tanto o RG como a matrcula tm valores nicos para cada estudante. b) Cada departamento descrito por um nome, cdigo do departamento, bloco, ramal e campus. Alm disto, cada departamento chefiado por um professor. Tanto o nome do departamento como o seu cdigo so nicos para cada departamento. c) Cada professor descrito por sua matrcula na Universidade, nome, RG, CPF, classificao (MS1 (graduado), MS2 (mestre), MS3 (doutor), MS4 (adjunto) e MS5(titular)), endereo, e e-mail. Um professor necessariamente deve estar vinculado a um departamento. A matrcula, o RG e o CPF so nicos para cada professor. d) Cada disciplina tem um nome, cdigo, descrio, carga horria, durao (trimestral, semestral, ou anual), nvel (graduao, ps-graduao), e departamento responsvel. O cdigo da disciplina nico para cada disciplina. e) Cada turma de uma disciplina tem um instrutor (professor), perodo de aplicao (1o semestre, 2o semestre, 1o trimestre, etc.), ano, e um identificador da turma. O identificador da turma distingue as turmas de uma mesma disciplina que existem num mesmo perodo/ano. f) Um relatrio de notas deve incluir, para cada estudante, sua identificao, bem como as disciplinas/turmas frequentadas, com as respectivas notas.

Nome________________________________ Perodo: ______ Data: _______

100

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

MODELO RELACIONAL
A modelagem em nvel lgico (SGBD) e no conceitual. Precisa de conceitos mnimos necessrios compreenso do projeto de bancos de dados relacionais. Baseado na lgica dos predicados (fornece um modelo em que uma proposio31 pode ser verificada como verdadeira ou falsa) e na teoria dos conjuntos (grupo de coisas cuja base a manipulao de dados). A palavra relao baseia-se na teoria matemtica de conjuntos. As tabelas so compostas de Linhas, Colunas, Chaves primrias relacionadas atravs de Chaves estrangeiras.

Abaixo temos a terminologia utilizada:

31

Afirmao de um fato

101

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

EXEMPLO DE ESTUDO DE CASO


Com base no modelo conceitual abaixo, crie o modelo relacional:

Resoluo:

Exemplo:

102

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

EXERCCIO
Com base no modelo conceitual abaixo, crie o modelo relacional:

103

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

UTILIZANDO O DBDESIGNER
CONCEITO
Quem trabalha com bancos de dados certamente conhece o ERwin, uma das mais poderosas ferramentas de modelagem. Pois o DBDesigner uma alternativa econmica do famoso programa. Pode criar relacionamentos e tabelas de forma visual, alm de importar essas informaes de bancos de dados existentes. Projeto para ser usado com o MySQL, gerando tabelas e consultas levando em conta a sintaxe SQL desse banco de dados. Porm oferece suporte engenharia reversa e sincronizao a outros SGBDs como Oracle, SQL Server, SQLite e outros que permitam acesso via ODBC. DbDesigner um programa de modelagem de dados (ferramenta CASE) desenvolvido pela FabForce (http://www.fabforce.net) e uma das poucas opes de software free de modelagem visual de banco de dados (licena GNU GPL (General Public License)). Sua criao foi baseada em componentes do Kylix e do Delphi podendo ser utilizada tanto no sistema operacional Windows como Linux. Para a modelagem no DbDesigner basta somente observar algumas caractersticas e fazer poucas alteraes no script gerado, j que alguns bancos de dados implementam o padro SQL.

ONDE ENCONTRAR O SITE


O software DBDesigner www.fabforce.net\dbdesigner4. pode ser encontrado no site

SOFTWARE
Ao ser instalado, cria-se um atalho na rea de trabalho: Ao executar o software, surge a tela a seguir: Onde: AREA DE TRABALHO: onde so inseridas as tabelas e seus respectivos relacionamentos. BARRA DE FERRAMENTAS: componentes mais utilizados na criao e manuteno das tabelas. NAVEGADOR & INFORMAES: controle da visualizao da rea de trabalho, permitindo navegar no diagrama. TIPO DE DADOS: exibe os tipos possveis de dados. MODELO DE DADOS: apresenta as tabelas com seus campos e relacionamentos com outras tabelas

104

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Navegador e Informaes

Barra de Ferramentas Tipo de Dados rea de Trabalho

Modelo de Dados

Figura 72 Tela principal do DBDesigner (feito pelo Autor)

EXEMPLO PRTICO Vamos criar um modelo de dados a seguir: Um escritrio de despachante precisa cadastrar os seus clientes e seus veculos e o controle de licenciamento de cada um deles. Porm um cliente poder ter mais de um veculo e tambm cada veculo poder ter vrios licenciamentos. Para os clientes precisamos armazenar o nome, telefone e o e-mail e, do seu veculo precisamos guardar a marca, o modelo, o ano e a placa. Para o licenciamento precisamos guardar a data que foi licenciado. CRIANDO OS OBJETOS Passos para criar o objeto CLIENTE: 1. Clique no boto NEW TABLE 2. Edite o objeto definindo o nome (CLIENTE) e seus atributos com o boto direito do mouse sobre o objeto e clique em EDIT OBJECT:

105

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 73 Objeto Table (feito pelo Autor)

3. Vamos definir os atributos:

Figura 74 Propriedades do Objeto Table (feito pelo Autor)

106

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

4.

Confirme a criao:
Chave Primria Atributos

5.

Ao retornar surge o objeto criado:

6.

Crie agora os outros objetos ficando assim:

CRIANDO OS RELACIONAMENTOS ENTRE OS OBJETOS

Temos os seguintes tipos de relacionamentos com as respectivas cardinalidades: 1 : 1 (No Identificado) 1 : N (No Identificado) 1 : 1 (Identificado) 1 : N (Identificado) Generalizao/Especificao (conceito de Herana) Com os objetos criados, vamos agora criar os relacionamentos. PASSOS: 1. Pra definir um relacionamento, clique no boto New 1 : N Relation 2. Depois clique no objeto CLIENTE e em seguida clique no objeto VEICULO, assim ser gerando um atributo estrangeiro, criando uma relao entre as duas tabelas. 3. D um duplo clique no relacionamento para ver as caractersticas do mesmo:

107

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 75 Propriedades do Objeto Relacionamento (feito pelo Autor)

4. Faa agora o relacionamento de VEICULO para LICENCIAMENTO. 5. Ficar assim:

108

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

ALTERANDO O SMBOLO DO RELACIONAMENTO

Menu DISPLAY:

Tipos de Notao:

EER[1,n]

Traditional

Crows Foot

EXPORTANDO A BASE DE DADOS

1. Clique no menu FILE EXPORT SQL CREATE SCRIPT 2. Surge a janela a seguir (deixe somente as opes a seguir marcadas para efeito de compatibilidade):

109

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 63 Propriedades do Export

3. Clique no boto SAVE SCRIPT TO FILE para gerar o arquivo de script, que ter a extenso .SQL.
IMPORTANDO A BASE DE DADOS

Agora, com o script criado, edite este script e faa o ajuste (basta somente tirar as opes: ON DELETE ACTION e ON UPDATE ACTION), salve novamente o script. Para cri-lo no Oracle, execute o script alterado: START ou @ c:\<arquivo>.sql. Podemos ainda, gerar um relatrio em Html, atravs do menu Puglins Html Report, surge a tela a seguir e em seguida clique no boto EXECUTE que solicitar um nome para o relatrio:

110

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 76 Propriedades do IMPORT (feito pelo Autor)

Agora, basta abrir o arquivo no navegador que dever ser semelhante ao modelo abaixo:

Figura 77 Propriedades do Relatrio (feito pelo Autor)

EXERCCIO 1. Crie uma modelagem de dados que armazene as informaes abaixo e seus respectivos objetos utilizando o software DBDESIGNER: Uma locadora de vdeo precisa armazenar os dados dos seus clientes (identificao, nome, endereo, telefone, e-mail e data de cadastro), seus filmes (cdigo e nome), as cpias dos filmes (cdigo do filme e cdigo da cpia) e o controle do emprstimo (cdigo do cliente, do filme e da cpia, data do emprstimo, data prevista da devoluo e data real da devoluo).

111

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

PRTICA 03 DBDESIGNER
Baseado no documento abaixo faa o modelo de dados normalizado utilizando a ferramenta case DBDESIGNER (0,25). Uma pizzaria de tele-entrega apresenta um cardpio composto por diversos tipos de pizza, cujos dados so: nmero do item, nome da pizza, lista de ingredientes e preos das pizzas pequena, mdia e grande, como por exemplo: (12, francesa, (queijo, presunto, champignon, aspargo), 10.00, 15.00, 18.00). Na pizzaria trabalham funcionrios que emitem pedidos de pizzas. Cada pedido possui um nmero e uma data de emisso, alm do nome, telefone e endereo do cliente que solicitou o pedido. Um pedido emitido por apenas um funcionrio, composto por vrios itens: cada item possui um nmero e se refere a uma determinada pizza do cardpio, em um determinado tamanho (pequena, mdia ou grande) e em uma certa quantidade. Dos funcionrios entregadores (ou seja, responsveis pela entrega de um ou mais pedidos), devese saber o nmero do telefone celular para um eventual contato durante uma entrega. Uma entrega destina-se a um bairro, e para cada bairro existe um tempo mximo de espera para a entrega de um pedido. Defina outros atributos que julgar relevante.

Nome________________________________ Perodo: ______ Data: _______

112

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

UTILIZANDO O ORACLE SQL DEVELOPER DATA MODELER


um software da Oracle utilizado para modelagem de disponibilizado em julho/2009. O software se encontra no dados foi link:

http://www.oracle.com/technology/software/products/sql/datamodeler.ht ml?rssid=rss_otn_soft execuo. e clique no arquivo para

Ao solicitar a execuo, surge a tela abaixo:

Figura 78 Tela de carregamento do Software (feito pelo Autor)

Surge a tela abaixo:

Figura 79 Tela Principal (feito pelo Autor)

113

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Escolha a aba LOGICAL e ao clicar no cone (New Table), permite criar uma nova entidade que dever ser desenhada na rea de trabalho. Tambm podemos criar atravs do menu OBJECT RELATIONAL NEW TABLE. Surge a tela abaixo onde podemos alterar as propriedades por exemplo NOME - da entidade, que fica na opo GENERAL:

Figura 80 Propriedades da Aba General das Entidades (feito pelo Autor)

Na opo ATTRIBUTES, surge as propriedades abaixo: ATALHO DESCRIO Caixa de propriedades do atributo. Adicione atributos a entidade selecionada.

Exclui o atributo selecionado. Altera a ordem do atributo selecionado, subindo-o. Altera a ordem do atributo selecionado, descendo. Copia o atributo selecionado. Cola o atributo selecionado.

114

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 81 Propriedades da Aba Attributes da Entidade (feito pelo Autor)

Ao escolher o cone

, surge a caixa de propriedades:

Figura 82 Tela de Edio da Entidades (feito pelo Autor)

115

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

RELACIONAMENTOS NO MODELO LGICO Abaixo os principais atalhos da aba principal:

ATALHO

DESCRIO Relacionamento N : M Relacionamento 1: N Relacionamento 1 : N Identificado Relacionamento 1 : 1 Novo Tipo Usado para criar relao de chave estrangeira (FK) entre as entidades.

CARDINALIDADE Com duplo clique na linha do relacionamento entre as entidades, surge a tela abaixo onde podemos alterar as cardinalidades das entidades:

Figura 83 Tela para Configurao das Cardinalidades (feito pelo Autor)

ALTERANDO PARA O MODELO RELACIONAL No menu DESIGNER Engineer to Relational Model:

116

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 84 Opo do menu Designer (feito pelo Autor)

Surge a tela abaixo, onde podemos escolher os tipos de objetos que devero ser migrados:

Figura 85 Tela da opo Engineer to Relational Model (feito pelo Autor)

117

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Em seguida, clique no boto ENGINEER, surge a tela a seguir:

Figura 86 Tela aps o Engineer (feito pelo Autor)

ALTERANDO O TIPO DE DADO DE UM ATRIBUTO Selecione a ENTIDADE e em seguida clique em COLUMNS:

Figura 87 Tela de Configurao dos Atributos (feito pelo Autor)

118

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

D um duplo clique no atributo a ser alterado e surge a tela abaixo:

Figura 88 Tela para Alterao das Propriedades dos Atributos (feito pelo Autor)

Clique em DATATYPE e surge a tela abaixo:

Figura 89 Tela para escolher o tipo de dado (feito pelo Autor)

Escolha LOGICAL TYPE e d duplo clique, surge a tela abaixo:

119

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 90 Tipos Lgicos de Dados (feito pelo Autor)

Obs.: dependendo do tipo de dado, podemos escolher o tamanho(SIZE) e a preciso (PRECISION). GERANDO O SCRIPT DDL Selecione o menu OBJECT RELATIONAL GENERATE DDL, surge a tela abaixo, onde podemos escolher o tipo de software SGBD que desejamos usar para gerar o DDL: DB2, SQL SERVER ou ORACLE:

Figura 91 Tela de escolha do SGBD (feito pelo Autor)

120

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Clique em GENERATE e na tela a seguir selecione o que deseja gerar:

Figura 92 Tela para Escolher os Tipos de Objetos (feito pelo Autor)

Clique em OK e surge a tela abaixo:

Figura 93 Tela com o Script de Criao das Entidades (feito pelo Autor)

Clique em SAVE para salva o script em um arquivo com extenso .SQL.


121

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

EXTRAINDO UM MODELO DO BANCO DE DADOS Menu FILE IMPORT DATA DICTIONARY:

Figura 94 Primeira Tela do Assistente de Conexo com o Banco de Dados (feito pelo Autor)

Clique em ADD e digite as propriedades de conexo: CONNECTION NAME, USERNAME e PASSWORD: HR na tela que se apresenta a seguir:

Figura 95 Segunda Tela do Assistente para Conexo com Banco de Dados (feito pelo Autor)

122

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Clique em OK e ao retornar para a tela anterior, selecione a conexo e clique em NEXT:

Figura 96 Terceira Tela do Assistente de Conexo Escolha do Esquema (feito pelo Autor)

Na tela acima, selecione o SCHEMA: HR e clique em NEXT:

Figura 97 Quarta Tela do Assistente de Conexo Escolha os Objetos do Esquema (feito pelo Autor)

123

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Na tela acima selecione os seguintes OBJECT NAME: COUNTRIES, DEPARTMENTS, EMPLOYEES, JOBS, LOCATIONS e REGIONS e clique em NEXT e em seguida clique em FINISH:

Figura 98 Informaes Finais do Assistente (feito pelo Autor)

Surge tela de log contendo informaes do banco de dados, em seguida, clique em CLOSE:

Figura 99 Tela de Log (feito pelo Autor)

124

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 100 Aguardando... (feito pelo Autor)

Surge o modelo extrado do banco de dados:

Figura 101 Modelo Extrado do Banco de Dados (feito pelo Autor)

DIVIDIR UMA TABELA

Clique no cone da nova entidade:

e surge a tela abaixo, onde devemos digitar o nome

Figura 102 Tela Novo Objeto (feito pelo Autor)

125

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Clique em NEXT:

Figura 013 Tela para adicionar a FK a nova tabela (feito pelo Autor)

Selecione o relacionamento, podemos COPIAR ou MOVER para a nova entidade. Em seguida, clique em NEXT:

Figura 104 Tela para escolher a(s) colunas que sero chave na nova tabela (feito pelo Autor)

Selecione as colunas e clique em FINISH, surge a tela abaixo:

126

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 105 Nova Tabela (feito pelo Autor)

EXERCICIOS
Uma escola de msica precisa manter uma base de dados organizada com o objetivo de prover informaes sobre msicos, orquestras, sinfonias e instrumentos. Cada orquestra catalogada contendo o seu nome, cidade, pas e data correspondentes sua criao; Orquestras executam sinfonias, as mais variadas. Os profundos conhecedores de msica so capazes at de selecionar a orquestra que melhor desempenha uma determinada sinfonia. De cada sinfonia, possvel saber o seu nome, o compositor e a data de sua criao; Orquestras so constitudas de msicos, os mais variados, de acordo com a sua funo dentro da mesma: maestro, flautista, etc. Cada msico catalogado contendo: nome do msico, identidade, nacionalidade e data de nascimento. Um msico s pode pertencer a uma orquestra; Msicos tocam sinfonias, porm em alguns casos, alguns msicos podem mudar de funo segundo a sinfonia (por exemplo, um violinista pode virar maestro). A data em que um msico apresenta uma determinada sinfonia tambm importante no contexto. Cada msico pode ser apto a tocar vrios instrumentos, mas em cada sinfonia toca apenas um instrumento, pois depende de sua funo na sinfonia.

127

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

PRATICA 04 ORACLE SQL DATA MODELER


Utilizando a ferramenta Case Oracle SQL Data Modeler, crie o modelo relacional e o modelo lgico que atenda o estudo de caso a seguir (0,25): Estudo de Caso: CONTROLE DO PRONTURIO DE PACIENTES DE UM HOSPITAL O hospital possui um conjunto de pacientes e um conjunto de mdicos. No registro dos pacientes, temos o nome, RG, CPF, endereo e telefone. No registro dos mdicos temos o nome, especialidade, RG, CPF, CRM, endereo e telefone. Cada paciente tem associado a si um pronturio (sua ficha), onde so registradas basicamente todas as ocorrncias, exames, consultas,

medicamentos ministrados associados a ele. Cada registro no seu pronturio, alm de ter a data tem que estar relacionado a um mdico, que o responsvel pela informao do registro cadastrado no sistema. Faa o que se pede (utilizando o ORACLE SQL DATA MODELER): a) Criar o modelo relacional; b) Converter para o modelo lgico; c) Cria o script DDL; d) Salvar tanto o modelo como o script com o nome de Tarefa11.

Nome________________________________ Perodo: ______ Data: _______

128

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

ANEXO A - OBJETO RELACIONAL


A IBM desenvolveu a verso original da SQL, chamada de Sequel, como parte do projeto R no incio da dcada de 1970. Esta linguagem evoluiu e seu nome mudou para SQL (Structured Query Language).

SQL
A IBM desenvolveu a verso original da SQL, chamada de Sequel, como parte do projeto R no incio da dcada de 1970. Esta linguagem evoluiu e seu nome mudou para SQL (Structured Query Language). A SQL se estabeleceu como a linguagem padro de banco de dados relacional. Em 1986, o American National Standards Institute (ANSI) e a International Organization for Standardization (ISO) publicaram um padro SQL, chamado SQL-86. Em 1989, o ANSI publicou um padro estendido para a linguagem: a SQL-89. A prxima verso do padro foi a SQL-92, seguida da SQL:1999; a verso mais recente a SQL:2003. Muitos banco de dados aceitam a maioria do padro SQL-92 e algumas das novas construes do SQL:1999 e SQL:2003, embora atualmente nenhum sistema de banco de dados aceite todas as novas construes. Tambm temos alguns bancos de dados que no aceitam alguns recursos da SQL-92 e muitos fornecem recursos no padronizados.

Figura 106 Funcionamento do SGBD (extrado do curso Oracle)

Esta linguagem dividida em partes: o LINGUAGEM DE DEFINIO DE DADOS (DDL), que fornece comandos para definir esquemas de relao, excluir relao e modificar esquemas. Comandos: CREATE, ALTER, DROP, RENAME, TRUNCATE e COMMENT. o LINGUAGEM DE MANIPULAO DE DADOS (DML): possui consultas baseadas na lgebra relacional e no clculo relacional de tupla. Possui
129

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

ainda comandos de insero, excluso e atualizao das tuplas de banco de dados. Comandos: INSERT, UPDATE,DELETE, MERGE e SELECT. o LINGUAGEM DE CONTROLE DE DADOS (DCL): concede ou revoga direitos de acesso ao banco de dados e s estruturas contidas nele. Comandos: GRANT e REVOKE. CONTROLE DE TRANSAO: especifica incio e fim das transaes, gerenciando as alteraes feitas por instrues DML que podem ser agrupadas em transaes lgicas. Comandos: COMMIT, ROLLBACK e SAVEPOINT.

ORACLE

Figura 107 Tipos de Abordagem (extrado do curso Oracle)

Em 1979 a empresa RSI (Relational Software Incorporated) gerou a primeira verso do Oracle, conhecida como Oracle V2 e seu primeiro cliente comercial foi a Base da Fora Area de Wright Patterson. Em 1983 a empresa altera seu nome para Oracle e neste mesmo ano o seu sistema era o mais portvel do mundo rodando sobre as plataformas PCs e mainframes. Em 1997, foi lanado o Oracle 8 que era um SGBD objeto-relacional que comportava 512 petabytes de informao. Em 1999, foi lanado o Oracle 8i, que integrava ao SGBD com a WEB. Em 2001, surge o Oracle 9i suportando grandes transaes via WEB, contendo integrao com o XML. Em 2003, surge o Oracle 10G com computao em Grid; Em 2007, surge o Oracle 11G.

VERSO 10G
Em 2003, foi lanada oficialmente o Oracle 10G Grid Computing que significa computao em malha que integra um nmero varivel de mquinas capazes de atuar como um s equipamento. A famlia 10g lana um novo paradigma em tecnologia da informao, o qual eliminar o uso ineficiente dos recursos de informtica. Com essa tecnologia, custosas infra-estruturas
130

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

tecnolgicas possuem servidores com capacidade sub-explorada em boa parte do tempo apenas para comportar picos de demanda. Entre os principais benefcios do Grid Computing esto melhoria de performance, facilidade de expanso do sistema, tolerncia s falhas (os recursos so reunidos em cluster com processamento espelhado) e automao do gerenciamento de recursos. Embora o conceito de GRID COMPUTING possa se confundir com o conceito de cluster existe diferenas. Um cluster uma das tecnologias utilizadas para criar uma infra-estrutura de grid. Clusters simples possuem recursos estticos usados por aplicativos predefinidos por alguns usurios. As grids, ao contrrio, vo muito alm: podem ser constitudas por vrios clusters. Na prtica, grids so pools dinmicos, nos quais os recursos diversos, de configuraes distintas, podem ser compartilhados entre vrios usurios, no processamento de muitos aplicativos. Em uma grid no obrigatrio que todos os servidores estejam executando o mesmo conjunto de aplicativos. Ao contrrio, nessa nova arquitetura, os aplicativos podem ser migrados entre os servidores, conforme a necessidade da empresa. Isso resulta em um sistema extremamente dinmico, capaz de redistribuir a carga de trabalho d processamento de aplicativos e o armazenamento de dados entre os equipamentos automaticamente, conforme a situao, otimizando de modo contnuo a utilizao dos recursos disponveis. Ele evita ainda, que haja a sobrecarga em um determinado servidor ou sistema de armazenamento. Introduziu os seguintes recursos e customizaes: Nova infra-estrutura de gerenciamento automtico; Facilidades para aprovisionamento de recursos computacionais; Facilidades para aproveitamento de dados; FlashBack. ESTRUTURA INTERNA Na sua instalao, o Oracle cria um ambiente para que o usurio principalmente o iniciante possa fazer uso imediato do sistema, mesmo possuindo poucas informaes, criando assim: Instncia Tablespaces ORCL SYSTEM (dicionrio de dados) ROLLBACK_DATA (dados em trnsito) USER_DATA (estrutura das tabelas) TEMPORARY_DATA (espao auxiliar) INTERNAL senha: ORACLE SYS senha: CHANGE_ON_INSTALL SYSTEM senha: MANAGER SCOTT senha: TIGER HR - senha: HR CONNECT (operador do sistema) RESOURCE (desenvolvedor de sistema) DBA (administrador do banco de dados) IMP_FULL_DATABASE (criar backup) EXP_FULL_DATABASE (restaurar backup)

Usurios

Roles (Grupos de Usurios)

131

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

ORACLE 10G RELEASE EXPRESS EDITION Em fevereiro de 2006, a ORACLE disponibilizou esta verso gratuita que possui recursos client-server com algumas limitaes para a sua utilizao, mas, combatvel com as verses pagas, possibilitando sua migrao sem maiores dificuldades. A vantagem que possui a possibilidade de ser instalado em LINUX, onde normalmente suas verses de banco de dados tm um desempenho superior. Tem suporte integral linguagem procedural PL/SQL. Compatvel com o padro ANSI (SQL-1999) e isso importante pelos seguintes motivos: o Facilita a migrao de aplicaes de terceiros, sem que seja necessrio modificar o cdigo SQL existente; o Oferece a funcionalidade do padro ANSI/ISO no banco de dados Oracle 10g XE; o Facilita a curva de aprendizagem na migrao de outros SGBDs para o Oracle 10g XE; o Implementa a sintaxe completa para junes SQL:1999. Possui as seguintes desvantagens: o Limitao de memria; o Limitao na quantidade de dados gerenciados; o Limitao na quantidade de processadores; o Em relao s verses pagas, possui limite de ferramentas de gerenciamento.
RESTRIES

DESCRIO CPU RAM Tamanho do banco de dados REQUISITO Sistema Operacional

MXIMO 1 (independente do tipo) 1 Gb 4 Gb

Processador Memria Espao em disco (disponvel)


INSTALAO

CONTEDO Windows 2000 Service Pack 4 Windows Server Windows XPService Pack 1 Linux Processador compatvel com Inter x86 Mnimo de 256 Mb (recomendvel 512 Mb ou mais) 1,6 Gb

Efetuar o download do site da Oracle (www.oracle.com.br ou www.oracle.com/technology/products/database/xe/index.html) do arquivo OracleXEUniv.exe. A instalao possui o servidor do banco de dados e as ferramentas de administrao do SGBD, que nesta verso feita via browser. Ser solicitado uma senha para os usurios administrativos SYS e SYSTEM digitem MANAGER como senha para manter o padro com as outras verses do Oracle.

132

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Quando o ambiente possuir estaes clientes, ser necessrio baixar outro arquivo que instala somente o cliente do SGBD para realizar a comunicao com o servidor. (OracleXEClient.exe).
ALTERANDO A SENHA DE UM USURIO PELO MODO ADMINISTRATIVO HOME PAGE

Conectar como SYS ou SYSTEM senha MANAGER surge a seguinte tela:

Figura 108 Tela Principal contendo as opes (feito pelo Autor)

Clique em ADMINISTRAO surge a seguinte tela:

Figura 109 Submenu Administrao (feito pelo Autor)

Clique em USURIOS DO BD e surge a tela com todos os usurios existentes no banco de dados.

Figura 110 Usurios existentes no Banco de Dados (feito pelo Autor)

Clique no usurio desejado e surge o usurio a seguir:

133

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 111 Configurao do usurio HR (feito pelo Autor)

Digite uma senha e confirme (por exemplo, HR) e altere o status da conta para Desbloqueado em seguida clique em ALTERAR USURIO.
SQL * PLUS

Conectar como SYS ou SYSTEM senha ORACLE surge a seguinte tela: SQL>CONNECT SYSTEM/ORACLE;

Figura 112 Tela do SQL * PLUS (feito pelo Autor)

134

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Digite o comando abaixo para desbloquear e alterar a senha do usurio HR: SQL>ALTER USER HR IDENTIFIED BY HR ACCOUNT UNLOCK; Em seguida, conectar com o usurio HR e senha HR: SQL> CONNECT HR/HR; TABELAS EXISTENTES NO BANCO DE DADOS Para estudo, o Oracle possui as seguintes tabelas:
USURIO HR: DEPARTMENTS (departamento)
NOME DA COLUNA TIPO E TAMANHO DESCRIO

DEPARTMENT_ID DEPARTMENT_NAME MANAGER_ID LOCATION_ID


NOME DA COLUNA

NUMBER(4) PK Cdigo do departamento VARCHAR2(30) Nome do departamento NUMBER(6) Cdigo do gerente do departamento NUMBER(4) FK Cdigo da localizao do departamento REGIONS (regio)
TIPO E TAMANHO DESCRIO

REGION_ID REGION_NAME
NOME DA COLUNA

NUMBER PK Cdigo da regio VARCHAR2(25) Nome da regio JOBS (cargo)


TIPO E TAMANHO DESCRIO

JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY


NOME DA COLUNA

VARCHAR2(10) PK Cdigo do cargo VARCHAR2(35) Nome do cargo NUMBER(6) Menor salrio do cargo NUMBER(6) Maior salrio do cargo LOCATIONS (localizao)
TIPO E TAMANHO DESCRIO

LOCATION_ID STREET_ADDRESS POSTAL_CODE CITY STATE_PROVINCY COUNTRY_ID


NOME DA COLUNA

NUMBER(4) PK VARCHAR2(40) VARCHAR2(12) VARCHAR2(30) VARCHAR2(25) CHAR(2) FK COUNTRIES


TIPO E TAMANHO

Cdigo da localizao Endereo da localizao Cdigo postal da localizao Nome da cidade Nome do estado Identificao do pas (pas)
DESCRIO

COUNTRY_ID COUNTRY_NAME REGION_ID


NOME DA COLUNA

CHAR(2) PK Identificao do pas VARCHAR2(40) Nome do pas NUMBER FK Identificao da regio EMPLOYEES (empregado)
TIPO E TAMANHO DESCRIO

EMPLOYEE_ID FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER HIRE_DATE JOB_ID SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID

NUMBER(6) PK VARCHAR2(20) VRCHAR2(25) VARCHAR2(25) VARCHAR2(20) DATE VARCHAR2(10) NUMBER(8,2) NUMBER(2,2) NUMBER(6) NUMBER(4) - FK

Identificao do empregado Primeiro nome do empregado ltimo nome do empregado Email do empregado Telefone do empregado Data de admisso do empregado Cargo do empregado Salrio do empregado Percentual de comisso do empregado Identificao do gerente do empregado Identificao do departamento 135

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

JOB_HISTORY(histrico_cargos)
NOME DA COLUNA TIPO E TAMANHO DESCRIO

EMPLOYEE_ID START_DATE END_DATE JOB_ID DEPARTMENT_ID USURIO SCOTT:

NUMBER(6) PK DATE DATE VARCHAR2(10) FK NUMBER(4) FK

Identificao do empregado Data incio do empregado no cargo Data final do empregado no cargo Identificao do cargo Identificao do departamento

Para estudo, o Oracle (verses 8.0, 8i e 9i) possui no usurio SCOTT, as seguintes tabelas:
DEPT
NOME DA COLUNA TIPO E TAMANHO DESCRIO

DEPTNO DNAME LOC


NOME DA COLUNA

NUMBER(2) PK VARCHAR2(14) VARCHAR2(13) EMP


TIPO E TAMANHO

Nmero do departamento (PK) Nome do departamento Local do departamento


DESCRIO

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


NOME DA COLUNA

NUMBER(4) PK Matrcula do empregado VARCHAR2(10) Nome do empregado VARCHAR2(9) Cargo do empregado NUMBER(4) Matrcula do gerente DATE Data de admisso NUMBER(7,2) Salrio NUMBER(7,2) Comisso NUMBER(2) FK Nmero do departamento SALGRADE
TIPO DESCRIO

GRADE LOSAL HISAL

NUMBER NUMBER NUMBER

Nmero da faixa salarial Incio da faixa salarial Fim da faixa salarial

INSTRUES SQL

INSTRUO SELECT INSERT UPDATE DELETE CREATE, ALTER, DROP, RENAME e TRUNCATE COMMIT,ROLLBACK e SAVEPOINT GRANT, REVOKE

DESCRIO Recuperao de dados de banco de dados DML (Data Manipulation Language) DDL (Data Definition Language) Controle de Transao DCL (Data Control Language)

FERRAMENTAS DO ORACLE
SQL * PLUS O SQL * PLUS uma ferramenta do ORACLE que tem por objetivo realizar a interface iterativa com o banco de dados, permitindo realizar operaes como: Editar, armazenar, recuperar e executar comandos SQL e blocos PL/SQL;
136

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Formatar, executar clculos e armazenar e imprimir resultados de uma query; Listar definio de tabelas e views; Atribuir valores para a execuo de comandos. Para o usurio se conecte ao SQL * PLUS necessrio que este j esteja cadastrado. Quando o SQL instalado, criado automaticamente alguns usurios e algumas tabelas de exemplo com dados j cadastrados que veremos a seguir. Para executar este SQL clique em PROGRAMAS ORACLE DATABASE 10G Express Edition LISTAR A ESTRUTURA DA TABELA Para visualizar a estrutura de uma tabela na LINHA DE COMANDO DO SQL aps a sua criao, usamos o comando DESCRIBE. Sintaxe: DESCRIBE [tabela]. Exemplo: DESCRIBE emp OU DESC emp CRIANDO INSTRUES SQL Usando as seguintes diretrizes e regras simples, voc pode construir instrues vlidas e fceis de ler e editar: As instrues SQL no fazem distino entre maisculas e minsculas; As instrues SQL podem ser digitadas em uma ou mais linhas; As palavras-chave no podem ser divididas entre linhas nem abreviadas; As clusulas so em geral colocadas em linhas separadas para facilitar a edio; Em geral utilizando as palavras-chave em letras maisculas e todas as outras palavras (nome de tabela, colunas) em letras minsculas. CONECTANDO-SE AO ORACLE Os usurios SYS e SYSTEM so senhas master (DBA). Para trocar de usurio quando o mesmo j est conectado, usamos o comando CONNECT nome_usurio. Ser solicitado a senha. Exemplo: CONNECT HR EXECUTANDO INSTRUES NO SQL * PLUS Coloque um ponto-e-vrgula (;) no final da ltima clusula; Coloque uma barra na ltima linha do buffer; Coloca uma barra no prompt do SQL. EDIO E EXECUO DE BUFFER
COMANDO LIST INPUT DESCRIO Exibe o contedo do buffer ou parte dele. Inseri uma nova linha a partir da corrente.

137

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

MANIPULAO DE BUFFER E ARQUIVO

COMANDO SAVE GET START ou @ EXIT SPOOL [OFF]

DESCRIO Grava a instruo armazenada no buffer. Carrega o arquivo para o buffer. Executar o arquivo gravado anteriormente. Sai do cdigo SQL * Plus Armazena os resultados da consulta em um arquivo. OFF fecha o arquivo

Sintaxe SAVE C:\DIRETORIO\ARQUIVO GET C:\DIRET\ARQUIVO START C:\DIRET\ARQUIVO EXIT SPOOL C:\TESTE.SQL SPOOL OFF

EDITOR DE TEXTO

COMANDO EDIT

DESCRIO Chama o editor de textos.

Sintaxe EDIT

TRATAMENTO DE EXIBIES Por meio da definio de valores para as variveis de sistema do SQL * PLUS pode configurar este ambiente:
COMANDO LINESIZE PAGESIZE SERVEROUTPUT DESCRIO Comprimento da linha que ser visualizada. Comprimento da pgina que ser visualizada. Controla as sadas com o comando DBM_OUTPUT.PUT_LINE de dentro das procedures de um banco de dados ou bloco PL/SQL.

FORMATAO
COMANDO COLUMN DESCRIO Define cabealho, largura e formato do dado na coluna. Exemplo:COLUMN ename FORMAT A10 HEADING Nome Para eliminar a formao: COLUMN ename CLEAR;

HOME PAGE DE BANCO DE DADOS

Para executar este SQL clique em PROGRAMAS EXPRESS EDITION

ORACLE DATABASE 10G

138

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 113 Tela de Login da Home Page do Oracle 10G XE (feito pelo Autor)

Aps a conexo, surge a prxima tela: Clique em e surgem as seguintes opes:

Figura 114 Sub-menu do SQL (feito pelo Autor)

Ao clicar em COMANDOS SQL surge a seguinte tela:

139

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Qtde. de linhas a serem exibidas no retorno

Executa o comando digitado. Salva o comando digitado como script.

Local onde digitamos o comando.

Resultado que surge aps clicar no boto EXECUTAR

Figura 115 Tela do Comando SQL (feito pelo Autor)

Obs.: EXPLICAO monta uma verificao no script. Ao clicar em SCRIPTS SQL surge a seguinte tela, onde permite atualizar, criar ou buscar um script SQL:

Figura 116 Tela do Script SQL (feito pelo Autor)

Ao clicar em QUERY BUILDER surge a seguinte tela que possui as estruturas das tabelas:

140

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 117 Objetos Existentes (feito pelo Autor)

Podemos ainda, em Oracle Database 10G Express Edition, escolher a opo que acessa a seguinte tela:

Figura 118 Tela da Linha de Comando SQL (feito pelo Autor)

Nesta tela semelhante ao ambiente MS-DOS devemos digitar o comando CONNECT, em seguida o nome do usurio e clicar em ENTER, onde ser solicitado uma senha. Exemplo: CONNECT HR informe a senha: hr pressione ENTER. Para alterar o seu tamanho, cor da fonte e cor de fundo, clique com o boto direito na barra de ttulo e escolha a opo PROPRIEDADES:

Figura 119 Menu Propriedades (feito pelo Autor)

141

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Surge a tela a seguir:

Figura 120 Fonte em Propriedades (feito pelo Autor)

EXERCCIOS 1. 2. 3. 4. 5. 6. 7. 8. Quais so os usurios que so instalados automaticamente com o Oracle? Qual o comando que lista a estrutura da tabela? D um exemplo? Quais so as caractersticas do Oracle 10G? Quando devemos usar o LINESIZE e o PAGESIZE? Qual o comando usado para troca de usurio na sesso do Oracle? SAVE, SPOOL, GET e EDIT so comandos de: ____________________ Quais so as formas de executar uma query no SQL * Plus? Qual a diferena entre os comandos do SQL * PLUS e os comandos do padro SQL ANSI?

142

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

OBJETOS DO BANCO DE DADOS


Um banco de dados ORACLE pode conter vrias estruturas de dados. Cada estrutura deve ser descrita no projeto de banco de dados para que possa ser criada durante o estgio de desenvolvimento do banco de dados: TABELA VIEW Armazena dados na interseo da linha com a coluna; Subconjunto de dados de uma ou mais tabelas; Gera valores numricos nicos; Melhora o desempenho de algumas consultas; Fornece nomes alternativos aos objetos;

SEQNCIA NDICE -

SINONIMO -

STORAGE PROCEDURE funes, procedimentos, pacotes, gatilhos e blocos annimos.

CRIANDO TABELAS
A tabela o local onde so colocados os dados (antigamente chamvamos de arquivos). Uma tabela formada de colunas (antigamente chamvamos campos. E cada tabela pode ter at 1600 colunas) e linhas (antigamente chamvamos de registros). No necessrio especificar o tamanho de nenhuma tabela. O tamanho definido pela quantidade de espao alocada no banco de dados como um todo. Entretanto, importante estimar a quantidade de espao que um exerccio usar. Para criarmos uma tabela no ORACLE, necessrio que o usurio defina para cada coluna, o tipo de dado, o tamanho e as suas restries. TIPO DE DADOS
Tipo Descrio Tamanho Mximo Exemplo

CHAR VARCHAR ou VARCHAR2 NUMBER

LONG

RAW LONG RAW DATE TIMESTAMP

Alfanumrico de tamanho fixo Alfanumrico. O que no foi utilizado no ocupa espao no banco de dados. Numrico. Utilizado com casas decimais, primeiro o nmero total de dgitos (incluindo as casas decimais) Alfanumrico. Tamanho no precisa ser informado. S pode existir um por tabela e no pode ser utilizado em consultas. Armazena valores hexadecimais com tamanho varivel. Armazena valores hexadecimais com tamanhos variveis. Sero armazenados com sculo, ano, ms, dia, hora, minuto e segundo. Armazena data, hora, minuto, segundo. Exemplo: dtinicio TIMESTAMP(7)

255 2.000 38

Sexo Endereo Salrio

2G

2K 2G -

Armazena imagens Armazena imagens Data de Nascimento

143

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Obs.: O tipo de dado INTERVAL YEAR TO MONTH usado para representar a diferena entre dois valores de data/horrio em que apenas o ano e o ms so significativos. Exemplo: INTERVAL 123-2 YEAR(3) TO MONTH indica 123 anos e dois meses

CONVENES PARA NOMEAO Nomeie tabelas e colunas do banco de dados de acordo com as regras de nomeao de qualquer objeto de banco de dados: Devem comear com uma letra; Pode ter de 1 a 30 caracteres; Deve conter somente A-Z, a-z, 0-9, _, $ e #; No deve duplicar o nome de outro objeto de propriedade do mesmo usurio; No deve ser uma palavra reservada pelo ORACLE. OBSERVAO: Os nomes no fazem distino entre maisculas de minsculas.

Figura 121 Criar Tabela (feito pelo Autor)

Na tela seguinte podemos escolher as colunas, tipos de dados e tamanho:

144

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 122 Colunas e Tipos de Dados (feito pelo Autor)

Na tela a seguir podemos escolher a(s) coluna(s) que faro parte da chave primria (podemos escolher para ser preenchido com um nmero sequencial):

Figura 122 Chave primria (feito pelo Autor)

Na tela a seguir podemos escolher uma chave estrangeira para a tabela (relacionamento entre as tabelas):

145

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 123 Chave Estrangeira (feito pelo Autor)

Na tela seguinte, podemos definir uma verificao para uma ou mais colunas na futura tabela:

Figura 124 Configurao da Verificao (feito pelo Autor)

Na tela seguinte, clique em CRIAR:

146

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 125 Tela de Finalizao (feito pelo Autor)

A seguir exibida a estrutura da tabela criada:

Figura 126 Estrutura da Tabela (feito pelo Autor)

ADICIONAR COLUNA Clique no cone ADICIONAR COLUNA e surge a tela abaixo:

Figura 127 Tela para Adicionar Coluna (feito pelo Autor)

EXIBIR A ESTRUTURA

147

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 128 Tela para Exibir a Estrutura da Tabela com a Coluna Adicionada (feito pelo Autor)

MODIFICAR COLUNA Clique no cone MODIFICAR COLUNA e surge a tela abaixo:

Figura 129 Tela para Modificar Coluna (feito pelo Autor)

EXIBIR A ESTRUTURA

Figura 130 Tela para Exibir a Estrutura da Tabela com a Coluna Modificada (feito pelo Autor)

148

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

RENOMEAR COLUNA Clique no cone RENOMEAR COLUNA e surge a tela abaixo:

Figura 131 Tela para Renomear Coluna (feito pelo Autor)

EXIBIR A ESTRUTURA

Figura 132 Tela para Exibir a Estrutura da Tabela com a Coluna Renomeada (feito pelo Autor)

ELIMINAR COLUNA Clique no cone ELIMINAR COLUNA e surge a tela abaixo:

Figura 133 Tela para Eliminar Coluna (feito pelo Autor)

EXIBIR A ESTRUTURA

149

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 134 Tela para Exibir a Estrutura da Tabela sem a Coluna Eliminada (feito pelo Autor)

RENOMEAR A TABELA Clique em RENOMEAR e surge a tela a seguir:

Figura 135 Renomear a tabela (feito pelo Autor)

Figura 136 Finaliza a Renomeao de Tabela (feito pelo Autor)

Se clicar no SQL abaixo, exibido o cdigo:

Figura 137 Cdigo SQL para renomear a tabela (feito pelo Autor)

150

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

COPIAR TABELA Clique em COPIAR para fazer uma cpia de uma tabela e, aps o nome da tabela, clique em FINALIZAR:

Figura 138 Copiar tabela (feito pelo Autor)

Observao: Podemos eliminar ou truncar a tabela. ADICIONAR LINHAS A TABELA Clique em DADOS e em seguida clique em INSERIR LINHA:

Figura 139 Inserir Linha (feito pelo Autor)

Surge a tela abaixo onde podemos colocar os valores:

Figura 140 Inserir Linha (feito pelo Autor)

Podemos CRIAR linha ou CRIAR E CRIAR OUTRO para inserir um novo registro.

151

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

Figura 141 Exibio do registro inserido (feito pelo Autor)

Clique em DOWNLOAD para exportar os dados para outra fonte:

Figura 142 Tela de Exportao (feito pelo Autor)

EXERCICIOS 1) Criar uma tabela chamada CONTROLE que armazene as notas bimestrais por aluno e por disciplina. 2) Acrescentar o campo mdia tabela CONTROLE. 3) Renomear a tabela CONTROLE para NOTA. 4) Verificar as tabelas de propriedade (owner) do usurio que voc est conectado. 5) Eliminar a tabela NOTA.

152

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

EXERCICIO EXTRA
De acordo com o estudo de caso abaixo, crie as tabelas e em seguida inserir alguns registros: A fim de gerenciar as vendas em uma loja, os seguintes requisitos devem ser atendidos pela modelagem de dados: Vendas so efetuadas por um Vendedor em uma data e hora. Vendedores recebem um salrio base e comisso sobre as vendas, a qual representa 10% do valor da venda. Vendedores possuem matricula, nome, endereo, telefone e CPF.

Vendedores podem possuir mais de um telefone. Vendas podem ser vista ou a prazo. Vendas a prazo possuem parcelas de pagamento, com sua data de vencimento e valor. Vendas podem ou no estar relacionadas a um Cliente. Vendas em dinheiro nem sempre esto relacionadas a um Cliente. Clientes so cadastrados com seu Nome, CPF, Identidade, endereo e telefone. Clientes podem possuir mais de um telefone. Vendas envolvem produtos, sendo que para cada venda a quantidade vendida do produto deve ser registrada. Produtos possuem cdigo, descrio, preo e quantidade em estoque.

153

B A N C O

D E

D A D O S

F A T E C

D E

P R A I A

G R A N D E

EXERCICIO: CONVERSO CONCEITUAL PARA LGICO


a)

b)

BOAS FRIAS E AT BANCO DE DADOS II!!!!


154

Você também pode gostar