CONCEITOS DE BANCOS DE DADOS
Olá, Neste capítulo você terá um primeiro contato com a disciplina Banco de Dados. A proposta é de apresentar conceitos importantes que servirão de base para o restante do curso. Bom estudo! Prof a. Claudinete Vicente Borges
1.1
Definição
Um banco de dados, também conhecido como base de dados, dad os, é um con junto de arquivos arquivos estruturados estruturados de orma orma a acilitar o acesso a conjun conjuntos tos de dados. Esses arquivos encontram-se, de alguma orma, relacionados. Por exemplo, em um banco de dados de uncionários de uma empresa podemos encontrar alguns arquivos, tais como: dados pessoais (nome, endereço, dados de documentos, lotação), dados uncionais (cargo, data de admissão, etc.) e dados para pagamento (salário base, aixas, etc.). Para obter inormações sobre um dado uncionário, como nome, cargo e salário, será necessário consultar os três arquivos, que devem estar relacionados. Segundo Heuser, um banco de dados é um conjunto de dados integrados, cujo objetivo é atender uma comunidade de usuários [HEUSER, 2004].
Com o crescimento do volume e dos tipos de dados nas organizações, é preciso utilizar softwares especiais para gerenciá-los, os chamados SGBDs (Sistemas Gerenciadores de Banco de Dados). Um SGBD é um software de caráter geral para a manipulação eciente de grandes
coleções de informações estruturadas e armazenadas de uma forma consistente e integrada. Tais sistemas incluem módulos para consulta, atualização e as interfaces interfac es entre o sistema e o usuário. Podemos armar,
então, que um SGBD é constituído por um conjunto de dados associados a um conjunto de programas para acesso a estes dados [SILBERSCHATZ, 2006]. A gura 1 abaixo representa este conceito de forma gráca.
10 Capítulo 1
conjunto de programas
arquivos interrelacionados
Figura 1 - Ilustração do conceito de um SGBD.
Um banco de dados é um conjunto de dados integrados, cujo ob jetivo é atender uma comunidade de usuários [ HEUSER, 2004]. Um SGBD é um sotware de caráter geral, usado para manipulação eiciente de grandes coleções de inormações estruturadas e armazenadas de uma orma 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 usuários e aplicações por meio de interaces amigáveis; garantir a privacidade dos dados por meio de medidas de segurança dentro do sistema (como visões, permissões, senhas de acesso); permitir compartilhamento dos dados de orma organizada, mediando a comunicação entre aplicações e banco de dados e administrando acessos concorrentes; possibilitar independência dos dados, poupando ao usuário a necessidade de conhecer detalhes de implementação interna, organização de arquivos e estruturas de armazenamento.
Tecnologia em Análise e Desenvolvimento de Sistemas
11 Conceitos de Bancos de Dados
1.3
Sistemas de arquivos convencionais
Os sistemas de processamento de arquivos caracterizam-se por uma série de registros guardados em diversos arquivos e uma série de programas aplicativos para extrair e adicionar registros nos arquivos apropriados.
Podemos citar como desvantagens desse sistema (arquivos), em relação aos SGBD’s [SILBERSCHATZ,2006]: Redundância e inconsistência de dados: considerando que diferentes programadores têm a possibilidade de criar arquivos com estruturas diferentes e aplicações para acessá-los, a possibilidade de se redundar
dados por esses arquivos é muito grande. Além disso, em função dessa redundância, poderão ocorrer as inconsistências, considerando que os dados poderão ser atualizados em alguns arquivos e em outros não; Difculdade no acesso aos dados:
diferentemente dos SGBDs, os siste-
mas de arquivos não possuem um ambiente para recuperação dos dados
armazenados. Com isso, para cada informação a ser gerada, é necessário construir uma aplicação; Isolamento de dados: considerando a diversidade de formatos existentes
dos arquivos e, consequentemente, dos dados armazenados neles, torna-se uma tarefa difícil a construção de aplicações para a recuperação desses dados; o conceito de atomicidade está altamente relacionado ao de “átomo”, que se caracteriza como algo indivisível. Problemas de atomicidade:
Quando se fala em atomicidade em banco de dados, fala-se de uma unidade de trabalho que se deve executar totalmente ou que não se deve executar. Um exemplo clássico de atomicidade seria uma transferên-
cia 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 não ocorrerá a transferência. Não é cabível que o dinheiro saia da conta A e não entre na conta B, por exemplo! Anomalias de acesso concorrente: considerando o acesso simultâneo aos
arquivos, por diferentes aplicações ou por diferentes usuários de uma mesma aplicação, pode-se gerar inconsistências 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 simultânea pelos correntistas Gabriel e Luiza. Gabriel sacou R$100,00 e Luiza, R$200,00. Pergunta-se: qual o saldo da conta após os saques? Se ambos leram o valor do saldo igual a R$1000,00, podemos ter como possíveis valores : R$900,00, R$800,00, levando-se em conta qual valor foi esBanco de Dados I
12 Capítulo 1
crito por último. Nesse caso, nenhum dos dois valores são os corretos. O correto seria ter um saldo igual a R$700,00. Problemas de segurança:. nem todos os usuários possuem perl para
acessar todos os dados disponíveis em um arquivo. Tomemos como exemplo um arquivo de funcionários, que possui, entre outros dados, o valor do salário do funcionário. Embora tenhamos a curiosidade de saber o salário dos nossos colegas, principalmente do nosso chefe, não
é politicamente correto que desrespeitemos seu direito à privacidade. No entanto, não é possivel denir, para um arquivo, que alguns campos
poderão ser visíveis por um usuário e por outros não, o que gera vulnerabilidade nesses sistemas; Problemas de integridade: para explicar melhor esse item, tomemos
como exemplo dois arquivos, um de sócios e outro de dependentes, de
uma locadora de vídeo. Um dependente está relacionado a um sócio e, por consequência, a existência daquele depende da existência deste, ao qual estará subordinado. Desse modo, a exclusão de um sócio acarreta a exclusão de seus dependentes. Esse tipo de integridade denomina-se de “integridade referencial”, porém, existem outras mais simples que os
arquivos não comportam.
Considerando que as características descritas não são incluídas nos arquivos convencionais, elas devem ser incluídas nas aplicações. Ima gine a complexidade das aplicações escritas para implementá-las! Os Sistemas de Bancos de Dados de médio 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
Usuários de banco de dados
Basicamente são quatro os tipos de usuários de sistemas de bancos
de dados: Usuários leigos : interagem com o banco de dados por meio das interfa-
ces de aplicações escritas por programadores de aplicações; Tecnologia em Análise e Desenvolvimento de Sistemas
13 Conceitos de Bancos de Dados
Usuários avançados: interagem com os bancos de dados por meio de interfaces disponíveis nesse ambiente. Escrevem consultas SQL e as submetem à execução sem a necessidade de escrever uma aplicação para esse m;
usuários com formação em computação e que se propõem a construir aplicações, por meio de ferramentas (com piladores) destinadas para esse m. Utilizando essas ferramentas, constroem interfaces para as aplicações, incluindo formulários e relatórios, Programadores aplicações:
acessando bancos de dados; Administrador de Banco de Dados (DBA): usuários mais especializados para um banco de dados. Cabe a eles a administração dessas bases, denição da melhor estrutura de armazenamento desses dados, denição de aspectos de segurança, programação de cópias de segurança (backup’s), dentre outros.
O DBA pode ser comparado com um profssional da área médica. Se or responsável por sistemas que requerem alta disponibilidade, deve fcar de plantão 24 h por dia.
1.5 Abstração de dados Considerando que o nível de conhecimento dos usuários de bancos de
dados é muito variável, oscilando entre aqueles que conhecem muito e outros que são leigos, os Sistemas de Bancos de Dados devem prover de mecanismos que administrem essa complexidade, simplicando as interações dos usuários com o sistema. Para isso, três níveis de abstra-
ção são considerados: diz respeito à forma como os dados são vistos pelos usuários (individualmente). Diferentes usuários poderão ter diferentes Nível de Visão:
visões de um mesmo banco de dados. Um determinado usuário, tanto pode ser um programador de aplicações quanto um usuário nal. O
DBA é um caso especialmente importante. Ao contrário dos usuários comuns, o DBA terá de se interessar pelos níveis lógico e físico. Lógico: o nível lógico descreve quais dados estão armazenados no banco de dados e qual a relação existente entre eles. Podemos dizer que a visão
lógica é a visão dos dados “como realmente são” e não como os usuários são forçados a vê-los devido às restrições de linguagem ou hardware. Banco de Dados I
14 Capítulo 1
Físico: diz respeito à forma como os dados estão armazenados sicamente. Preocupa-se em descrever as estruturas de dados complexas de baixo nível.
Os SGBD’s possibilitam aos usuários uma visão abstrata dos dados, ou seja, os usuários não precisam saber como os dados são armazenados e mantidos para usá-los.
A fgura 2 representa grafcamente os níveis listados acima.
Visão 1
Visão 2
---
Visão n
Nível Lógico
Nível Físico
Figura 2 - Níveis de abstração de dados Fonte: Silberschatz, Korth e Sudarshan, 2006. Adaptação.
1.6
Independência de dados
A independência de dados pode ser denida como a imunidade das apli-
cações às alterações feitas, seja no nível físico ou no nível lógico de um banco de dados. O objetivo é alcançar o máximo de independência possível. Pode ser classicada em: Independência Física de dados : habilidade de modicar o esquema
físico, sem a necessidade de reescrever os programas aplicativos. As modicações no nível físico são ocasionalmente necessárias para melhorar o desempenho. Independência Lógica de dados : habilidade de modicar o esquema
conceitual, sem a necessidade de reescrever os programas aplicativos. As modicações no nível conceitual são necessárias quando a estrutura lógica do banco de dados é alterada.
Tecnologia em Análise e Desenvolvimento de Sistemas
15 Conceitos de Bancos de Dados
Normalmente, modifcações no nível ísico visam à melhoria de desempenho, como a criação de índices!
Qual abordagem é mais ácil de ser alcançada: independência ísica ou lógica de dados? Normalmente, a independência ísica de dados é mais ácil de ser alcançada do que a lógica. Ao criar um índice, como em uma tabela, as aplicações que reerenciam essa tabela de vem continuar uncionando, a despeito da alteração eita!
1.7
Arquitetura de sistemas de banco de dados
A arquitetura de um sistema de banco de dados está altamente relacionada às características do sistema operacional sobre o qual o SGBD será executado [SILBERSCHATZ, 2006].
1.7.1
Sistemas centralizados
Os sistemas centralizados são os executados sobre um único sistema
operacional, não interagindo com outros sistemas. Eles podem ter a envergadura de um sistema de banco de dados de um só usuário, 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 têm se tornado mais rápidos, mais potentes e baratos, há uma tendência de ampliar o seu uso nos sistemas
centralizados, por isso terminais conectados a sistemas centralizados estão sendo substituídos por computadores pessoais. Como resultado,
os sistemas centralizados atualmente agem como sistemas servidores que atendem a solicitações de sistemas-cliente. A computação cliente-servidor é um processamento cooperativo de informações de negócio por um conjunto de processadores, no qual múltiplos clientes iniciam requisições que são realizadas por um ou mais servidores centrais. O termo cliente-servidor é usado para descrever software que é execu-
tado em mais de um hardware de modo a realizar uma tarefa do negócio. A separação de hardware é a norma em aplicações cliente-servidor, embora algumas pessoas utilizem o termo para descrever diferentes Banco de Dados I
16 Capítulo 1
componentes de software se comunicando uns com os outros, ainda que rodando em uma mesma máquina. A distância entre processadores remotos varia desde computadores localizados na mesma sala ou prédio, até aqueles localizados em diferentes prédios, cidades ou mesmo espalhados pelo planeta. Nessa arquitetura, as funcionalidades de um banco de dados podem ser supercialmente divididas em duas categorias: front-end e back-end . O back-end gerencia as estruturas de acesso, o desenvolvimento e a otimização de consultas, o controle de concorrência e a recuperação. O frontend consiste em ferramentas como formulários, gerador de relatórios e recursos de interface gráca. A interface entre o front-end e o back-end
é feita por meio de SQL ou de um programa de aplicação. 1.7.3 Sistemas paralelos
Sistemas paralelos imprimem velocidade ao processamento e à CPU, por meio do uso em paralelo de CPU’s e discos. No processamento paralelo muitas operações são realizadas ao mesmo tempo, ao contrário do processamento serial, no qual os passos do processamento são sucessivos. Um equipamento paralelo de granulaçãogrossa consiste em poucos e poderosos processadores (a maioria dos servidores atuais), enquanto um paralelismo intensivo ou de granulação na usa milhares de pequenos processadores, com capacidade menor de
processamento. Computadores paralelos com centenas de processadores já estão disponíveis comercialmente. As duas principais formas de avaliar o desempenho de um sistema de banco de dados são pelo throughput e pelo tempo de resposta. O primeiro diz respeito ao número de tarefas que podem ser executadas em um
dado intervalo de tempo. Um sistema que processa um grande número de pequenas transações pode aumentar o throughput por meio do processamento de diversas transações 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 transações pode reduzir o tempo de resposta por meio de processamento em paralelo. 1.7.4 Sistemas distribuídos Em um sistema distribuído, o banco de dados é armazenado, geogracamente, em diversos computadores denominados sites. Os computadores de um sistema de banco de dados distribuídos comunicam-se com
outros por intermédio de vários meios de comunicação, como redes de alta velocidade ou linhas telefônicas. Tecnologia em Análise e Desenvolvimento de Sistemas
17 Conceitos de Bancos de Dados
As principais diferenças entre os bancos de dados paralelos e os bancos de dados distribuídos são que, nos bancos de dados distribuídos, há a distribuição física geográca, a administração ocorre de forma separada
e há uma intercomunicação menor. Outra grande diferença é que nos sistemas distribuídos distinguimos transações locais (acessa um único computador, em que a transação foi iniciada) e globais (envolve mais de
um computador, sendo necessária a participação de um coordenador). Há diversas razões para a utilização de sistemas de bancos de dados distribuídos, dentre as quais: compartilhamento dos dados (usuários de um local podem ter acesso a dados residentes em outros – por exemplo: bancos), autonomia (cada local administra seus próprios dados) e disponibi-
lidade (se porventura um SGBD sair do ar, os demais podem continuar em operação). Há, no entanto, algumas desvantagens relacionadas ao seu uso, dentre as quais: custo de desenvolvimento de software, maior possi bilidade de bugs e aumento do processamento e sobrecarga.
1.8
Modelos de bancos de dados
Os modelos de bancos de dados denem a forma como os dados encon-
tram-se organizados internamente. Em ordem cronológica, os modelos de banco de dados classicam-se em redes, hierárquicos, relacionais, objeto-relacionais e orientados a objetos. A seguir, há uma breve descrição sobre cada um desses modelos.
1.8.1 Modelo em rede Um banco de dados em rede consiste em uma coleção de registros que
são concatenados uns aos outros por meio de ligações. Um registro é, em muitos aspectos, similar a uma entidade no modelo entidade-relacionamento. Uma ligação é uma associação entre dois registros. Assim, uma ligação pode ser vista como um relacionamento binário no modelo
ER [SILBERSCHATZ, 2006]. Tanto o Modelo Rede como o Modelo Hierárquico podem ser considerados como estruturas de dados em nível lógico mais próximo do nível físico. Devido a essa proximidade ao nível físico, as estruturas de dados rede e hierárquica exibem as rotas lógicas de acesso de dados de forma acentuada, possibilitando a localização lógica de um determinado registro no banco de dados.
O Modelo Relacional, quando comparado à Estrutura Rede e Hierárquica, é mais orientado para modelagem do que como modelo com rotas de Banco de Dados I
18 Capítulo 1
acesso, embora possamos considerar as diversas redundâncias existentes em diversas tabelas como sendo uma forma de rota de acesso. O Modelo Rede utiliza como elemento básico de dados a ocorrência
de registro. Um conjunto de ocorrência de registro de um mesmo tipo determina um tipo de registro. Um conjunto de tipos de registros relacionados entre si, por meio de referências especiais, forma uma estrutura de dados em rede. As referências especiais são conhecidas como ligações, que, por sua vez, podem ser implementadas sob a forma de ponteiros.
As referências estão normalmente inseridas junto com as ocorrências de registro; assim, todo o acesso a um próximo registro utiliza o ponteiro
inserido no registro corrente disponível. Considere um banco de dados com registros de DEPARTAMENTO e
EMPREGADO, em que EMPREGADO possui as seguintes características: matrícula, nome e cidade; e DEPARTAMENTO: código e nome. A gura 3 mostra um exemplo do banco de dados, considerando os dois
tipos de registros informados.
01
Informática
100
02
Geografia
101 102
03
Português
103
Luiza
Vitória
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 ligações entre os registros de departamento e empregado. Luiza, por exemplo, está lotada
no Departamento de Informática, enquanto o Departamento de Geograa, por exemplo, possui dois funcionários lotados, Matheus e Gabriel.
1.8.2 Modelo hierárquico Um banco de dados hierárquico consiste em uma coleção de registros
relacionados, uns aos outros, por meio de ligações, como no modelo em redes. A diferença entre eles se dá pelo fato de o banco de dados
hierárquico organizar esses registros como coleções de árvores, em vez de grafos arbitrários. Um banco de dados hierárquico compõe-se de um conjunto ordenado Tecnologia em Análise e Desenvolvimento de Sistemas
19 Conceitos de Bancos de Dados
de árvores, mais precisamente, de um conjunto ordenado de ocorrências múltiplas de um tipo único de árvore. O tipo árvore compõe-se de um único tipo de registro “raiz”, juntamente com um conjunto ordenado de zero ou mais (nível inferior) tipos de sub-árvores dependentes. Um tipo de subárvore, por sua vez, também
se compõe de um único tipo de registro. A associação entre tipos de registros segue uma hierarquia estabelecida por diversos níveis. No primeiro nível, o superior, situa-se o tipo de registro “Raiz” . Subordinado
a ele, em nível 2, uma série de outros tipos de registros em nível 2. A cada tipo de registro em nível 2 subordina-se um outro conjunto de ti pos de registros. A própria estrutura hierárquica dene as suas rotas de acesso, facilitando, portanto, a manutenção do banco de dados.
É importante notar que um determinado tipo de registro B, num determinado nível K, possui ligação com um e somente um tipo de registro A, de nível K-1 (superior). Nessas condições, 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 lhos no nível de B. Todas as ocorrências de um dado tipo de lho que compartilham uma ocorrência de pai comum são chamadas de gêmeas. Uma vantagem dos bancos de dados hierárquicos é o tempo de resposta em consultas. No entanto, a atualização pode ser bastante custosa. A gura 4 abaixo ilustra um exemplo do modelo Hierárquico.
01 01
03
I nf or má ti ca Informática 01 02
100
Luiza
I nf or má ti ca Geografia
Vitória 102
101
Português
Matheus
Gabriel Vila Velha 103
Serra
Joana
Aracruz
Figura 4 - Exemplo de Banco de Dados – Modelo Hierárquico.
1.8.3 Modelo relacional
O modelo relacional , diferentemente dos modelos redes e hierárquico , usa um conjunto de tabelas para representar tanto os dados quanto a relação entre eles. As ligações entre as tabelas é feita p or meio dos valores dos atributos ou colunas, conforme descrito posteriormente. Cada tabela possui múltiplas colunas e pode possuir múltiplas linhas. As tabelas 1 e 2 abaixo mostram exemplos de Tabelas do modelo relacional. Banco de Dados I
20 Capítulo 1
Tabela 1 - Tabela EMPREGADOS Matricula 01 02 03 04
Nome Maria Matheus Gabriel Joana
Cidade Vitória Vila Velha Serra Aracruz
CodDepto 01 02 02 03
Tabela 2 - Tabela DEPARTAMENTOS CodDepto 01 02 03
NomeDepto Inormática Geografa Português
1.8.4 Modelo objeto-relacional O modelo objeto-relacional, também conhecido como relacional es-
tendido, é um modelo intermediário 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 básica do modelo relacional, incorporando algumas características dos bancos de dados orientados a objetos. Estas características incluem : herança de tipos e tabelas e denição 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, hierárquico e redes foram muito bem sucedidos no desenvolvimento da tecnologia de banco de dados necessária para a maioria das aplicações convencionais de bancos de dados comerciais,
possuindo, entretanto, algumas limitações quando aplicações mais com plexas precisam ser projetadas e implementadas, tais como sistemas de informações geográcas e multimídias. Essas aplicações têm requisitos
e características que as diferenciam das tradicionais aplicações comerciais, tais como estruturas complexas para objetos, armazenamento de imagens e textos longos, dentre outras, além da necessidade de denir
operações não convencionais [NAVATHE, 2005]. A abordagem orientada a objetos oferece a exibilidade para lidar com
alguns desses requisitos, sem estar limitada pelos tipos de dados e linguagens de consulta disponíveis em sistemas de banco de dados tradicionais. Nesses bancos, o projetista especica a estrutura de objetos complexos bem como as operações que incidem sobre esses objetos. Tecnologia em Análise e Desenvolvimento de Sistemas
21 Conceitos de Bancos de Dados
Outra razão para o uso de banco de dados orientados a objetos é a predominância das linguagens orientadas a objetos. No caso de uma aplicação orientada a objetos utilizar um banco de dados relacional para persistir os
dados, é necessário fazer um mapeamento entre esses dois mundos, o que dá trabalho, considerando as limitações impostas pelo modelo relacional. Embora existam muitos benefícios para a adoção do modelo orientado a objetos, esses bancos de dados não foram muito bem aceitos no mer -
cado em função da simplicidade do modelo relacional. Com isso, há uma proposta de um modelo híbrido, denominado objeto-relacional ou
relacional estendido, que se propõe a implementar alguns conceitos de orientação a objetos sobre a estrutura de um banco de dados relacional.
Alguns SGBD´s proprietários e livres disponíveis 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 módulos especícos, de modo a
atender a todas as suas funções, algumas delas fornecidas pelo sistema operacional. Esses módulos podem ser organizados em dois grandes grupos: o de processamentos de consultas e o de administração 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 instruções de baixo nível, inteligíveis ao componente de execução de consultas. Interpretador DDL: interpreta os comandos DDL e registra-os em um conjunto de tabelas que contêm metadados, ou seja, “dados sobre dados”. Componentes para o tratamento de consultas : executam instruções de baixo nível geradas pelo compilador DML.
1.9.2 Componentes para administração do armazenamento de dados
testa o cumprimento das regras de integridade e a permissão ao usuário no acesso aos dados. Gerenciamento de autorizações e integridade:
Gerenciamento de transações : garante que o banco de dados perma-
necerá em estado consistente, a despeito de falhas no sistema, e que Banco de Dados I
22 Capítulo 1
as transações concorrentes serão executadas sem conitos em seus
procedimentos. Gerenciador de arquivos: gerencia a alocação de espaço no armazenamento em disco e as estruturas de dados usadas para representar essas informações armazenadas em disco. Gerenciador de buffer: intermedia os dados entre o disco e a memória principal e decide quais dados colocar em cachê. 1.9.3 Outras estruturas de dados
Diversas outras estruturas de dados são requeridas como parte da im plementação do sistema físico, incluindo: Arquivo de Dados: armazena o banco de dados. Dicionário de Dados : armazena informações sobre os dados do banco de dados. Índices: permite o acesso mais rápido aos dados. Estatísticas: armazenam informações sobre o banco de dados e são usadas pelo seletor de estratégias.
Tecnologia em Análise e Desenvolvimento de Sistemas
23 Conceitos de Bancos de Dados
Usuários Leigos (caixas, agentes, usuários da Web)
Usuários avançados (analistas)
Programadores de aplicação
usa
escreve
Interfaces de aplicação
Administrador de banco de adados
usa
usa
Programas de aplicação
Ferramenta de consulta
Ferramentas de Administração
Compitaldor e linkeditor
Consultas de DML
Interpretador de DDL
Código de objetos do programa de aplicação
Compilador e organizador de DML
Mecanismo de avaliação de consulta
Processador de consulta
Gerenciador de buffer
Gerenciador de arquivos
Gerenciador de autorização e integridade
Gerenciador de transação
Gerenciador de armazenamento
Dados
Indices
Dicionário de dados
Armazenamento de disco
Dados estatísitcos
Figura 5 - Estrutura Geral do Sistema Fonte: Silberschatz, Korth e Sudarshan, 2006. Adaptação.
1.10 Linguagem de definição de dados (DDL) Contém a especicação dos esquemas dos bancos de dados. O resultado da compilação de uma consulta de denição de dados (DDL) é armazenado em um conjunto de tabelas que constituem um arquivo especial chamado dicionário de dados . Um dicionário 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 Capítulo 1
1.11
Linguagem de manipulação de dados (DML)
A linguagem de manipulação de dados (DML) é a linguagem que viabi-
liza o acesso aos dados ou a sua manipulação de forma compatível com o modelo de dados apropriado. São responsáveis pela: •
•
•
•
recuperação da inormação armazenada no banco de dados (SELECT); inserção de novos dados nos bancos de dados (INSERT); eliminação de dados nos bancos de dados (DELETE); modifcação de dados armazenados no banco de dados (UPDATE).
Os comandos DDL são responsáveis por defnir as estruturas dos dados, enquanto os comandos DML são responsáveis por manipular os dados armazenados nessas estruturas!
1.12 Projetando bancos de dados Antes de criarmos o banco de dados propriamente dito, devemos identicar uma forma de planejá-lo. Esse planejamento é extremamente im portante 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 manutenção do modelo. Podemos comparar a criação de um sistema de banco de dados com a cons-
trução de uma casa. Imagine que seja construída 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 à manutenção,
o proprietário teria o inconveniente de construir quartos do lado da cozinha ou mesmo ter que fazer “puxadinhas” para realizar a ampliação da mesma.
O mesmo acontece com sistemas mal-projetados ou não-projetados. Eles tornam-se pouco exíveis a manutenções futuras, quando for necessário agregar novas informações, ou mesmo quando submetidos a correções. O processo de projetar um banco de dados inclui três fases distintas e
integradas. A primeira delas consiste na construção de um modelo conceitual. O Modelo Conceitual inclui características a serem incluídas no sistema, mas que independem da tecnologia a ser utilizada, tanto de banco de dados quanto de linguagem de programação. A segunda fase pressupõe a construção de um modelo lógico, tendo como base o ModeTecnologia em Análise e Desenvolvimento de Sistemas
25 Conceitos de Bancos de Dados
lo Conceitual criado e inclui a denição de tabelas, campos, restrições de integridade, etc. Neste modelo, considera-se a tecnologia do banco de dados a ser usado, como: relacional, orientado a objetos, etc. A ter ceira fase, que extrapola a fase de projeto, consiste na criação física do banco de dados, tendo a preocupação com estruturas de armazenamento
e recuperação dos dados a serem armazenados. Nos capítulos que se seguem serão explorados a modelagem conceitual e o projeto lógico de banco de dados, considerando o modelo relacional.
ATIVIDADE 1 Faça os exercícios de fxação abaixo, reerentes ao capitulo 1. 1) Defna SGBD´s. 2) Cite duas desvantagens do uso de sistemas de arquivos em relação a SGBD´s. 3) Deina uma vantagem de se usar sistemas de arquivos em relação a SGBD. 4) Cite as quatro arquiteturas de banco de dados existentes no mercado. Descreva, em poucas linhas, as características de cada uma delas. 5) Quais são os níveis de abstração proporcionados por um SGBD? Enquadre, para cada grupo de usuário abaixo listados, o nível em que o mesmo se encontra. a. Administrador de Banco de Dados b. Usuário de aplicações c. Programador e Analista de Aplicações 6) Liste, em ordem cronológica, 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 Capítulo 1
ATIVIDADE 2 1) Dadas as relações abaixo, responda ao que se pede. Funcionários matricula 01 02 03 04 05 06
nome Ana Maria José Pedro Joana João
CPF 123 234 245 125 435 467
cargo 2 1 3 1 2 1
Cargos codigo 01 02 03 04 05
nomeCargo Programador Topógrao Engenheiro Pedreiro Motorista
Liste os nomes dos uncionários para os seguintes cargos: Topógrao; Engenheiro; Programador. Para quais cargos não há uncionários lotados?
2) Inorme 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 rom tabela... ) update tabela set campo 1 = valor 1, campo2 = valor2...
Tecnologia em Análise e Desenvolvimento de Sistemas
27 Conceitos de Bancos de Dados
ATIVIDADE 3 1) Numere a segunda coluna de acordo com a primeira. 1. Possibilidade de erros de acesso concorrente 2. Abstração de dados
( ) Reere-se à precisão ou validade dos dados. ( ) Tarea de um SGBD. ( ) Se alterar o esquema 3. Integridade conceitual, não é necessário reescrever aplicações. ( ) Responsável pela modi4. Instância icação de dados armazenados no banco de dados. ( ) Se alterar o esquema ísi5. Independência lógica co, não é necessário reescrever de dados aplicações. 6. Independência ísica ( ) Contém a especifcação de dados dos esquemas de banco. ( ) Conjunto de inormações contidas em determinado 7. Controle de concorrência banco de dados, em um determinado momento. 8. Linguagem de Defnição de ( ) Trata-se de um modelo de Dados (DDL) banco de dados. ( ) Os usuários não precisam 9. Linguagem de Manipulação saber como os dados são armade Dados (DML) zenados e mantidos. ( ) Desvantagem de sistemas 10. Objeto-Relacional de arquivos.
O objetivo deste capítulo oi de introduzir conceitos de bancos de dados. São conceitos importantes que servirão de base para entendimento dos conceitos explorados nos capítulos subseqüentes.
Banco de Dados I