Pular para o conteúdo principal

O que devemos conhecer sobre SQL/Oracle Parte 1: Introdução ao SQL




 

Série de postagens sobre SQL


A algum tempo atrás, não me lembro se 2009 ou 2010, comecei a escrever uma serie de artigos contendo pontos importantes sobre banco de dados, mais precisamente Oracle. Porem um descuido e uma formatação apressada fez com que eu perdesse esses artigos.
Porem recentemente, buscando uma declaração de imposto de renda, reencontrei esses artigos, a maior parte ainda esta sem formatação e outra por terminar, mas o fato de ter encontrado me deu vontade de finalizar e publicar tudo, ao todo imaginei cerca dezoito postagens abordando os mais variados tópicos. 
Começaremos hoje com um pouco de historia e um rápido resumo, espero que gostem desse e dos próximos.

Banco de dados relacionais e Dr. E. F. Codd


Antes do advento dos bancos de dados relacionais, cada desenvolvedor formulava seus próprios meios de armazenar, alterar e recuperar dados, dessa forma cada aplicação tratava a informação de um modo único, tornando a integração entre aplicações algo extremamente trabalhoso, além é claro do tempo de desenvolvimento se tornar maior.
Na década de 70 Dr. E. F. Codd desenvolveu um projeto que propunha o modelo atual de bancos de dados relacionais, onde os programadores poderiam por meio de uma linguagem padrão, comum e unificada, construir seus próprios bancos de dados.

Normalização de uma base de dados


Normalização nada mais é do que métodos que se propõe a diminuir problemas durante o uso da base de dados, como por exemplo, a construção de um modelo que não permita dados duplicados.
É importante salientar que as regras de normalização não são necessariamente objetos e sim conceitos que devem ser levados em consideração no momento da modelagem do banco, lembrando que toda base de dados que se preze deve seguir ao menos as três primeiras:

  • Primeira forma normal (1NF): Sem repetição de grupos de dados, tabelas bidimensionais;
  • Segunda forma normal (2NF): 1NF mais o fato de que cada elemento possui um identificador único (chave primária);
  • Terceira forma normal (3NF): 2NF mais o fato de que as tabelas devem possuir apenas informações referentes ao que se propõe a chave primária (informações extras devem ficar em outras tabelas);
  • Boyce-Codd (BCNF): Modificação da 3NF que elimina estruturas que possam gerar inconsistências logicas nos dados;
  • Quarta forma normal (4NF): BCNF mais logica que assegura que toda dependência multivalorada é dependente de uma superkey;
  • Quinta forma normal (5NF): 4NF mais o fato que toda junção dependente para a tabela é resultado de chaves candidatas;

Definindo e entendo o básico do SQL


A linguagem SQL é uma das mais utilizadas na atualidade, devido ao seu padrão para as bases de dados relacionais que dominam o mercado. Ela também é uma das mais poderosas, e em alguns casos também perigosa, pois permite a escrita de comandos sintaticamente corretos e logicamente errados. 
SQL significa linguagem estruturada de consulta e sobre ela podemos:
  • Criar bases de dados e objetos;
  • Armazenar dados nessa base;
  • Alterar e analisar os dados;

A base dos comandos do SQL são as palavras reservadas:
  • Select: recupera dados;
  • Insert: insere dados nas tabelas;
  • Update: atualiza dados nas tabelas;
  • Delete: remove dados das tabelas;
  • Create: cria um objeto do banco, como uma tabela, por exemplo;
  • Alter: altera um objeto do banco, como uma coluna de tabela;
  • Drop: remove um objeto do banco;

A seguir ...

Comentários

Mais visitadas

Funções de data Oracle

  Com o Oracle é possível obter uma série de resultados a partir de uma ou mais datas, como por exemplo verificar o último dia do mês ou verificar a quantidade de meses entre duas datas, então vamos a alguns exemplos:   Data atual do sistema: SYSDATE Remover meses de uma data: ADD_MONTHS(SYSDATE, -1) Adicionar meses de uma data: ADD_MONTHS(SYSDATE, +1) Buscar o último dia do mês: LAST_DAY(SYSDATE) Primeiro dia do mês: TRUNC(SYSDATE, ‘MONTH’) Quantidade de meses entre duas datas: MONTHS_BETWEEN(SYSDATE, ‘27/07/1982’) Primeiro dia do ano: TRUNC(SYSDATE, ‘YEAR’) Dias da semana: DECODE( TO_NUMBER( TO_CHAR          (SYSDATE, ‘D’) ) ,1, ‘domingo’ ,2, ‘segunda-feira’ ,3, ‘terça-feira’ ,4, ‘quarta-feira’ ,5, ‘quinta-feira’ ,6, ‘sexta-feira’ ,7,’sábado’ )

Funções de Data e Hora (Delphi)

É muito comum nos depararmos no dia a dia com a necessidade de manipular datas e horas, seja para um calculo de permanência, dias de atraso enfim, é praticamente escapar de alguma situação que necessite desse tipo de controle. Assim como a necessidade e se utilizar algum recurso para manipular as datas e horas de alguma maneira e freqüente, as duvidas de como o faze-lo também é, basta um breve olhar em qualquer fórum especializado e lá está, alguma duvida relacionada, por isso decidi falar um pouco sobre uma unit muito poderosa chamada DateUtils para a manipulação de data e hora, com um grande numero de métodos e classes que facilitam a vida de qualquer um. Alguns exemplos: CompareDate(constA, B: TDateTime): TValueRelationship; Compara apenas a data de dois valores (do tipo TDateTime) retornando: LessThanValue O primeiro valor é menor que o segundo EqualsValue Os valores são iguais GreaterThanValue O primeiro valor é maior que o segundo CompareDateTime(const A, B: TD

Como Verificar se um Objeto Existe (Delphi)

Em alguns momentos surge a necessidade de verificar se um determinado objeto existe, ou seja se já foi criado, principalmente quando se trabalha com criação dinâmica em tempo de execução, então vamos ao exemplo: - Vamos criar uma variável, um vetor do tipo caixa de texto: var Minha_caixa : array of TEdit; - Em seguida definir o tamanho desse vetor, no caso será dez: setLength(Minha_caixa, 10) - Agora iremos criar nossa caixa de texto: // lembrando que o vetor inicia em zero // logo o índice final é o tamanho total - 1 for vl_i := 0 to Length(Minha_caixa) -1 do begin Minha_caixa[vl_i] := TEdit.Create(self); with Minha_caixa[vl_i] do begin Parent := Self; Name := 'Caixa_N'+IntToStr(vl_i); Text := 'Esta é a '+IntToStr(vl_i)+' º caixa !'; ReadOnly := true; Height := 21; Width :=