Buscar

trabalho final

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ESCOLA DE ENGENHARIA DE LORENA
UNIVERSIDADE DE SÃO PAULO (USP)
Trabalho Escrito
Banco de Dados
Adriana Aparecida Constantino Roma
Gabriel Silva Gonçalves
Letícia Miranda de França Mota
Luciana Chagas Silvestrini
Lorena, 2014
Trabalho escrito apresentado a partir do desenvolvimento da atividade proposta pelo professor: apresentação com o tema Banco de Dados como requisito para obtenção de aprovação na disciplina de Informática Aplicada, no Curso de Engenharia de Materiais.
Prof. Henrique 
Lorena, 2014
Introdução
O processamento de informação tem se tornado cada vez maior na dinâmica vida atual e com ele surgiu a necessidade de organizar todos esses bites (menor unidade de informação) produzidos mundo a fora. Com esse intuito, surgiu o Banco de Dados que nada mais é que um agrupamento de informações que se relacionam entre si referentes ao mesmo assunto, desse modo, o banco de dados serve com um veículo para que o usuário, que pode ser uma empresa, uma bolsa de valores ou até mesmo de uso pessoal para que possa organizar seus dados de uma maneira útil e consiga os encontrar mais tarde.
Outro conceito muito importante é a diferença entre informação e dado, isto é, o dado em si é apenas é um conteúdo básico da informação e que não transmite mensagem alguma já a informação é o fruto da interpretação dos dados que é definida e então a partir disso é possível qualifica-los. Assim, é importante frisar que o banco de dados sempre é projetado por uma razão especifica. Para isso existe o sistema gerenciador de banco de dados, ele é quem é o encarregado de construir o ambiente onde todas as informações serão ficam salvas.
História do Banco de Dados
Por volta dos anos 50 ainda se utilizava fitas magnéticas e Decks de cartão perfurado para armazenar dados. Já nas décadas de 1960 e 1970 na IBM (International Business Machines) houve um desconforto por parte de seus dirigentes quanto aos custos empregado no armazenamento de dados e organização de arquivos, para isso muitas pesquisas foram conduzidas durante esse período, cujos modelos hierárquicos, de redes relacionais e outros modelos foram desenvolvidos. Na década 1970, um dos pesquisadores da IBM, Ted Codd, tornou público o primeiro artigo sobre bancos de dados relacionais, nele o artigo discutia o uso de cálculo e álgebra relacional (é uma linguagem onde o usuário dá as instruções ao sistema, para que o mesmo realize várias operações na base de dados para calcular o resultado desejado) para permitir que usuários não técnicos armazenassem e recuperassem grande quantidade de informações. Codd visionava um sistema onde o usuário seria capaz de acessar as informações através de comandos em inglês, onde as informações estariam armazenadas em tabelas. Devido à natureza técnica desse artigo e a relativa complicação matemática, o significado e proposições do artigo não foram prontamente realizados. Entretanto, ele levou a IBM a montar um grupo de pesquisa conhecido como System R (Sistema R).
 Apesar dos estudos realizados pelo grupo de pesquisa System R, o primeiro sistema comercial de banco de dados foi construído pela Honeywell Information Systems Inc., cujo sistema foi lançado em junho de 1976. O sistema era baseado em muitos princípios do sistema que a IBM concebeu, mas foi modelado e implementado fora da IBM. Outros sistemas de banco de dados apareceram no início dos anos 80 com a empresa Oracle através do Oracle 2 e depois com a IBM através do SQL/DS, servindo como sistema e depósito de informações de outras empresas. As pesquisas evoluíram e o Sistema R tornou-se DB2 (banco de dados desenvolvido pela IBM), com isso foi criada uma linguagem chamada SQL (Structured Query Language), Linguagem de Consulta Estruturada que até hoje é a linguagem mais utilizada no dia a dia. Na década de 90 começou a surgir outros bancos de dados, como o DBase III, Paradox, SQL Server, MySQL e muitos outros. Nesse período de 1980 e 1990, também surgiu o conceito de banco de dados orientado a objetos, suprindo assim as necessidades onde os bancos relacionais não eram aplicáveis para resolver certos problemas em algumas áreas, tal como medicina, multimídia, física elevada, dentre outros.
 Esse fato levou ao início de pesquisas em bancos de dados orientados a objetos, os quais os usuários poderiam definir seus próprios métodos de acesso aos dados e como esses seriam representados e acessados. Ao mesmo tempo, linguagens de programação orientadas a objetos (Object Oriented Programming – POO), tais como C++, começaram a surgir na indústria. 
Banco de dados
 	Banco de dados é uma series de dados inter-relacionados, representando informações sobre um domínio específico, sendo assim, sempre que for possível agrupar informações que se relacionam e tratam de um mesmo assunto, posso dizer que tenho um banco de dados. Podemos exemplificar situações clássicas como uma lista telefônica, um catálogo de CDs ou um sistema de controle de RH de uma empresa. Já um sistema de gerenciamento de banco de dados (SGBD) é um software que possui recursos capazes de manipular as informações do banco de dados e interagir com o usuário. Exemplos Oracle, IBM, INTERBASE e ACESS, entre outros. Por último, temos que conceituar um sistema de banco de dados como o conjunto de quatro componentes básicos: dados, hardware, software e usuários.
 	O Objetivo de um SGBD é fornecer um ambiente apropriado para acessar e armazenar informação na Base de Dados de forma viável e eficiente. Os requisitos fundamentais de um SGBD é seu controle de acesso, eficiência entre outros Serviços prestados por um SGBD.
 	Ao optar por um SGBD, os utilizadores têm como objetivo principal utilizar um recurso informático capaz de acessar, manipular e processar dados de uma forma relativamente normalizada, viável e eficiente. Uma das vantagens mais óbvias de um SGBD é a utilização de um único conjunto lógico e organizado de dados estruturados, autônomos das aplicações que o processam.
