Objetos básicos de um Banco de Dados [Study Notes🧠]

Bem Vindo! | Welcome!
By Felipe Lamounier, Minas Gerais, Brasil🇧🇷 – powered by 🙂My Easy B.I.


📑 Table of Contents:

  1. Objetos básicos de um Banco de Dados
  2. Mapa Mental de Exemplos
  3. Exemplos Práticos

Objetos básicos de um Banco de Dados

ObjetoDescriçãoExemplo (SQL)
TabelaEstrutura que armazena dados em linhas e colunas.CREATE TABLE clientes (…)
ViewUma visão lógica (consulta salva) sobre uma ou mais tabelas. Não armazena dados fisicamente.CREATE VIEW vw_clientes_ativos AS SELECT …
ÍndiceEstrutura que acelera a busca e ordenação de dados em tabelas.CREATE INDEX idx_nome ON clientes(nome)
ConstraintRegras que impõem restrições aos dados (ex: PRIMARY KEY, FOREIGN KEY, NOT NULL).CONSTRAINT pk_cliente_id PRIMARY KEY (id)
TriggerCódigo que é executado automaticamente após eventos como INSERT, UPDATE ou DELETE.CREATE TRIGGER atualiza_data BEFORE UPDATE ON …
ProcedureBloco de código (geralmente em SQL) executável sob demanda, com lógica de negócio.CREATE PROCEDURE calcula_totais(…)
Functionemelhante à procedure, mas retorna um valor específico (pode ser usada em SELECTs).CREATE FUNCTION calcular_imposto(…) RETURNS …
SequenceGera valores numéricos sequenciais, geralmente usados para gerar IDs únicos.CREATE SEQUENCE seq_cliente START WITH 1
SynonymUm apelido para objetos de outros schemas, facilitando o acesso cruzado.CREATE SYNONYM cli FOR externo.clientes
SchemaAgrupamento lógico de objetos de banco (pastas lógicas).CREATE SCHEMA financeiro
Usuário/RoleElementos de segurança que controlam acesso e permissões sobre os objetos.GRANT SELECT ON tabela TO usuario

Importante para SAP HANA:

No SAP HANA, alguns objetos são especialmente relevantes:

  • Calculation Views (_SYS_BIC): modelos lógicos criados no HANA Studio/Web IDE, usados em BI.
  • Column Store Tables: armazenam os dados em colunas para performance analítica.
  • Analytic Privileges: controlam o acesso a dados linha a linha (filtros dinâmicos de segurança).

Mapa Mental de Exemplos


Exemplos Práticos

🔍Select

SELECT * 
FROM silver.vw_fato_ordens_resumido
WHERE dt_ano = 2025;

🧱 Criar Tabela

CREATE COLUMN TABLE lcb_prd_silver_hub_business.tb_fato_ordens (
    id_ordem INTEGER PRIMARY KEY,
    id_cliente INTEGER,
    valor_total DECIMAL(15,2),
    dt_emissao DATE
);

🔍 Criar View

CREATE VIEW lcb_prd_silver_hub_business.vw_fato_ordens_resumido AS
SELECT id_cliente, SUM(valor_total) AS total
FROM lcb_prd_silver_hub_business.tb_fato_ordens
GROUP BY id_cliente;

⚙️ Criar Procedure

CREATE PROCEDURE lcb_prd_silver_hub_business.prc_calcula_totais_cliente (
    IN ano INT,
    OUT total_geral DECIMAL(15,2)
)
LANGUAGE SQLSCRIPT
AS
BEGIN
    SELECT SUM(valor_total) INTO total_geral
    FROM lcb_prd_silver_hub_business.tb_fato_ordens
    WHERE YEAR(dt_emissao) = :ano;
END;

⚙️ Chamar Procedure

-- Chamada de procedure
CALL silver.prc_calcula_totais_cliente('2025-01-01', '2025-12-31');

🧠 Criar Function

CREATE FUNCTION lcb_prd_silver_hub_business.fn_calcula_idade (
    nascimento DATE
)
RETURNS idade INT
LANGUAGE SQLSCRIPT
AS
BEGIN
    RETURN YEAR(CURRENT_DATE) - YEAR(:nascimento);
END;

🔁Criar Trigger

CREATE TRIGGER trg_log_update_ordens
BEFORE UPDATE ON lcb_prd_silver_hub_business.tb_fato_ordens
REFERENCING OLD ROW AS old NEW ROW AS new
FOR EACH ROW
BEGIN
    INSERT INTO lcb_prd_silver_hub_business.tb_log_execucao
    VALUES (CURRENT_TIMESTAMP, 'UPDATE', old.id_ordem, new.valor_total);
END;

🔐Criar Constraints

CREATE TRIGGER trg_log_update_ordens
BEFORE UPDATE ON lcb_prd_silver_hub_business.tb_fato_ordens
REFERENCING OLD ROW AS old NEW ROW AS new
FOR EACH ROW
BEGIN
    INSERT INTO lcb_prd_silver_hub_business.tb_log_execucao
    VALUES (CURRENT_TIMESTAMP, 'UPDATE', old.id_ordem, new.valor_total);
END;

🧮Criar Sequence

CREATE SEQUENCE silver_business.seq_chave_log_execucao
START WITH 1 INCREMENT BY 1;

🧷 Criar Synonym

CREATE SYNONYM syn_dim_municipio
FOR compartilhado_dados_mestres.tb_dim_ibge;

🔒Criar Segurança (Usuário/Roles)

-- Criar role
CREATE ROLE role_consulta_silver;

-- Conceder acesso
GRANT SELECT ON SCHEMA lcb_prd_silver_hub_business TO role_consulta_silver;

-- Atribuir role ao usuário
GRANT role_consulta_silver TO usuario_bi;


Keywords: Objetos de Banco de Dados: Guia Completo; Aprenda os Principais Objetos de um Banco de Dados; Exemplos Práticos de Objetos em SQL para Iniciantes


Junte-se a 970 outros assinantes

Deixe um comentário