Você está na página 1de 22

Linguagem de definição de dados (DDL)

– Data Definition Language

APRESENTAÇÃO

Seja bem-vindo!

No começo da década de 1960, com o surgimento dos Sistemas de Gerenciamento de Banco de


Dados (SGBDs), o conceito de dado enquanto registro armazenado em uma entidade precisou
ser ampliado, criando, então, as dimensões posteriores ao dado: a informação e o conhecimento.

Logo, um conhecimento é uma abstração extraida de uma informação oriunda de um dado.


Todavia, para que essa informação gerasse conhecimento antes, deveria haver uma extração e
um tratamento do dado, que poderia estar registrado em um repositório ou em banco de dados.

Paralelo aos sistemas de gerenciamento de banco de dados, foram criadas linguagens de


definição, manipulação, controle e transação de dados.

Nesta Unidade de Aprendizagem, você vai conhecer a linguagem utilizada para definição de
dados, a Data Definition Language (DDL).

Bons estudos.

Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:

• Identificar a linguagem DDL.


• Exemplificar a linguagem DDL.
• Implementar a linguagem DDL.

DESAFIO

A DDL é uma linguagem de definição utilizada na composição do SQL, que é uma


linguagem difundida para bancos de dados relacionais inspirada em álgebra relacional.
Acompanhe o desafio que a empresa Xpex do ramo de tecnologia precisa resolver.
Imagine que você foi contratado para o cargo de data base administrator (DBA). Como você
realizaria a alteração da tabela durante a migração para o Banco de Dados NoSQL sem
comprometer as transações de migração que estão em andamento?

INFOGRÁFICO

No Infográfico a seguir, você verá o ciclo de vida de modelagem e desenvolvimento de banco


de dados, observando o contexto da utilização das linguagens que compõem o SQL (DDL,
DML, DTL e DCL) através dos níveis de abstração de banco de dados.
CONTEÚDO DO LIVRO

A linguagem de definição de dados (DDL) corresponde a um importante elemento diante de


criação, alteração e exclusão de estruturas em um banco de dados. Neste sentido, é importante
contextualizar a utilização do DDL junto à modelagem e desenvolvimento de bancos de dados.

No capítulo Linguagem de definição de dados (DDL), da obra Modelagem e desenvolvimento de


banco de dados, você vai estudar a modelagem e o desenvolvimento de bancos de dados a partir
da perspectiva da DDL, observando as estruturas que a compõem. Ainda, você verá exemplos de
sua utilização, bem como a sua implementação na criação, alteração e exclusão de estruturas
dentro de bancos de dados.

Boa leitura.
MODELAGEM E
DESENVOLVIMENTO
DE BANCO DE DADOS

Pedro Henrique Chagas de Freitas


Linguagem de definição
de dados (Data Definition
Language) (DDL)
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:

„„ Identificar a linguagem DDL.


„„ Exemplificar a linguagem DDL.
„„ Implementar a linguagem DDL.

Introdução
Neste capítulo, você vai estudar a modelagem e o desenvolvimento de
bancos de dados a partir da perspectiva da DDL (Data Definition Language),
observando as estruturas que compõem a DDL, bem como exemplos
de sua utilização e a sua implementação na criação, alteração e exclusão
de estruturas dentro de bancos de dados.
A DDL é uma linguagem de definição utilizada na composição do
SQL (Structured Query Language), que é uma linguagem estruturada e
difundida para bancos de dados relacionais e inspirada em álgebra rela-
cional. Logo, a DDL será apresentada ao longo deste capítulo de forma
holística, com uma abordagem de todas as características que vinculam
essa linguagem, bem como sua implementação na modelagem e no
desenvolvimento de bancos de dados.

Conceituando a linguagem DDL


A linguagem DDL nasce nos anos 1980, dentro do contexto de migração de
dados armazenados em repositórios para sistemas relacionais que deram vazão
aos chamados SGBDs (Sistemas de Gerenciamento de Bancos de Dados).
Quando o dado bruto começou a ser explorado, a fim de gerar informações
2 Linguagem de definição de dados (Data Definition Language) (DDL)

que, por sua vez, seriam derivadas em conhecimento, os relacionamentos


