Vous êtes sur la page 1sur 19

CONCEITOS DE BANCOS DE DADOS

Ol, Neste captulo voc ter um primeiro contato com a disciplina Banco de Dados. A proposta de apresentar conceitos importantes que serviro de base para o restante do curso. Bom estudo! Profa. Claudinete Vicente Borges

1.1

Definio

Um banco de dados, tambm conhecido como base de dados, um conjunto de arquivos estruturados de forma a facilitar o acesso a conjuntos de dados. Esses arquivos encontram-se, de alguma forma, relacionados. Por exemplo, em um banco de dados de funcionrios de uma empresa podemos encontrar alguns arquivos, tais como: dados pessoais (nome, endereo, dados de documentos, lotao), dados funcionais (cargo, data de admisso, etc.) e dados para pagamento (salrio base, faixas, etc.). Para obter informaes sobre um dado funcionrio, como nome, cargo e salrio, ser necessrio consultar os trs arquivos, que devem estar relacionados. Segundo Heuser, um banco de dados um conjunto de dados integrados, cujo objetivo atender uma comunidade de usurios [HEUSER, 2004]. Com o crescimento do volume e dos tipos de dados nas organizaes, preciso utilizar softwares especiais para gerenci-los, os chamados SGBDs (Sistemas Gerenciadores de Banco de Dados). Um SGBD um software de carter geral para a manipulao eficiente de grandes colees de informaes estruturadas e armazenadas de uma forma consistente e integrada. Tais sistemas incluem mdulos para consulta, atualizao e as interfaces entre o sistema e o usurio. Podemos afirmar, ento, que um SGBD constitudo por um conjunto de dados associados a um conjunto de programas para acesso a estes dados [SILBERSCHATZ, 2006]. A figura 1 abaixo representa este conceito de forma grfica.

10

Captulo 1

conjunto de programas

arquivos interrelacionados

Figura 1 - Ilustrao do conceito de um SGBD.

Um banco de dados um conjunto de dados integrados, cujo objetivo atender uma comunidade de usurios [ HEUSER, 2004]. Um SGBD um software de carter geral, usado para manipulao eficiente de grandes colees de informaes estruturadas e armazenadas de uma forma consistente e integrada [SILBERSCHATZ, 2006]. SGBD = Conjunto de programas + Conjunto de dados.

1.2

Objetivos

Dentre os principais objetivos do uso de Sistemas Gerenciadores de Bancos de Dados, destacam-se: Disponibilizar dados integrados para uma grande variedade de usurios e aplicaes por meio de interfaces amigveis; garantir a privacidade dos dados por meio de medidas de segurana dentro do sistema (como vises, permisses, senhas de acesso); permitir compartilhamento dos dados de forma organizada, mediando a comunicao entre aplicaes e banco de dados e administrando acessos concorrentes; possibilitar independncia dos dados, poupando ao usurio a necessidade de conhecer detalhes de implementao interna, organizao de arquivos e estruturas de armazenamento.

Tecnologia em Anlise e Desenvolvimento de Sistemas

Conceitos de Bancos de Dados

11

1.3

Sistemas de arquivos convencionais

Os sistemas de processamento de arquivos caracterizam-se por uma srie de registros guardados em diversos arquivos e uma srie de programas aplicativos para extrair e adicionar registros nos arquivos apropriados. Podemos citar como desvantagens desse sistema (arquivos), em relao aos SGBDs [SILBERSCHATZ,2006]:
Redundncia e inconsistncia de dados: considerando que diferentes

programadores tm a possibilidade de criar arquivos com estruturas diferentes e aplicaes para acess-los, a possibilidade de se redundar dados por esses arquivos muito grande. Alm disso, em funo dessa redundncia, podero ocorrer as inconsistncias, considerando que os dados podero ser atualizados em alguns arquivos e em outros no;
Dificuldade no acesso aos dados: diferentemente dos SGBDs, os siste-

mas de arquivos no possuem um ambiente para recuperao dos dados armazenados. Com isso, para cada informao a ser gerada, necessrio construir uma aplicao;
Isolamento de dados: considerando a diversidade de formatos existentes

