Você está na página 1de 21

INTRODUO A BANCO DE DADOS

Introduo e histria
Em muitos momentos conseguimos entender exatamente o motivo que trouxe a tecnologia ao atual estgio de amadurecimento e podemos inclusive arriscar alguns palpites das tendncias para os prximos anos.

Do antigo ao recente
Temos que voltar aos registros de bibliotecas, negcios em geral, registros policiais, fichas de pacientes e todas as informaes armazenadas de maneira impressa para consultas posteriores. Foi l que tudo comeou. Havia um histrico muito longo de informaes armazenadas desta maneira e tambm uma metodologia de indexao e recuperao da informao quando se precisava dela. No se pode ignorar esta histria, pois h muito a se aprender com os sucessos e fracassos deste pessoal que manipulava estas informaes. Boas prticas e bons princpios de projetos de bancos de dados datam aquela poca e muito se aprendeu para a criao de bons projetos que alcanam boa performance, segurana e confiabilidade.

Dcada de 60
Os computadores se tornam parte efetiva do custo das empresas juntamente com o crescimento da capacidade de armazenamento. Foram desenvolvidos dois principais modelos de dados: modelo em rede (CODASYL - Comitee for Data Systems Language) e o modelo hierrquico (IMS Information Management System). O acesso ao BD feito atravs de operaes de ponteiros de baixo nvel que unem (link) os registros. Detalhes de armazenamento dependiam do tipo de informao a ser armazenada, desta forma, a adio de um campo extra necessitava de uma reescrita dos fundamentos de acesso/modificao do esquema. Os usurios precisavam conhecer a estrutura fsica do BD para poder realizar uma consulta. Modelo de dados em rede (Figura 1): Os primeiros trabalhos foram realizados em 1964 por Charles Bachman; Dados so representados por uma coleo de registros e os relacionamentos por meio de links; representado por um diagrama constitudo por caixas e linhas; So usados apenas relacionamentos muitos-para-muitos.

Figura 1. Representao de um modelo de dados em rede.

Pg. 1 de 21

INTRODUO A BANCO DE DADOS Modelo de dados hierrquico (Figura 2): Tambm se utilizava de registros para representar os dados e links para os relacionamentos; So organizados na forma de uma rvore com raiz; Como Exemplo: Clipper, Dbase 2, Fox Pro, COBOL.

Figura 2. Representao de um modelo de dados hierrquico.

O maior sucesso comercial foi o sistema SABRE, desenvolvido pela IBM e American Airlines.

1970 1972
Edgar Frank Codd (Figura 3) prope o modelo de dados relacional, que se tornou um marco em como pensar em banco de dados. Ele desconectou a estrutura lgica do banco de dados do mtodo de armazenamento fsico. Este sistema se tornou padro desde ento.

Figura 3. Dr. Edgar Frank Codd, o pai do modelo relacional.

Pg. 2 de 21

INTRODUO A BANCO DE DADOS

Dcada de 70
Muitas discusses a respeito do valor da competio entre os sistemas enquanto a teoria de banco de dados conduz ao objetivo final de projeto de pesquisa. Dois principais prottipos de sistema relacional foram desenvolvidos entre 1974 e 1977 e demonstram um timo exemplo de como a teoria conduz a boas prticas. Ingres: Desenvolvido pela UCB. Que no final das contas serviu como base para Ingres Corp., Sybase, MS SQL Server, Britton-Lee, Wang PACE. Este sistema utilizava QUEL como linguagem de consulta; System R: Desenvolvido pela IBM San Jose e serviu de base para o IBM SQL/DS, IBM DB2, Oracle, todas os BD da HP, Tandem's Non-Stop SQL. Este sistema utilizava SEQUEL como linguagem de consulta.

O termo Sistema de Gerenciamento de Banco de Dados Relacional (SGBDR RDBMS em ingls) foi definido durante este perodo.

1976
O Dr. Peter Chen (Figura 4) prope o modelo Entidade-Relacionamento (ER) para projetos de banco de dados dando uma nova e importante percepo dos conceitos de modelos de dados. Assim como as linguagens de alto nvel, a modelagem ER possibilita ao projetista concentrar-se apenas na utilizao dos dados, sem se preocupar com estrutura lgica de tabelas.

Figura 4. Dr. Peter Chen, criador do modelo ER.

Incio dos anos 80


A comercializao de sistemas relacionais comea a virar uma febre entre as organizaes.

Pg. 3 de 21

INTRODUO A BANCO DE DADOS

Metade dos anos 80


