Linguagem SQL – structured
query language
Prof: Daiane Siqueira
Introdução à linguagem SQL
• A SQL engloba vários tipos de comandos:
• Comandos de manipulação de dados (DML - Data Manipulation Language) 
São comandos que nos permitem consultar, incluir, excluir ou alterar dados de
tabelas.
• Comandos de definição de dados (DDL - Data Definition Language) São

comandos que nos permitem manipular a estrutura do banco de dados,
criando cada uma de suas tabelas com seus atributos, chaves etc.
Introdução à linguagem SQL
• Nesta parte iremos ver os Comandos de Definição de Dados,
chamados de DDL - Data Definition Language (por exemplo: Create,
Alter e Drop)
• São comandos que nos permitem manipular a estrutura do banco de
dados, criando cada uma de suas tabelas com seus atributos, chaves
primárias e estrangeiras etc.
• Em seguida, veremos outros comandos de manipulação de dados
(DML), como o insert, update e delete
Definição de dados
• O conjunto de relações (tabelas) de um BD precisa ser especificado ao
sistema por meio de uma linguagem de definição de dados - DDL.
• A SQL DDL permite a especificação não apenas de um conjunto de
relações, mas também de informações sobre cada relação, incluindo:
• Esquema para cada relação (seus atributos);
• Domínio de valores associados a cada atributo;
• Conjunto de índices a ser mantido para cada relação;
• Restrições de integridade;
• Definição de chaves primárias e chaves estrangeiras etc.
Criando e apagando banco de dados
• Um banco de dados em SQL é definido usando o comando create database:
create database <nome>;
onde <nome> é o nome do banco de dados
• Exemplo:
create database myDatabase;
• Para apagar um banco de dados use o comando:
drop database <nome>;
Criando relações em banco de
dados
• Uma relação SQL é definida usando o comando create table:
create table R (
A1 D1 [N1] [d1],
A2 D2 [N2] [d2],
...,
An Dn [Nn] [dn],
<regras de integridade1>,
...,
<regras de integridadek>
);
Criando relações em banco de
dados
• R é o nome da relação
• Cada Ai é o nome de um atributo em R
• Di é o tipo dos atributos Ai,
• [Ni] indica que o atributo deve ser obrigatoriamente preenchido ou
não.
• Por padrão, Ni recebe o valor NULL.
• [di] indica que o atributo possui algum valor padrão ou não.
• Por padrão, os atributos não possuem valor padrão.
Criando relações em banco de
dados
• Exemplo:
create table Time (
numCadastro INTEGER NOT NULL,
nome VARCHAR(30) NOT NULL,
cidade VARCHAR(50) default ‘Vitória’,
situacao INTEGER NOT NULL
);
R
Ai
Di di
Ni
Criando relações em banco de
dados
• As Regras de Integridade permitidas englobam:
• Chaves primárias
• Chaves estrangeiras
• Cláusulas “check”
CHAVES PRIMÁRIAS
• Toda tabela deve ter uma chave primária que pode ser simples ou
composta.
• Simples usa apenas um atributo.

• Composta usa dois ou mais atributos.

