Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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.
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
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
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
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.
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).
SISTEMA DE COMPUTADOR PESSOAL: onde a aplicao possui o seu prprio banco de dados em seu computador pessoal.
APLICAO
BANCO DE DADOS
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
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.
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
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
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
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
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
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.
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)
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.
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
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.
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.
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
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
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
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
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).
17
18 19
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
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
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.
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
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
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
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:
Auto-Relacionamento o relacionamento entre ocorrncias da mesma entidade, para identificar surge o PAPEL DE ENTIDADE DE RELACIONAMENTO24. Exemplo:
PESSOA
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:
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:
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:
Os relacionamentos acima so classificados como BINRIO devido a quantidade de entidades existentes no relacionamento. Pode ser TERNRIO, QUARTENRIO, etc. Exemplo:
Atributo o dado associado a cada ocorrncia de uma entidade ou de um relacionamento. Ou seja, uma caracterstica de uma entidade. Exemplo:
26
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
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
CLIENTE
CONTA
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:
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
Esta identificao pode ser: SIMPLES (Atmico) ou COMPOSTO (mais de um atributo). Exemplo:
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:
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:
rg
ALUNO
CURSO
DISCIPLINA
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
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
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.
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
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
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
PARCIAL: nem toda ocorrncia da entidade genrica possui uma ocorrncia correspondente em uma entidade especfica. Exemplo:
COMPARTILHADA: indica uma hierarquia, uma ocorrncia da entidade genrica pode aparecer em vrias entidades. Exemplo:
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
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
MEDICO
PACIENTE
CONSULTA
MEDICAMENTO
Figura 44 Exemplo de Entidade Associativa (adaptado pelo autor)
Notao DER-X
27
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
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
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
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.
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
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
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.
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.
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:
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.
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
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
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
Figura 58 Exemplo de Modelo Lgico (feito pelo Autor) MENU ESQUEMA LGICO
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
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.
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
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 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
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.
( (
( ( (
) 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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
CANDIDATA
ALTERNATIVA
PRIMRIA
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
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
# 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_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
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.
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
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_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
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_ingrediente nm_ingrediente
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
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
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
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
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 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.
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
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:
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
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
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
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.
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
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
1 2 2 2
1 1 1 2 2 2
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:
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
Resoluo
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
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
#cd_mercadoria nm_fornecedor_mercadoria
cd_cnpj_fornecedor_mercadoria
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.
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.
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
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.
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
Modelo de Dados
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
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.
6.
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
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
Menu DISPLAY:
Tipos de Notao:
EER[1,n]
Traditional
Crows Foot
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
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
Agora, basta abrir o arquivo no navegador que dever ser semelhante ao modelo abaixo:
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.
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
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:
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
Ao escolher o cone
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
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:
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
Surge a tela abaixo, onde podemos escolher os tipos de objetos que devero ser migrados:
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
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
Figura 88 Tela para Alterao das Propriedades dos Atributos (feito pelo Autor)
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
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:
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
Figura 93 Tela com o Script de Criao das Entidades (feito pelo Autor)
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 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
Figura 96 Terceira Tela do Assistente de Conexo Escolha do Esquema (feito pelo Autor)
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:
Surge tela de log contendo informaes do banco de dados, em seguida, clique em CLOSE:
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
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)
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
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
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.
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
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.
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
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
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
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
Clique em USURIOS DO BD e surge a tela com todos os usurios existentes no banco de dados.
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
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;
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
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
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
Cdigo da localizao Endereo da localizao Cdigo postal da localizao Nome da cidade Nome do estado Identificao do pas (pas)
DESCRIO
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
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
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
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
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
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;
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)
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
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:
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
Podemos ainda, em Oracle Database 10G Express Edition, escolher a opo que acessa a seguinte tela:
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:
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
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
SEQNCIA NDICE -
SINONIMO -
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
LONG
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
2G
2K 2G -
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.
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
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):
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
Na tela seguinte, podemos definir uma verificao para uma ou mais colunas na futura tabela:
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
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)
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
EXIBIR A ESTRUTURA
Figura 132 Tela para Exibir a Estrutura da Tabela com a Coluna Renomeada (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)
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:
Observao: Podemos eliminar ou truncar a tabela. ADICIONAR LINHAS A TABELA Clique em DADOS e em seguida clique em INSERIR LINHA:
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
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
b)