Linguagem de Banco de Dados - SQL
Disciplina de Linguagem de Banco de dados – QI – Aula2Prof. 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 registraComo 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 bancode 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)– Proprietário de diversos automóveis !
Atualização inconsistente– 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 umesquema 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
INSERTUPDATEDELETE
Insere novas linhas, altera linhas existentes e remove linhas de tabelas do banco de dados, respectivamente. Estes comandos são conhecidoscomo comandos DML (Data Manipulation Language).
CREATEALTERDROPRENAMETRUNCATE
Cria, altera e remove objetos do banco de dados. São conhecidoscomo comandos DDL (Data Definition Language).
COMMITROLLBACKSAVEPOINT
Gerenciam as modificações realizadas pelos comandos DML. Asmodificações efetuadas pelos comandos DML podem ser agrupadas em transações lógicas.
GRANTREVOKE
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;
Top Related