• O objetivo da chave primária é identificar unicamente entidades
dentro de um conjunto de entidades.
• A chave primária nunca se repetirá. Ela é única.
• Para criar uma chave primária basta usar a palavra chave primary key e
entre parênteses colocar o nome dos campos que compõem a chave
• primary key (A1, A2, ...., AJ)
CHAVES PRIMÁRIAS
• Criando uma tabela com chave primária:
create table NOME_TABELA (
atrib1 <tipo> not null,
atrib2 <tipo> not null,
....,
atribX <tipo>,
primary key (atrib1, atrib2, ...)
);
Chaves primárias
• Exemplos :
create table DEPOSITANTE (
nome_cliente varchar(20) not null,
numero_conta char(10) not null,
primary key (nome_cliente, numero_conta)
);
create table ESTUDANTE (
nome varchar(20) not null,
id_estudante char(10) not null,
nivel char(15) null,
primary key (id_estudante)
);
Cláusula check
• A cláusula “check” especifica um predicado P que precisa ser satisfeito
por todas as tuplas de uma relação.
• Para criar uma cláusula check basta usar a palavra chave check e entre
parênteses colocar o predicado a ser satisfeito
• check (P)
• Um erro será sinalizado e atualizações serão impedidas, caso a
condição check da tupla falhar.
Cláusula check
• Exemplo:
create table EMPREGADO (
nome char (30) not null,
rg integer not null,
cpf integer,
depto integer not null,
rg_supervisor integer,
salario decimal (7,2) not null,
primary key (rg),
check (depto > 0)
);
Criando relações em banco de
dados
• Outro Exemplo:
create table ESTUDANTE (
nome varchar(20) not null default ‘’,
id_estudante char(10) not null,
nivel char(15) not null,
coeficiente decimal not null default 0,
primary key (id_estudante),
check (nivel in (‘Bacharelado’,’Mestrado’,‘Doutorado’))
);
CHAVES estrangeiras
• O conceito de chave estrangeira se refere ao tipo de relacionamento entre
as tabelas de dados do BD.
• Uma chave estrangeira (foreign key) é a chave formada através de um
relacionamento com a chave primária de outra tabela.
• A chave estrangeira é um campo que aponta para a chave primária de outra tabela.
• Ela define um relacionamento entre as tabelas e pode ocorrer repetidas
vezes.
• A chave estrangeira pode repetir em uma tabela.
CHAVES estrangeiras
• Caso a chave primária seja composta na origem, a chave estrangeira
também será.
• A finalidade da chave estrangeira é garantir a integridade dos dados
referenciais.
• Apenas serão permitidos valores que aparecem ou que supostamente vão
aparecer na Base de Dados.
CHAVES estrangeiras
• Exemplo
• O relacionamento entre PRODUTO e PEDIDO é feita via atributo
codigo_produto
• Em PRODUTO é a chave primária, logo seu valor é único
• Em PEDIDO é uma chave estrangeira, portanto seu valor pode aparecer diversas vezes
Tabela PRODUTO Tabela PEDIDO
- codigo_produto (chave primária)
- produto
- categoria
- preco_data
- quantidade
- descricao
- numero_pedido
- codigo_produto (chave estrangeira)
- quantidade
CHAVES estrangeiras
• Para se definir uma chave estrangeira deve usar a seguinte sintaxe:
foreign key (atrib1, atrib2, ...) references nome_tabela (atribX, atribY, ...)
• ou seja, deve-se referenciar os campos da tabela corrente (atrib1,
atrib2, ...) com os atributos a que estão relacionados na tabela
nome_tabela (atribX, atribY, ...)
• Se os atributos da tabela corrente forem iguais aos atributos da tabela
referenciada, pode-se omitir os nomes desses atributos.
CHAVES estrangeiras
• Exemplo
create table agencia (
nome_agencia varchar(30) not null,
cidade_agencia varchar(30) not null,
fundos decimal not null,
primary key (nome_agencia)
);
create table conta (
nome_agencia varchar(30) not null,
numero_conta varchar(5) not null,
saldo decimal not null ,
primary key (numero_conta),
foreign key (nome_agencia)
references agencia
(nome_agencia)
);
CHAVES estrangeiras
• Nesse exemplo, omitiu-se o nome do campo “nome_agencia” da
tabela “agencia” por se tratar de campos com nomes iguais nas duas
tabelas.
• Algumas ações podem estar associadas a chaves estrangeiras
• Essas ações ocorrem quando se atualiza ou se remove um valor que é
chave PRIMÁRIA na tabela referenciada pela chave estrangeira.
CHAVES estrangeiras
• ON UPDATE:
• A cláusula ON UPDATE indica que quando uma atualização é executada sobre
uma linha na tabela referenciada, uma das seguintes ações será executada:
• NO ACTION (RESTRICT)
• A atualização de uma chave primária pode ser abortada caso um registro em uma tabela
referenciada tenha um valor mais antigo.
• Este parâmetro é o default quando esta cláusula não recebe nenhum parâmetro.
• Exemplo:
• Tentar atualizar o código de um cliente quando esse cliente já possui um
pedido.
• Um erro é gerado!
CHAVES estrangeiras
• ON UPDATE:
• CASCADE (Em Cascata)
• Quando o campo da chave primária é atualizado, registros na tabela referenciada são
atualizados em cascata.
• Exemplo:
• Tentar atualizar o código de um cliente quando esse cliente já possui um
pedido.
• Nenhum erro é gerado, pois o código do cliente também será atualizado na
tabela PEDIDO.
CHAVES estrangeiras
• ON DELETE:
• Esta cláusula indica que quando uma exclusão é executada sobre uma linha
na tabela referenciada, uma das seguintes ações será executada:
• NO ACTION (RESTRICT)
• Quando um campo de chave primária está para ser deletado, a exclusão será abortada caso o
valor de um registro na tabela referenciada seja mais velho.
• Este parâmetro é o default quando esta cláusula não recebe nenhum parâmetro.
• Exemplo:
• Tentar excluir um cliente que possui um pedido
• Um erro será gerado!
CHAVES estrangeiras
• ON DELETE:
• CASCADE
• Quando um registro com a chave primária é excluído, todos os registros relacionados com
aquela chave são excluídos.
• SET NULL
• Quando um registro com a chave primária é excluído, os respectivos campos na tabela
relacionada recebem NULL.
• SET DEFAULT
• Quando um registro com a chave primária é excluído, os campos respectivos da tabela
relacionada recebem o valor DEFAULT.
Alterando relações
• O comando alter table é usado para alterar a estrutura de uma relação
existente.
• Ele permite que o usuário faça a inclusão, exclusão de atributos e
alteração de restrições nos atributos em uma tabela.
• A forma geral para o comando alter table é a seguinte:
alter table <tabela> <add, drop, alter> <coluna> <tipo_coluna>;
• onde add, adiciona uma coluna; drop, remove uma coluna; e alter, modifica algo
em uma tabela.
Alterando relações
• Exemplos:
create table agencia (
nome_agencia varchar(20) not null,
cidade_aencia varchar(20) default '',
fundo integer(10),
primary key (nome_agencia)
);
• Inserindo nova coluna chamada cep como char(9);
alter table agencia add cep char(9);
• Inserindo uma coluna chamada num como um valor inteiro e com zero como valor
padrão;
alter table agencia add num decimal default 0;
Alterando relações
• Exemplos:
nome_agencia
varchar(20)
cidade_agencia
varchar(20)
fundos double cep char(9) num int
Redwood Palo Alto 2100000 <null> 0
Perryridge Horseneck 1700000 <null> 0
Mianus Horseneck 400000 <null> 0
Round Hill Horseneck 8000000 <null> 0
Pownal Bennington 300000 <null> 0
North Town Rye 3700000 <null> 0
Brighton Brooklyn 7100000 <null> 0
Down Brooklyn 9000000 <null> 0
Alterando relações
• Exemplos:
create table agencia (
nome_agencia varchar(20) not null,
cidade_aencia varchar(20) default '',
fundo integer(10),
cep char(9),
num integer default 0,
primary key (nome_agencia)
);
• Excluindo a coluna CEP
alter table agencia drop cep;
• Excluindo a coluna fundos
alter table agencia drop fundos;
Alterando relações
• Exemplos:
nome_agencia
varchar(20)
cidade_agencia
varchar(20)
num int
Redwood Palo Alto 0
Perryridge Horseneck 0
Mianus Horseneck 0
Round Hill Horseneck 0
Pownal Bennington 0
North Town Rye 0
Brighton Brooklyn 0
Down Brooklyn 0
Alterando relações
• Alterando restrições numa tabela.
• Exemplos:
alter table agencia alter column cod set not null;
alter table agencia alter column cod set default 0;
• É possível inserir uma chave estrangeira numa tabela depois de criada usando o
comando:
alter table tabela add foreigh key (campo) references tabela(campo);
Apagando relações
• Para apagar uma tabela do banco de dados use o comando:
drop table <nome>;
• onde <nome> é o nome da tabela.
• O comando drop table remove todas as informações da relação no
banco de dados.
• Exemplo: Para eliminar uma tabela chamada EMPREGADO, fazemos:
drop table EMPREGADO;
Apagando relações
• OBSERVAÇÃO:
• Existem casos em que a chave primária da tabela que se está apagando é
utilizada como chave estrangeira ou como chave primária composta em
diversas tabelas que devem ser devidamente corrigidas.
• Este processo não é assim tão simples pois, a exclusão da tabela EMPREGADO
implica na alteração do projeto físico de diversas tabelas.
• Isto acaba implicando na construção de uma nova base de dados.
Bibliografia
• SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S.. Sistema
de banco de dados. 3 ed. São Paulo: Pearson Makron Books, 2005,
Cap. 4

