Linguagem de Banco de Dados SQL
Disciplina de Linguagem
de Banco de dados – QI
– Aula2
Prof. Luciano Monteiro
Modelo de Dados - níveis de abstração
Modelo conceitual
 Independente
–
de tipo de SGBD
Registra
 Estrutura
dos dados podem aparecer
no banco de dados
–
Não registra
 Como
estes dados estão armazenados
a nível de SGBD
Modelo conceitual - diagrama ER

Técnica mais difundida de modelagem
conceitual
–

Abordagem entidade-relacionamento (ER)
Modelo conceitual é representado através
de:
–
diagrama entidade-relacionamento (DER)
Modelo conceitual - diagrama ER
Modelo lógico



Nível de abstração visto pelo usuário do
SGBD
Dependente do tipo particular de SGBD
que está sendo usado
Ex.: PostgreSQL <> Oracle <> Interbase
Modelo lógico

SGBD relacional para o exemplo
Modelo lógico para o exemplo



TipoDeProduto(CodTipoProd, DescrTipoProd)
Produto(CodProd, DescrProd, PrecoProd,
CodTipoProd)
CodTipoProd referencia TipoDeProduto
Modelo Físico
Contém detalhes de armazenamento interno de
informações
 Detalhes que
–
–
não têm influencia sobre a programação de aplicações no
SGBD
influenciam a performance da aplicações
Usados por profissionais que fazem sintonia de
performance em banco de dados

Idéia fundamental do projeto de banco
de dados
Através da identificação das
entidades que terão informações
representadas no banco de dados,
possível identificar os arquivos que
comporão o banco de dados
Projeto de Banco de Dados


Há múltiplas modelagens possíveis… qual
escolher?
Pessomóvel (Id, Nome, Chassis, Modelo,
Ano…)
Problemas na Concepção

Redundância (espaço de armazenamento)
–

Atualização inconsistente
–

Proprietário de diversos automóveis !
Alteração de nome em uma tupla… em todas ?!
Anomalias de Atualização
–
–
(inclusão) Pessoa que não tem automóvel;
(exclusão) Perde informações da pessoa quando
último carro é vendido!
Teoria da Normalização
Formalismos para “boa” concepção de um
esquema de BD relacional

–
–

Sem informações redundantes
Evita anomalias de atualizações
Principais conceitos envolvidos
–
–
–
Dependências funcionais (DFs)
Formas normais
Algoritmos de decomposição
Dependências Funcionais


O que são “Dependências” ?
Especificam propriedades sobre dados
válidos no banco de dados
–
Dependência de inclusão:

–
“todo aluno é uma pessoa”
Dependência funcional:

“todo empregado trabalha no máximo em um
departamento”
Dependências Funcionais
Utilização:
 Verificação de restrições de integridade
 Otimização de consultas
 Concepção de esquemas: formas normais
Objetivo da Decomposição
Particionar a tabela em esquemas
relacionais menores de forma a eliminar,
parcial ou totalmente, as redundâncias e
anomalias de Atualização.
Normalização da Informação


Conduz a um esquema da BD relacional capaz de
suportar os dados relevantes a um dado universo.
Ao normalizarmos a informação estamos a garantir:
–
–
–

A não existência de redundâncias (cada dado deve ser
armazenado uma única vez e numa única localização);
Consistência da Informação - Qualquer operação de
manipulação da informação (Inserção, Alteração, Destruição)
deve afetar uma só ocorrência de um dado;
Visão relacional dos dados.
1ª, 2ª e 3ª Formas Normais, Boyce-Codd Normal
Form, 4ª e 5ª formas normais.
Formas Normais

Primeira Forma Normal (1FN)
–

Uma relação R está em 1FN se todos os atributos
são atômicos/indivisíveis
Segunda Forma Normal (2FN)
–
Uma relação R está em 2FN se estiver em 1FN e
nenhum atributo não-primo depender
funcionalmente de uma parte da chave
Formas Normais

Terceira Forma Normal (3FN)
–
Uma relação R está em 3FN se estiver em 2FN e
todo atributo não primo depender apenas de um
atributo primo;
Ponto de equilíbrio...


Objetivos: flexibilidade vs. desempenho.
Na maioria dos casos o processo de
normalização pára na 3FN.
Tipos de dados do Banco de Dados













VARCHAR
CHAR
SMALLINT
INTEGER
BIGINT
FLOAT
DOUBLE PRECISION
TIMESTAMP
TIME
DATETIME
DATE
BLOB
NUMERIC
Comandos SQL
Comando
Descrição
SELECT
Recupera dados do Banco de Dados
INSERT
UPDATE
DELETE
Insere novas linhas, altera linhas existentes e remove linhas de tabelas
do banco de dados, respectivamente. Estes comandos são conhecidos
como comandos DML (Data Manipulation Language).
CREATE
ALTER
DROP
RENAME
TRUNCATE
Cria, altera e remove objetos do banco de dados. São conhecidos
como comandos DDL (Data Definition Language).
COMMIT
ROLLBACK
SAVEPOINT
Gerenciam as modificações realizadas pelos comandos DML. As
modificações efetuadas pelos comandos DML podem ser agrupadas
em transações lógicas.
GRANT
REVOKE
Atribuem e removem direitos de acesso ao banco de dados e aos
objetos a ele pertencentes. São conhecidos como comandos DCL
(Data Control Language).
Instruções DDL - SQL


(Data Definition Language)
Comandos de definição de estrutura no
SGBD.
Criação de Tabelas
CREATE TABLE TABELA1 (
COLUNA1 TIPO NOT NULL,
COLUNA2 TIPO,
COLUNA3 TIPO,
COLUNA4 TIPO,
PRIMARY KEY (COLUNA1),
FOREIGN KEY (COLUNA2) REFERENCES
TABELA2 (COLUNA1),
CHECK (COLUNA3 < COLUNA4));
Exclusão de Tabela
DROP TABLE TABELA1;
Alteração de Tabela
ALTER TABLE TABELA1
ADD CAMPO5 TIPO
ADD CAMPO6 TIPO NOT NULL,
DROP CAMPO3,
ALTER CAMPO1 TO CAMPO2;
Criação de Índices

CREATE INDEX NOMEINDICE ON TABELA
(CAMPO1, CAMPO2,…);
Alteração de Índice
ALTER INDEX NOMEINDICE INACTIVE;
ALTER INDEX NOMEINDICE ACTIVE;
Exclusão de Índice

DROP INDEX NOMEINDICE;
Download

Aula 2 - Prof. Luciano Monteiro