dos arquivos e, consequentemente, dos dados armazenados neles, torna-se uma tarefa difcil a construo de aplicaes para a recuperao desses dados;
Problemas de atomicidade: o conceito de atomicidade est altamente

relacionado ao de tomo, que se caracteriza como algo indivisvel. Quando se fala em atomicidade em banco de dados, fala-se de uma unidade de trabalho que se deve executar totalmente ou que no se deve executar. Um exemplo clssico de atomicidade seria uma transferncia de dinheiro entre duas contas, A e B. Se desejarmos transferir, por exemplo, R$ 100,00 da conta A para a Conta B, ou este valor ser transferido integralmente ou no ocorrer a transferncia. No cabvel que o dinheiro saia da conta A e no entre na conta B, por exemplo!
Anomalias de acesso concorrente: considerando o acesso simultneo aos

arquivos, por diferentes aplicaes ou por diferentes usurios de uma mesma aplicao, pode-se gerar inconsistncias nesses arquivos devido a esses acessos. Tomemos como exemplo que uma conta conjunta A - com saldo igual a R$ 1000,00 - foi acessada de forma simultnea pelos correntistas Gabriel e Luiza. Gabriel sacou R$100,00 e Luiza, R$200,00. Pergunta-se: qual o saldo da conta aps os saques? Se ambos leram o valor do saldo igual a R$1000,00, podemos ter como possveis valores : R$900,00, R$800,00, levando-se em conta qual valor foi esBanco de Dados I

12

Captulo 1

crito por ltimo. Nesse caso, nenhum dos dois valores so os corretos. O correto seria ter um saldo igual a R$700,00.
Problemas de segurana:. nem todos os usurios possuem perfil para

acessar todos os dados disponveis em um arquivo. Tomemos como exemplo um arquivo de funcionrios, que possui, entre outros dados, o valor do salrio do funcionrio. Embora tenhamos a curiosidade de saber o salrio dos nossos colegas, principalmente do nosso chefe, no politicamente correto que desrespeitemos seu direito privacidade. No entanto, no possivel definir, para um arquivo, que alguns campos podero ser visveis por um usurio e por outros no, o que gera vulnerabilidade nesses sistemas;
Problemas de integridade: para explicar melhor esse item, tomemos

como exemplo dois arquivos, um de scios e outro de dependentes, de uma locadora de vdeo. Um dependente est relacionado a um scio e, por consequncia, a existncia daquele depende da existncia deste, ao qual estar subordinado. Desse modo, a excluso de um scio acarreta a excluso de seus dependentes. Esse tipo de integridade denomina-se de integridade referencial, porm, existem outras mais simples que os arquivos no comportam.

Considerando que as caractersticas descritas no so includas nos arquivos convencionais, elas devem ser includas nas aplicaes. Imagine a complexidade das aplicaes escritas para implement-las! Os Sistemas de Bancos de Dados de mdio e grande porte existentes no mercado implementam esses conceitos com muita robustez.

Voc deve estar pensando: ser que existem vantagens em usar os sistemas de arquivos? O custo mais baixo pode ser considerado uma vantagem.

1.4

Usurios de banco de dados

Basicamente so quatro os tipos de usurios de sistemas de bancos de dados: Usurios leigos: interagem com o banco de dados por meio das interfaces de aplicaes escritas por programadores de aplicaes;
Tecnologia em Anlise e Desenvolvimento de Sistemas

Conceitos de Bancos de Dados

13

Usurios avanados: interagem com os bancos de dados por meio de interfaces disponveis nesse ambiente. Escrevem consultas SQL e as submetem execuo sem a necessidade de escrever uma aplicao para esse fim; Programadores aplicaes: usurios com formao em computao e que se propem a construir aplicaes, por meio de ferramentas (compiladores) destinadas para esse fim. Utilizando essas ferramentas, constroem interfaces para as aplicaes, incluindo formulrios e relatrios, acessando bancos de dados; Administrador de Banco de Dados (DBA): usurios mais especializados para um banco de dados. Cabe a eles a administrao dessas bases, definio da melhor estrutura de armazenamento desses dados, definio de aspectos de segurana, programao de cpias de segurana (backups), dentre outros.

