O documento resume os principais conceitos de bancos de dados, incluindo modelos de banco de dados, linguagens de manipulação, definição e controle de dados, transações, e como os sistemas gerenciadores de bancos de dados permitem acessar e gerenciar dados armazenados.
1. UNIVERSIDADE DO VALE DO SAPUCAÍ
SISTEMAS DE INFORMAÇÃO
ANDRÉ LUIZ GARCIA DIOGO
DIEGO RIBEIRO DOS SANTOS
FLÁVIO AUGUSTO PEREIRA FERREIRA
THAÍS FERREIRA DOS SANTOS
BANCO DE DADOS II
POUSO ALEGRE
13 DE JUNHO DE 2012
2. ANDRÉ LUIZ GARCIA DIOGO
DIEGO RIBEIRO DOS SANTOS
FLAVIO AUGUSTO PEREIRA FERREIRA
THAIS FERREIRA DOS SANTOS
ARQUITETURA/FUNCIONAMENTO INTERNO DE UM
SISTEMA GERENCIADOR DE BANCO DE DADOS
Definição: Definições, Exemplos e
Arquitetura de Sistemas Gerenciadores de
Banco de Dados.
Prof. Roberto Ribeiro Rocha
4. 1
INTRODUÇÃO:
Banco de Dados são coleções de informações que se relacionam de alguma forma.
Podem ser rústicos como uma agenda de telefone ou virtuais como o SQL, que nesse caso são
casados com programas computacionais escritos nas mais variadas linguagens de
programação existentes como: Linguagem C, C#, PHP, JAVA, FORTRAN, BASIC etc...
Bancos de Dados para computadores são conhecidos também pela sigla SGDB, a
décadas eles se tornaram peças de vital importância para armazenamento de dados de
empresas.
O SGDB:
Surgiram na década de 70, antes disso os programadores utilizavam sistemas de
arquivos do sistema operacional para armazenar suas informações. Já na década de 80 o
sistema SGDB relacional passou a dominar o mercado e atualmente utiliza-se praticamente
apenas ele.
Também há um SGDB que é muito notável, este tipo se chama SGDB Orientado a
Objeto, é utilizado para quando sua estrutura ou as aplicações que utilizam ele são
modificadas constantemente.
APLICAÇÕES:
Podemos dizer que a principal aplicação de Banco de Dados é o controle de operações
empresariais, outra aplicação importante é o gerenciamento de informações de estudo Ex:
Banco de Dados Geográficos (unem informações convencionais com espaciais).
5. 2
MODELOS DE BASE DE DADOS:
Modelo plano (também conhecido como tabular): consiste de matrizes simples,
bidimensionais compostas por elementos de dados : inteiros, números reais etc. Este
modelo é a base das planilhas eletrônicas.
Modelo em Rede: Permite que várias tabelas usadas simultaneamente através do
uso de apontadores (espécie de ponteiro). Algumas colunas contém apontadores para
outras tabelas ao invés de dados. Com isso, as tabelas são ligadas por referências, isso
pode ser visto como uma rede. Uma variação deste modelo em rede, o modelo hierárquico
limita as relações a uma estrutura semelhante a uma árvore, ao invés do modelo geral que
é direcionado por grafos.
Base de dados relacionais: consiste destes componentes:
• Uma coleção de estruturas de dados (relações ou tabelas);
• Uma coleção dos operadores;
• Álgebra e os cálculos relacionais;
• Uma coleção de restrições da integridade que define o conjunto, consiste de
estados de base de dados e de alterações de estados.
As restrições de integridade podem ser de quatro tipos:
• Domínio (Type);
• Atributo (variável relacional);
• Relvar (variável relacional);
• Restrições de base de dados;
A diferença dos modelos hierárquico e de rede é que não existem apontadores, ou seja,
nesse modelo toda informação tem que ser apresentada com dados, qualquer tipo de atributo
representa relações entre conjuntos de dados. As bases de dados relacionais permitem aos
utilizadores (incluindo programadores) escreverem consultas (queries) que não foram
antecipadas por quem projetou a base de dados. Como resultado, bases de dados relacionais
podem ser utilizadas por várias aplicações em formas que os projetistas originais não
previram, o que é especialmente importante em bases de dados que podem ser utilizadas
durante décadas. Isto tem tornado as bases de dados relacionais muito populares no meio empresarial.
Este modelo é uma teoria matemática desenvolvida por Edgard Frank Codd da IBM. Os
modelos de hoje em dia implementam o modelo definido como objeto-relacional, mas seguem a
teoria do modelo relacional.
6. 3
APLICATIVOS DE BANCO DE DADOS
É um tipo de software exclusivo para gerenciar um banco de dados. Estes aplicativos
abrangem uma vasta necessidade e os objetivos de pequenas ferramentas como uma agenda de
consultórios médicos e até complexos sistemas de empresas para desempenhar tarefas como a
contabilidade, custos, controle de estoques, vendas, compras etc.
Aplicativos de banco de dados oferecem uma interface para o banco de dados, este
software gerencia os dados e é geralmente chamado de SGDB (Sistema Gerenciador de Banco
de Dados) se for embarcado (embutido em aparelhos como microondas, TV’s etc.) são
chamados de “database engine”.
SGDB
Sistema Gerenciador de Banco de Dados (SGBD) do inglês Data Base Management
System (DBMS), é o conjunto de softwares responsável pelo gerenciamento de uma base de
dados. Seu objetivo é retirar da aplicação cliente a responsabilidade de gerenciar o acesso a
manipulação e a organização dos dados. Disponibilizando uma interface para que o usuário
possa incluir, alterar ou consultar dados previamente armazenados.
Em um banco de dados relacionais a interface é constituída pelas APIs (Application
Programming Interface) ou drivers do SGBD, que executam na linguagem SQL (Structured
Query Language).
São diversas as vantagens do SGBD dentre elas podemos destacar:
• A eliminação da necessidade de especificação de definição de dados;
• Interfaceamento entre programas de aplicação e os ficheiros de dados físicos;
• Separação das visões lógicas e de concepção dos dados;
Estas vantagens consistem basicamente três componentes de um SGBD:
LINGUAGEM DE MANIPULAÇÃO DE DADOS:
Data Manipulation Language ou DML é um subconjunto da linguagem da SQL que é
utilizado para realizar inclusões, consultas, alterações e exclusões de dados presentes em
registros. Estas tarefas podem ser executadas em vários registros de diversas tabelas ao
mesmo tempo, os comandos que realizam respectivamente as funções acima referidas são
Insert, Select, Update e Delete.
7. 4
• INSERT é usada para inserir um registro (formalmente uma tupla) a uma tabela
existente.
• Ex: Insert into Pessoa (id, nome, sexo) value;
• SELECT – O Select é o principal comando usado em SQL para realizar consultas a
dados pertencentes a uma tabela.
• UPDATE para mudar os valores de dados em uma ou mais linhas da tabela existente.
• DELETE permite remover linhas existentes de uma tabela.
É possível inserir dados na tabela AREA usando o INSERT INTO:
Insert into AREA (arecod, aredes) values (100, "Informática"), (200, "Turismo"), (300,
"Higiene e Beleza");*
LINGUAGEM DE DEFINIÇÃO DE DADOS:
Data Definition Language ou DDL permite ao utilizador definir tabelas novas e
elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões
proprietárias no DDL.
Os comandos básicos da DDL são poucos:
• CREATE: cria um objeto (uma Tabela por exemplo) dentro da base de dados.
• DROP: apaga um objeto do banco de dados.
Alguns sistemas de banco de dados usam o comando ALTER, que permite ao usuário alterar
um objeto, por exemplo, adicionando uma coluna a uma tabela existente.
Outros comandos DDL:
• CREATE TABLE
• CREATE INDEX
• CREATE VIEW
• ALTER TABLE
• ALTER INDEX
• DROP INDEX
• DROP VIEW
8. 5
LINGUAGEM DE CONTROLE DE DADOS:
Data Control Language ou DCL controla os aspectos de autorização de dados e
licenças de usuários para controlar quem tem acesso para ver ou manipular dados dentro do
banco de dados.
Duas palavras-chaves da DCL:
• GRANT - autoriza ao usuário executar ou setar operações.
• REVOKE - remove ou restringe a capacidade de um usuário de executar operações.
EXEMPLOS DE SGDB:
• Apache Derby;
• Cache;
• DB2;
• dBASE;
• FileMaker;
• Firebird;
• HSQLDB (banco de dados implementado em Java);
• HyperCard;
• IDMS (banco de dados hierárquico);
• IMS (banco de dados hierárquico);
• Informix;
• Ingres;
• InterBase;
• Intpró;
• LiteBase Mobile (dedicado à plataformas móveis como: Palm OS, Pocket PC, WinCE,
Symbian);
• Microsoft Access;
• Microsoft SQL Server;
• Microsoft Visual FoxPro;
• MySQL;
• Oracle;
• PointBase Micro (banco de dados relacional implementado em Java);
• PostgreSQL;
• SQLite;
• Sybase Adaptive Server Enterprise;
• Sybase;
• Teradata (primeiro RDBMS com arquitetura paralela do mercado);
9. 6
.
SGDB NAS EMPRESAS:
O banco de dados relacional mais utilizado mundialmente é o da Oracle, seguido pelo
SQLServer da empresa Microsoft. Outros bancos não relacionais são ainda utilizados mas em
sua maioria em mainframes e sistemas legados.
Access possui problemas como falta de recursos de transações, baixa segurança e
baixo tamanho do arquivo de banco de dados não é recomendado.
BANCO DE DADOS FREE:
MySQL é um banco mais simples e o PostgreSQL é um banco mais robusto, também
existe o banco de dados da Microsoft SQLServer Express que é uma versão mais simples e
pode ser registrado sem custo adicional, mas permite somente 10 conexões simultâneas
TRANSAÇÃO:
É um conjunto de procedimentos que é executado em um banco de dados, para o
usuário isto é visto como uma única ação.
A integridade de uma transação depende de 4 propriedades, conhecidas como ACID,
Atomicidade, Consistência, Isolamento, Durabilidade. Estas propriedades serão descritas a
seguir:
ATOMICIDADE:
São as ações que compõe a unidade de trabalho da transação devem ser concluídas com
sucesso, para que seja efetivada. Se durante a transação qualquer ação que constitui unidade
de trabalho falhar, a transação inteira deve ser desfeita (rollback). Quando todas as ações são
efetuadas com sucesso, a transação pode ser efetivada e persistida em banco (commit).
CONSISTÊNCIA:
São todas as regras e restrições definidas no banco de dados devem ser obedecidas.
Relacionamentos por chaves estrangeiras, checagem de valores para campos restritos ou
únicos devem ser obedecidos para que uma transação possa ser completada com sucesso.
ISOLAMENTO:
Cada transação funciona completamente à parte de outras estações. Todas as
operações são parte de uma transação única. O principio é que nenhuma outra transação,
operando no mesmo sistema, possa interferir no funcionamento da transação corrente(é um
mecanismo de controle). Outras transações não podem visualizar os resultados parciais das
operações de uma transação em andamento (ainda em respeito à propriedade da atomicidade).
10. 7
DURABILIDADE:
Significa que os resultados de uma transação são permanentes e podem ser desfeitos
somente por uma transação subseqüente.Por exemplo: todos os dados e status relativos a uma
transação devem ser armazenados num repositório permanente, não sendo passíveis de falha
por uma falha de hardware.
Mas na pratica alguns SGBD’s não cumprem a risca todas estas propriedades
buscando desempenho.
CONTROLE DE OCORRENCIA:
É um método utilizado para garantir que as transações sejam executadas de uma forma
segura e sigam as regras ACID. Os SGBD devem ser capazes de assegurar que nenhuma ação
de transações completadas com sucesso (committed transactions) seja perdida ao desfazer
transações abortadas (rollback).
Uma transação é uma unidade que preserva consistência. Requeremos, portanto, que
qualquer escalonamento produzido ao se processar um conjunto de transações
concorrentemente seja computacionalmente equivalente a um escalonamento produzindo
executando essas transações serialmente em alguma ordem. Diz-se que um sistema que
garante esta propriedade assegura a seriabilidade.
MANIPULANDO OS DADOS DO BANCO UTILIZANDO O SGBD
CLÁUSULAS: São condições de modificação utilizadas para definir os dados
que deseja selecionar ou modificar em uma consulta, são eles:
• FROM - Utilizada para especificar a tabela que se vai selecionar os registros;
• WHERE – Utilizada para especificar as condições que devem reunir os registros que
serão selecionados;
• GROUP BY – Utilizada para separar os registros selecionados em grupos específicos;
• HAVING – Utilizada para expressar a condição que deve satisfazer cada grupo;
• ORDER BY – Utilizada para ordenar os registros selecionados com uma ordem
especifica;
• DISTINCT – Utilizada para selecionar dados sem repetição.
11. 8
OPERADORES LÓGICOS: São usados para avaliação de condições:
• AND – E lógico. Avalia as condições e devolve um valor verdadeiro caso ambos
sejam corretos;
• OR – OU lógico. Avalia as condições e devolve um valor verdadeiro se algum for
correto;
• NOT – Negação lógica. Devolve o valor contrário da expressão;
OPERADORES RELACIONAIS: São utilizados para realizar comparações
entre valores, em estruturas de controle. São eles:
• < : Menor;
• > : Maior;
• <= : Menor ou igual;
• >= : Maior ou igual;
• = : Igual;
• <> : Diferente;
• BETWEEN – Utilizado para especificar um intervalo de valores.
• LIKE – Utilizado na comparação de um modelo e para especificar registros de um
banco de dados. "Like" + extensão % significa buscar todos resultados com o mesmo
início da extensão.
• IN - Utilizado para verificar se o valor procurado está dentro de uma lista. Ex.: valor
IN (1,2,3,4).
FUNÇÕES DE AGREGAÇÃO: As funções de soma se usam dentro de uma
cláusula SELECT em grupos de registros para devolver um único valor que se
aplica a um grupo de registros.
• AVG – Utilizada para calcular a média dos valores de um campo determinado.
• COUNT – Utilizada para devolver o número de registros da seleção.
• SUM – Utilizada para devolver a soma de todos os valores de um campo
determinado.
• MAX – Utilizada para devolver o valor mais alto de um campo especificado.
• MIN – Utilizada para devolver o valor mais baixo de um campo especificado.
12. 9
ARQUITETURA DO BANCO DE DADOS:
ARQUITETURA TRÊS ESQUEMAS: A arquitetura três esquemas é conhecida como
ANSI/SPARC. O objetivo desta arquitetura é separar o usuário da aplicação do banco de
dados físico.
13. 10
NIVEIS:
• Nível Interno: tem um esquema interno que descreve a estrutura de armazenamento
físico do banco de dados.
• Nível Conceitual: tem um esquema conceitual que descreve toda a estrutura do banco
de dados para a comunidade de usuários.
• Nível Externo: Abrange os esquemas externos ou as visões dos usuários.
MAPEAMENTO DA ARQUITETURA:
1) Mapeamento Conceitual/Interno: Mudar o esquema interno sem ter que alterar o
Conceitual.
Exemplo: Se for realizada alguma mudança na definição do banco de dados armazenado, o
mapeamento conceitual/interno terá de ser alterado de acordo a fim de que o esquema
conceitual possa permanecer invariável.
2) Mapeamento Externo/Conceitual: Alterar o esquema conceitual sem ter que mudar o
externo. Ex: adicionar novos campos em tabelas já existentes, alterações de restrições.
14. 11
Dependencia Lógica.
ARQUITETURA DOS SISTEMAS:
CENTRALIZADA: as funcionalidades, execuções de programas e
processamento das interfaces com o usuário são executadas em uma única
máquina.
15. 12
DUAS CAMADAS - CLIENTE SERVIDOR:
TRÊS CAMADAS – CLIENTE SERVIDOR – APLICAÇÕES WEB: Esta arquitetura possui
uma camada intermediária entre o cliente e o servidor de Banco de Dados que é conhecida
como camada do servidor de aplicações ou simplesmente como servidor web.
16. 13
CONCLUSÃO:
Bancos de Dados oferecem grande facilidade no armazenamento de dados de
organizações em geral, os bancos virtuais oferecem vantagens na rapidez de acesso aos dados.
Os SGBD possibilitam aos programadores e aos usuários uma interface para
armazenamento, acesso e exclusão dos dados, outra caracteristica é o gerenciamento no
acesso, ontrole de ocorrencia e recuperação dos dados além de tratar o acesso por vários
usuarios, controlar o acesso não autorizado e prover a independencia dos dados.
Destacamos que a Arquitetura Organizada e bem dividida dos SGBD são fundamentais
por fazer desta ferramenta algo tão confiável.