A Linguagem Estruturada de Consulta SQL (Structured Query Language) se torna um padro mundial. A IBM transforma o DB2 como carro chefe da empresa em produtos para BD. Os modelos em rede e hierrquico passam a ficar em segundo plano praticamente sem desenvolvimentos utilizando seus conceitos, porm vrios sistemas legados continuam em uso. O desenvolvimento do IBM PC desperta muitas empresas e produtos de BD como: RIM, RBASE 5000, PARADOX, OS/2 Database Manager, Dbase III e IV (mais tarde transformado em FoxBase e mais tarde ainda como Visual FoxPro), Watcom SQL, entre outros.

Incio dos anos 90


Tem incio uma leve crise econmica nas indstrias e algumas empresas sobrevivem oferecendo alguns produtos a custos muito elevados. Muito desenvolvimento acontece em ferramentas de desenvolvimento para o desktop no desenvolvimento de aplicaes (client tolls), tais como: PowerBuilder (Sybase), Oracle Developer, Visual Basic (Microsoft), entre outros. O modelo cliente-servidor (client-server) passa a ser uma regra para futuras decises de negcio e vemos o desenvolvimento de ferramentas de produtividade como Excel/Access (Microsoft) e ODBC, tambm marcado como o incio dos prottipos de Object Database Management Systems (ODBMS).

Metade dos anos 90


quando vemos a expanso da Internet./WWW e uma louca corrida para prover acesso remoto a sistemas de computadores com dados legados. Percebe-se um crescimento exponencial na tecnologia Web/BD. Aumentam o uso de solues de cdigo aberto (open source) atravs de gcc, cgi, Apache, MySQL, etc. Processos de transao em tempo real (OLTP - On-Line Transaction Process) e processos analticos em tempo real (OLAP On-Line Analitical Process) atingem maturidade atravs de muitos negcios utilizando os PDVs (Ponto de Venda).

Final dos anos 90


O grande investimento em empresas de Internet impulsiona as vendas de ferramentas para conexo Web/Internet/BD. Active Server Pages, Front Page, Java Servlets, JDBC, Enterprise Java Beans, ColdFusion, Dream Weaver, Oracle Developer 2000, so um exemplo dessas ferramentas.

Pg. 4 de 21

INTRODUO A BANCO DE DADOS

Sculo 21
Vemos a decadncia da indstria da Internet de uma maneira geral, mas slidos crescimentos em aplicaes para BD continuam. Aparecem mais aplicaes que interagem com PDAs (Personal Digital Assistant), transaes em PDVs, consolidao de vendas, etc. Trs companhias predominam no amplo mercado de BD: IBM (que comprou a Informix), Microsoft e Oracle.

2003
Em 18 de abril, morre o pai do modelo relacional, o Dr. Edgar Frank Ted Codd. Aos 76 anos de idade, em sua casa na Flrida. Nascido em 1923 em Portland, na Inglaterra. O caula de 07 irmos, filho de pai fabricante de artigos de couro e me professora.

Quais as tendncias?
Sistemas gigantescos (Terabytes) esto surgindo e necessitaro cada vez mais de novos recursos para manipulao e anlise dos dados. Estamos presenciando grandes projetos envolvendo BD como o projeto Genoma, geologia, segurana nacional e dados de explorao espacial. Data mining, data warehousing, data marts so tcnicas utilizadas atualmente e no futuro sero utilizados cada vez mais, sem dvida alguma. Sistemas de compras personalizadas e inteligentes sero fato e utilizaro histrico de vendas. Sucessores do SQL (e quem sabe dos Sistemas de Gerenciamento de Banco de Dados Relacionais RDBMS, em ingls) surgiro no futuro. Vrias tentativas de padronizar um sucessor do SQL no foram bem sucedidas. SQL92, SQL2 e SQL3 ainda esto pouco potentes e mais extenses so difceis de implementar. Muito provavelmente isto ser alcanado pelo XML e outras tcnicas emergentes. XML com Java para BD a nova aposta como o prximo grande acontecimento. Vejamos mais tarde o que mais ser novidade. O uso de BD mveis so os novos produtos que vem surgindo para comercializao em vrios segmentos. Processos de transaes distribudas comeam a se tornar uma regra em vrias reas de planejamento de negcios. Provavelmente veremos uma leve crise nas vendas dos RDBMS e Linux com Apache suportaro MySQL (e at mesmo Oracle) com um hardware relativamente barato e isso ser a maior ameaa ao alto custo de sistemas legados da Oracle e DB2 e ento se dar incio a projetos para manter seus clientes. Tudo ser orientado a objeto, inclusive os BD. Object Database Management Group (ODMG) props um padro que foi aceito e, quem sabe, algo venha deles. Assuntos como tica e segurana tendem a diminuir, mas invariavelmente voltaro tona. Pg. 5 de 21