O DBA pode ser comparado com um profissional da rea mdica. Se for responsvel por sistemas que requerem alta disponibilidade, deve ficar de planto 24 h por dia.

1.5 Abstrao de dados


Considerando que o nvel de conhecimento dos usurios de bancos de dados muito varivel, oscilando entre aqueles que conhecem muito e outros que so leigos, os Sistemas de Bancos de Dados devem prover de mecanismos que administrem essa complexidade, simplificando as interaes dos usurios com o sistema. Para isso, trs nveis de abstrao so considerados: Nvel de Viso: diz respeito forma como os dados so vistos pelos usurios (individualmente). Diferentes usurios podero ter diferentes vises de um mesmo banco de dados. Um determinado usurio, tanto pode ser um programador de aplicaes quanto um usurio final. O DBA um caso especialmente importante. Ao contrrio dos usurios comuns, o DBA ter de se interessar pelos nveis lgico e fsico. Lgico: o nvel lgico descreve quais dados esto armazenados no banco de dados e qual a relao existente entre eles. Podemos dizer que a viso lgica a viso dos dados como realmente so e no como os usurios so forados a v-los devido s restries de linguagem ou hardware.
Banco de Dados I

14

Captulo 1

Fsico: diz respeito forma como os dados esto armazenados fisicamente. Preocupa-se em descrever as estruturas de dados complexas de baixo nvel.

Os SGBDs possibilitam aos usurios uma viso abstrata dos dados, ou seja, os usurios no precisam saber como os dados so armazenados e mantidos para us-los. A figura 2 representa graficamente os nveis listados acima.

Viso 1

Viso 2

---

Viso n

Nvel Lgico

Nvel Fsico

Figura 2 - Nveis de abstrao de dados Fonte: Silberschatz, Korth e Sudarshan, 2006. Adaptao.

1.6

Independncia de dados

A independncia de dados pode ser definida como a imunidade das aplicaes s alteraes feitas, seja no nvel fsico ou no nvel lgico de um banco de dados. O objetivo alcanar o mximo de independncia possvel. Pode ser classificada em: Independncia Fsica de dados: 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: habilidade de 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.

Tecnologia em Anlise e Desenvolvimento de Sistemas

Conceitos de Bancos de Dados

15

Normalmente, modificaes no nvel fsico visam melhoria de desempenho, como a criao de ndices!

Qual abordagem mais fcil de ser alcanada: independncia fsica ou lgica de dados? Normalmente, a independncia fsica de dados mais fcil de ser alcanada do que a lgica. Ao criar um ndice, como em uma tabela, as aplicaes que referenciam essa tabela devem continuar funcionando, a despeito da alterao feita!

1.7

Arquitetura de sistemas de banco de dados

A arquitetura de um sistema de banco de dados est altamente relacionada s caractersticas do sistema operacional sobre o qual o SGBD ser executado [SILBERSCHATZ, 2006]. 1.7.1 Sistemas centralizados

Os sistemas centralizados so os executados sobre um nico sistema operacional, no interagindo com outros sistemas. Eles podem ter a envergadura de um sistema de banco de dados de um s usurio, executado em um computador pessoal ou em sistemas de alto desempenho, denominados de grande porte. 1.7.2 Sistemas cliente-servidor Como os computadores pessoais tm se tornado mais rpidos, mais potentes e baratos, h uma tendncia de ampliar o seu uso nos sistemas centralizados, por isso terminais conectados a sistemas centralizados esto sendo substitudos por computadores pessoais. Como resultado, os sistemas centralizados atualmente agem como sistemas servidores que atendem a solicitaes de sistemas-cliente. A computao cliente-servidor um processamento cooperativo de informaes de negcio por um conjunto de processadores, no qual mltiplos clientes iniciam requisies que so realizadas por um ou mais servidores centrais. O termo cliente-servidor usado para descrever software que executado em mais de um hardware de modo a realizar uma tarefa do negcio. A separao de hardware a norma em aplicaes cliente-servidor, embora algumas pessoas utilizem o termo para descrever diferentes
Banco de Dados I

16

Captulo 1

