Está en la página 1de 19
VISAO GERAL SOBRE SISTEMAS DE BANCO DE DADOS O que é um SGBD, em particular, um SGBD relacional? + Por que devemos utilizar um SGBD para gerenciar dados? + Como os dados da aplicagao so representados em um SGBD? * Como os dados em um SGBD sfo recuperados e manipulados? + Como um SGBD suporta o acesso concorrente e protege os dados na ocorréncia, de falhas no sistema? © Quais sao os principais componentes de um SGBD? Quem esta envolvido com bancos de dados na vida real? % Conceitos-chave: gerenciamento de banco de dados, independéncia de dados, pro- Jeto de baneo de dados, modelo de dados; bancos de dados ¢ consultas relaciona esquemas, nfveis de abstragio; transagdes, concorréncia e bloqueio, recuperacdo € registro em log; arquitetura de um SGBD; administrador de um. banco de dados, programador do aplicativo, usuério final Reparou que todas as letras da palavra database (banco de dados, em inglés) sio digitadas com a mao esquerda? Sabemos que a disposigéio do teclado da méquina de escrever (QWERTY) foi projetada, entre outras coisas, para facilitar o uso uniforme de ambas as maos. Conclui-se, entio, que escrever sobre bancos de dados, além de ser algo nfo natural, é bem mais dificil do que parece. Andnimo A quantidade de informagées que nos so dispontveis esté literalmente explodindo, e 0 valor dos dados como um ativo organizacional ¢ amplamente reconhecido. Para obter a maior parte de seus grandes e complexos conjuntos de dados, os usudrios necessitam de ferramentas que simplifiquem as tarefas de gerenciamento dos dados e a extragéo de informagoes titeis de forma oportuna. Caso contrério, os dados podem se tornar Visao Geral sobre Sistemas de Banco de Dados 3 'A érea de sistemas de gerenciamento de dados ¢ um microcosmo da Cien- cia da Computagao em geral, Os aspectos tratados e as técnicas utilizadas abrangem um amplo espectro, incluindo linguagens, orientaciio a objeto ¢ ou- tros paradigmas de programagao, compilacio, sistemas operacionais, progra- magéo concorrente, estruturas de dados, algoritmos, teoria, sistemas distri- bufllos ¢ paralelos, interfaces do usuario, sistemas especialistas inteligencia artificial, técnicas estatisticas e programagao dindmica. Nao podemos tratar todos esses aspectos de gerenciamento de banco de dados em vm livro, mas esperamos prover ao leitor um sentido de investigacao nesta disciplina rica e vibrante. uum passivo, cujo custo de aquisigéo e gerenciamento excede em muito o valor por ele produzido. ‘Um banco de dados é uma colegio de dados que, tipicamente, descreve as ativida- des de uma ou mais organizagoes relacionadas. Por exemplo, wm banco de dados de numa universidade poderia conter informagdes sobre: _ Entidades como alunos, professores, cursos e turmas. Sita itignnrmentos entie ax entidades, como e, matricula Gos) alunos) Dos CUrSSSy Sry cos ministrados pelos professores, € 0 uso de salas por Cursos. ‘Um sistema de gerenciamento de banco de dados, ou SGBD, é umn software proje- tado para auxiliar a manutengao ¢ utilizagéo de vastos conjuntos de dados. A neces- cidade de tais sistemas, assim como seu uso, tem crescido rapidamente. A alternativa para no se usar um SGBD ¢ armazenar os dados em arquivos e escrever cédigo es- peoffico do aplicativo para gerencid-los. O uso de wm SGBD tem diversas vantagens importantes, como veremos na Segio 1.4. 14.1 GERENCIANDO DADOS 0 objetivo deste livro 6 apresentar uma introducao detalhada dos sistemas de geren- Gamento de banco de dados, com énfase em como prajetar um banco de dados e como sar efetivamente um SGBD. Naturalmente, varias decisies sobre come utilizar um SCBD para um determinado aplicativo dependem de quais recurso © SGBD suporta “le forma eficiente. Assim, para aproveitar bem um SGBD, ¢ necessério compreender também como ele funciona. Diversos tipos de sistemas de gerenciamento de banco de dados estfio em uso, mas cate into eoncentra-se nos sistemas de banco de dados relacionais (SGBDRs), que com vectene constituem o tipo dominante de SGBD nos dias atuais. As seguintes questoes sio tratadas nos capitulos principais deste livr 1, Projeto de Banco de Dados e Desenvolvimento de Aplicativo: Como um usuario pode descrever uma empresa do mundo real (por exemplo, uma universidade) tm termos dos dados armazenados em um SGBD? Que fatores devem ser con- Siderados ao decidir sobre a forma de organizagao dos dados armazenados? Como podemos desenvolver aplicativos que dependem de um SGBD? (Capftulos 2, 3, 6, 7, 19, 20 e 21.) 4 Capituto 1 2. Andlise dos Dados: Como um usuério pode responder a dtividas sobre a empresa formulando consultas sobre os dados do SGBD? (Capftulos 4 e 5.)! 3. Concorréncia e Robustez: Como um SGBD permite que varios ususrios acessem os dados de forma concorrente, e como ele protege os dados na ocorréncia de falhas do sistema? (Capftulos 16, 17 e 18.) 4. Eficiéncia e Escalabilidade: Como um SGBD armazena grandes conjuntos de dados © tesponde a questées sobre esses dados de forma eficiente? (Capitulos 8, 9, 10, 11, 12, 13, 14e 15.) Os capitulos posteriores abrangem t6picos importantes que esto evoluindo rapida- mente, como o gerenciamento de banco de dados distribufdo e paralelo, armazenagem de dados e consultas complexas para apoio A decisio, mineragiio de dados, recuperagiio de banco de dados ¢ informagées, repositérios XML, banco de dados orientado a obje- tos, gerenciamento de dados espaciais, e extensdes de SGBD orientado a regras. No restante deste capitulo, introduziremos estes topicos. Na Secdo 1.2, comecamos com uma breve histéria da érea e uma discussio do papel do gerenciamento de banco de dados nos sistemas de informagées modernos. Identificaremos, entiio, os beneficios de armazenar os dados em um SGBD em vez de em um sistema de arquivos, na Se- a0 1.3, e, na Segéo 1.4, discutiremos as vantagens de usar um SGBD para gerenciar dados. Na Segio 1.5, apresentaremos como as informagdes sobre uma empresa devem ser organizadas ¢ armazenadas em um SGBD. Um usuério provavelmente pensa sobre as informagdes num alto nivel, que corresponde as entidades da organizacdo e seus rela- cionamentos, enquanto o SGBD basicamente armazena os dados na forma de (varios varios) bits. A lacuna existente entre como os usudrios pensam sobre seus dados e como os dados sao definitivamente armazenados 6 preenchida através de diversos niveis de abstracdo suportados pelo SGBD. Intuitivamente, um usuério pode comecar descreven- do os dados em termos totalmente de alto nivel, e depois melhorar a descrigéo conside- rando o armazenamento adicional e detalhes de representagdo conforme necessério. Na Segao 1.6, consideraremos como os usuarios podem recuperar os dados armaze- nados em um SGBD e a necessidade de técnicas para processar eficientemente respos- tas as consultas envolvendo tais dados. Na Segdo 1.7, forneceremos uma visio geral sobre como um SGBD suporta o acesso concorrente aos dados por diversos usuarios ¢ como ele protege os dados na ocorréncia de falhas do sistema. Descreveremos, entio, brevemente, a estrutura interna de um SGBD na Sego 1.8, €, na Secéo 1.9, mencionaremos varios grupos de pessoas associadas com o desenvolvi. mento e uso de um SGBD. 1.2 UMA PERSPECTIVA HISTORICA Desde os primeiros computadores, armazenar ¢ manipular dados tém sido o principal foco dos aplicatives. O primeiro SGBD de propésito geral, projetado por Charles Ba- chman, na General Electric, no inicio da década de 1960, foi chamado Deposito de Da- dos Integrados (Integrated Data Store). Ele constituiu a base do modelo de dados de rede, que foi padronizado pela Conference on Data Systems Languages (CODASYL) € influenciou bastante os sistemas de banco de dados na década de 1960. Bachman foi © primeiro a ser contemplado pelo Premio Turing da ACM (o equivalente ao Prémio Nobel na Ciéncia da Computagio) pelo trabalho na area de banco de dados; ele rece- beu o prémio em 1973. * Um capitulo on-line sobre Consulta por Exemplo (QBE — Query-by-Example) também esté disponivel Veja mais informagées no Preficio. Visdéo Geral sobre Sistemas de Banco de Dados 5 No final da década de 1960, a IBM desenvolveu o SGBD Sistema de Gerenciamento de Informacéo (IMS — Information Management System), ainda usado atualmente em diversas instalagdes. O IMS constituiu a base da estrutura de representagao al- ternativa de dados, chamada modelo de dados hierérquico. O sistema SABRE para reservas de passagens aéreas foi desenvolvido em conjunto pela American Airlines e pela IBM nessa mesma época, e permitiu que diversas pessoas acessassem 08 mesmos dados através de uma rede de computadores. Interessante observar que, atualmente, 0 mesmo sistema SABRE 6 utilizado para fornecer servigos populares de viagens basea- dos na Web, tais como o Travelocity. Em 1970, Edgar Codd, do Laboratdrio de Pesquisa de San Jose, da IBM, propés uma nova estrutura de representagio de dados chamada modelo de dados relacional, que veio a ser um marco histérico no desenvolvimento de sistemas de banco de da- dos. Ele impulsionou 0 rapido desenvolvimento de varios SGBDs baseados no modelo relacional, juntamente com um rico conjunto de resultados tedricos que consolidaram firmemente a drea. Codd ganhou o Prémio Turing de 1981 pelo seu trabalho original. Os sistemas de banco de dados amadureceram como uma disciplina académica, e a popularidade dos SGBDs relacionais alterou o cendrio comercial. Seus beneficios fo- ram amplamente reconhecidos, e 0 uso de SGBDs para gerenciar dados corporativos tornou-se uma pratica padrio. Na década de 1980, o modelo relacional consolidou sua posigdo como o paradigma dominante de SGBD, ¢ 0 uso dos sistemas de banco de dados continuou a se difundir cada vez mais. A linguagem de consulta SQL para banco de dados relacional, desen- volvida como parte do projeto System R, da IBM, passou a ser a linguagem de consul- ta padrao. A SQL foi padronizada no final dos anos 80, ¢ o padrao atual, SQL:1999 foi adotado pelo American National Standards Institute (ANSI) e pela International Or- ganization for Standardization (ISO). E possfvel argumentar que a forma mais ampla- mente utilizada de programagao concorrente é a execugdo concorrente de programas de banco de dados (chamados transacées). Os usudrios escrevem os programas como se eles fossem executar isoladamente, e a responsabilidade de executé-los de forma concorrente é atribufda ao SGBD. James Gray ganhou o Prémio Turing de 1999 pelas suas contribuigdes ao gerenciamento de transagées de banco de dados. No final da década de 1980 e na década de 1990, houve avangos em diversas areas dos sistemas de banco de dados. Pesquisas consideraveis foram conduzidas para desen- volver linguagens de consulta mais poderosas e modelos de dados mais ricos, com énfa- se no suporte a andlise complexa de dados provenientes de todas as areas da empresa. Diversos fabricantes (como o DB2 da IBM, Oracle 8, Informix? UDS) estenderam seus sistemas com a capacidade de armazenar novos tipos de dados, como imagens e texto, © a possibilidade de consultas mais complexas. Sistemas especializados tém sido desen- yolyidos por imimeros fabricantes para criagéo de data warehouses, consolidando os dados de diversos bancos de dados, com o intuito de conduzir andlise especializada. Um fen6meno interessante é a emergéncia de diversos pacotes de planejamento de recurso empresarial (ERP — enterprise resource planning) e de planejamento de re- curso de gerenciamento (MRP — management resource planning), que acrescentaram uma camada substancial de recursos orientados a aplicativos acima de um SGBD. Os pacotes largamente utilizados incluem sistemas da Baan, Oracle, PeopleSoft, SAP © Siebel. Esses pacotes identificam um conjunto de tarefas comuns (por exemplo, gerenciamento de inventdrio, planejamento de recursos humanos, anilise financeira) desempenhadas por um grande ntimero de organizagées e fornecem uma camada de aplicativo genérica para realizar essas tarefas. O dado é armazenado em um SGBD 2 4 Informix foi recentemente adquirida, pela IBM, Capiruto 1 relacional, ¢ a camada de aplicativo pode ser customizada para empresas diferentes, diminuindo os custos totais para as organizagées, comparados ao custo de criar uma camada de aplicativo a partir do zero. O fato histérico mais significativo, talvez, seja a entrada dos SGBDs na Era Inter- net. Enquanto a primeira geragiio de web sites armazenava seus dados exclusivamente em arquivos dos sistemas operacionais, 0 uso de um SGBD para armazenar dados acessados através de um navegador Web tem se difundido cada vez mais. As consultas sdo geradas através de formulérios acessiveis na Web e as respostas sao formatadas usando uma linguagem de marcagao como o HTML para serem facilmente exibidas em um navegador. Todos os fabricantes de banco de dados estao acrescentando recursos aos seus SGBDs com o objetivo de torné-los mais adequados para desenvolvimento para Internet. O gerenciamento de banco de dados continua a ganhar importancia conforme mais e mais dados tornam-se disponiveis on-line e ainda mais acessiveis através da rede de computadores. Atualmente, a érea est sendo impulsionada por ideais excitantes, Entre eles temos: banco de dados multimédia, video interativo, fluxos de dados, biblio- tecas digitais, um hospedeiro de projetos cientfficos, como o esforgo de mapeamento do genoma humano, ¢ o projeto de Sistema de Observagéo Terrestre da NASA, além do desejo das empresas de consolidar seus processos de tomada de decisio e minerar seus repositérios de dados por informagies titeis sobre seus negécios. Comercialmente, os sistemas de gerenciamento de banco de dados representam um dos maiores e mais ativos segmentos de mercado. Assim, o estudo de sistemas de banco de dados pode vir a ser ricamente gratificante e néo apenas de uma maneira, mas de varias! 1.3 ARQUIVOS DE SISTEMAS VERSUS UM SGBD Para compreendermos a necessidade de um SGBD, consideremos um cenério motiva- dor: uma empresa tem uma grande colec&o (digamos 500 GB) de dados sobre os fun- ciondrios, departamentos, produtos, vendas e assim por diante. Esse dado 6 acessado concorrentemente por diversos funciondrios. As consultas sobre os dados devem ser respondidas rapidamente, as alteragGes realizadas nos dados pelos diferentes usudrios devem ser aplicadas consistentemente, e 0 acesso a determinadas partes dos dados (por exemplo, saldrios) deve ser restrito. Podemos experimentar gerenciar os dados armazenando-os em arquivos do sistema operacional. Essa abordagem tem varias desvantagens, que incluem: + Provavelmente, nao teremos 500 GB de meméria principal para armazenar todos os dados. Devemos, entio, armazenar os dados em um dispositive de armazenamento, como disco ou fita, e carregar partes relevantes dos dados na meméria principal conforme necessario. + Mesmo que tivéssemos 500 GB de memoria principal, num sistema computacional de 32 bits de enderegamento, néo podemos nos referir diretamente a mais do que aproximadamente 4 GB de dados. Temos que programar algum método de identi- ficagao de todos os itens de dados. + Devemos escrever programas especiais para responder a cada pergunta que um usudrio pode desejar fazer sobre os dados. Esses programas provavelmente serio complexos em razéo do grande volume de dados a ser pesquisado. ee * Um kilobyte (KB) so 1024 bytes, um megabyte (MB) so 1024 KBs, um gigabyte (GB) sio 1024 MBs, um terabyte (TB) sao 1024 GBs, e um petabyte (PB) siio 1024 terabytes. 0 Geral sobre Sistemas de Banco de Dados = Devemos proteger os dados de alteracées inconsistentes realizadas por usuarios diferentes acessando os dados de forma concorrente. Se os aplicativos devem tratar dos detalhes desse acesso concorrente, isto aumenta significativamente a sua com- plexidade. + Devemos assegurar que os dados sejam restaurados a um estado consistente se o sistema falhar enquanto as alteragées estao sendo realizadas. + Os sistemas operacionais provém apenas um mecanismo de senha para seguranga. Isso no é suficientemente flexivel para reforgar as polfticas de seguranga nas quais usudrios diferentes tém permissao de acessar subconjuntos diferentes dos dados. Um SGBD é um pacote de software projetado para executar mais facilmente as tarefas mencionadas anteriormente. Armazenando-se dados em um SGBD em vez de em uma colegéo de arquivos do sistema operacional, é possivel utilizar os recursos do SGBD para gerenciar os dados de uma forma robusta e eficiente. A medida que cresce o volume de dados e o ntimero de usudrios — centenas de gigabytes de dados e milha- res de usuarios so comuns nos bancos de dados corporativos atuais —, 0 suporte de um SGBD torna-se indispensdvel. 1.4 VANTAGENS DE UM SGBD Usar um SGBD para gerenciar dados tem varias vantagens: » Independéncia de Dados: Os programas aplicativos nao devem, idealmente, ser expostos aos detalhes de representagao e armazenamento de dados. O SGBD prové uma visao abstrata dos dados que oculta tais detalhes. » Acesso Eficiente aos Dados: Um SGBD utiliza uma variedade de técnicas sofisti- cadas para armazenar ¢ recuperar dados eficientemente. Este recurso é especial- mente importante se os dados séo armazenados em dispositivos de armazenamen- to externos. . Integridade e Seguranga dos Dados: Se os dados so sempre acessados através do SGBD, ele pode forgar restrigdes de integridade. Por exemplo, antes de in- serir informacdes sobre o salario de um funciondrio, o SGBD pode verificar se 0 orgamento do departamento nao esta se excedendo. Além disso, ele pode forgar controles de acesso que governam quais dados estao visiveis a diferentes classes de usudrios. « Administragdo de Dados: Quando diversos usuarios compartilham dados, cen- tralizar a administracéo dos dados pode oferecer melhorias significativas. Profis- sionais experientes que compreendem a natureza dos dados sendo gerenciados, e como os diferentes grupos de usuarios os utilizam, podem ser responsdveis por organizar a representacio dos dados para minimizar a redundancia e para realizar as sintonizacdes finas do armazenamento dos dados para garantir uma eficiente recuperacao. + Acesso Concorrente e Recuperagao de Falha: Um SGBD planeja o acesso conco rente aos dados de maneira tal que os usudrios podem achar que os dados esto sendo acessados por apenas um tinico usudrio de cada vez. Além disso, o SGBD protege os usuarios dos efeitos de falhas de sistema. = Tempo Reduzido de Desenvolvimento de Aplicativo: Obviamente, o SGBD supor- ta fungées importantes que sio comuns a varios aplicativos que acessam os dados no SGBD. Isso, em conjunto com uma interface de alto nivel aos dados, facilita © desenvolvimento répido de aplicativos. Os aplicativos de SGBD tendem a ser 8 Capiruto 1 mais robustos do que os aplicativos similares independentes porque muitas tarefas importantes sao tratadas pelo SGBD (e nao precisam ser depuradas e testadas no aplicativo). Dadas todas essas vantagens, ha alguma razao para ndo se utilizar um SGBD? Al gumas vezes, sim. Um SGBD é um software complexo, otimizado para alguns tipos de processamento (por exemplo, responder a consultas complexas ou tratar varias requisi- GGes concorrentes), seu desempenho pode nao ser adequado para determinados apli- cativos especializados. Exemplos incluem aplicativos com restrigées rigidas de tempo real ou algumas operagoes criticas bem definidas para as quais um cédigo customizado eficiente deve ser escrito. Uma outra razao para nao se utilizar um SGBD 6 que 0 apli- cativo pode precisar manipular os dados de maneiras nfo suportadas pela linguagem de consulta. Em tais casos, a visualizagao abstrata dos dados apresentada pelo SGBD pode nao corresponder as necessidades do aplicativo e realmente impossibilitar o seu uso. Como um exemplo, os bancos de dados relacionais nao suportam a andlise flexfvel de dados textuais (embora os fabricantes estejam atualmente estendendo seus produtos nesta. diregéio). Se o desempenho especializado ou solicitagdes de manipulagao de dados sao essen- ciais num aplicativo, pode-se optar por nao utilizar um SGBD, especialmente se os beneficios de um SGBD (por exemplo, consulta flextvel, seguranga, acesso concorrente e recuperagiio de falha) no forem exigidos. Entretanto, na maioria das situacdes em que é necessdrio gerenciamento de dados em grande escala, os SGBDs tém se tornado uma ferramenta indispensével. 1.5 DESCREVENDO E ARMAZENANDO DADOS EM UM SGBD O usuario de um SGBD é preocupado, basicamente, com alguma empresa do mun- do real, e os dados a ser armazenados descrevem varios aspectos desta empresa. Por exemplo, ha alunos, professores e cursos em uma universidade, e os dados em um ban- co de dados de uma universidade descrevem essas entidades e seus relacionamentos. Um modelo de dados ¢ uma colegio de construtores de alto nivel para descrigéio dos dados que ocultam varios detalhes de baixo nfvel do armazenamento. Um SGBD possibilita que um usuario defina os dados a serem armazenados em termos de modelo de dados. A maioria dos sistemas de gerenciamento de banco de dados atuais baseia-se no modelo de dados relacional, que constitui o foco deste livro. Embora o modelo de dados de um SGBD oculte varios detalhes, ele esta, no entan- to, mais préximo de como o SGBD armazena os dados do que de como 0 usuario pensa sobre a empresa em questao. Um modelo de dados semantico é um modelo de dados de alto nivel, mais abstrato, que facilita a um usuario alcancar uma boa descrico inicial dos dados de uma empresa. Esses modelos contém uma grande variedade de constru- tores que ajudam a descrever um cendrio de aplicagao real. Um SGBD nfo é projetado para suportar todos esses construtores diretamente; ele 6 construfdo tipicamente sobre um modelo de dados com apenas alguns construtores bésicos, como o modelo relacio- nal. Um projeto de banco de dados em termos de modelo semantico serve como ponto de partida util e é subseqiientemente traduzido em um projeto de banco de dados em termos do modelo de dados que o SGBD realmente suporta. Um modelo de dados semantico muito utilizado, chamado modelo entidade-relacio- namento (ER). nos permite denotar por meio de ilustragdes as entidades e os relacio- namentos entre elas. Apresentamos o modelo ER no Capitulo 2. Visdo Geral sobre Sistemas de Banco de Dados 9 Um Exemplo de Projeto Ineficiente: O esquema relacional para Alunos ilustra uma escolha de projeto ineficiente; nunca se deve criar um campo tal como ida- de, cujo valor esté constantemente sendo alterado. Uma escolha melhor seria DDN (Data Do Nascimento); a idade pode ser calculada com base nesse dado. Continuamos a utilizar idade em nossos exemplos, entretanto, para facilitar a leitura. 1.5.1 O Modelo Relacional Nesta secéio, apresentamos uma breve introdug&o ao modelo relacional. O construtor central para descrigfio de dados deste modelo é uma relag&o, que pode ser considerada um conjunto de registros. Uma descrigio de dados em termos de modelo de dados é chamada esquema (sche- ma). No modelo relacional, o esquema de uma relagio especifica seu nome, o nome de cada campo (ou atributo ou coluna), ¢ 0 tipo de cada campo. Como exemplo, a infor- macdo sobre o aluno em um banco de dados de uma universidade pode ser armazenada em uma relacéo com o seguinte esquema: Alunos (id-aluno: string, nome: string, login: string, idade: integer, média: real) O esquema anterior informa que cada registro na relagio Alunos tem cinco cam- pos, sendo os nomes e tipos dos campos conforme indicados. Um exemplo de instan- cia da relagdo Alunos é ilustrado na Figura 1.1. id-aluno | nome login idade | média 53666__| Jones jones@es 1g | 3,4 53688 [Smith _|smith@ee 18 | 3,2 53650 [Smith | smith@math 19 | 38 53831 _|Madayan |madayan@music| 11 | 18 53832 |Guldu | guldu@music 12210 Figura 1.1 Uma instancia da relagio Alunos. Cada linha na relag&o Alunos é um registro que descreve um aluno. A descricéio ndo esté completa — por exemplo, a altura do aluno nao esta inclufda —, mas é presumi- velmente adequada para os aplicativos projetados no banco de dados da universidade. Cada linha segue 0 esquema da relag&o Alunos. O esquema pode, entao, ser conside- rado um modelo para descrever um aluno. Podemos tornar a descrico de um conjunto de alunos mais precisa especificando as restrigdes de integridade, que sio condigées que os registros de uma relacao devem sa- tisfazer. Por exemplo, poderfamos especificar que todo aluno tenha um valor id-aluno inico. Observe que nao podemos capturar essa informagao acrescentando simplesmen- te outro campo ao esquema Alunos. Assim, a capacidade de especificar a unicidade dos valores de um campo aumenta a preciso com que podemos descrever nossos dados. A expressividade dos construtores disponiveis para especificar as restrigdes de integrida- de é um aspecto importante de um modelo de dados. 10 CapituLo 1 Outros Modelos de Dados Além do modelo de dados relacional (que é utilizado em intimeros sistemas, incluindo o DB2 da IBM, Informix, Oracle, Sybase, Access da Microsoft, FoxBase, Paradox, Tandem e Teradata), outros importantes modelos de dados incluem o modelo hierar- quico (por exemplo, usado no SGBD IMS da IBM), 0 modelo de rede (usado no IDS e IDMS), o modelo orientado a objetos (por exemplo, usado no Objectstore e Versant) e 0 modelo objeto-relacional (por exemplo, usado nos produtos SGBD da IBM, Infor- mix, ObjectStore, Oracle, Versant e outros). Embora varios bancos de dados utilizem os modelos hierarquico e de rede, e embora os sistemas baseados nos modelos orien- tado a objetos e objeto-relacional estejam ganhando aceitagéo no mercado, 0 modelo dominante atualmente é 0 modelo relacional. Neste livro, concentramo-nos no modelo relacional em razdo de seu amplo uso e importancia. Entretanto, 0 modelo objeto-relacional, que est ganhando popularidade, 60 resultado de um esforgo de combinar as melhores caracteristicas dos modelos rela- cional ¢ orientado a objetos, e uma boa compreensio do modelo relacional ¢ necesséria para compreender os conceitos do objeto-relacional. (Discutiremos os modelos orienta- do a objetos e objeto-relacional no Capitulo 23.) 1.5.2 Niveis de Abstracao em um SGBD Os dados em um SGBD sao descritos em trés nfveis de abstragéo, conforme ilustrado na Figura 1.2. A descric&io do banco de dados consiste em um esquema em cada um desses trés nfveis de abstrac&io: o conceitual, o fisico e 0 externo. Uma linguagem de definicgao de dados (DDL — data definition language) é utili- zada para definir os esquemas externos e conceituais. Discutiremos os recursos DDL da linguagem de banco de dados mais amplamente utilizada, a SQL, no Capitulo 3. Todos os fabricantes de SGBD também suportam comandos SQL para descrever aspectos do esquema fisico, mas estes comandos nao so parte da linguagem SQL padrao. As infor- mages sobre os esquemas conceitual, externo e fisico sio armazenadas nos catélogos de sistema (Seco 12.1). Discutiremos os trés nfveis de abstragao no restante desta segdo. Esquema Externol | | Esquema Externo 2 Esquema Externo 3 | ae Figura 1.2 Niveis de abstragao em um SGBD. Esquema Conceitual O esquema conceitual (chamado também de esquema légico) descreve os dados ar- mazenados em termos do modelo de dados do SGBD. Em um SGBD relacional, o Viséo Geral sobre Sistemas de Banco de Dados i esquema conceitual descreve todas as relagdes que esto armazenadas no banco de dados. Em nosso exemplo de banco de dados de universidade, essas relagdes contém informagoes sobre entidades, como alunos e professores, e sobre relacionamentos, como a matricula dos alunos nos cursos. Todas as entidades aluno podem ser descritas usando-se registros em uma relagio Alunos, como vimos anteriormente. De fato, cada colegao de entidades e cada colegio de relacionamentos podem ser descritas como uma relagio, levando ao seguinte esquema conceitual: Alunos(id-aluno: string, nome: string, login: string, idade: integer, média: real) Professores(id-prof: string, nomep: string, sal: real) Cursos(id-curso: string, nomec: string, créditos: integer) Salas(num-sala: integer, endereco: string, capacidade: integer) Matriculado(id-aluno: string, id-curso: string, nota: string) Ministra(id-prof: string, id-curso: string) Aula(id-curso: string, num-sala: integer, hordrio: string) A escolha de relagdes e a escolha dos campos de cada relagéo nem sempre sao ébvias, e 0 proceso de produzir um bom esquema conceitual é chamado projeto con- ceitual de banco de dados. Discutiremos 0 projeto conceitual de banco de dados nos capitulos 2 e 19. Esquema Fisico O esquema fisico especifica os detalhes adicionais de armazenamento. Essencialmente, o esquema fisico resume como as relacdes descritas no esquema conceitual so realmen- te armazenadas em dispositivos de armazenamento secundario como discos e fitas. Devemos decidir quais organizagées de arquivos utilizar para armazenar as relagdes e criar estruturas de dados auxiliares, chamadas indices, para acelerar as operagées de recuperagéo de dados. Um exemplo de esquema fisico para 0 banco de dados da universidade: « Armazene todas as relagées como arquivos nao ordenados de registros. (Um arquivo em um SGBD 6 ou wma colegio de registros ou uma colegao de paginas, em vez de uma cadeia de caracteres como em um sistema operacional.) = Crie indices na primeira coluna das relagdes Alunos, Professores ¢ Cursos, na colu- na sal de Professores e na coluna capacidade de Salas. Decisdes sobre o esquema fisico baseiam-se em uma compreenséo de como o dado é normalmente acessado. O processo de produzir um bom esquema fisico 6 chamado projeto fisico de banco-de dados. Discutiremos 0 projeto fisico de banco de dados no Capitulo 20. Esquema Externo Esquemas externos, que normalmente também sto representados em termos do mo- delo de dado do SGBD, permitem que 0 acesso aos dados seja customizado (e autori zado) no nivel dos uswdrios individuais ou em grupos. Qualquer banco de dados tem exatamente um esquema conceitual e um esquema fisico porque ele tem apenas um conjunto de relagdes armazenadas, mas pode ter diversos esquemas externos, cada um adaptado a um grupo particular de usudrios. Cada esquema externo consiste em 12 Cartruto 1 uma colegdo de uma ou mais visdes ¢ relagdes do esquema conceitual. Uma visdo concei- tualmente é uma relagdo, mas os registros de uma visio nao sio armazenados no SGBD. Ao contratio, eles sao processaos usando uma definig&o para a viséo, baseada nas relagdes armazenadas no SGBD. Discutiremos visdes com mais detalhes nos capitulos 3 ¢ 25. O projeto de esquema externo 6 orientado pelos requisitos do usudrio final. Por exemplo, podemos permitir que os alunos localizem os nomes dos professores que ministram cursos, assim como as matriculas no curso. Isso pode ser feito definindo a seguinte visao: InfoCurso(id-curso: string, nomep: string, matriculados: integer) Um usudrio pode tratar uma visio assim como uma relagao e fazer perguntas sobre 08 registros da visio. Embora os registros da visdo nao sejam armazenados explicita- mente, eles so processados sempre que necessério. Nao inclufmos InfoCurso no esque- ma conceitual porque podemos processar InfoCurso com base nas relagdes do esquema conceitual, e, além disso, armazené-la seria redundante. Tal redundancia, além do desperdicio de espaco, poderia gerar inconsisténcias. Por exemplo, uma tupla pode ser inserida na relagao Matriculado, indicando que um aluno em particular se matriculou em algum curso, sem incrementar o valor do campo matriculados do registro corres- pondente de InfoCurso (se esse tiltimo também for parte do esquema conceitual ¢ suas tuplas estiverem armazenadas no SGBD). 1.5.3 Independéncia de Dado: Uma vantagem muito importante de usar um SGBD ¢ a independéncia de dados que ele oferece. Ou seja, os programas de aplicativos so isolados das alteragées no modo como o dado é estruturado e armazenado. A independéncia dos dados é adquirida através do uso dos trés niveis de abstracao de dados; em particular, o esquema concei- tual e o esquema externo fornecem beneficios distintos nesta drea. As relagGes no esquema externo (relagdes de visdes) so em principio geradas por demanda a partir das relagdes correspondentes ao esquema conceitual.t Se os dados correspondentes s&o reorganizados, isto 6, se o esquema conceitual é alterado, a de- finigao de uma relagao de visio pode ser modificada de forma que a mesma relacéo seja processada como antes. Por exemplo, suponha que a relagao Professores em nosso banco de dados de universidade seja substituida pelas duas relagées a seguir: Professores Professore ptiblico (id-prof: string, nomep: string, escritério: integer) particular(id-prof: string, sal: real) Intuitivamente, algumas informagées confidenciais sobre professores foram posicio- nadas em uma relagdo separada ¢ as informagées sobre escritérios foram acrescentadas. A relagao de visfio InfoCurso pode ser redefinida em termos de Professores-publico e Professores-particular, as quais, juntas, contém todas as informagdes em Professores, de forma que um usudrio que consulte InfoCurso obteré as mesmas respostas de antes. Assim, os usudrios podem ser protegidos das alteracdes na estrutura ldgica dos da- dos, ou das alteragdes na escolha das relagées a serem armazenadas. Essa propriedade é chamada independéncia légica dos dados. ‘Na pratica, elas poderiam ser pré-processadas ¢ armazenadas para acelerar as consultas nas relagdes de viséio, mas as relagdes de visio processadas devem ser atualizadas sempre que as relacdes correspondentes forem modificadas. Visao Geral sobre Sistemas de Banco de Dados 13 Por outro lado, 0 esquema conceitual isola os usudrios das alteragdes nos detalhes do armazenamento fisico. Esta propriedade refere-se a independéncia fisica dos dados. O esquema conceitual oculta detalhes sobre como os dados sao realmente dispostos no disco, sobre a estrutura de arquivos, e sobre a escolha de indices, por exemplo. Desde que 0 esquema permanega 0 mesmo, podemos alterar estes detalhes sem alterar os aplicativos. (Obviamente, o desempenho poderia ser afetado por tais alteragées.) 1.6 CONSULTAS EM UM SGBD A facilidade com a qual as informagdes podem ser obtidas de um banco de dados nor- malmente determina seu valor a um usudrio, Em contraste aos sistemas antigos de banco de dados, os sistemas de banco de dados relacionais permitem que uma rica va- riedade de questdes seja formulada facilmente; este recurso contribuiu em muito para sua popularidade. Considere 0 exemplo do banco de dados da universidade na Segdo 1.5.2. Eis algumas perguntas que um usuério poderia fazer: . Qual é o nome do aluno que tem o id-aluno 123456? . Qual é o salario médio de professores que ministram o curso CS564? - Quantos alunos estéo matriculados em CS564? eye Qual a porcentagem de alunos de CS564 que obtiveram uma nota maior do que B? . Ha algum aluno com média. inferior a 3,0 matriculado em CS564? Tais perguntas envolvendo os dados armazenados em um SGBD sio chamadas consultas. Um SGBD prove uma linguagem especializada, chamada linguagem de con- sulta, com a qual as consultas podem ser elaboradas. Um recurso muito atrativo do modelo relacional € o suporte a linguagens de consulta poderosas. O edlculo relacional é uma linguagem de consulta formal baseada na légica matematica, e as consultas nesta linguagem tém um significado intuitivo e preciso. A dlgebra relacional ¢ outra linguagem de consulta formal, baseada em uma colegéo de operadores para manipular relagGes, que é equivalente em poder ao célculo. Um SGBD preocupa-se em processar as consultas de forma tao eficiente quanto possivel. Discutiremos a otimizacdo e avaliacio de consultas nos Capftulos 12, 14 ¢ 15. Obviamente, a eficiéncia da avaliago da consulta é determinada em grande parte por como os dados sio armazenados fisicamente. Os indices podem ser usados para acele- rar muitas consultas — de fato, uma boa escolha de indices para as relagdes correspon- dentes pode acelerar cada consulta da lista anterior. Discutiremos o armazenamento de dados e a indexag&o nos Capitulos 8, 9, 10 e 11. Um SGBD possibilita aos usuarios criar, modificar e consultar dados através de uma linguagem de manipulagao de dados (DML — data manipulation language). Assim, a linguagem de consulta é apenas uma parte da DML, que também fornece construtores para inserir, excluir e modificar dados. Discutiremos os recursos DML da SQL no Capitulo 5. A DML e a DDL sao coletivamente referenciadas como sublinguagens de dados quando embutidas dentro de uma linguagem hospedeira por exemplo, C ou COBOL). 1.7 GERENCIAMENTO DE TRANSACOES Considere um banco de dados que armazena informagées sobre reservas de passagens aéreas. Em um certo instante qualquer, ¢ possivel (e bem provavel) que diversos agen- tes de viagem estejam procurando informacées sobre assentos disponiveis nos varios wos e fazendo reservas de novos assentos. Quando varios usudrios acessam (e possi- 14 Capiruto 1 velmente modificam) um banco de dados de forma concorrente, o SGBD deve coman- dar cuidadosamente suas solicitagées para evitar conflitos. Por exemplo, quando um agente de viagem procura 0 V6o 100 de determinado dia e encontra um assento vazio, um outro agente de viagem pode estar fazendo uma reserva desse assento simultanea- mente, tornando obsoleta a informag&o vista pelo primeiro agente. Um outro exemplo de uso concorrente é 0 banco de dados de um banco. Enquanto © programa de aplicativo de um usuério esté calculando o total de depésitos, um outro aplicativo pode transferir dinheiro de uma conta que o primeiro aplicativo acabou de consultar para uma conta que ainda nao foi consultada, fazendo assim com que o to- tal aparega maior do que ele realmente deve ser. Evidentemente, a ocorréncia de tais anomalias n&o deve ser permitida. Entretanto, desabilitar o acesso concorrente pode degradar o desempenho. Além disso, o SGBD deve proteger os usuarios dos efeitos de falhas do sistema assegurando que todos os dados (¢ 0 status dos aplicativos ativos) sejam restaurados para um estado consistente quando o sistema for reiniciado apés uma falha. Por exem- plo, se um agente de viagens solicitar uma reserva, e o SGBD responder que a reserva foi realizada, a reserva nao deve ser perdida se o sistema falhar. Por outro lado, se o SGBD ainda nao respondeu a solicitagao, mas esta fazendo as alteragdes necessérias nos dados quando a falha ocorrer, as alteragdes parciais devem ser desfeitas quando o sistema voltar a funcionar. Uma transagao ¢ uma execugéo qualquer de wm programa de usuario em um SGBD. (A execugao de um mesmo programa diversas vezes gerard diversas transacées.) Esta € a unidade bésica de alteragio reconhecida pelo SGBD: transagées parciais no sio permitidas, e o efeito de um grupo de transagdes é equivalente a uma execucao serial de todas as transagées. Resumimos brevemente como estas propriedades so garanti- das, postergando uma discussao detalhada para os capftulos posteriores. 1.7.1 Execucao Concorrente de Transacées Uma importante tarefa de um SGBD é planejar os acessos concorrentes aos dados de forma que cada usuario possa seguramente ignorar 0 fato de que ha outros usuarios acessando os dados concorrentemente. A importéncia dessa tarefa ndo pode ser su- bestimada porque um banco de dados normalmente ¢ compartilhado por um grande niimero de usuarios, que submetem suas requisigdes ao SGBD de modo independente e simplesmente nao esperam que devam tratar de alteragées arbitrdrias sendo realizadas de forma concorrente por outros usuérios. Um SGBD permite que os usudtios pensem em seus programas como se eles estivessem sendo executados isoladamente, um apés © outro, em determinada ordem escolhida pelo SGBD. Por exemplo, se um programa que deposita um valor em uma conta é submetido ao SGBD ao mesmo tempo em que um outro programa debita dinheiro da mesma conta, qualquer um desses programas poderia ser executado primeiro pelo SGBD, mas seus passos néo podem ser intercala- dos de maneira que eles interfiram entre si. Um protocolo de bloqueio é um conjunto de regras que devem ser seguidas por cada transacao (e forgadas pelo SGBD) para assegurar que, mesmo que agoes de diversas transagdes possam ser intercaladas, o efeito geral seja idéntico a execucéio de todas as transagdes em alguma ordem serial. Um bloqueio é um mecanismo utilizado para controlar 0 acesso aos objetos do banco de dados. Dois tipos de bloqueios séo normal- mente suportados por um SGBD: bloqueios compartilhados em um objeto podem ser mantidos por duas transagées diferentes ao mesmo tempo, mas um bloqueio exclusive em um objeto assegura que nenhuma outra transagio mantenha nenhum bloqueio nesse objeto. Viséo Geral sobre Sistemas de Banco de Dados 15 Suponha que o seguinte protocolo de bloqueio seja seguido: Toda transacdo tem inicio obtendo um bloqueio compartilhado em cada objeto de dado que ele necessita ler € um bloqueio exclusivo em cada objeto de dado que ele precisa modificar, e entio li- bera todos os seus bloqueios apés completar todas as agées. Considere duas transagdes Tle T2 tais que T1 deseja modificar um objeto de dado e T2 deseja ler 0 mesmo objeto. Intuitivamente, se a solicitagdo de T'1 por um bloqueio exchisivo no objeto for atendida primeiro, T2 nao pode ter sua execugio continuada até que T1 libere esse bloqueio, pois a solicitagdo de T2 por um bloqueio compartilhado nfo seré atendida pelo SGBD até entao. Assim, todas as agées de T'1 sero completadas antes que qual- quer uma das agées de T2 sejam iniciadas, Trataremos de bloqueio com mais detalhes nos capitulos 16 ¢ 17. 1.7.2 Transagdes Incompletas e Falhas de Sistema As transagées podem ser interrompidas antes de executadas por completo por uma va- riedade de razdes, por exemplo, uma falha de sistema. Um SGBD deve assegurar que as alteragées realizadas por tais transagdes incompletas sejam removidas do banco de dados. Por exemplo, se o SGBD estiver no meio da transferéncia do valor em dinhei- ro da conta A para a conta B, e debiton da primeira conta, mas ainda nfo creditou ma segunda quando ocorren a falha, o valor debitado da conta A deve ser restaurado quando o sistema voltar a funcionar apés a falha. Para fazer isso, o SGBD mantém um log de todas as escritas no banco de dados. Uma propriedade crucial do log 6 a de que cada agio de escrita deve ser registrada no log (em disco) antes que a alteragao correspondente seja refletida no banco de dados propriamente dito — caso contrario, se o sistema falhar exatamente apés a alteragdéo ser feita no banco de dados, mas antes da alteragao ser registrada no log, o SGBD sera incapaz de detectar e desfazer essa alteragao. Essa propriedade é chamada Write- Ahead Log (Gravagao Antecipada do Log) ou WAL. Para assegurar essa propriedade, © SGBD deve ser capaz de forcar seletivamente a escrita de uma pagina da memoria no disco. O log também ¢ utilizado para assegurar que as alteragdes realizadas por uma tran- sac&o completada com sucesso néo sejam perdidas por causa de uma falha no sistema, como explicado no Capitulo 18. Restaurar o banco de dados a um estado consistente epés uma falha no sistema pode ser um processo lento, uma vez que o SGBD deve assegurar que os efeitos de todas as transagdes que completaram antes da falha sejam restaurados, e que os efeitos das transagdes incompletas sejam desfeitos. O tempo ne- eessario para a recuperagao de uma falha pode ser reduzido forgando periodicamente 0 registro de alguma informagao no disco; esta operagéo periddica é chamada ponto de verificagao (checkpoint). 1.7. Pontos a Observar Em resumo, ha trés pontos a lembrar com respeito ao suporte de SGBD ao controle de concorréncia ¢ a recuperagio: L. Todo objeto que ¢ lido ou escrito por uma transagio é primeiro bloqueado em modo compartilhado ou exclusivo, respectivamente. Bloquear um objeto restringe sua disponibilidade para outras transagées ¢, assim, afeta o desempenho. 2 Para a manutengéio de um log eficiente, o SGBD deve ser capaz de forgar seleti- yamente a escrita de uma colegio de péginas da memoria principal no disco. O suporte do sistema operacional a esta operacéio nem sempre é satisfatério. 16 Cariruto 1 3. O uso de pontos de verificagao periddicos pode reduzir o tempo necessério de recu- peragao de uma falha. Obviamente, isso deve ser balanceado contra o fato de que o uso de pontos de verificagéo com muita freqiiéncia possa diminuir a velocidade da execug&o normal. 1.8 ESTRUTURA DE UM SGBD A Figura 1.3 ilustra a estrutura (com alguma simplificagao) de um SGBD tipico com base no modelo de dados relacional. Usuatios experientes, programodores de Usustrios inexperientes (clientes, agentes de viagem etc.) _aplicativo, acininistradores de banco de dados ( Pomtaion we (Ponte Aneto) [neice sa a iy ea 7 ‘COMANDOS SOL Ilustra 0 ffoxo de comando Aaya — ao eee Exeentor de Plano | Avalindor de Operacior Otimizador | ‘Mecanismo de Avalingko | de Consulta | ¥ ||| Gerenciacor | fem) Arquivos e Métodos de Acesso Se ian ee lor de Buiter & [esa | eel 2 er ee en =: ae a Arauivos —— = de fudices = “4 ilustra referencias V Catalogo de Sistema Arquivos de Dados BANCO DE DADOS: Figura 1.3 Arquitetura de um SGBD. O SGBD aceita comandos SQL gerados de uma variedade de interfaces de usuario, produz planos de avaliagio de consulta, executa estes planos no banco de dados, ¢ retorna as respostas. (Esta é a simplificagdo: os comandos SQL podem ser embutidos em programas de aplicativo em linguagem hospedeira, como, por exemplo, programas Java ou COBOL. Ignoramos esses aspectos para concentrar-nos na funcionalidade basica do SGBD.) Quando um usudrio emite uma consulta, a consulta sintaticamente analisada é apresentada a um otimizador de consulta, que usa a informagio sobre como o dado é armazenado para produzir um plano de execucio eficiente para processar a consulta. Um plano de execugéo é um projeto para processar uma consulta, normalmente repre- sentado como uma érvore de operadores relacionais (com anotacdes que contém infor- magoes detalhadas adicionais sobre quais métodos de acesso usar etc.). Discutimos a otimizagao de consulta nos Capitulos 12 e 15. Os operadores relacionais servem como blocos de construg&o para processar consultas elaboradas sobre os dados. A implemen- tagao desses operadores é discutida nos Capitulos 12 e 14. O cédigo que implementa os operadores relacionais situa-se acima da camada de arquivos e métodos de acesso. Essa camada suporta 0 conceito de um arquivo, que, em um SGBD, é uma colegao de paginas ou uma colecdo de registros. Os arquivos heap, Visdo Geral sobre Sistemas de Banco de Dados 17 ou arquivos de paginas no ordenadas, assim como os fndices, so suportados. Além de controlar as péginas de um arquivo, essa camada organiza as informagoes dentro de uma pégina. Os aspectos relacionados a arquivos e armazenamento no nivel de pagina s4o tratados no Capftulo 9. As organizagdes de arquivo e os fndices sao tratados no Capitulo 8. t O cédigo da camada de arquivos e métodos de acesso situa-se acima do gerenciador de buffer, que carrega as paginas do disco para a meméria principal conforme neces- s4rio em resposta As solicitagdes de leitura. O gerenciamento de buffer é discutido no Capftulo 9. A camada mais inferior do software do SGBD trata do gerenciamento do espago no disco, onde os dados séo armazenados. As camadas superiores alocam, liberam, léem e escrevem paginas através de rotinas fornecidas por essa camada, chamada gerenciador de espago em disco. Essa camada é discutida no Capftulo 9. O SGBD suporta a concorréncia e a recuperagio de falha planejando cuidadosa- mente as solicitacées de usuario e mantendo um log de todas as alteragées realizadas no banco de dados. Os componentes de SGBD associados com o controle de concorrén- cia e recuperaco incluem o gerenciador de transagées, que assegura que as transacées solicitem e liberem bloqueios de acordo com um protocolo adequado de bloqueio e pla- neja a execucdo das transagdes; o gerenciador de bloqueio, que controla as requisigdes por bloqueio e concede o direito de bloqueio nos objetos de banco de dados quando eles se tornam dispontveis; e o gerenciador de recuperagio, que é responsavel por manter um log ¢ restaurar o sistema a um estado consistente apés a ocorréncia de uma falha. O gerenciador de espaco em disco, gerenciador de buffer e as camadas de arquivo e métodos de acesso devem interagir com esses componentes. Discutiremos 0 controle de eoncorréncia e recuperaciio com mais detalhes no Capitulo 16. 1.9 PESSOAL QUE TRABALHA COM BANCO DE DADOS Uma grande variedade de pessoas esta relacionada com a criagio e uso de banco de da- dos. Obviamente, ha desenvolvedores de banco de dados que constroem o software do SGBD, e usuarios finais que descjam armazenar e utilizar os dados de um SGBD. Os desenvolvedores de banco de dados trabalham para fabricantes como IBM ou Oracle. Os usudrios finais vem de um crescente ntimero de reas diversas. Conforme os dados erescem em complexidade e volume, e tém sido cada vez mais reconhecidos como um ativo principal, a importancia de manté-los profissionalmente em um SGBD esta se difundindo amplamente. Varios usudrios finais simplesmente utilizam aplicativos es- eritos por programadores de aplicativo de banco de dados (veja a seguir) e, portanto, requerem pouco conhecimento técnico sobre o software do SGBD. E dbvio que os usuarios mais experientes, que fazem uso mais extensivo de um SGBD, como escrever suas préprias consultas, requerem uma compreensiio mais aprofundada de seus recursos. Além dos usuérios finais e desenvolvedores, duas outras cl: de pessoas esto relacionadas com um SGBD: programadores de aplicativo e administradores de banco de dados. Os programadores de aplicativo de banco de dados desenvolvem pacotes que faci- litam 0 acesso aos dados pelos usudrios finais, que normalmente nfo sao profissionais em computacao, utilizando as linguagens hospedeiras ou de dados e ferramentas de software fornecidas pelos fabricantes de SGBD. (Tais ferramentas incluem editores de relatérios, planilhas, pacotes estatfsticos e assim por diante.) Os programas de aplicativo devem acessar os dados idealmente através do esquema externo. E posstvel escrever aplicativos que acessam dados em um nivel inferior, mas tais aplicativos com- prometeriam a independéncia dos dados. 18 Capiruto 1 Um banco de dados pessoal ¢ mantido tipicamente pelo individuo que o possui ¢ © utiliza. Entretanto, bancos de dados corporativos ou empresariais normalmente sio importantes e complexos o suficiente para que a tarefa de projetar e manter o banco de dados seja confiada a um profissional, chamado administrador de banco de dados (DBA — database administrator). O DBA é responsdvel por varias tarefas criticas: + Projeto dos Esquemas Conceitual e Fisico: O DBA é responsdvel por interagir com 08 usuarios do sistema para compreender quais dados devem ser armazenados no SGBD e como eles serfio mais provavelmente utilizados. Baseado nese conhecimen- to, o DBA deve projetar o esquema conceitual (decidir quais relagdes armazenar) e © esquema fisico (decidir como armazené-las). 0 DBA também pode projetar partes extensamente utilizadas do esquema externo, embora os usuarios provavelmente estendam esse esquema criando visdes adicionais. + Seguranca e Autorizagio: O DBA é responsavel por assegurar que o acesso néo autorizado aos dados nao seja permitido. Em geral, nem todos devem ser capazes de acessar todos os dados. Em um SGBD telacional, os usuérios podem ganhar permissao de acesso apenas a determinadas visdes e relagdes. Por exemplo, embora se possa permitir que os alunos localizem as matriculas do curso e quem ministra determinado curso, nao é desejavel que os alunos vejam os salérios dos professores ou as informagées de notas dos demais alunos. 0 DBA pode forgar essa politica concedendo permissao de apenas leitura para a visio InfoCurso. + Disponibilidade de Dados e Recuperacao de Falhas: 0 DBA deve tomar medidas para assegurar que, caso o sistema falhe, os usuarios possam continuar a acessar 0 maximo possfvel dos dados no corrompidos. O DBA também deve restaurar os dados a um estado consistente. O SGBD fornece suporte de software para essas fungées, mas o DBA é responsével por implementar os procedimentos para realizar © backup dos dados periodicamente e manter os logs da atividade do sistema (para facilitar a recuperagao de uma falha). « Sintonizagao de Banco de Dados: E bem provavel que as necessidades dos usudrios evoluam ao fongo do tempo. O DBA é responsavel por modificar o banco de dados, em particular os esquemas conceituais e fisicos, para assegurar desempenho adequa- do conforme os requisitos sofrem alteragées. 1.10 QUESTOES DE REVISAO As respostas a essas questdes de revisio podem ser encontradas nas segies listadas. + Quais séio os beneficios principais de utilizar um SGBD para gerenciar os dados de um aplicativo envolvendo muito acesso aos dados? (Segées 1.1, 1.4) + Quando vocé armazenaria dados em um SGBD em vez de em arquivos de sistema operacional e vice-versa? (Segio 1.3) + O que é um modelo de dados? O que ¢ um modelo de dados relacional? O que é independéncia de dados e como um SGBD a suporta? (Segao 1.5) + Explique as vantagens de utilizar uma linguagem de consulta em vez de programas personalizados para processar dados. (Segao 1.6) + O que é uma transagiio? Que garantias um SGBD oferece com respeito a transa- des? (Segio 1.7) + O que sao bloqueios em um SGBD e por que eles so utilizados? O que é um re- gistro de log write-ahead, e por que ele é utilizado? O que 6 0 uso de pontos de verificagaio ¢ por que so utilizados? (Segao 1.7)

También podría gustarte