Objetos de Banco de Dados (Oracle e SQL Server)

Publicado: 13 de novembro de 2012 por Alfredo Henrique em Dicas, Sem categoria, SQL Server 2012
Tags:, , , , , , ,

Este artigo tem como principal objetivo mostrar os principais objetos de Banco de Dados Oracle e SQL Server.

Lembrando que o estudo de banco de dados vai muito além do que será comentado aqui.

OBJETOS BÁSICOS:

Constraint – é uma regra com a qual os dados devem estar em conformidade. O nome da restrição é opcional. Tipos de Constraint:

  1.     NOT NULL – Não permite valores nulos;
  2.     PRIMARY KEY – Atribui uma chave primária à um ou mais campos de uma tabela;
  3.     UNIQUE KEY – Atribui à um ou mais campos a integridade de que os valores são únicos;
  4.     FOREIGN KEY – Atribui à um campo a integridade de referencia a outra tabela;
  5.     CHECK – Atribui uma regra de validação para a inserção de um campo;
  6.     DEFAULT – Atribui um valor padrão quando for inserido um valor nulo;

Tables – As tabelas são os objetos principais em um modelo relacional, pois são elas que armazenam e organizam os dados de forma lógica dentro do banco de dados. Uma tabela écomposta por tuplas (linhas ou registros) e colunas(atributos).

Exemplo:

  • ORACLE

    
    CREATE TABLE Sample_Oracle
    ( Sample_Id NUMBER(6) ,
    Sample_First_Name VARCHAR2(20) ,
    Sample_Last_Name VARCHAR2(25) CONSTRAINT Sample_Last_Name_NotNull NOT NULL,
    Sample_Email VARCHAR2(65) CONSTRAINT Sample_Email_NotNull NOT NULL,
    Sample_SignUp_Date DATE DEFAULT SYSDATE CONSTRAINT Sample_SignUp_Date_NotNull NOT NULL ,
    Sample_Salary NUMBER(8,2),CONSTRAINT Salary_Min_Check CHECK (salary > 0) ,
    CONSTRAINT Sample_Email_UniqueKey UNIQUE (Sample_Email),
    CONSTRAINT Sample_id_PrimaryKey PRIMARY KEY (Sample_id)) ;

  • SQL Server

     CREATE TABLE Sample_SQLServer
    ( Sample_Id NUMBER(6) ,Sample_First_Name NVARCHAR(20) ,
    Sample_Last_Name NVARCHAR(25)  NOT NULL,Sample_Email NVARCHAR(65) NOT NULL,
    Sample_SignUp_Date DATETIME  NOT NULL  DEFAULT GETDATE() ,
    Sample_Salary DECIMAL(8,2),
    CONSTRAINT Salary_Min_Check CHECK (salary > 0) ,
    CONSTRAINT Sample_Email_UniqueKey UNIQUE (Sample_Email) ,
    CONSTRAINT Sample_id_PrimaryKey PRIMARY KEY (Sample_id)) ;

Indexes – Em bancos de dados, um índice é uma estrutura de dados que melhora a velocidade de operações de recuperação ou alteração de dados em uma tabela.
Exemplo:

  • ORACLE

    CREATE INDEX Sample_Name_Index ON Sample (Sample_Name)
    TABLESPACE SampleSpace

* TableSpace – Uma unidade de armazenamento que contém as estruturas lógicas do banco.

  • SQL SERVER

    CREATE CLUSTERED INDEX Sample_Name_Index ON Sample (Sample_Name)

*No SQL Server, existem basicamentes dois tipos de índices:

  1. Index Clustured: Geralmente criado quando criamos uma PimaryKey. Possui uma ordenação a nível de tabela.
  2. Index Non-Clustered: Possui uma ordenação a nível de pagina possui as mesmas restrições dos index clustered

View – Tabela Virtual ou Lógica gerada apartir de uma Consulta. É possivel aplicar todos os comando DML(Data Manipulation Language) em uma View [Select | Insert | Update | Delete].
Exemplo:

  • ORACLE & SQL Server

    CREATE VIEW Sample_View  AS
    SELECT * FROM Sample

Materialized View(Oracle) – As Materialized Views podem inicialmente ser confundidas com tipos de views, porém apresentam algumas diferenças significativas. É obtida através de uma consulta, mas os dados resultantes da Materialized View são armazenados em uma tabela física, pode ser tanto cópias locais quanto remotas (Bancos Diferentes). É muito utilizado para BI (Business Inteligence).
Exemplo:

  • ORACLE

    CREATE MATERIALIZED VIEW LOG ON Samples
    WITH ROWID, SEQUENCE (Sample_Id)
    INCLUDE NEW VALUES
     
    CREATE MATERIALIZED VIEW
    BUILD IMMEDIATE
    REFRESH FAST ON COMMIT
    AS SELECT * FROM Sample

