Você está na página 1de 20

Universidade Federal de Uberlândia

Faculdade de Computação

Introdução aos SGBD

Prof. Renato Pimentel

2022/1

GES013 Sistema de BD 2022/1 1 / 39

Sumário

1 Introdução aos Sistemas Gerenciadores de Banco de Dados

GES013 Sistema de BD 2022/1 2 / 39


Motivação

Armazenamento e manipulação de grandes quantidades de dados.


Exemplos:
▶ Tradicionais (textuais e/ou numéricos):
⋆ Dados de uma universidade: cadastro de alunos, notas, frequências,
servidores.
⋆ Dados de uma empresa: dados dos clientes, funcionários, produtos.
▶ Big data / NOSQL1 – postagens e imagens, vídeos etc.
⋆ Aplicações de mídia social (Facebook, Twitter, Gmail etc.)

Banco de dados
“Coleção” de itens de dados relacionados.

1
Not only SQL (Structured Query Language)
GES013 Sistema de BD 2022/1 3 / 39

Propriedades do banco de dados

Representa um aspecto (abstração) do mundo real, de forma que


alterações em tal aspecto são refletidas no banco de dados.
Significado inerente: coleção logicamente coerente de dados (não
pode ser uma coleção aleatória de dados ou informações).
Finalidade específica: um BD é projetado, montado e preenchido
desta maneira, com um público alvo específico e com aplicações
previamente planejadas às quais tal público esteja interessado.

GES013 Sistema de BD 2022/1 4 / 39


Sistema gerenciador de banco de dados

Um sistema gerenciador de banco de dados, ou SGBD, é um


software criado para auxiliar na manutenção e utilização de grandes
coleções de dados.
A alternativa ao uso de um SGBD é armazenar os dados em arquivos
e escrever códigos específicos para gerenciá-los.
Diversos problemas estão associados ao uso de arquivos para
armazenamento e manipulação de dados:
▶ Inconsistência e redundância de dados;
▶ Dificuldade de acesso aos dados;
▶ Isolamento de dados;
▶ Problemas de integridade;
▶ Problemas de atomicidade;
▶ Anomalias no acesso concorrente;
▶ Escalabilidade;
▶ Problemas de segurança.

GES013 Sistema de BD 2022/1 5 / 39

Inconsistência e redundância de dados

Arquivos e aplicações criadas por diferentes programadores.


▶ Arquivos com formatos diferentes;
▶ Programas escritos em diversas linguagens de programação.
Inconsistências de dados
▶ As cópias podem divergir ao longo do tempo.
▶ Ex.: a mudança do telefone de um cliente pode ocorrer somente em
um dos arquivos.
Redundância de dados
▶ Ex.: o telefone de um cliente pode aparecer em mais de um arquivo;
▶ Aumento no custo de armazenamento e acesso.

GES013 Sistema de BD 2022/1 6 / 39


Dificuldade de acesso aos dados

Cada nova consulta diferente das previstas inicialmente envolve a


implementação de novos programas para realizá-las.
▶ Ex.: encontre os clientes que morem numa localidade cujo CEP é
12345-234.
▶ Ex.: encontre os clientes que possuem saldo maior que $ 10.000,00.
▶ ...
Ou seja, cada nova requisição exige uma nova implementação, um
novo programa.

GES013 Sistema de BD 2022/1 7 / 39

Isolamento de dados

Dados dispersos em vários arquivos com diferentes formatos aumenta


a dificuldade de escrever novas aplicações para recuperação
apropriada dos dados (acesso).
Não há isolamento de dados e programas (código).

GES013 Sistema de BD 2022/1 8 / 39


Problemas de integridade

Os valores dos dados devem satisfazer certas restrições de


integridade para manutenção da consistência – o dado armazenado
deve representar um fato ou atributo da realidade modelada pelo
sistema.
Restrições feitas adicionando-se códigos aos vários programas de
aplicações.
Difícil a implementação de novas restrições — podem envolver vários
programas ou diversos itens de dados em diferentes arquivos.

GES013 Sistema de BD 2022/1 9 / 39

Problemas de atomicidade

Os sistemas estão sujeitos a falhas.


