Você está na página 1de 28

UNIVERSIDADE FEEVALE

INSTITUTO DE CIÊNCIAS CRIATIVAS E TECNOLÓGICAS


Ciência da Computação | Sistemas de Informação

BANCO DE DADOS
Introdução

Juliano Varella de Carvalho


Fonte: http://vidadeprogramador.com.br
Fonte: http://vidadeprogramador.com.br

Fonte: http://vidadeprogramador.com.br
Sistema de Banco de Dados
• “um banco de dados é uma coleção de arquivos com dados operacionais armazenados, usados pelos sistemas
de aplicações de uma empresa específica.” Permite portanto:

• acrescentar novos arquivos ao BD;


• inserir dados em arquivos existentes;
• buscar dados de arquivos existentes;
• excluir dados de arquivos existentes;
• alterar dados de arquivos existentes;
• remover arquivos existentes no BD.

• “sistema de banco de dados, basicamente, é um sistema computadorizado de manutenção de registros, ou


seja, um sistema cujo objetivo global é manter os dados e torná-los disponíveis quando solicitados.”

Banco de dados
- dados
- hardware
- software
- usuários
usuários finais
Programas de
aplicação
Gerenciador do sistema de banco de dados
usuários finais
Sistema de Banco de Dados

Banco de dados

usuários finais
Programas de
aplicação

Gerenciador do sistema de banco de dados


usuários finais

Dados Hardware Software Usuários


Sistema de Banco de Dados

• Dados: designam os valores como estão fisicamente registrados no banco de dados.

- são integrados: entende-se como sendo a união de diversos arquivos, que de


outra forma estariam dispersos;

Ex: arquivos LIVRO(titulo,edicao,isbn,ano) e RESERVA(titulo,data,dono_reserva)

- são compartilhados: os dados são compartilhados por diversos usuários,


podendo estes acessarem o mesmo conjunto de dados para usá-los com
objetivos diferentes.

Ex: Alunos utilizando o arquivo LIVRO para fazer buscas por títulos que lhes
interessam.

Funcionários de uma biblioteca, consultando no arquivo RESERVA com


quem estão determinados livros.
Sistema de Banco de Dados

• A camada de software entre os usuários e os dados armazenados, denomina-se


Sistema Gerenciador de Banco de Dados (SGBD). O SGBD isola os usuários do
Banco de Dados dos detalhes a nível de hardware e admite operações de usuários.

O que é uma instância de SGBD?

É uma cópia específica de um SGBD, executando em um computador.


Esta instância pode estar parada (stop) ou iniciada (start).
Sistema de Banco de Dados

• O hardware envolvido para armazenar dados consiste basicamente em:

- Processador e memória principal, que dão suporte à execução do


software (SGBD).

- Memória secundária / SAN (Storage Area Network), que dão suporte ao


armazenamento dos dados.

- Memória principal, existem SGBDs que rodam exclusivamente sobre a


RAM.

- Dispositivos de entrada e saída, que dão suporte às tarefas como


backup/restore.
Sistema de Banco de Dados

• Os usuários são os atores responsáveis pela administração do banco de


dados, carregamento (carga) dos dados, consulta, criação de aplicações,
entre outras tarefas.

Existem diversas classificações dos tipos de usuários que interagem


com o banco de dados, resumirei em três:

• programadores de aplicações: interagem com o SGBD, por meio


de requisições embutidas em programas nas mais diversas
linguagens.

• usuários finais: acessam o banco de dados interativamente, via


aplicações ou interface do próprio SGBD (se possuem permissão
para isto).
Sistema de Banco de Dados
• administrador: usuário responsável por fazer o controle, de modo centralizado,
dos dados e dos programas que acessam o banco de dados.

Alguns autores dividem o administrador em dois tipos: o administrador de dados e o


administrador de banco de dados. Suas principais funções são:

de dados de banco de dados

• deve entender dos dados e da • criar os bancos de dados;