Linguagem SQL Structured query language.pptx

  • 1.
    Linguagem SQL –structured query language Prof: Daiane Siqueira
  • 2.
    Introdução à linguagemSQL • A SQL engloba vários tipos de comandos: • Comandos de manipulação de dados (DML - Data Manipulation Language)  São comandos que nos permitem consultar, incluir, excluir ou alterar dados de tabelas. • Comandos de definição de dados (DDL - Data Definition Language) São  comandos que nos permitem manipular a estrutura do banco de dados, criando cada uma de suas tabelas com seus atributos, chaves etc.
  • 3.
    Introdução à linguagemSQL • Nesta parte iremos ver os Comandos de Definição de Dados, chamados de DDL - Data Definition Language (por exemplo: Create, Alter e Drop) • São comandos que nos permitem manipular a estrutura do banco de dados, criando cada uma de suas tabelas com seus atributos, chaves primárias e estrangeiras etc. • Em seguida, veremos outros comandos de manipulação de dados (DML), como o insert, update e delete
  • 4.
    Definição de dados •O conjunto de relações (tabelas) de um BD precisa ser especificado ao sistema por meio de uma linguagem de definição de dados - DDL. • A SQL DDL permite a especificação não apenas de um conjunto de relações, mas também de informações sobre cada relação, incluindo: • Esquema para cada relação (seus atributos); • Domínio de valores associados a cada atributo; • Conjunto de índices a ser mantido para cada relação; • Restrições de integridade; • Definição de chaves primárias e chaves estrangeiras etc.
  • 5.
    Criando e apagandobanco de dados • Um banco de dados em SQL é definido usando o comando create database: create database <nome>; onde <nome> é o nome do banco de dados • Exemplo: create database myDatabase; • Para apagar um banco de dados use o comando: drop database <nome>;
  • 6.
    Criando relações embanco de dados • Uma relação SQL é definida usando o comando create table: create table R ( A1 D1 [N1] [d1], A2 D2 [N2] [d2], ..., An Dn [Nn] [dn], <regras de integridade1>, ..., <regras de integridadek> );
  • 7.
    Criando relações embanco de dados • R é o nome da relação • Cada Ai é o nome de um atributo em R • Di é o tipo dos atributos Ai, • [Ni] indica que o atributo deve ser obrigatoriamente preenchido ou não. • Por padrão, Ni recebe o valor NULL. • [di] indica que o atributo possui algum valor padrão ou não. • Por padrão, os atributos não possuem valor padrão.
  • 8.
    Criando relações embanco de dados • Exemplo: create table Time ( numCadastro INTEGER NOT NULL, nome VARCHAR(30) NOT NULL, cidade VARCHAR(50) default ‘Vitória’, situacao INTEGER NOT NULL ); R Ai Di di Ni
  • 9.
    Criando relações embanco de dados • As Regras de Integridade permitidas englobam: • Chaves primárias • Chaves estrangeiras • Cláusulas “check”
  • 10.
    CHAVES PRIMÁRIAS • Todatabela deve ter uma chave primária que pode ser simples ou composta. • Simples usa apenas um atributo.  • Composta usa dois ou mais atributos.  • O objetivo da chave primária é identificar unicamente entidades dentro de um conjunto de entidades. • A chave primária nunca se repetirá. Ela é única. • Para criar uma chave primária basta usar a palavra chave primary key e entre parênteses colocar o nome dos campos que compõem a chave • primary key (A1, A2, ...., AJ)
  • 11.
    CHAVES PRIMÁRIAS • Criandouma tabela com chave primária: create table NOME_TABELA ( atrib1 <tipo> not null, atrib2 <tipo> not null, ...., atribX <tipo>, primary key (atrib1, atrib2, ...) );
  • 12.
    Chaves primárias • Exemplos: create table DEPOSITANTE ( nome_cliente varchar(20) not null, numero_conta char(10) not null, primary key (nome_cliente, numero_conta) ); create table ESTUDANTE ( nome varchar(20) not null, id_estudante char(10) not null, nivel char(15) null, primary key (id_estudante) );
  • 13.
    Cláusula check • Acláusula “check” especifica um predicado P que precisa ser satisfeito por todas as tuplas de uma relação. • Para criar uma cláusula check basta usar a palavra chave check e entre parênteses colocar o predicado a ser satisfeito • check (P) • Um erro será sinalizado e atualizações serão impedidas, caso a condição check da tupla falhar.
  • 14.
    Cláusula check • Exemplo: createtable EMPREGADO ( nome char (30) not null, rg integer not null, cpf integer, depto integer not null, rg_supervisor integer, salario decimal (7,2) not null, primary key (rg), check (depto > 0) );
  • 15.
    Criando relações embanco de dados • Outro Exemplo: create table ESTUDANTE ( nome varchar(20) not null default ‘’, id_estudante char(10) not null, nivel char(15) not null, coeficiente decimal not null default 0, primary key (id_estudante), check (nivel in (‘Bacharelado’,’Mestrado’,‘Doutorado’)) );
  • 16.
    CHAVES estrangeiras • Oconceito de chave estrangeira se refere ao tipo de relacionamento entre as tabelas de dados do BD. • Uma chave estrangeira (foreign key) é a chave formada através de um relacionamento com a chave primária de outra tabela. • A chave estrangeira é um campo que aponta para a chave primária de outra tabela. • Ela define um relacionamento entre as tabelas e pode ocorrer repetidas vezes. • A chave estrangeira pode repetir em uma tabela.
  • 17.
    CHAVES estrangeiras • Casoa chave primária seja composta na origem, a chave estrangeira também será. • A finalidade da chave estrangeira é garantir a integridade dos dados referenciais. • Apenas serão permitidos valores que aparecem ou que supostamente vão aparecer na Base de Dados.
  • 18.
    CHAVES estrangeiras • Exemplo •O relacionamento entre PRODUTO e PEDIDO é feita via atributo codigo_produto • Em PRODUTO é a chave primária, logo seu valor é único • Em PEDIDO é uma chave estrangeira, portanto seu valor pode aparecer diversas vezes Tabela PRODUTO Tabela PEDIDO - codigo_produto (chave primária) - produto - categoria - preco_data - quantidade - descricao - numero_pedido - codigo_produto (chave estrangeira) - quantidade
  • 19.
    CHAVES estrangeiras • Parase definir uma chave estrangeira deve usar a seguinte sintaxe: foreign key (atrib1, atrib2, ...) references nome_tabela (atribX, atribY, ...) • ou seja, deve-se referenciar os campos da tabela corrente (atrib1, atrib2, ...) com os atributos a que estão relacionados na tabela nome_tabela (atribX, atribY, ...) • Se os atributos da tabela corrente forem iguais aos atributos da tabela referenciada, pode-se omitir os nomes desses atributos.
  • 20.
    CHAVES estrangeiras • Exemplo createtable agencia ( nome_agencia varchar(30) not null, cidade_agencia varchar(30) not null, fundos decimal not null, primary key (nome_agencia) ); create table conta ( nome_agencia varchar(30) not null, numero_conta varchar(5) not null, saldo decimal not null , primary key (numero_conta), foreign key (nome_agencia) references agencia (nome_agencia) );
  • 21.
    CHAVES estrangeiras • Nesseexemplo, omitiu-se o nome do campo “nome_agencia” da tabela “agencia” por se tratar de campos com nomes iguais nas duas tabelas. • Algumas ações podem estar associadas a chaves estrangeiras • Essas ações ocorrem quando se atualiza ou se remove um valor que é chave PRIMÁRIA na tabela referenciada pela chave estrangeira.
  • 22.
    CHAVES estrangeiras • ONUPDATE: • A cláusula ON UPDATE indica que quando uma atualização é executada sobre uma linha na tabela referenciada, uma das seguintes ações será executada: • NO ACTION (RESTRICT) • A atualização de uma chave primária pode ser abortada caso um registro em uma tabela referenciada tenha um valor mais antigo. • Este parâmetro é o default quando esta cláusula não recebe nenhum parâmetro. • Exemplo: • Tentar atualizar o código de um cliente quando esse cliente já possui um pedido. • Um erro é gerado!
  • 23.
    CHAVES estrangeiras • ONUPDATE: • CASCADE (Em Cascata) • Quando o campo da chave primária é atualizado, registros na tabela referenciada são atualizados em cascata. • Exemplo: • Tentar atualizar o código de um cliente quando esse cliente já possui um pedido. • Nenhum erro é gerado, pois o código do cliente também será atualizado na tabela PEDIDO.
  • 24.
    CHAVES estrangeiras • ONDELETE: • Esta cláusula indica que quando uma exclusão é executada sobre uma linha na tabela referenciada, uma das seguintes ações será executada: • NO ACTION (RESTRICT) • Quando um campo de chave primária está para ser deletado, a exclusão será abortada caso o valor de um registro na tabela referenciada seja mais velho. • Este parâmetro é o default quando esta cláusula não recebe nenhum parâmetro. • Exemplo: • Tentar excluir um cliente que possui um pedido • Um erro será gerado!
  • 25.
    CHAVES estrangeiras • ONDELETE: • CASCADE • Quando um registro com a chave primária é excluído, todos os registros relacionados com aquela chave são excluídos. • SET NULL • Quando um registro com a chave primária é excluído, os respectivos campos na tabela relacionada recebem NULL. • SET DEFAULT • Quando um registro com a chave primária é excluído, os campos respectivos da tabela relacionada recebem o valor DEFAULT.
  • 26.
    Alterando relações • Ocomando alter table é usado para alterar a estrutura de uma relação existente. • Ele permite que o usuário faça a inclusão, exclusão de atributos e alteração de restrições nos atributos em uma tabela. • A forma geral para o comando alter table é a seguinte: alter table <tabela> <add, drop, alter> <coluna> <tipo_coluna>; • onde add, adiciona uma coluna; drop, remove uma coluna; e alter, modifica algo em uma tabela.
  • 27.
    Alterando relações • Exemplos: createtable agencia ( nome_agencia varchar(20) not null, cidade_aencia varchar(20) default '', fundo integer(10), primary key (nome_agencia) ); • Inserindo nova coluna chamada cep como char(9); alter table agencia add cep char(9); • Inserindo uma coluna chamada num como um valor inteiro e com zero como valor padrão; alter table agencia add num decimal default 0;
  • 28.
    Alterando relações • Exemplos: nome_agencia varchar(20) cidade_agencia varchar(20) fundosdouble cep char(9) num int Redwood Palo Alto 2100000 <null> 0 Perryridge Horseneck 1700000 <null> 0 Mianus Horseneck 400000 <null> 0 Round Hill Horseneck 8000000 <null> 0 Pownal Bennington 300000 <null> 0 North Town Rye 3700000 <null> 0 Brighton Brooklyn 7100000 <null> 0 Down Brooklyn 9000000 <null> 0
  • 29.
    Alterando relações • Exemplos: createtable agencia ( nome_agencia varchar(20) not null, cidade_aencia varchar(20) default '', fundo integer(10), cep char(9), num integer default 0, primary key (nome_agencia) ); • Excluindo a coluna CEP alter table agencia drop cep; • Excluindo a coluna fundos alter table agencia drop fundos;
  • 30.
    Alterando relações • Exemplos: nome_agencia varchar(20) cidade_agencia varchar(20) numint Redwood Palo Alto 0 Perryridge Horseneck 0 Mianus Horseneck 0 Round Hill Horseneck 0 Pownal Bennington 0 North Town Rye 0 Brighton Brooklyn 0 Down Brooklyn 0
  • 31.
    Alterando relações • Alterandorestrições numa tabela. • Exemplos: alter table agencia alter column cod set not null; alter table agencia alter column cod set default 0; • É possível inserir uma chave estrangeira numa tabela depois de criada usando o comando: alter table tabela add foreigh key (campo) references tabela(campo);
  • 32.
    Apagando relações • Paraapagar uma tabela do banco de dados use o comando: drop table <nome>; • onde <nome> é o nome da tabela. • O comando drop table remove todas as informações da relação no banco de dados. • Exemplo: Para eliminar uma tabela chamada EMPREGADO, fazemos: drop table EMPREGADO;
  • 33.
    Apagando relações • OBSERVAÇÃO: •Existem casos em que a chave primária da tabela que se está apagando é utilizada como chave estrangeira ou como chave primária composta em diversas tabelas que devem ser devidamente corrigidas. • Este processo não é assim tão simples pois, a exclusão da tabela EMPREGADO implica na alteração do projeto físico de diversas tabelas. • Isto acaba implicando na construção de uma nova base de dados.
  • 34.
    Bibliografia • SILBERSCHATZ, Abraham;KORTH, Henry F.; SUDARSHAN, S.. Sistema de banco de dados. 3 ed. São Paulo: Pearson Makron Books, 2005, Cap. 4