0% acharam este documento útil (0 voto)
55 visualizações87 páginas

Introdução ao Banco de Dados e SGBD

O documento introduz conceitos fundamentais sobre Banco de Dados e Sistemas Gerenciadores de Banco de Dados (SGBD), destacando a importância do armazenamento e acesso eficiente de dados. Ele aborda a arquitetura de três níveis, instâncias e esquemas, além de linguagens de definição e manipulação de dados, como SQL. Vantagens dos SGBDs incluem controle de redundância, segurança, integridade e compartilhamento de dados.

Enviado por

clederdepina13
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
55 visualizações87 páginas

Introdução ao Banco de Dados e SGBD

O documento introduz conceitos fundamentais sobre Banco de Dados e Sistemas Gerenciadores de Banco de Dados (SGBD), destacando a importância do armazenamento e acesso eficiente de dados. Ele aborda a arquitetura de três níveis, instâncias e esquemas, além de linguagens de definição e manipulação de dados, como SQL. Vantagens dos SGBDs incluem controle de redundância, segurança, integridade e compartilhamento de dados.

Enviado por

clederdepina13
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Matéria Introdutória

Admin de um sistema Gestor de BD


Nilton Borges

Banco de Dados – SQL DML Prof Nilton Borges


Motivação
❖ Necessidade de armazenar
grandes quantidades de dados
❖ Necessidade de acessar as informações
de maneira eficiente e segura

➢ Evolução histórica:
– desenvolvimento de software + hardware

Banco de Dados – SQL DML Prof Nilton Borges


Sistema de Base de Dados (SBD)
Sistema Gerenciador de
Banco de Dados
(SGBD)

Banco
de
Dados

programas de aplicação
usuários finais + hardware
Banco de Dados – SQL DML Prof Nilton Borges
Sistema de Banco de Dados (SBD)
❖ Sistema de armazenamento de dados
❖ Objetivos:
– manter informações
– torná-las disponível quando necessário
❖ Armazenamento não volátil
❖ Componentes:
– banco de dados
– sistema gerenciador de banco de dados
– usuários
– hardware
Banco de Dados – SQL DML Prof Nilton Borges
Banco de Dados (BD)
❖ Depósito de dados armazenados
❖ Os dados devem ser logicamente
coerentes
❖ Uma coleção randômica não é um BD
SGBD

BD1 BD2 BD3 BD4

Banco de Dados – SQL DML Prof Nilton Borges


Sistema Gerenciador de Banco de
Dados (SGBD)
❖ Coleção de programas para:
– criar
– manter o banco de dados
❖ Camada existente entre os dados e
os usuários
❖ Isola os usuários dos detalhes de
hardware
❖ Atende às solicitações dos usuários

Banco de Dados – SQL DML Prof Nilton Borges


Sistema Gerenciador de Banco de
Dados (SGBD)
❖ Recursos:
– adição de novos arquivos
– inserção de dados
– recuperação de dados
– atualização dos dados
– eliminação dos dados
– criação de visões
– atribuição de privilégios
– ...
Banco de Dados – SQL DML Prof Nilton Borges
Usuários
❖ Administrador do BD
– coordena e monitora o uso do BD
➢tem conhecimento total do BD
❖ Projetista do BD
– identifica os dados a serem armazenados no BD
– escolhe as estruturas apropriadas para
representar e armazenar esses dados
❖ Programador de aplicações
– escreve os programas aplicativos
❖ Usuário final
Banco de Dados – SQL DML Prof Nilton Borges
Hardware
❖ Volumes de armazenamento
secundário
❖ Dispositivos de entrada e saída
❖ Canais de entrada e saída
❖ Controladores de dispositivos
❖ Processador + memórias associadas
– ULA
– registradores
– unidade de controle

Banco de Dados – SQL DML Prof Nilton Borges


Vantagens da Utilização de SGBD
❖ Redundância controlada
– redundância
◆ mesmos dados armazenados várias vezes
❖ Consistência dos dados armazenados
– inconsistência
◆ quando dados duplicados armazenam valores
distintos
◆ existe quando a redundância não é controlada

