Baixe o app para aproveitar ainda mais
Prévia do material em texto
Abordagem das Linguagens de Definição e Manipulação de Dados associadas a Linguagem de Consulta Estruturada Jacciano da Silva Faleiro UNINOVE São Paulo, Brasil E-mail: jack_faleiro@yahoo.com.br Resumo— Este artigo apresenta uma visão dos Sistemas Gerenciadores de Banco de Dados e algumas vantagens em utilizar-se estes sistemas. Em seguida, apresenta-se uma visão geral da Linguagem de Consulta Estruturada (SQL) e as linguagens que a compõem (Linguagem de Definição de Dados, Linguagem de Manipulação de Dados, Linguagem de Controle de Dados e Linguagem de Transação de Dados) bem como os principais comandos associados a estas linguagens. É destacada a importância do uso das linguagens de Definição e Manipulação de Dados e suas aplicações no contexto de um Sistema Gerenciador de Banco de Dados. Palavras chave - Sistemas Gerenciadores de Banco de Dados; Linguagem de Consulta Estruturada; Linguagem de Definição de Dados; Linguagem de Manipulação de Dados. Abstract— This article present a vision introduction to the System Manager Database, which something the advantages of their use. In sequence we present an overview of the Structured Query Language and language that comprise (Data Definition Language, Data Manipulation Language, Data Control Language and Transaction Data Language) a principal at command the languages association . The pointed importance the using the language of Definition and Data Manipulation and it’s applications in the context of a System Manager Database. Keywords - System Manager Database; Estructured Query Language; Data Definition Language; Data Manipulation Language. I. INTRODUÇÃO Este artigo tem por objetivo fornecer ao leitor fundamentos das linguagens de Definição e Manipulação de dados. Para que se compreendam melhor os conceitos, vantagens e importância da Linguagem de Consulta Estruturada ou SQL (Structured Query Language), especificamente as linguagens de Definição e Manipulação de Dados. Apesar do foco deste artigo estar nas linguagens acima mencionadas, também serão apresentadas, em menor detalhe, as demais linguagens que compõem a Linguagem de Consulta Estruturada. As ferramentas de Sistema Gerenciador de Banco de Dados para bancos de dados relacionais sofrem melhorias significativas periodicamente e permite que os sistemas que delas se utilizam sejam cada vez mais eficazes na demonstração de suas informações. Com isso surge a necessidade de profissionais qualificados para manusear os Sistemas Gerenciadores de Banco de Dados Relacionais. Mas para isso esses profissionais terão que se especializar em uma linguagem chamada Linguagem de Consulta Estruturada para poderem manusear os Sistemas Gerenciadores de Banco de Dados apropriadamente. A Linguagem de Consulta Estruturada desenvolveu-se muito desde o seu surgimento em 1974 [9]. É uma linguagem padronizada que ajuda na construção, manipulação, concessão e transação de dados entre outras linguagens que ajudam na criação e manutenção do Banco de Dados. Este artigo apresenta as linguagens contidas na Linguagem de Consulta Estruturada. Para tal, são demonstrados breves conceitos sobre os Sistemas Gerenciadores de Banco de Dados, histórico da Linguagem de Consulta Estruturada e suas linguagens associadas, seus comandos didaticamente facilitados para entendimento, importância e aplicações destas linguagens. Este artigo está organizado da seguinte forma: na seção II são apresentadas as características gerais de um Sistema Gerenciador de Banco de Dados, bem como as vantagens de sua utilização. Em seguida, na seção III são apresentadas as características da Linguagem de Consulta Estruturada sem deixar de mencionar o seu histórico, vantagens e linguagens associadas tais como: Linguagem de Definição de Dados, Linguagem de Manipulação de Dados, Linguagem de Controle de Dados e Linguagem de Transação de Dados. A seção IV enfatizada a importância do uso das linguagens de definição e manipulação de dados e em seguida, na seção V, são descritas as aplicações das linguagens de definições e manipulações de dados e, por fim, as considerações finais. II. CARACTERÍSTICAS GERAIS DE UM SISTEMA GERENCIADOR DE BANCO DE DADOS SGBD (Sistema de Gerenciamento de Banco de Dados) é um tipo de sistema que tem como principal objetivo acessar e manipular dados, estabelece uma interface entre o software aplicativo e o Banco de Dados. É um sistema de propósito geral, facilitador dos processos de definição, construção, manipulação e compartilhamento de Banco de Dados, para que os dados que estão sendo requisitados pela aplicação sejam gerenciados, verificados e devolvidos de forma rápida, segura e eficiente. Esses dados são relacionados de forma que possam ser acessados mais facilmente [3]. A Figura 1 apresenta uma visão geral do processo onde o usuário, por meio de qualquer computador e aplicativo, fornece elementos suficientes para solicitar informações que estão armazenadas no Banco de Dados. Em seguida estes elementos passam pelo SGBD até chegar ao Banco de Dados, depois que a solicitação foi recuperada, ou seja, os dados solicitados foram obtidos é realizado o caminho inverso até que os dados sejam fornecidos ao usuário. O SGBD é um sistema baseado em software responsável por relacionar a interface do usuário com o Banco de Dados. Figura1. Relação Usuário – SGBD O principal objetivo do SGBD é oferecer um ambiente tanto conveniente quanto eficiente para a recuperação e armazenamento de informações no Banco de Dados [3]. Os SGBD’s são conhecidos pela sua rapidez de execução. Principalmente, numa época onde até mesmo os maiores sistemas se mostram cada vez mais vulneráveis as invasões. Seu sistema de gerenciamento preza pela segurança dos dados, além dos fabricantes prezarem pela sua segurança, eles podem acrescentar várias funcionalidades exclusivas ao seu SGBD, o que ocorre com grande frequência nos principais fabricantes como Microsoft SQL Server, Oracle e IBM [5]. São funções importantes dos SGBD’s suas proteções e manutenções de fácil interação. Proteções contra maus funcionamentos, falhas de hardware, software, e de acessos não autorizadas. Logo as manutenções devem permitir que os Bancos de Dados gerenciados pelos SGBD’s, mantenham a evolução dos requisitos durante um longo tempo [5]. Os SGBD’s possuem esquemas conhecidos como diagramas [5]. Estes esquemas armazenam a estrutura do Banco de Dados que tem algumas características, tais como, não são alterados com frequência e existe um esquema para cada nível de abstração. As abstrações são objetos do mundo real, por exemplos, como aluno ou curso. Os esquemas são desenvolvidos pelos comandos da Linguagem de Definição de Dados, onde se transformam o conceito em estrutura para o armazenamento de dados, com os dados armazenados utilizam-se os comandos da Linguagem de Manipulação de Dados para inserção, alteração, exclusão ou recuperação dos mesmos. SGBD possuem diversas vantagens, entre elas: independências de dados e programa, melhor acesso aos dados e a informação, integridade dos dados aperfeiçoada, redundância de dados, melhor proteção dos dados. Segue abaixo maiores detalhes. Independências de dados e programa: o SGBD organiza os dados independentes do aplicativo. Melhor acesso aos dados e a informação: os SGBD’s tem softwares que facilitam o acesso e a recuperação de dados do Banco de Dados [3]. Comandos simples, relações importantes entre registros ficam mais fáceis de serem explorados e os aplicativos podem ser combinados com maior facilidade. Integridade dos dados aperfeiçoada: evita a existência de arquivos separados que contenham cópiasdos mesmos dados. Evita também a inserção de dados não permitidos ao modelo, como, por exemplo, nota dos alunos de uma escola, onde não pode constar uma nota que seja menor que zero ou maior que dez, pois seria um valor inválido para esse tipo de situação [5]. O Banco de Dados deve impedir que as aplicações comprometam a integridade dos dados [10]. Redundância de dados: os dados são organizados por um SGBD e armazenados em apenas um local, onde são inseridos todos juntos, para que não exista duplicação dos mesmos [10]. Isso possibilita assim em uma melhor utilização do espaço, para ficar melhor armazenado, com maior eficiência e sem necessidade de pesquisar vários arquivos para recuperação das informações [8]. Com isso minimiza-se a redundância dos dados no armazenamento dos mesmos e garante uma eficiente recuperação das informações. Melhor proteção dos dados: como os dados estão centralizados, ficam mais fáceis de serem monitorados e controlados. Senhas podem assegurar que os dados, informações privilegiadas e particulares não sejam acessadas, assim protege os dados de manipulações não autorizadas. As Proteções contra maus funcionamentos, falhas no hardware ou no software e segurança contra diversos acessos não permitidos ou mal intencionados estão mais intensificados, ou seja, mais seguros [5]. Na maioria dos usuários de Bancos de Dados, não tem acesso às informações disponíveis no Banco de Dados. Por exemplo, os dados financeiros são de extrema confiabilidade e por isso motivo, só algumas pessoas podem ter acesso a estas informações. O SGBD permite a facilidade de recuperar os dados e falhas de hardware ou de software, através de imagens, como o backup. O backup do Banco de Dados torna-se importante para qualquer organização, pois garante a recuperação das estruturas do Banco de Dados e principalmente dos dados, caso o SGBD venha a falhar por algum motivo. Padronização do acesso aos dados: a padronização aos dados ajuda na abordagem uniforme do acesso aos Bancos de Dados, sendo assim, os mesmos procedimentos são utilizados para recuperação de dados por todos os programas [8]. O SGBD dispõe de recursos para autorização de acessos aos usuários, tais como leitura, atualização, deleções e inserções [10]. Modificação e atualização mais fáceis: o SGBD coordena as modificações e atualizações. Os dados são armazenados e modificados ao mesmo tempo, as modificações e atualizações são mais fáceis, pois os dados na maioria dos casos são guardados em apenas um local [8]. Uma estrutura para desenvolvimento de programa com tempo reduzido: como os programas passam pelo SGBD para obterem acesso aos dados no Banco, o acesso padronizado ao Banco de Dados demonstra um modelo consistente para a criação de programas. Cada programa refere-se ao SGBD e não ao arquivo de dados, assim diminui o tempo de desenvolvimento do aplicativo [2]. São criadas funções que trabalham em conjuntos com vários programas que utilizam o SGBD, assim a interface sendo de alto nível aos dados, ajuda no desenvolvimento rápido e eficaz desses programas. Acesso concorrente de informações compartilhadas: é uma característica do SGBD, estender os custos de hardware e software a um grande número de aplicações e usuários [10], para atender a concorrência ao acesso dos dados que fortalece a recuperação e inserção dos mesmos sem erros. O SGBD verifica os acessos ao Banco de dados de tal modo que os usuários não percebam que os dados estão sendo acessados por mais de um usuário. III. ABORDAGEM DA SQL (STRUCTURED QUERY LANGUAGE) SQL (Structured Query Language) tem sua expressão em português traduzida para: Linguagem de Consulta Estruturada. É uma linguagem de pesquisa declarativa para Banco de Dados relacionais e tem suas principais características extraídas da álgebra relacional [1]. Além de ser uma linguagem fácil, é a linguagem mais utilizada no mercado comercial, linguagem que além de utilizar a álgebra relacional também utiliza o cálculo relacional. A Linguagem de Consulta Estruturada é uma linguagem de alto nível para manipulação de dados no Banco de Dados, objetiva de fácil aprendizado e manipulação, pois até mesmo comandos de difícil execução são estudados e implementados em poucos dias, obtendo-se um excelente desempenho e sucesso em sua implementação. Segundo [7], houve uma infelicidade na padronização da Linguagem de Consulta Estruturada, pois existiam diversas linguagens excelentes para criações de tabelas, bem como acesso a elas que foram eliminadas pela generalização da Linguagem de Consulta Estruturada. Depois que a Linguagem de Consulta Estruturada foi padronizada, ela tornou-se atrativa e muito importante para as empresas que desenvolvem e utilizam Banco de Dados. Segue-se com uma abordagem histórica da linguagem, suas vantagens e linguagens associadas à Linguagem de Consulta Estruturada por meio das sub-seções abaixo. A. Histórico sobre a Linguagem de Consulta Estruturada Já se passaram várias décadas desde o surgimento da sigla SQL, originalmente criada nos anos setenta nos laboratórios da IBM (International Business Machine), e apresentada em sua primeira versão no ano de 1974 [9]. A sigla SQL, como é conhecida nos dias de hoje, tem sua expressão em inglês Structured Query Language, cuja tradução é Linguagem de Consulta Estruturada. No início de sua existência chamava-se SEQUEL (Structured English Query Language), que foi desenvolvida por Donald D. Chamberlin [1]. Na sequência, entre 1974 -1975, a linguagem SEQUEL foi testada em Banco de Dados relacionais pela IBM, denominado SEQUEL-XRM, em 1976 - 1977 passou a ser chamada de SEQUEL/2 e mais adiante passou a ser chamada de SQL [1]. Fabricantes de SGBD introduziram a Linguagem de Consulta Estruturada em suas ferramentas, com isso houve a uma necessidade de gerar uma organização para regulamentar as normas e critérios. Surgiu então a ANSI (American National Standarts Institute), tem sua expressão em português traduzida para Instituto Nacional Americano de Padrões, é uma organização particular que tem por objetivo facilitar a padronização de trabalhos, em 1986 foi lançado o primeiro padrão oficial da Linguagem de Consulta Estruturada o SQL/86 [8]. O segundo padrão surgiu em 1987 como SQL/89, logo mais em 1992 surgiu o terceiro padrão SQL/92, depois em 1999 mais um padrão, já seria o quarto, denominado SQL3 (SQL/92) [9]. A última foi em 2003 denominada SQL/2003 com inclusões ao XML (Extensible Markup Language), tem sua expressão em português traduzida para Linguagem de Marcação e Extensão, linguagem de propósito geral que facilita o compartilhamento de informações. Ao longo dos anos a Linguagem de Consulta Estruturada recebeu ramificações no contexto de sua linguagem, mas nunca perdeu a sua essência. A Linguagem de Consulta Estruturada adquiriu características para melhor entender o que esta sendo desenvolvido. Ela esta associada às linguagens: Data Definition Language (Linguagem de Definição de dados), desenvolvida para criação, alteração e exclusão das estruturas; Data Manipulation Language (Linguagem de Manipulação de Dados), desenvolvido para seleção, inserção, atualização e deleção de dados; Data Control Language (Linguagem de Controle de Dados), desenvolvida para controlar os aspectos de autorização aos dados; Data Transact Language (Linguagem de Transação de Dados), desenvolvida para garantir o início e fim das transações ao Banco de Dados. B. Vantagens da Linguagem de Consulta Estruturada A Linguagem de Consulta Estruturada oferece uma gama de comandos para criação de consultas de alto nível. Estas consultas são utilizadas na construção de relatórios com diferentes visões dos dados aosdiferentes usuários. Estas consultas mesmo sem a interação de programas podem utilizar de formulários ou até mesmo de ferramentas de montagem de relatórios. A Linguagem de Consulta Estruturada esta inserida nos SGBD tendo uma independência de fabricante. Com isso é possível substituir o SGBD por qualquer nova versão. Permite a sua utilização em qualquer computador, seja ele uma estação de trabalho ou até mesmo um computador de grande porte [2]. A Linguagem de Consulta Estrutura é inserida em diversas aplicações com isso ela pode ser trabalhada em diversos ambientes, que ajuda na redução de treinamentos e na manipulação de diversos objetos dentro dos SGBD. Ela auxilia no acesso a diversos Bancos de Dados em diferentes computadores e também na comunicação de dados com outros sistemas. As sentenças em inglês ajudam na implementação da Linguagem de Consulta Estruturada, pois são simples e de fácil entendimento ao usuário, com isso podemos criar, alterar e excluir as estruturas com muita flexibilidade e rapidez. As sentenças que são criadas para seleção de dados utilizam otimizadores que se encontram nos SGBD, para que as informações solicitadas retornem rapidamente [10]. C. Linguagens associadas a Linguagem de Consulta Estruturada. • DDL – Data Definition Language Tem sua expressão em português traduzida para Linguagem de Definição de Dados, utilizada pelos administradores e projetistas de Banco de Dados para definir o esquema do Banco de Dados, ou seja, definição dos objetos onde é transformado o modelo conceitual/lógico em modelo físico [5]. No modelo físico através dos esquemas são criadas as estruturas de um Banco de Dados para que em seguida seja utilizada a Linguagem de Manipulação de Dados que será abordada a seguir. A Linguagem de Definição de Dados permite as criações, alterações e exclusões do esquema no Banco, ou seja, seus objetos [2]. Para construção do esquema pode-se criar, alterar e até mesmo excluir as estruturas tais como tabelas, definições de visões, procedimentos armazenados, índices, trigger ou gatilho, entre outros objetos para formação do esquema. Especificando assim as regras de integridades dos dados que estarão sendo armazenados dentro do repositório de dados, ou seja, dentro do Banco de Dados. A Linguagem de Definição de Dados possui alguns comandos para criação, alteração e exclusão dos esquemas propostos pelo desenvolvedor do Banco de Dados. Logo após os comandos serem compilados, ou seja, executados eles são armazenados no dicionário de dados que se encontra dentro do SGBD. A Figura 2 apresenta uma visão da utilização dos comandos da Linguagem de Definição de Dados para criação de uma tabela, onde seus comandos são: create (criação), alter (alteração) e drop (exclusão). O comando create (criação) corresponde a criação das estruturas do Banco de Dados, ou seja, a criação dos objetos. Dentre os principais objetos do Banco de Dados estão às tabelas, objetos de essencial importância para o Banco de Dados, pois são nesses objetos que são armazenados os dados. As tabelas podem ser desenvolvidas com diversos campos e tipos de dados, levam também as chaves primárias e estrangeiras para que possam estabelecer os relacionamentos entre as mesmas, nelas também são atribuídos os índices para melhorar as consultas dos dados pela Linguagem de Manipulação dos Dados. Já o comando alter (alteração) corresponde a alteração das estruturas desenvolvidas pelo comando create (criação). O comando alter (alteração) é de importância primordial para o Banco de Dados, pois se as estruturas criadas já estivessem populadas, ou seja, repletas de dados e fosse necessária a inserção de um novo campo, índice, chave primária ou chave estrangeira, seria obrigatório a exclusão desse objeto com o comando drop (exclusão), para que logo em seguida fosse criado um novo objeto para adicionar as novas alterações. Assim os dados seriam perdidos, pois com a utilização do comando drop (exclusão), o objeto criado é desfeito, ou seja, excluído e com essa exclusão os dados seriam perdidos, pois o objeto deixaria de existir por isso a importância do comando alter (alteração). Figura 2. Exemplo de comandos da Linguagem de Definição de Dados. • DML – Data Manipulation Language Tem sua expressão em português traduzida para Linguagem de Manipulação de Dados, essa linguagem permite que o usuário manipule os dados através de: recuperação, inserção, modificação e exclusão de dados que estão descritos no esquema, ou seja, estrutura onde os objetos estão armazenados criados pela Linguagem de Definição de Dados [5]. A Figura 3 apresenta uma visão da utilização dos comandos da Linguagem de Manipulação de Dados, onde seus comandos são: select (seleção), insert (inserção), update (atualização), delete (exclusão). O comando select (seleção) corresponde a recuperação dos dados, que são inseridos nos objetos, por exemplo, nas tabelas pelo comando insert (inserção) que corresponde a inserção de dados nos objetos criados. Essas recuperações de dados ou consultas, são acionadas por instruções onde podem ser selecionados todos os registros de uma única vez, como podem ser selecionados apenas os registros que forem necessários na ocasião. Além disso, podem-se selecionar os registros ao qual seja relevante para a seleção, com comandos que expressam condições ao select (seleção). Já o comando update (atualização), diferente do comando alter (alteração) que altera as estruturas dos objetos, corresponde a alteração dos dados inseridos no Banco de Dados pelo comando insert (inserção). O comando update (atualização) também leva em seu contexto uma referência muito importante para a alteração de seus registros, são os comandos que expressam condições ao update (atualização), pois sem esses comandos o risco de alteração em todos os registros de uma única vez é eminente, resultando assim em uma redundância de dados, ou seja, dados repetidos. Com o comando delete (exclusão), os registros são deletados do Banco de Dados, o comando delete (exclusão) também deve levar em seu contexto uma referência muito importante para a deleção dos seus registros, são os comandos que expressam condições ao delete (exclusão), pois sem esse comando o risco de deletar todos os registros de uma única vez é eminente. Figura 3. Exemplo de comandos da Linguagem de Manipulação de Dados “seleção de campos específicos da tabela”. • DCL – Data Control Language Tem sua expressão em português traduzida para Linguagem de Controle de Dados, essa linguagem apresenta comandos que controlam o acesso aos dados, usuários e grupos através de permissões, que podem ser revogadas sempre que necessárias [6]. A Figura 4 apresenta uma visão da utilização dos comandos da Linguagem de Controle de Dados, onde seus comandos são: grant (concessão) e revoke (revogação). O comando grant (concessão) corresponde a permissões dadas aos usuários de Banco de Dados para que os mesmos tenham acesso a recuperação, inserção, alteração ou deleção dos dados de um determinado objeto. Já com o comando revoke (revogação), acontece o contrário do comando grant (concessão), ele retira a permissão concedida ao usuário de Banco de Dados para que os mesmos não tenham acessos a recuperação, inserção, alteração ou deleção dos dados de um determinado objeto. Para a utilização desses comandos é necessário a criação de um usuário para que o mesmo receba as devidas concessões ou revogações. Figura 4. Exemplo de comandos da Linguagem de Controle de Dados. • DTL – Data Transact Language Tem sua expressão em português traduzida para Linguagem de Transaçãode Dados, essa linguagem apresenta comandos que são utilizados para marcar o início de uma transação de Banco de Dados que podem ser completadas [6]. A Figura 5 apresenta uma visão da utilização dos comandos da Linguagem de Transação de Dados, onde seus comandos são: commit (executar) e rollback (desfazer). O comando commit (executar), corresponde a efetivação de comandos da Linguagem de Manipulação de Dados, onde seus comandos são: insert (inserção), update (atualização) e delete (exclusão). Já o comando rollback (reversão), corresponde a não efetivação dos comandos da Linguagem de Manipulação de Dados, onde seus comandos são: insert (inserção), update (atualização) e delete (exclusão). O rollback (reversão) é muito utilizado em procedimentos onde acontece algum erro e os dados não conseguem ser manipulados a tempo, retornando assim a sua situação anterior. Figura 5. Exemplo de comandos da Linguagem de Transação de Dados. IV. A IMPORTÂNCIA DO USO DAS LINGUAGENS DDL E DML Para se trabalhar com as linguagens de: Definição de Dados e Manipulação de Dados e obter sucesso em sua implementação é preciso minimizar problemas simples, onde o desenvolvedor tem que focar totalmente na regra de negócio e elaborar seus códigos com exatidão para que as instruções implementadas tenham um bom desempenho, além de chegar aos resultados esperados, que também apresentem um bom resultado. Alguns problemas encontrados no dia a dia em que são: a não conformidade de elaboração de códigos de alto nível, muitos por falta de conhecimento da linguagem; prazos de entregas muitos reduzidos; falta de qualidade de software e de seus processos. Os comandos da Linguagem de Definição de Dados são fundamentais para definição do Banco de Dados a ser criado e utilizado, as tabelas que serão inseridas dentro do contexto, os campos a serem mencionados, as chaves primárias, estrangeiras, sem deixar de citar as chaves candidatas, compostas e os índices nas tabelas. Resume-se que, com a Linguagem de Definição de Dados são criadas as estruturas, ou seja, os objetos para que o otimizador do Banco de Dados use adequadamente o acesso a estes objetos [10]. Com a criação dos objetos é possível desenvolver as relações existentes entre as tabelas, cria-se assim a integridade referencial dos dados para evitar a redundância dos mesmos. Dentre seus principais e importantes comandos, destaca- se o create (criação). Outros comandos importantes da Linguagem de Definição de Dados são: alter (alteração) e drop (exclusão) [6]. A Linguagem de Definição de Dados além de especificar os conjuntos das relações, demonstra importantes informações acerca das relações criadas do tipo: regras de integridade, regras de conversão, esquemas das relações, o domínio dos valores atribuídos aos campos, conjuntos de índices para manutenções das tabelas, informações das seguranças e autorizações das relações existentes, estruturas armazenadas em disco das relações criadas [8]. Os comandos da Linguagem de Manipulação de Dados são fundamentais para a manipulação de dados. Ela apresenta inúmeros comandos destinados à manipulação dos dados inseridos no contexto criado na Linguagem de Definição de Dados, para consultas, inserções, alterações e exclusões. Os comandos que se destacam são: select (seleção), insert (inserção), update (atualização) e delete (exclusão) [6]. Um dos principais comandos é o select (seleção), que é destinado à visualização das informações ao usuário, com isso trabalha-se muito com a otimização das informações, ou seja, busca mais elaborada e eficiente. A Linguagem de Definição de Dados permite trabalhar com estruturas de níveis bem altos e a Linguagem de Manipulação de Dados aceitam registros como entradas e retornam grupos de dados como saída. Com a utilização do otimizador, entende-se melhor o porquê de sua importância. Otimizador, conhecido como Tuning (Ajuste), consiste no ajuste das consultas para obter um melhor desempenho, ou seja, ele ajuda a trazer a informação mais rápida para o usuário final. Sua finalidade é escolher a melhor estratégia possível para a consulta da Linguagem de Manipulação de Dados que o programador está a desenvolver [12]. Os SGBD incluem dentro de seus sistemas um otimizador de consultas, para ajudar a Linguagem de Consulta Estruturada na recuperação dos dados. A partir da criação de uma tabela, onde são armazenados os dados, podem ser criados índices que são referências criadas em campos da tabela onde o otimizador do SGBD encontrará os dados. Na busca pelos dados, são verificados primeiro os campos que contém índices e depois nos campos subsequentes. As chaves primárias desenvolvidas nas tabelas levam por definição um índice, mas apenas este índice não resolve totalmente a rapidez nas consultas pelos dados. Com a criação dos índices, as consultas que são geradas pela Linguagem de Manipulação de Dados ficarão mais rápidas. Mas não estão sendo verificados os méritos de como foram criados estes índices, pois índices criados em qualquer atributo (campo), ao invés de ajudar a buscar os dados com maior rapidez, muitas vezes deixará a consulta ainda mais lenta. Índice é uma indicação de onde estão armazenados os dados. Pode ser exemplificada como a verificação dos índices de um livro, pois ao abrir o livro e verificar o seu índice encontra-se a informação ou palavra chave que está associada a um número de página que fará com que a pessoa seja direcionada para o conteúdo [11]. Em geral, com a utilização de índices, os ganhos em desempenho são no mínimo duas vezes mais rápidos do que uma tabela que não contem índices. V. APLICAÇÕES DAS LINGUAGENS DE DEFINIÇÃO E MANIPULAÇÃO DE DADOS As instruções da Linguagem de Consulta Estruturada podem ser aplicadas em diversas situações, que abrange uma quantidade significativa de situações. Podem-se aplicar as instruções da Linguagem de Manipulação de Dados do tipo: select (seleção), insert (inserção), update (atualização) e delete (exclusão) em técnicas de paralelismo, ou seja, processamento paralelo, para melhorar o desempenho, os SGBD trabalham na execução das instruções da Linguagem de Consulta Estruturada através de um otimizador de consultas, que por si só já trabalha com algumas técnicas de processamento paralelo, mas nem sempre o plano de execução que o otimizador cria é totalmente eficiente e gera ganhos expressivos, então se pode utilizar de várias outras técnicas mais avançadas para melhorar esta otimização, neste caso utiliza-se técnicas de processamento paralelo [12]. O processamento paralelo executa diferentes operações de uma consulta e executam diversas consultas em paralelo. Primeiramente o sistema verifica uma consulta e não se preocupa com outras consultas que estão sendo executadas no mesmo momento, neste caso para que se obtenham ganhos expressivos entra o processamento paralelo que ajuda o sistema a efetuar suas consultas mais rapidamente. Podem-se aplicar as instruções da Linguagem de Definição de Dados do tipo: create (criação), alter (alteração) e drop (exclusão) para modelar um Banco de Dados e transformá-lo de um modelo lógico em um modelo físico. A modelagem de dados é muito importante para viabilizar o armazenamento dos dados e logo na sequência trabalhar com as instruções da Linguagem de Manipulação de Dados para acessar as informações de um sistema. São utilizadas na modelagem regras claras como primeira, segunda e terceira forma normal, a fim de permitir um armazenamento consistente e um eficiente acesso aos dados de um Banco de Dados [13]. Podem-se aplicar as instruções da Linguagem de Manipulação de Dados do tipo: select (seleção) para visões e consultas aninhadaspara geração de relatórios. Técnicas de visões e consultas aninhadas ajudam a desenvolver relatórios mais eficientes e sofisticados, com o auxílio de recursos como where (onde), from (de) e select (seleção). Na teoria as visões consistem em consultas armazenadas, para serem acessadas iguais às tabelas, mas as visões não fazem parte do esquema físico do Banco de Dados, as consultas aninhadas ou subconsultas são recursos muito utilizados na Linguagem de Consulta Estruturada [4]. Dentre as situações apresentadas para se aplicar as linguagens de Definição e Manipulação de Dados, mencionam-se apenas algumas entre inúmeras aplicações onde podem ser utilizadas, sem deixar de mencionar aplicações que ainda não foram descobertas para as linguagens citadas. VI. CONSIDERAÇÕES FINAIS Neste artigo foi apresentado o conceito e características do SGBD e um breve histórico da Linguagem de Consulta Estruturada. Sendo que para cada uma das linguagens que se seguem: Linguagens de Definição, Manipulação, Controle e Transação de Dados, foram apresentados comandos básicos para que se tenha uma noção simplificada de sua utilização. Em seguida foram citadas as importâncias e aplicações das linguagens de Definição e Manipulação de Dados. Destacaram-se entre os tópicos abordados as linguagens de Definição e Manipulação de Dados, que são importantes para definir as estruturas e manipular dados. Mencionam-se também breves situações onde estas linguagens são aplicadas. Na abordagem das linguagens de Definição e Manipulação de dados que são associadas a Linguagem de Consulta Estruturada, conclui-se que sem a Linguagem de Definição de Dados, não seria possível criar as estruturas do Banco de Dados, com isso a Linguagem de Manipulação de Dados não pode ser utilizada, pois sem as estruturas criadas não haveria a possibilidade de inserir, atualizar, deletar e selecionar dados. Sendo assim as linguagens associadas se completam para formar a Linguagem de Consulta Estruturada. REFERÊNCIAS [1] J. A. N. G. Manzano, Microsoft SQL Server 2008 Express Interativo Guia Prático. São Paulo: Érica, 2009. [2] R. Ramakrishnan e J. Gehrke, Sistemas de Gerenciamento de Banco de Dados. São Paulo: McGraw-Hill, 2008. [3] C. J. Date, Introdução a Sistemas de Banco de Dados. Rio de Janeiro: Campus, 2000. [4] W. Crivelini, “Usando linguagem SQL para Geração de relatórios,” SQL Magazine, v. 8, n. 95, 2011, pp.14-23. [5] R. Elmasri e S. B. Navathe, Sistemas de Banco de Dados. São Paulo: Addison Wesley, 2005. [6] R. Spínola, “Trabalhando com condições e operadores em consultas SQL,” SQL Magazine, v. 8, n. 90, 2011, pp. 6-15. [7] V. W. Setzer e F. S. C. Silva, Banco de Dados. São Paulo: Edgard Blucher LTDA, 2005. [8] A. Silberchatz, H. F. Korth e S. Sudarshan, Sistemas de Banco de Dados. São Paulo: Addison Wesley, 1999. [9] J. A. N. G. Manzano, Oracle Database 10g Express Edition-Interativo Guia Básico e Desenvolvimento. São Paulo: Érica, 2007. [10] M. A. Souza, SQL, PL/SQL, SQL * PLUS. Rio de Janeiro: Ciência Moderna Ltda, 2004. [11] R. Dewson, SQL Server 2008 para Desenvolvedores. Rio de Janeiro: Alta Books, 2009. [12] G. L. Mark, Fundamentos de sistemas de gerência de Banco de Dados. Rio de Janeiro: LTC, 2006. [13] M. Pichiliani, “Processamento paralelo de instruções SQL,” SQL Magazine, v. 8, n. 91, 2011, pp.10-20.
Compartilhar