Study Notes
Data

Database Systems

Um sistema de banco de dados é a composição de todos componentes existentes em torno de um banco de dados.

Um banco de dados é uma coleção de dados organizados. Eles se diferem de outras formas de armazenamento (como o filesystem) por apresentarem as propriedades de:

  • É construído com um propósito, não é apenas amontoar/guardar dados de forma eficiente. (BD acadêmico (gerenciar estudantes), BD bancário (gerenciar transações financeiras)).
  • Representam características do "mundo real"/mini-mundo. É uma abstração digital.
  • Mantém coerência lógica dos dados. Os dados são armazenados com base em regras que refletem o minimundo: (um aluno não pode estar matriculado em um curso que não existe).
  • Feito para mais de uma pessoa poder acessar os dados.

Seguindo a definição e as propriedade acima, um bancos de dados podem ser utilizados de forma manual (Ex: lista telefônica -> modela a rede telefônica de uma região, ...) e computadorizada (Ex: Sistemas Acadêmicos/SGA da PUC). Contra exemplos: caderno de anotações pessoais/diário (não representa um minimundo e sem compartilhamento) e pasta com backup de arquivos genéricos (não representa realidade, sem finalidade específica).

Core Concepts


  • Data: símbolos, sinais, códigos
  • Modelo de Dados: Etapa de design da estrutura lógica. Como os dados se relacionam e quais regras de negócio governam. Entidades, atributos, tipos de dados.
  • Entidades: objetos/conceitos do mini-mundo que estão sendo representadas
  • Schema: definição do banco de dados. (Armazena as regras implementadas da modelagem de dados)
SGBD

Sistema Gerenciador de Banco de Dados ou DBMS (DB Manager System) é o software que permite manipular o banco de dados.

SBD

Sistema de Banco de Dados seria todo o sistema envolvido no gerenciamento de dado. (SGBD, os dados em si (o banco de dados), o hardware,...)

db_core_concepts

Os sistemas de bancos de dados são categorizados de diversas formas. A baixo, segue algumas classificações/conceitos quanto suas características.

Workloads


A carga de trabalho que o SBD recebe. Ou seja, COMO atores interagem (e o sistema processa/responde) com SBD. Para qual finalidade. Ou seja, dependendo do tipo de workload o sistema será otimizado para tal.

OLTP - Transacional

Online Transaction Processing são SBD destinados a transações/CRUD do dia dia, curtas que garantam integridade e consistência. Ex: vender um produto, registrar um pagamento, alterar um cadastro.

OLAP - Análise

Online Analytical Processing são SBD destinados a realizar análises complexas em grandes volumes de dados. Consultas complexas e pesadas (muitas vezes agregando milhões de registros/ tem que varrer tabelas gigantes) para análise de dados.

HTAP - Híbrido

Hybrid Transactional/Analytical Processing são SBD destinados tanto a OLTP quanto a OLAP. Modelos híbridos são muito complexos e caros.

Em resumo, os SBD acabam sendo ou muito bons/otimizados para vários usuários que fazem transações (CRUD) pequenas (que não alteram uma grande parcela de dados) ou pucos usuários que fazem consultas extremamente custosas (que precisam varrer o banco todo).

Modelo de Dados


Os Sistemas de Bancos de Dados podem ser divididos

Relacional

É a base da maioria dos sistemas OLTP e OLAP.

Dimensional

Arquitetura de Armazenamento


Row-Oriented

Oriented to Column

Tipos de Databases


Relacional

NoSQL

Vector

Cloud

Atores


Referências


On this page