Banco de Dados – SQL DML Prof Nilton Borges


Vantagens da Utilização de SGBD
❖ Segurança
– com relação ao acesso ao sistema
◆ login dos usuários
– com relação ao acesso aos dados do sistema
◆ visões parciais, de acordo com os usuários
◆ acesso controlado, através de graus de privilégios

❖ Facilidade para a especificação de


restrições de integridade
– restrições de integridade
◆ garantem a precisão dos dados
◆ especificam as restrições impostas pelo sistema real

Banco de Dados – SQL DML Prof Nilton Borges


Vantagens da Utilização de SGBD
❖ Compartilhamento de dados
– base de dados
◆ definida apenas uma vez
◆ compartilhada por vários usuários

❖ Padronização
– formato dos dados e
– domínio dos valores dos dados
◆ definidos apenas uma vez
◆ compartilhados por vários usuários

Banco de Dados – SQL DML Prof Nilton Borges


Vantagens da Utilização de SGBD
❖Existência de diferentes interfaces
– linha de comando
– gráfica
❖Representação de relacionamentos entre os dados
❖Recuperação de falhas de software e hardware

Banco de Dados – SQL DML Prof Nilton Borges


Arquitetura de Três Níveis
visão_1 visão_2 visão_n

nível conceitual

nível físico

Arquitetura ANSI-X3-SPARC
Banco de Dados – SQL DML Prof Nilton Borges
Arquitetura de Três Níveis
❖ Objetivo
– separar as aplicações dos usuários do BD físico
– prover uma visão abstrata dos dados
❖ Três níveis de abstração
– organização física dos dados
◆ esquema interno
– organização lógica global dos dados
◆ esquema conceitual
– organização lógica particular dos dados
◆ esquema externo (visão)

Banco de Dados – SQL DML Prof Nilton Borges


Arquitetura de Três Níveis
❖Esquema interno
– dados armazenados na memória secundária
– contém definições de estruturas de dados e
mecanismos de acesso
❖ Esquema conceitual
– definição do conteúdo da informação
– utiliza o conceito de modelo de dados
– independe de estruturas de dados e mecanismos de
acesso
❖ Esquema externo
– usuário apenas vê parte dos dados
– visões: também chamadas de subesquemas

Banco de Dados – SQL DML Prof Nilton Borges


Instâncias e Esquemas
❖ Instância
– coleção de informações armazenadas no BD em
um determinado momento
– também chamado de extensão do BD
– sofre alterações constantemente
❖ Esquema
– projeto do BD, incluindo as entidades e os
relacionamentos entre estas
– também chamado de intenção do BD
– não sofre alterações com freqüência

Banco de Dados – SQL DML Prof Nilton Borges


Estado do Banco de Dados
❖ Os dados armazenados em um BD em
um determinado momento
❖Estado vazio ❖ Novo estado
– após a criação do BD – após cada operação
Estado inicial realizada nos dados
do BD
– após o povoamento
(ou carregamento) do ❖ Estado atual
BD com os dados – estado do BD em um
iniciais determinado
momento

Banco de Dados – SQL DML Prof Nilton Borges


Linguagens Associadas
❖ Linguagem de definição de dados (DDL)
❖ Linguagem de manipulação de dados
(DML)

❖ Oferecidas pelo SGBD


❖ Utilizadas pelos usuários para
– criar : linguagem de definição
– manipular : linguagem de manipulação
o banco de dados
Banco de Dados – SQL DML Prof Nilton Borges
Linguagem de Definição de Dados
❖ Utilizada para
– criação do BD
– definição dos esquemas conceitual e lógico
❖ Exemplo
– criação de uma relação contendo informações
pessoais sobre alunos
CREATE TABLE aluno ( matrícula NUMBER (10,2),
nome VARCHAR(50),
endereço VARCHAR(50),
data_nascimento DATE )

Banco de Dados – SQL DML Prof Nilton Borges


