Com o objetivo de auxiliar os estudantes iniciantes nas Linguagens de Consulta, estarei postando alguns textos que poderá servir como material de apoio. Para iniciar, vamos falar um pouco sobre a Linguagem SQL.
1.
Introdução
Linguagem de
consulta é uma linguagem que permite que usuários requisitem e acessem
informações armazenadas em Bancos de Dados, sem causar alterações no banco de
dados. Normalmente, estas linguagens são escritas em um nível mais alto do que
as linguagens de programação padrão (DATE, 2000).
As
linguagens de consulta são classificadas em dois grupos, sendo as linguagens de
consulta procedurais, na qual o usuário realiza uma sequência de operações no
banco de dados para obter os resultados desejados, e as linguagens de consulta
não procedurais, que refere-se a descrição das informações desejadas pelo
usuário sem fornecer procedimentos específicos para obtê-las (SILBERCHATZ, 2012).
A grande
maioria dos Sistemas de Gerenciamento de Banco de Dados Relacionais (SGBDR) oferecem
uma linguagem de consulta que incluem elementos procedurais e não procedurais.
Dentre as linguagens de consultas utilizadas por SGBDRs destaca-se a SQL (em
português, linguagem de consulta estruturada), que será tratada neste texto (SILBERCHATZ,
2012).
Existem
também, na literatura, linguagens de consulta “puras” que são concisas e
formais e tem, por objetivo, ilustrar as técnicas fundamentais para extração de
dados de BDs. Como exemplo deste tipo de linguagem de consulta, podemos citar a
álgebra relacional e o cálculo relacional (SILBERCHATZ, 2012).
2.
Linguagem
SQL.
A SQL (Linguagem de Consulta Estruturada) é uma linguagem de
consulta declarativa padrão para bancos de dados relacionais. Ela utiliza uma
combinação de construções de álgebra relacional e cálculo relacional. Embora
seja uma linguagem de consulta, a SQL permite a realização de tarefas mais
amplas do que, simplesmente, consultar. Com a SQL é possível também definir e
modificar estruturas de banco de dados, manipular dados e especificar
restrições de segurança (SILBERCHATZ, 2012).
O objetivo deste texto é de apresentar alguns conceitos
fundamentais de SQL, sem aprofundar ou apresentar todos os aspectos que esta
linguagem permite.
2.1.
Aspectos
Gerais
A SQL foi
desenvolvida pela IBM e, inicialmente, teve o nome de SEQUEL, no início da década
de 70, com a sua evolução, a linguagem SEQUEL foi alterada para SQL (Linguagem
de Consulta Estruturada). É considerada
a linguagem padrão para SGDBR[1]
(Sistemas de Gerenciamento de Banco de Dados Relacional), ou seja, mantém as
características essenciais nos produtos de diversos fabricantes (DAMAS,
2007).
Por ser uma linguagem considerada padrão, a SQL apresenta
vantagens de utilização para os usuários, pois, facilita a migração entre
SGBDRs, no que diz respeito ao conhecimento dos Sistemas de Gerenciamentos.
Silberchatz (2012) comenta que a linguagem SQL possui
diversas partes, sendo elas:
·
Linguagem de Definição de Dados (DDL): Fornece
comandos que permite definir, alterar e excluir esquemas[2]
de dados.
·
Linguagem de Manipulação de Dados (DML): Fornece
comandos que permite incluir, alterar e excluir dados em bancos de dados.
·
Integridade: inclui comandos que permite
especificar restrições de integridade.
·
Definição de view: Inclui comandos que permite
definir visões[3] do
banco de dados.
·
Controle de transação: possui comandos que
permitem especificar o início e o fim de uma transação.
·
SQL embutida e SQL dinâmica: define como as
instruções SQL podem ser incorporadas nas linguagens de programação de
finalidade geral.
·
Autorização: Inclui comandos que permitem
especificar direitos de acessos aos dados e as visões.
1.1. Definição de Dados
As relações (tabelas) de um banco de dados são especificadas
para o SGBD por meio de linguagem de definições de dados (DDL). A DDL SQL
permite especificar, além das relações, informações sobre cada relação, como
(SILBERCHATZ, 2012):
·
O esquema para cada relação;
·
O domínio[4]
de valores associados a cada atributo;
·
As restrições de integridade;
·
O conjunto de índice a serem mantidos em cada
relação;
·
As informações de segurança e autorização de
cada relação;
·
A estrutura de armazenamento físico de cada
relação.
Para uma melhor compreensão, discutiremos neste texto apenas
as definições básicas de DDL, entretanto, é importante ressaltar que há outros
recursos disponíveis em SQL, em nível de DDL, além dos recursos tratados neste
texto.
1.2.
CREATE
Por meio do comendo Create,
é possível objetos de banco de dados, como o esquema de banco de dados,
relações (tabelas), visões, trigger, entre outros.
Para definirmos um banco de dados, utilizamos o script apresentado
no Quadro 1:
CREATE DATABASE baseteste;
Quadro 1 - Scripte de criação de Banco de
Dados.
Após a definição do banco de dados, podemos então, criar as
tabelas que irão compor o banco de dados, para tanto, vamos utilizar o esquema
exemplificado na Tabela 1.
O Quadro 2
apresenta o script de criação da tabela.
CREATE TABLE
funcionário (
idfuncionario
INT NOT NULL PRIMARY KEY,
nome
VARCHAR(100) NOT NULL,
salario
NUMBER(12,2) NOT NULL,
sexo CHAR(1),
uf CHAR(2) );
Quadro 2 - Script de criação de tabela
No Script apresentado no Quadro 2,
todos os termos escritos em letra maiúscula são comandos e/ou palavras
reservadas do SQL. Para entendermos melhor este script, temos:
- CREATE TABLE - comando SQL específico para a criação da tabela;
- funcionário - O nome atribuído a tabela;
- ( - após o parenteses, inicia-se a lista de atributos (colunas / campos) que pertencem a tabela;
- Os itens idfuncionario, nome, salario, sexo e uf são atributos pertencentes a esta tabela.
Na definição de cada atributo, temos a seguinte sintaxe
básica, embora possa existir algumas variantes desta sintaxe:
Nome_do_atributo domínio obrigatoriedade,
- Nome_do_atributo - refere-se ao nome dado a coluna que irá guardar um determinado valor;
- Domínio - especifica o tipo de dado que aquele atributo poderá armazenar, no exemplo temos os seguintes tipos:
o
INT -
Tipo Inteiro que pode armazenar valores numéricos inteiro (com sinal);
o VARCHAR(n) -
Caractere Variante que pode armazenar uma string de comprimento variável.
o
NUMBER(n,d) -
Valor numérico constituído por n dígitos, sendo d o número de casas decimais;
o
CHAR(n) -
uma string de comprimento fixo.
- Obrigatoriedade - especifica se o atributo deverá ter o seu valor preenchido (NOT NULL) ou poderá ser nulo/vazio (NULL).
- , - a vírgula separa colunas que serão inseridas na tabela.
A primeira coluna criada nesta tabela possui uma regra que a
define como chave primária (primary key). Uma chave primária é um atributo ou
um conjunto de atributos que tem a finalidade de identificar o registro. Como
característica, uma chave primária deve ter o seu preenchimento obrigatório
(NOT NULL) e deve ser única, ou seja, não pode ocorrer dois campos (coluna) de
chaves primária com o mesmo valor. As chaves primárias também são utilizadas
para realizar os relacionamentos entre as tabelas, por meio das chaves
estrangeiras (foreign key).
Questões a considerar:
É importante seguir um padrão de nomenclatura (nome dados
aos objetos – bancos de dados, tabelas, atributos e outros) em SQL. A
utilização do padrão pode amenizar ou, até mesmo, eliminar problemas futuros de
manutenção.
No final de cada script temos o “;” que indica o final do
comando.
No próximo post estarei apresentando a cláusula de Alteração Alter Table.
Referências
DATE, C. J.
Sistemas de Banco de Dados. Rio de Janeiro: Ed. Campus, 2000.
DAMAS, L.
SQL – Linguagem de Consulta Estruturada. Rio de Janeiro: Ed. LTC, 2007.
ELMASRI, R.
Sistemas de Banco de Dados. São Paulo: Ed. Addisson Wesley, 2012.
SILBERCHATZ,
A. Sistemas de Banco de Dados. Ed. Elsevier, 2012.
[1]
SGBDR é um conjunto de programas de computador (softwares) responsáveis pelo
gerenciamento de uma base de dados.
[2]
Esquema de Dados refere-se a coleção de objetos de um banco de
dados que estão disponíveis para um determinado usuário ou grupo
[3]
Visões de banco de dados refere-se a um objeto que não armazena dados, ou seja,
não ocupa espaço em disco e é composto por uma consulta.
[4] O
valor de domínio refere-se, sucintamente, ao tipo de dados (integer, char,
varchar, entre outros) que cada atributo pode receber. Para maiores
esclarecimentos sobre domínios de valores e demais itens que a DDL permite
especificar, faz-se necessário uma leitura complementar na bibliografia.
Nenhum comentário:
Postar um comentário