INTRODUO A BANCO DE DADOS Seremos capazes de consultar um BD de registros mdicos/genticos de um futuro empregado de nossa empresa? Poderemos consultar as informaes de um(a) futuro(a) companheiro(a) / namorado(a) para descobrir possveis falhas ou distrbios genticos? A submarino.com poder ficar de olho nas suas compras de livros ou CDs? Haver um banco de dados nacional com informaes de estupradores, assassinos, traficantes? Quem ter permisso de fazer rastreamentos na Web? Quantas vezes, nestes ltimos seis meses, voc visitou uma sala de bate-papo, site pornogrfico, site de stira poltica, visitou o site da SQL Magazine? Quem ter permisso de armazenar ou ver estas informaes? E o questionamento mais difcil de se responder: Quem tomar estas decises?

Concluses
Como podemos perceber, a histria nos ensina muito do que somos hoje. No voltaremos ao passado para trabalhar com o velho WordStar, mas extremamente importante aprendermos com o passado para decidirmos melhor o nosso futuro afinal, o futuro est em nossas mos.

Pg. 6 de 21

INTRODUO A BANCO DE DADOS

Conceitos Bsicos
Segundo Korth, um banco de dados uma coleo de dados inter-relacionados, representando informaes sobre um domnio especfico, ou seja, sempre que for possvel agrupar informaes que se relacionam e tratam de um mesmo assunto, posso dizer que tenho um banco de dados. Podemos exemplificar situaes clssicas como uma lista telefnica, um catlogo de CDs ou um sistema de controle de RH de uma empresa. J um sistema de gerenciamento de banco de dados (SGBD) um software que possui recursos capazes de manipular as informaes do banco de dados e interagir com o usurio. Exemplos de SGBDs so: Oracle, SQL Server, DB2, PostgreSQL, MySQL, o prprio Access ou Paradox, entre outros. Por ltimo, temos que conceituar um sistema de banco de dados como o conjunto de quatro componentes bsicos: dados, hardware, software e usurios. Date conceituou que sistema de bancos de dados pode ser considerado como uma sala de arquivos eletrnica. A Figura 5 ilustra os componentes de um sistema de banco de dados.

Figura 5. Componentes de um sistema de banco de dados.

Os objetivos de um sistema de banco de dados so o de isolar o usurio dos detalhes internos do banco de dados (promover a abstrao de dados) e promover a independncia dos dados em relao s aplicaes, ou seja, tornar independente da aplicao, a estratgia de acesso e a forma de armazenamento. Pg. 7 de 21

INTRODUO A BANCO DE DADOS

Abstrao de dados
Um SGBD composto de uma coleo de arquivos inter-relacionados e de um conjunto de programas que permitem aos usurios fazer o acesso a estes arquivos e modificar os mesmos. O grande objetivo de um sistema de banco de dados prover os usurios com uma viso abstrata dos dados. Isto , o sistema omite certos detalhes de como os dados so armazenados e mantidos. Entretanto, para que o sistema possa ser utilizado, os dados devem ser buscados de forma eficiente. Este conceito tem direcionado o projeto de estrutura de dados complexas para a representao de dados em um banco de dados. Uma vez que muitos dos usurios de banco de dados no so treinados para computao, a complexidade est escondida deles atravs de diversos nveis de abstrao que simplificam a interao do usurio com o sistema. Esta abstrao se d em trs nveis (Figura 6): Nvel fsico: o nvel mais baixo de abstrao descreve como os dados esto realmente armazenados. No nvel fsico, complexas estruturas de dados de baixo nvel so descritas em detalhes; Nvel conceitual: o prximo nvel de abstrao descreve quais dados esto armazenados de fato no banco de dados e as relaes que existem entre eles. Aqui o banco de dados inteiro descrito em termos de um pequeno nmero de estruturas relativamente simples. Embora as implementaes de estruturas simples no nvel conceitual possa envolver complexas estruturas de nvel fsico, o usurio do nvel conceitual no precisa preocupar-se com isso. O nvel conceitual de abstrao usado por administradores de banco de dados, que podem decidir quais informaes devem ser mantidas no BD; Nvel de vises: o mais alto nvel de abstrao descreve apenas parte do banco de dados. Apesar do uso de estruturas mais simples do que no nvel conceitual, alguma complexidade perdura devido ao grande tamanho do banco de dados. Muitos usurios do sistema de banco de dados no estaro interessados em todas as informaes. Em vez disso precisam de apenas uma parte do banco de dados. O nvel de abstrao das vises de dados definido para simplificar esta interao com o sistema, que pode fornecer muitas vises para o mesmo banco de dados.

Pg. 8 de 21

INTRODUO A BANCO DE DADOS