Indexed View (SQL Server) – Segue o mesmo conceito de uma Materialized View no Oracle. Indexar uma View, os dados são armazenados em uma tabela virtual e são atualizados sempre que os dados de suas tabelas originais são alterados. As Views indexadas são recomendadas, quando os dados das tabelas que são utilizadas nas Views não sofrerem muitas alterações. No caso de existirem muitas alterações nos dados das tabelas, o tempo de processamento para montar o Index da View pode ser maior que o tempo para fazer a consulta sem Index às tabelas.
Exemplo:

  • SQL SERVER

     
    CREATE VIEW Sample_View  AS
    SELECT * FROM Sample
     
    CREATE CLUSTERED INDEX Sample_Indexed_VIew ON Sample_View (Sample_id)

Sequences (Oracle) – As sequências são um recurso largamente utilizado no Oracle, pois é muito comum que sistemas utilizem números sequenciais (por exemplo, para atribuir um código a um funcionário). Muitos bancos de dados oferecem um tipo de dado autonumerado que pode serutilizado na definição da coluna (no momento da criação da tabela), porém o Oracle não possui esse tipo. Em contrapartida, o Oracle oferece o objeto sequence, que fornece omesmo tipo de funcionalidade, diferenciando-se apenas pelo fato de que é um objeto independente da tabela.
Exemplo:

  • ORACLE

    CREATE SEQUENCE Sample_Id_Sequence
    START WITH 1
    INCREMENT BY 1
    MAX VALUE 999
    NOCYCLE
     
    INSERT INTO Sample (Sample_id, Sample_Name) VALUES (Sample_Id_Sequence.nextval, ‘Alfredo Henrique’)

 Identity (SQL Server) – A finalidade incrementar um valor a cada nova inserção.
Exemplo:

  • SQL SERVER

    CREATE TABLE Sample
    ( Sample_id Numbe(6) NOT NULL Indentity (1,1),
    Sample_Name  VARCHAR (50) NOT NULL)
     
    INSERT INTO Sample (Sample_Nome) VALUES (”Alfredo Henrique’)
Procedures – São blocos de comandos PL/SQL que podem ser chamados por um nome, e que podem ser compilados e armazenados. Isso proporciona a possibilidade de reutilização do bloco de comandos. As procedures podem ter parâmetros definidos na sua criação, e consequentemente utilizados dentro do bloco de comandos. Procedures não precisam obrigatoriamente ter algum valor de retorno.
Exemplo:
 

  • ORACLE

    CREATE OR REPLACE PROCEDURE SP_Sample_UpdateProcedure
    ( @Sample_Name VARCHAR2(25), @Sample_id NUMBER (6))
    IS
    ExceptionValue EXCEPTION
     
    BEGIN
     
    IF (@Sample_id <> NULL) THEN
    UPDATE Sample SET Sample_Name = @Sample_Name;
    ELSE
    RAISE ExceptionValue;
    END IF;
     
    EXCEPTION
    WHEN ExceptionValue THEN
    RAISE_APPLICATION_ERROR(-20999,’ATENÇÃO! Operação INVÁLIDA’, FALSE);
     
    END SP_Sample_UpdateProcedure

  • SQL SERVER

    CREATE PROCEDURE SP_Sample_UpdateProcedure
    ( @Sample_Name VARCHAR2(25), @Sample_id NUMBER (6))
    AS
    BEGIN
     
    IF (@Sample_id <> NULL) THEN
    UPDATE Sample SET Sample_Name = @Sample_Name;
    ELSE
    RAISEERROR (,’ATENÇÃO! Operação INVÁLIDA’, 16, 1);
     
    END

Outros Objetos

Synonyms – Este recurso tem como objetivo proporcionar a possibilidade de criar apelidos para um ou mais objetos que façam parte deste sinônimo. Sua utilização facilita em muito o desenvolvimento de scripts, quando se existe a necessidade de utilizar objetos em locais distintos armazenados no Banco de Dados. Com esta alternativa o Banco acelera a busca de objetos criados.
É possível utilizar Tables, Views, Funções Scalar, Funções In-Line, Stored Procedure, Extended Stored Procedure, Assembly e Filtros de Replicação, sendo necessário que estes objetos existam fisicamente no servidor SQL Server, caso contrário a criação ou alteração deste sinonimo é cancelada.

Packages – São objetos que organizam logicamente um conjunto de objetos( procedures ou functions, por exemplo) que pertencem a um mesmo grupo. Os pacotesfacilitam a organização e o acesso aos objetos que os compõem. Um package é composto porduas partes: as especificações (specification) e corpo do pacote (body).
Até o SQL Server 2000 era possível a criação de Packages atrás do serviço de Data Transformation Services (DTS). Mas no SQL Server 2005 e 2008 o DTS não é mais suportado, sendo assim, a Microsoft adicionou uma ferramenta chamada SQL Server Business Intelligence Development Studio, responsável em criar projetos para importação/exportação de dados entre diversas fontes de dados, possibilitando a integração de informações.

Functions – São, assim como as Procedures, blocos de comandos que podem ser chamados através de um nome e são reutilizáveis. Além disso, também aceitam parâmetros definidos em sua criação. Devem ter sempre o retorno de um valor.

Este artigo apresentou alguns dos objetos básicos de um Banco de Dados. Caso esteja interessado em adquirir mais conhecimento no assunto seguem algumas fontes:

Deixe um comentário