componentes de software se comunicando uns com os outros, ainda que rodando em uma mesma mquina. A distncia entre processadores remotos varia desde computadores localizados na mesma sala ou prdio, at aqueles localizados em diferentes prdios, cidades ou mesmo espalhados pelo planeta. Nessa arquitetura, as funcionalidades de um banco de dados podem ser superficialmente divididas em duas categorias: front-end e back-end. O back-end gerencia as estruturas de acesso, o desenvolvimento e a otimizao de consultas, o controle de concorrncia e a recuperao. O frontend consiste em ferramentas como formulrios, gerador de relatrios e recursos de interface grfica. A interface entre o front-end e o back-end feita por meio de SQL ou de um programa de aplicao. 1.7.3 Sistemas paralelos Sistemas paralelos imprimem velocidade ao processamento e CPU, por meio do uso em paralelo de CPUs e discos. No processamento paralelo muitas operaes so realizadas ao mesmo tempo, ao contrrio do processamento serial, no qual os passos do processamento so sucessivos. Um equipamento paralelo de granulaogrossa consiste em poucos e poderosos processadores (a maioria dos servidores atuais), enquanto um paralelismo intensivo ou de granulao fina usa milhares de pequenos processadores, com capacidade menor de processamento. Computadores paralelos com centenas de processadores j esto disponveis comercialmente. As duas principais formas de avaliar o desempenho de um sistema de banco de dados so pelo throughput e pelo tempo de resposta. O primeiro diz respeito ao nmero de tarefas que podem ser executadas em um dado intervalo de tempo. Um sistema que processa um grande nmero de pequenas transaes pode aumentar o throughput por meio do processamento de diversas transaes em paralelo. J o tempo de resposta diz respeito ao tempo total que o sistema pode levar para executar uma nica tarefa. Um sistema que processa um grande volume de transaes pode reduzir o tempo de resposta por meio de processamento em paralelo. 1.7.4 Sistemas distribudos Em um sistema distribudo, o banco de dados armazenado, geograficamente, em diversos computadores denominados sites. Os computadores de um sistema de banco de dados distribudos comunicam-se com outros por intermdio de vrios meios de comunicao, como redes de alta velocidade ou linhas telefnicas.
Tecnologia em Anlise e Desenvolvimento de Sistemas

Conceitos de Bancos de Dados

17

As principais diferenas entre os bancos de dados paralelos e os bancos de dados distribudos so que, nos bancos de dados distribudos, h a distribuio fsica geogrfica, a administrao ocorre de forma separada e h uma intercomunicao menor. Outra grande diferena que nos sistemas distribudos distinguimos transaes locais (acessa um nico computador, em que a transao foi iniciada) e globais (envolve mais de um computador, sendo necessria a participao de um coordenador). H diversas razes para a utilizao de sistemas de bancos de dados distribudos, dentre as quais: compartilhamento dos dados (usurios de um local podem ter acesso a dados residentes em outros por exemplo: bancos), autonomia (cada local administra seus prprios dados) e disponibilidade (se porventura um SGBD sair do ar, os demais podem continuar em operao). H, no entanto, algumas desvantagens relacionadas ao seu uso, dentre as quais: custo de desenvolvimento de software, maior possibilidade de bugs e aumento do processamento e sobrecarga.

1.8

Modelos de bancos de dados

Os modelos de bancos de dados definem a forma como os dados encontram-se organizados internamente. Em ordem cronolgica, os modelos de banco de dados classificam-se em redes, hierrquicos, relacionais, objeto-relacionais e orientados a objetos. A seguir, h uma breve descrio sobre cada um desses modelos. 1.8.1 Modelo em rede Um banco de dados em rede consiste em uma coleo de registros que so concatenados uns aos outros por meio de ligaes. Um registro , em muitos aspectos, similar a uma entidade no modelo entidade-relacionamento. Uma ligao uma associao entre dois registros. Assim, uma ligao pode ser vista como um relacionamento binrio no modelo ER [SILBERSCHATZ, 2006]. Tanto o Modelo Rede como o Modelo Hierrquico podem ser considerados como estruturas de dados em nvel lgico mais prximo do nvel fsico. Devido a essa proximidade ao nvel fsico, as estruturas de dados rede e hierrquica exibem as rotas lgicas de acesso de dados de forma acentuada, possibilitando a localizao lgica de um determinado registro no banco de dados. O Modelo Relacional, quando comparado Estrutura Rede e Hierrquica, mais orientado para modelagem do que como modelo com rotas de
Banco de Dados I