Linguagem de Manipulação
de Dados
❖ Consultas: queries Exemplo
❖ Alterações: SELECT *
FROM aluno
– inserção
WHERE nome = “João”
– eliminação
– m
❖ Pode ser implementada:
– como uma linguagem de consulta ad hoc
– embutida em programas de alto nível
❖ Altamente dependente do modelo utilizado

Banco de Dados – SQL DML Prof Nilton Borges


Classificação dos SGBD
❖ De acordo com o modelo de dados
– Modelo de dados: conjunto de ferramentas
conceituais para a descrição dos dados e dos
relacionamentos existentes entre os dados, da
semântica e das restrições
– Exemplos de modelos:
◆ relacional
◆ de rede

◆ hierárquico

◆ orientado a objetos

◆ objeto-relacional

◆ ...

Banco de Dados – SQL DML Prof Nilton Borges


Classificação dos SGBD
❖ De acordo com o número de usuários
– monousuário: um único usuário por vez
– multiusuário: vários usuários ao mesmo tempo
❖ De acordo com o número de nós
– centralizado: dados e SGBD localizados em um
único nó
– distribuído: dados e SGBD localizados em
vários nós, conectados através de redes de
comunicação

Banco de Dados – SQL DML Prof Nilton Borges


– SQL –
Linguagem de Definição de
Dados
SQL
Structured Query Language
• Uma das mais importantes linguagens
relacionais (se não a mais importante)
• Exemplos de SGBD que utilizam SQL
• Oracle • SyBase
• Informix • DB2
• Ingress • MySQL
• SQL Server • PostgreSQL
• Interbase
Composição do SQL
• Linguagem de Definição dos Dados
– comandos para a definição, a modificação
e a remoção de relações, além da criação
e da remoção de índices
• Linguagem Interativa de Manipulação
dos Dados
– comandos para a consulta, a inserção, a
remoção e a modificação de tuplas no
banco de dados
Composição do SQL
• Linguagem de Manipulação dos Dados
Embutida
– pode ser utilizada a partir de linguagens de
programação de propósito geral
• Definição de visões
– SQL DDL inclui comandos para a criação e
a remoção de visões
• Restrições de integridade
– SQL DDL possui comandos para a
especificação de restrições de integridade
Composição do SQL
• Autorização
– SQL DDL inclui comandos para a
especificação de direitos de acesso a
relações e visões
• Gerenciamento de transações
– introduz comandos para a especificação
do início e do fim das transações
• Recuperação de falhas
– introduz comandos para utilização do
arquivo de log
SQL DDL
• CREATE DATABASE | SCHEMA
– cria um esquema de BD relacional
• DROP DATABASE | SCHEMA
– remove um esquema de BD relacional
CREATE DATABASE

CREATE {DATABASE | SCHEMA} nome


[USER `username` [PASSWORD `password`] ]
... ;

• Cria um esquema de BD relacional


– agrupa as tabelas e outros comandos que
pertencem à mesma aplicação
– identifica o proprietário do esquema
• Característica
– o esquema inicial não possui tabelas/dados
DROP DATABASE
DROP DATABASE {DATABASE | SCHEMA} nome
[CASCADE | RESTRICT] ;

• Remove um esquema de BD relacional


– tabelas/dados
quaisquer elementos
– índices associados
– arquivos de log
• Usuários autorizados
– proprietário do banco de dados
– DBA ou usuário com privilégio de root
DROP DATABASE

• CASCADE
– remove um esquema de BD, incluindo
todas as suas tabelas e os seus outros
elementos
• RESTRICT
– remove um esquema de BD somente se
não existirem elementos definidos para
esse esquema
SQL DDL
• CREATE TABLE
– cria uma nova tabela (relação) no BD
– a nova tabela não possui dados
• DROP TABLE
– remove uma tabela (relação) e todas as
suas instâncias do BD
• ALTER TABLE
– altera a estrutura de uma tabela (relação)
já existente no BD
CREATE TABLE

CREATE TABLE nome_tabela (A D1 R1,


An Dn Rn ) ;

• Cria uma nova tabela (relação)


