Академический Документы
Профессиональный Документы
Культура Документы
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.
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.
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.
Pg. 2 de 21
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.
Pg. 3 de 21
Pg. 4 de 21
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
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.
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
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
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
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
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).
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
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
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
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
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.
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.
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.
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.
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.
Pg. 20 de 21
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