Estruturas de Gerenciadores de Banco de Dados
Sistemas Gerenciadores de Banco de Dados (SGBD)
Um SGBD é um conjunto de dados associados a programas que permitem o acesso e a manipulação dessas informações.
Funções
- Armazenar dados em disco de forma estruturada
- Fornecer mecanismos de criação/alteração de definições
- Manter a localização de cada elemento
Estrutura e Processamento
flowchart TD
subgraph SGBD
DML["Compilador DML"]
DDL["Interpretador DDL"]
ARMAZENAMENTO["Gerenciamento de Armazenamento"]
DADOS["Dados Físicos"]
end
DML -->|"Comandos de Manipulação"| ARMAZENAMENTO
DDL -->|"Definição de Estruturas"| ARMAZENAMENTO
ARMAZENAMENTO --> DADOS
DADOS -->|"Metadados, índices, estatísticas"| ARMAZENAMENTO
Arquitetura do Postgresql
Arquitetura do Oracle
Exemplo de Estrutura Técnica: PostgreSQL
-- Criação de um banco de dados
CREATE DATABASE escola;
-- Criação de uma tabela
CREATE TABLE alunos (
id SERIAL PRIMARY KEY,
nome VARCHAR(100),
matricula VARCHAR(20) UNIQUE,
data_nascimento DATE
);
-- Criação de um índice
CREATE INDEX idx_nome_aluno ON alunos(nome);
-- Exemplo de view
CREATE VIEW alunos_maiores AS
SELECT nome, matricula FROM alunos WHERE data_nascimento < '2008-01-01';
Exemplo de Estrutura Técnica: Oracle
-- Criação de tablespace (Oracle)
CREATE TABLESPACE escola_ts DATAFILE 'escola01.dbf' SIZE 10M;
-- Criação de usuário e concessão de privilégios
CREATE USER escola IDENTIFIED BY senha DEFAULT TABLESPACE escola_ts;
GRANT CONNECT, RESOURCE TO escola;
-- Criação de tabela
CREATE TABLE escola.alunos (
id NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
nome VARCHAR2(100),
matricula VARCHAR2(20) UNIQUE,
data_nascimento DATE
);
-- Criação de índice
CREATE INDEX idx_nome_aluno ON escola.alunos(nome);
-- Exemplo de view
CREATE OR REPLACE VIEW escola.alunos_maiores AS
SELECT nome, matricula FROM escola.alunos WHERE data_nascimento < TO_DATE('2008-01-01','YYYY-MM-DD');