importância destes para a • gerar os conjuntos de tabelas armazenadas no banco de
empresa; dados;
• implementar os controles para pôr em prática as normas
• decidir quais dados devem ser tomadas;
armazenados no BD; • assegurar o desempenho adequado do sistema e monitorá-lo;
• definir a estrutura de dados e método de acesso a eles;
• estabelecer normas para manter • criar e modificar a organização física dos dados;
e tratar esses dados. • implementar a autorização de acesso ao sistema;
• especificar regras de integridade;
• servir de elo de ligação com os usuários;
• definir a estratégia de backup e recuperação: após erros
humanos, falhas no hardware ou no sistema operacional.
Utilitários em um Sistema de Banco de Dados

• Existem diversos programas utilitários para auxiliar o DBA:

- ferramentas de carga: serve para criar uma versão inicial do BD, a partir de um ou
mais arquivos.

- ferramentas de backup/restore (gravação/recuperação).

- ferramentas de reorganização: ajustar o banco de dados de forma a aprimorar o seu


desempenho; agrupamento dos dados ou regeneração de espaço de dados obsoletos.

- ferramentas estatísticas: para computar diversos desempenhos estatísticos das


consultas, tamanhos de arquivos, gráficos, etc.

- ferramentas de replicação dos dados.

- dicionário de dados ou catálogo do sistema ou banco de dados do sistema: são


“dados sobre dados” (metadados), ou seja, a descrição dos objetos do sistema.
Por que usar um SGBD ?
• A recuperação e modificação dos dados é realizada de maneira muito rápida.
• As informações atualizadas são precisas e estão disponíveis a qualquer momento.
• Os dados estão melhor protegidos a perdas não intencionais e ao acesso illegal.

• O controle centralizado dos dados operacionais conseguem também:

• evitar a redundância dos dados -> desperdício de espaço evitado;

• evitar a inconsistência dos dados -> informações incorretas evitadas;

• compartilhar os dados por várias aplicações;

• permitir a aplicação de restrições de segurança sobre os dados;

• manter a integridade dos dados (regras de integridade);

• suportar transações (unidade lógica de trabalho);

• implementar padrões (nomenclatura, documentação de instalação, etc).


Evolução das Arquiteturas de um SGBD
Durante a evolução dos bancos de dados, ao longo da história da computação, podemos
distinguir quatro gerações destes sistemas. São elas:

•1ª geração - processamento de dados em arquivos independentes: nesta


época, os SGBDs não existiam, por isso diversos programas manipulavam diferentes
arquivos, os quais eram os responsáveis pelo armazenamento dos dados. A Figura 1
ilustra esta geração.

Fig. 1: primeira geração


Evolução das Arquiteturas de um SGBD
• 2ª geração - processamento de dados em arquivos integrados: os principais
problemas da 1ª geração são: redundância de dados, inconsistência e difícil acesso aos
dados a partir do usuário.

Dada a necessidade, começam a surgir os primeiros Sistemas de Gerenciamento de Banco


de Dados. Desta forma, os programas passam a compartilhar um único arquivo entre si: o
banco de dados (Figura 2).

Fig. 2: segunda geração


Evolução das Arquiteturas de um SGBD

• 3ª geração - processamento da informação: os modelos da 2ª geração não são


inteiramente suficientes para conseguir descrever de forma mais completa uma aplicação.

Por quê?
Porque é necessário mapear a aplicação (sistema real) para conceitos intrínsecos
aos bancos de dados relacionais, tais como registros, normalizações, chaves primárias,
chaves estrangeiras, etc.

Não há tipos complexos em SGBDs da 2a. Geração (SGBDs de Lista Invertida, de


Rede, Hierárquicos e Relacionais)

Por isto, na década de 90 surgem os SGBDs Orientados a


Objetos, que procuram modelar objetos dentro de SGBDs relacionais.
Evolução das Arquiteturas de um SGBD

• 4ª geração - processamento ampliado: os sistemas ditos de 4ª geração procuram


ampliar as possíveis aplicações de sistemas de banco de
dados. Exemplos deles temos:

