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ódigosModelo 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 representadasSchema: 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,...)
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.