Arquivo da categoria ‘Dicas’

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:

Melhorando desempenho: A classe StringBuilder

Publicado: 18 de maio de 2012 por Prof @Virtualiza Cooperativa em Classe, Desempenho, Dicas, StringBuilder

Apesar da versatilidade da classe string, operações com string podem consumir muitos recursos e causar perda de desempenho. Isto ocorre porque a cada operação o framework cria um novo buffer para a string resultante da operação, ao invés de aproveitar o buffer que está sendo utilizado. Isto é mais aparente em operações de concatenação.


Para não criar este tipo de problema, podemos utilizar a classe StringBuilder, do namespace System.Text. Esta classe permite a criação de strings aproveitando o buffer utilizado, o que torna o código mais eficiente. 

No exemplo a seguir temos um trecho de código com uma operação feita de forma ineficiente e outra mais eficiente usando o stringBuilder, veja a diferença. 

// Codigo ineficiente

string sql;

CT * FROM Products";
sql += " WH

sql = "SEL
EERE CategoryId=1 AND";

rice>10";

// Codigo Eficiente
St

sql += " AND Unit
PringBuilder sb =
new StringBuilder();


nd(" WHERE CategoryId=1 AND");
sb.Ap

sb.Append("SELECT * FROM Products");
sb.App
epend(" AND UnitPrice>10");



sql = sb.ToString();


Artigo retirado do site: http://www.dotnetmaniacs.com.br 

Internet Explorer 10 estilo Metro

Publicado: 19 de março de 2012 por Prof @Virtualiza Cooperativa em Dicas, Internet Explorer 10, Metro, Novidades

Conectando sites e app no estilo Metro

Snap torna mais fácil usar o Windows 8 para mais de uma coisa de cada vez. Você pode navegar na IE10 e ter lado a lado o acesso ao seu e-mail, música, ou qualquer outra aplicação.

Charms fornece uma maneira consistente para executar ações comuns, como pesquisa e compartilhamento no Windows 8. IE10 tem suporte a pesquisa, compartilhamentos, dispositivos e definições.

Com Site Pinningvocê pode personalizar sua tela Iniciar do Windows com os sites que você usa todo o tempo. Você pode fixar qualquer site do IE10 para a tela inicial, então você tem um lugar para abrir todas as coisas que você gosta ou precisa.



Protegendo-o de sites maliciosos

IE10 oferece a mesma segurança lider da indústria, privacidade e confiabilidade, com base no SmartScreen IE9, o XSS filtragem, Reputação do aplicativo, Navegação InPrivate, Rastreamento, Proteção, detecção e recuperação. Além disso, IE10 aproveita Windows 8 para fornecer “modo protegido Enhanced” para melhor isolamento do conteúdo do site em cada guia.

Resumo de alterações do Developer Preview

IE10 no Windows 8 Developer Preview traz uma experiência de estilo mais full-featured Metro para a sua navegação. Aqui estão apenas algumas das melhorias IE10 para navegação rápida e fluida:

  • Completo, composição independente permite um comportamento ágil, rápido e fluido em sites reais (incluindo páginas com elementos fixos, regiões de rolagem, animações e vídeo);
  • Navegação para trás e para frente com pré-visualização;
  • Dê um duplo toque para ampliar conteúdo;
  • Rápido back and forward controles de navegação para mouse;
  • Mouse (CTRL + roda de rolagem) e métodos de teclado para rapidamente zoom in e out para espelhar as interações;
  • Sugestões automáticas de domínio para uma navegação mais rápida e com menas digitação;
  • Suporte Compartilhar charme para URLs, trechos de imagens e seleção com o email e outros aplicativos;
  • Pesquisa charme com sugestões de busca visual;
  • Dispositivos charme para impressão, projeção e reprodução de vídeo para dispositivos externos como TVs;
  • Plug-in de suporte gratuito: as notificações para sites que exigem activeX;
  • Notificações de fundo para locais fixos e outras melhorias telha;
  • Jumplists para sites fixados;
  • InPrivate guias que são mais fáceis de abrir;
  • Comando de limpar as guias, que rapidamente fecha todas as guias, inclusive a atual;

Podemos esperar mais melhorias com o tempo, tendo em vista o sistema operacional possa atinge a versão final no último trimestre do ano.
* Mas se mesmo assim você ainda não gostou do novo IE 10 Metro, não precisa se preoucupar é simples.
Basta abrir o Internet Explorer, clicar em Tools e depois em View on the desktop:


E então “Voilà”…

Você terá a versão do IE10 DESKTOP, como no tradicional Windows 7 com a versão do IE9. Sem se assustar e deparar o estilo METRO.
* Está dica fica para aqueles que apesar dos inúmeros recursos e funcionalidades do IE10 Metro ainda sim preferem a tradicional versão Desktop. Espero que tenham gostando, até o próximo.