Abstração de Dados
Essa abstração ocorre através omissões que partem de três níveis: Conceitual, Lógico e Físico. 
No nível conceitual, onde ocorre a maior abstração é correspondente ao modo pelo qual o usuário visualiza os dados, sendo considerado o ponto de partida do BD. 
No nível médio de abstração, o Lógico, é onde existe a descrição dos dados armazenados e suas relações como são vistas pelo usuário, para isso é utilizado o modelo relacional que consiste na ideia de que todos os dados estão armazenados em tabelas. 
E, por fim, no nível físico, o mais baixo de abstração, que é onde de fato os dados ficam armazenados e onde há a descrição da real estrutura que deve ser criada pelo banco de dados.
Modelo de Dados
A modelagem de dados é a estrutura utilizada dentro do sistema de informação para que os dados sejam definidos de forma especifica. Assim os modelos são classificados de três formas:
O modelo conceitual que nada mais é que um diagrama de blocos que demonstra o sentido das relações existentes entre cada uma dos dados ali armazenados, sendo também o primeiro passo na organização desses respectivos dados.
O modelo lógico: nele é descrito a informação sobre o domínio em que ela se encontra sendo que essa se orienta através de tabelas, colunas as chaves primárias e os componentes delas.
O modelo físico: é onde acontece a manipulação da estrutura dos dados, seu endereçamento e alocação.
Sistema de Gerenciamento de Banco de Dados (SGBD)
O sistema gerenciador de banco de dados (da sigla em inglês Data Base Management System) é o software responsável por controlar o banco de dados visando que o usuário encontre seus arquivos da forma mais rápida possível mantendo a segurança e a integridade dos arquivos ali presentes. Ele possui uma interface na qual o cliente pode manipular os dados previamente armazenados. Essa interface é construída através de uma linguagem chamada SQL (do inglês Strutured QueryLanguge) que tem sua origem na IBM durante a década de 1970.
Em virtude disso, foi criado um meio para que houvesse abstração de todos esses dados armazenados para facilitar o uso do banco de dados por parte do usuário. Devido a abstração de dados, o SGBD é organizado na forma de tabelas, colunas e conjunto de campos.
	O objetivo principal é gerenciar o acesso e a correta manutenção dos dados armazenados em um banco de dados e tirar do cliente a responsabilidade de gerenciar o acesso, manipulação e organização dos dados. O SGBD disponibiliza uma interface para que os seus clientes possam incluir, alterar ou consultar dados. Já em bancos de dados relacionais a interface é constituída pelas APIs ou drivers do SGBD, que executam comandos na linguagem SQL.
	O principal critério para avaliação do SGBD é o modelo de dados no qual é baseado. A grande maioria dos SGBDs contemporâneos são baseados no modelo relacional, alguns em modelos conceituais e alguns em modelos orientados a objetos.