• Cria os atributos da nova tabela, com
– nome do atributo: Ai (1 ≤ i ≤ n)
– tipo de dado (domínio do atributo): Di
– restrições que atuam no atributo: Ri
Exemplos de Tipos de Dados
• Numéricos
– smallint | integer | float | double precision
– decimal | numeric
• Hora/Data
– date | time | timestamp
• Strings
– char | character | varchar | ...
• Outros
– blob
Restrições de Integridade
• Valor nulo
– representado por NULL
– membro de todos os domínios
• Restrição NOT NULL
– especificada quando NULL não é permitido
– proíbe que o atributo receba valor nulo
• Comparações
– usar IS NULL e IS NOT NULL
Restrições de Integridade
• Cláusula PRIMARY KEY
– identifica os atributos da relação que
formam a sua chave primária
• os atributos devem ser definidos como NOT
NULL
– sintaxe
PRIMARY KEY (atributo1, atributo2, ..., atributoX)
• Cláusula UNIQUE
– não permite valores duplicados para um
determinado atributo
Restrições de Integridade
• Cláusula DEFAULT
– associa um valor default para um atributo,
caso nenhum outro valor seja especificado
• Cláusula CHECK
– especifica um predicado que precisa ser
satisfeito por todas as tuplas de uma relação
– exemplos
• saldo int CHECK (saldo >= 0)
• nível char(15) CHECK (nível IN
(`Bacharelado`,`Mestrado`, `Doutorado`))
Restrições de Integridade
• Integridade referencial
– dependência existente entre a chave
estrangeira de uma relação e a chave
primária da relação relacionada
– problemas
• atualização ou exclusão de elementos da
chave primária sem fazer um ajuste
coordenado nas chaves estrangeiras
• inclusão ou alteração de valores não nulos na
chave estrangeira que não existam na chave
primária
– SQL –
Linguagem de Manipulação de
Dados
SQL DML
• SELECT ... FROM ... WHERE ...
– lista atributos de uma ou mais tabelas de
acordo com alguma condição
• INSERT INTO ...
– insere dados em uma tabela
• DELETE FROM ... WHERE ...
– remove dados de tabelas já existentes
• UPDATE ... SET ... WHERE ...
– altera dados específicos de uma tabela
SELECT
SELECT <lista de atributos e funções>
FROM <lista de tabelas>
[ WHERE predicado ]
[ GROUP BY <atributos de agrupamento> ]
[ HAVING <condição para agrupamento> ]
[ ORDER BY <lista de atributos> ] ;
SELECT

• Cláusula SELECT
– lista os atributos e/ou as funções a
serem exibidos no resultado da
consulta
• Clausula FROM
– especifica as relações a serem
examinadas na avaliação da
consulta
SELECT
• Cláusula WHERE
– especifica as condições para a
seleção das tuplas no resultado da
consulta
• as condições devem ser definidas sobre
os atributos das relações que aparecem
na cláusula FROM
– inclui condições de junção
– pode ser omitida
SELECT
• Resultado de uma consulta
– ordem de apresentação dos atributos
• ordem dos atributos na cláusula SELECT
– ordem de apresentação dos dados
• ordem ascendente ou descendente de acordo
com a cláusula ORDER BY
• sem ordenação
– duas ou mais tuplas podem possuir
valores idênticos de atributos
• eliminação de tuplas duplicadas
– SELECT DISTINCT
Cláusula WHERE
SELECT
FROM
WHERE <atributo> <operador>
<valor | atributo | lista de valores>

• Operador
– conjunção de condições: AND
– disjunção de condições: OR
– negação de condições: NOT
Cláusula WHERE
• Operadores de comparação
igual a = diferente de <>
maior que > maior ou >=
igual a
menor que < menor ou <=
igual a
entre dois BETWEEN ... de cadeias LIKE ou
valores AND de NOT LIKE
caracteres