• Bancos de Dados Espaciais (Oracle Spatial and Graph, PostGis);


• Bancos de Dados Semi-estruturados e XML – SGBDXN (Oracle XML DB);
• Banco de Dados para Desenvolvimento Mobile (SQLite, Firebase, Realm,
CoreData)
• NoSQL (CouchDB, MongoDB, Apache Cassandra, Apache Hbase, Neo4j)
OBJETIVO de um SGBD

• Um SGBD deve oferecer um ambiente conveniente e eficiente para a

recuperação e o armazenamento das informações do banco


de dados;

• Um SGBD tem como objetivos solucionar as seguintes desvantagens de


um Sistema de Processamento de Arquivos (1a. geração vista anteriormente):

• inconsistência e redundância de dados;


• dificuldade de acesso aos dados (é necessária a recuperação de informações de
modo eficiente);
• integridade de dados ineficiente;
• problemas de atomicidade (ou tudo ou nada);
• problemas na manutenção de acesso concorrente aos dados;
• segurança de dados ineficaz.
VISÃO GERAL DO BANCO DE DADOS

Banco de dados armazenado

Campo armazenado
menor unidade de dados armazenados.

Registro armazenado
outros arquivos armazenados
coleção de campos armazenados
relacionados entre si.
Arquivo armazenando registros “peças”
nº da nome da cor da peso da
peça peça peça peça

Arquivo armazenado P1 Porca Vermelho 12


coleção de todas as ocorrências de um
único tipo de registro armazenado. Duas ocorrências
do tipo de registro ocorrências de campos armazenados
armazenado “peça“

P2 Pino Verde 17
nº da nome da cor da peso da
peça peça peça peça
NÍVEIS DE ABSTRAÇÃO
- interno: mais próximo ao armazenamento físico – relaciona-se à forma com os dados são realmente armazenados,
bem como o detalhamento de como eles são acessados.
- externo: mais próximo aos usuários – forma como os dados são vistos pelos usuários individuais.
- conceitual (lógico): nível de simulação – visão conceitual que corresponde à representação abstrata do banco de dados
em sua totalidade. Utilizam estruturas mais simples, tais como sql, gatilhos, backup/recovery, para executar tarefas
complexas vistas do nível físico.

Usuário A1 Usuário A2 Usuário B1 Usuário B2 Usuário B3

Linguagem Linguagem Linguagem Linguagem Linguagem


X Y Z Z X

Esquema Esquema
Visão externa A Visão externa B
Externo A Externo B

Mapeamento A Mapeamento B
externo/conceitual externo/conceitual
Sistema de
Esquema Gerenciamento
Visão conceitual de banco de
Conceitual
Dados (DBMS)
DBA
Mapeamento
conceitual/interno

Definição de estrutura
do armazenamento
(esquema interno)

Banco de dados armazenado (visão interna)


NÍVEL EXTERNO

• é o nível do usuário individual. Em termos ANSI/SPARC, a visão de um determinado


usuário é uma visão externa, ou seja, é o conteúdo do banco de dados como visto por
determinado usuário.

Ou seja, usuários finais podem ter distintos graus de sofisticação no acesso/visualização dos
dados.

• cada usuário pode ter uma linguagem/interface à sua disposição.

• Programador da aplicação: pode utilizar uma linguagem convencional como COBOL, JAVA,
C++, ou uma linguagem do sistema em questão, PL/SQL, PGSQL, TRANSACT-SQL.

• Usuário final: uma linguagem de consulta como SQL ou uma interface baseada em
formulários e menus.

• Usuários Administradores do BD: uma linguagem de consulta como SQL.


NÍVEL CONCEITUAL

•a visão conceitual é a representação de todo o


conteúdo de informações do banco de dados, de modo
abstrato quando comparado à forma como os dados são
fisicamente armazenados, e que também pode ser bem diferente da
maneira como os dados são vistos por qualquer usuário em particular.

• a visão conceitual é definida pelo “esquema conceitual”,