18

Captulo 1

acesso, embora possamos considerar as diversas redundncias existentes em diversas tabelas como sendo uma forma de rota de acesso. O Modelo Rede utiliza como elemento bsico de dados a ocorrncia de registro. Um conjunto de ocorrncia de registro de um mesmo tipo determina um tipo de registro. Um conjunto de tipos de registros relacionados entre si, por meio de referncias especiais, forma uma estrutura de dados em rede. As referncias especiais so conhecidas como ligaes, que, por sua vez, podem ser implementadas sob a forma de ponteiros. As referncias esto normalmente inseridas junto com as ocorrncias de registro; assim, todo o acesso a um prximo registro utiliza o ponteiro inserido no registro corrente disponvel. Considere um banco de dados com registros de DEPARTAMENTO e EMPREGADO, em que EMPREGADO possui as seguintes caractersticas: matrcula, nome e cidade; e DEPARTAMENTO: cdigo e nome. A figura 3 mostra um exemplo do banco de dados, considerando os dois tipos de registros informados.

01 02 03

Informtica Geografia Portugus

100 101 102 103

Luiza

Vitria

Matheus Vila Velha Gabriel Serra Joana Aracruz

Figura 3 - Exemplo de Banco de Dados Modelo Redes.

O modelo de banco de dados da Figura 3 mostra as ligaes entre os registros de departamento e empregado. Luiza, por exemplo, est lotada no Departamento de Informtica, enquanto o Departamento de Geografia, por exemplo, possui dois funcionrios lotados, Matheus e Gabriel. 1.8.2 Modelo hierrquico Um banco de dados hierrquico consiste em uma coleo de registros relacionados, uns aos outros, por meio de ligaes, como no modelo em redes. A diferena entre eles se d pelo fato de o banco de dados hierrquico organizar esses registros como colees de rvores, em vez de grafos arbitrrios. Um banco de dados hierrquico compe-se de um conjunto ordenado
Tecnologia em Anlise e Desenvolvimento de Sistemas

Conceitos de Bancos de Dados

19

de rvores, mais precisamente, de um conjunto ordenado de ocorrncias mltiplas de um tipo nico de rvore. O tipo rvore compe-se de um nico tipo de registro raiz, juntamente com um conjunto ordenado de zero ou mais (nvel inferior) tipos de sub-rvores dependentes. Um tipo de subrvore, por sua vez, tambm se compe de um nico tipo de registro. A associao entre tipos de registros segue uma hierarquia estabelecida por diversos nveis. No primeiro nvel, o superior, situa-se o tipo de registro Raiz . Subordinado a ele, em nvel 2, uma srie de outros tipos de registros em nvel 2. A cada tipo de registro em nvel 2 subordina-se um outro conjunto de tipos de registros. A prpria estrutura hierrquica define as suas rotas de acesso, facilitando, portanto, a manuteno do banco de dados. importante notar que um determinado tipo de registro B, num determinado nvel K, possui ligao com um e somente um tipo de registro A, de nvel K-1 (superior). Nessas condies, A denominado registro PAI de B, que, por sua vez, registro FILHO de A . No entanto, um tipo de registro A pode estar ligado a diversos filhos no nvel de B. Todas as ocorrncias de um dado tipo de filho que compartilham uma ocorrncia de pai comum so chamadas de gmeas. Uma vantagem dos bancos de dados hierrquicos o tempo de resposta em consultas. No entanto, a atualizao pode ser bastante custosa. A figura 4 abaixo ilustra um exemplo do modelo Hierrquico.

01 01

Informtica Informtica 02 01 Informtica Geografia

03

Portugus

100

Luiza

Vitria 102 Gabriel Vila Velha 103 Serra

101

Matheus

Joana

Aracruz

Figura 4 - Exemplo de Banco de Dados Modelo Hierrquico.

