O documento discute os conceitos de normalização de banco de dados, incluindo a primeira, segunda e terceira formas normais. Também descreve os principais componentes de bancos de dados relacionais como tabelas, linhas e colunas e como as tabelas se relacionam através de chaves. Finalmente, resume os principais tipos de linguagem SQL - DDL, DML, DCL e DQL.
2. Antes de mais nada
Normalização:
Primeira Forma Normal:
Uma tabela está na 1FN, se e somente se, não possuir
atributos multivalorados.
Uma relação está na 1FN quando todos os atributos da
relação estiverem baseados em um domínio simples, não
contendo grupos ou valores repetidos
Exemplo
Projetos(codp, tipo, descrição, code, nome, categ, salário, d
ata_início, tempo_aloc)
Outra forma de identificar se a tabela não está
na 1FN é verificando se existe tabela aninhadas, ou
seja, mais de um registro para uma chave primária
3. Antes de mais nada
Normalização:
Segunda Forma Normal
Uma relação está na 2FN se, e somente se, estiver na 1FN
e cada atributo não-chave for dependente da chave
primária inteira, isto é, cada atributo não-chave não poderá
ser dependente de apenas parte da chave.
No caso de tabelas com chave primária composta, se um
atributo depende apenas de uma parte da chave
primária, então esse atributo deve ser colocado em outra
tabela.
Exemplo:
Projetos(codp, tipo, descrição)
Empregados(code, nome, categ, salário)
ProjEmp(codp, code, data_início, tempo_aloc)
4. Antes de mais nada
Normalização:
Terceira Forma Normal
Uma relação R está na 3FN, se estiver na 2FN e
cada atributo não-chave de R não possuir
dependência transitiva, para cada chave
candidata de R.
Projetos(codp, tipo, descrição)
Empregados(code, nome, categ)
Categorias(categ, salário)
ProjEmp(codp, code, data_início, tempo_aloc)
5. BANCOS DE DADOS
RELACIONAIS
Os Bancos de Dados Relacionais foram
desenvolvidos para facilitar o acesso aos dados.
Pois enquanto em um banco de dados
hierárquico os usuários precisam definir as
questões de maneira mais específica, iniciando
pela raiz, nos Bancos de Dados Relacionais os
usuários podem fazer perguntas relacionadas
através de vários pontos.
A arquitetura de um banco de dados relacional
pode ser descrita usando os termos tabela, linha
e coluna. Veja um exemplo;
6. BANCOS DE DADOS
RELACIONAIS
Temos a “Tabela Clientes” que contém duas
colunas que são o “Código do Cliente” e o
“Nome”, Cada linha é formada por uma lista
ordenada de colunas representando um registro.
Então um registro é uma instância de uma
tabela, ou entidade. Uma entidade é uma
representação de um conjunto de informações
sobre determinado conceito do sistema. Toda
entidade possui atributos, que são as
informações que referenciam a entidade.
7. BANCOS DE DADOS
RELACIONAIS
Se houverem informações a serem
armazenadas, você tem uma entidade.
Exemplificando: Eu desejo armazenar os
seguintes dados do livro:
Título, Autor, Editora, Ano, Edição e Volume. Temos
então a entidade Livro.
No exemplo acima “Antônio Silva” é uma
instância (registro) da “Tabela Clientes”. As
colunas de uma tabela são também chamadas
de atributos. Então a coluna “Nome” é um
atributo da “Tabela Clientes”.
8. BANCOS DE DADOS
RELACIONAIS
As tabelas relacionam-se umas as outras através
de chaves. Uma chave é um conjunto de um ou
mais atributos que determinam a unicidade de
cada registro. No nosso caso a chave da “Tabela
Clientes” é o “Código do Cliente”, pois ele é único
para cada registro.
9. História
A primeira versão da linguagem SQL, chamada
SEQUEL (Structured Query English
Language), surgiu em 1974 nos laboratórios da
IBM (Califórnia). Entre 1976 e 1977 ela foi
revisada e ampliada, tendo então o seu nome
alterado para SQL.
Devido ao sucesso da nova forma de consulta e
manipulação de dados dentro de um ambiente de
banco de dados, sua utilização tornou-se cada
vez maior. Vários SGBD’s atuais utilizam o SQL
como a linguagem padrão para o acesso às
bases de dados.
10. Linguagem SQL
Linguagem de definição de dados (DDL)
Permite ao usuário a definição da estrutura e
organização dos dados armazenados, e das relações
existentes entre eles.
Alguns sistemas de banco de dados usam o comando
ALTER, que permite ao usuário alterar um objeto, por
exemplo, adicionando uma coluna a uma tabela
existente.
Outros comandos DDL:
CREATE DATABASE
CREATE TABLE
CREATE INDEX
CREATE VIEW
ALTER TABLE
ALTER INDEX
DROP INDEX
DROP VIEW
11. Linguagem SQL
Linguagem de manipulação de dados
(DML)
Permite a um usuário, ou a um programa de
aplicação, a execução de operações de
inclusão, remoção, seleção ou atualização de
dados previamente armazenados na base de
dados.
Os comandos que realizam respectivamente
as funções acima referidas são:
Insert;
Select;
Update;
Delete.
12. função
comandos SQL
descrição do
comando
exemplo
inclusões
Insert
é usada para
inserir um registro
(formalmente uma
tupla) a uma tabela
existente
Insert into Pessoa
(id, nome, sexo)
value;
consultas
Select
O Select é o
principal comando
usado em SQL
para realizar
consultas a dados
pertencentes a
uma tabela.
Select * From
Pessoa;
alterações
Update
para mudar os
valores de dados
em uma ou mais
linhas da tabela
existente.
UPDATE Pessoa
SET
data_nascimento =
'11/09/1985'
WHERE id_pessoa
=7
exclusões
Delet
permite remover
DELETE FROM
13. Linguagem SQL
DCL - Linguagem de Controle de Dados
O DCL (Data Control Language - Linguagem de
Controle de Dados).
DCL controla os aspectos de autorização de dados
e licenças de usuários para controlar quem tem
acesso para ver ou manipular dados dentro do
banco de dados.
Duas palavras-chaves da DCL:
GRANT - autoriza ao usuário executar ou setar operações.
REVOKE - remove ou restringe a capacidade de um
usuário de executar operações.
14. Linguagem SQL
DTL - Linguagem de Transação de Dados
BEGIN WORK (ou START
TRANSACTION, dependendo do dialeto SQL) pode ser
usado para marcar o começo de uma transação de
banco de dados que pode ser completada ou não.
COMMIT finaliza uma transação dentro de um sistema
de gerenciamento de banco de dados.
ROLLBACK faz com que as mudanças nos dados
existentes desde o último COMMIT ou ROLLBACK
sejam descartadas.
DQL - Linguagem de Consulta de Dados
Embora tenha apenas um comando, a DQL é a parte da
SQL mais utilizada. O comando SELECT permite ao
usuário especificar uma consulta ("query") como uma
descrição do resultado desejado
15. Vantagens e Desvantagens da
Linguagem SQL
Vantagens:
Independência de fabricante
Portabilidade entre plataformas de hardware e
software
Redução dos custos com treinamento
Usa inglês estruturado de alto nível
Permite consultas interativas
Múltiplas visões dos dados
Definição dinâmica dos dados
16. Vantagens e Desvantagens da
Linguagem SQL
Desvantagens:
Falta de ortogonalidade nas expressões, funções
embutidas, variáveis indicadoras, referência a
dados correntes, constante NULL, conjuntos
vazios, e etc;
Definição formal da linguagem após sua criação;
Discordância com as linguagens hospedeiras
(geralmente procedurais e orientadas para registros
e não para conjuntos);
Falta de algumas funções;
Não dá suporte a alguns aspectos do modelo
relacional (join explícito, domínios, e etc.)
Críticas (segundo C.J. Date)