não possui quaisquer considerações sobre a estrutura de
o qual
armazenamento ou a estratégia de acesso, ou seja,
seufoco é somente com a definição dos dados.
NÍVEL INTERNO

•a visão interna é descrita através do esquema


interno, o qual tem a responsabilidade de definir:
- quais os tipos de registros armazenados;

- a estrutura dos índices existentes;

- modo de armazenamento dos arquivos, etc.


SISTEMA GERENCIADOR DE BANCO DE DADOS

• Resumindo, o SGBD é o software que manipula todos os


acessos ao BD.

Exemplo:

1. O usuário emite uma solicitação de acesso;

2. O SGBD intercepta a solicitação e a analisa;

3. O SGBD, por sua vez, inspeciona os esquemas externos para aquele


usuário, o mapeamento externo/conceitual correspondente, o esquema
conceitual, o mapeamento conceitual/interno e a definição da estrutura
de armazenamento;

4. O SGBD executa as operações necessárias no banco de dados


armazenado.

5. O SGBD retorna os dados ao usuário efetuando as operações inversas do


item 3.
SISTEMA GERENCIADOR DE BANCO DE DADOS
Fonte de esquemas Solicitações de Solicitações de
e mapeamentos DML Planejadas DML não-planejadas

Processador de DDL Processador de DML Processador de


linguagem de consulta

solicitações
compiladas

otimizador

solicitações
otimizadas

Gerenciador em tempo
de execução metadados
Fonte de esquemas
e mapeamentos

Banco de dados

dados
metadados
Fonte: Korth
TIPOS DE SGBDs

Décadas de 60, 70 e 80

• Sistemas de Lista Invertida: Ex: DATACOM/DB (Applied


Data Research), ADABAS(Software AG), etc.

• Sistemas Hierárquicos: Ex: IMS (1968, 1ª versão – depois


virou IMS/VS – Information Management System/Virtual
Storage) (IBM), System 2000 (Intel).

• Sistemas em Rede: Ex: IDMS (Cullinet), DMS 1100


(Sperry), TOTAL (Cincom Systems).
TIPOS DE SGBDs

A partir do final da década de 70


• Sistemas Relacionais: é aquele no qual os dados são percebidos pelos usuários
como tabelas e as operações para recuperação dos dados geram novas tabelas, a
partir das originais. Ex: Oracle, DB2 (IBM), MySql, PostgreSQL, SQL Server
(Microsoft), etc.

• Sistemas Orientados a Objetos: Os dados são armazenados como objetos. Ex:


GemStone (GemStone Systems Inc.), Versant (Versant Object Technology), O2,
Jasmine, etc.

• Sistemas Relacionais-Orientados a Objetos: tiram proveito de características dos


sistemas relacionais e de conceitos da orientação a objeto. Ex: Oracle (a partir da
versão 8i), PostgreSql, DB2.

• Sistemas NoSql: oferecem escalabilidade, permitindo a distribuição horizontal dos


dados. Ex: MongoDB, Apache Cassandra, Hbase, DynamoDB, DocumentSB, Berkeley
DB, etc.
TIPOS DE SGBDs

• ElasticSearch: mecanismo de busca e análise de dados distribuído,


gratuito e aberto para todos os tipos de dados, incluindo textuais,
numéricos, geoespaciais, estruturados e não estruturados.

Uma tabela
Funcionários em
SGBDR

Um Índice
Funcionários no
ElasticSearch
LINGUAGENS DE CONSULTA EM SGBDs

SQL (Structured Query Language)

Divide-se basicamente em três partes (embora existam outras classificações):

- Linguagens de Definição de Dados (DDL): são as definições utilizadas para a


especificação do “esquema de dados”. O resultado da compilação de uma
cláusula DDL é a criação (alteração) de um objeto no BD.

- Linguagens de Manipulação de Dados (DML): utilizada para inserir, atualizar,


excluir e recuperar informações do BD.

- Linguagens de Controle de Dados (DCL): utilizada para controlar quem tem


acesso aos dados, ou seja, conceder e revogar acesso aos dados.

Você também pode gostar