Vantagens em relação aos sistemas de arquivos:
Compacto, pois não há necessidade de arquivos em papel, possivelmente volumoso.
Rápido, considerando que o computador atualiza dados com mais rapidez do que uma pessoa e também a recuperação e manutenção dos dados é mais rápida.
Disponibilidade de acesso a informações a qualquer momento
O sistema de banco de dados proporciona à empresa, por exemplo, o controle centralizado dos seus dados.
Desvantagens de um SGBD são: 
Alto custo de instalação e manutenção
Um erro pode prejudicar todo um sistema
Treinamento inicial necessário aos programadores e usuários.
Porém, para que o sistema gerenciador de banco de dados funcione é necessário que existam os programas que o viabilize. Desse modo a Microsoft disponibiliza no pacote do Office, o Microsoft Office Access.
Conhecido por seu desenvolvimento estrutural acontecer de uma forma intuitiva o usuário que tem conhecimentos básicos de modelagem e programação já está apto a utilizá-lo. A combinação do Microsoft Jet Database Engine com uma interface gráfica que permite um rápido desenvolvimento de tabelas e aplicativos que tem como fim o armazenamento de dados produzidos pelo usuário através da linguagem de programação Visual Basic Aplication que se fundamenta em dois arquivos o BackEnd onde ficam ficam armazenadas as tabelas e suas relações e o Frontend ficam armazenados os códigos fonte,  formulários, módulos, consultas, macros e assim por diante.
Com o Access o usuário pode controlar o gerenciamento de uma empresa até de grande porte, pois os aplicativos desenvolvidos por ele pode ser transmitidos tanto na intranet quando na internet. Apresenta também uma parcial compatibilidade com o SQL outra função importante a ressaltar é a cortar e colar que funciona como uma conexão entre os bancos de dados. Entretanto, apesar de sua grande flexibilidade o Access sofre problemas em gerenciar projetos grandes quando as aplicações deles forem mal desenvolvidas.
Outro SGDB é o MySql sendo o mais difundido mundo a fora e responsável pelo armazenamento e administração do banco de dados de grande corporações internacionais, como a Lufthansa, a Nokia e até mesmo a NASA. Baseado na linguagem SQL esse programa não exige muito do hardware (a maquina em si) para ser utilizado. 
Outros dois fatores importantes são a facilidade de manuseio e compatibilidade com diversas linguagens de programação o torno líder nesse setor.
Tratando-se de programas nessa linha outra opção é o Oracle que também é um banco de dados relacional de vasta utilização conhecido por seu alto nível de segurança ao administrar os dados de forma correta. Entretanto, ele exige do hardware para que o seu desempenho aconteça da melhor maneira possível. E é importante frisar que esse programa necessita profissionais capacitados para o seu manuseio desde o inicio, utilizando a linguagem C e C ++ .
Já o Sql Server que assim como o MyAccess foi outro sistema gerenciador de banco de dados produzido pela Microsoft possuindo as mesmo funções de organizar e salvar os dados produzidos pelo usuário. Possuindo diferentes versões destinadas a cada tipo especifico. Utilizando a linguagem Transact-SQL, que nada mais é que um dialeto da SQL em si. Outro fator interessante é a escabilidade desse SGBD, isto é, o que dá ao usuário a condição de começar a desenvolver um projeto em um desktop em migrar para um sistema de multiprocessamento. Outra vantagem dele é o fato de ser um programa baseado em linguagem SQL está que esse programa pode trabalhar com mais de um registro de dados diferentemente da linguagem C++ que trata apenas um registro de cada vez.
Modelos de SGBD
Os bancos de dados apareceram no fim dos anos 60, numa época em que a necessidade de um sistema de gestão da informação flexível se fazia sentir. Existem cinco modelos de SGBD, diferenciados de acordo com a representação dos dados que contêm:
O modelo hierárquico  
Os dados são classificados hierarquicamente, de acordo com uma arborescência descendente. Este modelo utiliza apontadores entre os diferentes registos. Trata-se do primeiro modelo de SGBD
Figura 1 - Modelo Hierárquico
O modelo de rede 
Como o modelo hierárquico, este modelo utiliza apontadores para os registros. Contudo, a estrutura já não é necessariamente arborescente no sentido descendente.
Figura 2 - Modelo de Rede
O modelo relacional
O SGBDR, sistema de gestão de bancos de dados relacionais. Os dados são registrados em quadros duas dimensões (linhas e colunas). A manipulação destes dados faz-se de acordo com a teoria matemática das relações
Figura 3 - Modelo Relacional
O modelo orientado objeto
O SGBDO, sistema de gestão de bancos de dados objeto. Os dados são armazenados sob a forma de objetos, quer dizer, de estruturas chamadas classes que apresentam dados membros. Os campos são instâncias destas classes
Figura 4 - Modelo orientado objeto
No fim dos anos 90, as bases relacionais são os bancos de dados mais comuns (cerca de três quartos das bases de dados).
Elementos do BD
Uma Entidade pode ser definida como qualquer coisa do mundo real, abstrata ou concreta, na qual se deseja guardar informações. Exemplos de entidades: Cliente, Produto, Contrato, Vendas, etc.
Um atributo  é tudo o que se pode relacionar como propriedade da entidade. (coluna, campo, etc.). Exemplos de atributos: Código do Produto (Entidade Produto), Nome do Cliente (Entidade Cliente).
E chama-se Domínio o conjunto de valores possíveis do atributo.
Então podemos fazer as seguintes definições:
Atributo obrigatório: é aquele que para uma instância de uma entidade ou relacionamento deve possuir um valor. (NOT NULL)
Atributo opcional é aquele que para uma instância da entidade ou relacionamento pode possuir um valor. (NULL)
Podemos ainda classificar os atributos como :
Atributo Identificador: capaz de identificar exclusivamente cada ocorrência de uma entidade. Também conhecido como chave Primária ou Primary Key (PK). Ex: Código do Cliente , Código do Produto , etc.( O símbolo # é usado para representar a chave primária em algumas notações)
Chave Candidata: atributo ou grupamento de atributos que têm a propriedade de identificar unicamente uma ocorrência da entidade. Pode vir a ser uma chave Primária. A chave candidata que não é chave primária também se chama chave Alternativa.
Um relacionamento pode ser entendido como uma associação entre instâncias de Entidades devido a regras de negócio. Normalmente ocorre entre instâncias de duas ou mais Entidades, podendo ocorrer entre instâncias da mesma Entidade (auto-relacionamento).
Diagrama entidade Relacionamento
O Diagrama Entidade-Relacionamento descreve toda estrutura lógica do banco de dados. É possível construí-lo a partir de um MER, identificando assim a partir de um conceito do mundo real como os dados serão armazenados de fato.
O DER tem como ênfase os dados e os relacionamentos. Sua representação utiliza os símbolos:
Retângulos - representam as entidades;
Elipses- representam os atributos;
Losangos - representam os relacionamentos entre as entidades;
Linhas - unem os atributos aos conjuntos de entidades e os conjuntos de entidades aos conjuntos de relacionamentos;
Elipses duplas - atributos multivalorados.
Na construção de um projeto de banco de dados é necessário saber quais são os objetos e os relacionamentos para elaborar o DER, ou seja, descobrir quais os atributos que compõem as tabelas (objetos).
Regras de Integridade
Restrições de domínio 
Restrições de domínio especificam que o valor de cada atributo A deve ser um valor atômico pertencente ao domínio dom(A) para este atributo. Os tipos de dados associados a domínios incluem os numéricos inteiros, reais, caracteres, strings de tamanho fixo, strings de tamanho variável, data, etc. Os domínio podem ainda especificar um conjunto de valores válidos explicitamente identificados. 
Restrições de Chave
Chave Primária (do inglês, Primary Key). Uma relação é definida como um conjunto de tuplas. Por definição, todos os elementos do conjunto são distintos, portanto, todas as tuplas em uma relação devem também ser distintas. Isto significa que não pode haver duas tuplas com a mesma combinação de valores para todos os atributos. 
Restrição de Integridade de Entidade 
A restrição de integridade de entidade estabelece que o valor para a chave primária não pode ser nulo. Isto porque o valor da chave primária é usado para identificar individualmente tuplas de uma relação. Restrições de chave e restrições de integridade de entidade são especificadas para cada relação individualmente. 
Restrição de Integridade Referencial 
A restrição de integridade referencial é especificada entre duas relações e é usada para manter a consistência entre as tuplas dessas duas relações. A restrição de integridade referencial estabelece que uma tupla em uma relação que se refere a outra relação deve se referir a uma tupla existente da outra relação. 
Chave Estrangeira 
Chave estrangeira (do inglês, Foreign Key). As duas condições citadas a seguir, estabelecem a restrição de integridade referencial entre duas relações R1 e R2. Um atributo, ou conjunto de atributos, FK em uma relação R1, é (são) uma chave estrangeira de R1 se: 
O(s) atributo(s) FK tem o mesmo domínio do(s) atributo(s) da chave primária PK da relação R2; diz-se que o(s) atributo(s) FK refere(m)-se à relação R2. 
O(s) valor(es) de FK na tupla t1 de R1 existe(m) como o valor de uma PK em alguma tupla de R2 ou é nulo. 
Formalmente: t1 [FK] = t2 [PK].
Arquitetura de Sistema de Banco de Dados
A arquitetura de um sistema de banco de dados é bastante influenciada pelo sistema de computador básico em que ela trabalha, em particular, por aspectos da arquitetura de computador como redes, paralelismo e distribuição. 
Caracterização quando à arquitetura:
Centralizada
Cliente-servidor
Distribuída
Paralela
Estendível
Outras
Características das arquiteturas:
Distribuição do Controle (Autonomia Local):
A0. Sistemas totalmente integrados
A1. Sistemas semi-autônomos
A2. Sistemas autônomos
Distribuição dos dados:
D0. Sistemas centralizados
D1. Sistemas cliente-servidor
D2. Sistemas distribuídos (peer-to-peer systems)
Heterogeneidade:
H0. Sistemas homogêneos
H1. Sistemas heterogêneos 
Linguagem SQL
O banco de dados possui mecanismos próprios que podem ser utilizados em favor do desenvolvedor. Cada banco de dados possui um conjunto específico de comandos que definem a linguagem de programação do banco de dados. No caso do Oracle, a linguagem é o PL/SQL, o SQL Server possui o Transact-SQL, o DB2 possui sua própria linguagem de programação, o PostGreSQL possui diversas extensões que podem ser utilizadas como linguagem de programação e o MySQL lançou sua mais recente versão com a possibilidade de programar o servidor. Cada banco de dados é único sob este aspecto, mas todos trabalham sobre os mesmos conceitos. É possível criar módulos programáveis, como funções, procedimentos, objetos, pacotes, gatilhos, etc.
A SQL (no inglês: Strutured Query Language ou em português, Linguagem de Consulta Estruturada) tornou-se a mais utilizada. A linguagem SQL é uma linguagem informática destinada a armazenar, manipular e obter dados armazenados em bases de dados relacionais, ou seja, gerenciar bancos de dados. Falamos, portanto, de uma linguagem que não é mais do que uma linguagem padrão de comunicação com base de dados, sendo assim, de uma linguagem normalizada que nos permite trabalhar com qualquer tipo de linguagem (ASP ou PHP) em combinação com qualquer tipo de base de dados (MS Access, SQL Server, MySQL...).
A primeira encarnação da linguagem SQL apareceu em 1974, chamada SEQUEL (Structured Query English Language), quando um grupo dentro da IBM (Califórnia) desenvolveu o primeiro protótipo de uma base de dados relacional denominado SYSTEM R. A primeira base de dados relacional comercial foi distribuída pela Relational Software (mais tarde passou a chamar-se Oracle).
Outras linguagens do gênero surgiram, mas a SQL foi a mais apreciada. A criação de um padrão para a SQL foi realizada em 1986 pelo American National Standard Institute (ANSI) e em 1987 pela International Organization for Standards (ISO). As principais vantagens da SQL são:
Custos reduzidos de trainamento;
Portabilidade de Aplicação;
Longevidade;
Comunicação entre sistemas, e;
Liberdade de escolha do consumidor.
SQL é uma linguagem essencialmente declarativa. Isso significa que o programador necessita apenas indicar qual o objetivo pretendido para que seja executado pelo SGBDR. Entretanto, existem normas para a linguagem SQL. Contudo, a linguagem SQL que pode ser utilizada em cada um dos principais sistemas SGBDR (Sistema Gerenciador de Banco de Dados Relacional) possui diferentes características. Isso se deve a duas razões: 
A norma SQL é relativamente complexa e não é prático implementar toda a norma, e;
Cada vendedor de bases de dados precisa de formas para diferenciar o seu produto dos outros.
Uma entrada SQL é constituída por uma sequencia de comandos. Um comando é composto por uma sequencia de símbolos terminados por um ponto-e-vírgula (";"). O fim do fluxo de entrada também termina o comando. Quais símbolos são válidos depende da sintaxe particular de cada comando. 
Com o SQL é possível criar as estruturas básicas de armazenamento, como tabelas e índices. Também há comandos específicos da linguagem para o controle e segurança relacionado a um banco de dados. Em princípio, os comandos SQL são divididos em: 
DDL (Data Definition Language) ou Linguagem de definição de dados;
DML (Data Manipulation Language) ou Linguagem de manipulação de dados;
DCL (Data Control Language) ou Linguagem de controle de dados, e;
Linguagem de Definição de Dados
Quando se cria um banco de dados, ele inicialmente está “vazio”. Antes de começar a consultar e alterar dados é preciso definir onde e como as informações serão gravadas dentro do novo banco, então é preciso criar diversas tabelas explicitando o tipo de dados de cada campo, as chaves estrangeiras, os índices, as regras e etc. Estes comandos de criação e alteração de estrutura são os comandos de definição dos dados, pois determinam como os dados serão armazenados. Logo, quando os comandos do tipo DDL são do tipo: CREATE, ALTER ou DROP; comandos que criam, alteram ou excluem objetos como tabelas, procedures, índices, relacionamentos, etc; e tem como elementos o Database (banco de dados), a Table (tabela), o índex (índice) e a view (pesquisas). Para informações das tabelas é utilizado o comando DESCRIBE.
Create
Para criar um banco de dados:
CREATE DATABASE <nome_bd>;
Para criar um tabela:
CREATE TABLE <tabela> (codigo INTEGER AUTO_INCREMENT PRIMARY KEY, <coluna> <tipo de dado> NOT NULL, <id> <tipo de dado> NOT NULL)
foreign key (id) references <table> (id_table);
Onde: NOT NULL define um campo na tabela que é obrigatório e PRIMARY KEY define uma chave primária.
Alter
Uma vez criada, uma tabela poderá sofrer alteraçõesem sua estrutura, para realizar essas alterações usamos o comando ALTER TABLE. As alterações na estrutura da tabela podem ser para:
Adicionar um campo
Alterar um campo
Adicionar um campo
 Add
Vamos adicionar o campo sexo na tabela (que deve estar criada). Observe que usamos a condição ADD que indica que estamos adicionando. É possível ainda adicionar mais de um campo de uma mesma vez, para isto basta usar uma vírgula para separar a os itens da lista de campos a serem inseridas. Veja o próximo exemplo onde iremos adicionar os campos CPF e RG na tabela empregados.
ALTER TABLE empregados ADD COLUMN cpf varchar(20), rg varchar(15);
Add constraint
ALTER TABLE colaboradores ADD CONSTRAINT fk_cargo FOREIGN KEY (cargo) REFERNCES tbl_cargo(código);
Rename to
Renomeando a tabela funcionários para colaboradores:
ALTER TABLE funcionarios RENAME TO colaboradores;
 Condição Modify Column
Para alterar o campo sexo já existente, usamos a condição MODIFY COLUMN. Exemplo:
ALTER TABLE empregados MODIFY COLUMN sexo varchar(30);
Podemos alterar o tipo e o tamanho, mas não o nome do campo. Veja ainda outro exemplo onde estaremos alterando o tipo de dados do campo CPF:
ALTER TABLE empregados ALTER COLUMN cpf int;
 Drop
 Drop Column
Para excluir um campo usamos a condição DROP COLUMN. Exemplo:
ALTER TABLE empregados DROP COLUMN sexo;
Ou ainda:
ALTER TABLE empregados DROP COLUMN cpf,RG;
Drop Foreign Key
Apagar a chave estrangeira da tabela colaboradores:
ALTER TABLE colaboradores DROP FOREIGN KEY fk_cargo;
Drop Databse
Apagar um banco de dados, todas suas tabelas e registros:
DROP DATABASE <nome do banco>;
Drop Table
Para excluir uma tabela do nosso banco de dados, usamos o comando DROP TABLE como no exemplo a seguir.
DROP TABLE empregados;
Ao excluir uma tabela todos os dados serão excluídos, naturalmente.
Describe
Prover informações sobre as colunas de uma tabela:
DESCRIBE nome_tabela;
 Linguagem de Manipulação de Dados
Depois da criação das tabelas, definição dos relacionamentos, índices e etc., é preciso em alguns casos, manipular os dados. Os comandos SQL que manipulam dados são os populares são:
SELECT: utilizado para extrair dados da base de dados	
INSERT: introduzir novas linhas
UPDATE: alterar linhas já existentes
DELETE: Apagar linhas já existentes
. Em algumas literaturas o comando SELECT não é considerado um comando de manipulação de dados, sendo enquadrado numa outra categoria: DQL, Data Query Language, em português: Linguagem de consulta.
Select
Com todos os campos previamente criados e com valores inseridos, podemos fazer consultas nas tabelas. Os exemplos a seguir mostram consultas na tabela alunos:
Mostre todos os registros da tabela aluno:
SELECT * from alunos;
Mostre todos os nomes de todos os alunos:
SELECT nome from alunos;
Mostre os nomes de todos os alunos do sexo feminino: 
SELECT nome from alunos where sexo='F';
Utilizando uma função matemática para contar os números de alunos cadastrados: 
SELECT count (*) as total_alunos_matriculados from aluno;
Insert
Na linguagem SQL, existem essencialmente duas formas de INSERT (Inserir) dados numa tabela: Uma é inserir uma linha de cada vez, a outra é inserir várias linhas em simultâneo. 
A sintaxe para inserir dados numa linha da tabela de cada vez é a seguinte:
INSERT INTO "nome_tabela" ("coluna 1", "coluna 2", ...) VALUES ("valor 1", "valor 2", ...);
O segundo tipo de instrução INSERT INTO permite inserir várias linhas numa tabela. Ao contrário do exemplo anterior, em que foi inserida uma única linha especificando os seus valores para todas as colunas, agora uma instrução SELECT para especificar os dados que serão inseridos na tabela. Ou seja, utilizar informações de outra tabela. A sintaxe será a seguinte:
INSERT INTO "tabela 1" ("coluna 1", "coluna 2", ...) SELECT "coluna 3", "coluna 4", ...
FROM "tabela 2";
Update
Assim que existirem dados na tabela, pode ser necessário modificar os dados. Par tal, o comando UPDATE deve ser utilizado. A sintaxe para tal é:
UPDATE "nome_tabela" SET "coluna 1" = [novo valor] WHERE "condição";
Também é possível UPDATE (Atualizar) várias colunas em simultâneo. Nesse caso, a sintaxe seria semelhante à seguinte:
UPDATE "nome_tabela" SET coluna1 = [valor 1], coluna2 = [valor 2] WHERE "condição";
Delete
Caso seja necessário remover registros de uma tabela, é utilizado o comando DELETE FROM. A sintaxe para tal é
DELETE FROM "nome_tabela" WHERE "condição";
 Linguagem de Controle de Dados 
Com o banco de dados delineado, é importante definir quem poderá acessá-lo, a segurança do seu banco propriamente dita. Em inglês, os comandos GRANT, DENY e REVOKE fazem parte deste grupo. 
Grant
Utilizado para atribuir permissão ao user, para realizar uma operação;
Deny
Nega a permissão a um usuário ou grupo para realizar operação em um objeto ou recurso;
Revoke
Remove a permissão GRANT ou DENY.
Funções Matemáticas
Em nosso dia-a-dia, é muito comum existirem situações em se faz importante a realização de cálculos que vão além das operações básicas de adição e multiplicação, como funções trigonométricas e logaritmos. Assim como na “vida real”, não é raro precisarmos realizar tais cálculos em bancos de dados, por isso a maioria dos SGBD’s da atualidade oferecem funções matemáticas nativas para nos auxiliar nessas atividades.
Pow e Power 
Funcionam da mesma forma, recebendo dois argumentos, retorna o valor do primeiro elevado ao segundo. 
Rand
Retorna um valor decimal aleatório. Caso seja informado um argumento inteiro, este é usado como “semente” das sequências de repetição. Para uma mesma raiz, o valor aleatório é sempre o mesmo.
SQRT
Abreviação de “square root”, retorna o valor da raiz quadrada do argumento. Por exemplo, SQRT(4) vale 2.
Truncat
Semelhante à função ROUND, essa retorna o valor informado como argumento “truncado”. A diferença entre arredondamento e truncamento, de forma simples, é a seguinte: no truncamento, todas as casas decimais após a quantidade definida são desconsideradas, ou seja, o número é “quebrado”. No arredondamento, a casa decimal posterior àquela na posição informada é considerada no cálculo de arredondamento. 
Round
Essa função arredonda um valor, para um número de casas decimais informado como parâmetro. São esperados um ou dois argumentos. Informando apenas um, o valor é arredondado para um número inteiro, pois a quantidade de casas decimais e assumida como zero. Informando dois parâmetros, o primeiro indica o valor a ser arredondado, enquanto o segundo indica a quantidade de casas decimais a ser considerada. 
MOD
Recebe dois argumentos como parâmetro e retorna o resto da divisão do primeiro pelo segundo.
CEIL e CEILING
A função CEIL é uma forma compacta da CEILING, logo ambas têm o mesmo funcionamento, retornando o menor valor inteiro que seja maior que o argumento informado. 
ABS
O nome da função é abreviação de “absolute”, ou “absoluto” em português. Esta função retorna o valor absoluto (também chamado de módulo) do argumento
Dados Estruturados X Dados não estruturados
Hoje em dia, possuímos 80% de nossas informações armazenadas fora de banco de dados, fazendo com que a maioria dessas informações não sejam estruturadas. Ou seja, que ainda não passaram por algum processo de modelagem ou normatização. E isso faz delas, informações de difícil análise.
O resultado desse processo é irregularidade, ambiguidade, formatação, e dificuldade de entendimento que faz com que tenhamos que possuir ferramentas para armazenamento, otimização e consultas desses dados.
Por exemplo, um formulário tem campos como nome, endereço, etc, e se preenchido de forma correta, culmina num conjunto de informações estruturadas. Foi então, estruturado em linhas e colunas ou registros. Enquanto os dados não estruturados são qualquer tipo de dado (documento, arquivo, gráfico, imagem, texto, relatório, ou gravação de vídeo ou áudio) sem esse tratamento.
Big Data
A verdadeira questão atual não é que está coletando grandes quantidadesde dados, mas sim o que se faz com eles. As organizações tem que ser capazes de aproveitar os dados relevantes e usá-los para tomar as melhores decisões.
As tecnologias não só apoiam à coleta e o armazenamento de grandes volumes de dados, elas fornecem a capacidade de compreender e obter valor, o que ajuda as organizações a operar de forma mais eficiente e rentável.
A princípio, podemos definir o conceito de Big Data como sendo conjuntos de dados extremamente grandes e que, por este motivo, necessitam de ferramentas especialmente preparadas para lidar com grandes volumes, de forma que toda e qualquer informação nestes meios possa ser encontrada, analisada e aproveitada em tempo hábil.
Não é difícil entender este cenário: trocamos milhões de e-mails por dia; milhares de transações bancárias acontecem no mundo a cada segundo; soluções sofisticadas gerenciam a cadeia de suprimentos de várias fábricas neste exato momento; operadoras registram, a todo instante, chamadas e tráfego de dados do crescente número de linhas celulares no mundo todo; sistemas de ERP – sistema de gestão empresarial. Uma empresa que conta com vários sistemas: um para lidar com as contas a pagar, um para gerar folhas de pagamento, um para controlar vendas, um para gerenciar impostos, um para analisar metas e desempenho, entre outros. Em vez de existir um ou mais softwares isolados para cada departamento da companhia, mas a melhor solução é oferecida pelo ERP: uma integração entre eles, de forma que todos fizessem parte de um sistema unificado – coordenam os setores de inúmeras companhias enfim, exemplos não faltam - se te perguntarem você certamente será capaz de apontar outros sem fazer esforço.
Big Data é o conjunto de soluções tecnológicas capaz de lidar com dados digitais em volume, variedade e velocidade inéditos até hoje. 
Na prática, a tecnologia permite analisar qualquer tipo de informação digital em tempo real, sendo fundamental para a tomada de decisões.
Frequentemente, é um termo popular usado para descrever o crescimento, a disponibilidade e o uso exponencial de informações estruturadas e não estruturadas. Muito tem sido escrito sobre Big Data e como ele pode servir como base para a inovação, diferenciação e crescimento. Segundo o IDC, é imperativo que os líderes das organizações de TI se concentrem no crescente volume, variedade e velocidade de informações que constituem o Big Data.
Informação é poder, logo, se uma empresa souber como utilizar os dados que tem em mãos, poderá saber como melhorar um produto, como criar uma estratégia de marketing mais eficiente, como cortar gastos, como produzir mais, como evitar o desperdício de recursos, como superar um concorrente, como disponibilizar um serviço a um cliente de maneira satisfatória e assim por diante.
Atributos do Big Data
Volume
Muitos fatores contribuem para o aumento do volume de dados. Transações de dados armazenados ao longo dos anos, dados de texto constantemente em streaming nas mídias sociais, o aumento da quantidade de dados de sensores que estão sendo coletados etc. No passado o volume de dados excessivo criou um problema de armazenamento. 
Mas com os atuais custos de armazenamento decrescentes, outras questões surgem, incluindo, como determinar a relevância entre os grandes volumes de dados e como criar valor a partir dessa relevância.
Variedade
Os dados de hoje vem em todos os tipos de formatos. Sejam bancos de dados tradicionais, hierarquias de dados criados por usuários finais e sistemas OLAP, arquivos de texto, e-mail, medidores e sensores de coleta de dados, vídeo, áudio, dados de ações do mercado e transações financeiras. Por algumas estimativas, 80 por cento dos dados de uma organização não é numérico. Mas, estes dados também precisam ser incluídos durante as análises e tomadas de decisões das empresas.
Velocidade
A velocidade significa tanto o quão rápido os dados estão sendo produzidos quanto o quão rápido os dados devem ser tratados para atender a demanda. Etiquetas RFID e contadores inteligentes estão impulsionando uma necessidade crescente de lidar com torrentes de dados em tempo quase real. Reagir rápido o suficiente para lidar com a velocidade é um desafio para a maioria das organizações.
A importância
Lidamos com dados desde os primórdios da humanidade. Acontece que, nos tempos atuais, os avanços computacionais nos permitem guardar, organizar e analisar dados muito mais facilmente e com frequência muito maior.
Este cenário está longe de deixar de ser crescente. Basta imaginar, por exemplo, que vários dispositivos em nossas casas - geladeiras, TVs, lavadoras de roupa, cafeteiras, entre outros - deverão estar conectados à internet em um futuro não muito distante. 
A quantidade de dados gerada e armazenada diariamente chegou a tal ponto que, hoje, uma estrutura centralizada de processamento de dados já não faz mais sentido para a maioria absoluta das grandes entidades. O Google, por exemplo, possui vários data centers para dar conta de suas operações, mas trata todos de maneira integrada. Este "particionamento estrutural", é bom destacar, não é uma barreira para o Big Data - em tempos de computação nas nuvens, nada mas trivial.
 Avanço nos Bancos de Dados
Além de lidar com volumes extremamente grandes de dados dos mais variados tipos, soluções de Big Data também precisam trabalhar com distribuição de processamento e elasticidade, isto é, suportar aplicações com volumes de dados que crescem substancialmente em pouco tempo.
O problema é que os bancos de dados "tradicionais", especialmente aqueles que exploram o modelo relacional, como o MySQL, o PostgreSQL e o Oracle, não se mostram adequados a estes requisitos, já que são menos flexíveis. Isso acontece porque bancos de dados relacionais normalmente se baseiam em quatro propriedades que tornam a sua adoção segura e eficiente, razão pela quais soluções do tipo são tão populares: Atomicidade, Consistência, Isolamento e Durabilidade. Esta combinação é conhecida como ACID:
Atomicidade: toda transação deve ser atômica, isto é, só pode ser considerada efetivada se executada completamente;
Consistência: todas as regras aplicadas ao banco de dados devem ser seguidas;
Isolamento: nenhuma transação pode interferir em outra que esteja em andamento ao mesmo tempo;
Durabilidade: uma vez que a transação esteja concluída, os dados consequentes não podem ser perdidos.
A elasticidade, por exemplo, pode ser inviabilizada pela atomicidade e pela consistência. É neste ponto que entra em cena o conceito de NoSQL, denominação que muitos atribuem à expressão em inglês "Not only SQL", que em tradução livre significa "Não apenas SQL" . O NoSQL faz referência às soluções de bancos de dados que possibilitam armazenamento de diversas formas, não se limitando ao modelo relacional tradicional, bancos do tipo são mais flexíveis. Entretanto, os bancos de dados relacionais não ficaram ultrapassados - eles são e continuarão por muito tempo sendo úteis a uma série de aplicações.
Exemplos de bancos de dado NoSQL são o Cassandra, o MongoDB, o HBase, o CouchDB e o Redis. Mas, quando o assunto é Big Data, apenas um banco de dados do tipo não basta. É necessário também contar com ferramentas que permitam o tratamento dos volumes. Neste ponto, o Hadoop é, de longe, a principal referência.
Cassandra, MongoDB, HBae, CouchDB e Redis
Cassandra é uma implementação de família de colunas NoSQL que suporta o modelo de dados Big Table e usa aspectos de arquitetura introduzidos por Amazon Dynamo. Alguns dos pontos positivos do Cassandra são:
Altas escalabilidade e disponibilidade, sem um ponto único de falha
Implementação da família de colunas NoSQL
Rendimento de gravação muito alto e bom rendimento de leitura
Linguagem de consulta semelhante a SQL (desde 0.8) e suporte para procura por índices secundários
Consistência ajustável e suporte para replicação
Esquema flexível
O MongoDB é um banco de dados orientado a documentos de alta performance, open source e schema-free, escrito em C++. Ele é uma misturaentre os repositórios escaláveis baseados em chave/valor e a tradicional riqueza de funcionalidades dos bancos relacionais.
O HBase realmente é um clone (ou um parente muito próximo) do Bigtable do Google e, foi originalmente criado para ser usado com o Hadoop. Na verdade, o HBase é um subprojeto do projeto Hadoop do Apache. O HBase oferece as capacidades de banco de dados do Hadoop. Ele é um banco de dados orientado a colunas, e foi construído para fornecer pedidos com baixa latência sob Hadoop HDFS. Diferentemente de bancos de dados colunares que fornecem consistências eventuais, o HBase é bastante consistente.
CouchDB é um sistema de software livre de gerenciamento de banco de dados orientado a documentos que pode ser acessado através da API de JavaScript Object Notation (JSON) RESTful. O termo “Couch” é um acrônimo para “Cluster Of Unreliable Commodity Hardware”, que reflete a meta do CouchDB de ser extremamente escalável, oferecendo alta disponibilidade e confiabilidade, mesmo ao executar em hardware que está geralmente sujeito à falhar. O CouchDB foi gravado originalmente em C++, mas em abril de 2008, o projeto foi movido para a plataforma Erlang OTP devido à sua ênfase em tolerância a falhas.
O Redis usa o conceito NoSQL. É basicamente um dicionario chave-valor. Ou seja, cada chave (ou endereço, ou CPF, ou qualquer outro termo que te faça sentido) está associada a um valor. O Redis armazena em memória RAM os dados, e de tempos em tempos transfere o conteúdo da memória para o disco se ocorreu uma determina quantidade mudanças nos dados.
Handoop
A base das distribuições Hadoop é a comunidade Apache. Diversas empresas vêm contribuindo com código para seu desenvolvimento, como Yahoo!, Facebook, Cloudera, IBM e outras.
O Hadoop, para análise de dados de código aberta, foi criado pelo Yahoo em 2005 e pode ser considerado uma das maiores invenções de data management desde o modelo relacional. Hoje é um dos projetos da comunidade Apache e vem sendo adotado por empresas que precisam tratar volumes massivos de dados não estruturados. Entre as principais organizações que abraçaram a ferramenta estão Nasa, Twitter e Netflix.
A Nasa adota a Hadoop para lidar com grandes volumes de dados em projetos como o Square Kilometer Array, para visualização do céu. Estima-se que este sistema produzirá 700 terabyte de dados quando for construído na próxima década.
A rede social Tagged utiliza a tecnologia Hadoop para análise de informações e processa cerca de meio terabyte de novos dados diários.
O Hadoop é uma implementação do paradigma de programação Map-Reduce. Map-Reduce é um paradigma de programação introduzido pelo Google para processar e analisar grandes conjuntos de dados. Todos esses programas que são desenvolvidos nesse paradigma realizam o processamento paralelo de conjuntos de dados e podem, portanto, ser executados em servidores sem muito esforço.
Figura 5 – MapReduce
A razão para a escalabilidade desse paradigma é a natureza intrinsecamente distribuída do funcionamento da solução. Uma grande tarefa é dividida em várias tarefas pequenas que são então executadas em paralelo em máquinas diferentes e então combinadas para chegar à solução da tarefa maior que deu início a tudo. Os exemplos de uso do Hadoop são analisar padrões de usuários em sites de e-commerce e sugerir novos produtos que eles possam comprar.
Nem todo usuário de Hadoop demanda uma escala massiva de dados ao nível do Facebook ou Yahoo. Mas empresas com razoável volume de informações não estruturadas, como bancos, varejo, empresas aéreas e outras vão encontrar no Hadoop uma boa alternativa para o tratamento analítico dos seus dados.
A Cloud Computing
É conhecida no Brasil como computação nas nuvens ou computação em nuvem. Quando se fala em computação nas nuvens, fala-se na possibilidade de acessar arquivos e executar diferentes tarefas pela internet. Quer dizer, você não precisa instalar aplicativos no seu computador para tudo, pois pode acessar diferentes serviços online para fazer o que precisa, já que os dados não se encontram em um computador específico, mas sim em uma rede. 
Um exemplo perfeito de computação em nuvens são os serviços de sincronização de arquivos, como o Dropbox. Com ele tudo o que se precisa fazer é reservar um espaço do disco rígido, o qual será destinado para a sincronia nas nuvens. Ao copiar ou mover um arquivo nesse espaço, ele será duplicado no servidor do aplicativo e também em outros computadores que tenham o programa instalado e nos quais há o acesso a mesma conta.
As vantagens proporcionadas pela computação em nuvens são muitas. Uma delas — talvez a mais impactante para a maior parte das pessoas — é a não necessidade de ter uma máquina potente, uma vez que tudo é executado em servidores remotos. O armazenamento nas nuvens também gera desconfiança, principalmente no que se refere à segurança. Afinal, a proposta é manter informações importantes em um ambiente virtual, e não são todas as pessoas que se sentem à vontade com isso.
Deve-se ressaltar também que, como há a necessidade de acessar servidores remotos, é primordial que a conexão com a internet seja estável e rápida, principalmente quando se trata de streaming e jogos.
Conclusão
Com base no exposto, é possível perceber o quando a presença do banco de dados no dia a dia é intensa, muitas vezes de modo sutil dentro da organização uma empresa onde o consumidor em si não percebe e outras de grande importância como é fundamental manter organizados todos esses bites criados diariamente. Por isso é imprescindível que exista o Sistema Gerenciador de Banco de Dados que através de seus programas como mantém a organização e integridade dos dados ali presentes nos três níveis o conceitual, físico, utilizando recursos de programação. 
Outro fator importante a citar é o fato de que para o SGBD os dados estão sempre relacionados entre si e juntos formam a razão para um projeto que por sua vez ficam armazenados no intuito de que a recuperação desses respectivos dados ocorra da forma mais rápida e segura possível, pois muitas vezes esses dados todos tem grande válida econômica e financeira.
Dados que tem grande volume necessitam de recursos computacionais apropropriados para conseguir gerenciar todo esse volume em tempo hábil, o que trás a ideia do big data bem próxima a realidade atual já que hoje se vive pesquisa no Google e publicar fotos em redes sociais são praticas que ocorrem a todo o momento.
Seguindo essa tendência a computação em nuvem tem um grande papel na vida de universitários, por exemplo, que compartilham arquivos o tempo todo, fica-se livre de HDs portáteis, pois se utiliza a capacidade de armazenamento e cálculos dos computadores e servidores.
Por esses motivos e tantos outros detalhados aqui fica explicitamente possível compreender o quanto a vida moderna está completamente depende do funcionamento dos bancos de dados presentes mundo a fora, seja para a compra de uma passagem área, para o funcionamento de um aplicativo de celular ou o gerenciamento todos os bites produzidos em uma empresa de qualquer porte, desse modo é evidente o quanto cada um é dependente dessa tecnologia sem perceber.
Referências Bibliográficas
Significados. Encontrado em: http://www.significados.com.br/sql/
Vertica. Encontrado em: https://my.vertica.com/docs/5.0/PDF/SQL% 20Reference%20Manual.pdf
UCL. Encontrado em: https://ww1.ucl.br/extensao/devweb/Documentos %20Compartilhados/SQL.pdf
O globo. Encontrado em: http://oglobo.globo.com/infograficos/bigdata/

Outros materiais