TECNOLOGIAS DE BANCO DE DADOS PARA SISTEMAS DE INFORMAÇÃO – EAD MÓDULO 1 – A HISTÓRIA DOS DADOS Iremos iniciar a disciplina de tecnologias de banco de dados para sistemas de informação falando sobre a história dos dados. Em disciplinas anteriores do nosso curso, falamos rapidamente sobre os bancos de dados, sistemas de banco de dados e banco de dados distribuídos. Agora nos aprofundaremos um pouco mais no universo dos dados, como eles são estruturados, distribuídos e controlados através dos vários sistemas que auxiliam os sistemas de informação. Antes de falarmos sobre os sistemas de banco de dados e seus vários atributos, é interessante inicialmente destacarmos a histórias dos dados no decorrer dos tempos. Hoje, por trás de todas as atividades que presenciamos estão os dados armazenados que conduzem a geração de um grande número de informações necessárias para conduzirem negócios de todos os tipos e tamanhos. Quando falamos em dados, devemos pensar na maneira como eles são organizados, gerenciados e controlados. Pensando em termos de informática, ligamos a gerência, organização e controle dos dados aos bancos de dados, sistemas de gerenciamento de banco de dados e aos ambientes de banco de dados. 1.1 A história dos dados Normalmente quando falamos em dados pensamos logo no computador, só que pesquisando na história chegaremos à conclusão que o interesse das pessoas pelos dados é bem mais antigo que os computadores. Nesta época eram aplicados métodos primitivos de manipulação e armazenamento dos dados. Um exemplo típico de manipulação de dados feitos na antigüidade era o controle que os pastores tinham sobre os seus rebanhos. O pastor controlava seu rebanho com um saco contendo várias pedras e a medida que o rebanho deixava o cercado e iria para o pasto, o pastor colocava uma pedra dentro do saco representando cada ovelha. Quando as ovelhas retornavam para o cercado, a cada ovelha que entrasse no cercado o pastor retirava uma pedra. Com esse controle era possível saber se todas as ovelhas estavam presentes ou se alguma não havia retornado. Se observarmos bem esse método de controle utilizado pelo pastor é uma legítima maneira de armazenar e recuperar os dados, só que em formas primitivas. Com o passar dos tempos foram surgindo outros métodos de manter dados e registros, pois a medida que as formas de comércios evoluíam se fazia necessário encontrar meios de controle de estoque, pagamentos e dados de produção. No século XVII aumentou o interesse das pessoas por encontrar uma alternativa para automatizar o processamento dos seus dados, e por causa dessa necessidade vários dispositivos surgiram nessa época para suprir essa necessidade. Citaremos abaixo alguns criadores que desenvolverem dispositivos para trabalharem diretamente com os dados, são eles: Blaise Pascal (1640): Dispositivo contendo engrenagens que eram capazes de realizar operações de soma e subtração. Joseph Marie Jacquard (1805): Desenvolveu um dispositivo capaz de reproduzir padrões. O dispositivo era composto por uma série de cartões perfurados, em que os fios do material eram entrelaçados e produziam uma seqüência de padrões desejados. Charles Babbage (1833): Aproveitou a idéia dos cartões perfurados de Jacquard e criou uma invenção chamada de “Máquina Analítica” que consistia em um depósito para guardar itens de dados e um processado para operar os dados. A máquina de analítica de Babbage nunca foi concluída, mas ela inspirou muitos dos princípios existentes na computação moderna. O século XIX foi um dos propulsores para o desenvolvimento de formas de armazenamento de dados, devido a quantidade enorme de dados que foram surgindo para serem armazenados. Um exemplo foi o censo americano realizado em 1880 que levou quase sete anos para ser totalmente reunido a mão. Os engenheiros americanos constataram que devido ao grande crescimento da população o próximo senso não estaria concluído antes que o outro fosse começar. Para solucionar o problema do censo americano, um engenheiro chamado Herman Hollerith baseou-se no trabalho realizado por Jacquard e criou uma forma de armazenar os dados do censo em cartões perfurados. Com a utilização do equipamento de Hollerith a contagem do censo de 1890 foi realizada em apenas um mês. Em 1896 Hollerith formou a Tabulating Machine Company com o intuito de produzir e comercializar o seu equipamento. A combinação de sua companhia com várias outras originou a que hoje chamamos de IBM (International Business Machines). No mesmo escritório do censo em que era usado o equipamento de Hollerith, o engenheiro James Powers desenvolveu um dispositivo que alimentaria automaticamente o equipamento de cartões perfurados e imprimia o resultado. Em 1911 James Powers fundou a Powers Tabulating Machine Company que futuramente acabou se tornando a Unisys Corporation. A partir de 1940 a quantidade de equipamentos que processavam dados aumentou bastante, passaram a ser utilizados cartões perfurados com calculadoras, impressoras e ordenadoras. Os dados eram armazenados em cartões perfurados e o seu processamento era feito através de um conjunto de fios conectados a placas projetadas e inseridas em dispositivos eletromecânicos. Os equipamentos eletromecânicos coexistiram em parte com os computadores eletrônicos, esses últimos foram introduzidos em meados de 1950. 1.2 Evolução das formas de armazenamento dos dados Como falamos anteriormente, houve uma evolução constante nas formas de armazenamentos dos dados com o passar dos tempos. Citaremos abaixo as principais formas de armazenamento e a época em que foram utilizadas: 1870: A fita de papel perfurada foi a primeira forma de armazenamento moderna dos dados. 1900: Utilização de cartões perfurados como meio de armazenamento. Até as décadas de 1920, 1930 e 1940 os cartões perfurados foram o único meio de armazenamento dos dados utilizados nesta época. 1930: Início a era do armazenamento magnético apagável através da utilização de fitas magnéticas para armazenamento do som. Na década de 1940 foram realizados testes para utilizarem as fitas magnéticas para o armazenamento de dados. De 1950 a 1960 as fitas magnéticas eram unanimidade quando se falava em armazenamento de dados em computadores. Houve uma constante melhoria e evolução na forma de armazenamento dos dados pelas fitas magnéticas, e hoje elas ainda são utilizadas no armazenamento de grandes quantidades de dados que precisam ser armazenados por longos períodos. 1940: O conceito de fita magnética acabou originando a criação dos discos magnéticos. Na década de 1960 aconteceu a conversão das fitas magnéticas para os discos magnéticos. Dias atuais: Nos dias atuais, existem várias formas de armazenamento dos dados, o principal é através dos discos rígidos utilizados em computadores pessoais e servidores, além dos CD`s, DVD`s, cartões de memória e pendrivers que utilizam a tecnologia de memória flash. A tecnologia de armazenamento através de chip será em um futuro próximo a forma dominante no armazenamento dos dados. Os próximos capítulos darão destaque a maneira como os dados são armazenados, tratados e gerenciados e o seu grau de importância para os sistemas de informação. MÓDULO 2 – OS DADOS NO AMBIENTE CORPORATIVO Antes de iniciarmos o capítulo que fala sobre os dados no ambiente empresarial, seria interessante especificarmos o significado da palavra “dados” no contexto que estamos trabalhando. Existem várias definições para a palavra dados, a definição de Mark Gillenson fala que: “Os dados são fatos únicos sobre algo que nos interessa” Atualmente com a evolução dos computadores, principalmente quando se fala em velocidade e capacidade de operação, ilustra bem o interesse das corporações pelos computadores e não sendo este interesse muito diferente dos antigos pastores que utilizavam as formas primitivas de armazenamento dos dados na antigüidade. Esse interesse se deve principalmente a capacidade de armazenamento e processamento que os computadores proporcionam aos dados e que ocasionam vantagens para as empresas no mercado competitivo que elas atuam. Os benefícios oferecidos pela evolução dos computadores fazem com que as empresas invistam a cada dia na utilização de tecnologia de ponta. Esses investimentos proporcionam as empresas vantagens competitivas no mercado que atuam. Os dados tornaram-se indispensáveis para qualquer tipo de organização moderna, sendo as aplicações e os computadores que a executam fundamentais em todos os aspectos para cada tipo de iniciativa. É importante quando falar em recursos corporativos citar além das instalações, capitais, pessoal, estoque e equipamentos, citar também os dados como um recurso corporativo. É falado rotineiramente no meio empresarial que os dados e as informações derivadas desses dados são armas altamente competitivas para as empresas. Como exemplo de vantagem competitiva com o auxílio dos dados citaremos o serviço de transporte dos correios. Eles foram os primeiros no Brasil a fornecer informações sobre o rastreamento do produto através do seu website. Com esse serviço sendo oferecido, as outras empresas que também trabalham com o transporte de produtos, sentiram-se obrigadas a oferecer o mesmo serviço de rastreamento. Esse ciclo contínuo gerado pela competitividade das empresas e a utilização dos dados como arma de negócio, levou o uso dos dados a níveis cada vez maiores tornando-o um recurso empresarial cada dia mais importante e indispensável. Hoje, bancos fornecem informações a seus clientes via internet, transportadoras fornecem informações atualizadas sobre o transporte de produtos a seus clientes, e outros tipos de informações que podem ser fornecidas com a utilização dos dados. Quando falamos em rastreamento on-line de objetos, bancos on-line, e atualizações quase em tempo real, parece que tudo é muito simples, e fácil de ser implantado. Mas analisando bem, existe uma complexidade enorme na capacidade de fornecer acessos eficientes aos dados e promover o seu armazenamento. Um dos primeiros complicadores para as empresas é o armazenamento dos dados. Para uma empresa de médio a grande porte, a quantidade de dados armazenados em seus bancos de dados alcança facilmente a cada dos gigabytes e estes dados estão em constante crescimento. Outro agravante causado pelas facilidades que são oferecidas pelas empresas aos clientes está relacionado a quantidade de acessos dos usuários aos dados e informações. Se combinarmos o acesso aos dados com a quantidade de dados que são armazenados, veremos o enorme desafio que as empresas deverão superar para oferecer serviços de qualidade. Sem os avanços alcançados pelos computadores na atualidade, seria quase impossível alcançar o estágio de evolução que os sistemas de informação estão. A medida que os sistemas de informação evoluem, paralelamente os hardwares e softwares que são utilizados para auxiliar o seu controle, também estão em constante evolução e com isso a quantidade de dados e informações também aumenta. Devido a evolução da quantidade de dados armazenados pelas empresas, se fez necessário pensar em uma forma segura de armazenar e recuperar esses dados. A aplicação de diretivas de segurança permite as empresas a prevenção de problemas que são causados por roubo de informações, destruição intencional, alteração nos dados como forma de beneficiar um terceiro além de dados que são causados acidentalmente. MÓDULO 3 – OS DADOS NO AMBIENTE CORPORATIVO 3.1 Os dados sendo reconhecidos como recursos corporativos Os recursos corporativos existentes nas empresas devem ser gerenciados, acompanhados e protegidos para que a empresa alcance todos os seus objetivos. Os dados são recursos corporativos difíceis de serem gerenciados, pois são formados por milhares de pontos diferentes que estão em constante mudanças. Observou o tamanho da complexidade? Se não, compare gerenciar essa quantidade de dados com gerenciar um almoxarifado ou o quadro de funcionários de uma empresa. Agora você vai ter uma idéia abrangente da complexidade dos dados como recursos corporativos. Na década de 1960 as empresas começaram a perceber que a forma de armazenamento dos dados que era utilizada naquela época em um futuro muito próximo iria tornar-se inviável, devido principalmente ao constante aumento no volume de dados armazenados e o aumento do número de usuários acessando esses dados. Surgiu então a necessidade de desenvolver um software que controlasse o armazenamento, controle de acesso e redundância desses dados. Dessa necessidade foi que nasceu os SGBD`s (Sistemas Gerenciadores de Banco de Dados) e os DBA`s (Administradores de banco de dados). A integração entre especialistas, DBA`s e os sistemas de gerenciamento de banco de dados originou o que podemos chamar de ambiente de banco de dados. 3.2 O ambiente de banco de dados Falamos anteriormente que quando as empresas começaram a observar os dados como um recurso corporativo que poderia ser utilizado como vantagem competitiva no mercado que atuam, elas investiram na idéia de desenvolver um sistema de gerenciamento de banco de dados e criar profissionais que seriam responsáveis por tudo o que era relativo a dados (Administradores e especializas em dados). A junção desses profissionais com o sistema de gerenciamento e os equipamentos utilizados para armazenar os dados originou o “ambiente de banco de dados”. O ambiente de banco de dados surgiu para corrigir todos os problemas no ambiente de desenvolvimento e de produção que estivessem relacionados aos dados. Citaremos abaixo algumas características oferecidas pelo ambiente de banco de dados: Compartilhamento dos dados; Armazenamento de grandes volumes de dados; Melhoria na correção dos dados; Controle de redundância dos dados; Controle de acesso aos dados; Ferramentas de segurança dos dados; Ferramentas de privacidade dos dados; Cópia de segurança dos dados,e Operações de recuperação dos dados. Reunindo esse aparato completo de ferramentas e atividades tornam o ambiente capaz de resolver quase todos os problemas relacionados a dados que venham a surgir. Como o nosso foco é falar das tecnologias de banco de dados para os sistemas de informação, a cada capítulo abordaremos um passo a passo dos diversos componentes existentes em um ambiente de banco de dados, pois em um ambiente de sistemas de informação existe internamente um ambiente de banco de dados. MÓDULO 4 – DOS DADOS AOS BANCOS DE DADOS Os capítulos anteriores foram responsáveis por conceituar os dados e a sua importância no ambiente corporativo. Este capítulo será responsável por abordar os bancos de dados e os motivos que levaram o surgimento dos sistemas de gerenciamento de banco de dados. Antes do surgimento dos bancos de dados, todos os dados existentes nos sistemas de informação eram armazenados em arquivos simples. Como as aplicações não eram tão sofisticadas como as que temos atualmente, alguns programas requeriam os dados de apenas um arquivo e outros de vários arquivos separados. Normalmente todos os arquivos utilizados no armazenamento dos dados eram criados para apenas uma única aplicação, não existindo o compartilhamento de dados e arquivos entre diferentes aplicações. Com o aumento da importância dada aos sistemas de informação e a evolução e barateamento dos equipamentos de hardware, fizeram com que as regras de armazenamento fossem alteradas. Ficou cada vez mais claro que o foco nos dados deveria ser maior, tanto quanto o foco dado ao desenvolvimento do sistema. O tamanho e a sofisticação dos sistemas acarretaram no aumento do armazenamento de dados nos arquivos, fazendo com que a redundância dos dados também acompanhasse esse crescimento. Problemas como exatidão dos dados geravam pesadelos enormes para as grandes empresas, devido principalmente a dependência cada vez maior que elas tinham dos sistemas de informação para o gerenciamento dos seus negócios. Se resumirmos alguns problemas com o armazenamento dos dados em arquivos, podemos encontrar os seguintes fatores: O armazenamento dos dados era feito em formato e arquivos diferentes; A duplicação dos dados gerando arquivos redundantes acontecia freqüentemente devido aos dados não serem compartilhados entre os programas; Os arquivos de armazenamento sofriam danos que dificilmente poderiam ser recuperados; Os dados estavam vulneráveis a roubos e danos acidentais; Os programas dependiam da maneira como os dados eram armazenados, se essa forma fosse alterada, o programa também deveria ser alterado. Para mudar o cenário que observamos nas citações acima, surgiu o conceito de Banco de Dados. 4.1 Conceitos de Banco de Dados O conceito de banco de dados foi um dos principais responsáveis pelo nível de tecnologia em que os sistemas de informação encontram-se nos dias atuais. Seus recursos gerenciais e técnicos de armazenamento são o centro das atenções quando se fala em desenvolver um sistema de informação de qualidade. O conceito de banco de dados é formado por alguns princípios básicos: Foi criado um ambiente de dados centralizado que proporcionasse as empresas considerar os dados como um recurso corporativo. Essa centralização permitiu que os dados fossem compartilhados entre diversos aplicativos e usuários; Possibilidade de integrar os dados de forma não-redundante; Ambiente completo de gerenciamento dos dados que permite o controle dos dados, segurança, recuperação, além do controle de concorrência. O ambiente formado pelos sistemas de informação é bem amplo. Ele é composto por diversos componentes de hardware, software, pessoas, redes e dados. Cada um desses ambientes possui um foco específico e variado. Com o surgimento dos primeiros sistemas de informação também conhecidos como sistemas de processamento de dados, a maioria das atenções era totalmente direcionada para o sistema, sendo destinada pouca atenção aos dados e a forma como eles eram estruturados. Os dados só passaram a ser reconhecidos quando as funções empresariais tornaram-se cada vez mais dependentes dos sistemas de informação. Dados sobre produtos, clientes, funcionários, fornecedores e concorrentes armazenados de forma apropriada, forneceriam um importante vantagem competitiva para a empresa. Com o reconhecimento dos dados como um importante recurso corporativo, tornou-se cada vez mais clara a necessidade de gerenciá-lo de forma organizada, sendo necessário um software que pudesse ao mesmo tempo proteger, gerenciar e fornecer acesso compartilhado a esses dados, para que ele pudesse cumprir o seu destino de importante recurso corporativo. Dessa necessidade gerenciamento de banco de dados. nasceram os sistemas de MÓDULO 5 – DOS DADOS AOS BANCOS DE DADOS 5.2 SGBD – Sistemas de gerenciamento de banco de dados Um SGBD é composto por uma coleção de programas que permitem aos usuários definir, construir e manipular bancos de dados para diversos tipos de aplicações. Com eles podemos: Definir um banco de dados, especificando e descrevendo todas as características de armazenamento dos dados; Construir um banco de dados em si; Manipular uma série de funções que permitem a consulta, atualização, inserção e exclusão dos dados. Os primeiros SGBD`s surgiram na década de 1960 e eram muito simples, se comparado com o que temos atualmente. Os sistemas atuais possuem as seguintes funções: Controle de redundância dos dados: A redundância consiste no armazenamento de uma mesma informação em locais diferentes, provocando problemas de grande utilização do espaço computacional para armazenamento dos dados. O principal problema da redundância dos dados é a sua inconsistência, pois duas informações podem aparecer em locais distintos, mas com valores diferentes. Os SGBD`s possuem um controle sobre a redundância e inconsistência dos dados. Controle de acesso: Quando se trabalha com dados compartilhados, é necessário ter o controle completo do que está autorizado ou não para acessar os dados do banco de dados. Para controlar esse acesso, são criados usuários e grupos de usuários que recebem uma conta de acesso aos dados. Algumas contas possuem restrições e privilégios diferenciados. Compartilhamento dos dados: O SGBD controla o acesso concorrente dos dados em um ambiente de múltiplos usuários, possibilitando o compartilhamento desses dados e garantindo aos vários usuários a realização de atualizações sobre o mesmo conjunto de dados. Controle de transações: O SGBD permite a realização de um conjunto de operações sobre o B.D que deve ser executada integralmente sem a ocorrência de falhas. Essas operações são chamadas de transações e devem ser executadas com segurança. Possibilidade de múltiplas interfaces: Quando se têm vários usuários acessando, pode ser que esses vários usuários representem interfaces diferentes. Podemos chamar de interfaces as consultas de dados, programação, etc. Relacionamento complexo entre os dados: Em uma base de dados podem existir diversos inter-relacionamentos entre os dados existentes nesta base. O SGBD possui a capacidade de representar esses relacionamentos entre os dados, bem como recuperá-los e modificá-los. Backup e restauração dos dados: Recursos são fornecidos para restauração dos dados caso uma falha venha a ocorrer. Apesar de todas as vantagens que falamos sobre os SGBD`s que falamos acima, podemos dizer que um SGBD é um sistema caro que requer um alto investimento que dependerá do porte da empresa. As empresas que desejarem adquirir um SGBD devem está ciente do investimento que deverá ser feito para que todas as funções que falamos acima sejam aplicadas nos seus dados. MÓDULO 6 – A INTEGRAÇÃO E A REDUNDÂNCIA DOS DADOS Na área de gerenciamento dos dados as questões que envolvem a redundância dos dados e a sua integração, são consideradas questões críticas e merecem uma atenção especial. Quando falamos em integração dos dados, estamos no referindo a sua habilidade de juntar partes de dados e integrá-los dentro de um sistema de informação. Exemplo de integração: Imagine um registro que contenha os dados de nome, endereço, e-mail e telefones de um cliente. Um outro registro contém todas as informações de venda dos clientes. Pode haver um momento em que se queira premiar ou oferecer alguma promoção para o cliente que comprou mais produtos, sendo necessário entrar em contato com o cliente. Teríamos então uma integração entre o registro do cliente e o registro de compras do cliente. Quando se fala em redundância dos dados você pode logo imaginar na existência de um mesmo dado armazenado no mesmo sistema de informação. A redundância dos dados diferentemente da integração é uma característica negativa. A integração dos dados e a redundância dos dados, são características que possuem uma forte ligação e serão abordadas no decorrer do capítulo. Os dados que estão armazenados em um sistema de informação são uma descrição do mundo real. Por mais valioso que sejam esses dados que estão armazenados, se eles estiverem duplicados ou armazenados diversas vezes dentro do mesmo sistema de informação, podem resultar problemas de perca de desempenho no sistema, incertezas na exatidão dos dados e conseqüentemente a redução da competitividade da empresa no mercado que atua. Citaremos abaixo alguns problemas causados pela redundância dos dados: Utilização de grandes quantidades de espaço que estão destinados ao armazenamento de dados no sistema; A atualização de todos esses dados que estão replicados consome tempo e recurso computacional do sistema, acarretando na perca de desempenho do sistema. A integração dos dados pode ser comprometida com os problemas causados pela redundância dos dados, pois a integração necessita da exatidão dos dados. Se eles estão redundantes, quem garante que eles foram ou não atualizados. Se ocorrer alguma falha na atualização de todos os dados que estão redundantes, a integridade dos dados será comprometida. 6.1 Um exemplo de redundância de dados entre vários arquivos Observe a seguinte situação: Dados envolvidos: Nomes e endereços de um cadastro de clientes. Situação: Diariamente, os diversos setores de uma grande empresa necessitam dos dados que estão armazenados no cadastro de clientes da empresa. Como não existe um sistema de informação na empresa que integre todos os setores, o departamento de contas a receber, de vendas e de crédito são forçados a duplicar esses dados em diversos registros, um para cada departamento. Arquivo de registro do departamento de vendas ID 01012 01023 01042 Nome Paulo Augusto Antônio Carlos Adriano Maia Endereço Rua T, 182 Rua Celeste, 1222 Rua César Cals, 134 Arquivo de registro do departamento de contas a receber ID 01012 01023 01042 Nome Paulo Augusto Antônio Carlos Adriano Maia Endereço Rua T, 182 Rua Celeste, 1222 Rua César Cals, 134 O problema na duplicação desses arquivos e conseqüentemente a geração de redundância começa agora. Vamos supor que o cliente “’01042” se muda da rua César Cals, para a Av. Beira Mar. Essa mudança foi registrada com sucesso no registro de vendas, só que o registro de contas a receber não foi atualizado, gerando dados inconsistentes nos registros da empresa. A empresa não pode mais confiar nos seus arquivos de registros, pois quem pode garantir qual o endereço correto do cliente “’01042”. Observamos que o problema de integridade dos dados pode ser algo comum, quando não existe o controle de redundância dos dados que são armazenados em diversos arquivos. MÓDULO 7 – A INTEGRAÇÃO E A REDUNDÂNCIA DOS DADOS 7.2 Um exemplo de integração e redundância dos dados envolvendo vários arquivos. OBS: A redundância dos dados em apenas um arquivo acarreta o mesmo problema que é causado pela redundância dos dados em diversos arquivos. Desperdício no espaço destinado ao armazenamento dos dados; Grande esforço computacional para a atualização dos dados redundantes; Problemas na integridade dos dados. Situação 2: Domínio: Empresa que trabalha com a venda de equipamentos esportivos. Clientes: Academias e lojas de materiais esportivos. Registros da empresa: Cadastro de vendedores e cadastro de clientes. Arquivos de registro: 1.Registro de vendedores ID_Vendedor Nome 001 Paulo 002 Carlos 003 José 2. Registro de clientes ID_Cliente Nome Comissão 8% 5% 10% ID_Vendedor 010 015 017 Carlos José Mário Augusto Ibes Sampaio 003 001 003 Observando os registros dos clientes e dos vendedores notamos que nenhum dos registros apresentam dados redundantes. O registro dos clientes possui um campo com um identificador dos vendedores. Mas porque ele está ai além de estar no registro dos vendedores? O identificador dos vendedores aparece no registro dos clientes para que seja identificado qual vendedor é o responsável por determinado cliente. Essa situação representa um relacionamento um-para-muitos entre vendedores e clientes (Abordaremos o assunto sobre relacionamentos no próximo capítulo). Com esse tipo de relacionamento, um vendedor poderá ter diversos clientes, enquanto cada cliente é atendido por apenas um vendedor. Observando o registro de clientes, o identificador do cliente “003” aparece em dois clientes, será que essa repetição consiste em uma redundância de dados? A resposta é “NÃO”. Para que os dados sejam considerados redundantes, é necessário que um mesmo fato esteja registrado mais de uma vez. O número 003 no registro de vendedores o caracteriza como o identificador de um vendedor. O número 003 no registro de clientes caracteriza que o vendedor número 003 é responsável pelos clientes 010 e 017. A recuperação dos dados de cada um dos registros de forma individual não é considerada uma tarefa complicada. Agora se houver a necessidade de encontrar um registro que dependa da ligação entre as tabelas, as coisas tornam-se mais complicadas. Ex: Encontrar o nome do vendedor que é responsável pelo cliente 001. Essa necessidade não pode ser satisfeita recuperando os dados de apenas um arquivo. Para que esta operação seja efetuada, é necessário que seja feita a integração dos dados existentes em ambos os registros. Para que seja encontrado o nome do vendedor responsável por um determinado cliente, primeiro devemos recuperar os dados do cliente no registro de clientes, usando o identificador do vendedor que foi recuperado no registro de clientes é que será possível encontrar o nome do vendedor no registro de vendedores. Esse tipo de recuperação de dados em que é preciso trabalhar com vários arquivos e comandos, não é o tipo de atividade ideal, pois está sujeita a aparição de erros e ocasiona problema de desempenho. Embora os arquivos não estejam com dados redundantes, eles não possuem nenhum tipo de integração, fazendo com que seja extremamente complicado recuperar dados nos dois registros que estejam relacionados entre si. Sabendo dos problemas que são causados pela falta de integração entre os dois registros, então a solução ideal seria juntar os dois registros em um só. Vamos juntá-los e observar os resultados. ID_Cliente Nome 010 Carlos José 015 Mário Augusto 017 Ibes Sampaio ID_Vendedor ID_Vendedor Nome 003 003 José Comissão 10% 001 001 Paulo 8% 003 003 José 10% Agora temos um registro muito bem integrado. O sistema que necessitar recuperar o nome do vendedor relativo ao cliente X só necessitará fazer apenas um único acesso. Resolvemos então o problema anterior do acesso a vários arquivos, só que infelizmente essa integração gerou redundância nos dados. Onde? O vendedor José está repetido duas vezes, sendo considerado uma redundância de dados, pois repete o mesmo fato diversas vezes dentro de um mesmo arquivo. Se analisarmos do ponto de vista lógico, não faz muito sentido a repetição do nome do vendedor e da sua comissão. Outro problema existente nesse registro é a sua má estruturação, pois dois tipos diferentes de dados estão fundidos em um único arquivo. Mais um problema grave, se o cliente 015 decidir não ser mais cliente, seus dados serão apagados e juntamente com a exclusão do registro do cliente 015 irão os registros do vendedor 001. Assim como a exclusão, a inclusão também é complicada. Se a empresa desejar cadastrar um novo vendedor, esse cadastro não poderá ser feito até que esse tenha pelo menos um cliente. Encontramos um grande dilema na estrutura de dados em que são envolvidas a integração e a redundância dos dados. Arquivos separados não possuem redundância, mas possuem pouca integração. Arquivos juntos estão muito bem integrados, eliminando os múltiplos acessos e os múltiplos comandos, mas infelizmente possuem muita redundância nos dados. Nenhuma das duas situações podem ser aceitas, pois a baixa integração torna o sistema de informação lento e a redundância causa problemas na exatidão dos dados. Para resolver os problemas de redundância e integração dos dados é que foram criados os SGBD`s. Qualquer sistema de armazenamento e recuperação dos dados que não possua as características que solucionem problemas que envolvem redundância e integração dos dados, não pode ser considerado um SGBD. MÓDULO 8 – MODELAGEM DE DADOS I Em 1976 foi publicado um trabalho que definia uma possível abordagem para o processo de modelagem de dados. O trabalho intitulado de “The EntityRelationship Model” passou a ser considerado como uma referência para o processo de modelagem dos dados. A abordagem entidade-relacionamento escrita por Peter P. Chen é composta por técnicas de diagramação e de conceitos que devem ser compreendidos e respeitados. A diagramação entidade-relacionamento é muito simples, servindo como representação dos conceitos que são manipulados por ela. É utilizado na sua representação um retângulo que representa as entidades, um losango que têm o papel de representar os relacionamentos e os balões que indica e aloca os atributos. Essa proposta de modelagem de dados mantêm-se atualizada até os dias de hoje, pois é ao mesmo tempo completa e inquestionável. Sua maior qualidade está ligada principalmente a sua simplicidade e objetividade. Se observarmos bem o modelo que foi proposto por Chen ele define a seguinte lei: “O mundo está cheio de coisas que possuem características próprias e que se relacionam entre si” (Lei conhecida como a lei do mundo). Vamos pegar a lei do mundo e tentar conceituar os elementos que são do nosso interesse e fazem parte do modelo de entidade e relacionamento. Os elementos são os seguintes: Entidades Relacionamentos Atributos Devemos definir que dentro do universo que estamos observando será reconhecido os objetos ou as “coisas”, sendo esses objetos elementos individualizados que podem ou não fazer parte de um conjunto ou categoria, se for levado em conta a sua semelhança. Ex: Análise de um ambiente de produção existente em uma fábrica Elementos identificados: Máquinas; Funcionários; Ferramentas; Procedimentos de operação; Procedimentos de verificação; Peças produzidas. Analisando todos os elementos que foram observados, percebemos a existência de conjuntos distintos de elementos. As máquinas representam todas as máquinas que foram observadas, independente da sua utilização. Os funcionários representam todos os funcionários observados, independente da função que desempenham. As ferramentas representam todas as ferramentas, independente da finalidade. Peças que representam todas as peças produzidas. Todos os elementos que foram identificados possuem características em comum, fazendo com que sejam enquadrados em conjuntos particulares, sendo essas características inerentes a todos os objetos de um mesmo conjunto. Analisando alguns conceitos e exemplos que foram citados, podemos chegar à abordagem entidade – relacionamento. Lei do mundo Objetos individualizados semelhantes Características próprias Inter-relacionamento dos objetos MER Modelo relacionamento e Entidades Entidade – Atributos Relacionamentos. 8.1 As entidades Existem várias normas de identificação das entidades. Segundo Shlers & Mellor, o objeto deverá ser reconhecido ou os elementos individualizados através dos elementos abaixo: Coisas tangíveis Funções exercidas pelos elementos Eventos ou ocorrências Interações Especificações. Os criadores da definição procuraram deixar claro que essa não é necessariamente uma definição formal no processo de classificação dos elementos. Com o ganho de experiência na modelagem, todos esses processos de classificatórios passam a ser intuitivos, não sendo necessária a busca de um enquadramento ideal para a classificação. 8.1.1 As coisas tangíveis As coisas tangíveis representam tudo àquilo que pode ser tocado. Isso engloba todos os elementos que possuam uma existência concreta. Ex: Um carro; Um livro; Um cavalo; Uma caneta. O agrupamento de todos esses elementos vai depender do ponto de vista que foi adotado no processo de modelagem, onde o nível de abstração poderá ter um grau maior ou menor, levando a formação de diferentes grupos. Ex: Entidades (Elementos) Animal Equipamento Meio de transporte Objetos Cachorro, gato, cavalo Computador, calculadora, Ipod Carro, ônibus, avião. 8.1.2 As funções As funções possuem a responsabilidade de definir os atributos. É feita a classificação e capacitação com base em características existentes em um dado elemento. É feita a especificação da sua atuação no ambiente que está inserido. Ex: Entidades (Conjuntos) Especialista Atendente Cliente Objetos do conjunto Médico ortopedista, analista de sistemas Recepcionista de eventos, gerente de uma pousada Estudante, paciente Coisas tangíveis Pessoa Pessoa Pessoa 8.1.3 Eventos ou ocorrências Alguns objetos só são percebidos quando alguma ação acontece. São eles: Ex: Acidente rodoviário; Evento festivo; Uma partida de voleibol. A maioria dos dados que fazem parte desses eventos são dados de objetivos participantes do evento. 5.1.4 As interações As interações são resultantes da associação de objetos em função de um processo executado. Ex: Compra de um barco; Adoção de um animal; Venda realizada de um imóvel. Os objetos que fazem parte das interações, passam a existir de forma individualizada. 8.1.5 As especificações Encerrando a lista de elementos identificados nas entidades temos as especificações. Elas são formadas por conjuntos de elementos que definem as características de outros objetos. Se essas especificações forem analisadas isoladamente elas não representarão um objeto, mas quando são seguidas ou aplicadas, essas especificações dão origem a um objeto. Os objetos especificados podem ser omitidos dos modelos conceituais de dados, desde que seus atributos sejam alocados aos objetos aos quais eles referenciam. Ex: Aparelho de ar-condicionado: Objetos tangíveis Ar-condicionado Cor Modelo Data de produção Número de série Objetos especificados Modelo de ar-condicionado Capacidade Voltagem Altura Largura 8.2 Os atributos Quando observamos um objeto em um determinado ambiente, estamos na verdade reconhecendo os elementos através de suas características. Essas características são comuns a todos os objetos que pertencem a um mesmo conjunto. Ex: Quando estamos andando na rua e percebemos um objeto passando, somos capazes de definir no primeiro instante se é um carro, uma moto ou uma pessoa. Esse tipo de reconhecimento é realizado através de um conjunto de características que serão julgadas naquele momento. As características que definem um carro são aplicadas a quase todos os carros. As características que definem uma moto são aplicadas a quase todas as motos. As características que definem uma pessoa são aplicadas a quase todas as pessoas. Carro Marca: Ford Placa: MEI6600 Modelo: Ford Focus Ano de fabricação: 2007 Pessoa Cor cabelo: Vermelho Estatura: 1,75 Peso: 63kg Idade: 33 anos As exceções existentes: Um carro do exército não possui placa; Uma pessoa careca não apresenta as características de cor dos cabelos. Analisando todos esses atributos é que podemos classificá-los em conjuntos distintos. MÓDULO 9 – MODELAGEM DE DADOS I 9.3 Os relacionamentos Até agora falamos sobre a análise de um determinado ambiente e nele mapeamos e identificamos todos os objetos existentes. Além do mapeamento e da identificação, devemos mapear o relacionamento existente entre os objetos, pois quando observamos alguns objetos, reconhecemos as relações existentes entre eles. Em alguns casos a observação de um relacionamento é o ponto inicial para a identificação do objeto. Quando fazemos o mapeamento e a identificação de um relacionamento, é possível demonstrar como um objeto se comporta em relação aos demais, o seu grau de dependência em relação aos outros objetos juntamente com a associação de dados existentes entre eles, além de outros fatores. Os objetos de um ambiente podem se relacionar independente do tipo de cada um. O grau de fidelidade que é atingido durante o processo de modelagem é que estabelecerá se a associação é válida ou não, significando que se um relacionamento espelha a realidade, ele poderá envolver qualquer tipo ou instância de objeto. 9.3.1 Tipos de relacionamentos Relacionamento entre instâncias de objetos de tipos diferentes: é associada à instância de um objeto de um tipo a outro de outro tipo. É o tipo de relacionamento mais utilizado. Exemplo 01: “Marcos é proprietário de uma moto vermelha”. Objetos envolvidos: Pessoa: instanciado por “Marcos”. Moto: instanciado por “moto vermelha”. Caracterização do objeto: Pessoa: Nome, data de nascimento, RG, CPF. Moto: Marca, modelo, motor. Relacionamento: “Pessoa é proprietária de Moto” Caracterização do relacionamento: Nem toda pessoa é proprietária de uma moto. Uma moto pode pertencer a uma pessoa ou não. Algumas pessoas têm mais de uma moto. Se uma moto pertence a uma pessoa ela não pertencerá a mais ninguém. Representação: Processo utilizado para o mapeamento de dois ou mais objetos e para o mapeamento de mais de um tipo de relacionamento entre os mesmos objetos. Exemplo 02: “Uma moto é de propriedade de uma pessoa e pode ser utilizada por outras pessoas para sua locomoção”. “Uma pessoa utiliza um imóvel para morar”. Objetos envolvidos: Pessoa Moto Imóvel Caracterização do objeto: Pessoa: Nome, data de nascimento, RG, CPF. Moto: Marca, modelo, motor. Imóvel: Localização, metragem, registro. Relacionamento: “Pessoa utiliza moto” “Pessoa utiliza imóvel” Relacionamento entre os objetos: Pessoa utiliza moto. o Nem toda pessoa utiliza uma moto. o Uma moto pode ser utilizada por uma ou mais pessoas. o Algumas pessoas utilizam mais de uma moto. o Uma moto sempre será utilizada por pelo menos uma pessoa. Pessoa utiliza imóvel o Toda pessoa utiliza um, e só um imóvel para morar. o Um imóvel pode ser utilizado por uma ou mais pessoas. o Um imóvel nem sempre será utilizado por uma pessoa. Representação: Existem vários outros tipos de relacionamentos que podem ser abordados. Uns mais simples e outros mais complexos, depende muito do número de entidades que estão envolvidas no ambiente. MÓDULO 10 – MODELAGEM DE DADOS II Os relacionamentos devem ser enquadrados em três grandes grupos para que possam cumprir a finalidade de expressar a semântica das associações entre as entidades. As três alternativas são: 1:1 (Um para um) 1:N (Um para muitos) N:M (Muitos para muitos) 10.1 Relacionamento 1:1 Esse tipo de relacionamento denota um caso especial de relacionamento 1:N onde o valor de N é fixado obrigatoriamente em 1. O seu grau de relacionamento é bem restrito quando falamos em associações de entidades, fazendo com que seja um relacionamento pouco comum no dia-a-dia. Com o relacionamento 1:1 temos que uma entidade do tipo A só pode se relacionar com uma entidade do tipo B, e que uma entidade do tipo B só pode se relacionar com uma entidade do tipo A. Podemos representar a relação existente entre as entidades de um relacionamento 1:1 através do conjunto abaixo: Percebemos claramente que cada entidade do conjunto A se relaciona apenas com uma entidade do conjunto B e vice-versa. “Uma pessoa recebe uma e só uma certidão de nascimento e por sua vez uma certidão de nascimento só pertence a uma pessoa”. Os relacionamentos 1:1 são difíceis de serem caracterizados, pois a mudança de visão ou interpretação pode fazer com que o relacionamento possa ser questionado e reconsiderado. Ex: No caso anterior da pessoa receber apenas uma certidão de nascimento. Se por acaso uma outra certidão for emitida devido a algum tipo de problema que ocorreu na primeira, o relacionamento passará de 1:1 para 1:N. Quando falamos em estrutura de dados para a construção de um banco de dados, os relacionamento 1:1 e 1:N são bem semelhantes, e eventuais mudanças de um relacionamento 1:1 para 1:N não possui efeito traumático. 10.1.1 Tipos de relacionamentos 1:1 (0,1): (0,1): Significa que uma entidade do primeiro conjunto pode ou não se relacionar com uma entidade do segundo conjunto, porém podendo ter apenas um relacionamento e vice-versa. Tipo de relacionamento encontrado na formação de pares entre duas entidades, sendo esses pares opcionais. (1,1): (0,1): Significa que a primeira entidade obrigatoriamente possui um relacionamento, sendo opcional para a segunda entidade. Em ambos os casos, apenas um relacionamento é permitido. Esse tipo de relacionamento é encontrado nos casos em que uma entidade possui ou controla a outra de alguma forma. Em alguns casos as entidades podem ser unidades em uma só entidade. (0,1): (1,1): Similar ao relacionamento (1,1): (0,1). (1,1): (1,1): Tipo de relacionamento pouco encontrado, pois ele indica que uma entidade não pode existir sem estar relacionada a outra. Normalmente esse tipo de relacionamento é substituído pela unificação das entidades. Não é um relacionamento muito recomendado, pois exige que as entidades envolvidas sejam criadas juntas. 10.2 Relacionamento 1:N Diferente do relacionamento 1:1 que possui poucos casos de ocorrência, o relacionamento 1:N é bastante comum, sendo encontrado com freqüência em grande parte dos modelos que são construídos. Podemos encontrar no relacionamento 1:N possíveis restrições em relação as associações entre entidades. Exemplo de restrição: apesar de uma entidade do conjunto A se associar com N entidades do conjunto B, cada entidade do conjunto B só pode está associada a uma entidade do conjunto A. As associações existentes no relacionamento 1:N são semelhantes a uma árvore, onde a raiz pode dar origem a vários ramos, mas um ramo só será originado de uma raiz. Exemplo de Relacionamento 1:N (Um para muitos) Um aluno pode está inscrito em 0 (nenhum), 1(um) ou N (diversos) cursos Um professor é designado para atender 0 (nenhum), 1(uma) ou N (diversas) turmas. 10.2.1 Tipos de relacionamentos 1:N (0,1): (0,N): A primeira entidade do relacionamento 1:N pode ou não participar do relacionamento, mas apenas uma única vez. A segunda entidade pode ou não participar do relacionamento, ou pode fazê-lo várias vezes. Relacionamento muito comum, normalmente significa que duas entidades não possuem nenhum relacionamento de propriedade ou restrição e existência, podendo ser colocado em uma relação hierárquica. (0,N): (0,1): Similar ao relacionamento (0,1): (0,N). (0,1): (1,N): Esse tipo de relacionamento indica na maioria das vezes uma relação hierárquica, onde a primeira entidade pode pertencer ou não a relação, enquanto a segunda entidade obrigatoriamente deve pertencer a relação. Esse tipo de relacionamento não é muito comum, pois exige que uma instância possua no mínimo uma “filha”. Sua utilização pode ser necessária em casos que algo para existir deva ter pelo menos uma parte, essa parte terá vida própria, mesmo que só possa ser utilizada em um único local. (1,N): (0,1): Similar ao relacionamento (0,1): (1,N). (1,1): (0,N): Tipo de relacionamento que indica a “maternidade” da segunda entidade com relação a primeira, onde cada instância da primeira entidade é obrigada a possuir uma “mãe” e apenas uma, que seja instância da primeira entidade. OBS: Tipo de relacionamento muito comum. (0,N): (1,1): Similar ao relacionamento (1,1): (0,N). (1,1): (1,N): Relacionamento em que é encontrada uma ”maternidade” da segunda entidade em relação a primeira, onde cada instância da primeira entidade é obrigada a possuir uma “mãe” e apenas uma, que seja instância da primeira entidade. É obrigado ainda que a entidade “mãe” possua uma “filha”. Obs: Tipo de relacionamento que possui o inconveniente de exigir a criação de uma entidade “filha”, para criar a entidade “mãe”. (1,N): (1,1): Similar ao relacionamento (1,1): (1,N). 6.3 Relacionamento N:M O relacionamento N:M representa uma associação entre entidades onde não existe restrições com relação as possíveis relações que serão estabelecidas entre as entidades do conjunto A e as entidade do conjunto B. Em termos de estrutura de representação de entidades, podemos considerar o relacionamento N:M como uma associação matricial. Nas colunas temos as entidades do conjunto A e nas linhas temos as entidades do conjunto B. Cada interseção entre linhas e colunas, representa um relacionamento entre as entidades. Ex: Entidades B_01 B_02 B_03 A_01 X X A_02 X A_03 X X X O mesmo exemplo transformado em conjuntos: Não é obrigado que todas as entidades existentes no conjunto “A” estejam relacionadas a várias entidades do conjunto “B”. Algumas podem não ter nenhum relacionamento, outras somente um relacionamento e outras, vários relacionamentos. O mesmo fato é válido para as entidades do conjunto B. Uma pergunta que gera dúvidas em várias pessoas: “Porque utilizar M:N em vez de M:M? ” As letras diferentes são utilizadas para que fique claro que as duas grandezas são totalmente diferentes. Ex: O conjunto A pode ser relacionar com até 8 entidades do conjunto B. Uma entidade do conj. B não necessariamente precisa se relacionar com até 8 entidades do conj. A. No caso ela poderia se relacionar com no máximo 3 entidades do conjunto A por exemplo. Neste caso teríamos M=3 e N=8. 10.3.1 Tipos de relacionamentos N:M (0,N): (0,N): Relacionamento muito comum que representa a forma mais geral dos relacionamentos, pois envolve todas as possibilidades para ambos os lados, além de ser também opcional. (0,N): (1,N): Relacionamento muito semelhante ao (0,N): (0,N), sendo considerado também um relacionamento muito comum, porém exige que haja pelo menos um relacionamento na segunda entidade. (1,N): (0,N): Similar ao relacionamento (0,N): (1,N). (1,N): (1,N): Relacionamento do tipo múltiplo que deve exigir a relação entre as entidades pelo menos uma vez. MÓDULO 11 – CONCEITOS DE BANCO DE DADOS RELACIONAL Apesar de todas as dificuldades que foram apresentadas anteriormente sobre o armazenamento de dados em arquivos lineares não redundantes e ao mesmo tempo integrados, essa idéia é uma ótima estrutura para um banco de dados desejável. Afinal, a organização de arquivos lineares é a estrutura de dados mais básica disponível e a mais utilizada. Tudo o que falamos agora é encontrado nos bancos de dados relacionais. Em um banco de dados relacional, os dados armazenados aparentam estar em arquivos lineares simples. Como o banco de dados relacional utiliza notações matemáticas em suas estruturas, esses arquivos lineares são chamados de relações, sendo que na prática chamamos mesmo é de “tabelas”. Quando falamos em dados armazenados em arquivos, cada linha representa um registro, e dentro de uma relação elas são chamadas de “tuplas”. Em arquivos as colunas são chamadas de campos, e nas relações as colunas são chamadas de “atributos”. Na prática, quando é falado em banco de dados relacionais os seguintes sinônimos são utilizados. Relações -> Tabelas Tuplas -> Linhas Registros -> Atributos Colunas -> Campos Existe uma diferença entre os conceitos usado nos arquivos e os conceitos utilizados nas relações, pois em um banco de dados relacional os dados apresentam estar armazenados em estruturas que parecem muito com um arquivo. As diferenças são: 1. As colunas existentes em uma relação podem estar em qualquer ordem, que o significado dos dados não é afetado. Isto não é possível em um arquivo. 2. As linhas de uma relação podem estar dispostas em qualquer ordem, o que não é possível em um arquivo. 3. Cada posição Linha/Coluna, que podemos chamar também de células devem ter apenas um único valor, o que não é necessariamente verdade em um arquivo. 4. Em uma relação não existe duas linhas que sejam idênticas, o que não é necessariamente verdade em um arquivo. 11.1 Chave primária “O que é uma chave?” Chave é um conjunto de atributos de uma relação que pode ser utilizada em qualquer operação que englobe atributos e valores de atributos. Em algumas relações podem ser encontradas várias chaves parecidas, também chamadas de chaves candidatas. Durante a fase de projeto lógico do banco de dados, o Administrador de Banco de Dados escolhe uma dessas chaves, aplicando a ela a restrição de estado único, sendo essa chave escolhida denominada de “chave primária”. Com a utilização de uma chave primária, uma relação nunca apresentará linhas repetidas, significando a possibilidade de identificar cada linha separadamente uma da outra. Ex: Tabela de vendedores CODIGO 001 002 NOME Carlos Eduardo CIDADE Fortaleza São Paulo ESTADO Ceará São Paulo CATEGORIA A03 A03 003 004 Marcos Paulo Campinas Rio de Janeiro São Paulo Rio de Janeiro A01 A04 VENDEDORES(CODIGO, NOME, CIDADE, ESTADO, CATEGORIA) Na tabela de vendedores a chave primária é representada pelo conjunto {CODIGO} uma vez que dois vendedores não apresentam o mesmo código. Qualquer outro conjunto de atributos da relação “vendedor” que contenha “codigo” (CODIGO, NOME, CIDADE) é uma chave candidata. No entanto a escolha da chave primária objetiva sempre minimizar a quantidade de atributos. Quando uma chave primária é construída com mais de um atributo da relação, ela é denominada de “chave primária composta”, caso o contrário é denominada de “chave primária simples”. Entre as várias chaves candidatas de uma relação, aquelas que não foram escolhidas como chaves primárias são denominadas de chaves alternativas e podem ser utilizadas como chave de ordenação ou consulta. Já as chaves que não fazem parte do conjunto de chaves candidatas são denominadas de chaves secundárias, pois não permite a identificação individual de uma linha da relação. A chave estrangeira referencia sua própria relação, não sendo necessário aparecer como chave na relação que participar. Exemplo de chave estrangeira: Observe na tabela de pedidos a existência de COD_FOR e COD_PECA como chaves estrangeiras nessa relação, pois COD_FOR e COD_PECA são chaves primárias nas relações peças e fornecedores. 11.2 As restrições de integridade As restrições de integridade são algumas normas que foram criadas e definidas para manter a total integridade dos dados armazenados no banco de dados. As principais restrições de integridade são: Restrição de domínio: Todos os valores dos atributos devem ser coerentes com o domínio correspondente. Ex: Idade: Número inteiro positivo Salário: Número real positivo Restrição de chave primária: Cada valor existente na chave primária deve ser único na relação a que pertence. Restrição de entidade: O valor de uma chave primária nunca pode ser nulo, pois o valor nulo não permite a identificação de uma linha. Restrição de referência: Toda referência que é feita de uma linha através de uma chave estrangeira deve ser verificada, pois toda linha que for referenciada deve previamente existir no banco de dados. 11.3 As operações de um banco de dados relacional Todas as operações executadas em um banco de dados relacional abordam quatro categorias, devendo obedecer as restrições de integridade que citamos anteriormente. As categorias são: 11.3.1 Operações sobre estruturas As operações que são realizadas sobre as estruturas apóiam os administradores de banco de dados nas definições e manutenções. São elas: Inserção: Adição de novas tabelas ao plano de dados. Remoção: Retirada de tabelas e atributos do esquema de dados. Atualização: Adição de algum tipo de atributo a uma tabela já existente no esquema dos dados. As operações realizadas na estrutura do banco de dados permitem a adaptação do BD às novas necessidades que possam surgir dentro da empresa. 11.3.2 Operações sobre os dados São operações realizadas sobre as linhas (tuplas) já existentes em um banco de dados. São elas: Inserção: Adição de uma ou mais linhas em uma relação. Remoção: Retirada de uma ou mais linhas de uma relação. Atualização: Alteração de algum valor de atributo de uma linha. 11.3.3 Operações sobre conjuntos São operações aplicadas a duas relações que obedecem à compatibilidade de união, apresentando atributos pertencentes ao mesmo domínio. União: O resultado da união de duas relações consiste no conjunto de todas as linhas das duas relações, sem a existência de redundância nas linhas. Interseção: O resultado da interseção de duas relações consiste no conjunto de todas as linhas que pertencem as duas relações. Diferença: é o resultado da diferença entre duas relações, gerando como resultado as linhas que pertencem a uma relação e não pertence à outra. Produto cartesiano: é aplicada a relação que não necessitam ser compatíveis para gerar a sua união. O resultado do produto cartesiano é uma relação que apresenta linhas que são formadas pela combinação de todas as linhas de uma relação com as linhas das outras. 11.3.4 Operações sobre tabelas São as operações aplicadas a qualquer tipo de relação. São elas: Seleção: Operação aplicada a um conjunto de relações com o propósito de selecionar um subconjunto de linhas com todos os seus atributos, que satisfazem a uma determinada condição que foi imposta. O conjunto de linhas resultantes dessa seleção forma uma relação temporária. Projeção: Operação aplicada a uma relação com o intuito de selecionar os atributos de uma relação com base em uma lista de atributos que foi fornecida. O resultado é uma tabela sem repetições. Junção: Operação utilizada para combinar linhas que foram selecionadas de duas ou mais relações, de modo a ser estabelecida virtualmente uma única linha. MÓDULO 12 – ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS Quando falamos em arquitetura, normalmente utilizamos esse termo para referenciar a forma como os aplicativos computacionais são estruturados e os hardwares estão dispostos e são utilizados. Utilizaremos o termo arquitetura no nosso capítulo para descrever a forma que os hardwares que são utilizados pelos sistemas de banco de dados estão dispostos e a forma como os SGBD`s serão utilizados. A indústria da computação está atravessando uma grande evolução atualmente o que proporcionou o barateamento dos equipamentos de hardware, possibilitando que os enormes e caros mainframes fossem substituídos por pequenos, mas potentes computadores. Os sistemas computacionais também acompanharam essa evolução, sendo desenvolvidos sobre arquiteturas flexíveis, eficientes e abertas. A escolha da arquitetura ideal é cercada de perguntas e dúvidas. A pergunta mais comum é: O que é uma arquitetura desse tipo? O que é necessário para promover a sua implementação? Quais são as principais vantagens e desvantagens em utilizar esse tipo de arquitetura? Vamos tirar todas essas dúvidas falando um pouco sobre cada uma das arquiteturas existentes. 12.1 Arquitetura de banco de dados centralizada O modelo computacional que é utilizado durante anos é o chamado sistema centralizado composto por um “host” e vários “terminais” onde os terminais possuem pouco poder de processamento e são compostos apenas pelo monitor e o teclado que ficam conectados a um grande computador “mainframe” que possui a capacidade de processar e armazenar os dados. Esse tipo de arquitetura tem como característica a necessidade de grandes investimentos tanto na aquisição de equipamentos como na manutenção dos mesmos. Considerando a utilização de um sistema de gerenciamento de banco de dados, ele e todos os seus aplicativos são hospedados no host e são acessados pelos terminais “burros” que estão conectados ao host. Dessa forma, todo o processamento dos dados é realizado no computador central. Principais Vantagens: Um único host fornece alto grau de segurança, concorrência e controle de cópias de segurança e recuperação. Não há necessidade de um diretório distribuído, já que todos os dados estão localizados em um único host. Não existe a necessidade de junções distribuídas, já que todos os dados estão em um único host. Principais desvantagens: Todos os acessos aos dados realizados por outro que não seja o host onde o banco de dados está, gera alto custo de comunicação. O host em que o banco de dados está localizado pode criar um “gargalo”, dependendo da quantidade de acessos simultâneos. Podem acontecer problemas de disponibilidade dos dados, se o host onde os dados estão armazenados sair do ar. 12.2 Arquitetura de banco de dados descentralizada Na arquitetura de banco de dados descentralizada os dados são armazenados em pelo menos dois hosts, sendo que a totalidade dos dados são armazenados em um único servidor e em outros servidores são mantidos parte do banco de dados. Todo tipo de transação que é realizada, é feita primeiro no servidor local antes de ser atualizado o servidor central. Principais vantagens: Autonomia local. Custo de comunicação reduzido, pois cada tabela pode ficar localizada no host que mais a usa. Aumento da disponibilidade dos dados. Principais desvantagens: Os diversos locais tem que se preocupar com a segurança, concorrência e cópias de segurança dos dados. 12.3 Arquitetura de banco de dados distribuída A arquitetura de banco de dados distribuída tem como característica a subdivisão dos dados e o seu compartilhamento entre vários computadores e a sua atualização é feita através de um sincronismo entre os computadores pertencentes ao circuito de distribuição. A arquitetura distribuída utiliza vários SGBD`s que são espalhados pelos hosts e contendo dados replicados em vários lugares em que bancos de dados diferentes são consultados ao mesmo tempo por um mesmo usuário. Os dados são distribuídos pela rede e quando é feita uma consulta pelo usuário essa distribuição é transparente, fazendo com que o usuário pense que ele está consultando os dados de apenas um computador e não vários computadores. Principais vantagens: Utilização de diferentes SGBD`s; Utilização de diferentes tipos de computadores; Possibilidade de acessar os dados de vários computadores como se fosse de apenas um só. Principais desvantagem: Esforço computacional para que seja mantida a consistência dos dados e a sua segurança. 12.4 Arquitetura de banco de dados replicada Na arquitetura de replicação, os dados são armazenados em hosts replicados permitindo que a falha de um determinado host possa ser contornada pelo host que irá substituí-lo. O banco de dados primário é igual ao banco de dados secundário. As transações atualizam primeiro o banco de dados primário para depois ser atualizado o banco de dados secundário. Principais Vantagens: Custo de comunicação reduzido para o acesso aos dados apenas para leitura, pois as cópias das tabelas podem estar localizadas nos hosts que mais utilizam. Melhor disponibilidade pois se um host com um banco X sair do ar, o outro host que possui a replicação do mesmo banco entra em ação. Principais desvantagens: O controle de concorrência em diversos bancos quando os dados das tabelas replicadas são atualizados. 12.5 Arquitetura de banco de dados paralela Na arquitetura de banco de dados paralela é utilizado o paralelismo de vários servidores que trabalham simultaneamente sobre os seus respectivos bancos de dados para a obtenção de um rápido resultado. No paralelismo os servidores são alinhados e cada um é responsável pelas sub-tarefas de um banco de dados. Toda unificação e distribuição é realizada por um hardware que tem o papel de roteamento, fazendo com que o particionamento seja de dois tipos: HASH: No particionamento HASH as tabelas são particionadas igualmente segundo uma chave de hashing. A sua utilização é ideal para aplicativos que enfatizam o acesso associado. RANGER: No particionamento RANGER as tabelas são divididas por vários valores de chaves. A sua utilização é ideal para aplicações que enfatizam a busca pela chave de particionamento. ESQUEMA: As tabelas são distribuídas entre vários servidores e a sua utilização é ideal quando se possui grandes quantidades de tabelas pequenas. MÓDULO 13 – CLIENTE/SERVIDOR ARQUITETURA DE BANCO DE DADOS Depois de falarmos no capítulo anterior sobre algumas arquiteturas de banco de dados existentes, vamos dedicar este capítulo a arquitetura mais utilizada atualmente. Na arquitetura cliente/servidor, são utilizados computadores pessoais e servidores conectados em uma rede local em que o processamento é dividido entre clientes e servidores. Relembrando os conceitos de rede local (LAN) vistos na disciplina de Redes, uma rede local é uma tida como uma organização de computadores conectados através de uma rede. Quando falamos em local, significa dizer que os computadores devem estar localizados próximos uns dos outros, dentro de um prédio ou em um prédio vizinho. Umas das principais vantagens de um LAN é o compartilhamento de recursos, então certamente também podemos compartilhar os dados existentes nos bancos de dados. Quando utilizamos um banco de dados na arquitetura cliente/servidor, todo o processamento é feito no computador cliente que roda o aplicativo que utiliza o banco de dados, e o computador servidor é responsável por hospedar o SGBD propriamente dito ou parte dele. A maioria das estruturas que utilizam a arquitetura cliente/servidor dedicam um computador exclusivo para rodar o SGBD. O aplicativo de banco de dados existente no computador cliente é chamado de front-end, sendo responsável pelo processamento de entrada e saída dos dados dos usuários. O sistema back-end existente no servidor é responsável por manipular o processamento dos dados e acesso ao disco. Exemplo de um processamento entre cliente e servidor. O usuário localizado no computador cliente gera uma consulta de dados para o servidor de banco de dados. O servidor de banco de dados executa a pesquisa e retorna somente os dados que foram solicitados pelo usuário. Podemos observar que existe uma grande vantagem nesse tipo de arquitetura que é a divisão de processamento entre dois sistemas, o que aproveita muito bem as características de cada hardware para cada aplicação específica. 13.1 Abordagem duas camadas Na abordagem duas camadas são utilizados softwares para tornar a localização dos dados transparente para o usuário que utiliza o computador cliente. Essa transparência é necessária, pois quando o usuário faz uma consulta no computador cliente, o software verifica primeiro se os dados solicitados estão no disco rígido do próprio PC do cliente. Se estiverem, os dados serão recuperados e a consulta é finalizada, se não, o software procura por esses dados automaticamente no servidor. 13.2 Abordagem três camadas A abordagem três camadas é bem mais sofisticada. Se o software não encontrar os dados no disco rígido local ou no servidor localizado na LAN, ele pode deixar a LAN através de um gatway e procurar os dados, por exemplo, em um mainframe que pode ser alcançado a partir de muitas LAN`s. Um outro exemplo de abordagem três camadas é aquela que utiliza os seguintes computadores: Computadores clientes; Servidores de aplicação; Servidores de banco de dados. Nessa abordagem a interação inicial é feita pelo computador cliente, mas ele agora pode solicitar uma variedade de aplicações que podem ser executadas pelo servidor de aplicação. O servidor de aplicação depende do servidor de banco de dados para fornecer os dados necessários para a aplicação. 13.3 Definição consensual da arquitetura cliente/servidor Consiste em um processo realizado no cliente e outro no servidor que podem ser distinguido um do outro, embora interajam totalmente; Tanto cliente como servidor podem operar em diferentes plataformas; Tanto a plataforma cliente como a plataforma servidora podem ser atualizadas sem que a atualização de uma dependa da atualização da outra; O servidor pode atender a vários clientes simultaneamente e em alguns casos um cliente pode acessar vários servidores; A ação em geral é iniciada pelo cliente e não pelo servidor. A interface gráfica amigável geralmente reside no computador cliente. O servidor de banco de dados deve fornecer proteção e segurança aos dados. 13.4 Vantagens e desvantagens da arquitetura cliente/servidor A crescente popularidade da arquitetura cliente/servidor se deve principalmente a evolução dos processadores, o que permite a eles a realização de trabalhos que anteriormente eram realizados apenas pelos mainframes. Essa evolução dos microprocessadores aliada as modernas técnicas de rede, permitiu a conexão de vários computadores clientes a um potente computador que funciona como servidor, substituindo com economia os sistemas centralizados. É característica básica da arquitetura cliente/servidor tirar o máximo de vantagens dos recursos computacionais, permitindo que plataformas diferentes trabalhem juntas onde cada uma faz o trabalho que melhor executa. Podemos combinar diferentes produtos de softwares para clientes, com diferentes produtos de softwares para servidores. Essa é uma vantagem para os fornecedores, pois eles podem interagir com o máximo de produtos complementares possíveis, aumentando assim a opção de produtos. Da mesma forma que existem vantagens, existe também as desvantagens da arquitetura cliente/servidor e uma das principais desvantagens na sua utilização é a sua complexidade. Com a sua complexidade, é difícil detectar os problemas quando o sistema falha. A independência de aplicativos também tem o seu lado negativo, pois a existência de vários front-ends no banco de dados aumenta a quantidade necessária de suporte à programação, pois variados códigos de programas devem ser desenvolvidos e mantidos. As alterações na estrutura do banco de dados podem causar problemas nos frontends que utilizam diferentes plataformas. A arquitetura cliente/servidor está sendo rapidamente incorporada aos sistemas de gerenciamento de banco de dados relacionais comerciais. A sua incorporação constitui na adequação dos SGBD`s para a divisão dos níveis clientes e servidores. Assim, alguns computadores podem rodar apenas o software cliente, outros podem ser máquinas servidoras dedicadas que rodam apenas o software servidor, enquanto outros computadores podem suportar ambos os módulos cliente e servidor. MÓDULO 14 – OS USUÁRIOS E O GERENCIAMENTO DOS BANCOS DE DADOS Com o surgimento dos primeiros sistemas de gerenciamento de banco de dados, algumas empresas perceberam a necessidade de criar um departamento para gerenciar os SGBD`s e o seu ambiente. Com o passar do tempo esse departamento de gerência também assumiu as responsabilidades de gerenciar os dados armazenados em arquivos, planejamento estratégico dos dados, estabelecimento de políticas e outras tarefas. A administração dos bancos de dados consiste na gerência dos dados e na gerência dos bancos de dados. Gerência dos dados: Tem como função o planejamento e análise, sendo responsável pelo estabelecimento de políticas e padrões dos dados fazendo com que os dados de uma empresa sejam promovidos como recurso competitivo. Gerência dos bancos de dados: Tem como característica a sua orientação a operações, realizando o monitoramento e o gerenciamento diário dos bancos de dados existentes na empresa e também o fornecimento de um suporte especializado os projetistas de programas durante o desenvolvimento dos sistemas de informação. 14.1 As vantagens da administração dos dados e dos bancos de dados Porque as empresas necessitam de departamentos para administração dos dados e dos bancos de dados??? A maioria das empresas tem feito esse tipo de questionamento. Como atualmente seus negócios dependem cada vez mais dos dados que estão armazenados, as funções que são desempenhadas pelo departamento de administração dos dados são reconhecidas e valorizadas como nunca foram antes. 14.1.1 Os dados como recurso corporativo compartilhado Considerando os dados como recurso corporativo, observamos que eles ocupam um lugar de respeito ao lado dos equipamentos, pessoal, dinheiro e outros recursos corporativos. Todos os aspectos citados são dependentes dos sistemas de informação da empresa e do fluxo de dados que trafega pelo sistema. As empresas não conseguem operar sem o seu estoque de dados de pessoal, clientes, fornecedores, produtos, etc. Por isso que dizemos que um dado é um importante recurso, pois por natureza ele descreve todos os outros recursos. Por ser um recurso tão importante os dados podem causar gargalos na sua utilização, pois a medida que as funções corporativas buscam um mesmo dado para executar as suas tarefas, a formação de um gargalo pode diminuir o acesso aos dados. A primeira providência a ser tomada para solucionar esse problema, é a aquisição de equipamentos mais modernos e em segunda instância, a duplicação desses dados para atender as necessidades das funções corporativas. Só que com a utilização dessas duas alternativas acabamos por gerar um novo problema, pois a aquisição de novos equipamentos possui certo limite e a duplicação dos dados acaba por gerar dados redundantes. Qual a solução agora? Chegamos à conclusão que qualquer recurso corporativo compartilhado requer um departamento para gerenciá-lo. Faz muito pouco sentido possuir um recurso importante e não ter um departamento para administrá-lo. 14.1.2 Gerenciamento operacional dos dados Falando a nível operacional, para que seja feito o gerenciamento diário de um banco de dado de uma empresa, é necessário a existência de um departamento exclusivo para esse gerenciamento. Os dados que são compartilhados para serem utilizadas pelas várias funções de um sistema e os seus respectivos usuários, podem ser gerenciados por um setor leal a empresa e não a alguma função em específico. Trabalhar com os dados a nível operacional requer um conhecimento muito bom do SGBD que está sendo utilizado e das tarefas específicas que envolvem a segurança dos dados, copias de segurança e recuperação. Esse tipo de tarefa não pode ser realizado por programadores e analistas, é necessário que todas elas sejam desempenhadas por um profissional especialista. 14.1.3 Gerenciamento de banco de dados que foram adquiridos externamente No ambiente de alguns sistemas de informação, alguns bancos de dados são adquiridos como parte de um sistema comprado. Um ERP é um ótimo exemplo de um software multifuncional integrado juntamente com um banco de dados. O pacote do ERP é composto pelos módulos de aplicação que gerenciam uma grande variedade de funções empresarias e ele geralmente inclui também no seu pacote de módulos um banco de dados central que é compartilhado por todos os módulos do ERP. O banco de dados existente no ERP não foi projetado pelo próprio pessoal da empresa, mas assim como falamos anteriormente, para gerenciamento dos recursos compartilhados existentes no banco de dados do ERP, é necessário ter um setor independente responsável. 14.1.4 Gerenciamento dos dados em um ambiente descentralizado Com o avanço das redes locais as empresas resolveram descentralizar algumas partes dos seus sistemas de informação, pois permitiria a alguns departamentos lidar com as necessidades do seu sistema de informação sem que dependesse da organização central do sistema de informação. Um dos motivos que gerou essa descentralização dos sistemas de informação era a diminuição do “overhead” do departamento central do sistema de informação. A descentralização não virou uma regra e a maioria das grandes empresas não implantou sistemas de informação totalmente descentralizados, sendo que grande parte utiliza o modelo híbrido formado por sistemas centralizados e sistemas descentralizados. 14.2 Os usuários de um banco de dados São vários os usuários que utilizam o banco de dados onde cada um possui uma necessidade em particular. Podemos classificar os usuários de um BD nos seguintes tipos: 14.2.1 Administrador de banco de dados - DBA O administrador de banco de dados é o chefe responsável por supervisionar e gerenciar os recursos que são disponibilizados pelo banco de dados. Em uma organização em que os recursos são compartilhados entre muitos usuários, a necessidade desse profissional é de vital importância. O DBA têm o papel de administrar os recursos primários e secundários formados pela base de dados, SGBD e os softwares relacionados, assim como autorizar o acesso a base de dados e coordenar e monitorar a sua utilização. 14.2.2 Projetista de banco de dados Os projetistas possuem a função de identificar os dados que serão armazenados no banco de dados e escolher a estrutura ideal para esse armazenamento. Para que seja feita a escolha da estrutura apropriada é necessário uma comunicação com os usuários do BD para que seja obtida uma melhor visão dos dados através da opinião de cada usuário. Depois de coletar todas essas informações são feitas análises e posteriormente o projeto da base de dados que atenda as necessidades dos usuários finais. 14.2.2 Os usuários finais São os profissionais que tem acesso ao banco de dados para a realização de consultas, modificações dos dados e a geração de relatórios. Existem algumas categorias de usuários finais: Usuários ocasionais: os que ocasionalmente fazem acesso a base de dados. Usuários comuns: são os que realizam operações padrões de consultas e atualizações. Usuários sofisticados: formado por engenheiros e analista de negócios que utilizam o BD para atender aos seus requisitos complexos. Analistas e programadores: utilizam o banco para a integração dos usuários promovendo a sua interação com o BD além de desenvolver especificações para novas aplicações que possam surgir. MÓDULO 15 – AS RESPONSABILIDADE EM ADMINISTRAR OS DADOS E OS BANCOS DE DADOS .As empresas estão utilizando os sistemas de informação para desempenhar funções em todos os seus setores, isso faz com que o papel do analista de dados também chamado de administrador de dados, torne-se algo crítico no ambiente empresarial. É necessário que o administrador de dados tenha compreensão do fluxo de dado que trafega entre os departamentos, empresas, clientes e fornecedores, para que ele possa entender realmente como o sistema trabalha com os dados na empresa. O administrador de dados possui algumas responsabilidades que ele deve executar dentro da empresa. São elas: 15.1 Responsabilidades na coordenação dos dados A responsabilidade em coordenar os dados é de vital importância, devido principalmente ao papel que os dados desempenham. Devido a complexidade de fatores em que os dados estão envolvidos, a possibilidade de ocorrer erros e incoerências é muito alta. Os complicadores que podem causar esses problemas são os seguintes: Redes locais Servidores Mainframes Ambientes centralizados Ambientes descentralizados Exemplo de um problema: Dois gerentes de diferentes setores estão fazendo uma apresentação que na teoria utilizam os mesmos dados e o mesmo modelo de planilha, só que a planilhas apresentadas possuem valores diferentes. Esse tipo de problema pode ser perturbador dentro de uma empresa, pois se as informações são as mesmas, as planilhas são semelhantes, como os valores podem ser diferentes? É papel dos administradores de dados a responsabilidade de manter o controle e organização dos dados, de modo que o problema que foi citado como exemplo não aconteça. Sabemos que é quase impossível o controle total dos dados existentes dentro de uma empresa, pois eles estão espalhados entre diversos computadores e diversos tipos de armazenamento, mas a desorganização total também não é desejada. Cabe então aos administradores dos dados coordenarem os dados de modo que seja mantido o controle sobre os dados da empresa. 15.2 Responsabilidades no planejamento dos dados As responsabilidades em planejar os dados são iniciadas na determinação de quais dados serão necessários para os empreendimentos de uma empresa, e as aplicações que utilizam esses dados. Como hoje existem empresas que se integram na busca de troca de informações, é necessário que seja feito o planejamento para a integração dos novos dados com os que já existem na empresa. Algumas metodologias foram desenvolvidas para auxiliar no planejamento dos dados. Elas levam em consideração os negócios que são realizados pela empresa, acrescentando dados necessários para suportá-los. Exemplo: Hardwares e softwares são questões que devem ser observadas e planejadas pela empresa, para que seja possível suportar as operações realizadas pelo seu sistema de informação no futuro. Outros aspectos envolvidos são: Quantidade de discos rígidos necessários para o armazenamento dos dados. Poder de processamento necessário Metadados e dicionário de dados. Migração de dados antigos anteriores ao banco de dados para o banco de dados atual. Migração de dados de um SGBD para outro. Todos esses aspectos que citamos estão envolvidos nas responsabilidades de planejar os dados da empresa. 15.3 Responsabilidades em padronizar os dados A padronização dos dados reduz as possibilidades de ocorrência de erros e aumenta o desempenho dos profissionais ligados aos sistemas de informação em entender os trabalhos que foram feitos por outros profissionais. Exemplo de padronização de dados: Nomes de atributos (Devem ser significativos e consistentes) Nomes de tabelas. Instruções de chamada dos programas ao banco de dados. 15.4 Responsabilidades no treinamento de outros profissionais O administrador dos dados é o responsável em algumas empresas pelo treinamento dos profissionais que possuem a necessidade de conhecer os dados da empresa e o SGBD. Com esse treinamento os profissionais adquirem o conhecimento sobre o banco de dados, suas funções e a sua importância dentro da empresa. Os conhecimentos adquiridos com o treinamento são: A importância do compartilhamento dos dados; A importância da sua segurança; Importância dos dados privados; Os conceitos de banco de dados; Padrões de banco de dados. 15.5 Responsabilidades na administração dos bancos de dados As responsabilidades em administrar os bancos de dados envolvem operações que devem ser desempenhadas diariamente no ambiente de banco de dados. É necessário um profissional com conhecimentos específicos em SGBD para desempenhar todas essas funções. Listaremos as funções desempenhadas pelo administrador de banco de dados logo abaixo: 15.5.1 Monitoramento do SGBD A principal função desempenhada pelo DBA é o monitoramento do desempenho do SGBD, onde ele tem o controle sobre quais as aplicações que estão utilizando o banco de dados e se o tempo de resposta do banco está sendo satisfeito ou não. Tanto o monitoramento como o controle são necessários, pois no caso de perca de desempenho do sistema, o DBA pode tomar atitudes para contornar o problema. As informações que são coletadas com o monitoramento podem também detectar problemas como consultas ineficientes que devem ser novamente projetadas. 15.5.2 Detecção e correção de erros Todos os tipos de aplicações estão sujeitas a ocorrência de erros, como um SGBD também é uma aplicação ele também está sujeito a erros que podem ser causados por problemas de hardware e software do sistema. Quando um erro desse tipo acontece, o administrador de banco de dados deve ser acionado para verificar os motivos que levaram a ocorrência do determinado erro, e encontrar a forma mais rápida de solucionar o problema. 15.5.3 Manutenção do SGBD Cabe ao administrador de banco de dados as atividades de manutenção dos dados e dos softwares que envolvem o SGBD. As atividades a serem desempenhadas pelo DBA são: Instalação de novas versões do SGBD Instalação de pacotes de atualização para correção de erros. Cópias de segurança e recuperação. Modificação da estrutura dos dados. MÓDULO 16 – A IMPORTÂNCIA DA SEGURANÇA DOS DADOS Os diferentes tipos de recursos corporativos possuem diferentes maneiras de serem gerenciados. O gerenciamento ideal vai depender muito da importância do recurso. Ex: Os recursos como o dinheiro devem ser protegidos de eventuais roubos; Os recursos que envolvem os equipamentos devem ser protegidos de má utilização; A estrutura da empresa deve possuir guardas e sistemas de segurança. A segurança dos dados não é muito diferente dos outros recursos citados, sendo necessárias soluções padronizadas e bem pensadas que possam promover a segurança dos dados. A segurança dos dados é crítica para as empresas, pois os seus negócios dependem dos dados e dos sistemas de informação para o seu sucesso. Uma pequena brecha por menor que seja na segurança dos dados, pode afetar a capacidade de operação e de produção de uma empresa. Quando a segurança dos dados de uma empresa é questionada, pode ser que outras pessoas que não fazem parte da empresa sejam atingidas. Os clientes podem ter seus dados financeiros expostos, os fornecedores podem ter as suas transações expostas, além de vários outros problemas que são causados pelo vazamento de informações. Quando se trabalha com dados e sistemas de informação, algumas brechas de segurança podem ser encontradas. Citaremos abaixo algumas falhas de segurança conhecida. 1. Acesso não autorizado aos dados: O acesso não-autorizado é o tipo mais básico de falha na segurança dos dados. Ela acontece quando uma pessoa obtém o acesso a dados que ela não está autorizada a ver. Esse tipo de falha pode ser apenas de um registro de uma tabela de banco de dados, até o acesso a uma cópia de uma tabela inteira ou mesmo de um banco de dados inteiro. Ex: A empresa X está interessada em adquirir a lista inteira de clientes da empresa concorrente ou mesmo os planos de um novo produto que será lançado. Uma quantidade de diferentes usuários pode estar envolvida no acesso não autorizado aos dados, isso inclui também os próprios funcionários da empresa. Nos casos em que os funcionários estão envolvidos a situação é ainda mais complicada, devido ao fato de o controle ser mais complexo do que controlar o acesso de um usuário externo. 2. Modificação dos dados sem autorização: nesse tipo de situação, os valores dos dados são alterados sem que essa alteração esteja autorizada a ser executada. Ex: imagina e situação em que o gerente de um banco aumenta o seu próprio salário. 3. Danos acidentais aos dados: Os danos acidentais também envolvem questões sobre a segurança dos dados. Os dados podem ser alterados ou corrompidos em uma ação acidental ou intencional, com isso alguns desses dados são inutilizados ou corrompidos. O hardware neste caso deve ser protegido, pois se ele for danificado intencionalmente os dados que estão armazenados nele também serão afetados. Existem vários métodos que são utilizados para causar a violação dos dados. Eles estão divididos em diversas categorias: 1. Acesso não autorizado ao computador: Uma boa forma de roubar os de uma empresa é através do acesso não autorizado aos computadores da empresa. Esse tipo de acesso pode ser feito das seguintes formas: Obtendo o acesso de fora da empresa através da exploração de falhas de segurança na rede. Roubo de login e senha de usuário da empresa, fazendo com que o acesso pareça que está sendo realizado por um usuário legítimo. 2. Interceptação de dados: A interceptação dos dados é bem parecida com o conceito de grampear linhas telefônicas. Os dados podem estar muito bem protegidos no computador da empresa, mas assim que são transmitidos para fora eles perdem todo o aparato de segurança que foi montado pela empresa e estão sujeitos a roubo enquanto estão sendo transmitidos. Alguns meios de transmissão são mais susceptíveis a interceptação dos dados do que outros. Grampear cabo par trançado e coaxial é possível. Transmissão via satélite também está sujeita a interceptação. Interceptar transmissões via fibra óptica não é uma tarefa fácil de ser realizada. 3. Roubo de mídias, discos rígidos e computadores: é até estranho de se escutar quando alguém fala: é possível roubar um computador? E um disco rígido? Se fosse antigamente quando todos os computadores eram enormes, esse tipo de questionamento era quase impossível de ser feito. Contudo, hoje isso é bastante possível, e pendrivers, mídias de CD, mídias DVD, discos de armazenamento externo, além dos notebooks, todos estão sujeitos a serem potenciais vítimas de roubo de dados intencionados. 16.1 Medidas que devem ser tomadas para promover a segurança dos dados Devido à importância crítica dos dados e as possíveis ameaças que eles possam sofrer, algumas medidas foram tomadas para proteger os dados e o hardware no qual eles estão armazenados. 16.1.1 Segurança física na estrutura da empresa Existem algumas medidas que devem ser tomadas para promover a segurança dos dados e dos sistemas de hardware existentes na empresa. As medidas são as seguintes: Não colocar os equipamentos em porões para evitar possíveis problemas com enchentes; Não colocar os equipamentos no térreo para evitar possíveis acidentes com automóveis desgovernados; Não colocar os equipamentos acima do oitavo andar da empresa, pois é a altura máxima que a escada dos bombeiros pode alcançar. Questões de segurança física com relação ao acesso de pessoal ao CPD: Acesso com senha; Acesso com cartão magnético; Acesso biométrico. 16.1.2 Controle no acesso aos sistemas da empresa Além de proteger a estrutura é necessário também ter o controle no acesso de usuários aos sistemas da empresa. É preciso criar defesas contra o acesso de usuários não autorizados. Uma das melhores formas de controlar esse tipo de acesso é com a utilização de senhas pelos funcionários que deve ser pessoal. 16.1.3 Controle no acesso ao banco de dados Mesmo que o usuário tenha acesso ao banco de dados, é preciso criar algum tipo de restrição nesse acesso (ele não pode acessar tudo que deseja). Esse tipo de restrição faz com que o usuário só tenha acesso a determinados tipos de dados, de modo que apenas certas pessoas possam recuperá-los ou alterálos. Em nível de SGBD um usuário não pode simplesmente sair acessando todos os dados que estão armazenados. O usuário precisa receber um tipo de autorização para acessar os dados. 16.1.4 Treinamento dos funcionários Uma medida de segurança que parece ser simples mas que surte muito efeito é treinar os funcionários da empresa em boas práticas de segurança. Algumas dessas práticas são: Quando sair, desconecte o computador. Não escreva a sua senha de acesso em local algum. Não deixe disquetes e outros meios de armazenamento espalhados pelo escritório. Não leve nenhum meio de armazenamento para fora do escritório. Promover a segurança dos dados não é algo simples de ser feito, devido à importância dos dados nas estratégias da empresa eles são muitos visados para promover vantagens competitivas. Se todas as medidas e cuidados que foram falados neste capítulo forem aplicadas é provável que não solucione todos os problemas, mas trará bem mais segurança aos dados do que se não fossem aplicados. MÓDULO 17 – CÓPIAS DE SEGURANÇA E RECUPERAÇÃO DOS DADOS A importância da cópia de segurança e a recuperação dos dados são independentes de quão sofisticado seja o sistema de informação. É preciso estar preparado para lidar com as adversidades que possam surgir e que podem afetar ou até mesmo destruir por completo todos os dados de um banco de dados. Existem vários problemas que podem acontecer com os dados, desde algo simples como um valor digitado incorretamente na base de dados ou algo muito grave como um desastre que destruiu o CPD inteiro e tudo que havia dentro dele. Em negócios que envolvem a utilização dos sistemas de informação é provável que em algum momento algo possa acontecer de errado com os dados. É preciso possuir ferramentas que possam corrigir esses erros ou reconstruir o que foi destruído. 17.1 Cópias de segurança A idéia da cópia de segurança é bem simples. Primeiro é executada a tarefa de cópia de segurança dos dados de um banco de dados, respeitando um cronograma regular que foi traçado. Essa cópia deve ser guardada em um local seguro, longe da estrutura do CPD, pois se por acaso ocorrer um acidente e todo o CPD for destruído, a cópia dos dados estará segura em outro local. As possibilidades para o armazenamento da cópia dos dados são enormes, podendo ser guardada em um cofre a prova de fogo, em um cofre de banco ou até mesmo em uma filial da empresa que reside em outra estrutura. A outra tarefa que deve ser realizada após a cópia de segurança ser gerada é a criação de um arquivo de registro, também chamado de “log”, que contenha todas as alterações que aconteceram nos dados. As alterações são as seguintes: Atualização de registros existentes. Inclusão de novos registros. Exclusão de registros existentes. Registros de todas as transações. Com a geração do arquivo de registro (log) é possível ter documentado as alterações que os dados sofreram. 17.2 A recuperação dos dados para frente Vamos imaginar uma situação em que a tabela de clientes da empresa X foi totalmente danificada. Para que seja possível recuperar os dados dessa tabela, é preciso recorrer ao procedimento de recuperação para frente dos dados. Para que esse procedimento seja realizado é necessário ter em mãos a última cópia de segurança dos dados que foi feita e o arquivo de registro com todas as alterações que foram feitas na tabela, desde que a ultima cópia de segurança foi realizada. Com a cópia de segurança e o LOG a disposição, cabe ao programa de recuperação detectar os dados que necessitam ser recuperados. O programa lê a primeira entrada do arquivo de LOG que foi gravado após a última cópia de segurança ter sido gerada e atualiza a cópia de segurança da tabela com a entrada do LOG. Volta novamente ao início do LOG e continua rodando para frente realizando cada atualização na cópia de segurança da tabela, na mesma ordem na qual elas foram originalmente feitas na própria tabela do banco de dados. Quando esse procedimento é concluído, a tabela perdida foi totalmente reconstruída. 17.3 A recuperação dos dados para trás Para falarmos da recuperação dos dados para trás, vamos utilizar um exemplo diferente de situação. Na empresa Y foi detectado que no meio de uma operação normal no seu banco de dados, foi descoberto um erro que envolve um dado que sofreu uma atualização recentemente. Seria muito fácil corrigir esse tipo de erro, pois era só alterar novamente o valor errado para o valor correto e pronto, problema solucionado. Só que não é bem assim que se resolve esse tipo de problema, pois no caso de outra aplicação ter lido esse dado que estava incorreto e feito uso dele, o erro foi expandido para outros cantos do banco de dados. Todas as alterações que foram feitas no banco de dados desde que o erro foi descoberto devem ser desfeitas. O processo para resolver esse tipo de situação é chamado de “Rollback” ou recuperação para trás. A idéia básica do Rollback é a seguinte: Começa com o banco de dados no seu estado atual e o LOG posicionado na última entrada que foi feita nele. OBS: Nesse tipo de procedimento não é necessário a utilização de cópias de segurança. O programa de recuperação prossegue para trás no arquivo de LOG, restabelecendo cada valor de dado atualizado no banco de dados, com a sua imagem de antes, até que alcance o ponto em que o erro aconteceu. As transações são desfeitas em ordem revessa. Alguns sistemas podem iniciar automaticamente uma operação de Rollback , com o intuito de desfazer as alterações que foram feitas no banco de dados por uma transação que falhou antes da sua conclusão. 17.4 Duplicação e espelhamento dos bancos de dados O espelhamento ou duplicação do banco de dados é uma técnica de cópia de segurança e recuperação bem diferente das técnicas que já falamos. Esse tipo de operação tem como característica manter duas cópias do banco de dados inteiro e atualizar os dados em ambas as cópias simultaneamente. Se acontecer de uma cópia ser totalmente destruída, as aplicações que utilizam o banco de dados podem continuar a serem executadas, só que agora utilizando o banco de dados que foi duplicado. Quanto maior a distância entre os bancos espelhados, melhor a segurança. Se as cópias estiverem no mesmo disco e em uma fatalidade o disco ficar inoperante, ambas são perdidas. Agora se elas estiverem em discos separados a probabilidade de perder os dois discos e consequentemente os dois bancos diminui bastante. 17.5 Conclusão As empresas devem está preparadas para a ocorrência de desastre com os seus dados e com os seus sistemas de informação. Esse tipo cautela é algo caro para as empresas, mas como elas estão cada vez mais dependentes dos seus sistemas de informação para sobreviverem, as que quiserem ser realmente cuidadosas e estarem preparadas para o pior, vão ter que investir. Existem alguns procedimentos básicos que devem ser tomados para prevenir ou amenizar a ocorrência de desastres com os dados e os sistemas de informação. São eles: Manter seus sistemas de banco de dados e sistemas de informação totalmente espelhados; Contratar empresas de “Hot Sites” para que sejam mantidos hardwares semelhantes ao utilizados no CPD da empresa, de modo que possam voltar ao ar rapidamente após a ocorrência de algum tipo de desastre; Investir em profissionais especializados; Investir em equipamentos e tecnologia de última geração. Se alguns dos cuidados que citamos forem implantados pelas empresas, a possibilidade de ela ficar inoperante quando um desastre acontecer é bem menor do que se não fosse tomado nenhum tipo de atitude para proteger os seus dados. MÓDULO 18 – BANCO DE DADOS E A INTERNET É difícil imaginar viver sem os carros, televisão e telefone. Com a internet não é muito diferente, pois ela tornou-se rapidamente parte do nosso dia-a-dia. Os emails, sites informativos e transferência de arquivos são as associações que fazemos quando se fala em internet e também não poderíamos deixar de citar o comércio eletrônico. Tudo na internet agora se refere ao on-line. É banco online, notícias em tempo real, compras pela internet e jogos on-line. As empresas encontraram através da internet novos meios para a venda dos seus produtos, fazer alianças com outras empresas, divulgar suas marcas, transformando o mercado a qual fazem parte em um mercado global. A essência de todas as atividades que citamos (atividades on-line) são os bancos de dados. Consultar o seu saldo bancário, estoque de livros de uma biblioteca on-line, fazer o pedido de um produto, leitura de jornais on-line, todas essas atividades utilizam os bancos de dados para desempenhar o seu papel. Isso tudo nos gera uma dúvida: “Qual a diferença do banco de dados utilizado na internet, para o banco de dados que não envolve especificamente a internet?” A maioria dos bancos de dados utilizados na internet são relacionais, e muitos são de natureza transacional. Os conceitos e regras dos bancos de dados relacionais são os mesmos utilizados para as aplicações transacionais do comércio eletrônico. Mas onde estão as diferenças entre o ambiente com a internet e o ambiente sem a internet? A resposta está dividida nos tópicos abaixo: 18.1 A conectividade com o banco de dados Em um simples ambiente de banco de dados o programa da aplicação, o SGBD e os dados podem está contidos em um mesmo computador. Falando sobre ambiente cliente/servidor, observemos a estruturas que é composta pelo computador do cliente conectado a um servidor em uma rede local, onde o servidor contém o programa da aplicação, o SGBD e os dados que são compartilhados entre todos os clientes. Associando a estrutura cliente/servidor que citamos com a estrutura utilizada na internet, veremos que o WWW pode ser considerado uma estrutura cliente/servidor voltada para a internet. Os browsers no computador do cliente são os softwares responsáveis por operar a aplicação do lado do cliente e os servidores são os servidores WEB da empresa que permite a conectividade com os clientes para o acesso de um site de comércio eletrônico por exemplo. Com isso a WWW se classifica como o maior sistema cliente/servidor do mundo. No sistema cliente/servidor da WEB existem três tipos de computadores: Computadores dos clientes; Servidores WEB; Servidores de Banco de Dados. Mas como é feita a conectividade entre todas essas estruturas? Vamos mostrar um caso de loja de comércio eletrônico que utiliza uma estrutura de banco de dados. O site de comércio eletrônico submarino.com.br comercializa vários produtos. Para comprar um produto no site do submarino, o cliente utiliza o seu computador pessoal para estabelecer uma conexão com o provedor de internet e digitar a URL www.submarino.com.br. O browser do computador do cliente envia uma mensagem para o servidor web do submarino e estabelece uma conexão com o servidor. O servidor envia a página principal do submarino para o computador do cliente onde existem várias opções para a escolha do produto desejado. “Falando em termos de sistema de informação, o que o cliente está fazendo é procurar um produto na tabela PRODUTOS do banco de dados do submarino” Quando o cliente clica para escolher o produto desejado, o nome do produto é transmitido pela internet para a aplicação que está em execução no servidor web do submarino. A aplicação envia um comando para o SGBD relacional que está localizado no servidor de banco de dados. A seguir, o fluxo é invertido, retornando a informação desejada para o computador do cliente. Se o usuário desejar comprar o produto, a transação continua com um tráfego de mensagens indo e voltando entre o browser do cliente e o servidor WEB. “Cada vez que o banco de dados precisar ser acessado, a aplicação existente no servidor WEB passa um comando para o servidor de banco de dados que consulta o banco e retorna o resultado”. 18.2 Tipos de dados Os dados que são encontrados nos bancos de dados relacionais que não fazem parte da internet, são na maioria de dois tipos básicos: Os dados numéricos e os dados em formato de caracteres. A internet e o WWW deram uma nova ênfase aos tipos de dados que são armazenados nos bancos de dados. Agora são utilizadas imagens gráficas, fotografias, vídeos e áudios. Imagine a tela inicial do site www.globo.com. Nela você encontra além de textos os outros itens que citamos. Os bancos de dados que são utilizados na internet devem ter a capacidade de armazenar todos os tipos de dados que apresentamos. Os desenvolvedores dos sistemas de gerenciamento de banco de dados adicionaram recursos aos seus produtos, para que eles possam suportar outros tipos de dado que não sejam apenas dados numéricos e caracteres. 18.3 Controle de banco de dados na internet Os desafios são diversos quando falamos no gerenciamento dos bancos de dados utilizando recursos web, se compararmos com os sistemas que não estejam conectados a internet. Como o banco de dados web permite o acesso de um público de usuários muito maior do que os que os bancos não web, eles estão bem mais vulneráveis. Devemos dar uma ênfase especial para: Desempenho do banco de dados: deve ser observado o tempo de resposta do banco de dados e a quantidade de tráfego que está sendo gerada no acesso a esse banco de dados. Disponibilidade: um banco que é utilizado na internet deve está disponível o tempo todo já que a internet é global, sendo utilizada em todos os horários. Os principais causadores da indisponibilidade são: Falha no sistema; Falha nos sistemas de telecomunicação; Falha no fornecimento de energia; Tráfego excessivo que causa congestionamento no banco de dados. Escalabilidade: os sistemas de banco de dados utilizados na internet devem ter o seu crescimento escalável, devendo ter a capacidade de crescer em tamanho sem afetar as operações do site. Segurança e privacidade: como os sistemas web estão mais expostos, todas as preocupações com a segurança desses sistemas e dos seus dados não são nenhum exagero. Ligada a segurança está a privacidade, pois as empresas de e-commerce possuem dados sigilosos dos seus clientes armazenados em seus Bancos de dados. É preciso utilizar a criptografia na troca de informações entre os clientes e o servidor, para que esses dados não sejam interceptados e lidos durante a sua transmissão. MÓDULO 19 – RESUMO Faremos no módulo 15 um breve resumo sobre todos os módulos que falamos no decorrer da disciplina de tecnologias de banco de dados para sistemas de informação. Começamos com o módulo 1 que fala sobre o começo de tudo, a origem dos dados. Não podemos falar de banco de dados sem antes comentar sobre a origem dos dados e como eles foram inicialmente utilizados bem antes de serem armazenados em arquivos. Mostramos nesse capítulo a história dos dados a sua evolução, e a forma como eles foram inicialmente armazenados. Os módulos 2 e 3 falam dos dados nos ambientes empresariais. A evolução dos computadores e a importância que os dados passaram a ter para as empresas, fizeram com que eles fossem classificados como recurso corporativo de alta importância. Com toda essa importância dos dados para a empresa, foi criando um ambiente para os bancos de dados (responsáveis por armazenar os dados) que possuem as seguintes características: Compartilhamento dos dados; Armazenamento de grandes volumes de dados; Melhoria na correção dos dados; Controle de redundância; Controle de acesso; Ferramentas de segurança; Ferramentas de privacidade; Cópia e recuperação dos dados. Os módulos 4 e 5 são responsáveis por destacar a passagem dos dados para o seu armazenamento em bancos de dados, abordando bem os motivos que levaram o surgimento dos sistemas de gerenciamento de bancos de dados. Os SGBD tornaram possível o controle de redundância, acesso, compatilhamento e transações envolvendo os dados armazenados. Os módulos 6 e 7 destacam um problema que sempre acontece quando não se armazena os dados em bancos de dados, a sua integração e a redundância. Integrar vários registros sem que existam dados redundantes é uma grande “”dor de cabeça” para armazenar seus dados em registros. São citados vários exemplos de dados redundantes e dados sem integração. Nos módulos 8 e 9 é dado destaque a modelagem dos dados e a grande importância do modelo de entidade e relacionamento. Falamos das entidades, relacionamentos e atributos, comparando todos eles com o mundo real. Continuamos a modelagem de dados no módulo 10 falando sobre os tipos de relacionamentos existentes e suas associações. O módulo 11 inicia os conceitos de banco de dados relacional, responsáveis por resolver todos os problemas que envolvem dados redundantes e dados integrados. Destacamos as relações, tuplas, registros e colunas existentes no banco, e o conceito de chave primária assim como a sua importância para um banco de dados relacional. É também falado sobre as restrições de integridade existentes no banco relacional e as operações que podem ser realizadas sobre a sua estrutura. O módulo 12 destaca a arquitetura dos bancos de dados e a maneira que eles são estruturados. Existem várias formas de estruturar os dados, dentre elas tempos: Banco de dados centralizados; Banco de dados descentralizados; Banco de dados distribuídos; Banco de dados replicados; Banco de dados paralelos; Destacamos as principais vantagens e desvantagens das arquiteturas citadas. Deixamos o módulo 13 para apresentar de forma bem mais detalhada a arquitetura de banco de dados cliente/servidor, principalmente pela sua importância e pela sua maior utilização pelas empresas. Destacamos a abordagem cliente servidor duas camadas e três camadas e as vantagens e desvantagens na utilização dessa arquitetura. O módulo 14 inicia as abordagens sobre o gerenciamento dos dados e dos bancos de dados. Destacamos os seguintes pontos: As vantagens em se administrar os dados; O gerenciamento operacional dos dados; Gerenciamento de dados externos; Gerenciamento de dados em ambientes descentralizados. Falamos também dos usuários que de alguma forma utilizam os bancos de dados. Dentre eles temos: Administrador de banco de dados – DBA; Projetista de banco de dados; Os usuários finais. As responsabilidades que devem ser seguidas na administração dos dados e dos bancos de dados são destacadas no módulo 15. É falado sobre o papel importante que deve ser desempenhado pelo analista de dados e suas responsabilidades na coordenação dos dados. Outras responsabilidades de destaque são: Planejamento dos dados; Padronização dos dados; Treinamento de outros profissionais; Monitoramento do SGBD; Detecção e correção de erros; Manutenção do SGBD. A segurança dos dados é falada no módulo 16, comparando os dados com os diferentes recursos corporativos existentes e a importância que deve ser dada a cada um. É falado sobre as principais brechas que são encontradas em alguns sistemas que utilizam banco de dados, em que destacamos as seguintes: Acesso não autorizado aos dados; Modificação dos dados sem autorização; Danos acidentais aos dados; Acesso não autorizado a computadores; Interceptação de dados; Roubo de mídias, e computadores; Também é dado ênfase nesse capítulo as medidas de segurança que devem ser tomadas para prevenir essas brechas existentes nos sistemas. O módulo 17 continua o assunto sobre segurança, só que agora abordando um assunto importante que são as cópias de segurança e a recuperação dos dados. Falamos nesse módulo sobre a importância na realização de cópias de segurança dos dados e os logs das transações realizadas pelo SGBD. Com a cópia de segurança, é possível recuperar dados que foram perdidos acidentalmente ou corrompidos em uma operação falha. Para finalizar, o módulo 18 é responsável por destacar a importância dos bancos de dados para a internet, a sua utilização e a comparação entre os bancos que são utilizados na internet e os bancos que não utilizam recursos web.