1.8.3 Modelo relacional O modelo relacional, diferentemente dos modelos redes e hierrquico, usa um conjunto de tabelas para representar tanto os dados quanto a relao entre eles. As ligaes entre as tabelas feita por meio dos valores dos atributos ou colunas, conforme descrito posteriormente. Cada tabela possui mltiplas colunas e pode possuir mltiplas linhas. As tabelas 1 e 2 abaixo mostram exemplos de Tabelas do modelo relacional.
Banco de Dados I

20

Captulo 1

Tabela 1 - Tabela EMPREGADOS Matricula 01 02 03 04 Nome Maria Matheus Gabriel Joana Cidade Vitria Vila Velha Serra Aracruz CodDepto 01 02 02 03

Tabela 2 - Tabela DEPARTAMENTOS CodDepto 01 02 03 NomeDepto Informtica Geografia Portugus

1.8.4 Modelo objeto-relacional O modelo objeto-relacional, tambm conhecido como relacional estendido, um modelo intermedirio entre o relacional e o orientado a objetos. Na verdade, os bancos de dados que se enquadram nesse modelo caracterizam-se por usar a estrutura bsica do modelo relacional, incorporando algumas caractersticas dos bancos de dados orientados a objetos. Estas caractersticas incluem : herana de tipos e tabelas e definio de novos tipos complexos. A SQL-99 inclui recursos para dar suporte a esse modelo de banco de dados. 1.8.5 Modelo Orientado a Objeto O modelo relacional, hierrquico e redes foram muito bem sucedidos no desenvolvimento da tecnologia de banco de dados necessria para a maioria das aplicaes convencionais de bancos de dados comerciais, possuindo, entretanto, algumas limitaes quando aplicaes mais complexas precisam ser projetadas e implementadas, tais como sistemas de informaes geogrficas e multimdias. Essas aplicaes tm requisitos e caractersticas que as diferenciam das tradicionais aplicaes comerciais, tais como estruturas complexas para objetos, armazenamento de imagens e textos longos, dentre outras, alm da necessidade de definir operaes no convencionais [NAVATHE, 2005]. A abordagem orientada a objetos oferece a flexibilidade para lidar com alguns desses requisitos, sem estar limitada pelos tipos de dados e linguagens de consulta disponveis em sistemas de banco de dados tradicionais. Nesses bancos, o projetista especifica a estrutura de objetos complexos bem como as operaes que incidem sobre esses objetos.
Tecnologia em Anlise e Desenvolvimento de Sistemas

Conceitos de Bancos de Dados

21

Outra razo para o uso de banco de dados orientados a objetos a predominncia das linguagens orientadas a objetos. No caso de uma aplicao orientada a objetos utilizar um banco de dados relacional para persistir os dados, necessrio fazer um mapeamento entre esses dois mundos, o que d trabalho, considerando as limitaes impostas pelo modelo relacional. Embora existam muitos benefcios para a adoo do modelo orientado a objetos, esses bancos de dados no foram muito bem aceitos no mercado em funo da simplicidade do modelo relacional. Com isso, h uma proposta de um modelo hbrido, denominado objeto-relacional ou relacional estendido, que se prope a implementar alguns conceitos de orientao a objetos sobre a estrutura de um banco de dados relacional. Alguns SGBDs proprietrios e livres disponveis no mercado enquadram-se nesse modelo, a exemplo do Oracle e do PostgreSQL.

1.9

Estrutura geral do sistema

O sistema de banco de dados dividido em mdulos especficos, de modo a atender a todas as suas funes, algumas delas fornecidas pelo sistema operacional. Esses mdulos podem ser organizados em dois grandes grupos: o de processamentos de consultas e o de administrao do armazenamento de dados. A Figura 5 mostra como esses componentes se relacionam. 1.9.1 Componentes de processamentos de consultas Compilador DML: traduz comandos DML da linguagem de consulta em instrues de baixo nvel, inteligveis ao componente de execuo de consultas. Interpretador DDL: interpreta os comandos DDL e registra-os em um conjunto de tabelas que contm metadados, ou seja, dados sobre dados. Componentes para o tratamento de consultas: executam instrues de baixo nvel geradas pelo compilador DML. 1.9.2 Componentes para administrao do armazenamento de dados Gerenciamento de autorizaes e integridade: testa o cumprimento das regras de integridade e a permisso ao usurio no acesso aos dados. Gerenciamento de transaes: garante que o banco de dados permanecer em estado consistente, a despeito de falhas no sistema, e que
Banco de Dados I