Figura 6. Nveis de abstrao.

Uma analogia com o conceito de tipos de dados em linguagens de programao pode esclarecer a distino entre os nveis de abstrao. A maioria das linguagens de programao de alto nvel tem suporte para a noo de um tipo de registro. Por exemplo, numa linguagem como Pascal podemos declarar um registro assim: type cliente = record rua: string; cidade: string; end; nome: string;

Isto define um novo registro chamado cliente com trs campos. Cada campo tem um nome e um tipo associado a ele. Um banco privado pode ter diversos tipos de registros incluindo: contas, com campos nmero e saldo; funcionrio, com campos nome e salrio. No nvel fsico, um registro cliente, conta ou funcionrio pode ser descrito como um bloco de posies de armazenamento consecutivas (por exemplo, palavras ou bytes). No nvel conceitual, cada registro destes descrito por uma definio de tipo, ilustrado anteriormente e o inter-relacionamento entre esses tipos de registros definido. Finalmente, no nvel de vises, diversas vises do banco de dados so definidas, por exemplo: os contadores de um banco vem apenas a parte do banco de dados que possui informaes sobre contas dos clientes. Eles no podem ter acesso a informaes que se referem a salrios dos funcionrios. Pg. 9 de 21

INTRODUO A BANCO DE DADOS

Independncia de dados
Vimos trs nveis de abstrao pelos quais o banco de dados pode ser visto. A habilidade de modificar a definio ded um esquema em um nvel sem afetar a definio de esquema num nvel mais alto chamada de independncia de dados. Existem dois nveis de independncia dos dados: Independncia fsica de dados: a habilidade de modificar o esquema fsico sem a necessidade de reescrever os programas aplicativos. As modificaes no nvel fsico so ocasionalmente necessrias para melhorar o desempenho; Independncia lgica de dados: a habilidade ded modificar o esquema conceitual sem a necessidade de reescrever os programas aplicativos. As modificaes no nvel conceitual so necessrias quando a estrutura lgica do banco de dados alterada (por exemplo, a adio de contas de bolsas de mercado num sistema bancrio).

A independncia lgica dos dados mais difcil de ser alcanada do que a independncia fsica, porm os programas so bastante dependentes da estrutura lgica dos dados que eles acessam. O conceito de independncia dos dados similar em muitos aspectos ao conceito de tipos abstratos de dados em modernas linguagens de programao. Ambos escondem detalhes de implementao do usurio. Isto permite ao usurio concentrar-se na estrutura geral em vez de detalhes de baixo nvel de implementao.

Questes:
1. Quais as vantagens e desvantagens entre um sistema de processamento de arquivos e um sistema de gerenciamento de banco de dados? 2. Quais os tipos de arquiteturas de banco de dados, vantagens e desvantagens de cada uma? 3. Explique a diferena entre independncia fsica e independncia lgica dos dados.

Pg. 10 de 21

INTRODUO A BANCO DE DADOS

Projeto de banco de dados


Todo bom sistema de banco de dados deve apresentar um projeto, que visa a organizao das informaes e utilizao de tcnicas para que o futuro sistema obtenha boa performance e tambm facilite infinitamente as manutenes que venham a acontecer. O projeto de banco de dados se d em duas fases: Modelagem conceitual; Projeto lgico.

Estas duas etapas se referem a um sistema de banco de dados ainda no implementado, ou seja, que ainda no exista, um novo projeto. Para os casos em que o banco de dados j exista, mas um sistema legado, por exemplo, ou um sistema muito antigo sem documentao, o processo de projeto de banco de dados se dar atravs da utilizao de uma tcnica chamada de Engenharia Reversa, que ser visto em outra oportunidade.

Modelo conceitual
a descrio do BD de maneira independente ao SGBD, ou seja, define quais os dados que aparecero no BD, mas sem se importar com a implementao que se dar ao BD. Desta forma, h uma abstrao em nvel de SGBD. Uma das tcnicas mais utilizadas dentre os profissionais da rea a abordagem entidaderelacionamento (ER), onde o modelo representado graficamente atravs do diagrama entidaderelacionamento (DER) (Figura 7).

Figura 7. Exemplo de diagrama entidade-relacionamento.

O modelo acima, entre outras coisas, nos traz informaes sobre Alunos e Turmas. Para cada Aluno, ser armazenado seu nmero de matrcula, seu nome e endereo, enquanto para cada turma, teremos a informao de seu cdigo, a sala utilizada e o perodo.

Pg. 11 de 21

INTRODUO A BANCO DE DADOS