entre os dados precisaram ser organizados em bancos de dados que deveriam
ter alguma linguagem de criação, manipulação, transação e controle para
orquestração das implementações dos projetos de bancos de dados.
A IBM começa, então, nos anos 1970, um projeto nos seus laboratórios
de pesquisa para a criação de uma linguagem para bancos de dados que, com
o tempo, chegou ao que hoje conhecemos como SQL (Structured Query
Language). O SQL se tornou, então, a abstração de linguagem para banco
de dados mais difundida, sendo utilizada por diversos SGBDs, como Oracle,
DB2, MySQL, etc. A ideia inicial foi, então, criar uma linguagem de definição
das estruturas de dados dentro do banco de dados, de modificação de dados
e de especificação de segurança no acesso aos dados.
Para que isso fosse possível, o SQL precisava surgir de forma não procedu-
ral, isto é, o SQL é uma linguagem declarativa, na qual existe uma aproximação
da linguagem do usuário. Na modelagem e no desenvolvimento de bancos
de dados, é necessário compreender o dado nas suas diferentes perspectivas.
Pensando nisso, Elmasri e Navathe (2010) definem o banco de dados como
uma coleção de dados relacionados, que são entendidos como fatos que têm
um significado implícito. Todavia, Korth, Silberchatz e Sudarshan (2012)
ampliam esse conceito, dizendo que um banco de dados é uma coleção de
dados inter-relacionados que contém informações relevantes dentro de um
determinado contexto.
Logo, é possível perceber que um banco de dados representa uma coleção
de dados que pode ser compreendida em relação ao número de usuário (mo-
nousuário e multiusuário), à localização dos dados (centralizado e distribuído),
à utilização (operacional, DW, documental, etc.), à estrutura (estruturado,
semiestrutura, não estruturado). Essa grande diversificação de bancos de
dados também é responsável pela grande diversidade de SGBDs (Sistemas
de Gerenciamento de Banco de Dados).
Os SGBDs são softwares que têm como foco definir, manipular e acessar
bancos de dados, organizando seu funcionamento estrutural com o objetivo de
evitar inconsistências, desnormalizações e redundâncias. Assim, temos conjun-
tos de dados (bancos de dados) sendo gerenciados por sistemas gerenciadores de
bancos de dados (SGBDs). Dentre vários SGBDs, podemos destacar: MySQL,
Access, PostgreSQL, Oracle 11g, etc. Para realizar de forma eficiente a gestão
dos bancos de dados, os SGBDs devem manter a integridade das transações
no banco de dados e a integração dos dados, minimizando inconsistências e
autorizando e restringindo acessos (permissões) no banco de dados.
Linguagem de definição de dados (Data Definition Language) (DDL) 3

Para implementar, então, a gestão sobre o banco de dados, é necessário


a utilização do SQL ou de outra linguagem para banco de dados; no caso, o
SQL é o mais difundido e, por meio dele, as transações no banco de dados
podem ser realizadas. Os bancos de dados vão apresentar três representações
de abstração no momento da sua modelagem (nível físico, nível lógico e nível
visão) segundo ensinam Korth, Silberschatz e Sudarshan (2012).
Dentro desse contexto, no nível físico (nível mais baixo de representação),
temos a descrição de armazenamento dos dados, ou seja, temos a forma como
os dados estão fisicamente armazenados. No nível lógico, temos quais dados
estão armazenados e seus relacionamentos, ou seja, quais relações existem
entre os dados; logo, temos, aqui, a representação da estrutura lógica dos dados.
Por fim, temos o nível visão, no qual é apresentada uma abstração dos dados
na forma pela qual eles são vistos pelos usuários do sistema gerenciador de
banco de dados. Para operar essas três estruturas, temos a linguagem SQL,
que foi dividida em quatro ramificações:

„„ DDL (Data Definition Language);


„„ DML (Data Manipulation Language);
„„ DTL (Data Transaction Language);
„„ DCL (Data Control Language).

Existem autores que ainda apontam que a DQL seria uma linguagem de consulta.
Como ela só tem um comando (SELECT), para alguns, não é uma ramificação. Todavia,
o SELECT é utilizado costumeiramente em transações em bancos de dados.

Vale relatar, ainda, dois tipos de situações comuns diante da modelagem de