22

Captulo 1

as transaes concorrentes sero executadas sem conflitos em seus procedimentos. Gerenciador de arquivos: gerencia a alocao de espao no armazenamento em disco e as estruturas de dados usadas para representar essas informaes armazenadas em disco. Gerenciador de buffer: intermedia os dados entre o disco e a memria principal e decide quais dados colocar em cach. 1.9.3 Outras estruturas de dados Diversas outras estruturas de dados so requeridas como parte da implementao do sistema fsico, incluindo: Arquivo de Dados: armazena o banco de dados. Dicionrio de Dados: armazena informaes sobre os dados do banco de dados. ndices: permite o acesso mais rpido aos dados. Estatsticas: armazenam informaes sobre o banco de dados e so usadas pelo seletor de estratgias.

Tecnologia em Anlise e Desenvolvimento de Sistemas

Conceitos de Bancos de Dados


Usurios Leigos (caixas, agentes, usurios da Web) usa Interfaces de aplicao Usurios avanados (analistas) usa Ferramenta de consulta

23

Programadores de aplicao escreve Programas de aplicao

Administrador de banco de adados usa Ferramentas de Administrao

Compitaldor e linkeditor

Consultas de DML

Interpretador de DDL

Cdigo de objetos do programa de aplicao

Compilador e organizador de DML

Mecanismo de avaliao de consulta

Processador de consulta

Gerenciador de buffer

Gerenciador de arquivos

Gerenciador de autorizao e integridade

Gerenciador de transao

Gerenciador de armazenamento

Dados

Indices

Dicionrio de dados

Armazenamento de disco

Dados estatsitcos

Figura 5 - Estrutura Geral do Sistema Fonte: Silberschatz, Korth e Sudarshan, 2006. Adaptao.

1.10 Linguagem de definio de dados (DDL)


Contm a especificao dos esquemas dos bancos de dados. O resultado da compilao de uma consulta de definio de dados (DDL) armazenado em um conjunto de tabelas que constituem um arquivo especial chamado dicionrio de dados. Um dicionrio de dados um arquivo de metadados.

Principais comandos SQL-DDL: CREATE TABLE; ALTER TABLE; DROP TABLE; CREATE INDEX; ALTER INDEX; DROP INDEX;
Banco de Dados I

24

Captulo 1

1.11

Linguagem de manipulao de dados (DML)

A linguagem de manipulao de dados (DML) a linguagem que viabiliza o acesso aos dados ou a sua manipulao de forma compatvel com o modelo de dados apropriado. So responsveis pela: recuperao da informao armazenada no banco de dados (SELECT); insero de novos dados nos bancos de dados (INSERT); eliminao de dados nos bancos de dados (DELETE); modificao de dados armazenados no banco de dados (UPDATE). Os comandos DDL so responsveis por definir as estruturas dos dados, enquanto os comandos DML so responsveis por manipular os dados armazenados nessas estruturas!

1.12 Projetando bancos de dados


Antes de criarmos o banco de dados propriamente dito, devemos identificar uma forma de planej-lo. Esse planejamento extremamente importante para a estabilidade de todo o sistema. Estudos indicam que quanto maior o tempo gasto no projeto do banco de dados, menor ser o tempo despendido na manuteno do modelo. Podemos comparar a criao de um sistema de banco de dados com a construo de uma casa. Imagine que seja construda uma casa sem que antes tenha sido feito um projeto de arquitetura, incluindo plantas baixas, cortes e fachadas. Provavelmente, no futuro, ao submeter essa casa manuteno, o proprietrio teria o inconveniente de construir quartos do lado da cozinha ou mesmo ter que fazer puxadinhas para realizar a ampliao da mesma. O mesmo acontece com sistemas mal-projetados ou no-projetados. Eles tornam-se pouco flexveis a manutenes futuras, quando for necessrio agregar novas informaes, ou mesmo quando submetidos a correes. O processo de projetar um banco de dados inclui trs fases distintas e integradas. A primeira delas consiste na construo de um modelo conceitual. O Modelo Conceitual inclui caractersticas a serem includas no sistema, mas que independem da tecnologia a ser utilizada, tanto de banco de dados quanto de linguagem de programao. A segunda fase pressupe a construo de um modelo lgico, tendo como base o ModeTecnologia em Anlise e Desenvolvimento de Sistemas