• Precedência
– NOT; operadores de comparação; AND; OR
Cláusula WHERE
• Operadores de comparação de cadeias
de caracteres
– % (porcentagem): substitui qualquer string
– _ (underscore): substitui qualquer caractere
• Característica
– operadores sensíveis ao caso
• letras maiúsculas são consideradas diferentes de
letras minúsculas
Exercícios
• região (região_id, nome_região,
mapa_região, descrição_região)
• vinícola (vinícola_id, nome_vinícola,
descrição_vinícola, fone_vinícola,
fax_vinícola, região_id)
• vinho (vinho_id, nome_vinho,
tipo_vinho, ano_vinho,
descrição_vinho, vinícola_id)

Banco de Dados – SQL DML Prof Nilton Borges


Relação Base Vinícola
n 1 n 1
vinho é_de vinícola situada região
vinho_id vinícola_id região_id
nome_vinho nome_vinícola nome_região
tipo_vinho descrição_vinícola descrição_região
ano_vinho fone_vinícola mapa_região
descrição_vinho fax_vinícola
➢ Lista todas as regiões

➢ Lista id da região ,nome da região onde nome


da região comece com letra M e região id seja
maior de que 3 e mapa da região não seja nulo

➢ Lista ano de fabricação de vinho tinto

➢ Lista nome da vinícola e nome da região

➢ Lista nome da vinícola , nome região e nome


do vinho
Banco de Dados – SQL DML Prof Nilton Borges
Cláusula WHERE
• Exemplos
– WHERE nome_região LIKE ‘Mar%’
• qualquer string que se inicie com ‘Mar’
– WHERE nome_região LIKE ‘Mar_’
• qualquer string de 4 caracteres que se inicie com
‘Mar’
Exemplos
• SELECT *
FROM região;

• SELECT região_id, nome_região


FROM região
WHERE nome_região LIKE ‘M%’ AND
região_id >= 3 AND
mapa_região IS NOT NULL;
Operações de Conjuntos
SQL Álgebra Relacional
UNION União ( )
INTERSECT Intersecção ( )
MINUS Diferença (–)

• Observações
– as relações participantes das operações
precisam ser compatíveis
– operações oferecidas dependem do SGBD
Interbase
• UNION • UNION ALL
– une todas as – une todas as
linhas linhas
selecionadas por selecionadas por
duas consultas, duas consultas,
eliminando as inclusive as linhas
linhas duplicadas
duplicadas
Exemplo
• Liste os anos de fabricação dos
vinhos para vinhos tintos e brancos
SELECT
ano_vinho FROM
vinho
WHERE tipo_vinho =
‘tinto’ UNION
SELECT
ano_vinho FROM
vinho
WHERE tipo_vinho = ‘branco’;
Oracle 9i SQL
• UNION • UNION ALL
– une todas as linhas – une todas as linhas
selecionadas por duas selecionadas por duas
consultas, eliminando consultas, inclusive as
as linhas duplicadas linhas duplicadas
• INTERSECT • MINUS
– retorna as linhas – retorna as linhas
selecionadas tanto selecionadas pela 1ª
pela 1ª consulta consulta que não foram
quanto pela 2ª selecionadas pela 2ª
consulta, eliminando consulta, eliminando
linhas duplicadas que linhas duplicadas que
aparecem na resposta aparecem na resposta
final final
Junção Natural

• SQL (primeiras versões)


– não tem uma representação para a
operação de junção
• Definida em termos de
– um produto cartesiano
– uma seleção
– uma projeção
Junção
• Não é representada explicitamente
• Cláusulas SELECT e WHERE
– especificam atributos com mesmo
nome usando o nome da tabela e
o nome do atributo
(nome_tabela.nome_atributo)
• Cláusula FROM
– possui mais do que uma tabela
• Cláusula WHERE
– inclui as condições de junção
Exemplos
• SELECT nome_vinícola,
nome_região FROM vinícola, região
WHERE viní[Link]ão_id = regiã[Link]ão_id;