bancos de dados: a independência de dados física e a independência de dados
lógica. A independência de dados física é a capacidade de modificar o esquema
físico sem modificar o esquema lógico, enquanto a independência lógica é a
capacidade de alterar o esquema lógico sem modificar esquemas externos.
Assim, o projeto de modelagem e desenvolvimento de bancos de dados
vai respaldar a utilização do SQL nas transações. A DDL (Data Definition
Language), especificamente, apresenta três instruções (Figura 1):
4 Linguagem de definição de dados (Data Definition Language) (DDL)

„„ CREATE (criação de tabelas);


„„ ALTER (modificação de tabelas);
„„ DROP (eliminação de tabelas).

Embora esses sejam os principais com a evolução do SQL, comandos como


TRUNCATE e RENAME também foram sendo adicionados.

Figura 1. Instruções da DDL.

Os elementos DDL não são usados somente para criar, alterar ou excluir tabelas, mas
também em outras estruturas, como:
„„ CREATE INDEX: cria um novo índice em uma tabela.
„„ CREATE DOMAIN: cria um tipo de dados definido pelo usuário.
„„ ALTER INDEX: altera um índice de uma tabela.
„„ DROP INDEX: exclui um índice existente em uma tabela.
Linguagem de definição de dados (Data Definition Language) (DDL) 5

Exemplificando a linguagem DDL


Temos, então, que a DDL compõe o SQL e é utilizada na modelagem e no
desenvolvimento de bancos de dados para a definição de estruturas de dados,
como colunas, tabelas, linhas e índices.

„„ CREATE TABLE (Tabelas são criadas):

„„ ALTER TABLE (Tabelas são alteradas):

„„ DROP TABLE (Tabelas são excluídas):


6 Linguagem de definição de dados (Data Definition Language) (DDL)

Alguns autores trazem, ainda, uma definição muito pouco utilizada, que é o VDL (View
Definition Language). O VDL é utilizado para especificar as visões dos usuários e seus
mapeamentos para o esquema lógico.
Exemplo:
CREATE VIEW (Cria uma View)
DROP VIEW (Deleta uma View)
É importante lembrar que uma VIEW é uma tabela virtual que pode ter linhas e
colunas de tabelas relacionadas, sendo o resultado de uma consulta (SELECT).

Implementação da DDL
Temos, então, alguns exemplos de implementação da DDL. Se desejássemos
criar uma tabela que representasse os servidores públicos de determinado
Ministério, conforme mostra a Figura 2, faríamos da seguinte forma:
Linguagem de definição de dados (Data Definition Language) (DDL) 7

Temos, então:

Figura 2. Exemplo de implementação da DDL.

Se o objetivo fosse implementar uma tabela “Projeto” e adicionar os no-


mes dos responsáveis pelos projetos, conforme mostra a Figura 3, faríamos
o seguinte:

Figura 3. Implementação da tabela “Projeto”.

Para criar uma tabela “trabalha” e “administra” com CPF e o codProjeto,


deve-se fazer o seguinte (Figura 4):
8 Linguagem de definição de dados (Data Definition Language) (DDL)

Figura 4. Implementação das tabelas “Trabalha” e “Administra”.

O que fizemos afinal de contas? Nós criamos um esquema: Ministério,


composto, na nossa base de dados, por cinco tabelas (SERVIDOR PUBLICO,
COORDENACAO, PROJETO, TRABALHA e ADMINISTRA). Para cada
tabela, definimos domínios e criamos chaves (primary key e foreign key).
Note que buscamos definir uma formação lógica e exprimi-la em comando
para registro no banco de dados a partir da criação de tabelas no esquema:
MINISTÉRIO. Nos Ministérios, por exemplo, temos: “Servidores Públicos”,
que estão vinculados a “Coordenações”, que, por sua vez, possuem “Projetos”;
cada servidor “Trabalha” dentro de alguma “Coordenação” em algum “Projeto”
e cada “Coordenador” vai “Administrar” esses “Projetos”.
Linguagem de definição de dados (Data Definition Language) (DDL) 9

O que podemos concluir aqui? Podemos concluir que os esquemas dentro


de um banco de dados buscam representar a realidade do mundo exterior — no
nosso caso, do Ministério. Ao tentar fazer isso, utilizamos tabelas, que são
criadas a partir de comandos SQL — neste caso, CREATE TABLE. Caso
desejássemos alterar essa tabela que criamos, utilizaríamos ALTER TABLE.
Veja o exemplo a seguir:

