domingo, 26 de abril de 2015

SQL - Structured Query Language

E ai pessoal ... Mas que raio de nome é este no começo da postagem? Vamos traduzir: Linguagem de Consulta Estruturada ... Não ajudou muita coisa né ... Então, vamos resumir bem o negócio: Linguagem para Banco de Dados.

E o que é afinal um banco de dados? Não tem nada a ver com a imagem abaixo ... Na verdade, um Banco de Dados (em inglês Data Base) é uma coleção organizada de qualquer tipo de dados relacionados que criam uma informação, dando mais eficiência a uma pesquisa ou estudo. Em outras palavras, o objetivo principal de um banco de dados é armazenar um grande volume de informação e que estas informações possam ser acessadas a qualquer hora e por vários usuários simultaneamente, estando disponíveis sempre que necessários. É a peça chave da grande maioria de sistemas e softwares que conhecemos.
Banco de Dados - Não tem nada a ver com isso

BD Mysql da Oracle
Podemos imaginar então um banco de dados como uma grande planilha com informações? Mais ou menos. Na verdade o Banco de Dados é algo complexo, tanto que, na minha opinião, é uma das disciplinas mais complicadas da área de TI. Arquitetura de Dados, relacionamentos, representações e mais um monte de conceitos complexos fazem parte da disciplina de Banco de Dados. Dá um nó na cabeça.

Existem hoje no mercado vários softwares de banco de dados, sendo os mais conhecidos o MySQL da Oracle, o PostgreSQL, o SQLServer da Microsoft e o Firebird, que embora seja novo no mercado, está tendo uma boa aceitação. É claro que existem vários outros, inclusive aquele que aprendemos no curso de informática (figurinha carimbada né) o Accsess, que vem junto no pacote Office da Microsoft. No entanto, vale lembrar que o Accsess, embora seja um banco de dados, não oferece uma infraestrutura robusta necessária para uma página Web ou software, assim, ninguém o usa nestes casos.

O PostgreSQL é Código Aberto
E o SQL? Ele começou a aparecer no cenário lá na década de 70, nos laboratórios da IBM. A ideia inicial era usá-la como linguagem de consulta dentro do banco de dados. Por exemplo,imagine um banco de dados com centenas, ou até milhares de números de CPF. Daí, o usuário precisa encontrar o CPF do fulano de tal .... e agora? Vai procurar um por um? Graças ao SQL, podemos fazer uma busca pelo nome e todos os dados aparecem na tela ... Uma beleza, não é mesmo?

Pois bem, apesar da idéia inicial, o SQL não ficou só na consulta. Atualmente, a linguagem é dividida em conjuntos, cada um específico para uma atuação no banco. São elas:

  • Comandos DML (Data Manipulation Language ou Linguagem de Manipulação de Dados): Conjuntos de comandos responsáveis pela manipulação de dados armazenados: criação, alteração, e deleção da estrutura de dados já armazenados no sistema. Os comandos deste conjunto são INSERT, UPDATE e DELETE. 
  • Comandos DQL (Data Query Language ou Linguagem de Consulta de Dados): Conjuntos de comandos para a consulta de dados do banco. Embora tenha apenas um comando, é o mais utilizado da linguagem. Trata-se do comando SELECT.
  • Comandos DDL (Data Definition Language ou Linguagem de Definição de Dados): esta parte é responsável pela criação, alteração e deleção de estruturas das tabelas e índices do sistema. Os comandos são: CREATE e DROP. Alguns bancos aceitam também a opção ALTER, onde o usuário pode alterar um objeto. Além disso, existem os seguintes comandos: CREATE TABLE, CREATE INDEX, CREATE VIEW, ALTER TABLE, ALTER INDEX, DROP INDEX, DROP VIEW. (com um curso básico de inglês já dá para ter uma idéia da serventia destes comandos ...)
  • Comandos DCL (Data Control Language ou Linguagem de Controle de Dados): Responsável pela criação dos usuários e definição das permissões de cada um no banco de dados. Os dois comandos deste conjunto: GRANT e REVOKE.
  • Comandos DTL (Data Tranaction Language ou Linguagem de Transação de Dados): inicializa e finaliza as transações de banco de dados. Os comandos são: BEGIN WORK, COMMIT e ROLLBACK.
Aparecendo no mercado: Firebird
Parece complicado? E é mesmo. A estrutura de um banco de dados requer bastante cuidade, tanto na criação quanto na manipulação. Existem muitas outras coisas envolvidas, como os tipos de dados, tamanho e mais uma série de comandos usados em um Banco.

Mas, para ter uma idéia de como se cria um banco de dados, vamos para um pequenos exemplo:

CREATE DATABASE Curso_ASistema

CREATE TABLE `alunos` (
`IDAluno` INT(11) NOT NULL AUTO_INCREMENT,
`Nome` VARCHAR (60) COLLATE utf8mb4_bin NOT NULL,
`Email` VARCHAR (60) COLLATE utf8mb4_bin NOT NULL,
`SituacaoAluno` VARCHAR (15) COLLATE utf8mb4_bin NOT NULL,
`DataNascimento` DATE NOT NULL,
`TelefoneResidencial` VARCHAR (10) COLLATE utf8mb4_bin DEFAULT NULL,
`TelefoneCelular` VARCHAR (10) COLLATE utf8mb4_bin DEFAULT NULL,
PRIMARY KEY (`IDAluno`)
) ;

SQLServer - da Microsoft
Com este comando, criamos uma tabela chamada Curso_ASistema, com as seguintes colunas: IDAluno (Número de identificação, que será incrementado pelo sistema), Nome, E-mail, Situação do Aluno, Data de Nascimento, Telefone residencial e Celular. Notem que não usamos acentos nem espaço entre as identificações das colunas. Os nomes após a identificação (VARCHAR, DATE etc) são as restrições de domínios (existem várias). O final NOT NULL ou DEFAULT NULL indica se um campo pode ou não ser nulo.

Meu chegado, quanta coisa ... E realmente, como eu disse, isso aqui é um resumo do resumo do resumo de Banco de Dados. Tanto que nas empresas tem uma figurinha importante que merece nosso respeito: o DBA ou Database Administrator ou Administrador de Banco de Dados.Ele é responsável pelo gerenciamento de vários bancos de dados, dos mais variados sistemas. E digo por experiência própria: esquecer um WHERE no comando do SQL complica o banco todo ... ( em um sistema eu dei o comando para alterar apenas um usuário e esqueci do tal WHERE ... mudou todo o banco ...)

Antes de encerrar este post, vale lembrar dos SGBD's ou Sistemas Gerenciadores de Banco de Dados. A criação e gerenciamento dos bancos podem ser feitos com estes programas, que facilitam o trabalho do DBA, embora, na hora da programação, tem de ser usado o SQL.

Ficou grande este post não é mesmo ... Pois bem, então encerramos por aqui. Na próxima, que tal falarmos um pouco do VisualBasic? Ate_a_proxima_entao ...
SGBD para MySQL - PhpMyAdmin, com os meus BD

Nenhum comentário:

Postar um comentário