Conceitos de Bancos de Dados

25

lo Conceitual criado e inclui a definio de tabelas, campos, restries de integridade, etc. Neste modelo, considera-se a tecnologia do banco de dados a ser usado, como: relacional, orientado a objetos, etc. A terceira fase, que extrapola a fase de projeto, consiste na criao fsica do banco de dados, tendo a preocupao com estruturas de armazenamento e recuperao dos dados a serem armazenados. Nos captulos que se seguem sero explorados a modelagem conceitual e o projeto lgico de banco de dados, considerando o modelo relacional.

ATIVIDADE 1 Faa os exerccios de fixao abaixo, referentes ao capitulo 1. 1) Defina SGBDs. 2) Cite duas desvantagens do uso de sistemas de arquivos em relao a SGBDs. 3) Defina uma vantagem de se usar sistemas de arquivos em relao a SGBD. 4) Cite as quatro arquiteturas de banco de dados existentes no mercado. Descreva, em poucas linhas, as caractersticas de cada uma delas. 5) Quais so os nveis de abstrao proporcionados por um SGBD? Enquadre, para cada grupo de usurio abaixo listados, o nvel em que o mesmo se encontra. a. Administrador de Banco de Dados b. Usurio de aplicaes c. Programador e Analista de Aplicaes 6) Liste, em ordem cronolgica, os modelos de bancos de dados existentes no mercado. Qual modelo de banco de dados ser utilizado em nossa disciplina?

Banco de Dados I

26

Captulo 1

ATIVIDADE 2 1) Dadas as relaes abaixo, responda ao que se pede. Funcionrios matricula 01 02 03 04 05 06 Cargos codigo 01 02 03 04 05 nomeCargo Programador Topgrafo Engenheiro Pedreiro Motorista nome Ana Maria Jos Pedro Joana Joo CPF 123 234 245 125 435 467 cargo 2 1 3 1 2 1

Liste os nomes dos funcionrios para os seguintes cargos: Topgrafo; Engenheiro; Programador. Para quais cargos no h funcionrios lotados? 2) Informe se cada uma das consultas abaixo ser executada pelo Compilador DML ou pelo Interpretador DDL. a) create table... b) create view... c) insert into tabela... d) alter table... e) delete from tabela... f) update tabela set campo 1 = valor 1, campo2 = valor2...

Tecnologia em Anlise e Desenvolvimento de Sistemas

Conceitos de Bancos de Dados

27

ATIVIDADE 3 1) Numere a segunda coluna de acordo com a primeira. 1. Possibilidade de erros de acesso concorrente 2. Abstrao de dados ( ) Refere-se preciso ou validade dos dados. ( ) Tarefa de um SGBD. ( ) Se alterar o esquema 3. Integridade conceitual, no necessrio reescrever aplicaes. ( ) Responsvel pela modi4. Instncia ficao de dados armazenados no banco de dados. ( ) Se alterar o esquema fsi5. Independncia lgica co, no necessrio reescrever de dados aplicaes. 6. Independncia fsica ( ) Contm a especificao de dados dos esquemas de banco. ( ) Conjunto de informaes contidas em determinado 7. Controle de concorrncia banco de dados, em um determinado momento. 8. Linguagem de Definio de ( ) Trata-se de um modelo de Dados (DDL) banco de dados. ( ) Os usurios no precisam 9. Linguagem de Manipulao saber como os dados so armade Dados (DML) zenados e mantidos. ( ) Desvantagem de sistemas 10. Objeto-Relacional de arquivos.

O objetivo deste captulo foi de introduzir conceitos de bancos de dados. So conceitos importantes que serviro de base para entendimento dos conceitos explorados nos captulos subseqentes.

Banco de Dados I

Vous aimerez peut-être aussi