• SELECT nome_vinícola,
nome_região, nome_vinho
FROM vinícola, região, vinho
WHERE viní[Link]ão_id = regiã[Link]ão_id
AND [Link]ícola_id =
viní[Link]ícola_id;
Junção
• SQL-92
– inclusão de operações adicionais na
cláusula FROM
• Operações adicionais no Interbase
– … [INNER] JOIN ... ON …
– … LEFT [OUTER] JOIN ... ON …
– … RIGHT [OUTER] JOIN ... ON …
– … FULL [OUTER] JOIN ... ON …
Exemplos
• SELECT nome_vinícola,
nome_região FROM vinícola, região
WHERE viní[Link]ão_id = regiã[Link]ão_id;

• SELECT nome_vinícola, nome_região,


FROM vinícola LEFT OUTER JOIN
região
ON viní[Link]ão_id =
regiã[Link]ão_id;

Exemplos
SELECT nome_vinícola, nome_região,
nome_vinho
FROM vinícola, região, vinho
WHERE viní[Link]ão_id = regiã[Link]ão_id
AND [Link]ícola_id = viní[Link]ícola_id;

• SELECT nome_vinícola, nome_região,


nome_vinho
FROM vinícola JOIN região JOIN vinho
ON [Link]ícola = viní[Link]ícola_id
ON viní[Link]ão_id = regiã[Link]ão_id;

Existe diferença entre os comandos?


Cláusula AS
• Renomeia
– atributos
• deve aparecer na cláusula SELECT
• útil para a visualização das respostas na tela
– relações
• deve aparecer na cláusula FROM
• útil quando a mesma relação é utilizada mais
do que uma vez na mesma consulta
• Sintaxe
– nome_antigo AS nome_novo
Exemplo
• SELECT
nome_vinícola AS nome_da_vinícola ,
nome_região AS localizada_na_região ,
nome_vinho AS produz_o_vinho ,
FROM vinícola AS V,
região AS R,
vinho AS Vi
WHERE [Link]ão_id = [Link]ão_id
AND [Link]ícola_id = [Link]ícola_id;
Cláusula ORDER BY
• Ordena as tuplas que aparecem no
resultado de uma consulta
– asc (padrão): ordem ascendente
– desc: ordem descendente
• Ordenação pode ser especificada em
vários atributos
– a ordenação referente ao primeiro atributo
é prioritária. Se houver valores repetidos,
então é utilizada a ordenação referente ao
segundo atributo, e assim por diante
Exemplo
• Liste os dados da relação vinícola.
Ordene o resultado pelo nome da vinícola
em ordem descendente e pela região da
vinícola em ordem ascendente.
SELECT *
FROM vinícola, região
WHERE viní[Link]ão_id = regiã[Link]ão_id
ORDER BY nome_vinícola desc,
nome_região asc
Funções de Agregação
• Funções
– Média AVG( )
– Mínimo MIN( )
– Máximo MAX( )
– Total SUM( )
– Contagem COUNT( )
• Observação
– DISTINCT: não considera valores duplicados
– ALL: inclui valores duplicados
Funções de Agregação
• Características
– recebem uma coleção de valores
como entrada
– retornam um único valor
• Entrada
– sum( ) e avg( ): conjunto de números
– demais funções: tipos de dados numéricos
e não-numéricos
Funções de Agregação
vinho (vinho_id, nome_vinho, tipo_vinho, preço, vinícola_id)

vinho_id nome_vinho tipo_vinho preço vinícola_id

10 Amanda tinto 100,00 1


09 Belinha branco 200,00 1
05 Camila rosê 300,00 1
15 Daniela branco 250,00 2
27 Eduarda branco 150,00 2
48 Fernanda tinto 7,00 2
13 Gabriela tinto 397,00 3
12 Helena branco 333,00 3
Exemplos
• Qual a média dos • Qual o preço mais
preços? baixo?
SELECT AVG (preço) SELECT MIN (preço)
FROM vinho FROM vinho
217,125 7,00
• Qual a soma dos • Qual o preço mais
preços? alto?
SELECT SUM (preço) SELECT MAX (preço)
FROM vinho FROM vinho
1737,00 397,00
Exemplos
• Quantos vinhos existem na relação
vinho?
SELECT COUNT (vinho_id)
FROM vinho 8