Modelo Lgico
Descreve o BD no nvel do SGBD, ou seja, depende do tipo particular de SGBD que ser usado. No podemos confundir com o Software que ser usado. O tipo de SGBD que o modelo lgico trata se o mesmo relacional, orientado a objetos, hierrquico, etc. Abordaremos o SGBD relacional, por serem os mais difundidos. Nele, os dados so organizados em tabelas (Quadro 1). Aluno mat_aluno 1 2 3 Turma cod_turma 1 2 sala 8 5 perodo Manh Noite

nome Ceclia Ortiz Rezende Ablio Jos Dias Renata Oliveira Franco

endereco Rua dos Ips, 37 Avenida Presidente Jnio Quadros, 357 Rua Nove de Julho, 45

Quadro 1. Exemplo de tabelas em um SGBD relacional.

O modelo lgico do BD relacional deve definir quais as tabelas e o nome das colunas que compem estas tabelas. Para o nosso exemplo, poderamos definir nosso modelo lgico conforme o seguinte: Aluno(mat_aluno, nome, endereco) Turma (cod_turma, sala, periodo) importante salientar que os detalhes internos de armazenamento, por exemplo, no so descritos no modelo lgico, pois estas informaes fazem parte do modelo fsico, que nada mais que a traduo do modelo lgico para a linguagem do software escolhido para implementar o sistema. Os sistemas de banco de dados so projetados para gerenciar grandes grupos de informaes. O gerenciamento de dados envolve a definio de estruturas para armazenamento de informao e o fornecimento de mecanismos para manipul-las. Alm disso, o sistema de banco de dados precisa fornecer segurana das informaes armazenadas, caso o sistema d problema, ou contra tentativas de acesso no-autorizado. Se os dados devem ser divididos entre diversos usurios, o sistema precisa evitar possveis resultados anmalos. A importncia das informaes na maioria das organizaes e o conseqente valor dos bancos de dados tm orientado o desenvolvimento de um grade corpo de conceitos e tcnicas para o gerenciamento eficiente dos dados. Pg. 12 de 21

INTRODUO A BANCO DE DADOS

Cenrio de problemas
Imaginemos parte de um banco que mantenha informaes sobre todos os clientes e contas de poupana em sistemas de arquivos permanentes no banco. O sistema tem ainda uma quantidade de programas aplicativos que permitem ao usurio manipular os arquivos, incluindo: Um programa para debitar ou creditar em uma nova conta; Um programa para adicionar uma nova conta; Um programa para calcular o saldo de uma conta; Um programa para gerar posicionamentos mensais.

Esses programas aplicativos foram desenvolvidos por programadores em resposta s necessidades da organizao bancria. Novos programas de aplicao so adicionados ao sistema medida que as necessidades aparecem. Logo, mais arquivos e mais programas so acrescidos ao sistema. O tpico sistema de processamento de arquivos acima suportado por um sistema operacional convencional. Registros permanentes so guardados em diversos arquivos, e em uma srie de diferentes programas aplicativos escrita para extrair e adicionar registros aos arquivos apropriados. Este esquema tem uma srie de desvantagens: Redundncia e inconsistncia de dados: muitos programadores diferentes e programas implementados em linguagens diferentes podem gerar arquivos de formatos diferentes. Informaes podem estar duplicadas em diversos lugares. Gera inconsistncia pois estas cpias podem estar com valores diferentes. Dificuldade no acesso aos dados: um diretor deseja a lista de todos os clientes que moram na cidade de CEP 34863. Ou ele extrai manualmente esta informao de uma lista de clientes ou pede a um programador escrever um programa que aplicativo. Suponha mais tarde que o mesmo diretor deseje uma lista com os clientes com mais de $10000. Tal lista no existe e novamente o diretor tem as duas opes. Isolamento dos dados: como os dados esto espalhados, em arquivos separados e com formatos diferentes, difcil escrever novos programas aplicativos para recuperar os dados adequados. Anomalias de acesso concorrente: para aperfeioar o desempenho geral do sistema e obter tempo de reposta mais rpido, deixamos que mltiplos clientes acessem e atualizem os dados simultaneamente. Isso gera dados inconsistentes. Exemplo: dois clientes sacarem dinheiro de uma mesma conta corrente. Problemas de segurana: nem todo usurio do sistema de BD deve ter acesso a todos os dados. Por exemplo: o RH pode ter acesso s informaes cadastrais dos clientes, mas no aos valores de conta corrente. Se novos programas aplicativos forem adicionados, difcil assegurar tais restries de segurana.

Pg. 13 de 21

INTRODUO A BANCO DE DADOS Problemas de integridade: os valores dos dados armazenados necessitam satisfazer certas restries. Por exemplo, o saldo nunca estar abaixo de $25. Estas restries podem estar contidas nos programas aplicativos, mas quando novas restries forem adicionadas, difcil de alterar estes programas.

