Prévia do material em texto
BANCO DE DADOS Danilo Marcus Santos RibeiroINTRODUÇÃO A ANÁLISE DE SISTEMA se. A análise pode ser feita com uma empre- sa de pequeno porte ou uma multinacional. Análise de sistemas Ambiente Operadora de Cartão de Crédito Por muitos anos a Análise de Sistemas foi o carro-chefe para a modelagem de sistemas Clientes que utilizam bancos de dados. Apesar dos conceitos em torno do Banco de Dados ter Processamento Faturas passado por diversas mudanças e evoluções, Empresas a análise feita no ambiente físico operacional de uma empresa é extremamente importan- Figura 1 A Análise de um ambiente. te para compreender as suas necessidades. o ambiente analisado contém inúmeras Para exercer uma análise em uma empre- variáveis que são específicas para a modela- sa ou um ambiente qualquer, existe um con- gem dos dados envolvidos. De acordo com ceito fundamental que é de suma importân- Setzer e Silva (2012, p. 8): cia para quem vai trabalhar com banco de que se armazena em um computador dados. Este conceito é a abstração. são os dados, e os programas que ele deve executar também são dados, de modo que Abstração o objetivo de uma análise de sistemas é partir do mundo real e chegar a estruturas A abstração é conceito inicial básico den- de dados que, com os dados propriamente tro da Análise de Sistema que é utilizado na ditos, constituirão um banco de dados, e ao modelagem de dados. Ela ajuda a entender a esenvolvimento de programas de tratamen- criação e o funcionamento de um banco de to desses dados. dados. o analista vai utilizar seus conceitos para analisar o ambiente, a empresa e enten- Quando uma análise é feita dentro de uma der seu funcionamento. empresa, existem dados que são cruciais Ao observar dentro de um ambiente qual- para o desenvolvimento, pois a sua mani- quer, pode-se perceber que existem vários pulação dentro do sistema ocorrerá com objetos que o compõem. Estes objetos pos- bastante frequência. Imagine agora uma suem características próprias. A abstração é empresa que opera com cartões de crédito. uma técnica realizada mentalmente em um Quais dados são extremamente relevantes ambiente, a fim de extrair dele os elementos para a empresa? Você deve ter pensado que e fatos importantes. Para a análise de siste- são os clientes. E está correto. Não pense que mas, apenas os elementos cuja informação apenas os dados dos clientes são essenciais. deve ser armazenada ou manipulada, deverá Mas o que vem a mente logo de início é que ser considerado. a operadora de cartões de crédito armazena Voltando a analisar o exemplo anterior da uma quantidade significativa de dados dos Operadora de Cartão de Crédito lembre que seus clientes. E é praticamente impossível havia clientes, empresas e faturas. Todos não pensar a respeito. Na você po- estes são objetos desse ambiente e as suas derá visualizar três variáveis que são parte características são diversas; por exemplo: o desse sistema. Os clientes da operadora, as cliente tem um nome, CPF, e-mail, endere- empresas onde os clientes compram e natu- e também a marca do seu cartão de cré- ralmente uma saída que é a geração de uma dito. A empresa tem um nome, endereço e fatura com todas as compras realizadas. É CNPJ. A fatura o nome do cliente, a data de claro que uma operadora não manipula ape- vencimento, a descrição dos itens compra- nas essas informações. Simplesmente foi dos, valor mínimo de pagamento e taxas de colocado de uma maneira que reflita a análi- juros caso o cliente atrase. BANCO DE DADOS 277Como foi dito, analisar um ambiente é A análise através da abstração vai operar extrair dele os seus objetos mais relevantes, com objetos do mundo real. Estes objetos se- ou seja, aqueles que serão usados para a mo- rão posteriormente modelados e convertidos delagem do sistema e consequentemente na em um formato para ser representado por criação do banco de dados. Cada ambiente computadores. Contudo, antes de passar os é diferente, assim como cada analista. dados abstraídos para o formato de software que é importante e essencial é ter um olhar é necessário cria o modelo. Em teoria o fun- crítico para todas as variáveis envolvidas. cionamento é o mesmo. analista abstrai Imagine um estoque de uma loja de roupas, objetos do mundo real e passa a formatá-los um restaurante, uma loja de equipamentos como um modelo que o computador enten- eletrônicos. Todos esses ramos podem ser da e armazene em forma de dados lógicos. analisados e modelados de acordo com a ne- Nesse último passo é feito o banco de dados cessidade e vários dados serão abstraídos. propriamente dito. Veja a Figura2. ABSTRAÇÃO MODELO Mundo real Representação no computador Figura 2 Da abstração ao modelo computacional. Modelagem pela abstração por ser um estoque, a quantidade. Todos estes são atributos ou características que Existem vários exemplos que podem ser da- identificam o produto. Guarde muito bem dos para exemplificar a análise e a abstração esse conceito, pois será usado durante todo em um determinado ambiente. Você pode o livro. fazer isso com a sua própria casa apenas pe- A análise da despensa por meio da abstra- gando um dos cômodos. A cozinha por exem- ção identificou que o objeto mais importante plo. Quais são os dados importantes dentro daquele ambiente era o alimento que havia da sua cozinha. A cozinha tem um armário, dentro do armário. A partir dos dados coleta- uma pia, o fogão, a geladeira, uma despensa dos o analista poderá modelar e criar o mode- que armazena alimentos. Se focar na despen- lo computacional. sa da cozinha e tratá-la como se fosse um am- próximo passo após a modelagem é biente que precisasse ser abstraído e modela- entender o que será feito com esses dados do, o que aconteceria? Poderia ser criado um modelados e isso vai depender do objetivo estoque de alimentos. que tem o sistema. Para compreender essa A criação do modelo se daria da seguinte questão pense num simples estoque. Por forma: que proprietário precisa de um sistema? A despensa é o ambiente. A resposta é simples. Após a implantação de Os alimentos são os objetos abstraídos. um sistema, todo produto do estoque pode- rá ser controlado, identificado e manipulado Cada objeto tem características próprias. mais facilmente. Para saber a quantidade do Estas características também podem ser estoque basta consultar sistema e não con- chamadas de atributos. tar o estoque físico. Por conta disso, na hora Cada alimento tem um nome, uma marca, de analisar um sistema você deve pensar em um preço, um peso, uma data de fabrica- todas as variáveis que são realmente impor- ção, uma data de validade e naturalmente tantes para sistema. 278 BANCO DE DADOSCONCEITOS PARA BANCO DE DADOS que realmente existe. Já a foto dessa árvore é apenas a representação de algo que existe no Introdução mundo real, ou seja, um dado. Assim tam- Um banco de dados é uma estrutura lógi- bém se pode dizer dos seres humanos, eles ca que armazena um conjunto de dados. Tais são reais. Entretanto quando você vai ao ban- dados podem ser utilizados por usuários, CO e informa seu nome para o gerente ou o clientes ou funcionários de uma empresa. número de sua conta. Ambos são dados. Isso No entanto, o que é de fato um dado arma- é o que o processo de abstração faz, transfor- zenado, ou como esse dado é armazenado no ma coisas do mundo real em dados que serão banco de dados? De acordo com Setzer e Silva processados pelo computador. (2012, I): Um banco de dados não funciona como banco, emprestando dados. Funciona muito 1992 A mais como um repositório de dados, que são usados em diversas aplicações, isto é, uma trinta três base sobre a qual atuam essas aplicações, e que está disponível para desenvolvimento de outras que usam os mesmos dados. Nesse caso então os dados estão guardados em um repositório e a partir desse local eles III podem ser acessados e manipulados. Várias transações acontecem com os dados de uma Silva pessoa ao comprar com cartão de crédito em sessenta uma loja, ao pagar a fatura do cartão ou até mesmo se porventura cometer um atraso. Tudo isso será registrado pelo sistema em Figura 3 Exemplos de dados. seu banco de dados. Para compreender melhor a ideia de um Os dados podem permanecer inalterados banco de dados é importante saber primeiro ou variar de acordo com o seu propósito. Um o que é um dado. que representa ou o que bom exemplo seria uma conta bancária. Toda significa um dado? vez que entrar ou sair dinheiro da conta, o sal- "Definimos dado como uma representa- do é alterado. ção simbólica (isto é, feita por meio de sím- bolos), quantificada ou quantificável." (SET- Informação ZER; SILVA, 2012, p. 2). A informação é uma mensagem construí- da a partir de dados. Um conjunto de dados Dado pode ser uma informação. Qualquer pessoa Um dado pode assumir várias formas, se com certeza deve ter uma definição própria alguém disser "Dois", "Azul", "IV". para informação. E provavelmente terá suas Todos estes são representações de textos ou A ideia que se tem a respeito de in- símbolos, portanto eles são dados. Uma letra, formação é que ela tem um sentido, um sig- um texto ou um gráfico também é um dado. nificado, ou seja, transmite uma mensagem. De acordo com Setzer e Silva (2012, p. 2) A informação não é algo solto, desconexo ou "uma foto de uma árvore é um dado (ou uma sem sentido. Ela expressa um significado sequência de dados). Mas é fundamental se de forma que quem a ouve tem condições entender que essa árvore em si, isto é, exis- de entender. De acordo com Setzer e Silva tente no mundo real, não é um dado". que (2012, p. 3): se está querendo dizer com isso é que a árvo- Uma mensagem dessas torna-se informa- re é algo do mundo real, ou seja, é algo físico ção, se o seu receptor conseguir compre- BANCO DE DADOS 279ender seu conteúdo, isto é, associar a ela, nomes, preços e quantidades disponíveis no mentalmente, um significado. estoque, isso é informação. Uma mensagem pode ser compreendida banco de dados é uma estrutura lógica, por várias pessoas e não ter nenhum sentido isto é, um software que armazena os dados para outras. Isso depende do conceito que se de uma empresa qualquer. Quando o usuá- tem. Se alguém pegar um texto em alemão rio requisita estes dados através do sistema, e não souber a língua simplesmente eles são expostos de forma organizada na verá símbolos sem significado, ou seja, serão tela do computador de forma que se tornem apenas dados. Da mesma maneira, se uma informações, ou seja, tenham sentido. pessoa que não entende de programação for Todos esses conceitos acima são vitais para tentar entender o que faz um determinado compreender o mundo dos bancos de dados. código, certamente não fará nenhum sentido. É importante salientar que qualquer pessoa Apenas para leitor tentar entender; Al- que for trabalhar com banco de dados preci- guém lhe envia um texto escrito: "Ich Lie- sa entender que todo processo realizado pelo be Dich. Allesklar?" Se você não conhecer o computador é o reflexo da análise do admi- idioma, certamente não será uma informa- nistrador. É imprescindível que o processo ção para você, pois não tem o menor sentido de abstração seja feito com precisão e cau- o que está escrito. Veja o código abaixo: tela. Entender como funciona uma empresa e os seus processos, a princípio parece uma tarefa fácil, mas quando se trata de criar um A teoria sobre Banco de Dados não é um conceito novo. Desde muito tempo as infor- Ao analisar o código acima, quem conhece o mações são armazenadas das mais diversas PHP, saberá que variáveis são criadas, atribui- formas. A princípio diversas listas com da- ções são feitas juntamente com concatenações dos eram armazenadas em formas de arqui- entre textos e por fim é impresso conteúdo vos separados e não relacionados entre si, da variável concatenada. Referente texto aci- isto é, o arquivo de registro de produtos não ma, a tradução do alemão é: "Eu te amo. Tudo tinha uma relação direta com o arquivo de bem?". registro dos fabricantes. Com isso não havia Para o usuário de um sistema, apenas da- consistência, facilidade nas buscas ou coleta dos não fazem sentido. Se em uma lista de de diversas informações ao mesmo tempo. produtos aparecerem apenas números lis- Já os bancos de dados utilizados por gran- tados em forma de planilha, como saber o de parte das aplicações atuais permitem que esse número representa, isto é, que sig- realizar consultas aninhadas através de vá- nificado tem esses números para que esteja rios recursos do sistema. Este é o tão popu- vendo. Contudo, se ao requisitar uma lista lar modelo relacional. Você também pode de produtos e aparecer na tela uma lista com chamá-lo de base de Dados ou Ao ver 280 BANCO DE DADOSas siglas BD ou DB durante a leitura deste de carros que estão à venda no pátio. Poderia livro, saiba que significa a mesma coisa. se dizer que esta empresa tem um sistema BD relacional é amplamente utilizado pelo de revendas de veículos e naturalmente o seu incrível potencial. De acordo com GUI- seu BD vai ter os registros de cada um deles MARÃES (2012, p. 19) Quando um cliente entrar na loja para com- prar um veículo, o vendedor consulta as in- Um banco de dados ou base de dados BD é formações a respeito daquele veículo em seu uma coleção de dados ou informações rela- sistema. Essa consulta utiliza a interface do cionadas entre sistema para acessar o BD e retornar essas Para exemplificar a utilização de um BD, informações organizadas em forma de lista. imagine uma concessionária e a sua coleção Veja a Tabela I. Tabela Lista de veículos da concessionária. Veículo Marca Preço Ano Modelo Gol G5 VW 38.000,00 2013 2013 Polo VM 56.000,00 2011 2013 Ford Fiesta 37.500,00 2013 2014 Vários outros exemplos de BD: ou recipiente para uma coleção de arquivos Banco de dados de uma agência bancária de dados computadorizados". Veja a Figura Armazena dados das contas dos clientes 4. contendo informações como saldo, nffl de agência e conta. BANCO DE DADOS REGISTROS Banco de dados de uma loja de peças au- Nomes de func. tomotiva. Armazenam dados a respeito de cada peça para indicar em qual veículo poderá CPF ser utilizado. Banco de dados de um aeroporto Endereço Armazenam dados sobre as aeronaves, os passageiros e os horários de cada Figura 4 Banco de dados de uma empresa. Banco de dados de uma Escola Armazenam dados dos alunos, dos pro- fessores e das disciplinas. Importância dos bancos de Dados Imagine agora um ambiente como o es- Qual seria a melhor maneira de guardar toque de uma empresa. A empresa tem os uma lista com alguns nomes de pessoas registros de todos os seus produtos e é atra- para um casamento? Talvez nesse caso um vés desse controle que a empresa saberá a banco de dados não seja necessário, afinal quantidade atual de determinado produto e essa lista pode ser feita em uma folha, escri- também quando novas compras deverão ser ta a caneta. Já uma lista com os registros dos feitas. nomes de todas as cidades do Brasil ficará Uma empresa pode armazenar uma infi- melhor se utilizar um banco de dados. Ima- nidade de dados, por exemplo, os registros gine quantas cidades tem no país. A quan- de seus funcionários, os nomes, CPF ou en- tidade de folhas impressas ou escritas seria dereço. De acordo com DATE (2004, gigantesca. A busca por uma determinada banco de dados pode ser considerado como cidade seria exaustiva. Diferentemente do o equivalente eletrônico de um armário de banco de dados que permite uma consulta arquivamento; ou seja, ele é um repositório rápida e transparente. BANCO DE DADOS 281Uma comparação demonstra que quanto utilizar o BD. Com pouco espaço no HD do maior a quantidade de dados para armaze- computador já é possível guardar uma enor- nar, mais visível é a importância que tem o me quantidade de dados eliminando as pi- banco de dados. E tanto faz se é um único lhas de registros manuais. Veja a Figura 5. usuário ou uma grande empresa que irá Comparativo entre registros manuais e um banco de dados Arquivo de banco de dados ocupando um pequeno espaço no HD Registros de todas Registros de todas as cidade do Brasil as cidade do Brasil Figura 5 Do arquivo ao registro em banco de dados. A tecnologia dos bancos de dados permi- quanto os funcionários pesquisam as rou- tiu que empresas de grande porte tivessem pas na mesma base de dados. Esse conceito pleno controle de todos os seus dados. As é chamado de multiusuário. Isto será mais informações pertinentes aos setores são ar- bem detalhado nos próximos capítulos. mazenadas dinamicamente. funcionário A maioria dos sites disponibilizados na pode requisitar informações ao sistema por Internet utiliza algum banco de dados, e meio de uma interface e verificar a listagem para manipular estes dados é utilizado um do estoque, a folha de pagamento ou as ven- SGBD, por exemplo, MySQL ou PostgreS- das diárias. Tudo é automático e praticamen- QL. Softwares usados nas empresas ao redor te instantâneo. É só dar alguns cliques no do mundo também os utilizam, seja MySQL, mouse e toda informação necessária estará Oracle ou SQL SERVER. Referente acesso à sua disposição. ou propósito no caso dos sites, podem existir de acordo com DATE (2004, p. 9) Características dos bancos de dados Três classes gerais (e um tanto superpos- tas) de usuários. banco de dados tem inúmeras carac- terísticas que inclusive explicam a sua im- A respeito destes usuários, DATE (2004, portância. Um exemplo que precisa ser p. 9) fala que mencionado é a forma de acesso, isto é, a quantidade de usuários que precisam usar Primeiro, há os programadores de aplica- estes dados. Imagine uma situação em uma ções, responsáveis pela escrita de progra- mas de aplicações de banco de dados em loja de roupas onde quatro clientes são aten- alguma linguagem de programação. didos simultaneamente. Se a loja dispõe de um software para consulta, isto significa que Em seguida, DATE (2004, p. 9) cita mais os dados podem ser compartilhados ao mes- dois: mo tempo utilizando vários computadores. Os quatro clientes podem ser atendidos en- 282 BANCO DE DADOSExistem os usuários finais, que acessam SISTEMA GERENCIADOR DE BANCO DE banco de dados interativamente. E a ter- DADOS ceira classe de usuários, é administrador de banco de dados, ou DBA (de Data Base Introdução Administrator). banco de dados propriamente dito não Um exemplo de operação do usuário final é o responsável pelo seu gerenciamento. o é quando um site requer dados para auten- processamento feito pelo computador não é ticação. Neste caso, o usuário está simples- transparente para o usuário, e nem precisa mente interagindo com o sistema, seja ele ser, isto é, usuário não percebe como uma um site ou programa aplicativo. No site, por busca é feita internamente no BD. o que re- exemplo, as fotos, os banners e os textos são almente é importante para programador é colocados via programação em conjuntos saber que SGBD (sistema gerenciador de com o sistema que gerencia o banco de da- banco de dados) é quem faz todo o gerencia- dos (SGBD). mento dos dados. Ele que busca as informa- Os usuários administradores e programa- ções no banco e as devolve para usuário. dores são voltados para desenvolvimento computador trabalha no nível lógico e manutenção do BD. o usuário final não (software) e físico (hardware). responsável requer conhecimento na área, já os outros por criar e manipular banco de dados tra- sim, pois vão trabalhar utilizando uma lin- balha com instruções de comando, ou seja, guagem de programação. E isso independe no nível lógico. E quem faz a interação entre de ser um site ou um software. Cada usuário hardware e usuário é próprio SGBD. que tem contato com banco de dados faz Dessa maneira fica que basta ao de uma forma diferente e muitas vezes com usuário buscar as informações sem se pre- recursos limitados. E é nesse ponto de como ocupar em como elas são obtidas. Se você funciona essa interação que entra papel de já operou um sistema em alguma empresa um SGBD. ou teve contato com um código fonte de um programa, provavelmente já deve ter perce- bido isso. usuário final apenas usa a inter- face de um programa ou site, o programador apenas opera até a parte do SQL e o SGBD gerencia os dados para ambos os casos. sistema e usuário podem fazer várias requisições (pedidos) ao SGBD. Banco Sistema SGBD de dados Usuários Figura 6 Interação do SGBD. Estrutura e funcionamento das. o sistema gerenciador do BD de acordo SGBD opera através de um conjunto de com (2012, p. 22): aplicações complexas as quais são responsá- Auxilia também o usuário a gerenciar veis por tratar requisições tanto dos usuários uma base de dados através de ferramentas quanto do próprio sistema (ver Figura 6). As para definição dos conjuntos de dados que requisições dos usuários são voluntárias, já constituirão a base de dados, para construir as do sistema são previamente programa- e preencher a base de dados, para manipular BANCO DE DADOS 283seu conteúdo através de consultas ou para quema) para esse usuário, mapeamento atualizar dados e gerar relatórios. externo/conceitual correspondente, es- Toda operação a ser realizada passa pelo quema conceitual, o mapeamento con- SGBD. Quando um usuário faz uma requi- ceitual/interno e a definição do banco de sição, por exemplo, uma consulta de dados, dados armazenado. o SGBD faz uma interação requisitando os 4. SGBD executa as operações necessárias dados à base de dados por meio da lingua- sobre o banco de dados armazenado. gem SQL e por fim retorna com o resultado Da maneira como foi descrita acima, fica para a interface do usuário. claro compreender o papel do SGBD entre Para entender parte do processo realizado a interface (tela) de um sistema e o BD. Ele pelo SGBD, veja o que diz Date (2004, p. 37) é o intermediário da operação. Por isso sua a respeito desse acesso ao banco de dados: estrutura é complexa, pois permite operar 1. Um usuário faz um pedido de acesso satisfatoriamente garantindo o pleno fun- usando uma determinada sublinguagem cionamento. Na Figura 7 é possível verificar de dados (geralmente, SQL). que o SGBD faz o papel intermediário entre 2. SGBD intercepta o pedido e analisa. os programas e o BD. Os programas fazem 3. SGBD, por sua vez, inspeciona o esque- requisições ao SGBD. ma externo (ou as versões objeto desse es- Usuários / Programadores Consultas/Programas SGBD Catálogo Banco (metas dados) de dados Figura 7 Programas usam SGBD. No mercado já existem vários modelos de as vantagens obtidas. o seu poder de pro- SGBD. modelo identifica a estrutura interna cessamento lógico é muito grande, pois ele do seu funcionamento. modelo a ser tratado precisa tratar todas as requisições impostas aqui é o relacional, amplamente utilizado pela pelo sistema e pelos usuários. E aqui vai maioria das empresas. uma dica: quando um servidor de BD tiver com uma alta carga de processamento, basi- camente isto significa que a memória RAM Características e vantagens está pouca e precisa ser incrementada. Mas o SGBD possui uma quantidade enorme pode também haver outros fatores. de características e muitas delas refletem 284 BANCO DE DADOSOutra característica já mencionada é per- cessamento, esse hardware deverá ser apro- fil multiusuário. Lembra-se do atendimento priado para suprir a demanda operacional. simultâneo em uma loja (destacado na aula Naturalmente o servidor é um equipamento 3), não é banco de dados em si que faz previamente configurado para suportar mi- tratamento dos pedidos dos atendentes, mas lhares de requisições simultaneamente e o faz o SGBD. Ele sim é pivô por trás das respondê-las com eficiência. consultas realizadas naquele momento. É a Além do hardware adequado para o SGBD, peça chave que resolve todo o esquema de existem os programas cliente que operam acesso de vários usuários operando ao mes- sobre a estrutura do SGBD, isto é, usa o con- mo tempo. Imagine uma empresa qualquer. junto de aplicações do próprio SGBD para Praticamente toda empresa de médio e intermediar acesso à base de dados. Exis- grande porte utiliza um sistema tem várias formas de conexão lógica entre as rio. A Internet é de longe melhor exemplo aplicações e os servidores que rodam SGBD. do macro uso proporcionado pelo poder do Como exemplo dessas conexões, pode-se SGBD. Apenas para associar o nome com as mencionar tipo cliente-servidor, servidor tecnologias já utilizadas, saiba que MyS- WEB e servidor de arquivos. Cada um com QL, Oracle, SQL SERVER, Firebird e muitos suas características, vantagens e desvanta- outros que podem ser citados, são SGBDs. gens. MySQL é muito usado na WEB e o Firebird é muito usado em aplicações comerciais fei- tos em Delphi por exemplo. A MODELAGEM DE DADOS Introdução Aplicação 1 Um conceito fundamental antes de entrar Aplicação 2 na criação de um banco de dados é a mo- SGBD Aplicação 3 delagem de dados. Ela funciona como uma receita, isto é, uma preparação para a cria- Aplicação 4 Base de ção do banco de dados propriamente dito. dados A modelagem precede a criação do BD. É Figura 8 Multiusuários no SGBD. imprescindível conhecer e entender o seu funcionamento. Dentre as vantagens que foram citadas, Para fazer uma modelagem é necessário ainda existem mais algumas. De acordo com aplicar o conceito de abstração, pois ao olhar Heuser (2010, p. 23): para ambiente de uma empresa você deve determinar quais dados são importantes. Por A manutenção de programas torna-se mais exemplo, você é contratado para criar um simples, pois uma separação clara de fun- ções facilita a compreensão dos programas. banco de dados para um controle de estoque, A produtividade dos programadores tam- mas ainda não sabe que tipo de estoque é bém aumenta, já que os programas ficam esse. Ao ter o primeiro contato com o estoque menores, pois usam funções já construí- da empresa, percebe que eles comercializam das. alimentos. A primeira abstração altamente é que o proprietário tem interesse em armazenar os dados dos alimentos para Hardware e software manipulá-los com operações de compra e venda. Naturalmente você percebe que os ali- hardware é uma variável muitíssimo mentos, isto é, as informações acerca deles é importante, principalmente no quesito de- que tem importância para esse sistema. Mas sempenho e qualidade do funcionamento. não apenas isso. A modelagem deverá prever Geralmente tem-se um servidor executando cada possível operação necessária para o sis- um SGBD e de acordo a necessidade de pro- tema a ser desenvolvido. Um banco de dados BANCO DE DADOS 285mal modelado pode acarretar em sérios pre- aplicada. A partir do modelo lógico o qua- juízos para a empresa. dro muda, pois a tecnologia passa a ditar A modelagem é divida em três partes. A as regras do desenvolvimento, tornando o parte inicial é independente do SGBD, ou modelo mais especificamente voltado para seja, o modelo é mais teórico a ponto de o SGBD. A Figura 9 retrata essa separação. não interferir na escolha da tecnologia a ser Mundo Modelo real lógico Esquema Esquema Requisitos conceitual lógico Esquema Modelo Modelo conceitual físico Independente do SGBD Dependente do SGBD Figura 9 Modelagem. Adaptado de: 2012, p. 33. Modelo conceitual lhido. Nesse caso, o modelo escolhido será o modelo Relacional. De acordo com Cougo Levantamento de requisitos é o nome dado à tarefa de analisar o ambiente, aplicar o conceito de abstração e transformar o re- Define-se como modelo lógico de dados sultado da análise em um modelo chamado (MLD) aquele em que os objetos, suas ca- de conceitual. Esse modelo cria o conceito, racterísticas e relacionamentos têm a re- isto é, as definições principais da empresa presentação de acordo com as regras de im- em relação à sua necessidade. É como se plementação e limites impostos por algum fosse um espelho da empresa, detalhando tipo de tecnologia. cada objeto importante dentro do ambiente Um exemplo nesse caso de uso do SGBD observado. De acordo com Heuser (2010, p. seria o MySQL ou Firebird, ambos traba- 25), o modelo conceitual é um "modelo de lham no modelo relacional e são amplamen- dados abstratos, que descreve a estrutura de te usados nas empresas. Para um melhor um banco de dados de forma independente entendimento, supõe-se que no estoque de de um SGBD particular". alimentos, além dos diversos tipos de ali- A técnica a ser aplicada no modelo des- mentos, sabemos que cada alimento tem te livro é o conceito de Entidade-Relacio- um fornecedor. namento, onde cada objeto importante do Uma simples representação lógica desse ambiente é chamado de Entidade. Realizar cenário seria que: os Alimentos possuem a modelagem de dados é muitíssimo impor- um código único, uma marca, um preço de tante antes mesmo de projeto do BD ser compra e um preço de venda. É obvio que idealizado. O próximo passo é a criação de não são apenas esses os atributos de um ali- um modelo lógico. mento, mas serve para o exemplo. Modelo lógico Modelando Diferentemente do modelo conceitual, Imagine o funcionamento interno de uma que contempla o ambiente da empresa e as agência bancária. Existem os clientes e as Entidades desse ambiente, o modelo lógico contas bancárias. Ambos são Entidade desse tem sua definição baseada no SGBD esco- ambiente, pois ambos são dados importan- 286 BANCO DE DADOStes que precisam ser armazenados para uso gura IO. Não se preocupe com detalhes, pois posterior. eles serão explicados em outro capítulo. Ficam então as duas Entidades: Clientes e Contas. Veja modelo abaixo exposto na Fi- Ambiente de uma agência bancária cliente nome 1 n Clientes Conta Corrente código código número CPF Modelo Conceitual Figura 10 Ilustração do Modelo ER. Este diagrama acima é o famoso modelo próximo passo é compreender o que conceitual Entidade Relacionamento. Está significa cada detalhe no modelo esboçado simplificado apenas para entender a criação acima, portanto, é necessário entrar nos con- do modelo conceitual com um exemplo de ceitos do Modelo Entidade Relacionamento. modelagem na prática. Ao observar mode- lo acima, não existe nada que indique qual tipo de SGBD vai ser utilizado. modelo MODELO ENTIDADE RELACIONAMENTO conceitual é apenas genérico, isto é, inde- MER pende do SGBD que será utilizado. Nesse exemplo da agência bancária, o que Introdução modelo conceitual acima está indicando é Este modelo conceitual foi criado na dé- que: cada de 70 por Peter Chen e se tornou um No ambiente existem Cliente e Contas padrão mundial amplamente utilizado até Corrente agora. De acordo com Cougo (1997, p. 33), Um Cliente pode ter várias Contas Corren- "este modelo, após sua divulgação e ampla te aceitação, passou a ser considerado como um referencial definitivo para o processo de Já o modelo lógico é mais específico para modelagem de dados". cada metodologia o modelo relacional foi o escolhido para este caso. Para representar o Este modelo conceitual possui um esque- modelo relacional são utilizadas as tabelas. ma já bem definido de representação. Por o modelo lógico reflete a estrutura real do ser um modelo conceitual, está mais próxi- SGBD, por conta disso vamos exemplificar mo do mundo real do que do computador abaixo as Entidades conforme o diagrama propriamente dito. Por isso "mesmo as téc- acima. nicas de modelagem Orientada a Objetos, Para modelo lógico, ter-se-á a seguinte que tem surgido nos últimos anos, como a UML, baseiam-se nos conceitos da aborda- estrutura para o banco de dados: Serão duas tabelas dentro do BD: Clientes gem ER". Heuser (2009, p. 34). e ContaCorrente. modelo ER é representado através da criação de um desenho, cujos elementos Clientes: procuram definir e representar a realidade (cod_cliente, nome_cliente, cpf_cliente) dos objetos observados como, por exemplo, ContaCorrente: seu nome e seus atributos. De acordo com (cod_cc, cod_cliente, num_cc) Heuser (2009, p. 34), "geralmente, um mo- BANCO DE DADOS 287delo ER é representado graficamente através Empresa XYZ de um diagrama entidade-relacionamento estoque (DER)". Clientes Fornecedores Função Elementos do mundo real Produtos Funcionários ? Todo o desenvolvimento do modelo ER inicia através da abstração em um ambiente Figura 11 Ilustração dos objetos da empresa XYZ. qualquer. Para um melhor e mais rápido aprendiza- do, supõe-se então que haja um ambiente Entidade de um estoque do mundo real. Este estoque Os objetos importantes do ambiente da faz parte de uma empresa de alimentos que empresa XYZ são chamados de Entidades. vende tanto no varejo quanto no atacado. "O conceito fundamental da abordagem ER estoque armazena todo tipo de produto ali- é o conceito de entidade". Heuser (2009, mentício, ou seja, são diversos fornecedores p. 34). Foi marcado em negrito proposita- que supre o estoque desse mercado. Vários damente os nomes acima para chamar a funcionários são responsáveis pelo estoque atenção. A interrogação dentro da FIGURA e cada um desses funcionários tem uma X.X.II serve apenas para ilustrar que sempre função específica. Suponha que o nome da poderá haver outras entidades e que tudo de- empresa fictícia seja XYZ. pende da real necessidade do sistema a ser Até agora toda a descrição acima foi ape- construído. nas explicando o que é a empresa XYZ. Para fazer a análise desse sistema conforme foi Os "objetos" do mundo real são os seres, visto na aula I, é necessário abstrair os ob- os fatos, as coisas, e os organismos sociais. jetos importantes desse ambiente. Lembre- Como a seres e organismos não se dá nor- -se que os objetos importantes são aqueles malmente a denominação de "objetos", usaremos a palavra entes para designá-lo. cujos dados precisam de alguma maneira Uma entidade é uma abstração (isto é, um ser armazenados dados para uso posterior. modelo puramente mental) de um ente Por exemplo, faça a seguinte pergunta: Vou existente no mundo real. utilizar os dados dos alimentos? A resposta De acordo com Setzer e Silva (2012, p. é sim, pois toda operação de compra e ven- 9;22): da será feita com os produtos. Basicamente é o processo de entrada e saída de produtos As entidades podem ser inúmeras coisas de um estoque. Mesmo se um estoque for de um ambiente. Entretanto, para designar controlado manualmente com uma planilha um ente (objeto) como de fato uma entida- e uma caneta, haverá entrada e saída de mer- de saiba que "como objetivo de um mode- cadorias. lo ER é modelar de forma abstrata um BD, A diferença nesse caso é que você como interessam-nos somente os objetos sobre os analista está modelando com o intuito de quais deseja-se manter informações". Heuser criar um BD para automatizar o processo (2009, p. 34). dentro da empresa. Ou seja, ao invés de No caso da empresa hipotética XYZ, veja riscar uma informação com a caneta numa porque os entes escolhidos são importantes planilha, você faz uma alteração do produto manter informações: no sistema alterando a sua quantidade acres- Produtos centando ou removendo. Basicamente é o cerne da empresa, afi- Continuando com a análise, observe a Fi- nal a maioria das operações serão reali- gura II onde são destacados os objetos im- zadas com os produtos. Compra, venda, portantes da empresa XYZ. troca, emissão de notas fiscais, histórico 288 BANCO DE DADOSde compra, histórico de venda. Definiti- MODELO ER ENTIDADES E vamente os produtos precisam ser arma- RELACIONAMENTOS zenados. Reforço às entidades Clientes Sem clientes não é possível emitir notas A aula 6 foi uma introdução ao modelo fiscais e nem vender produtos. A lista ER (entidade-relacionamento). tema foi dos clientes contendo seus dados é extre- abordado de forma bastante explicativa com mante importante para o funcionamen- a simulação hipotética de uma empresa real. to da empresa. Por conta disso os dados A entidade é tudo no ambiente que precisa precisam se armazenados. ser tratado no sistema. Sempre veja a entida- de como algo imprescindível que não pode Fornecedores faltar para o sistema funcionar. Os produtos naturalmente são distribu- A visualização de uma entidade no am- ídos por um fornecedor e no caso dessa biente pode ser física ou abstrata, ou seja, há empresa de alimentos, os fornecedores coisas no ambiente que realmente existem são diversos. É preciso manter uma lis- fisicamente, por exemplo, o estoque, os fun- ta de todos os fornecedores, bem como cionários. E outras partes do ambiente são seus dados atualizados. Ou seja, mais elementos organizacionais que melhoram a dados para serem armazenados. estrutura do BD e consequentemente do sis- Funcionários tema, por exemplo, funções. Você não pode Os funcionários é a força operacional tocar em uma função da mesma maneira que move a empresa e faz tudo aconte- que se toca em um produto ou funcionário. cer. É extremante importante manter os Entretanto a função é importante para deter- dados de todos os funcionários, até por minar que tipo funcionário cada pessoa seja que o acesso ao sistema será monitora- dentro da empresa. Em uma grande empre- do. Histórico de acesso e histórico de sa existem vários níveis de cargos que são operações será um dos dados guardados atualizados à medida que os funcionários no BD. vão evoluindo em suas funções. Isso pode Função ser usado, inclusive, para gerenciar o tipo de acesso que determinada função pode exercer É interessante manter informações so- sobre o sistema. Um funcionário júnior não bre as funções desempenhadas na em- pode ter os mesmos poderes de um funcio- presa. Aparentemente talvez essa en- nário sênior e vice-versa. tidade não faça muito sentido, porém As entidades no modelo ER são represen- quando for criar o BD de fato, tudo fará tadas por um retângulo e dentro do retân- mais sentido. gulo encontra-se nome da entidade. Como Nesse cenário abstraído da empresa XYZ em uma empresa podem existir várias enti- talvez haja outras entidades que não foram dades, vários retângulos podem aparecer em citadas aqui. Tente pensar em outros fatores um mesmo modelo ER. Veja a Figura que que envolvem armazenamento de informa- retrata entidades de um ambiente escolar. ções nesse caso. É bom para exercitar. Entendido sobre as entidades próximo passo é aprofundar no modelo ER. Novos entidades ambiente de uma escola conceitos serão incorporados ao que já foi passado, por exemplo, relacionamentos, Alunos Disciplina atributos dentre outros. Por hora apenas o conceito de entidade é suficiente para iniciar a análise em qualquer ambiente. Entender Professores Turmas muito bem esses conceitos é essencial para qualquer profissional da área. Figura 12 Entidades. BANCO DE DADOS 289Nessa figura, apenas algumas entidade Professores lecionam para as turmas do ambiente estão sendo destacadas. A de- Foram utilizados dois verbos nos relacio- pender da necessidade, outras entidades namentos para ficar claro no entendimento poderão surgir. Contudo o modelo ER não se define apenas em exibir as entidades no que o que ocorre entre as entidades é prati- diagrama. Estas entidades possuem outras camente uma ação, ou seja, as entidades se propriedades que são deveras importantes. relacionam em forma de interação. No entan- to, referente ao uso do verbo, poderá haver a Relacionamentos seguinte alteração: Ao invés de usar um ver- bo, use um substantivo. Veja a diferença na Ao observar a Figura o analista pode Figura 14. perceber que existe alguma relação entre os alunos e as disciplinas, entre os profes- sores e as turmas, entre os professores e as modelo ER ambiente de uma escola disciplinas e assim por diante. É sobre esse conceito chamado de relacionamento e com base na estrutura no BD, que o analista vai Alunos Realização Disciplina definir quais relacionamentos haverá entre as entidades. Os relacionamentos são im- portantes para manipular os dados de acor- Professores Ensino Turmas do com dinâmica da empresa. Para representar o relacionamento é usado Figura Modelo de ER. o losango com o nome do relacionamento internamente. Geralmente o nome contido no losango faz referência ao tipo de associa- que muda na figura acima na verdade ção entre as entidades. Veja o exemplo da é apenas a visão que o analista tem da asso- escola na Figura ciação entre as entidades. que alterou nas propriedades do modelo ER foram os rela- modelo ER cionamentos e a sua visualização. As mu- ambiente de uma escola danças foram: Alunos Cursar Disciplina Relacionamentos: Realização; Ensino. Associação: Professores Alunos realizam a disciplina Lecionar Turmas A disciplina é realizada por alunos Figura 13 Exemplos de relacionamentos no MER. Professores ensinam para as turmas As turmas são ensinadas pelos professo- Nesse exemplo, existem quatro entidades res e ocorrem dois relacionamentos. relacio- namento interliga as entidades por meios Aparentemente as associações foram al- das setas. Para explicar mais detalhadamen- teradas, mas na verdade não. Através dessa te separam-se as propriedades do modelo nova maneira de representar, o analista pode verificar a AÇÃO em ambos os sentidos. Isso Entidades: Alunos; Disciplinas; Professo- denota a importância que a associação entre res; Turmas. as entidades escolhidas tem para o sistema Relacionamentos: Cursar; Lecionar. em si. modelo ER precisa refletir a real ne- Associação: cessidade do negócio que será operado pela Alunos cursam a disciplina empresa. 290 BANCO DE DADOSMODELO ER RELACIONAMENTO E maiúsculo e um verbo é utilizado para en- SEUS TIPOS tender que tipo de relação ocorre entre as entidades: Um CLIENTE compra um PRODUTO. Os relacionamentos e suas características Um FORNECEDOR vende um PRODU- TO. Um relacionamento não ocorre aleatoria- mente, ou seja, deve haver uma real neces- Um FUNCIONÁRIO trabalha no ESTO- sidade de duas ou mais entidades se relacio- QUE. narem para produzir um resultado. Através Um PROJETO usa um COMPUTADOR dos relacionamentos sabe-se qual a caracte- Em todos esses casos de relacionamento, rística do BD e como ele vai gerir os dados o ideal de acordo com Setzer e Silva (2012, armazenados. p.34) é usar "um substantivo derivado do Utilizando o mesmo exemplo da escola, verbo que indica a ação permitida pela asso- abordado na aula anterior, é possível deter- ciação entre entes representada pelo relacio- minar que: namento". Se o nome atribuído ao relaciona- 1. Os alunos se relacionam com as discipli- mento for bastante pertinente à realidade de nas, afinal não existe aula se não houver operação entre as entidades, mais fácil será a uma disciplina. E se houver uma discipli- interpretação do modelo ER, especialmente na, mas não alunos, para que a disciplina? para outros analistas. 2. Os professores se relacionam com as tur- mas, o que significa que sem turma, não há necessidade de um professor. Da mes- Tipos de relacionamento ma maneira que sem a figura do profes- As entidades podem se relacionar de várias sor para ensinar, qual o sentido de haver maneiras. Umas as outras ou até mesmo uma turma? pode existir um autorrelacionamento Para Muitos outros exemplos podem ser dado explicar o conceito será usada uma simples para justificar os relacionamentos entre as notação que em alguns livros é chamada de entidades de um sistema. Observe a seguin- cardinalidade e em outros de multiplicidade. te lista, onde as entidades são colocadas em A notação será 1:1; 1:N e N:N. Tabela 2 Notação para relacionamento Notação Significado Exemplo 1:1 Relacionamento um para um Uma pessoa só pode um CPF 1:N Relacionamento um para muitos Uma pessoa pode ter vários cargos N:N Relacionamento muitos para muitos Várias pessoas podem ouvir várias músicas Chamem de ocorrência entre as entidades Para cada ocorrência da entidade A pode todas as associações feitas entre elas. Vários haver várias ocorrências da entidade B e exemplos foram dados acima. Veja a expla- para cada ocorrência da entidade B have- nação a respeito de cada relacionamento. rá apenas uma ocorrência da entidade A Observe o diagrama na Figura 15. N:N Relacionamento muitos para muitos 1:1 Relacionamento um para um Para cada ocorrência da entidade A pode Para cada ocorrência da entidade A have- haver várias ocorrências da entidade B e rá apenas uma ocorrência da entidade B Para cada ocorrência da entidade B pode e vice-versa haver várias ocorrências da entidade A 1:N Relacionamento um para muitos BANCO DE DADOS 291Uma notação bastante utilizada para exibir 1 1 Entidade A Ocorrência Entidade B a cardinalidade de um relacionamento é de- nominada de pé de galinha. São simbologias 1 N bastante simples que refletem o mesmo sig- Entidade A Ocorrência Entidade B nificado da Figura Segue abaixo o modelo exibido na Figura 16. N N Entidade A Ocorrência Entidade B Figura 15 Tipo de relacionamento ou cardinalidade. Relacionamento 1 : 1 (um para um) 1 1 Relacionamento 1 : N (um para muitos) 1 K N Relacionamento N : N (muitos para muitos) N K N Figura 16 Notação pé de galinha. Além dos relacionamentos acima, existe Uma pessoa só pode ser casada com ape- outro tipo em particular chamado de au- nas outra pessoa torrelacionamento. Nesse caso a entidade se relaciona através de uma associação que FUNCIONÁRIOS retorna para a própria entidade. Veja alguns exemplos na Figura 17 e Figura 18. 1 N é supervisionado N compõe Supervisão PEÇAS Fabricação N são componentes de Figura 18 1 casa Na Figura 18 pode-se descrever da seguin- PESSOAS Casamento te forma: 1 Para a entidade FUNCIONÁRIOS e o rela- é casado(a) cionamento Supervisão: Figura 17 Auto-relacionamentos Um funcionário supervisiona vários ou- tros funcionários Na Figura 17 pode-se descrever da seguin- Vários funcionários são supervisionados te forma: por um funcionário 0 Para a entidade PEÇAS e o relacionamen- to Fabricação: Em um modelo ER completo, os diversos tipos de relacionamento bem como a sua Uma peça compõe outra peça em sua cardinalidade serão expostos em conjunto fabricação para refletir a totalidade do sistema assim Várias peças são componentes de uma como a sua forma de operação. A maneira peça fabricada com que as entidades serão dispostas no Para a entidade PESSOAS e o relaciona- diagrama será o modelo de referência para a mento Casamento: criação da base de dados. Uma pessoa só casa com uma pessoa 292 BANCO DE DADOSSGBD estará preparado para atender a Atributos todas as requisições e operar de acordo com Outro detalhe importante que pode e deve os esquemas definidos pelo analista respon- ser observado durante as análises são os sável pela criação do BD. Por isso a impor- atributos de cada entidade, isto é, as suas ca- tância de um modelo bem delineado e bem racterísticas. De acordo com Setzer e Silva formado, pois um modelo mal feito pode (2012, p.34): levar o sistema e até a empresa à bancarrota. A representação de um ente do mundo real MODELO ER TIPOS DE como uma entidade, isto é, como um ponto RELACIONAMENTO E ATRIBUTOS de um conjunto abstrato, não é de grande valia se não associarmos a esse ponto os da- Dentre os vários tipos de relacionamentos dos de interesse, denominados de atributos e também as várias características já vistas que desejamos guardar sobre o ente. sobre eles, ainda existe outro relacionamen- to bastante usado onde três entidades se re- Cada entidade tem suas próprias caracte- rísticas (atributos), cuja representação den- lacionam ao mesmo tempo. Pra simplificar tro do modelo ER é importante na trans- o conceito será usado um exemplo que lem- bra um casal na vida real. ferência para o modelo relacional. Esses atributos são detalhes referentes a cada en- Suponha um determinado modelo ER tidade que de acordo com (2012, para um ambiente doméstico onde vivem p. 33), "achamos importante registrar". um casal e seus 20 filhos. As três entidades Todos os atributos são representados por um serão: PAI, MÃE e FILHOS. relaciona- círculo com o nome do atributo dentro e uma mento a ser usado é a procriação para desig- seta indicando para qual entidade ele serve. As nar que os filhos foram gerados pelo casal, entidades podem ter inúmeros atributos que a ou melhor, pelo relacionamento entre eles. representem. Observe a Figura que representa o seu modelo ER. Um atributo é algo específico da entidade. Tomando o exemplo da empresa de estoque Veja agora as possíveis associações e o en- XYZ, que comercializa alimentos, qualquer tendimento por trás do exemplo: alimento tem um nome, uma marca, um 1. Não existe procriação se não houver um fornecedor e um preço. Todos estes são atri- pai e uma mãe. butos/características de cada alimento indi- vidualmente. E se o analista estiver certo de 2. Vários filhos gerados que tem um pai, que todo alimento tem essas características, também tem uma mãe. então com certeza o atributo é importante. 3. Vários filhos gerados que tem uma mãe, Veja um simples exemplo com um autorre- também tem um pai. lacionamento na Figura 20. 4. Todo e qualquer filho gerado terá apenas nome um pai e uma mãe. E sempre haverá pelo cargo FUNCIONÁRIOS menos um pai e uma mãe para cada filho. código CPF 1 N é supervisionado Supervisão 1 1 PAI Procriação MÃE apenas um pai apenas uma mãe Figura 20 Autorrelacionamento com atributos. pode gerar vários filhos Basicamente os atributos são característi- N cas que identificam e representam o próprio objeto (entidade). Toda entidade do ambien- FILHOS te possui as suas características e essa é uma das provas de que realmente o elemento abs- Figura 19 Relacionamento BANCO DE DADOS 293traído do ambiente seja de fato uma entida- seus atributos serão definidos de acordo às de, ou seja, significa que tais informações, entidades envolvidas. isto é, seus atributos, precisam ser armaze- nados. Um atributo também reflete uma caracte- Valor e tipo do atributo rística intrínseca da entidade. Por exemplo, Sabe-se que os atributos têm um valor es- ao pensar na entidade PESSOA, sabe-se que pecífico e um tipo de dado que será utilizado toda e qualquer PESSOA tem um nome. En- nesse atributo. Pegue o exemplo da Figura tretanto, quanto ao atributo, não está sendo 21. tipo de dado que servirá para repre- discutido aqui seu valor (se é João ou José), sentar o prazo serão valores numéricos. E mas sim que ele existe e é característica da o valor para a numeração do prazo será de entidade, ou seja, todo entidade desse tipo acordo ao fornecedor. Um exemplo seria 30, (nesse exemplo é PESSOA) tem o atributo 60, ou para representar a quantida- nome. de de dias de prazo. Os atributos quantidade Usando o exemplo da empresa de alimen- e preço também usariam números, porém tos XYZ, pode-se dizer que todo e qualquer com um único diferencial, os preços usam alimento dentro do estoque possui um casas decimais. Além desses tipos, pode ha- nome, um fornecedor, uma marca, um preço ver textos, datas etc. de compra, um preço de venda, uma data de fabricação, um prazo de validade, um peso e um código de barra. Note quão numeroso DIAGRAMA ENTIDADE pode ser os atributos de uma entidade. Há RELACIONAMENTO DER casos em que até o relacionamento tem seus atributos. Mesmo aqui, não estão falando do valor de cada atributo, mas que todo alimen- to possuirá todos aqueles atributos listados Introdução acima. Toda modelagem de dados, especificamen- Observe abaixo a Figura 21 para um te no modelo Entidade-Relacionamento (ER) exemplo de relacionamento com atributos. é representado através de um diagrama. As figuras das aulas anteriores podem ser con- N N sideradas como um diagrama Entidade-Re- Materiais Fornecimentos Fornecedores lacionamento ou DER. DER é formado pelas entidades, relacionamentos e atribu- prazo preço quantidade tos. DER é utilizando amplamente na aná- lise de sistemas, pois sua capacidade de de- Figura 21 Relacionamento com atributos. Adaptado de: monstrar um ambiente é decerto adequada 2012, p. 38. para propósito que foi criado. De acordo que pode ser conferido na Figura 21 com DATE (2004, p. 358) eles "fornecem é que o prazo, o preço e a quantidade de- um meio simples e fácil de entender para pendem diretamente das outras duas en- comunicar os aspectos principais do proje- tidades. Ou seja, para estabelecer um pra- to de qualquer banco de dados". Observe na zo, um preço ou a quantidade, depende Figura 22 abaixo a representação de um sis- do material e também do fornecedor. Um tema de uma imobiliária usando o modelo fornecedor pode dar 30 dias de prazo para de diagrama ER. pagamento, já outro pode oferecer 60 dias sobre o mesmo produto. Nesse caso mudou o fornecedor e alterou o prazo, porém o ma- terial permaneceu o mesmo. Haverá várias outras situações em que relacionamento e 294 BANCO DE DADOSser elaborado em conformidade com a neces- Proprietário Contacta Corretor sidade do sistema. Lembre-se que uma boa n:n modelagem significa a construção de um BD Possui 1:n consistente e bem estruturado. Atende 1:n Imóvel Aluga Inquilino Representação Toda entidade deverá ser identificada por Figura 22 MER Sistema de Imobiliária. Adaptado um retângulo, todo relacionamento será de: http://www.devmedia.com.br/modelo- identificado com um losango e todo atributo usará uma elipse. As ligações são feitas usan- relacionamento-der/14332. do setas simples. Existe uma característica peculiar para o que pode se abstrair desse DER é que existe uma lógica no funcionamento do sis- atributo que é a condição de identificador. atributo identificador de entidade é aque- tema. E podem ser destacadas as seguintes le "cujos valores servem para distinguir uma características e associações: ocorrência da entidade das demais ocorrên- As quatro entidades encontradas nesse cias da mesma entidade" (Setzer e Silva, 2012, DER são: PROPRIETÁRIO, CORRETOR, p. 50). Por exemplo, imagine uma entidade VEL, INQUILINO. PESSOA. Qual seria um atributo de uma pes- Os quatro relacionamentos encontrados soa no mundo real que a identifica? A prin- nesse DER são: Contacta, Atende, Aluga e cípio você pode pensar que seja o nome da pessoa. Essa escolha seria adequada caso não Vários proprietários entram em contato houvesse nenhum outro nome igual, o que é com vários corretores; improvável. Dessa forma, o atributo mais ade- proprietário possui vários imóveis quado para ser o identificador de uma pessoa é CPF, pois ele é exclusivo de cada pessoa, Vários corretores atendem vários inquili- ou seja, ele é único. Existem várias formas de nos representar a atributo identificador. Veja dois Vários inquilinos alugam um imóvel modelos bastante usados na Figura 23. Observe atentamente que a cardinalidade deve ser respeitada, pois o DER é a repre- sentação lógica da estrutura de um banco de N N dados. IMÓVEL Aluguel INQUILINO o diagrama entidade relacionamento é telefone criado posteriormente ao modelo ER ser de- VALOR senvolvido. Assim como o modelo ER reflete ENDEREÇO nome ambiente físico com todos os seus objetos, o COD_IMOVEL cpf DER reflete e representa a estrutura do banco Atributo identificador de dados, bem como as características do seu funcionamento. Figura 23 Atributo identificador. A partir desse ponto já é interessante ter um olhar de desenvolvedor abstraindo que Esse identificador único será chamado pos- as entidades desse ambiente terão dados ar- teriormente de chave primária. Toda entidade mazenados no BD e que as informações so- deverá ter uma chave primária, afinal cada bre cada entidade, isto é, seus atributos, são ocorrência da entidade é única. Suponha que pertinentes para o fluxo correto das informa- uma montadora de veículos X monte cerca de ções dentro do sistema. Atente que o DER é 20 carros XY por dia. É óbvio que os carros a representação do próprio BD, por isso deve são do mesmo modelo, marca e tem as mes- mas configurações, porém também é notório BANCO DE DADOS 295que cada carro é diferente do outro. Ou seja, análise de uma forma bem simples, tem-se dos 20 carros XY feitos diariamente, apesar o seguinte: de todas as suas características semelhantes, As entidades desse ambiente são: CLIEN- cada veículo é único. Nesse caso do veículo, TES, FORNECEDORES, PRODUTOS, FUN- o atributo chave primária é o chassi. CIONÁRIOS, FUNÇÃO. As operações que a empresa faz são: com- pra e venda e mercadorias, controle de es- Caso da empresa XYZ toque, contato com clientes e fornecedores. Imagine agora caso daquela empresa de Tendo abstraído as partes relevantes desse alimentos XYZ. Sabe-se que a empresa tem ambiente, segue-se ao DER para representar um grande estoque variado de alimentos e a estrutura lógica para o BD. várias operações são efetuadas. Fazendo a Empresa XYZ N Exerce N Função Funcionários N N Contato Fornecedores N gerenciar Atende N N Clientes Compras Produtos N N marca nome cpf preço COD_cliente cod Figura 24 Diagrama Entidade-Relacionamento o diagrama não tem um padrão de tama- modelos conceituais foram vistos. A grande nho ou complexidade nos diferença em relação aos outros modelos já Tudo depende do tipo de empresa que está vistos é que este modelo é computacional, sendo analisada, do tipo de BD que será ou seja, já é voltado para um tipo específico construído e principalmente da necessidade de tecnologia. De acordo com Setzer e Silva do sistema. Dentro de um mesmo ambiente (2012, p III), MR é "um modelo de dados pode ter mais de uma analise, isso depende- que permite a representação dos mesmos rá mesmo do contexto da aplicação. em um computador". modelo relacional se tornou um padrão utilizado mundialmente pelas suas MODELO RELACIONAL MR ticas. A forma de organizar os dados em tabe- las, os relacionamentos que podem ser feito entre as tabelas, o uso de menos espaço para armazenamento e maior velocidade no pro- Introdução cessamento faz desse modelo uma evolução modelo relacional (MR) foi criado na dé- poderosa em relação ao modelo não relacional. cada de 70 e ainda é o modelo mais utilizado nas tecnologias de banco de dados. De acor- do com Date (2004, p. 93) "a base da mo- Tabelas derna tecnologia de banco de dados é, sem dúvida, o modelo relacional: é essa base que As tabelas são partes que definem a es- faz da área uma ciência". Até agora apenas trutura lógica de um SGBD no modelo re- lacional. Elas são um modo de organizar os 296 BANCO DE DADOSdados por meio de uma estrutura de linha e Lembre-se de que quando foi falado sobre colunas que se assemelham a uma planilha. atributo identificador, foi para dizer que cada De acordo com (2012, p. 52): linha é uma entidade e que é única. Isso quer dizer que apesar da entidade ser do Uma tabela no MR é composta por uma co- mesmo tipo, todas são diferentes por conta leção não ordenada de linhas, em que cada linha corresponde a uma entidade e a cole- desse atributo identificador. A entidade pode ção de linhas corresponde a um conjunto na verdade ser chamada de um conjunto de de entidades do MER (modelo Entidade- entidades onde cada entidade é diferente da -Relacionamento). outra. Veja uma representação na Figura 25. Ocorrências da entidade profissão A entidade PROFISSÃO PROFISSÃO (professor) conjunto de entidades PROFISSÃO (médico) profissão nome código PROFISSÃO (engenheiro) Figura 25 Conjunto de entidades. Análise atentamente na Figura 25 que a Tabela 3 Tabela de profissões princípio uma entidade foi abstraída do am- codigo nome salario biente e ela se chama PROFISSÃO. Sabe-se 12 professor 1990,00 que existem várias profissões distintas, po- 23 Médico 3590,00 rém todas elas continuam sendo uma profis- 47 engenheiro 4930,00 são. Fazendo a analogia, o conjunto de pro- fissões representa o conjunto de entidades que naturalmente será do mesmo tipo da entidade inicial. Dessa forma, para melhor Linhas ou tuplas compreensão, imagine o sistema de vendas As linhas ou também chamadas de tuplas de alimentos. Todos os alimentos são dife- em muitas literaturas, representam cada re- rentes, porém mesmo assim todos continu- gistro de uma tabela contemplando todos os am sendo alimentos. campos da tabela. Esses campos são os atri- A essa altura você pode estar pensando butos de cada tabela, isto é, os mesmo atri- que cada entidade será transformada em butos que são escolhidos para as entidades uma tabela no BD. Essa afirmação tem fun- quando é feito o DER. Por isso a importância damento, afinal as entidades são os elemen- de uma modelagem bem feita, pois qualquer tos importantes que se pretende armazenar. erro será automaticamente refletido nas ta- Entretanto a depender do tipo de sistema e belas do BD. do fluxo da informação dentro do sistema, No exemplo da tabela de profissões, ela é poderá haver um DER mais complexo. composta por três campos, a saber, [codigo, Esses conceitos são importantes para nome e salario]. Não foi colocado acentuação compreender que cada ocorrência distinta nas palavras por que ao utilizar uma lingua- de uma entidade representa uma linha de gem para construir o BD, as palavras não registro da tabela. Veja a tabela abaixo onde levarão acentos. Uma tabela pode ter vários cada linha tem o registro de uma profissão. campos, tudo dependerá do tipo de tabela, Observe também que cada linha tem um có- ou melhor, do tipo de entidade e informação digo que é único e distinto dos demais: que será armazenada. BANCO DE DADOS 297Tipos e valor Chave candidata, chave primária e chave Ao observar o conteúdo da Tabela 3 e da estrangeira Figura 25 é possível notar que as informa- conceito de chave é um dos principais ções possuem um tipo específico de dado. no desenvolvimento das tabelas no MR, pois Na Tabela 3 o código representa uma série as chaves são responsáveis por criar uma de números [12; 12; 47]. Já nome são textos estrutura lógica de relacionamentos entre [professor; médico; e o salario as tabelas. Esse conceito é tão importante, também são números [1990,00; 3590,00; pois de acordo com Cougo (1997, p. 162), 4930,00], porém com casas decimais. Os "não poderão existir dois elementos iguais campos de toda tabela são de um tipo de em uma relação". É através da chave que se dado e os dados que serão armazenados só define isso, pois mesmo se houver dez cam- poderão ser daquele tipo preestabelecido. pos iguais em duas linhas, o campo que for Um campo pode armazenar textos, núme- chave primária jamais será repetido. ros, data, hora dentre outros. A chave candidata de uma tabela é basica- A informação armazenada em qualquer mente um ou mais atributos que tem bas- campo é chamada de valor. Todo atributo tante chance de se tornar uma chave primá- poderá ter um valor como também poderá ria. Isso pode ser verificado no momento da ser vazio ou nulo. Os valores de um campo análise ao perceber que algumas das entida- possuem um tipo, então pode-se dizer que des obtidas tendem a não se repetir, ou seja, as tabelas possuem linhas, cujos atributos serem possuem um tipo e um valor. A chave primária, ou do inglês, primary key (PK), é a chave da própria tabela, isto é, a chave que identifica que as linhas da tabela Colunas a qual ela pertence serão única. "Uma chave As colunas são os atributos de uma deter- primária é uma coluna ou uma combinação minada tabela. As colunas também são par- de colunas cujos valores distinguem uma li- nha das demais dentro de uma tabela". Heu- te importante na construção das tabelas. Se não houver colunas não haverá tabela, entre- ser (2009, p. 122) tanto poderá existir uma tabela sem linhas A chave estrangeira, ou do inglês, foreign (registros). Quantas mais colunas, maiores key (FK), é a chave que faz referência a uma chave primária em outra tabela. "Uma cha- serão as tabelas, ou seja, quanto mais atribu- tos um entidade tiver, mais colunas a tabela ve estrangeira é uma coluna ou uma com- binação de colunas, cujos valores aparecem terá. Isso significa que os atributos da enti- necessariamente na chave primária de uma dade no DER se transformam em colunas tabela". Heuser (2009, p. 122). no esquema do BD. Se tiver uma entidade AGENDA, inúmeros campos de vários tipos podem ser criados. Veja isso na Figura 26. INTRODUÇÃO À NORMALIZAÇÃO agenda Nome do campo Tipo de dados codigo Numeração Automátic Introdução nome Texto email Texto A normalização é um procedimento de or- endereco Texto bairro Texto ganização e melhoramento das tabelas. con- cidade Texto uf Texto ceito de normalização data de muito tempo e cep Texto é grandemente utilizado no desenvolvimento telefone Texto celular Texto de banco de dados. A normalização não é im- aniversario Data/Hora posta como uma regra, mas é uma proposta de eliminar possíveis anomalias em um banco Figura 26 Tabela da entidade AGENDA. de dados. 298 BANCO DE DADOSObtido esquema relacional correspon- Tabela 4 Tabela de produtos dente ao documento, passa-se ao processo código nome fornecedor de normalização. Este processo baseia-se no conceito de forma normal. Uma forma 2 Ipad Apple inc. normal é uma regra que deve ser obedecida 17 Iphone 5 Apple por uma tabela para que seja considerada "bem projetada". 27 Mac Book Air Apple inc De acordo com Heuser (2009, p. 190): 37 Samsung G. Note Samsung A normalização está intimamente ligada 200 Notebook HZE Hewlett-Packard ao relacionamento que acontece entre as ta- 217 Netbook XY HP belas. Sabe-se que durante projeto de uma 247 Servidor HP AB Hewlett Packard BD, várias tabelas serão modeladas. E entre essas tabelas haverá várias ligações entre Ao analisar a tabela acima pode-se per- os seus campos. Nesse caso poderão exis- ceber alguns problemas. As três primeiras tir campos em comum, campos repetidos, linhas são produtos diferentes, porém pos- campos multivalorados ou compostos. suem a mesma marca. E no momento de Durante a modelagem conceitual já é pos- cadastro do produto, usuário do sistema sível inferir que algumas entidades que se não atentou para o que ele já havia digitado a tornarão tabelas terão que ser normalizadas respeito desse fornecedor. devido à quantidade de informações com- Observe que foram colocadas três opções postas. Lembre-se que apesar de existirem para a mesma empresa: regras para se chegar a uma forma normal, 1. Apple inc. ela não resolve todos os problemas que pos- 2. Apple sam surgir. A normalização passa a ser visto então como um meio importante de desen- 3. Apple inc // diferença no detalhes volver um BD bem projetado. são importantes Da mesma maneira ocorre para os três úl- timos registros, onde a empresa foi cadastra- Benefícios da com três opções diferentes. Se o gerente A normalização pode ajudar o analista a da empresa solicitar um relatório de entrada evitar diversos problemas na criação de uma da empresa HP, todos os outros produtos fi- base de dados. Um deles é a carão de fora, pois os registros com os outros onde várias informações idênticas são ar- nomes não farão parte dessa lista. Os nomes mazenadas de forma inconsistente. Por colocados para o fornecedor exemplo, imagine um estoque de alimentos 1. Hewlett-Packard diversos. Muitos alimentos serão do mesmo 2. HP fornecedor. No momento do cadastro desses alimentos um banco de dados não normali- 3. Hewlett Packard // diferença no ponto zado fará com que fornecedor seja cadas- As diferenças ou anomalias aqui notadas trado toda vez que um novo produto tam- podem parecer simples do ponto de vista bém o for. do usuário. Mas do ponto de visto técnico Isso geraria um problema posterior para e profissional, se trata de uma falha grave, a atualização do sistema, bem como para a pois como um gestor poderá tomar decisões sua manutenção. BD sofreria sérios pro- de compra ou venda a partir de um relatório blemas de inconsistência para manter todos impreciso e inconsistente. Dessa maneira esses registros repetidos desnecessariamen- ficam bastante visíveis os benefícios adquiri- te, além do armazenamento aumentar. Veja dos com o processo de normalização. a tabela abaixo. BANCO DE DADOS 299Anomalias no modelo ER tivalorados ou compostos. Por exemplo, em uma tabela de filmes, manter o nome e o gê- Muitas das anomalias que acontecem nos nero do filme em uma mesma coluna. Ou bancos de dados são refletidas sobre os con- ceitos de chave, relacionamentos e mau uso também registrar três filmes em uma mes- desses conceitos. É importante notar que ma linha. Isso geraria sérios problemas com o uso do atributo identificador como um os dados. Alguns exemplos de anomalias ou simples código é para facilitar a identifica- problemas que podem ocorrer são: ção para o usuário, ou seja, tornar código Problema de inserção transparente e de fácil entendimento. Isso A falta de dados impede a inclusão dos é chamado de boas práticas no uso de cha- registros ves. Já parou para refletir porque o CPF são Problema de exclusão números e não textos, o tombo de um livro Um relacionamento com outra tabela são sequências numéricas e várias outras impede a exclusão dos registros referências que são únicas, geralmente são representadas por números. Simplesmente Problema de alteração por que os números são fáceis de compreen- Um relacionamento com outra tabela der e abstrair. impede a alteração dos registros grande problema que pode ocorrer com Observe a tabela de locação abaixo que foi uma tabela durante ou depois da modela- chamada de "faz de tudo", que é um exem- gem é ela se tornar uma tabela "faz de tudo", plo de tabela não normalizada. isto é, uma tabela que contém campos mul- Tabela 5 Tabela "faz de tudo" Nome cpf nascimento filme preco Danilo 845611478 18/01/1977 mascara o Rei Leão Aventura Mogli Aventura Wagner 41231452 27/02/1997 Nárnia- Aventura Verônica e 78544222 e 6/10/1927 E.T. Terror 10,50 Roberta 121321321 16/12/1937 Amosca Terror Padre Terror Observe que a tabela acima possui os se- alguns problemas possam surgir após a sua guintes problemas: Na primeira linha, na realização. Normalizar tabelas muitas ve- coluna filme existem três registros, quando zes resultará em obter um maior número na verdade deveria ter apenas um filme por de tabelas, o que na prática faz com que o linha. Outra questão importante é que na SGBD caia no seu desempenho. Outra ques- luna de filme o campo é multivalorado, ou tão importante é que a normalização é feita seja, é preciso separar a informação. A so- através do processo de abstração, que pode lução para todos estes problemas é aplica o ser durante a modelagem ou após. E como conceito de forma normal, especificamente o processo é humano e não computacional, a IFN. pode ser que o analista não trate com bom senso e ocasione algum outro problema nos relacionamentos. Malefícios No fim das contas, apesar dos riscos, a Apesar de todos os benefícios proporcio- normalização é uma excelente ferramenta nados pela normalização serem extrema- para resolver problemas no BD. Basta saber mente úteis para sistema, é possível que usar e analisar os riscos. 300 BANCO DE DADOSNORMALIZAÇÃO E A PRIMEIRA FORMA possibilidades de inconsistências e menos NORMAL redundância de informação". Sabe-se que o relacionamento entre as ta- belas é executado por meio das chaves pri- que significa? mária e estrangeira. A normalização faz com que o funcionamento do BD seja consistente A primeira forma normal (IFN) surgiu em relação aos registros associados por cha- como uma regra para resolver problemas ves entre as tabelas. E por isso é importante de tabelas como a exposta na aula anterior. normalizar uma tabela, pois o processo aju- Vários registros inseridos na mesma linha da a "determinar com maior precisão certos e vários dados inseridos na mesma coluna. tipos de restrições sobre atributos de uma Existem vários níveis de aplicação na norma- relação assim como a determinação das suas lização e eles são sequenciais. possíveis chaves". Guimarães (2012, p. 81) De acordo com Guimarães (2012, p. 81) esses conceitos da normalização "vão nos ajudar a projetar bases de dados com menos problema da tabela "faz de tudo" Tabela 6 Tabela não normalizada "faz de tudo" Nome cpf nascimento filme preco Danilo 845611478 18/01/1977 mascara ficção 3,00 0 Rei Leão Aventura Mogli Aventura Wagner 441231452 27/02/1987 Nárnia Aventura 4,00 Verônica e 78544222 e 06/10/1937 16/12/1940 E.T. ficção 10,00 Roberta 121321321 Alien Terror Padre Terror A primeira forma normal 1FN Transformando para a 1FN A primeira forma normal determina que Para transformar a Tabela 6 acima em cada linha da tabela deve conter apenas um uma tabela normalizada será necessário se- registro. E que cada célula deve conter ape- guir os seguintes passos: nas um dado (valor). De acordo com Heuser 1. Fazer cada linha conter um único registro (2009, p.190) quando uma tabela "não con- a) Colocar cada filme em uma linha dife- tém tabelas aninhadas" ela está na IFN. E de rente acordo com Setzer e Silva (2012, p. 297) se houver uma tabela "contendo uma ou mais 2. Fazer cada coluna armazenar apenas um colunas compostas ou multivaloradas, é de- dado (valor) nominada de não-normalizada". a) Separar Verônica de Roberta b) Separar o nome do filme de seu gênero Após essa transformação a nova tabela será representada da seguinte maneira: Tabela 7 Tabela na 1FN nome cpf nascimento filme genero preco Danilo 845611478 18/01/1977 mascara ficção 3,00 Danilo 845611478 18/01/1977 Rei Leão aventura 3,00 Danilo 845611478 18/01/1977 Mogli aventura 3,00 (continuação) BANCO DE DADOS 301Tabela 7 Tabela na 1FN (continuação) Wagner 441231452 27/02/1987 Nárnia aventura 4,00 Verônica 778544222 06/10/1937 ficção 10,00 Verônica 778544222 06/10/1937 Alien terror 2,00 Roberta 121321321 16/12/1940 Padre terror 2,00 que ocorreu após a normalização da ta- Basicamente a tabela aumentou, pois antes bela: havia apenas uma coluna e agora são 1. primeiro registro da tabela 6 foi trans- Isso realmente ocorre na normalização, o ta- formado em três linhas distintas fazendo manho das tabelas aumenta e a quantidade referência a apenas um filme por linha das tabelas também pode aumentar consi- deravelmente. Contudo, é necessário se as- a) Todos os três filmes foram locados para segurar que a normalização feita não afete a mesma pessoa fluxo das informações, nem as associações 2. mesmo ocorreu ao terceiro registro da requisitadas na análise. Ou seja, o processo tabela 6, porém como havia duas pessoas, de normalização, apesar de alterar a estrutu- foi necessário atribuir os filmes separan- ra lógica das tabelas e do BD, não deve alte- do os usuários. rar a seu esquema lógico. Simplesmente se o nome do filme preci- Feitas as devidas alterações, foi possível ob- sa estar de alguma forma associado ao seu ter uma nova tabela (ver tabela 7) normalizada gênero, necessariamente após normalizar a na IFN. tabela, a associação deverá permanecer, ain- da que outra tabela seja criada. A normalização não acaba por aqui, este Entendendo o que ocorreu na 1FN é apenas o primeiro passo. Ainda restam as Ao olhar apenas para a coluna que sofreu formas normais seguintes. detalhe que alteração, pode-se inferir que o atributo filme para seguir para a 2FN, a tabela deve obriga- não estava de acordo com as regras da IFN toriamente ter passado para a IFN. mantendo registro compostos e várias tuplas em uma mesma linha. Tabela 8 Transformação da coluna filme NORMALIZAÇÃO E A SEGUNDA FORMA NORMAL filme mascara Ficção Rei Leão Aventura Mogli Aventura que significa? Nárnia Aventura A segunda forma normal (2FN) é a sequ- Ficção ência da IFN e finalmente após essa trans- Alien Terror formação deverá ser verificado as condições Padre Terror estruturais da tabela, pois anomalias nas disposições dos dados e atributos podem filme genero ocasionar problemas nas operações entre as o mascara ficção mesmas. que fatalmente afetaria todo o Rei Leão aventura funcionamento do BD. Mogli aventura Estar na IFN não significa que todos os Nárnia aventura problemas foram resolvidos e é por isso E.T. ficção existe a 2FN, que propõe resolver problemas Alien de dependências entre os campos de uma ta- terror bela referente às suas chaves. Pode ocorrer Padre terror 302 BANCO DE DADOSalgumas vezes que uma tabela seja comple- normal quando, além de estar na IFN, não mente normalizada apenas aplicando a IFN, contém dependências A tabela ou seja, depois de passar para a IFN a tabela não deve possuir campos que dependam automaticamente estar normalizada em to- parcialmente da chave primária da tabela, ou das as FNs subsequentes. seja, os campos não chave devem depender exclusivamente da chave primária da tabela. A segunda forma normal 2FN Observe a Tabela 9. De acordo com Heuser (2009, p. 197), "uma tabela encontra-se na segunda forma Tabela 9 Tabela normalizada na 1FN locação id_loc cod_cli nome devolucao filme genero cod_filme 21 C1 Danilo 08/02/2013 mascara ficção F1 22 C1 Danilo 08/02/2013 Rei Leão aventura F2 23 C1 Danilo 08/02/2013 Mogli aventura F3 24 C4 Wagner 06/03/2013 Nárnia aventura F4 25 C5 Verônica 16/10/2013 E.T. ficção F5 26 C5 Verônica 16/10/2013 Alien terror F6 27 C7 Roberta 16/10/2013 Padre terror F7 Para obter a 2FN de acordo com Cougo nome depende exclusivamente do cod (1997, p. 203) é preciso: cli, ou seja, é uma dependência parcial da 1. Identificar as colunas que não participam chave. da chave primária da tabela 2. Para cada uma das colunas identificadas, Definindo os problemas analisar se seu valor é determinado por parte, ou pela totalidade da chave. Após a análise na tabela, os problemas en- contrados foram: 3. Para as colunas dependentes parcialmen- te da chave: Existem duas dependências parciais: Criar novas tabelas onde a chave primária Uma dependência para os campos [fil- será(ão) a(s) coluna(s) da chave primária me, genero]. original que determinou(aram) o valor da Uma dependência para o campo [nome]. coluna analisada. A partir do estudo feito sobre a tabela, de- Excluir da tabela original as colunas de- fine-se que duas novas tabelas deverão ser pendentes parcialmente da chave. criadas para resolver os problemas e trans- Ao analisar a situação da tabela 9 acima formá-la em uma tabela normalizada na para se aplicar ao modelo em questão, têm- 2FN. Por fim haverá três tabelas compondo -se as seguintes características: o modelo. A tabela tem uma chave composta por três Veja agora nessa Figura 27 a ilustração das colunas: dependências da Tabela 9: A devolucao depende das três chaves, ou seja, é uma dependência total. filme e o genero dependem apenas do cod_filme, ou seja, é uma dependência par- cial da chave. BANCO DE DADOS 303Representação de dependência da tabela de locação dependência total nome devolucao filme genero cod_filme dependência parcial dependência parcial Figura 27 Dependências na tabela. Transformando para a 2FN processo que exige raciocínio e de certa for- Agora que a tabela foi analisada, os pro- ma um bom senso. Efetuar um procedimen- blemas foram encontrados e delineados. Ve- to aleatoriamente na normalização pode oca- rificou-se que existe a necessidade em nor- sionar um mau funcionamento na própria tabela. Segue abaixo as representações e os malizar a tabela, pois a normalização é um detalhes das novas tabelas já na 2FN. Tabela 10 Tabela de locação na 2FN id_loc cod_cli cod_filme devolucao 21 C1 F1 08/02/2013 22 C1 F2 08/02/2013 23 C1 F3 08/02/2013 24 C4 F4 06/03/2013 25 C5 F5 16/10/2013 26 C5 F6 16/10/2013 27 C7 F7 16/10/2013 Observe na tabela IO (tabela de locações) cao] que depende de todas as chaves da ta- que agora só existe uma chave primária bela. Ou seja, não existe mais dependência [id_loc], duas chaves estrangeiras [cod_cli; parcial. cod_filme] e um campo não chave [devolu- Tabela 11 Tabela de filmes na 2FN cod_filme filme genero F1 mascara ficção F2 Rei Leão aventura F3 Mogli aventura F4 Nárnia aventura F5 E.T. ficção F6 Alien terror F7 Padre terror 304 BANCO DE DADOSTabela 12 Tabela de clientes na 2FN Esse é o momento para observar os cam- cod_cli nome pos não chave das tabelas. Existem casos, é C1 Danilo claro, que ao passar a tabela para 2FN já es- C4 Wagner teja também na 3FN. Contudo se esse não é C5 Verônica o caso da tabela, o processo de verificação e C7 Roberta ajuste deverá prosseguir. Nas tabelas II e todos os campos não A terceira forma normal 3FN chave dependem exclusivamente da chave primária de cada tabela. que significa que Existem algumas características a serem ambas também estão na 2FN por não apre- observadas em uma tabela para descobrir se sentarem dependências. esta possui os requisitos problemas necessá- rios para normalizar. De acordo com Heuser (2009, p. 200): Entendendo o que ocorreu na 2FN Tomando como base a tabela primitiva, Uma tabela encontra-se na 3FN quando, além de estar na 2FN, toda coluna não isto é, antes da percebe-se que houve chave depende diretamente da chave pri- uma grande evolução na estrutura lógica mária, isto é, quando não há dependências do modelo ao atingir a 2FN, o que refletiu funcionais transitivas ou indiretas. Uma em grandes mudanças como o surgimento dependência funcional transitiva ou indire- de duas novas tabelas. Com a 2FN, todas as ta acontece quando uma coluna não chave dependências parciais foram removidas da primária depende funcionalmente de outra tabela e se transformaram em novas tabe- coluna ou combinação de colunas não cha- las a partir de sua chave e seus campos de- ve primária. pendentes. Outro detalhe é que cada tabela Mais uma vez é importante destacar que agora depende exclusivamente de sua chave este processo exige do analista o bom senso primária, não havendo mais a dependência para executar uma tarefa que realmente te- parcial de um campo sobre a chave primária. nha sentido e se obtenha melhorias. traba- importante é saber que os problemas lho da normalização está mais voltado para o referentes às chaves foram resolvidos e um sentido organização do que obrigação. próximo passo deverá ser tomado, pois a Observe abaixo a Tabela que possui o normalização na termina na 2FN. campo que depende do cod_filme e do filme, ou seja, é uma dependência que pode facilmente ser solucionada pela 3FN. NORMALIZAÇÃO E A TERCEIRA FORMA NORMAL Tabela 13 Tabela de filmes cod_filme filme genero que significa? F1 mascara ficção F2 o Rei Leão aventura A terceira forma normal (3FN) é a terceira F3 Mogli aventura regra estabelecida por Codd para o modelo F4 Nárnia aventura relacional. Essa regra surgiu para resolver F5 E.T. ficção outro problema de dependência que não F6 Alien terror tinha sido resolvida com a 2FN. De acordo F7 Padre terror com Heuser (2009, p. 200) "na passagem à terceira forma normal, elimina-se outro tipo Outro exemplo simples seria uma tabela de redundância". de funcionários da seguinte maneira: BANCO DE DADOS 305Tabela 14 Tabela de funcionários Tabela 18 Tabela de cargos cod_func nome cargo salario cod_cargo cargo salario 20 João Gerente 3400,00 C1 Gerente 73 Pedro Supervisor 1900,00 C2 Supervisor 1900,00 90 Marcus secretário 980,00 C3 secretário 980,00 Assim com a tabela de filmes, acontece a mesma situação com a tabela e funcionários Entendendo o que ocorreu na 3FN onde o salário depende do cargo e do func. Em ambos os casos isso é considerado que pode ser analisado da passagem da 2FN para a 3FN em ambas as tabelas acima uma dependência indireta. é que a coluna que dependia de forma indi- reta da chave e de uma coluna não chave, foi deslocada para outra tabela ficando apenas a Transformando para a 3FN referência como uma chave estrangeira. Uma alteração importante deverá ser fei- A tabela de filmes foi separada para a cria- ta, que nos dois casos será a criação de uma ção de uma tabela de gêneros. Na tabela de filmes existe apenas uma referência para o nova tabela. Tanto para o gênero quando seu gênero. para o cargo. Veja então a resolução. A tabela de funcionário também gerou uma nova tabela que armazena os cargos com seus devidos salários. E na tabele de Tabela 15 Tabela de filmes na 3FN funcionários ficou apenas a referência para cod_filme filme a tabela de cargos, pois todo funcionário tem F1 o mascara G1 um cargo, assim como todo filme tem um F2 ReiLeão G2 gênero. F3 Mogli G2 F4 Nárnia G2 F5 E.T. G1 NORMALIZAÇÃO E A QUARTA E QUINTA F6 Alien G3 FORMA NORMAL F7 Padre G3 Introdução Tabela 16 Tabela de gêneros na 3FN Uma tabela não normalizada percorre um cod genero genero longo caminho até se tornar normalizada na G1 ficção 3FN. E mesmo quando chega nesse patamar, G2 aventura ainda não é possível se certificar que a tabela G3 terror não apresenta mais nenhuma anomalia. A Agora transformando a tabela de funcio- pergunta que fica é: Será que existe algum problema de inconsistência entre as tabelas? nários ter-se-á seguinte: modelo de fato já está pronto para ser im- plementado no computador e utilizado pela empresa? Essas são algumas dúvidas que o Tabela 17 Tabela de funcionários analista precisa sanar até concluir o projeto nome cod_cargo do BD. 20 João C1 A normalização de Codd acontece até a 73 Pedro C2 3FN. Depois disso ainda é possível aplicar 90 Marcus C3 a 4FN e a 5FN, entretanto, estas abrangem 306 BANCO DE DADOSmais a parte de redundância de dados nas Entendendo a 4FN tabelas, especialmente aquelas que possuem muitas repetições de dados. A 4FN e a 5FN De acordo com Heuser (2009, p. 206) são bem parecidas e são utilizadas em casos "uma tabela encontra-se na quarta forma particulares, a depender é claro, da necessi- normal, quando, além de estar na 3FN, não dade. contém dependências multivaloradas". Essas dependências são formadas por um conjunto que será tratado aqui é a parte de redun- de colunas associadas entre si onde os seus dâncias que pode ser resolvida com a cria- valores são intrinsicamente dependentes um ção de novas tabelas e a atribuição de cha- do outro para fazer sentido. Imagine então o ves estrangeiras para os campos que houver estoque da empresa de alimentos XYZ. Ela necessidade de estar dentro de uma tabela possui vários produtos, vários fornecedores e qualquer. E no fim será dado apenas um naturalmente vários distribuidores. exemplo da 4FN. Suponha então uma situação para uma tabela de eventos EV. Observe os campos Solucionando problemas de chaves que fazem referência a cada evento, o local do evento e o seu respectivo patrocinador. primeiro exemplo a ser dado aconteceu Na vida real uma empresa de eventos pode automaticamente com a tabela de filmes fazer um mesmo tipo de evento em vários nos campos nome e gênero. Observe tabela locais e com vários patrocinadores diferen- em que ocorre a repetição dos gêneros tes. Vamos considerar que o local e o patro- dos filmes. Esse problema de redundância cinador são independentes, isto é, um deter- foi resolvido com a criação da tabela gênero minado patrocinador pode fazer um evento contendo apenas três linhas, isto é, armaze- em qualquer local que desejar. Supondo ha- nando o gênero do filme apenas uma vez. ver o evento e E2, os locais L2, L3 e Naturalmente em um banco de dados have- L4, e os patrocinadores PI, P2 e P3, note as rá repetição de alguma informação em al- combinações que existem entre as colunas, gumas tabelas, porém é importante reduzir pois existe uma redundância quando o mes- ao máximo essa dependência para que não mo patrocinador opera no mesmo local do ocorra inconsistência quando houve opera- evento, porém com eventos diferentes. Esse ção de inserção, alteração ou exclusão de al- tipo de tabela pode gerar uma anomalia de gum dado. atualização devido a repetição de seus dados Outro exemplo simples está na tabela 9, nas tuplas (linhas). que se refere a uma tabela de locação, porém Veja abaixo uma tabela que tenta refletir o nome do cliente é repetido várias vezes uma situação real apresentando apenas par- para todo filme que ele fizer a locação. Uma te dos campos onde acontece a redundância forma de resolver isso foi criando uma tabe- de dados. la específica para o cliente armazenando os dados pertinentes apenas a ele. Um analista pode tomar decisões quanto Tabela 19 Tabela de eventos EV à sua escolha no momento da modelagem, evento local patrocinador mesmo assim é fundamental ter conhe- E1 L1 P1 cimento das técnicas que já são usadas por E1 L1 P2 outros profissionais. E também muitas des- E1 L2 P1 sas técnicas de modelagem já estão consoli- E1 L2 P2 dadas no mercado. E1 L3 P1 E1 L3 P2 E2 L1 P1 E2 L2 P2 (continuação) BANCO DE DADOS 307Tabela 19 Tabela de eventos EV Tabela 21 Tabela de eventos PT E2 L3 P3 local patrocinador E2 L4 P1 L1 P1 E2 L3 P2 L1 P2 L2 P1 Analisando a estrutura da tabela é possível L2 P2 verificar várias ocorrência de L3 dentre as quais pode-se destacar as seguin- L3 P2 tes: L3 P3 evento E1 usa o local L1 duas vezes L4 P1 Os patrocinadores P1 e P2 aparecem com o evento E1 três vezes patrocinador P1 usa o local L1 duas vezes Tabela 22 Tabela de eventos EV_PT Não são apenas essas situações descritas evento patrocinador acima, porém já possível visualizar que a ta- E1 P1 bela EV está totalmente fora da 4FN devido a E1 P2 inúmeras dependências multivaloradas (ver E1 P3 células coloridas na tabela Para entender E2 P1 melhor esse conceito, imagine que se queira E2 P2 cadastrar mais um evento, naturalmente de- E2 P3 verá ser registrada uma nova linha para cada local e patrocinador envolvido, criando mais dependências. Como foi dito que o local é Após a normalização, observe que para independente do patrocinador, então é pos- cada evento E1 e E2, só existe apenas uma sível passar essa tabela para a 4FN. ocorrência do local. Assim também para cada local de evento L1, L2, L3 e L4, só exis- te apenas uma ocorrência de patrocinador. Solução aplicando a 4FN E do mesmo modo para cada evento E1 e E2 só existe uma ocorrência de patrocinador. Para resolver essa anomalia será necessá- Dessa forma, todas as foram rio desmembrar a tabela EV em três novas removidas e a tabela está na 4FN. tabelas que ficarão com os campos [evento; local] para a tabela EV_LC; [local; patrocina- dor] para a tabela LC_PT e [evento; patroci- INICIANDO A LINGUAGEM SQL para a tabela EV_PT. Confira a solu- ção nas tabelas 19, 20 e 21. Introdução Tabela 20 Tabela de eventos A linguagem SQL (Structured Query Lan- Evento local guage) é a principal linguagem utilizada E1 L1 para manipulação de banco de dados no mo- delo relacional. Praticamente todo SGBD no E1 L2 MR utiliza os recursos da SQL para fazer as E1 L3 operações referentes a banco de dados. Essa E1 L4 linguagem foi desenvolvida nos anos 70 no E2 L1 laboratório da IBM pelo pesquisador britâni- E2 L2 CO Edgar Codd. Os SGBDs relacionais MYS- E2 L3 QL e Firebird utilizam essa linguagem. E2 L4 308 BANCO DE DADOSAs operações realizadas pela linguagem Faz alteração de dados em uma tabela SQL são amplamente utilizadas nas estru- DELETE turas das tabelas para criar, alterar, excluir e Exclui os de dados em uma tabela consultar dados, bem como na manipulação das próprias tabelas. "Deve ficar bem claro, terceiro recurso que será abordado aqui logo de início, que SQL não é uma lingua- e que é extremamente útil é a DQL (Data gem de programação, mas somente de de- Query Language) ou linguagem de consulta claração de, e acesso a, tabelas" Setzer e Silva de dados. Ela simplesmente é capaz de ob- (2012, p. 174). Para operar com SQL em um ter uma simples informação ou uma com- banco de dados através de um software ou binação complexa de dados por meio do seu em um site é necessário utilizar uma lingua- comando principal de consulta, gem de programação como Java, PHP, C++, Veja o que é possível fazer com esse coman- do: C, Object Pascal (Delphi) ou outra, para intermediar a comunicação entre BD e a Todo tipo de consultas (simples ou aninha- aplicação. das) A linguagem SQL possui vários recursos Ordenação (ORDER BY). que são utilizados para definição, manipu- Agrupamentos (GROUP BY). lação, consultas, controle e transação. Esses Funções aritméticas (count). comandos estão à disposição para o usuário Filtros (WHERE, LIKE). utilizar como bem entender. A SQL é uma linguagem poderosa e flexível. É o tipo da Além das opções faladas acima, existem linguagem que permite criar instruções di- mais duas que são a DCL Data Control Lan- retas e simplistas através dos principais co- guage (Linguagen de Controle de Dados) e a mandos que fornecem suporte para analis- DTL Data Transaction Language (Linguagen ta. Veja os cinco recursos descritos abaixo: de Transação de Dados). Ambas possuem re- cursos importantes para operar sobre o BD. A DCL utiliza os comandos: Os recursos da SQL GRANT DDL (Data Definition Language) ou Delegar poderes para um usuário do linguagem de definição de dados é parte do banco recurso da linguagem para criar, alterar e REVOKE eliminar estruturas lógicas da base de dados como, por exemplo, tables (tabelas), triggers Remover poderes de um usuário do ban- CO (gatilhos), views (visões) etc. Os comandos para isso são: A DTL utiliza os comandos: CREATE START TRANSACTION Criar todo tipo de estrutura. Iniciar uma transação. ALTER COMMIT Alterar estruturas no BD Confirmar uma transação. DROP ROLLBACK Eliminar estruturas no BD Desfazer uma transação antes de efetuar commit. A DML (Data Manipulation Language) ou linguagem de manipulação de dados que como o nome já diz, serve para manipular as tabelas através dos seguintes comandos: Uso da SQL INSERT uso da SQL no modelo relacional per- Faz inserção de dados em uma tabela mite que o usuário crie a estrutura lógica da base de dados, que é chamada de database, UPDATE BANCO DE DADOS 309além das tabelas (tables) e toda estrutura que VISÃO BÁSICA DO SQL for necessária. Aproveite para se acostumar em relação aos comandos da linguagem, pois todos são em inglês. Entenda um pouco mais código da SQL não é visível para o usu- ário final, isto é, apenas programador Agora é o momento de conhecer como tem acesso às informações que foram por funcionam alguns comandos importantes ele criadas. Isso quer dizer que quando al- da linguagem SQL sendo aplicados a um guém está usando um site ou mesmo um SGBD. Apesar de cada SGBD ter suas par- software para desktop, sabe-se que os dados ticularidades, os conceitos por trás dos co- estão sendo consultados e obtidos de uma mandos utilizados e das funções internas base de dados. Entretanto, essa operação são bem semelhantes, ou seja, se você en- não fica transparente, senão para o próprio tender o conceito no MYSQL, o banco aqui programador do BD. A SQL fica embutida escolhido, então será capaz de aplicar em ou- na linguagem de programação. Quando um tras tecnologias. usuário realiza um novo cadastro, é feito um MYSQL é um SGBD livre que recen- insert no BD, quando precisa alterar dados temente foi adquirido pela Oracle. As suas de um cliente ou dar entrada em um produ- vantagens são muitas e por conta disso essa to, é feito um update nos dados do cliente ou tecnologia já é utilizada em muitas aplica- do produto. Se um produto deixa de existir e ções ao redor do mundo, principalmente na não precisa mais estar cadastrado no BD, é web. MYSQL é tão popular que é possível hora de excluir utilizando o delete. encontrar em praticamente todo servidor Todo BD é acessível via dados particulares WEB, não só devido ao seu preço, mas pela de um usuário previamente cadastrado e ha- facilidade de trabalhar, sua flexibilidade, ca- bilitado. Isso é possível, pois no SGBD existe pacidade e por que está em constante evo- já um banco padrão da linguagem que arma- lução sempre trazendo novas funcionalida- zena dados dos usuários, dos procedures e de des. De acordo com Gilmore (2011, p. 498) outras funções permitidas para manipula- "independente do sistema operacional que ção. No momento da conexão a um banco de você está utilizando, é bem provável que o dados qualquer, é necessário passar alguns MySQL lhe atenda". parâmetros, os quais são: local do servidor, nome e senha de usuário do banco. Com es- ses parâmetros o usuário acessa a base de Os tipos de dados dados e pode manipular esses dados de acor- Algumas aulas atrás foi falado superficial- do com seu privilégio. mente sobre os tipos de dados. Todo atributo Essa característica de privilégio é impor- tem o seu tipo específico de dado, ou seja, a tante para fornecer segurança aos dados, natureza da informação que será armazena uma vez que sem autenticação acesso não na tabela. Todo SGBD trabalha com vários será concedido. A SQL tem comandos pró- tipos de dados. Os tipos são usados na cria- prios, como GRANT e REVOKE, para dar ção das tabelas, por isso é preciso conhecê- ou remover permissões para o usuário criar, -los antes de usar. Vejas de forma genérica consultar, alterar e excluir dados. Um usuá- alguns tipos de dados do MySQL: rio comum não pode ter plenos poderes em Tabela 23 Tipos de dados um BD, pois poderá causar sérios prejuízos Tipo Uso ao excluir dados importantes para o sistema. Char Armazena uma quantidade fixa de Na próxima aula você verá uma visão bási- caracteres. ca sobre o uso de alguns comandos da SQL, Varchar Armazena textos longos. os tipos de dados e mais características sobre Text Armazena textos de até 65.535 caracteres o MYSQL. (continuação) 310 BANCO DE DADOSTabela 23 Tipos de dados (continuação) 2. codigo INT NOT NULL AUTO_INCRE- Date Armazena data em diversos formatos MENT, TIME Armazena hora, minutos e segundos. 3. nome VARCHAR(80), INT Armazena números inteiros 4. PRIMARY KEY (codigo)); Float Armazena números com casa decimais Essa tabela acima é composta por dois cam- BOOLEAN Armazena true ou false pos [codigo; nome] e o atributo identificador (chave primária) é o codigo. Fique atento para não colocar acentos no Existem alguns Aplicando SQL básico database (base de atributos para tipo de dado que afeta as dados) suas características, por exemplo, atributo Através da linguagem SQL é possível criar not null não permite que campo aceite nulo a estrutura do banco de dados, e até mesmo obrigando usuário a inserir algum dado. o próprio banco em si. Por exemplo, supo- atributo auto_increment faz com que o cam- nha que será criado um banco de dados para po codigo seja preenchido automaticamente o estoque da empresa XYZ. banco de da- de um em um. Por exemplo: ao inserir pri- dos naturalmente terá um nome para identi- meiro registro, codigo receberá o número I. ficá-lo. Para isso poderá ser criado um banco No próximo registro será número 2 e assim com o nome estoque_xyz. comando SQL para isso seria: sucessivamente. Qual a vantagem disso? Ti- rar do usuário que insere um registro, a tarefa Modelo: CREATE DATABASE um valor, sendo que o propósito da chave pri- Para criar a database mária é ser única e distinta de todas as outras CREATE DATABASE estoque_xyz; linhas da tabela. Esse é um recurso fantástico Para usar a database dos SGBDs. USE estoque_xyz; Para deletar a database Alterando tabelas DROP DATABASE estoque_xyz Modelo: ALTER TABLE Antes de criar as tabelas, inserir e excluir dados, é preciso criar a database (DB). DB opção [ADD CHANGE DROP] column é repositório que armazenará todas as ta- belas. Em um servidor é possível ter diver- SOS DBs, cada um com um nome distinto, é um campo: claro. próximo passo será criar as tabelas. ALTER TABLE tbproduto ADD COLUMN fabricante varchar(100) not null; Criando tabelas Modelo: Altera um campo já existente: 1. CREATE TABLE ( 2. campoi , ALTER TABLE tbproduto CHANGE CO- 3. campo2 , LUMN fabricante produtor int; 4. PRIMARY KEY (campoi) )); Elimina um campo: Exemplo: ALTER TABLE tbproduto DROP COLU- 1. CREATE TABLE tbproduto( MN produtor; BANCO DE DADOS 311Excluindo tabelas Excluindo registros da tabela DROP TABLE tbproduto; // cuidado para Excluindo todos dos campos: recomen- não eliminar tabelas que contenham regis- dado apenas em casos específicos. tros. Faça uma consulta antes. DELETE FROM tbproduto; Excluindo campos escolhidos pela cláusu- Inserindo registros na tabela la WHERE: Inserindo em todos os campos: DELETE FROM tbproduto WHERE nome='café Pilão'; INSERT INTO tbproduto VALUES (1,'café Tangará'); PROJETO DE BANCO DE DADOS COM Inserindo em campos escolhidos: ACCESS INSERT INTO tbproduto (codigo, nome) VALUES (I, América'); Introdução Access é um SGBD simples que facilita Consultando registros da tabela bastante o entendimento da estrutura de um Consultando todos os campos: banco de dados. Antes de partir direto para a implementação de um banco de dados no SELECT * FROM tbproduto; MySQL, é interessante trabalhar um pouco com o Access para se ambientar com a ma- Consultando em campos específicos: nipulação dos registros, as consultas e já é uma oportunidade para ver um resultado SELECT (codigo, nome) FROM tbproduto; rápido. Consultando um produto por nome: Transformando para o modelo SELECT * FROM tbproduto WHERE computacional nome = 'Café América'; Você já aprendeu sobre o modelo relacio- nal e o DER, que foi visto nas aulas anterio- Consultando um produto por código: res. Para simular um simples projeto, imagi- ne que a empresa de alimentos XYZ precisa SELECT * FROM tbproduto WHERE co- urgente de um controle de estoque. As Enti- digo =I; dades do Ambiente que já foram detalhadas anteriormente, são PRODUTOS, CLIEN- TES, FORNECEDORES, FUNCIONÁRIOS Alterando registros da tabela E FUNÇÃO. Alterando todos dos campos: // recomen- Assim que você abrir a interface do Access, dado apenas em casos específicos. a primeira coisa a ser solicitada será o databa- UPDATE tbproduto SET codigo=2, se name (nome da base de dados). Lembre-se nome='café que todo DB tem um nome e é a primeira coi- Inserindo em campos escolhidos pela sa a ser feita, ou seja, criar o DB. Abra a fer- cláusula WHERE: ramenta Microsoft Access 2010. No campo ao lado direito você deverá digitar o nome do UPDATE tbproduto SET nome='café Pi- DB, por exemplo, dbestoque. Logo na primeira lão' WHERE nome ='café Tangará'; tela após criar banco de dados, já aparece a primeira tabela com o campo [Códi- go]. Siga os passos: 312 BANCO DE DADOSCriando a tabela Para visualizar a tabela em forma de linha e colunas. Preencha com alguns dados para Com o botão direito do mouse, clique sobre ficar de acordo a Figura 29 Atente que não é a Tabelar e escolha Modo Design. Ele pedirá necessário preencher o codigo. para salvar Nome da tabela. Coloque tbpro- dutos. Mude todos os campos para ficar de acordo com a Figura 28. Modo de Exibição de Folha de Dados M tbprodutos Nome do campo Tipo de dados Modo de Exibição de Tabela Dinâmica codigo Numeração Automática nome Texto fabricante Texto Modo de Exibição de Gráfico Dinâmico G validade Data/Hora quantidade Número promocao Sim/Não Modo Design D Figura 28 Tabela de produtos. Figura 29 Modos de exibição no Access. Ao olhar para a Figura 28 e relacionar com os conceitos vistos nas aulas anteriores perce- A exibição da Figura 29 contendo a tabela ba o uso dos atributos que são os campos da com registros de alguns produtos funciona tabela, os tipos de dados que foram usados. exatamente como o comando SQL para con- Observe que o campo codigo tem o desenho sultar tabelas, o Como tudo é feito de uma chave para representar que é a chave internamente pelo Access, você já é capaz primária. E tipo numeração automática faz de ver resultado. o simples fato de você mesmo efeito que auto_increment, ou digitar os dados é como usar o INSERT para seja, usa o tipo int (pra inteiros) e incremen- adicionar novos registros. Para executar o ta seu valor de um em um. UPDATE, basta simplesmente clicar sobre Após confirmar as alterações você deverá campo que deseja alterar e fazer a mudança. clicar no menu MODO DE EXIBIÇÃO e es- E com isso você consegue perceber o poder colha Modo de Exibição de Folha de Dados. que tem a linguagem tbprodutos codigo nome fabricante validade quantidade promocao 1 Café América América 29/05/2014 20 2 Café Tangará Tangará 12/06/2014 120 3 Cream Cracker Águia 07/01/2015 200 * (Novo) Figura 30 Tabela com registros. Trabalhando com o Access FORNECEDORES Agora que você já aprendeu como criar tbfornecedores; campos: [codigo; nome] uma tabela, basta seguir os mesmo passos FUNCIONÁRIOS para criar as outras. Para isto basta clicar no tbfuncionarios; campos: [codigo; nome; menu CRIAR e escolher tabela. Outra Tabe- lar aparecerá na caixa à esquerda. Crie as ta- FUNÇÃO belas que faltam conforme a seguir: tbfuncao; campos: [codigo; funcao] CLIENTES Um detalhe importante deverá ser obser- tbclientes; campos: [codigo; nome] vado na criação da tabela de funcionários, BANCO DE DADOS 313pois cada funcionário tem uma função. Nes- Dê dois cliques sobre a tabela de funcio- se caso haverá uma relação entre as tabela nários e coloque-a no MODO DESIGN (ver tbfuncionarios e a tbfuncao. Siga os seguin- Figura 29). Na parte inferior existe a aba de tes passos. pesquisa onde será feita uma relação com a tabela de funções conforme a Figura 3I. tbprodutos tbclientes tbfornecedores tbfuncionarios Nome do campo Tipo de dados codigo Numeração Automátic nome Texto Número Geral Pesquisa Exibit controle Caixa de listagem Tipo de Origem da Linha Tabela/Consulta Origem da Linha Coluna acoplada 1 Número de colunas 2 das colunas Não Larguras das colunas Permitir Valores Múltiplo: Não Permitir Edições da Lista ( Sim Formulário de Edição de Mostrar Somente Valores Não Figura 31 Caixa de listagem. Após preencher todos os dados de acordo lher a função, aparecerá uma listagem con- a figura acima, retorne para o modo de FO- forme a Figura 32. Faça o mesmo na tabela LHA DE DADOS e faça um novo de produtos para exibir a listagem de forne- Você vai perceber que no momento de esco- cedores conforme a Figura 33. Arquivo Página Inicial Criar Dados Externos Ferramentas de Banco de Dados Campos Tabela Crescente Novo Decrescente Salvar Modo de Colar Filtrar Atualizar Localizar Exibição Remover Classificação Tudo Excluir Modos de Área de Classificar Filtrar Registros Localizar Todos Objetos do tbfornecedores codigo nome Clique para Adicionar Tabelas 1 Danilo * (Novo) gerente supervisor tbfornecedores assistente CEO tbfuncionarios tbprodutos Figura 32 Caixa de listagem das funções. Banco de Microsoft Access Ferramentas de Dado Ferramentas de Banco de Campos Tabela D JM Crescente Novo Calibri Decrescente N S Modo de Colar Filtrar Atualizar Localizar Exibição . Remover Classificação Tudo Excluir A Modos de de Classificar Filtrar Registros Localizar Formatas Todos os Objetos do Acc... tbprodutos tbfuncionarios Pesquisor. codigo nome fabricante validade quantidade promocao Tabelas 1 29/05/2014 20 2 Tangará Tangará 12/06/2014 120 3 Cream Cracker tbfornecedores Águia 07/01/2015 200 (Novo) Aguia Tangará tbprodutos Figura 33 Caixa de listagem dos fabricantes. 314 BANCO DE DADOSNo modo de exibição de folha de dados entidades em uma empresa de revenda onde a listagem da tabela é feita exibindo de veículos que desejasse ter o controle de os seus registros, além de poder alterar, é todas as suas operações através de um sis- possível também excluir, que na SQL é o tema com banco de dados. Cite também comando DELETE. Apesar dos recursos in- quais processos seriam melhorados por críveis existentes na ferramenta, uma base cada entidade. de dados criada no Access já é salva em um 4. que é o SGBD e como acontece a inte- modelo que pode ser usado por uma lingua- ração entre usuário/aplicação e a base de gem de programação como Java, PHP ou dados. Descreva o seu funcionamento. Delphi. Algumas aplicações antigas usam 5. Ser multiusuário é uma característica o Access como BD, porém o ele não é re- importante para o SGBD. Descreva o seu comendado para programas que requerem funcionamento e a sua importância para mais do SGBD. Dessa forma o ideal é buscar as aplicações. um banco de dados mais robusto que forne- ce uma maior capacidade de processamento 6. Utilize o conceito de modelagem de da- e permita trabalhar com recursos dedicados dos para descrever o funcionamento de ao BD. um posto de combustível. E por fim faça o modelo conceitual ER das entidades rele- A ideia de usar a ferramenta Access foi vantes do ambiente. permitir a interação com um SGBD para entender em parte o seu funcionamento e 7. Faça o modelo lógico de um supermerca- saber que grande parte das funções neces- do com os dados importantes para a es- sárias já é executada pelo próprio A trutura do banco. Descreva os dados que grande vantagem nisso é tirar um pouco o serão armazenados para cada entidade foco da aplicação e ao mesmo tempo reduzir como uma tabela no banco. a complexidade na hora de desenvolver um 8. Utilize os conceitos da MER e desenhe sistema. um diagrama contendo as entidades e os relacionamentos para um ambiente de um restaurante. 9. Descreva a importância das entidades 1. Utilize o conceito da análise de sistemas para a modelagem de sistemas. em um ambiente de uma imobiliária e 10. que o relacionamento representa para abstraia todos os objetos importantes sa- o DER e para o sistema da empresa? Exis- tisfazendo as seguintes recomendações: te alguma diferença? Faça uma lista com todas as entidades 11. Marque a alternativa mais correta que indicando o que realmente é importante você considera como possíveis tipos de para o sistema; relacionamento (para cardinalidade 1:1; Descreva as características de cada entida- 1:N ou N:N) entre as entidades abaixo? Nos de encontrada. parênteses estão os respectivos relaciona- mentos. 2. Sabe-se que os bancos de dados armaze- a) Aviões e Passa- nam dados de forma aleatória que não fazem o menor sentido. Como uma em- geiros (VIAJEM) presa pode tirar proveito dessa tecnologia b) Pessoas e Pro- quando estes dados são utilizados dentro fissões (EXERCER) de um sistema. Qual tipo de formatação c) Clientes e Pro- acontece com estes dados para transfor- dutos (Compras) má-los em algo útil para a empresa? d) Crianças e Va- 3. Ao conhecer que o banco de dados possui cinas (RECEBER) grandes vantagens sobre processo de e) Pessoas e Pas- armazenamento manual, cite as possíveis saporte (OBTER) BANCO DE DADOS 315N:N; N:N; N:N; I:I menos dois exemplos de atributos em N:1; N:N; N:N; I:I quatro entidades distintas. N:N; N:N; I:I 15. Qual papel do atributo identificador? 16. Descreva abaixo a estrutura do MR, bem 12. que é um auto-relacionamento? Forne- como a função que cada parte desempe- ça ao menos dois exemplos: nha no modelo. 13. Qual a importância de um BD bem mo- 17. O que é a PK e a FK e para que servem? delado e bem projetado? 18. que é a normalização? Cite alguns dos 14. Tendo em vista modelo conceitual de ER, seus benefícios. diga o que são os atributos. Forneça ao 19. Analise a tabela abaixo e faça a normalização para a IFN. Veículos cod Veiculo proprietario ano_modelo Características Gol-VW José Garcia 2010/2010 verde -2 portas V02 Uno FIAT Julian Almeida 2013/2013 azul 4 portas V03 Hb20 Hyundai Lia Itachi 2013/2014 roxo 4 portas V03 City-Honda Priscila Kravinsky 2014/2014 preto 4 portas 20.Analise a tabela abaixo e faça a normalização para a 2FN. Veículos codigo veiculo proprietario cod_prop marca ID-marca Gol José Garcia 25 VW 1 V02 Uno Julian Almeida 30 fiat 2 V03 Hb20 Lia Itachi 35 Hyundai 3 V03 City Priscila Kravinsky 40 Honda 5 21. Analise a tabela abaixo e faça a normalização para a 3FN. contas bancarias codigo tipo cod cliente nivel_cliente id gerente 1 CC 1 Plus 10 2 cp 2 simples 20 3 CC 3 Premium 1 21 3 cp 4 Premium master 18 22. Analise a tabela abaixo e faça a normalização para a 4FN. Revendedor produto distribuidor varejista P1 D1 V1 P1 D1 V2 P1 D2 V1 P1 D2 V2 D3 V1 D3 V2 P2 D1 V1 316 BANCO DE DADOS23. Descreva a importância da linguagem FERRAMENTAS DE OPERAÇÃO E SQL. Forneça ao menos dois dos seus GERENCIAMENTO recursos, citando os comandos utiliza- dos. Introdução 24. Use os comandos da linguagem SQL Um SGBD (sistema gerenciador de banco para criar as duas tabelas abaixo confor- de dados) utiliza uma interface de desen- me os atributos especificados. Escolha o volvimento onde os analistas desenvolvedo- tipo de dado corretamente de acordo com res operam usando a linguagem SQL. Para a informação que será armazenada em manipular uma base de dados desde a sua cada campo, respeitando as característi- criação até o seu gerenciamento, poderá ser cas de cada tipo. usado programas próprios para cada lingua- A) Atributos da tabela de equipamentos: gem. Geralmente não existe apenas uma código, nome, marca, modelo, preço; aplicação para determinado SGBD, porém o B) Atributos da tabela de estoque: analista pode se familiarizar com um mode- id_prod, nome, fornecedor, peso, preço, lo mais específico. data de validade; Existem diversos SGBDs no mercado e 25.Com as tabelas da questão 24, faça duas cada um deles opera com uma aplicação inserções de registros, observando a or- externa para o seu desenvolvimento. Pos- dem correta de cada campo, bem como o tgreSQL usa o pgAdmin. Firebird usa seu tipo. Lembre-se que texto é diferente alguns como, por exemplo, o IBExpert ou dos outros tipos na hora de inserir. IBOConsole. No MySQL, SGBD escolhido para o livro, será usado o MySQL Workben- ch (ver Figura 34). File Scripting Workbench Central Workspace SQL Development Data Modeling Server Administration Connect and Create and your database SQL edit data and server Open to Start Querying Open Existing Model Server Administration Local 55 Local the Type LOCAL New Connection New Instance Edit Table Data Create FFR Model Manage Import Export Edit Script Create Model From Existing Database Manage Security Manage Connection Create Model Script Manage Server Instances Figura 34 Tela inicial do Workbench. Além do MySQL Workbench, existem Você naturalmente poderá buscar novas várias outras ferramentas de terceiros que ferramentas externas de gerenciamento foram criadas para gerenciar um SGBD e para o SGBD. Existem várias opções para se naturalmente a sua base de dados. Apesar trabalhar com o MySQL e algumas são bas- desses programas de gerenciamento permi- tante usadas no meio acadêmico e comer- tir criar várias estruturas do BD através de cial como, por exemplo, o phpMyAdmin e uma interface amigável, o carro chefe mes- o MySQLFront. phpMyAdmin, inclusive, mo é o uso da linguagem Todas estas tem esse nome por ser feito em php. Além ferramentas tem uma área específica para disso, ele está disponível de forma online, execução de comandos ou seja, é possível rodá-lo diretamente no BANCO DE DADOS 317browser (navegador). Por conta disso que mysql.com/ e está disponível gratuitamente o phpMyAdmin é usado em praticamen- para download, tanto para uso pessoal quan- te todo servidor de hospedagem que aceita to comercial, respeitando as licenças de uso, o MySQL, pois permite que o usuário faça é claro. alterações diretamente pela Internet direta- mente na sua BD. MYSQL é um SGBD robusto e altamente capaz de suportar pequenas e grandes aplica- ções. Ele é muito usado em sites e aplicações Por que usar uma ferramenta? web. Com o MYSQL será possível conhecer uso de ferramentas de manipulação e e aprender praticamente a maior parte da desenvolvimento como Workbench se tor- linguagem SQL, pois ele contempla grande nou tão popular que praticamente todo pro- gramador que trabalha com BD a usa. Ela parte dos seus recursos, principalmente nas não só facilita e acelera o desempenho como últimas versões. Novas funcionalidades são é capaz de aumentar a produtividade do pro- acrescidas ao MySQL a cada atualização. gramador, pois ele não fica preso a detalhes que poderão ser resolvidos facilmente com o uso da ferramenta. Todas as estruturas do uso de uma ferramenta banco como tabelas, visões, stored procedu- Uma ferramenta para gerenciamento do res e triggers podem ser facilmente manipu- ladas via interface ou via programação SQL. SGBD não apresenta muitas dificuldades A linguagem SQL é extremamente poderosa para usuário. É necessário fazer a conexão na manipulação de BD através de seus recur- com o servidor local ou remoto, escolher a SOS e comandos. base de dados que irá gerenciar, isto é, ma- Dessa forma já é possível perceber as van- nipular através da linguagem SQL, e em tagens que existem em se utilizar uma ferra- menta como essa. Poupar trabalho é algo que seguida fazer as operações e manipulações as empresas os profissionais buscam e utili- necessárias. zar as aplicações internas de um SGBD não é É importante lembrar que em um compu- tão vantajoso quanto utilizar uma ferramenta tador ou servidor podem existir várias bases de apoio. de dados e cada uma delas tem o seu nome. Em alguns ambientes (ferramentas) de ge- servidor de BD renciamento ou algumas literaturas poderá Todo servidor de banco de dados, no mo- ser visto o nome schema para descrever o delo relacional, fica hospedado (insatalado) nome do BD. em um computador, seja ele em Windows, Em uma tela de configuração de conexão Linux, FreeBSD ou qualquer outra platafor- com um servidor de banco de dados, local ma. Um servidor de banco de dados pode ser ou remoto, serão solicitados algumas im- local, funcionando dentro de uma empresa, ou remoto, acessível através da Internet. portantes informações como, por exemplo, Para acessar qualquer BD é imprescindível o nome da conexão, o nome do host (servi- que uma conexão seja estabelecida. E mes- dor), a porta de conexão, nome de usuário, mo que você vá trabalhar com um SGBD a senha, e é claro, nome do banco em apenas para estudo, será necessário utilizar Cada ferramenta pode oferecer um recurso uma forma de conexão que é feita através a mais, mas os parâmetros necessários para do driver do SGBD. Cada SGBD tem o seu driver específico que poderá ser baixado no conexão são basicamente os mesmos. Veja a próprio site. driver de conexão do MYS- Figura 35 que apresenta a tela de conexão do QL pode ser encontrado no site http://www. MySQL 318 BANCO DE DADOSSetup New Connection Connection Name: Type a name for the connection Connection Method: Standard (TCP/IP) Method to use to connect to the RDBMS Parameters Advanced Hostname: 127.0.0.1 3306 Name or IP address of the server TCP/IP port. Username: root Name of the user to connect Password: Store in Clear The user's password. Will be requested later if it's not Default Schema: The schema to use as default Leave blank to select it later. Test Connection Cancel OK Figura 35 Tela de conexão com servidor de BD. INSTALANDO E CONFIGURANDO Como instalar MYSQL Após efetuar o download da versão com- patível com o seu sistema operacional, isto é, 32 ou 64 bits, você deverá efetuar a insta- Introdução lação. A instalação do WAMP é um processo MySQL será o SGBD usado para testar relativamente simples, basta abrir o arquivo, as funcionalidades da linguagem SQL ope- avançar os passos e concluir. Não é necessá- rando sobre uma base de dados. Além de ser rio fazer nenhuma alteração no momento da um excelente SGBD, é incrivelmente fácil instalação. Ao concluir a instalação poderá de instalar e configurar para começar a usar. aparecer uma tela de configuração do PHP Como as aplicações puramente para desktop solicitando parâmetros de e-mail. Não há ne- tem dado lugar às aplicações WEB, será uti- cessidade de alteração, bastando apenas dei- lizado um aplicativo que simula um servi- xar como está e prosseguir. Veja a tela inicial dor para trabalhar com a linguagem PHP e de instalação na Figura 36. o MYSQL propriamente dito. Nesse caso, o aplicativo responsável em criar esse servidor será o apache. Para então configurar o ser- vidor Apache juntamente com o MySQL e PHP é necessário fazer download de uma ferramenta que já contém os três programas inclusos, o WAMP. A sigla vem das palavras Windows Apache MYSQL PHP (WAMP) e ele é facilmente instalado apenas seguindo os passos de forma intuitiva. Para baixar WAMP siga até o site oficial http://www. wampserver.com/en/ e baixe a versão ideal para o seu sistema operacional. BANCO DE DADOS 319Setup WampServer 2 W Welcome to the WampServer 2 Setup Wizard WampServer This will install WampServer 2.4 on your computer. It is recommended that you close all other applications before Powered by Alter Way Click Next to continue, or Cancel to exit Setup. The French Open Source Service Provider http://www.alterway.fr 2.4 Apache 2.4.4 MYSQL 5.6.12 PHP 5.4.16 4.0.4 SqlBuddy 1.3.3 XDebug 2.2.3 Next > Cancel Figura 36 Site de download do Como configurar -se que será utilizado o MySQL Workben- ch. Entretanto seria interessante dar uma Na verdade não há configuração a ser fei- olhada nela também. ta. Apenas será necessário iniciar a aplicação WAMPSERVER e fazer os devidos testes Como foi dito anteriormente a respeito dos utilizando o MySQL Uma coisa parâmetros de conexão ao servidor MySQL, é interessante é que o WAMP já instala con- nesse momento que deverão ser fornecidos. sigo uma das ferramentas de manipulação, Observe a figura acima que o utilizador (usu- o phpMyAdmin. o apache é um servidor de ário) é o root. Nesse caso em específico não aplicação web que vai permitir rodar PHP tem palavra-passe (senha) bastando apenas como linguagem de programação, que será digitar usuário e clicar em Ao en- a intermediária para criar a interface com o trar na interface do phpMyAdmin será possi- usuário. vel observar alguns detalhes importantes: Do lado esquerdo se encontram todos os bancos de dados criados, até então apenas Testando e concluindo os padrões do SGBD. Para testar a aplicação após ter iniciado No menu superior pode ser visto o botão o WAMPSERVER, basta apontar o mouse Base de Dados, onde é possível criar uma para o ícone do programa na barra de tarefas nova database. botão SQL onde é digita- do Windows, a que fica próxima do relógio, do todas as instruções da linguagem SQL. e você verá o símbolo do WAMP, um "W". Existem vários outros menus e opções que Após clicar será aberta uma janela com vá- podem ser explorados nessa ferramenta. rias opções. Veja uma breve descrição logo Não deixe de fazer alguns testes usando essa interface. Localhost: é o caminho para o servidor próximo passo será a instalação, confi- onde será testada a linguagem PHP com guração e testes da ferramenta escolhida, o MySQL. Outra forma de representar é atra- MYSQL Workbench. vés do IP (Internet Protocol) que também é chamado de endereço loopback, isto é, o endereço que identifica próprio computador. phpMyAdmin: é uma das conhecidas ferra- mentas para manipular SGBD. Lembre- 320 BANCO DE DADOSINSTALANDO E CONFIGURANDO MySQL Workbench Setup Wizard MYSQL WORKBENCH Welcome to the Setup Wizard for Workbench 5.2 CE The Setup Wizard will install version 5.2.47 on your To continue, click Introdução MYSQL Workbench é uma ferramenta This program protected by copyright law and com uma interface amigável e de fácil ope- international ração para os desenvolvedores Essa ferramenta é um pacote completo que subs- tituiu várias outras ferramentas de adminis- Back Next Cancel tração e modelagem do SGBD. Para adquirir este software acesse o site http://dev.mysql. Figura 37 Instalando MYSQL com/downloads/tools/workbench/ e faça download da última versão para o seu siste- Criando a primeira conexão ma operacional. Após ter feito o download completo, talvez Para se estabelecer uma conexão local é seja necessário baixar alguns softwares pré- bastante simples. Você deverá clicar no New -requisitos caso o seu computador já não os Connection e preencher conforme os passos tenha instalados. Os dois programas são fa- a seguir. cilmente encontrados e não há dificuldade Connection Name: conexão local; para conseguir instalá-los. São eles: Hostname: localhost ou 127.0.0.1; 1. Microsoft Framework 4 Client Pro- Port: 3306; file Username: root; 2. Microsoft Visual C++ 2010 Redistributa- Password: o password é requisitado sem- ble Package (x86) pre que for acessar a database. Para evi- tar ter que colocar password toda vez é Feita a instalação desses dois itens, é hora possível deixá-lo armazenado clicando no de instalar o Workbench de fato. Veja a tela botão "Store in Vault" e digitá-lo na caixa. inicial de instalação na Figura 37. No mo- Caso queira limpa do armazenador cli- mento da instalação não é necessário fazer que em Clear. Nesse caso específico com alterações, é só clica em avançar e concluir. o WAMP não é necessário colocar senha. Workbench na verdade é um conjunto de Às vezes algumas versões utilizam a senha aplicações que ajudam a gerenciar e admi- root como padrão. nistrar um banco de dados através da sua Default Schema: Deixe em branco caso interface. A primeira vez que o programa queira ver todos os BDs disponíveis no é iniciado não há nenhuma conexão cria- servidor. Caso queira ver apenas um BD da. Várias conexões podem ser criadas, por específico é só digitar o seu nome. exemplo, se você tiver dois sites hospedados Após preencher corretamente todos os em um servidor e em ambos tiver uma da- campos, você poderá efetuar um simples tabase, é possível acessa essa base de dados teste clicando no botão Test Connection. Ob- remotamente apenas com os dados de cone- serve a Figura 38 para verificar o resultado xão que são fornecidas pelo próprio servidor após clicar no botão. A mesma mensagem de hospedagem. Para isto deverá ser criada deve aparecer a na tela. Por fim clique em uma nova conexão para cada servidor que Ok e a sua tela deverá ser similar à Figura queira manipular. Lembre-se que em ape- 39. nas um servidor poderá haver várias bases de dados. E você poderá manipulá-las ao mesmo tempo. A seguir será criada uma co- nexão local para acessa o servidor MYSQL instalado com o WAMP. BANCO DE DADOS 321Connection Type name for the connection Connection Standard Method to use to connect to the Advanced Hostname: 3306 Name IP address of the server root Name of the user to connect with Store The user's password WE be requested later not set Default The schema to use as default Leave blank to select MySQL Workbench Connected to MySQL at 127.0.0.1:3306 with user root Connection parameters are OK Test Connection Cancel OK Figura 38 Criando a conexão local no Workbench Após ter criado a conexão local, dê dois cli- digite o comando "show databases". Um re- ques sobre ela para acessá-la. Em seguida se- sultado será exibido conforme a Figura 40. rás redirecionado para o SQL editor onde uma Outra forma de testar seria digitando os aba ao centro aparecerá com nome "Query comandos: use test; show tables. primeiro é Nesse local serão digitados os comandos para selecionar a base de dados como padrão SQL necessários. A princípio apenas o banco e segundo é para listar todas as tabelas exis- test estará visível. Para efetuar alguns testes tentes nesse banco. Scripting Workbench Central Workspace SQL Development Data Modeling Server Administration 10 databases and Create and manage forward Configure your database SQL SQL edit date and reverse compare and user status variable manage database objects and Open Connection to Start Querying Open Existing EER Model Server Administration local full 0.0 Connection New Server Instance Edit Table Data Create New EER Model Manage Import Export Edit SQL Script Create Model From Existing Database Manage Security Manage Connections Create EER Model From Script Manage Server Instances Figura 39 Checando a conexão local no Editor File Scripting 5 show da test information schema Result Read Action Time Duration show tables 0.000 sec Figura 40 Testando a linguagem SQL no 322 BANCO DE DADOSPara executar qualquer comando SQL ter um bom aprendizado e desfrutar melhor dentro da área de Consulta (Query I) basta do potencial da ferramenta será destacado clicar no desenho do raio amarelo ou digitar de forma intuitiva como navegar pelos me- a sequência CTRL + ENTER. Existem vários nus e telas. A princípio terá um foco na parte outros atalhos que serão demonstrados mais superior que contém a aba inicial e as abas a frente. dos serviços extras como, por exemplo, a co- nexão com um determinado servidor. Veja na FIGURA 24 que o desenho da casa repre- senta a tela inicial e o segundo item é o SQL MYSQL WORKBENCH FUNCIONALIDADES Editor da conexão local, ou seja, para cada conexão feita a um servidor, seja ele remoto Conhecendo melhor a interface ou local, uma nova aba do SQL Editor tam- bém será criada. Na última aula foi feita a configuração ini- cial para trabalhar com o Para SQL Editor (conexão local) File Edit View Query Database Scripting Help Object SCHEMAS H Q Search objects 1 use test: test 2 show tables Figura 41 As abas e menus do Observe que na aba "Query 1" é onde os terface. Observe na figura 24 os ícones logo comandos SQL são digitados. Várias abas de abaixo do menu. Basta colocar o mouse sobre Query, isto é, consultas, poderão ser criadas cada ícone e uma breve descrição de sua fun- a depender da necessidade do Para ção será exibida. Veja a FIGURA onde criar uma nova aba de consulta basta clicar várias abas de Query foram criadas. As abas no menu File e sem seguida clicar em New criadas foram: SQL File 3 até o SQL File 6. Query Tab ou pressionar a sequência CTRL Em cada uma delas diversos comandos SQL + T. Algumas dessas funções também estão poderão ser executados. acessíveis pelo ícones distribuídos pela in- SQL Editor (conexão local) File Edit View Query Database Plugins Scripting Help Object Browser Query 1 SQL File 3 File 4 File 5 File 6 SCHEMAS Q Search objects 1 test Figura 42 Várias abas abertas no Basicamente todas as ferramentas exter- administrar as bases de dados em um ser- nas de gerenciamento de SGBD possuem as vidor. opções similares à do MYSQL WorkBench, Existem muitos programas que auxiliam alterando apenas algumas funcionalidades na criação de tabelas e estruturas sem pre- entre elas. Não importa se o SGBD é Fire- cisar digitar uma linha de SQL. Entretanto, bird, SQL Server, Oracle, PostgreSQL ou isso se torna interessante quando você já outro. Todos estes trarão consigo algumas estiver familiarizado com a linguagem SQL, ferramentas para executar instruções SQL e afinal é realmente importante entender o funcionamento e a criação de toda estrutu- BANCO DE DADOS 323ra através do uso da linguagem SQL e não guagem SQL e após executar resultado será através de uma interface que cria automati- obtido imediatamente. Todavia, uma instru- camente. Entenda que o objetivo aqui não ção poderá conter erros. Existem duas formas desmerecer o uso de uma aplicação que faça de erros, a sintática e a semântica. A sintática o trabalho automaticamente, porém para se é quando a escrita da instrução estiver incor- tornar um conhecedor e um profissional ca- reta como, por exemplo, palavras erradas ou paz de resolver problemas, é essencial que fora da ordem. Quando a instrução tiver um conheça a fundo a SQL. erro sintático o próprio ambiente exibe uma marcação com um "x" em vermelho e branco na linha onde estiver o erro. Veja um exemplo Como executar as instruções SQL na Figura 43. Com foi exemplificado nas aulas anterio- res, basta digitar qualquer comando da lin- SQL Editor (conexão local) File Edit View Query Database Plugins Scripting Help Object Browser Query 1 SQL File 3 SQL File 4 SQL File 5 SQL File SCHEMAS Q Search objects 1 create database dbes toque test 2 create table estoque 3 Figura 43 Instrução com erro no Workbench Uma mensagem de erro descreve o pro- Esta área é usada para exibir os erros de blema quando o mouse é colocado sobre execução. Existem inúmeros tipos de erros "x". problema semântico não exibe algu- e o analista deve conhecer o funcionamento ma sinalização na interface por ser um erro de uma base de dados para compreender as de lógica e não de sintaxe. Um exemplo de mensagens exibidas nesse painel. Para cada erro de semântica seria um resultado ines- comando SQL executado, uma mensagem perado em uma consulta a uma tabela ou é exibida com o resultado da instrução, não uma alteração que afeta o registro errado. importa se deu certo ou errado, o papel da Para evitar erros de semântica é importante ferramenta é dar um retorno. Veja uma lista conhecer bem cada comando da linguagem de várias saídas do Output na Figura 44. SQL que será usado. Na interface do Workbench existe uma aba na parte inferior denominada de Output. Output Action Output Time Action Message Duration Fetch 1 14:26:57 show databases 4 row(s) returned 0.000 sec 0.000 sec 2 14:27:53 show tables Error 1046 No database selected Select the defaut DB to be used by do 0.000 sec 3 14:28:13 use test affected 0.000 sec 4 14:28:13 show tables returned 0.000 / 0.000 sec 5 14:29:33 show databases 4 row(s) returned 0.015 sec / 0.000 6 14:31:55 show user Error Code: 1064 You have an error in your SQL check the manual that 0.000 Figura 44 Output: lista de erros no Workbench 324 BANCO DE DADOSExecutando uma instrução linha 2 selecionará database recém criada sobre a qual as próximas instruções Todas as tabelas já existentes no servidor farão efeito; ou criadas dentro do Workbench serão exibi- das e listadas na janela à esquerda. Lembre- A linha 3 até a linha 6 serão responsáveis -se que a database é o repositório onde as ta- por criar a tabela tbproduto contendo dois belas são armazenadas juntamente com os campos (atributos) codigo e nome, sendo seus registros e as outras estruturas como o codigo a chave primária (atributo iden- views e stored procedures. tificador); Ao executar os seguintes comandos, qua- A linha 7 insere um registro na tabela tb- tro coisas acontecerão e no fim um resultado produto; de uma consulta será exibido mostrando um A linha 8 faz uma consulta de todos os re- registro: gistro da tabela tbproduto; 1. CREATE DATABASE dbestoque; Observe atentamente para a Figura 45 que 2. USE dbestoque; representa o resultado de todas as operações 3. CREATE TABLE tbproduto( efetuadas acima. Procure identificar a função de cada janela já descrita anteriormente. lo- 4. codigo INT NOT NULL AUTO_INCRE- cal onde os comandos SQL foram digitados; MENT, o novo banco de dados criado (à esquerda) 5. nome VARCHAR(80), exibindo as tabelas bem como os seus cam- 6. PRIMARY KEY (codigo)); pos; resultado da consulta com o SELECT 7. insert into tbproduto values (null,'café'); exibindo os registros (ao centro); A janela do 8. SELECT * FROM tbproduto; Output exibindo todas as ações que foram executas em ordem, desde a criação da data- As linhas da instrução acima farão o se- base até a consulta da linha 8; guinte: A linha I criará a database com o nome de dbestoque; Object Browser Query 1 SQL File 3 SQL File 4 SQL File SOL Additions SCHEMAS My Snippets objects 1 create database dbes toque : dbestoque 2 USE dbestoque; Tables 3 TABLE tbproduto Columns 4 codigo INT NOT NULL 5 nome nome PRIMARY KEY Indexes insert into tbproduto values Foreign Keys 8 SELECT FROM tbproduto; Triggers Views Routines test codigo nome 1 café tbproduto Apply Cancel Snippets Output Action Output Time Action Duration 14 16:36:43 create row(s) affected 15 16:36:44 USE dbestoque row(s) affected 0.000 16 16:36:44 CREATE TABLE codigo INT NOT NULL AUTO_INCREME Drow(s) affected 0.172 sec Information 17 16:36:44 insert into values 1 row(s) affected Object Info Session 18 16:36:44 SELECT FROM LIMIT 0 1000 1 returned Figura 45 Resultado de várias instruções no BANCO DE DADOS 325