Caso desejássemos excluir uma tabela, faríamos, por exemplo:

Observe que o comando “Cascade” é utilizado para excluir as referências


nas quais a tabela ADMINISTRA está presente.

ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. 6. ed. São Paulo: Pearson, 2010.
KORTH, H. F.; SILBERSHATZ, A.; SUDARSHAN, S. Sistemas de banco de dados. 6. ed. Rio
de Janeiro: Campus, 2012.

Leituras recomendadas
HEUSER, C. A. Projeto de banco de dados. 6. ed. Porto Alegre: Bookman, 2008. (Série
Livros Didáticos Informática UFRGS, v. 4).
RAMAKRISHNAN, R.; GEHRKE, J. Sistemas de gerenciamento de bancos de dados. 3. ed.
São Paulo: McGraw-Hill, 2008.
SETZER, V. W. Banco de dados: conceitos, modelos, gerenciadores, projeto lógico,
projeto físico. São Paulo: Blücher, 1990.
DICA DO PROFESSOR

Nesta Dica do Professor, você verá como funciona a utilização da linguagem DDL na criação de
tabelas para uma organização orientada a projetos.

Conteúdo interativo disponível na plataforma de ensino!

EXERCÍCIOS

1) Qual instrução pertence à linguagem de definição de dados (DDL)?

A) REVOKE.

B) DROP.

C) INSERT.

D) DELETE.

E) GRANT.

2) Assinale a alternativa correta a respeito da linguagem DDL.

A) O DDL é uma linguagem que implementa recursos de restrições de segurança, como


GRANT e REVOKE.

B) Através da linguagem DDL, são estabelecidas restrições de controle de dados.


C) O DDL é o responsável pela manipulação dos dados.

D) O DTL e o DDL são semelhantes. O DTL é responsável pela definição dos dados, e o
DDL pelas transações.

E) O DDL é uma linguagem responsável pela definição das estruturas de dados.

3) Assinale a alternativa correta quanto à instrução que o DDL implementa.

A) ALTER TABLE SALARIO.

B) INSERT INTO EMPREGADO.

C) UPDATE PROJETO SET codDepartamento = DEP Where codProjeto = P1.

D) DELETE FROM DEPARTAMENTO WHERE codProjeto = P2.

E) GRANT TO ALUNO.

4) A instrução correta para criar uma tabela ALUNO através do SQL utiliza qual
comando DDL?

A) CREATE TABLE ALUNO.

B) ALTER TABLE ALUNO.

C) DROP TABLE ALUNO.

D) SELECT TABLE ALUNO.


E) REVOKE ALUNO.

5) O comando DROP TABLE da DDL é responsável por excluir:

A) um campo de uma tabela.

B) uma coluna da tabela.

C) toda a estrutura da tabela.

D) o canco de dados.

E) uma linha da tabela.

NA PRÁTICA

Os projetos de modelagem e desenvolvimento de bancos de dados utilizam vários frameworks


com a linguagem DDL, DML, DCL e DTL já implementada, isto é, não são realizadas
modelagens partindo do zero, mas sim com o auxilio de diversos frameworks, então, são
customizadas situações favoráveis para a implementação dos bancos de dados através dos
SGBDs.

Normalmente, os bancos de dados são consultados por outros sistemas externos, logo, a
modelagem precisa ser rápida e com fraco acoplamente, uma vez que diversas tecnologias
poderão acessar o banco de dados ao mesmo tempo.
A utilização da linguagem DDL, hoje, é realizada muitas vezes através de frameworks, para ter
mais dinâmismo na modelagem e na implementação dos bancos de dados.

SAIBA MAIS

Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do
professor:

DDL, DML, DCL e TCL

Contextualização sobre a utilização dos comandos SQL: DDL, DML, DCL e TCL.
Conteúdo interativo disponível na plataforma de ensino!

Introdução a DDL e DML

Verificação das diferenças dos comandos de definição e manipulação de dados.

Conteúdo interativo disponível na plataforma de ensino!

Introdução aos comandos SQL

Introdução e grupos de comandos (DDL, DML, DCL, DQL) - Structured Query Language -SQL
Server.

Conteúdo interativo disponível na plataforma de ensino!

Você também pode gostar