Por estes motivos faz-se necessria uma abordagem relacionada aplicao de um SGBD, a fim de evitar os problemas descritos.

Pg. 14 de 21

INTRODUO A BANCO DE DADOS

Linguagem de Definio de Dados


Um esquema de banco de dados especificado por um conjunto de definies expressas por uma linguagem especial chamada linguagem de definio de dados (Data Definition Language, DDL). O resultado da compilao de comandos de uma DDL um conjunto tabelas que so armazenadas em um arquivo especial chamado dicionrio (ou diretrio) de dados. Um diretrio de dados um arquivo que contm metadados, ou seja, "dados sobre dados". Este arquivo consultado antes que os dados sejam lidos ou modificados no sistema de banco de dados. A estrutura de armazenagem e os mtodos de acesso usados em um sistema de banco de dados so especificados por um conjunto de definies em um tipo especial de DDL chamado linguagem de armazenagem e definio de dados. O resultado da compilao destas definies um conjunto de instrues para especificar a implementao de detalhes do esquema de banco de dados que esto normalmente escondidos dos usurios.

Linguagem de Manipulao de Dados


Os nveis de abstrao discutidos anteriormente (nveis fsico, conceitual e de viso) no se aplicam somente definio ou estrutura de dados, mas tambm sua manipulao. A manipulao de dados significa: a busca da informao armazenada no BD; a insero de novas informaes nos BD; a eliminao de informaes no BD; a modificao de dados armazenados no BD.

No nvel fsico precisamos definir algoritmos que permitam um acesso eficiente aos dados. Nos nveis mais altos de abstrao dada nfase facilidade de uso. O objetivo fornecer uma interao humana eficiente com o sistema. A linguagem de manipulao de dados (Data Manipulation Language, DML) a linguagem que permite aos usurios fazer o acesso a os dados ou manipul-los, conforme modelo de dados apropriado. Existem basicamente dois tipos: DMLs procedurais requerem do usurio a especificao de qual dado necessrio e de como obt-lo; DMLs no-procedurais requerem do usurio a especificao de qual dado necessrio sem especificar como obt-lo.

DMLs no-procedurais so usualmente mais fceis de aprender e usar do que DMLs procedurais. Entretanto, se um usurio no necessita especificar como obter os dados, estas linguagens podem gerar cdigo no to eficiente como o produzido por linguagens procedurais. Esta dificuldade pode ser remediada por meio de vrias tcnicas de otimizao. Pg. 15 de 21

INTRODUO A BANCO DE DADOS Uma consulta (query) um comando requisitando a busca de uma informao. A poro de uma DML que envolve busca de informaes chamada linguagem de consulta. Embora tecnicamente incorreto, comum utilizar os termos linguagem de consulta e linguagem de manipulao de dados como sinnimos.

Gerenciador de banco de dados


Os bancos de dados requerem tipicamente um grande espao de armazenamento. Os bancos de dados corporativos so medidos geralmente em gigabytes, ou, para os maiores, terabytes de dados. Um gigabyte equivale a 1000 megabytes (um bilho de bytes) e um terabyte representa um milho de gigabytes. Visto que a memria principal de um computador no pode armazenar essas informaes, ela armazenada em discos. Os dados so movidos entre discos de armazenamento e a memria principal conforme a necessidade. Uma vez que esse movimento de dados bastante lento em comparao com a velocidade da unidade central de processamento (UCP ou CPU, Central Processing Unit), imperativo que o sistema de banco de dados estruture os dados de forma a minimizar o movimento de dados entre os discos e a memria principal. A finalidade de um sistema de bancos de dados simplificar e facilitar o acesso aos dados. Vises do usurio de alto nvel ajudam-nos a atingir isto. Os usurios do sistema no devem preocupar-se desnecessariamente com os detalhes fsicos da implementao do sistema. Contudo, o principal fator na satisfao de um usurio com o sistema de bancos de dados seu desempenho. Se o tempo de resposta a uma solicitao muito longo, o valor do sistema diminudo. O desempenho de um sistema depende da eficincia das estruturas de dados usadas para representar os dados no banco de dados. E, se for o caso, a vantagem no deve ser dada apenas entre espao e tempo, mas tambm eficincia de um tipo de operao versus outra. O gerenciador de banco de dados um mdulo de um programa que prov a interface entre os dados de baixo nvel armazenados num banco de dados e os programas de aplicao e as solicitaes submetidas ao sistema. O gerenciador de banco de dados responsvel pelas seguintes tarefas: Interao com o gerenciamento de arquivos. Os dados no trabalhados so armazenados no disco usando o sistema gerenciador de arquivos, que geralmente fornecido por algum sistema operacional. O gerenciador de banco de dados traduz os diversos comandos da DML em comandos de baixo nvel do gerenciador de arquivos. Portanto, o gerenciador de banco de dados responsvel pelo armazenamento, pela busca e pela atualizao de dados no banco de dados. Cumprimento de integridade. Os valores de dados armazenados num banco de dados precisam satisfazer certos tipos de restries de consistncia. Por exemplo, o nmero de horas que um empregado pode trabalhar em uma semana no pode ultrapassar um limite estabelecido (digamos, 80 horas). Tal restrio precisa ser especificada explicitamente pelo administrador do banco de dados. O sistema gerenciador de banco de dados pode ento determinar se as atualizaes no banco de dados resultam numa violao da restrio; em caso positivo, aes apropriadas precisam ser tomadas.