• Quantos tipos de vinho diferentes


existem na relação vinho?
SELECT COUNT (DISTINCT tipo_vinho)
FROM vinho 3
Exemplo
• Qual o preço mais alto e a média dos preços
por tipo de vinho?
SELECT tipo_vinho, MAX (preço), AVG (preço)
FROM vinho
GROUP BY tipo_vinho

tipo_vinho max f_1


branco 333 233,25

rosê 300 300

tinto 397 168


Cláusula HAVING
• Funcionalidade
– permite especificar uma condição de
seleção para grupos, melhor do que para
tuplas individuais
• Resposta
– recupera os valores para as funções
somente para aqueles grupos que
satisfazem à condição imposta na cláusula
HAVING
Cláusula HAVING
• Funcionalidade
– permite especificar uma condição de
seleção para grupos, melhor do que para
tuplas individuais
• Resposta
– recupera os valores para as funções
somente para aqueles grupos que
satisfazem à condição imposta na cláusula
HAVING
Inserção
• Realizada através da especificação
– de uma tupla particular
– de uma consulta que resulta em um
conjunto de tuplas a serem inseridas
• Valores dos atributos das tuplas
inseridas
– devem pertencer ao domínio do atributo
• Atributos sem valores
– especificados por NULL ou valor DEFAULT
INSERT
INSERT INTO nome_tabela
VALUES ( V1, V2, ..., VN ) ;
• Ordem dos atributos deve ser mantida
INSERT
INSERT INTO nome_tabela (A1, A2, ..., An)
VALUES ( V1, V2, ..., VN ) ;
• Ordem dos atributos não precisa ser
mantida
INSERT
INSERT INTO nome_tabela
SELECT ...
FROM ...
WHERE ... ;

• Tuplas resultantes da cláusula SELECT


serão inseridas na tabela nome_tabela
Exemplos
• INSERT INTO região
VALUES (NULL, ‘nome região’, NULL,
‘descrição’);

• INSERT INTO região (nome_região,


descrição_região)
VALUES ‘nome região’, ‘descrição’;
DELETE
DELETE FROM nome_tabela
WHERE predicado ;

• Cláusula WHERE
– é opcional:
• todas as tuplas da tabela são eliminadas
• a tabela continua a existir
• Predicado
– pode ser complexo
DELETE ...
• Remove tuplas inteiras
• Opera apenas em uma relação
• Tuplas de mais de uma relação a serem
removidas:
– um comando DELETE para cada relação

➢ A remoção de uma tupla de uma relação


deve ser propagada para tuplas em outras
relações devido às restrições de integridade
referencial
Exemplos
• DELETE FROM vinícola
WHERE vinícola_id = 10;
– remove a tupla referente a vinícola_id = 10
• tabela vinícola
• tabela vinho (i.e., se a opção CASCADE foi
especificada na cláusula ON DELETE do
campo vinícola_id desta tabela)
• DELETE FROM região
– remove todos os dados da tabela região
UPDATE
UPDATE nome_tabela
SET coluna = <valor>
WHERE predicado ;
• Cláusula WHERE
– é opcional
• Exemplos de <valor>
– NULL
– ´string´
– UPPER ´string´
UPDATE ...
• Opera apenas em uma relação

➢A atualização da chave primária deve


ser propagada para tuplas em outras
relações devido às restrições de
integridade referencial
Exemplos
• Alterar os anos de produção de vinhos
de 2007 para 2003.
UPDATE vinho
SET ano_vinho = 2003
WHERE ano_vinho = 2005;
• Suponha o atributo adicional preço na
tabela vinho. Aumentar os preços dos
vinhos em 10%.
UPDATE vinho SET preço = preço * 1.10;
Exemplos
• UPDATE vinícola
SET vinícola_id = 10
WHERE vinícola_id = 2;
– altera o valor de vinícola_id = 10 para
vinícola_id = 2
• tabela vinícola
• tabela vinho (i.e., se a opção CASCADE foi
especificada na cláusula ON UPDATE do
campo vinícola_id desta tabela)

Você também pode gostar