As aplicações devem assegurar que, após a detecção de uma falha, os
dados sejam salvos em seu último estado consistente, anterior a ela.
Ex.: Transferir um valor X da conta A para a conta B. Se SA e SB
são os saldos respectivos de tais contas:
1 SA = SA − X
2 SB = SB + X
É possível que seja feito o débito em A e que o crédito em B não se
realize por causa de uma falha, criando assim um estado inconsistente.
As operações devem ser atômicas — devem ocorrer por completo ou
não ocorrer.
Difícil garantir a atomicidade em caso de falha entre operações 1 e 2
num sistema convencional de processamento de arquivos, sem um
SGBD.

GES013 Sistema de BD 2022/1 10 / 39


Anomalias no acesso concorrente

Vários sistemas exigem o acesso simultâneo, ou seja, concorrente,


aos dados.
Exemplo: Seja uma conta corrente A com Saldo SA = 500 e duas
retiradas simultâneas em tarefas T 1 e T 2, cada uma de 100, cuja
execução ocorre na seguinte ordem temporal:
▶ T 1: Obtém SA;
▶ T 2: Obtém SA;
▶ T 1: SA = SA − 100;
▶ T 2: SA = SA − 100;
▶ T 1: grava SA;
▶ T 2: grava SA;
É difícil garantir a consistência dos dados em caso de acesso
concorrente a arquivos convencionais. No caso acima SA será 400,
mas deveria ser 300.

GES013 Sistema de BD 2022/1 11 / 39

Escalabilidade

Crescimento do volume de dados pode tornar o sistema lento ou


ineficaz:
Dificuldade de implementação de novas consultas e restrições.

GES013 Sistema de BD 2022/1 12 / 39


Problemas de segurança

Nem todos os usuários de um banco de dados estão autorizados a


acessar todos os dados nele contidos.
Ex.: O setor de RH de uma instituição bancária deve ter acesso
somente aos dados relativos aos funcionários, não aos de clientes.
Difícil garantir a efetividade das regras de segurança, usando-se
arquivos convencionais.

GES013 Sistema de BD 2022/1 13 / 39

Como o SGBD lida com tais problemas


Utilizar um SGBD oferece diversas vantagens:
Independência dos dados
O SGBD provê uma visão abstrata dos dados, de forma que um
programa aplicativo não é exposto a detalhes de representação e
armazenamento de dados.

Acesso eficiente aos dados


O SGBD dispõe de uma variedade de técnicas sofisticadas para
armazenamento e recuperação eficiente de dados, incluindo dados
armazenados em dispositivos externos.

Integridade dos dados e segurança


Se os dados forem acessados pelo SGBD é possível garantir restrições de
integridade e também o controle de acesso aos dados para diferentes
classes de usuários.

GES013 Sistema de BD 2022/1 14 / 39


Acesso concorrente e recuperação de falhas
Um SGBD garante a consistência no acesso concorrente e recuperação de
falhas por meio da atomicidade das operações.

Administração dos dados


Centralização da administração do banco de dados – profissional
responsável para organização da representação dos dados para minimizar a
redundância e fazer ajustes finos para melhorar o desempenho.

Redução do tempo de desenvolvimento de aplicativos


Disponibilidade de diversas funções para acesso aos dados, bem como uma
interface de alto nível.

GES013 Sistema de BD 2022/1 15 / 39

Exemplos de SGBD

MS Access: Primeiro SGBD voltado para uso em massa no ambiente


gráfico do Windows (1992), com origens na aquisição pela Microsoft
da ferramenta FoxPro, da Borland. Atualmente parte do MS Office.
Versão estável (Office 365): 2107 (jul/2021).
MS SQL Server: Antecessor ao MS Access, lançado pela MS em
1989. Versão estável atual: 2019.
MySQL: SGBD relacional open-source surgido em 1995,
multi-plataforma, de origem sueca. O “My” é uma referência direta à
filha do cofundador Michael “Monty” Widenius. Posteriormente
vendido à Sun Microsystems em 2008 – a Sun por sua vez foi
adquirida pela Oracle. Versão estável: 8.0.30 (jul/2022).

GES013 Sistema de BD 2022/1 16 / 39


Oracle Database: Também conhecido por Oracle DBMS2 .
Ferramenta comercial da Oracle, multi-plataforma, desenvolvida em C
e Assembly, lançada em 1979. Versão estável: 19c (fev/2019).
PostgreSQL: SGBD relacional open-source gratuito, lançado em
1996. Originalmente chamado POSTGRES, referência à sua origem
no Ingres (SGDB comercial desenvolvido na UC Berkeley). Forte
ênfase na aderência às normas SQL. Versão estável: 14.5 (ago/2022).