Pg. 16 de 21

INTRODUO A BANCO DE DADOS Cumprimento de segurana. Como discutido anteriormente, nem todo usurio do banco de dados necessita ter acesso a todo o banco de dados, para impor requisitos de segurana de acesso aos dados. Cpias de reserva (backup) e recuperao (restore). Um computador, como qualquer outro dispositivo mecnico ou eltrico, est sujeito a falhas. As causas das falhas incluem quebras de disco, falhas na energia e erros de software. Em cada um dos casos, as informaes que se referem ao banco de dados podem ser perdidas. responsabilidade do sistema gerenciador do banco de dados detectar tais falhas e restabelecer o estado do banco de dados como estava antes da ocorrncia da falha. Isto feito normalmente atravs da ativao de diversos procedimentos de recuperao e de cpias de reserva. Controle de concorrncia. Se diversos usurios atualizam o banco de dados concorrentemente, a consistncia dos dados pode no ser mais preservada. Controlar a interao entre usurios simultneos outra atribuio do gerenciador de banco de dados.

Sistema de banco de dados projetados para uso em pequenos computadores pessoais podem no ter todos os recursos descritos acima. Por exemplo, muitos sistemas pequenos restringem o acesso a apenas um usurio de cada vez. Outros atribuem ao usurio tarefas como cpias de segurana, recuperao e imposio de segurana. Isto permite um gerenciador de BD menor, com menor requerimento de recursos, especialmente no que diz respeito memria principal. Por outro lado, assim como os baixos custos e baixos recursos so suficientes para pequenos bancos de dados pessoais, porm eles so inadequados para satisfazer as necessidades de empreendimentos de mdia ou larga escala.

Administrador de banco de dados


Uma das principais razes para empregar um gerenciador de banco de dados ter um controle central dos dados e dos programas de acesso a eles. A pessoa que tem esse controle sobre os sistema chamada administrador de banco de dados (database administrator, DBA). As funes do administrador de banco de dados incluem: Definio de esquema. O esquema original do banco de dados criado escrevendo-se um conjunto de definies que do traduzidas pelo compilador de DDL para um conjunto de tabelas que armazenado permanentemente no dicionrio de dados. Definio de estruturas de armazenamento e mtodos de acesso. Estruturas apropriadas de armazenamento e mtodos de acesso so criados escrevendo-se um conjunto de definies que so traduzidas pelo compilador de estruturas de dados e de linguagem de definio. Modificao do esquema e de organizao fsica. Modificaes no esquema do banco de dados ou na descrio da organizao da armazenagem fsica, embora relativamente raras, so executadas escrevendo-se um conjunto de definies que so usadas pelo compilador de DDL ou pelo compilador de estruturas de dados e linguagem de definio para gerar modificaes nas respectivas tabelas internas do sistema (como, por exemplo, o dicionrio Pg. 17 de 21

INTRODUO A BANCO DE DADOS de dados). Concesso de autorizao para acesso aos dados. A concesso de diferentes tipos de autorizao permite ao administrador do banco de dados regular a quais partes do banco de dados os diversos usurios podem fazer acesso. Especificao de restrio de integridade. Restries de integridade so mantidas em uma estrutura especial do sistema, consultada pelo gerenciador do banco de dados quando uma atualizao ou insero feita no sistema.

Usurios de banco de dados


