Baixe o app para aproveitar ainda mais
Prévia do material em texto
SUMÁRIO 1 Introdução a banco de dados 9 1.1 O que é e para que serve um banco de dados? 9 1.2 Vantagens e desvantagens do uso de um banco de dados 21 1.3 Criação e manutenção de bancos de dados 24 1.4 Tipos de bancos de dados 29 2 Sistema de gerência de banco de dados 34 2.1 O que é e para que serve um SGBD? 34 2.2 Vantagens e desvantagens do uso de um SGBD 38 2.3 Criação e manutenção de um SGBD 43 2.4 Tipos de SGBD 47 3 Modelagem de dados 51 3.1 O que é e para que serve um modelo de dados? 51 3.2 Vantagens e desvantagens de um modelo de dados 55 3.3 Criação e manutenção de um modelo de dados 62 3.4 Tipos de modelos de dados 72 4 Modelo relacional e normalização 76 4.1 O que é e para que serve um modelo relacional? 77 4.2 Vantagens e desvantagens de se usar um modelo relacional 89 4.3 Criação e manutenção de um modelo relacional 92 4.4 Tipos de modelos relacionais 97 5 Projeto de banco de dados 100 5.1 O que é e para que serve o projeto de banco de dados? 100 5.2 Vantagens e desvantagens de se fazer um projeto de banco de dados 103 5.3 Criação e manutenção de um projeto de banco de dados 114 5.4 Tipos de projetos de bancos de dados 123 6 Linguagem estruturada para consultas 126 6.1 O que é e para que serve a SQL? 127 6.2 Vantagens e desvantagens de se usar a SQL 130 6.3 Criação e manutenção de uma SQL 133 6.4 Tipos de SQL 146 7 Gabarito 149 O desenvolvimento de novos sistemas de informação corporativos, para uso pessoal e até de aplicativos para celulares (apps) tem exigido – com grande frequência e dos programadores – o conhecimento de técnicas de criação e manipulação dos bancos de dados. Qualquer sistema, por mais simples que seja, em algum momento terá a necessidade de criar, manter e consultar determinado tipo de dado. A evolução das tecnologias de armazenamento, manipulação e consulta a fontes de dados criou um conjunto específico de conhecimentos dentro da área de informática, que se chama banco de dados (BD). Esse é o tema que abordaremos nesta obra, preparando você para poder compreender e se aprimorar nessa nova área de conhecimento. No Capítulo 1, conheceremos a importância do uso de um BD como fonte de dados para sistemas, como um banco de dados é criado e quais são os benefícios que podemos obter de sua utilização. Você conhecerá um universo de informações que lhe permitirá prosseguir no estudo desse rico conteúdo. No Capítulo 2, ao compreendermos o papel que um BD poderá ter para os sistemas de informação, será possível conhecermos os sistemas gerenciadores de bancos de dados (SGBDs), programas criados para gerenciar os bancos de dados. Existem diferentes abordagens de sistemas gerenciadores de bancos de dados, as quais incorporam diferentes recursos e restrições de uso. Os SGBDs podem exigir diferentes requisitos, e podem, ou não, atender às necessidades conforme o tipo de projeto a executar. No Capítulo 3, iniciaremos o caminho rumo à construção de um banco de dados. O processo de criação de um BD não é intuitivo e livre; ele conta com uma metodologia ou um processo padronizado/estruturado para transportar requisitos de informação de acordo com as necessidades de um sistema. Nesse sentido, a criação de um modelo de dados conceitual é o alicerce de todo o processo de construção de um BD. O modelo APRESENTAÇÃOVídeo de dados representa algo como o desenho da planta baixa de uma casa: ele não é a casa, mas a representa. Assim, o modelo de dados não é o banco de dados, mas o representa por intermédio de um diagrama. Ao sabermos como construir um modelo de dados, estaremos preparados, no Capítulo 4, para converter esse diagrama inicial em um modelo lógico relacional, base do projeto do banco de dados. Conheceremos os requisitos do modelo relacional – as vantagens e desvantagens em utilizá-lo – e aprenderemos o método de conversão de um modelo de dados conceitual em um modelo de dados relacional. As regras de conversão são apresentadas para que os requisitos do modelo relacional possam ser atendidos e, finalmente, construir o banco de dados. No Capítulo 5, ao termos um modelo de dados relacional definido, poderemos, enfim, projetar o BD, dando origem a um modelo físico, no qual todos os detalhes para a alocação física de uma estrutura de dados seja feita. Para tanto, é necessário conhecer mais alguns requisitos e conceitos que poderão proporcionar um desempenho adequado para o acesso aos dados. A aplicação desses elementos garante maior flexibilidade para o compartilhamento dos dados e atendimento aos requisitos de inserção, de atualização e de consulta aos dados, feitas por um ou mais sistemas de informação. Essa é a última etapa da construção de um BD; com base nesse ponto, é possível ter um banco de dados projetado e pronto para ser construído. No Capítulo 6, conheceremos a Structured Query Language (SQL), linguagem criada especificamente com a finalidade de prover meios de interação com o banco de dados. Ao ter em mãos o projeto físico finalizado, é possível construir o BD por meio de comandos SQL, os quais permitirão criar banco de dados, tabelas dentro do BD e colunas dentro destas, bem como armazenar, atualizar, excluir e consultar conteúdos. Além disso, conheceremos algumas sintaxes dessa rica linguagem de acesso a dados, como ela pode ser incorporada nos programas hospedeiros – em que lugar a SQL será agregada para permitir o acesso ao BD –, benefícios de seu uso, entre outros. Com todo esse conteúdo, você participará de uma jornada que começa com os primeiros conceitos, passa por métodos de construção de modelos de dados – conceituais, lógicos ou físicos – e chega, por fim, à construção e manipulação dos dados dentro de um BD. Esperamos que você tenha uma gratificante experiência com a leitura desta obra. Bons estudos! Introdução a banco de dados 9 1 Introdução a banco de dados Neste capítulo, vamos conhecer alguns conceitos essencial- mente importantes para a adoção de estruturas de bancos de dados como elementos de suporte providos para os sistemas de informação. Atualmente, a ideia de iniciar a criação de um sistema de informação ou de um app sem considerar a adoção de um ban- co de dados como elemento de sustentação para os dados que serão manuseados por esse sistema é pouco aceita. O uso do ban- co de dados é amplamente difundido e não é mais questionado. Contudo, o fato de essa estratégia ser amplamente aceita não significa que é dispensável ter conhecimento dos fatores que levam a tal escolha. Talvez, em alguma situação particular, essa escolha possa ser reavaliada. Nesse sentido, é necessário ter conhecimen- tos dos chamados critérios de avaliação. Desse modo, vamos conhecer os principais conceitos e as fun- ções envolvidas no processo de adoção dos bancos de dados. Esse será um importante ponto de partida para nossa jornada rumo à implantação desses mecanismos em nossos sistemas. 1.1 O que é e para que serve um banco de dados? Vídeo Quando tratamos de banco de dados, muitas vezes a primeira dúvi- da que surge é se estamos falando de um software, de uma tecnologia, de um arquivo físico, de um conjunto de dados ou de um método de organização de dados. O termo banco de dados tem sido amplamente usado para designar todos esses elementos citados. Ele, às vezes, é visto como um software, como uma tecnologia, como um arquivo físico, como um conjunto de da- dos, ou, ainda, como um método de organização de dados. Entretanto, existem diferenças entre cada abordagem, as quais elencamos a seguir. 10 Banco de Dados I 1.1.1 Dados Primeiramente, antes de definir o que são dados, pensemos: por que frequentemente é utilizado o termo informação em substituição ao termo dado? Você provavelmente já ouviu alguém dizer: “precisamos levantar as informações sobre essa pessoa” ao invés de “precisamos levantar os da- dos sobre essa pessoa”.Seriam dados e informações a mesma coisa? Dados são elementos gerados pelo registro de fatos ou de características de objetos/coisas. Eles permitem que possamos identificá-los, reconhecê- -los, mapeá-los e representá-los. Os dados são inerentes aos elementos que representam, isto é, dados não são criados, mas sim capturados da obser- vação desses objetos no mundo real. Quando olhamos para um objeto, o reconhecemos por suas características. Essas características podem ser ma- peadas como dados de um objeto. Veja um exemplo a seguir. Se observarmos uma pessoa (objeto), podemos identificar dados como: Figura 1 Modelo de dados da entidade “Pessoa” PESSOA • nome • data de nascimento • altura • peso Fonte: Elaborada pelo autor. Fonte: Elaborada pelo autor. Já se observarmos um casamento – fato que envolve duas pessoas –, podemos também identificar dados relativos a esse evento (e não a pessoas). Figura 2 Modelo de dados da entidade “Casamento” CASAMENTO • Data • Horário • Regime de comunhão de bens • Tipo de decoração Fonte: Elaborada pelo autor. Com base nessas informações, temos o ponto de partida para criar um banco de dados. Para tanto, é necessário primeiramente identi- ficar os objetos e fatos de interesse, e depois elencar os dados que pertencem a eles. Esse processo será visto detalhadamente quando abordarmos a modelagem de dados. Introdução a banco de dados 11 1.1.2 Informação Informações são elementos e conclusões geradas por meio da ma- nipulação dos dados que dispomos. A informação é o dado trabalha- do, isto é, o dado traduzido. A manipulação dos dados pode envolver, comparar, apresentar, separar e formatar dados; já a transformação pode envolver, somar, subtrair e contar dados. A figura a seguir sinte- tiza esses processos: Figura 3 Processo de transformação de dados em informações Lista de dados mapeados Processo de manipulação ou transformação Informações produzidas pela transformação Fonte: Elaborada pelo autor. Se ao transformar um dado pode-se gerar uma informação, isso signi- fica que diferentes transformações de um mesmo dado podem gerar dife- rentes e diversas informações. Nesse sentido, é importante ter o cuidado de guardar dados, não sendo necessário guardar informações, pois essas últimas não precisam ser guardadas, uma vez que podem ser geradas. Como já citado, podemos gerar os seguintes dados para uma pessoa: nome, data de nascimento, altura e peso. Porém, quais informações po- demos formar com esses dados? A figura a seguir ilustra essa questão: Figura 4 Transformação de um dado em várias informações Data de nascimento Transformação ou manipulação Signo do zodíaco Idade Pessoa viva ou morta? Transformação ou manipulação Pessoa alta ou baixa (conforme a idade) Índice de Massa Corporal (risco de enfarte) Altura Peso Data de nascimento Fonte: Elaborada pelo autor. 12 Banco de Dados I Observando a figura, não seria correto criar um campo no banco de dados para guardar a informação “idade” ou “signo” de uma pessoa? O correto seria simplesmente guardar o dado sobre a data de nascimen- to e, por meio dele, gerar essas informações. Desse modo, seria razoável guardar a informação “idade” no banco de dados? Quantos de nós já preenchemos uma ficha cadastral num hotel ou em uma loja em que nos foi perguntado: “qual a sua idade?” e “qual a sua data de nascimento?”. Geralmente, preenchemos os dois campos no formulário, e esses, muito provavelmente, serão digitados e guardados em algum banco de dados. Há também outras situações menos aparentes, que levam as pes- soas a criarem informações (e não dados) em um banco de dados. Es- ses indivíduos pensam estar guardando dados, mas na verdade estão guardando informações. Portanto, sempre se pergunte: isto é um dado ou uma informação que poderia ser obtida por meio de outro dado? A preocupação com a identificação do que realmente é um dado e do que são informações foi originada justamente quando os antigos arquivos usados para sustentar os sistemas de informação passaram a ser substituídos por bancos de dados. 1.1.3 Arquivos e bancos de dados Qual a diferença entre a antiga abordagem de arquivos e a nova abordagem de bancos de dados? Historicamente, quando surgiram os primeiros sistemas de infor- mação, ainda na década de 1950, não existia muita preocupação com esse aspecto, pois o processamento de dados realizado era baseado em arquivos sequenciais, frequentemente armazenados em fitas mag- néticas. O custo de unidades de disco era extremamente alto e suas capacidades de armazenamento eram extremamente baixas. A capaci- dade de armazenamento de um simples aparelho de celular não estava sequer disponível nos discos magnéticos das maiores corporações, que tinham processamentos feitos em seus mainframes. Por esse motivo, os sistemas construídos agrupavam os dados (e muitas vezes as informações) já prontos de modo bastante orientado para o resultado que deveriam produzir. Em resumo, um arquivo era construído para uma aplicação específica, evitando que fosse necessá- mainframes: computadores de grande porte. Glossário Introdução a banco de dados 13 rio muito processamento ou muito trabalho para obtenção dos resul- tados esperados. No exemplo mencionado, se guardássemos a data de nascimento, poderíamos gerar automaticamente o signo da pessoa. Contudo, isso consumiria recursos, pois teríamos que executar, cada vez que essa informação fosse necessária, uma tabela de classificação de signos, es- tabelecida de acordo com o dia e mês de nascimento. Essa ação geraria o consumo de processamento, de tempo e de memória, portanto de- veria ser evitada. Com o crescimento de recursos de hardware e sua equivalente redu- ção de custos, bem como o surgimento de estruturas de armazenamento e processamento com melhor performance, a busca de um modelo de dados mais preciso (sem guardar informações) passou a ser viável. Por outro lado, a proliferação de arquivos criados especificamente para atender à demanda de cada um dos sistemas de informação cria- va outros problemas, embora resolvesse o das restrições de hardware. Essas dificuldades talvez tivessem impactos maiores, porém, não po- diam ser evitadas, em virtude das limitações técnicas da época. Ao surgirem as primeiras alternativas baseadas em estruturas de banco de dados, a adesão foi quase que imediata. As antigas estruturas de arquivos sequenciais passaram a ser substituídas por estruturas de banco de dados, trazendo inúmeros benefícios. Criava-se, então, uma nova era: a era dos bancos de dados, isto é, a era dos sistemas de informação desenvolvidos com bases de dados e não mais com arquivos. Esses bancos ainda não eram os atuais que conhecemos hoje, mas já apresentavam diferenciais e facilidades. Ao tratarmos de banco de dados, três características são sempre destacadas. Elas devem ser observadas e buscadas para que o agrega- do de dados que se crie possa ser chamado de banco de dados, a saber (NAVATHE; ELMASRI, 2005): • Um banco de dados deve representar uma porção de um mun- do real. • Os dados em um banco de dados devem ser logicamente coerentes. • Os dados e o próprio banco de dados devem ter uma finalidade específica. A obra Sistemas de Bancos de Dados, de Ramez Elmasri e Shamkant Navathe, atualmente em sua sétima edição, tem sido considerada uma fonte de referência, em virtude de apresentar grande parte dos conceitos associados ao banco de dados. NAVATHE, S.; ELMASRI, R. São Paulo: Pearson, 2012. Livro 14 Banco de Dados I A primeira característica – porção do mundo real – diz respeito ao fato de que o processo de modelagem de dados, que dará origem ao banco de dados, deve ser feito com base na observação de um escopo definido e se preocupar em capturar as propriedades e características (dados) reais dos elementos observados nesse ambiente. Isso assegu- ra que somente os dados reais dos elementos sejam armazenadosno banco de dados, isto é, não teremos informações armazenadas, uma vez que elas não são observadas no mundo real, mas sim inferidas por meio de transformações. Além disso, essa primeira característica procura estabelecer o fato de um banco de dados ser incompleto, ou seja, não ter todos os dados de todos os elementos de um mundo observado. Isso não é um defeito, mas sim uma situação esperada, pois não somos obrigados a mapear todos os dados de todos os elementos, mas somente aqueles que no momento nos sejam necessários ou úteis. A Figura 5, a seguir, mostra um exemplo dessa questão: Figura 5 Seleção da porção do mundo real a ser mapeada Data de nascimento Tipo sanguíneo Peso Altura Data de nascimento Pressão arterial Peso Nome Altura Temperatura Nome Seleção Fonte: Elaborada pelo autor. No exemplo da Figura 5, elencamos alguns poucos dados. Entretan- to, sabemos que uma pessoa tem muito mais dados que poderiam ser observados, como tipo sanguíneo, pressão arterial e temperatura. Po- rém, de que serviriam esses dados no nosso banco se o que desejamos é criar um BD 1 para processamento da folha de pagamentos de uma empresa? Para que serviria conhecer o tipo sanguíneo de um funcioná- rio para gerar sua folha de pagamento? Comumente, utilizaremos a sigla “BD” para nos referirmos ao banco de dados. 1 Introdução a banco de dados 15 Dessa forma, delimitar o escopo dos objetos observados, bem como o escopo dos dados a serem mapeados para cada um desses objetos não é um defeito, mas um objetivo do processo. A segunda característica – dados coerentes – diz respeito ao fato de que somente reunir dados delimitados de alguns objetos observa- dos em um mundo real não é suficiente. É necessário que os dados sejam logicamente coerentes, isto é, que exista a correlação entre os dados de diferentes objetos. Além disso, é necessário que esses dados tenham (e mantenham com o passar do tempo) uma integridade com os fatos do mundo real, que não existam dados iguais com nomes di- ferentes (mapeados de modo repetido), que não sejam dados que se contradigam e que não existam dados representados em objetos aos quais eles não pertençam. Para entendermos essas questão, voltemos ao exemplo no qual mapeamos dois objetos (pessoa e casamento) e vamos aprimorá-lo com base nesse novo requisito. Ao observar os dados já mapeados, podemos perceber que existe a necessidade de agregar alguns novos dados ao objeto “casamento”: o nome dos noivos. Isso irá enriquecer o modelo e também o tornará mais real, uma vez que um casamento sem noivos seria no mínimo estranho. Passaríamos a ter, desse modo, em nosso BD, os seguintes dados: Figura 6 Mapeamento dos dados das entidades “casamento” e “pessoa” CASAMENTO • Data do evento • Horário • Regime de comunhão de bens • Tipo de decoração • Nome do noivo • Nome da noiva PESSOA • Nome • Data de nascimento Fonte: Elaborada pelo autor. Ao realizarmos essa ação, aparentemente teríamos um melhor ma- peamento dos dados do casamento. Contudo, se pretendemos ter um BD com dados coerentes, devemos assegurar, de algum modo, que to- 16 Banco de Dados I dos os nomes armazenados nos campos “nome do noivo” e “nome da noiva” também existam no campo “nome” do objeto “pessoa”, mapea- do anteriormente. Se tivermos um nome de noivo ou de noiva que não apareça tam- bém no objeto “pessoa”, como faríamos para descobrir a data de nas- cimento desse noivo ou dessa noiva no futuro? Essa ação demonstra uma interdependência entre os dados do casamento e os dados das pessoas. Porém, de modo contrário, se tivermos nomes de pessoas que não apareçam nenhuma vez nos nomes de noivos e noivas, não teríamos uma situação de falta de coerência, seriam simplesmente pessoas que ainda não se casaram. Essas situações nos fazem pensar em regras de coerência – ou re- gras de negócio – que determinam o que pode ou não ocorrer entre os dados interdependentes. Nesse exemplo, poderíamos estabelecer que: • nem todas as pessoas precisam ser noivos ou noivas; • um noivo ou uma noiva precisa ser uma pessoa; e • um casamento não pode ocorrer somente com o noivo ou so- mente com a noiva. Essas regras serão importantes para estabelecer os relacionamen- tos entre os objetos do modelo (que são chamados de entidades). E a terceira característica é o fato de os dados atenderem a uma finalidade específica. Tanto o escopo dos objetos observados quanto a amplitude do mapeamento desses objetos, o modo de mapeamento, a quantidade de dados a serem povoados nessa base de dados e o modo como serão compartilhados os dados entre as aplicações podem depender da finalidade do banco de dados. Em nosso exemplo, estamos criando um banco de dados de casa- mentos. Mas qual será o universo de casamentos a ser abrangido por esse BD? Somente os casamentos realizados em uma determinada cidade? Casamentos de todo um estado? De todo um país? E o com- partilhamento desses dados será somente com um seleto grupo de pessoas? Ou será um sistema público que deverá ser compartilhado com todos os cidadãos? As respostas para todas essas perguntas podem mudar o modo como o banco de dados será estruturado, onde será armazenado, qual o mecanismo de validação de acesso que deverá ser provido, qual a Introdução a banco de dados 17 quantidade de registros de dados que conterá, como serão divididos os casamentos de cada diferente país, estado, cidade, entre outros. Em resumo, um pequeno BD de casamentos feitos em uma cidade ou um enorme BD de casamentos feitos em todo o mundo poderão requerer características diferenciadas. 1.1.4 Banco de dados e sistema gerenciador de banco de dados: diferenças Outro ponto que merece distinção quando tratamos de bancos de dados é o fato de que para capturar, armazenar, manipular e disponibi- lizar dados mapeados e definidos em um BD é necessário o uso de um software construído especificamente para essas funções. Esse software – que permite que os sistemas de informação intera- jam com o banco de dados – é denominado SGBD ou sistema gerencia- dor de banco de dados. O SGBD não é o banco de dados, ele é o sistema que gerencia o BD por meio de diversas funções, a saber: • criar o banco; • criar tabelas e colunas que vão compor o banco; • definir os usuários que poderão ter acesso aos dados; • fornecer o acesso para consulta e atualização dos dados; • realizar cópias de segurança dos dados; • monitorar a performance do banco de dados; • permitir a execução de rotinas de compactação de espaço físico. Existem vários fabricantes de SGBD no mercado, cada um com ca- racterísticas distintas. Entretanto, de modo geral, todos disponibilizam um conjunto comum de recursos voltados à criação e à manutenção do banco de dados. Com base nos padrões internacionais estabelecidos pela ANSI (Ame- rican National Standard Institute) 2 , temos hoje uma grande compatibi- lidade entre os diversos SGBDs existentes, principalmente no tocante aos recursos que eles fornecem para que os sistemas de informação possam interagir. Podemos dizer que atualmente possuímos um pa- drão de linguagem de programação para acesso ao banco dados (com pequenas exceções). Para conhecer o trabalho da ANSI, visite: https://www.ansi. org/. Acesso em: 19 fev. 2020. 2 18 Banco de Dados I 1.1.5 Sistemas de informação Temos tratado até aqui, por diversas vezes, de sistemas de informa- ção como elementos de acesso ao banco de dados. Mas o que são efe- tivamente os sistemas de informação e por que se denominam assim? Como vimos anteriormente, um dado pode produzir diversas in- formações por meio de transformações que venha a ser submetido. Quem executará essas transformações serão conjuntos de programas, rotinas e funções, que juntos comporão um sistema de informações. Podemos afirmar que qualquer conjunto de funções que manuseie e transforme dados é um sistema de informação. Assim, um simplesapp de um smartphone que realize o controle de gastos para geren- ciá-los pode ser um sistema de informações. Mas e o banco de dados, onde estará? É necessário ter um SGBD no smartphone? Não necessa- riamente. Podemos ter um banco de dados sem um SGBD, com es- truturas mais simples de manuseio de dados. Porém, se estivermos tratando de um sistema corporativo de gestão de finanças, muito pro- vavelmente, pela complexidade e extensão dos dados a se manusear, faz-se necessária a presença de um SGBD. 1.1.6 Evolução das estruturas de dados Os sistemas de informação sempre tiveram suas demandas de aces- so e armazenamento de dados providas por algum tipo de estrutura de dados, mesmo antes da existência dos SGBDs. Naturalmente, com a evolução da tecnologia, a disponibilidade de recursos de hardware e as novas demandas por maiores facilidades para produção de programas que interagissem com os bancos dados, o mercado passou a oferecer alternativas mais complexas e com melhores recursos. Figura 7 Surgimento das tecnologias para dados Anos 1950 Anos 1960 Anos 1970 Anos 1980 Anos 1990 Sistemas de arquivo BD Hierárquico BD Rede BD Relacional BD Pós-relacional Fonte: Elaborada pelo autor Introdução a banco de dados 19 Durante a década de 1950 e até o início da década de 1960, a es- trutura de dados predominante era a dos sistemas de arquivo, primei- ramente sequenciais (na qual, para ler um registro de número 3, era necessário primeiramente ler o registro de número 1 e, em seguida, o de número 2), e, depois, também indexados – que permitiam acesso di- reto a um registro sem necessidade de ler todos os registros anteriores. Já no final da década de 1960, ocorreu o surgimento dos primeiros SGBDs que já implementavam um modelo hierárquico de acesso aos da- dos como uma derivação dos mecanismos de acesso indexados, no qual coleções de arquivos eram reunidas e gerenciadas de modo integrado. Durante a década de 1970 e início da década de 1980, houve a pre- dominância dos SGBDs em rede, estrutura de organização e recupera- ção de dados baseada em vínculos criados entre os registros por meio de ponteiros 3 . Voltando ao exemplo, se em um casamento há duas pessoas envolvidas, o registro do casamento no banco de dados apon- ta, por meio de ponteiros, para os registros que contêm os dados da “pessoa 1” e da “pessoa 2”, as quais fazem parte do conjuntos de pes- soas. Uma estrutura de encadeamento circular de dados faz o vínculo de armazenamento e de recuperação de dados. Em meados da década de 1980, o mercado de SGBD passou a ser dominado pelos SGBDs relacionais, baseados em uma estrutura de ar- mazenamento de dados em tabelas, com linhas e colunas, e utilizando operações relacionais (com origem na teoria dos conjuntos) para recu- peração dos dados armazenados nesses conjuntos de dados (tabelas). Por fim, ainda na década de 1980 surgiram os SGBDs orientados a objetos relacionais ou pós-relacionais. Esses SGBDs foram adap- tados aos novos requisitos das linguagens orientadas a objetos e às novas demandas de armazenamento de dados complexos – ima- gens, diagramas, documentos. Nesse sentido, houve a implementa- ção de novas estruturas de armazenamento e recuperação de dados com estruturas complexas. É importante considerar que o surgimento de uma nova abordagem de estrutura de BD não significa que a abordagem anterior deixe de existir. Assim, ainda há muitos sistemas que até hoje preservam estru- turas de arquivo ou de bancos de dados hierárquicos 4 . Ponteiros são campos inseridos no banco de dados para referenciar um outro registro também existente nesse mesmo banco dedados, criando um apontamento. 3 Veremos os diferentes tipos de BDs ainda neste capítulo. 4 20 Banco de Dados I 1.1.7 Administração de dados Com o crescente uso de SGBDs pelos sistemas de informação – prin- cipalmente nas grandes corporações – e com o aumento da complexi- dade das estruturas dos BDs, surgiu a necessidade de implementação de uma nova categoria de profissionais que tivessem a capacidade de criar, manter e administrar os modelos de dados de modo eficiente. Essa categoria de profissionais passou a ser denominada de admi- nistradores de dados. Sua função não era ligada diretamente ao SGBD, mas sim a aspectos conceituais e lógicos envolvidos nos modelos de da- dos criados. Se o modelo de dados daria origem a um banco de dados relacional ou a um banco de dados em rede, era uma decisão técnica que cabia a outro profissional, o administrador do banco de dados. Dentre as funções do administrador de dados podemos elencar: • identificar as fontes de dados da organização; • mapear os dados identificados; • estabelecer relacionamentos entre os dados de modo coerente; • definir a utilização dos dados e a propriedade dos dados, isto é, quem deve mantê-los; e • identificar redundâncias e inconsistências nos dados e tratá-las. Essas funções envolvem a gestão de dados independentemente de qualquer implementação física de um banco de dados. Pode parecer estranho, mas é possível executar as funções de administrador de da- dos mesmo em empresas que jamais tenham um SGBD e um sistema de informação que use esses dados. Os dados existentes em formulá- rios, documentos e planilhas podem fazer parte das tarefas do admi- nistrador de dados. 1.1.8 Administração de banco de dados Se o administrador de dados não tinha funções ligadas ao SGBD, um profissional deveria ser designado para executar essas funções. Foi assim que surgiu a figura do administrador de banco de dados. Esse sim é um profissional diretamente ligado ao SGBD e que, portanto, tem que conhecer os aspectos técnicos específicos para implementar o banco de dados mapeado pelo administrador de dados. Introdução a banco de dados 21 Esses dois profissionais têm papéis complementares: um modela ou prepara a estrutura nativa dos dados, o outro implementa essa estru- tura utilizando recursos do SGBD. Em empresas com equipes menores, um mesmo profissional pode assumir essas duas funções simultanea- mente. Já em empresas com equipes mais especializadas é comum existir separadamente um administrador de dados e um administrador de banco de dados, uma vez que as competências são diferenciadas. Como o administrador de banco de dados tem interação direta com o SGBD, é necessário que esse profissional possua um perfil bastante técnico e com formação específica e treinamentos para conhecer os recursos do SGBD escolhido. Como cada fabricante de SGBD tem suas particularidades, muitas vezes o conhecimento prévio pode não ser su- ficiente. Além disso, o suporte ao uso do SGBD para os programadores, os analistas e as tratativas de problemas encontrados durante o uso são tarefas do administrador de banco de dados e não do administra- dor de dados. São tarefas de um administrador de banco de dados: • transformar o modelo de dados conceitual em modelo lógico; • definir o esquema interno do BD (usando a linguagem do SGBD); • realizar o suporte aos programadores e analistas; • implementar as restrições de segurança e integridade no SGBD; • monitorar o desempenho e responder a requisitos de mudanças; • definir normas de descarga e recarga do banco de dados (backup); • executar procedimentos operacionais no banco de dados. 1.2 Vantagens e desvantagens do uso de um banco de dados Vídeo A adoção de uma abordagem baseada em bancos de dados não é somente uma escolha técnica ou uma imposição da evolução tec- nológica que aconteceu nos últimos anos. O Quadro 1, a seguir, elen- ca as principais vantagens do uso de bancos de dados (DATE, 2004; SILBERSCHATZ, KORTH, SUDARSHAN, 2012). 22 Banco de Dados I Quadro 1 Vantagens do banco de dados Compartilhamento dos dados O objetivo principal de um BD é reunir um conjunto de dados de modo coerente para disponibilizá-lo a um grande contingente de aplicações, as quais poderão, então, compartilhar esses dados. Se tivermos, por exemplo,os dados de pessoas armazenados em um BD, poderemos compartilhá-los com todas as aplicações que de algum modo precisem acessar ou atualizar dados, como “nome” e “data de nascimento”. Esse compartilhamento, segundo Heuser (2009), reduz o custo total de propriedade dos dados, isto é, o custo total para obter, manter e usar dados. Facilidade de acesso aos dados Ao utilizar um SGBD para manter um BD, passa-se a ter um método de acesso único, provido também por meio de uma linguagem estruturada (SQL – linguagem padrão para banco de dados relacionais) que padroniza e facilita o reaproveitamento de códigos gerados para interação com o banco de dados. Se cada aplicação tivesse o seu próprio arquivo, seria possível ter diferentes métodos de acesso e haveria dificuldades para compartilhar códigos e funções já criadas em outros sistemas. Redução da redundância Considerando uma estruturação coerente de dados e o objetivo de compartilhamento, há de se obter, naturalmente, um BD em que a redundância de dados seja bastante reduzida ou até inexista. Com a redundância sob controle, é possível produzir indiretamente outros benefícios, como, novamente, a redução do custo de propriedade dos dados. Redução das inconsistências Ao criar um conjunto de dados coerente, integrado e que tenha baixa ou nenhuma redundância, tem-se, naturalmente, a redução das possíveis inconsistências entre os dados existentes no BD. O estabelecimento de regras de criação, de atualização e até de exclusão de dados, dentro de critérios coerentes, irá permitir, por exemplo, que não tenhamos “casamentos” referenciando nomes que não existam no conjunto de dados de pessoas. Disponibilidade de suporte a transações Os SGBDs e as linguagens de programação que eles dispõem para a construção de funções de acesso, atualização e exclusão de dados proveem meios para que o acesso concorrente (simultâneo) de diversos programas possa ser feito a um mesmo dado sem que este apresente um conteúdo não íntegro. Manutenção da integridade Havendo um controle de transações, uma redução de redundância, uma redução de inconsistências e um modelo de dados coerente, poderemos assegurar que o banco de dados terá seus dados íntegros, isto é, conseguiremos manter a coerência dos dados planejada, mesmo que diversos programas e usuários simultaneamente estejam executando rotinas de inclusão, alteração e exclusão de dados. Isso será assegurado por recursos do próprio SGBD, no qual se pode estabelecer regras de integridade que serão sempre aplicadas sobre cada transação executada no BD. Balanceamento de requisitos conflitantes Como as várias transações concorrentes requisitarão atualizações e consultas sobre os mesmos dados, poderá ocorrer situações em que um mesmo dado acabe sendo requisitado de modo conflitante. O ambiente de banco de dados estará preparado para tratar dessas situações e resolvê-las de modo automático, sem que o programador precise se preocupar em escrever rotinas especiais. (Continua) Introdução a banco de dados 23 Melhoria da segurança Outro importante recurso disponível nos SGBDs são os diversos mecanismos de controle de segurança para acesso e para atualização dos dados do BD. Tanto as permissões que definem quem pode ou não acessar um dado quanto os mecanismos de garantia das atualizações feitas no BD (redo log) irão contribuir para a segurança lógica e física dos dados. Pode-se limitar o acesso de uma pessoa ou um sistema a todo um conjunto de dados (uma tabela inteira) ou a somente parte dos dados (algumas colunas ou linhas da tabela) por meio da criação de visões de dados. Utilização de padrões A unificação dos dados em um mesmo BD gera também uma padronização de formatos, de regras de atualização e até de conteúdos. Quando existe redundância, podemos ter eventualmente o mesmo dado representado em formatos diferentes e com regras de atualização diferentes. A centralização de controle dos dados pelo administrador de dados pode assegurar que um maior nível de padronização seja criado. Fonte: Elaborado pelo autor com base em Date, 2004; Silberschatz, Korth, Sudarshan, 2012. Apesar de todas as características positivas na adoção de uma es- trutura de banco de dados, temos que estar atentos a algumas pe- culiaridades que podem trazer desvantagens ao seu uso, as quais descrevemos a seguir. Quadro 2 Desvantagens do banco de dados Perda de autonomia sobre os dados Quando tratamos de centralização, seja de dados, de processos, de pessoas, de equipamentos, temos naturalmente a perda de autonomia sobre esses mesmos itens. Quando determinado dado é definido, criado, atualizado ou excluído e compartilhado com outras aplicações, é necessário realizar essas operações ciente de que outras pessoas podem vir a ser impactadas. Se, por exemplo, ao resolver mudar o número de identificação de 6 dígitos para 7 dígitos, porque o sistema requer esse novo tamanho, qual será o impacto nos demais sistemas que já usam esse código? Talvez a troca não seja tão fácil como seria em um arquivo individual. Interdependência entre os dados A interdependência criada pela centralização dos dados também poderá afetar, de certo modo, determinada aplicação ou a aplicação de terceiros. No caso de somente um arquivo próprio, com os dados que o sistema requer, talvez esse arquivo nunca fosse impactado por outro sistema que resolvesse inserir outras 200 mil pessoas em um cadastro que tinha somente mil. Um BD que tinha somente os dados de “pessoa” e de “casamento” em poucos meses poderá ter dados de outros 100 ou 200 objetos, relacionados com “pessoa” e com “casamento” de um modo não antes imaginado. Contudo, é importante lembrar que os dados não são mais individuais. Sincronização dos dados no tempo Imagine que foi atualizado todo um cadastro de pessoas, corrigindo os números de CEP das residências de cada um dos colaboradores. Em paralelo, outro programa foi executado por outra aplicação, mudando também os telefones dos colaboradores. Agora, imagine que, em razão de um problema no processo de atualização do CEP, todos os dados atualizados ficaram errados, sendo necessário voltar ao estágio anterior para reprocessar a atualização. Isso seria muito fácil de ser feito, caso não fosse compartilhado um BD com outras aplicações. É importante lembrar que os dados não são mais individuais e estar preparado para esse e outros tipos de situações em que a sincronização dos dados entre diferentes aplicações será dependente do tempo, ou de quando for feita. Fonte: Elaborado pelo autor com base em Date, 2004; Silberschatz, Korth, Sudarshan, 2012. 24 Banco de Dados I Ao analisar vantagens e desvantagens do uso de bancos de dados, pode-se perceber que os pontos positivos superam os pontos negati- vos. Desse modo, o uso dessa abordagem é uma alternativa bastante viável para boa parte dos sistemas de informação. 1.3 Criação e manutenção de bancos de dados Vídeo O processo de criação de um banco de dados que será disponibili- zado por meio de um SGBD, para uma ou mais aplicações, requer um formalismo para que tenha as três características citadas por Navathe e Elmasri (2005): porção do mundo real, logicamente coerentes e fina- lidade específica. É verdade que, em um primeiro momento, poderíamos abrir mão desse processo formal para criar um SGBD, mas o resultado seria, com o passar do tempo, a desestruturação dos dados. Muitas vezes, pela aparente simplicidade do processo de criação de estruturas de dados no SGBD (em função das ferramentas que ele fornece), pode-se pensar: “Por que não ir direto ao SGBD e criar as tabelas de que preciso?”. Nesse caso, é importante lembrar: os dados não são seus, são da organização. Nesse sentido, apresentamos a seguir os passos que devem ser se- guidos formalmente para ter um processo incremental de evolução do BD sem que eleperca sua integridade e sua coerência e para que não tenha redundâncias. Mapeamento dos dados A criação de um BD começa, como vimos, com o administrador de dados, que é quem conhece os dados da empresa. Esse profissional sabe onde os dados são gerados, quem é o responsável por sua atua- lização, o que esses dados representam e qual padrão devem seguir. Desse modo, a primeira etapa na criação de um BD é identificar os dados envolvidos. Para o administrador de dados, esses dados ainda não precisam ter a finalidade de formar um BD, eles poderiam simplesmente estar pre- sentes na empresa. Mas esse profissional tem interesse em conhecê- -los para que futuramente – caso alguém precise desse dado em um BD para sua aplicação – possa ofertá-los para compor o banco de dados. Introdução a banco de dados 25 Isso significa que a criação de um banco de dados pode começar muito antes do surgimento da necessidade de um novo sistema ou de um novo aplicativo. Podemos perceber que se o administrador de da- dos realmente cumprir o papel de mapear os dados da empresa, ele estará, na verdade, antecipando o trabalho dos futuros analistas de sis- temas ou administradores de banco de dados no momento em que se tenha a demanda de criação de novos BDs. Modelagem conceitual O próximo passo a ser seguido na criação do banco de dados é rea- lizar a modelagem conceitual dos dados que o escopo da demanda re- quer. Como vimos, todo BD representa uma porção do mundo real em um dado momento. Precisamos, então, delimitar a nossa porção de mundo real e iniciar a modelagem conceitual desses dados. Mas o que é a modelagem conceitual? Segundo Heuser (2009), ela é um processo de criação de uma representação gráfica e textual de basi- camente dois elementos: as entidades e os relacionamentos. Esse pro- cesso identifica os objetos ou fatos do mundo real a serem mapeados (as entidades) e os relacionamentos que existem entre esses objetos (por meio de regras). Em nosso exemplo, teríamos a entidade “pessoa” e a entidade “casamento” (que são os objetos e fatos) e a regra relacio- namento, que seria “uma pessoa é noivo em um ou mais casamentos”. Criando esse modelo, identificamos quais dados de quais entidades iremos necessitar, e o administrador de dados poderá nos dizer se já os conhece ou não. Se eles já foram mapeados anteriormente, obtém-se as informações sobre esse dado já disponível. Se não foram ainda ma- peados, pode-se, com ajuda do administrador de dados, mapear novos dados corporativos, ou seja, que comporão o modelo em questão, mas que estarão disponíveis para toda a organização futuramente. Esse é o processo incremental e cíclico que gera um conjunto compartilhado e coerente de dados. O que precisamos destacar é o fato de que o modelo conceitual, nes- se momento, ainda é independente de um SGBD, ou seja, o modelo con- ceitual não é relacional, não é rede e não é hierárquico. Ele representa os dados em sua estrutura inerente, sem preocupações com o que o SGBD irá futuramente exigir, como chaves, índices, tamanhos de campos etc. Em Projeto de banco de dados, Carlos Heuser aborda temáticas conceituais de bancos de dados. Trata-se de uma obra introdutória e que precede a leitura de outros materiais mais densos. HEUSER, C. A. 6. ed. Porto Alegre: Bookman, 2009. Livro 26 Banco de Dados I Modelagem lógica Depois de finalizado o processo de modelagem conceitual, teremos uma estrutura gráfica e textual – algumas descrições e definições são feitas em texto complementando o gráfico – que será o modelo con- ceitual. Esse modelo poderá ser derivado ou adaptado para um novo tipo, que é o modelo lógico. Esse, segundo Heuser (2009), captura e incorpora os requisitos do SGBD escolhido para a criação do BD. Assim, caso seja escolhido o SQL-Server (SGBD fornecido pela Microsoft), será necessário adaptar o modelo conceitual aos requisitos de um banco de dados relacional, que são diferentes dos requisitos de um SGBD em rede (IDS-II) 5 . Muito mais do que requisitos impostos por fabricantes, são requisitos impos- tos pelas arquiteturas dos bancos de dados. Desse modo, se a arquite- tura escolhida é a de um BD relacional (e existem vários fornecedores no mercado), o modelo conceitual deverá ser adaptado aos requisitos do modelo relacional. Esse será um modelo lógico que praticamente servirá para qualquer SGBD relacional do mercado, com pequenas mu- danças em relação a particularidades ou outras questões que um for- necedor apresente. Essa derivação de modelo será feita por meio de regras de conver- são e não irá requerer muito tempo ou esforço. Muitas vezes, até pou- cas mudanças acontecerão, pois muitas pessoas, ao construírem seus modelos conceituais, inconscientemente os criam com uma orientação para o modelo lógico – sabendo, por exemplo, que usarão um BD rela- cional. Há também pessoas ou empresas que já iniciam a modelagem com o modelo lógico, dispensando o modelo conceitual, pois usam fer- ramentas (softwares) que já são orientadas ao primeiro modelo. Isso é prejudicial? Não se pensarmos no resultado final do processo, que é gerar o modelo lógico, mas sim se pensarmos sob o ponto de vista da administração de dados. Modelagem física Após gerado o modelo lógico, que já está pronto para os requisitos do SGBD, chegamos à última etapa de construção do banco de dados, que é a modelagem física, também chamada de projeto do banco de dados. Integrated Data Store II, SGBD produzido pela empresa francesa Bull. 5 Introdução a banco de dados 27 Segundo Heuser (2009), como em todo projeto, é nesse momento que detalhes, mecanismos de otimização, cálculos de ocupação de es- paços, mecanismos de segurança, ente outros elementos são agrega- dos. Até o ponto em que se tem o modelo lógico, não há preocupação com detalhes como: • Quantos registros serão armazenados em cada tabela? • Qual o tamanho de cada registro? • Qual será a necessidade de acesso a essa tabela? Eventual? On-line? • Como esse dado será compartilhado? Somente em um local? Na web? Todas essas características precisam ser analisadas para que se crie uma estrutura física (realmente alocando espaço em disco em um ser- vidor) para o banco de dados. Aqui, ele deixa de ser um modelo e passa a ser um repositório de dados. Essa etapa do processo requer a participação do administrador de banco de dados, que também participa da etapa do modelo lógico, pois ambas as etapas requerem o conhecimento específico das característi- cas do SGBD escolhido. Dicionário de dados É importante saber que todas as informações sobre o modelo de da- dos conceitual – lógico e físico – deverão ser registradas em um reposi- tório que chamamos de dicionário de dados. Nele temos registros de um determinado campo (por exemplo, “data de nascimento”), a saber: • A qual entidade pertence. • Como é alimentado. • Quando é atualizado. • Quem é o responsável pela criação. • Quem é o responsável pela atualização. • É um campo de preenchimento obrigatório? • Que conteúdo terá se não for preenchido? Uma data padrão? • Qual o formato? Tem só dia, mês e ano ou precisa de hora e minuto? • Por que foi escolhido esse formato? Existe uma norma que exige? 28 Banco de Dados I Pode-se perceber que as informações coletadas na fase de modela- gem conceitual, lógica e física estão aqui registradas. Elas servirão para o administrador de dados compartilhar futuramente esses dados, sa- bendo de suas características previamente estabelecidas. As mudanças que venham a ocorrer nessas informações precisam ser divulgadas aos usuários desse dado – por exemplo, modificações na regra de preen- chimento ou uma mudança de formato – para que eles avaliem os im- pactos em suas aplicações. Processos operacionais Estando o BD criado fisicamente e pronto para uso, inicia-se a fase de definição e implementação de procedimentos operacionais de ad- ministração do banco de dados. Entre essesprocessos temos: • monitoração do acesso aos dados; • monitoração da performance de acesso; • rotinas de salvamento (backup); • planos de recuperação e contingência para falhas no BD; • rotinas de compactação de dados (para redução do espaço em disco); • rotinas de criação e recriação de índices (melhoria de performance). Todas essas rotinas são de responsabilidade do administrador de dados, que, após esse momento, passa a ter o BD como um recurso de compartilhamento de dados com a organização, e deve estar ciente dos impactos negativos que uma indisponibilidade desse recurso possa causar. Mesmo que em um primeiro momento o BD esteja sendo cria- do para uma única aplicação, em breve ele estará sendo compartilhado com diversas aplicações e poderá ter níveis de disponibilidade diferentes para cada uma delas. Algumas, talvez, só o utilizem durante o dia, mas outras talvez requeiram disponibilidade de 24 horas por dia e 7 dias da semana. Tudo isso também deve estar mapeado no dicionário de dados e servirá de subsídio para que o administrador de banco de dados possa estabelecer suas rotinas operacionais de acordo com os requisitos. Algumas das definições físicas poderão, com o passar do tempo, ser alteradas em razão de demandas de outras aplicações, mudanças de regras, normas da empresa ou até crescimento no volume de dados do BD. Logo, as tarefas dessa etapa serão continuamente executadas ao longo da vida do banco de dados. Introdução a banco de dados 29 1.4 Tipos de bancos de dados Vídeo O processo modelagem pode se aplicar, com pequenas adaptações, à construção de diferentes tipos de bancos de dados. Alguns desses tipos foram historicamente importantes e não são mais usados com frequên- cia. Outros ainda têm usos isolados em aplicações desenvolvidas há mui- to tempo, mas que se mantêm ativas, por exemplo, no setor bancário, o qual ainda preserva aplicações antigas, mas estáveis e em operação. A seguir, relacionamos conceitos básicos de cada um desses tipos de bancos de dados, de modo a permitir, pelo menos, o reconhecimen- to, a identificação de benefícios e possibilidades de aplicação. 1.4.1 Banco de dados hierárquico Os bancos de dados hierárquicos foram os primeiros modelos de implementação de BDs derivados das estruturas de arquivos indexa- dos. Eles já agregavam o conceito de reunir de modo único diferentes coleções de dados. Isso se diferenciava de um simples arquivo indexa- do, que normalmente atendia a somente um conjunto de dados. Por exemplo, ao usar arquivos para armazenar dados de “pessoas” e de “casamentos”, fazia-se necessário ter dois arquivos indexados. Ao usar um banco de dados hierárquico, era possível ter os dois conjuntos de dados integrados em um só lugar. É certo que esse tipo de BD ainda tinha grandes restrições para im- plementar todo tipo de relacionamento entre diferentes conjuntos de dados, pois, como o próprio nome sugere, ele só era capaz de imple- mentar hierarquias, isto é, estruturas em árvore. Toda a estrutura de agregação dos dados era realizada por meio de ponteiros – campos que continham o endereço físico do outro ele- mento a ser apontado –, o que garantia uma associação entre registros, mantida pelo SGBD e não pelo programador. O programador precisava somente indicar os elementos para que a associação se completasse. Apesar de ser limitado, esse tipo de BD já trazia uma linguagem própria e unificada para manipulação dos dados, permitia o compar- tilhamento e unificava a administração dos dados. O BD hierárquico já implementava boa parte dos benefícios de uso de um banco de dados. 30 Banco de Dados I Considerando que não havia na época outra alternativa senão o uso de arquivos isolados, os BDs hierárquicos passaram a ser adotados no ambiente de corporações que manipulavam grandes volumes de dados em suas aplicações, e se mantiveram por muito tempo em operação. 1.4.2 Banco de dados em rede A limitação do banco de dados hierárquico levou os pesquisadores da época a buscar uma alternativa para que o modelo hierárquico evo- luísse para um modelo em rede. No modelo em rede (muito similar ao hierárquico), pode-se ter um conjunto de dados participando de mais de um relacionamento com diferentes conjuntos. Esse novo recurso resolvia a restrição existente no modelo hierár- quico e, por isso, passou a ser o novo modelo mais procurado para im- plementações de bancos de dados. Por muito tempo, os BDs em rede dominaram o mercado, mas mesmo assim eles ainda apresentavam algumas restrições que precisavam ser superadas. Assim como os modelos hierárquicos, que utilizavam ponteiros para fazer a associação entre os registros, o modelo rede acabava por criar uma estrutura muito rígida de relacionamento entre os conjuntos de dados. Imagine que um modelo tivesse um conjunto “filho” associado a so- mente um conjunto “pai”. Imagine também que seria criado, em segui- da, um novo relacionamento desse mesmo conjunto “filho” com um novo conjunto “pai”. Como toda essa associação era feita fisicamente por campos gravados no registro “filho”, era necessário alterá-lo para que ele recebesse mais um campo de ponteiros para o novo relaciona- mento. Para tanto, o espaço que aquele registro ocupava no disco iria crescer. Seria necessário descarregar todos os registros “filho” da base para outro arquivo e, em seguida, reinseri-los com um novo campo e ocupando um novo espaço. 1.4.3 Banco de dados relacional O banco de dados com abordagem relacional surgiu para trazer maior flexibilidade às estruturas de dados dos BDs, permitindo que novas colunas (campos de dados) fossem agregadas facilmente a um registro já existente, bem como que novos relacionamentos pudessem ser agregados entre esse e outros registros, sem que isso impactasse o armazenamento físico do banco de dados. Introdução a banco de dados 31 No BD relacional, deixou-se de ter ponteiros para associar registros – pois eles eram campos “artificiais”, usados somente com finalidade associativa – e passou-se a utilizar, então, associações feitas por meio de campos naturais. Isso significa que, por exemplo, caso seja necessá- rio associar um “professor” a uma “disciplina” que ele ministra, basta ir ao registro da “disciplina” e inserir o código da matrícula do professor. Passamos a relacionar a disciplina com o professor com dados natu- rais (aqueles que existem no mundo real) e não com dados artificiais (aqueles criados somente para viabilizar um relacionamento entre da- dos naturais). Essa nova abordagem relacional veio atender de modo bastante completo todas as restrições que existiam, além de resolvê-las utilizan- do uma abordagem já amplamente validada: a teoria dos conjuntos (oriunda da matemática básica). 1.4.4 Banco de dados pós-relacionais A partir da década de 1980, o mercado foi dominado pelos bancos de dados relacionais, tendência que se mantém até hoje. Porém, mes- mo que os BDs relacionais tenham atendido grande parte das deman- das de criação de bancos de dados, ainda tivemos uma nova onda que se iniciou por volta da década de 1990. Com o advento das linguagens orientadas a objeto (C++, smalltalk, en- tre outras), o surgimento de novas metodologias de análise de sistemas e o desenvolvimento de sistemas orientados a objetos, muitos passaram a se questionar se também os bancos de dados não deveriam usar uma abordagem orientada a objetos para armazenamento dos dados. Nesse sentido, surgem os primeiros bancos de dados orientados a ob- jetos – Objectivity/DB, Ontos, O2 e ITASCA –, com o objetivo de proverem meios para o armazenamento de dados complexos e serem mais fiéis à representação dos objetos mapeados pelas linguagens de programação. Comercialmente, esses BDs não se estabeleceram no mercado, al- guns serviram para projetos muito específicos (normalmente em áreas científicas), mas sem uma representatividade numérica quanto aos profissionais que os conhecem e os utilizam. Comoos modelos relacionais ainda tinham grande dominância no mercado, surgiram tentativas de criação de um modelo chamado objeto-relacional ou relacional estendido. Tratava-se de um modelo que incorporava algumas evoluções do relacional convencional, mas que 32 Banco de Dados I utilizava em grande parte os recursos dos relacionais já tão aceitos pelo mercado. Esse modelo também não teve predominância no mercado e hoje quase não é mais visto em aplicações comerciais. A verdade é que 99% das aplicações comerciais podem ser bem atendidas com o modelo relacional convencional, sendo a opção de grande parte dos projetos. Em 2009, ressurgiu uma nova onda, liderada por pesquisadores que buscavam meios para que os BDs relacionais pudessem tratar de ques- tões complexas, como distribuição de dados, altos volumes de arma- zenamento (da ordem de terabytes), armazenamento e recuperação de dados científicos, como mapas, fotos, escâneres, entre outros. Esse movimento teve início em 1998, quando pela primeira vez já se falava em NoSQL 6 , mas somente com a viabilização de softwares e hardwa- res mais modernos voltou a ser tratado em bancos de dados NoSQL, como MongoDB, Cassandra, entre outros. Os BDs não relacionais utilizam os recursos do ambiente relacional (SQL), mas agregam outras facilidades típicas dos modelos orientados a objetos, bem como outras para gerenciamento de distribuição de da- dos em grandes volumes. Imagine uma base de dados de indexação de páginas web que é usada pelo buscador Google para atender a um pedido de filtro feito no browser. Que tamanho deve ter essa base? E onde ela está localizada? Qual comando de filtro é aplicado para se- lecionar os registros que interessam? Com certeza um banco de da- dos relacional convencional não daria conta de tudo isso. Para tanto, o próprio Google, em 2003, criou uma iniciativa de um software livre de banco de dados chamado Hadoop, que manuseia grandes volumes de dados estruturados e não estruturados. Essa plataforma hoje é um dos grandes exemplos de soluções NoSQL. A denominação NoSQL não implica que esse tipo de BD não utilizará o SQL, mas que implementará outros recursos além dele. É importante ressaltar que a sigla NoSQL significa “not only SQL” (“não apenas SQL”, em tradução livre), e não “not SQL” (“não SQL”, em tradução livre). Ele preserva e expande o modelo SQL. Finalmente, nas últimas décadas, temos visto pesquisas orientadas para novas arquiteturas de bancos de dados que possam gerenciar grandes volumes de dados em função do novo conceito de big data 7 , que passou a ser agregado a uma série de aplicações. Esse é um tema em amplo desenvolvimento e que promete ainda grandes surpresas. terabyte: “múltiplo do byte, que vale 1.024 gigabytes”. “Fre- quemente arredonda-se o valor do terabyte para mil gigabytes” (HOUAISS, 2009). Glossário Termo genérico adotado para representar os bancos de dados não relacionais. 6 Grandes BDs que armazenam massas de dados de proporções muito grandes quando com- paradas aos bancos de dados comerciais. 7 Introdução a banco de dados 33 CONSIDERAÇÕES FINAIS Neste capítulo, vimos que a criação de um banco de dados é mais do que uma escolha técnica por um software de SGBD. Temos uma grande responsabilidade em criar algo que será compartilhado com toda a orga- nização e não somente com nossos próprios sistemas. Precisamos conhecer os dados, identificar suas características, verifi- car o modo como se relacionam com outros dados e tantos outros deta- lhes. Portanto, é importante lembrar: os dados não são seus, eles são da organização. Aquilo que você cria hoje poderá amanhã ser alterado e até mesmo excluído por outra pessoa. Assim, todo o cuidado no estabeleci- mento de regras de utilização desses dados deve ser tomado. Não tenha pressa de criar seu banco de dados. Aqui vale um velho ditado: “se você tem duas horas para cortar uma árvore, gaste uma hora e meia afiando seu machado”. ATIVIDADES 1. Por que podemos afirmar que, ao criar um banco de dados, os dados não são nossos? 2. Por que um administrador de dados nem sempre é o profissional indicado para ser o administrador do banco de dados? 3. Por que um banco de dados deve ser sempre visto como uma porção do mundo real? REFERÊNCIAS DATE, C. J. Introdução a sistemas de bancos de dados. 8. ed. Rio de Janeiro: Elsevier, 2004. HEUSER, C. A. Projeto de banco de dados. 6. ed. Porto Alegre: Bookman, 2009. HOUAISS, A. (org.). Houaiss eletrônico. Rio de Janeiro: Objetiva, 2009. 1 CD-ROM. NAVATHE, S. B.; ELMASRI, R. Sistema de banco de dados. 4. ed. São Paulo: Person Brasil, 2005. SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistema de banco de dados. 6. ed. Rio de Janeiro: Elsevier, 2012. 34 Banco de Dados I 2 Sistema de gerência de banco de dados Neste capítulo, vamos conhecer com mais detalhes qual é a estrutura que define um sistema gerenciador de banco de dados (SGBD) e como essa estrutura interage com os diversos agentes (pessoas, sistemas etc.) de modo a permitir que as funções de acesso e administração dos dados possam ser feitas. Conhecer essa estrutura é o ponto de partida para a apresenta- ção de todos os recursos que permitem construir e acessar diferentes BDs por meio de um software de gerenciamento de banco de dados. 2.1 O que é e para que serve um SGBD? Vídeo Um sistema gerenciador de banco de dados é um conjunto de pro- gramas criado para executar as funções de manipulação física dos da- dos armazenados em um BD. Essas funções podem ser divididas em externas, internas e de apoio. Entre as funções externas, temos o pré-processamento, isto é, a pré-compilação dos comandos de manipulação de dados. Esses dados são incorporados às linguagens de programação, ocorrendo a compi- lação da linguagem hospedeira. Essas funções são realizadas por meio de drivers, que consistem em bibliotecas fornecidas pelo fabricante do SGBD e/ou do fabricante da linguagem de programação. Já entre as funções internas encontramos o motor de processa- mento e de acesso aos dados, realizados por meio de um compilador de linguagem de manipulação de dados. Além disso, dentre essas fun- ções, temos a execução de comandos interativos para usuários casuais por meio de compiladores de pesquisas, a execução de comandos de definição, a criação de objetos do BD e também a execução de coman- Sistema de gerência de banco de dados 35 dos privilegiados – usados para definir regras de segurança, controles de acesso, definição de perfis (roles) etc. Por fim, entre as funções de apoio, encontramos aquelas ligadas a controles de transações e de concorrência de acesso. Além disso, encontram-se funções ligadas ao subsistema de recuperação (backup e restore) e aos controles de performance do armazenamento e do acesso aos dados. Segundo Navathe e Elmasri (2006), a arquitetura de um SGBD ge- nérico pode ser demonstrada na Figura 1, em que podemos ver os di- versos programas que executam funções distintas, tais como interagir com os usuários externos, processar comandos internos etc. Figura 1 Arquitetura de um SGBD COMANDOS DDL Compilador DDL Compilador da linguagem hospedeira Compilador DML Compilador de pesquisa Gerenciamento dos dados armazenados Controle de concorrência / backup / subsistema de recuperação Processador de banco de dados em tempo de execução (runtime) COMANDOS PRIVILEGIADOS PESQUISA INTERATIVA TRANSAÇÕES COMPILADAS (CUSTOMIZADAS) COMANDOS DML PROGRAMAS DE APLICAÇÃO Equipe DBA Usuários casuais execução E A B D C execução Programadores de aplicação Usuários parametrizáveis Catálogo do sistema / dicionário de dados BANCO DE DADOS ARMAZENADO Pré-compilador Fonte: Navathe; Elmasri, 2006, p. 26. 36 Banco de Dados I Todas estas interações – internas, externas e de apoio –, implemen- tadas pelo sistema gerenciador de bancos de dados, são formalizadaspor meio de um grupo de comandos definido em uma linguagem pa- dronizada. Essa linguagem é o Structured Query Language, mais co- nhecido pela sigla SQL, que é dividida em quatro grandes grupos de comandos e são organizados de acordo com a finalidade a que se des- tinam (Figura 2). Select, Insert, Delete, Update etc. Grant, Revoke, Deny Alter, Create, Drop etc. Commit, Rollback Data Manipulation Language (DML) Data Control Language (DCL) Data Definition Language (DDL) Transactional Control Language (TCL) Figura 2 Grupos de comandos do SQL Fonte: Silberschatz; Korth; Sudarshan, 2012, p. 51. Vários SGBD fornecem interfaces gráficas que servem para a execu- ção dos comandos de SQL. Isso ocorre com o preenchimento de telas e campos parametrizáveis. A Figura 3, a seguir, é um exemplo de interface em que se pode ver a área de manipulação e criação de campos em ta- belas novas sendo feita por meio de preenchimento de campos na tela. Figura 3 Interface gráfica do Ms-SqlServer para a criação de tabelas Fonte: Elaborada pelo autor. Sistema de gerência de banco de dados 37 Dentre os profissionais envolvidos nas atividades diretamente liga- das ao SGBD, podemos elencar o administrador de banco de dados, projetistas e arquitetos de soluções. Além desses, há os usuários even- tuais ou parametrizáveis, os analistas de sistemas e programadores, os fornecedores de ferramentas e as equipes de suporte e operação. O Quadro 1, a seguir, descreve a atribuição de cada profissional: Quadro 1 Profissionais ligados ao SGBD e suas atribuições Profissional Interação com o SGBD Administrador de banco de dados Criar, monitorar, controlar e executar tarefas operacionais. Projetistas e arquitetos de soluções Definir arquiteturas e alternativas de uso do SGBD em diferentes projetos. Usuários eventuais Acessar os dados por meio de ferramentas interativas nas quais cada acesso requer diferentes dados. Usuários parametrizáveis Acessar os dados por meio de interfaces pré-definidas (normal- mente telas de sistemas) nas quais cada acesso segue um padrão pré-programado. Analistas de sistemas Definir quais dados devem ser acessados e quais as transformações que eles deverão sofrer (especificação). Programadores Definir como os dados serão acessados e como eles serão transfor- mados (codificação). Fornecedores de ferramentas Criar softwares complementares às funções básicas do SGBD. Equipe de suporte e operação Executar atividades operacionais para garantir a disponibilidade e a usabilidade do SGBD. Fonte: Elaborado pelo autor. Algumas ferramentas que interagem com o SGBD têm sido criadas por fornecedores que complementam as funções básicas já oferecidas pelos próprios fabricantes do SGBD, como ferramentas para a mode- lagem conceitual e lógica (CASE), ferramentas de engenharia reversa, otimizadores de acesso, monitores de desempenho, interpretadores de logs, entre outros. Algumas destas ferramentas têm SGBDs específicos aos quais se co- nectam, já outras são de uso geral, podendo se conectar a diferentes SGBDs de diferentes fornecedores, o que as tornam mais atrativas para os profissionais da área de administração de banco de dados. 38 Banco de Dados I 2.2 Vantagens e desvantagens do uso de um SGBD Vídeo Quando falamos sobre estruturas de bancos de dados, temos sem- pre que avaliar tanto os benefícios quanto as eventuais desvantagens de usar uma abordagem ou tecnologia. No caso dos SGBDs, a mesma regra se aplica: existem pontos positivos (que se destacam) e pontos negativos (que precisam ser considerados). Apresentamos, a seguir, vantagens e desvantagens da utilização de um SGBD como plataforma para o gerenciamento de banco de dados. 2.2.1. Vantagens Dentre as vantagens apontadas por Navathe e Elmasri (2006), e re- ferenciadas também por outros autores, serão descritas as seguintes: • Natureza de autodescrição de um sistema de banco de dados Antes da existência dos SGBDs, a definição das estruturas de dados era mantida em uma estrutura separada dos próprios dados. A descri- ção da ordem em que os diversos campos iriam aparecer, o tamanho de cada um dos campos, a formatação que apresentariam, entre ou- tras características, eram armazenadas em um local e os dados eram armazenados em outro. Um programa COBOL, por exemplo, que desejasse acessar um ar- quivo com dados de “Pessoa” tinha que repetir, em sua estrutura de código, a definição dos dados conforme mostra a Figura 4 a seguir. Figura 4 Representação da estrutura de dados em um programa COBOL 01 REGISTRO-PESSOA 05 CODIGO-PESSOA PIC 9(006) 05 NOME-PESSOA PIC X(050) Fonte: Elaborada pelo autor. Nesse exemplo, caso um programa COBOL tivesse definido de modo equivocado o tamanho do campo “CODIGO-PESSOA” como “7 dígitos alfanuméricos” em vez de “6 dígitos inteiros e numéricos”, tería- COBOL: sigla para “COmmon Business Oriented Language”, em português, “linguagem comum orientada para os negócios”. Glossário Sistema de gerência de banco de dados 39 mos um erro durante a execução desse programa, pois os dados físicos existentes em disco não seriam compatíveis com o mapeamento que o programa estava fazendo. Com o advento dos SGBDs, passou-se a ter uma estrutura integrada de definição dos dados e de armazenamento dos dados, isto é, se a definição muda, os dados mudam. Além disso, os programas não precisam definir o layout (estrutura dos campos) de cada registro, como antes faziam. Essa consequência nos leva à próxima vantagem do uso dos SGBDs. • Isolamento entre programas e dados, abstração de dados Com a nova estrutura integrada da definição de dados e dos próprios dados, se um certo programa referenciar o campo “NOME-PESSOA”, o SGBD saberá que seu tamanho é de 50 caracteres alfanuméricos, des- se modo, o acessará fisicamente no disco, devolvendo esse dado no formato do programa. Caso, no dia seguinte, o tamanho desse dado seja alterado para 60 caracteres alfanuméricos, o programa não sofre- rá nenhum impacto, ou seja, não precisará ser alterado e recompilado. O programa passa a referenciar um dado por meio de seu nome, tendo total abstração do formato, tamanho, modo de armazenamento, estru- tura física, entre outros. Um mesmo dado pode estar em um banco de dados centralizado, distribuído em um BD local ou remoto, ou, ainda, ser compactado (ou não). Tudo isso não afetará o código que o programador irá gerar para referenciar ou acessar esse dado, tornando o processo de codificação do programa mais simples e garantindo que ele continuará funcionan- do mesmo que existam alterações na estrutura do banco de dados. • Suporte às múltiplas visões de dados Se a abstração de dados já agrega um importante diferencial para o acesso lógico aos dados (e não mais o acesso físico aos dados), o que dizer da possibilidade de publicar também múltiplas visões de um mes- mo conjunto de dados? Essa habilidade tem grande importância quando lembramos que uma das características principais a serem buscadas no uso de um BD é o compartilhamento. Porém, ao compartilhar e criar conjuntos coe- rentes de dados (outra característica importante), poderíamos acabar expondo, de modo indevido, porções dos dados que não interessam ou que não deveriam ser publicadas a todos os que os acessam. 40 Banco de Dados I Para contornar essa situação, foi criada uma estrutura definida como view, isto é, uma visão dos dados. Por meio de uma view, é possí- vel restringir um conjunto vertical ou horizontal de dados. Nas tabelas a seguir, podemos ver que, para uma relação contendo várias colunas e várias linhas, é possível produzir diferentes views des- tes dados, seja pela segmentação horizontal (onde os dados de algu- mas linhas são selecionados), pela segmentação vertical (onde alguns dados de algumas colunas são selecionados) ou, ainda, pela combina- ção simultânea da segmentação horizontal e vertical. Tabela 2 View com segmentação vertical (colunas Nome + Sexo)Nome pessoa Sexo JOAO DA SILVA Masculino MARIA DA SILVA Feminino PEDRO DA SILVA Masculino JOSE DA SILVA Masculino Fonte: Elaborada pelo autor. Tabela 1 Segmentação horizontal e vertical de uma tabela Cód. Pessoa Nome pessoa Data de nascimento Sexo Raça 000015 JOAO DA SILVA 25/03/1962 Masculino Branco 000017 MARIA DA SILVA 11/07/1964 Feminino Branco 000018 PEDRO DA SILVA 09/11/1992 Masculino Negro 000019 JOSE DA SILVA 11/11/1997 Masculino Branco Tabela original Fonte: Elaborada pelo autor. Tabela 3 View com segmentação horizontal (filtro para “sexo masculino”) Cód. Pessoa Nome pessoa Data de nascimento Sexo Raça 000015 JOAO DA SILVA 25/03/1962 Masculino Branco 000018 PEDRO DA SILVA 09/11/1992 Masculino Negro 000019 JOSE DA SILVA 11/11/1997 Masculino Branco Fonte: Elaborada pelo autor. • Compartilhamento de dados e processamento de transação multiusuário Finalmente chegamos à última vantagem apresentada por Navathe e Elmasri (2006). Essa é uma das características que é vantagem do próprio banco de dados, mas, aqui, trata-se de uma abordagem do ponto de vista de implementação de funções dentro do SGBD que viabilizam essa função. Imagine o grau de complexidade com que um programador teria que lidar para permitir que um programa pudesse acessar, de modo concorrente, um mesmo conjunto de dados no qual diversos progra- Sistema de gerência de banco de dados 41 mas realizassem operações simultâneas de atualização e exclusão caso, no SGBD, não tivesse um conjunto de facilidades prontas para essa finalidade. Pode-se dizer que seria praticamente inviável compar- tilhar e controlar as operações de atualização simultânea se não exis- tisse, no SGBD, esse controle já automatizado. 2.2.2. Desvantagens Abordaremos, a seguir, as desvantagens de se utilizar um SGBD na implementação de uma estrutura de suporte a dados para um sistema de informações. • Recursos de infraestrutura O primeiro ponto que nitidamente chama a atenção é o fato de que um SGBD requer muito mais recursos de infraestrutura para ser criado, mantido, publicado, compartilhado e administrado. Isso significa que é necessário mais poder computacional (hardware e software) para ins- talar, configurar e disponibilizar um SGBD do que seria necessário para disponibilizar uma estrutura baseada em arquivos convencionais. É necessário considerar que caso vários sistemas precisem criar, de modo repetido (não compartilhado), seus arquivos de dados, muito pro- vavelmente a somatória de pequenos recursos usados em cada siste- ma possa representar uma somatória até maior do que o próprio SGBD represente. Nesse sentido, a infraestrutura pode ser uma desvantagem para usos de um SGBD em um ambiente de pouco compartilhamento. Se imaginarmos, por exemplo, a criação de um catálogo de contatos – como o de um software de gerenciamento de números de telefones de um smartphone –, no qual dados de pessoas e telefones serão ar- mazenados e consultados por uma única pessoa, seria talvez inviável pensar na infraestrutura necessária para usar um SGBD destinado a essa finalidade. A opção por uma estrutura de arquivos locais seria tec- nicamente viável e indicada. • Custo A segunda desvantagem que podemos elencar é o custo, mesmo nos casos em que se possa pensar no uso de um SGBD open-source (de software livre). O SGBD em si não tem custos, na verdade, a infraes- 42 Banco de Dados I trutura que ele usará terá seus custos (maior capacidade de hardware necessária, outros softwares complementares etc.). Até o administrador de banco de dados envolvido nessa operação terá seus custos, estes, normalmente, serão maiores do que o de um profissional não especia- lista. Além disso, é importante avaliar se a somatória de menores custos isolados em vários sistemas poderá representar um custo final maior do que a de um único SGBD compartilhado entre vários sistemas. • Performance O terceiro ponto a ser avaliado é a performance final que se deseja obter com uma mesma infraestrutura. Se considerarmos que a infraes- trutura onde o SGBD será executado é limitada – o que pode ocorrer, por exemplo, em um smartphone ou em uma estação de atendimento do tipo toten –, haverá uma perda de performance cada vez maior, isto é, quanto maior for a complexidade do SGBD utilizado, maior será a perda de performance. Vimos, na Figura 1, que o SGBD é um conjunto de programas que executam diversas funções. Logo, quanto mais programas tivermos para executar em uma mesma infraestrutura limitada, menor será a performance final obtida. Por isso, muitas vezes, em ambientes com restrições de infraestrutura, estruturas de arquivos convencionais são utilizados em vez de SGBDs. Como pode-se perceber, tanto as vantagens quanto as desvanta- gens do uso de um gerenciador de banco de dados irão depender di- retamente das características do ambiente onde serão utilizados. Usos corporativos, em ambientes de grande porte, poderão potencializar vantagens e minimizar desvantagens. O uso em ambientes de proces- samento pessoal poderá inverter essa relação, minimizando vanta- gens, mas destacando desvantagens. A escolha por usar ou não um SGBD, ou até mesmo a escolha de qual SGBD usar (já que existe uma grande variedade e tipos disponí- veis), irá depender da análise de vários requisitos e recursos disponí- veis no projeto. Um arquiteto de soluções, nesse momento, pode ser uma figura importante para, junto com o administrador de banco de dados, ajudar o analista de sistemas a definir a topologia e as tecnolo- gias que serão usadas para atender a cada demanda. Sistema de gerência de banco de dados 43 2.3 Criação e manutenção de um SGBD Vídeo Dentre as funções do SGBD, podemos destacar o fato de ele servir como ferramenta para integrar três níveis existentes na arquitetura de três esquemas (NAVATHE; ELMASRI, 2006). A arquitetura de três níveis foi proposta de modo a isolar os dife- rentes aspectos de manipulação de dados envolvidos em um banco de dados. O primeiro nível, chamado de nível interno, é representado por um esquema interno que des- creve toda a estrutura de armazenamento e manipu- lação física dos dados, ou seja, em um nível próximo do hardware. Sem esse nível, gerenciado pelo SGBD, teríamos que transferir essa complexa tarefa para o programador, aumentando em muito a dificuldade para interação dos sistemas de informação com os dados que eles viessem a utilizar. O segundo nível, chamado de nível conceitual, está associado ao esquema conceitual e descreve de modo integral a estrutura do banco de dados – descrição das entidades, relacionamentos, tipos de dados, regras de acesso, regras de segurança etc. Nesse nível, os detalhes da estrutura física não são relevantes, precisamos conhecer os dados que temos disponíveis para acesso, porém não é necessário saber como estão fisicamente armaze- nados. Desse modo, se temos um campo numérico que pode armaze- nar até oito dígitos inteiros e dois dígitos decimais, não saberemos – e não precisaremos saber – quantos bytes são consumidos para guardar esse conteúdo em disco quando ele é salvo. Finalmente o terceiro nível, conhecido como nível externo ou de visão, associado ao esquema externo, se apresenta por meio de uma série de esquemas (ou visões) que publicarão partes de um banco de dados que seja de interesse de um ou mais grupos de usuários. No item 2.2.1., mais especificamente no tópico “Suporte às múltiplas visões de dados”, vimos um exemplo do processo de geração de views, criadas por meio da segmentação vertical, horizontal e combinadas entre si; essas visões são justamente aquelas gerenciadas pelo esquema exter- no. Por meio desse esquema, podemos proteger o acesso a partes do Livro O livro Projeto, Desenvol- vimento de Aplicações e Administração de Banco de Dados, de Michael V. Man- nino, apresenta a base para entender a tecnolo- gia de banco de dados, as tecnologias
Compartilhar