2
database management system, SGBD
GES013 Sistema de BD 2022/1 17 / 39

Popularidade

Fonte: https://db-engines.com/en/ranking

GES013 Sistema de BD 2022/1 18 / 39


Sistema de banco de dados (SBD)
Usuários/Programadores

Sistema de banco
de dados (SBD) Programas de aplicação/consultas

Software
Software para processar
SGBD
as consultas / programas

Software para acessar


os dados armazenados

Definição do banco Banco


de dados armazenado de dados
(metadados) armazenado

GES013 Sistema de BD 2022/1 19 / 39

Detalhes da arquitetura do SBD

Programas Aplicativos ou de Aplicação: softwares desenvolvidos


em diferentes linguagens.
Consultas – em inglês, queries – obtenção/modificação de dados do
banco ou da organização do mesmo.
SGBD: Software que gerenciará os dados do SBD:
▶ Uma parte do SGBD é feita para processar as consultas, ou seja,
interpretar o que o software aplicativo está solicitando.
▶ Outra parte: operações de entrada e saída em arquivos armazenados
em disco, utilizando para isso diferentes estruturas de dados.

Em suma:
SBD = BD + SGBD + Aplicação/ões

GES013 Sistema de BD 2022/1 20 / 39


Banco de dados armazenado (stored database) – são os dados que
estão guardados no banco (ex.: “José da Silva”,222.653.365-95)

Observação
É comum usar um desenho de um cilindro para indicar armazenamento de
dados em diagramas.

Definição do banco de dados armazenado (metadados): são as


informações que indicam quais tipos, estruturas e restrições
armazenados no banco (ex.: campos nome com 100 caracteres; CPF
possui 11 dígitos).

GES013 Sistema de BD 2022/1 21 / 39

Níveis de abstração

Usuários Finais Visões descrevem como os


usuários veem os dados.
Nível de visão O nível lógico ou conceitual
... descreve quais dados estão
Visão 1 Visão 2 Visão n
descritos no BD, e suas
relações.
Nível lógico O nível físico ou interno
descreve como os dados estão
armazenados, e suas estruturas
Nível físico
de dados.

GES013 Sistema de BD 2022/1 22 / 39


Independência de dados

Modificações da definição de um esquema em um nível sem afetar o nível


mais alto. Dois tipos:
Independência lógica de dados: alterações no nível lógico não
afetam os programas aplicativos.
Essas alterações podem ter o objetivo de alterar a estrutura do BD.
Ex.: inserção de uma tabela.
Independência física de dados: alterações nas estruturas dos
arquivos e índices não modificam o nível lógico.
Ex.: criação de um índice para melhoria de desempenho.

GES013 Sistema de BD 2022/1 23 / 39

Arquitetura de um SBD

A arquitetura é fortemente influenciada pelo sistema básico


computacional sobre o qual o sistema de banco de dados é executado;
Em outras palavras: aspectos da arquitetura do computador – como
rede, paralelismo e distribuição – têm influência na arquitetura do
banco de dados.

GES013 Sistema de BD 2022/1 24 / 39


Sistemas centralizados

São executados sobre um único sistema computacional, que não


interage com outros sistemas.
Sistema monousuário: uma unidade de trabalho de um única
pessoa; única CPU; poucos discos; SO monousuário (ex.: PC).
Sistema multiusuário: mais discos, mais memória, múltiplas CPUs;
SO multiusuário. Serve um alto número de usuários que se conectam
via terminais. Normalmente chamados de sistemas servidor.

GES013 Sistema de BD 2022/1 25 / 39

Controlador Controlador Adaptador


CPU
de disco USB gráfico

Memória

GES013 Sistema de BD 2022/1 26 / 39


Sistema cliente-servidor

Sistemas servidores atendem aos requisitos de vários sistemas clientes.


Estrutura geral de um sistema cliente-servidor:

Cliente Cliente Cliente Cliente

Rede

Servidor

GES013 Sistema de BD 2022/1 27 / 39

Funcionalidades de um banco de dados podem ser divididas em:


▶ Back-end – gerencia estruturas de acesso, desenvolvimento e
otimização de consultas, controle de concorrência e recuperação;
▶ Front-end – consiste em ferramentas como gerador de relatórios,
formulários e recursos de interface gráfica.
A interface entre esses funcionalidades é feita pela SQL ou por um
programa de aplicação.

GES013 Sistema de BD 2022/1 28 / 39


Interface SQL Interface para Gerador de Interface
Front-end
com o usuário formulários relatórios gráfica

Interface
(SQL + API)

SQL Engine Back-end

GES013 Sistema de BD 2022/1 29 / 39

Modelos conceituais e físicos

O maior benefício de um banco de dados é proporcionar ao usuário


uma visão abstrata dos dados.
▶ O sistema oculta os detalhes de armazenamento e manutenção dos
dados.
Relembrando: Níveis de Abstração:
1 Nível de visão;
2 Nível lógico ou conceitual;
3 Nível físico.

GES013 Sistema de BD 2022/1 30 / 39


Modelo de dados

Conjunto de ferramentas conceituais usadas para a descrição dos


dados, relacionamento entre os dados, semântica de dados e regras de
consistência.
Modelos são classificados em três grupos:
▶ Modelos lógicos com base em objetos;
▶ Modelos lógicos com base em registros;
▶ Modelos físicos.

GES013 Sistema de BD 2022/1 31 / 39

Modelos lógicos com base em objetos

Descrevem os dados no nível lógico e de visão.


Modelos mais conhecidos:
1 Modelo entidade-relacionamento (MER);
2 Modelo orientado a objetos;
3 Modelo semântico de dados;
4 Modelo funcional de dados.

GES013 Sistema de BD 2022/1 32 / 39


Modelo entidade-relacionamento (MER ou ER)
▶ Descreve entidades, relacionamentos, utiliza-se um diagrama ER
Modelo orientado a objetos:
▶ Objetos; Métodos; Classes.

GES013 Sistema de BD 2022/1 33 / 39

Modelos lógicos com base em registros

Banco de dados é estruturado por meio de registros com um número


fixo de campos (atributos).
Três modelos são (ou eram) comumente usados:
▶ Modelo relacional;
▶ Modelo de rede;
▶ Modelo hierárquico.

GES013 Sistema de BD 2022/1 34 / 39


Modelo relacional

Conjunto de tabelas é usado para representar tanto os dados quanto a


relação entre os mesmos.

Sigla Nome Créditos


SMA0304 Álgebra Linear 4
SCC0503 Algoritmos e Estruturas de Dados II 6
SME0101 Cálculo Numérico II 4
SSC0110 Elementos de Lógica Digital I 4
SCC0240 Banco de Dados 4

GES013 Sistema de BD 2022/1 35 / 39

Modelo de rede

Dados são representados como um conjunto de registros (como em


Pascal) e as relações entre esses registros são representadas por links
(ponteiros);
Os registros são organizados no banco de dados por um conjunto
arbitrário de grafos.

GES013 Sistema de BD 2022/1 36 / 39


Modelo hierárquico

Os dados e suas relações são representados por registros e links,


respectivamente, como no modelo de rede.
A diferença é que os registros estão organizados em árvores, ao invés
de grafos arbitrários.

GES013 Sistema de BD 2022/1 37 / 39

Exercícios I

1 Defina SGBD e dê um exemplo.


2 Qual o problema da redundância de dados, e como os SGBD lidam
com esse problema?
3 Defina atomicidade de transações em BD, qual problema se não for
observada e como os SGBD lidam com o problema.
4 Defina os três níveis de abstração dos dados armazenados por meio de
um SGBD.
5 Em relação à independência de dados: O que é independência lógica?
O que é independência física? Cite um exemplo de cada.

GES013 Sistema de BD 2022/1 38 / 39


Referências

1 ELMASRI R.; NAVATHE, S. Sistemas de banco de dados, Tradução


da 7a. edição, Addison- Wesley, São Paulo, 2018.
2 SILVA, I. R. (FACOM/UFU). Notas de aula.
Os materiais de parte desta seção foram gentilmente cedidos por Bruno A.
N. Travençolo (FACOM/UFU)
Adaptações: Renato Pimentel, FACOM/UFU

GES013 Sistema de BD 2022/1 39 / 39

Você também pode gostar