A meta principal de um sistema de banco de dados prover um ambiente para buscar e armazenar novas informaes no banco de dados. Existem quatro tipos diferentes de usurios de banco de dados, segundo o modo pelo qual esperam interagir com o sistema. Programadores de aplicativos. Profissionais da computao interagem com o sistema por meio de chamadas DML, que so embutidas em um programa escrito em uma linguagem hospedeira (por exemplo, Cobol, PL/I, Pascal, C, C++, Java, etc). Estes programas so frequentemente referenciados como programas de aplicao. Exemplos em um sistema bancrio incluem programas que geram cheques de pagamento, fazem dbitos e crditos em contas, transferem fundos entre contas, etc. Uma vez que a sintaxe da DML normalmente bastante diferente da sintaxe da linguagem hospedeira, chamadas na DML so usualmente precedidas por um caractere especial, e ento o cdigo apropriado pode ser gerado. Um pr-processador especial, chamado prcompilador DML, converte o comando da DML em chamada de procedimento normal na linguagem hospedeira. O programa resultante ento passado pelo compilador da linguagem hospedeira, o qual gera o cdigo-objeto apropriado. Existem tipos especiais de linguagens de programao que combinam estruturas de controle de linguagens tipo Pascal com estruturas de controle para a manipulao de um objeto de um banco de dados (por exemplo, as relaes). Essas linguagens, algumas vezes chamadas de linguagens de quarta gerao, frequentemente incluem recursos especiais para facilitar a criao de formulrios e a disposio de dados na tela. A grande maioria dos sistemas de bancos de dados comerciais inclui uma linguagem de quarta gerao. Usurios de alto nvel. Esses usurios interagem com o sistema sem escrever programas. Em vez disso, eles formulam suas consultas em uma linguagem de consulta (query) a banco de dados. Cada consulta submetida a um processador de consulta, cuja funo gerar um comando da DML e dividi-lo em instrues que o gerenciador do banco de dados compreenda. Usurios especializados. Alguns usurios padres escrevem aplicativos especializados que no se ajustam a padres tradicionais de processamento de dados. Entre esses aplicativos, esto os sistemas de projeto apoiado por computador (CAP), sistemas especialistas, sistemas Pg. 18 de 21

INTRODUO A BANCO DE DADOS que armazenam dados com tipos complexos (como, por exemplo, dados geogrficos e dados de udio) e sistemas de modelagem ambiental. Usurios ingnuos. Esses usurios interagem com o sistema invocando um dos programas aplicativos permanentes que foram escritos anteriormente. Por exemplo, um contador do banco que precisa transferir $50 da conta A para uma conta B invocaria um programa chamado transferncia. Este programa perguntaria ao contador que quantidade de dinheiro est sendo transferida, a conta a partir da qual a transferncia ser feita e a conta para a qual o dinheiro deve ser transferido.

Estrutura geral do sistema


Um sistema de banco de dados dividido em mdulos que tratam de cada uma das responsabilidades do sistema geral. Na maioria dos casos, o sistema operacional do computador fornece apenas os servios mais bsicos e o sistema de banco de dados precisa ser construdo sobre essa base. Portanto, o projeto do sistema de banco de dados precisa incluir consideraes sobre a interface entre o sistema de banco de dados e o sistema operacional. Os componentes funcionais de um sistema de banco de dados incluem: Gerenciador de arquivos, que gerencia a alocao do espao na armazenagem do disco e as estruturas de dados usadas para representar a informao armazenada no disco. Gerenciador do banco de dados, que fornece a interface entre os dados de baixo nvel armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema. Processador de consultas, que traduz os comandos numa linguagem de consulta para instrues de baixo nvel que o gerenciador do banco de dados pode interpretar. Alm disso, o processador de consultas tenta transformar uma requisio do usurio em uma forma compatvel e mais eficiente com respeito ao banco de dados, encontrando uma boa estratgia para a executar a consulta. Pr-compilador da DML, que converte comandos da DML embutidos em um aplicativo para chamadas de procedimento normal na linguagem hospedeira. O pr-compilador precisa interagir com o processador de consultas pra gerar o cdigo apropriado. Compilador da DDL, que converte comandos da DDL em um conjunto de tabelas contendo metadados ou "dados sobre dados".

Adicionalmente, diversas estruturas de dados so requeridas como parte da implementao do sistema fsico, incluindo: Arquivos de dados, que armazenam o banco de dados propriamente dito. Dicionrio de dados, que armazena metadados sobre a estrutura do banco de dados. O dicionrio de dados usado com freqncia. Assim, deve-se dar grande nfase no Pg. 19 de 21

INTRODUO A BANCO DE DADOS desenvolvimento de um bom projeto e implementao eficiente do dicionrio. ndices, que fornecem acesso rpido aos itens de dados guardando determinados valores.

Figura 8. Diagrama simplificado da arquitetura de um SGBD.

Pg. 20 de 21

INTRODUO A BANCO DE DADOS

Figura 9. Diagrama detalhado da arquitetura de um SGBD.

Questes
1. Descreva as funes principais de um administrador de banco de dados? 2. Descreva os componentes funcionais de um SGBD. Pg. 21 de 21