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, data_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
consultas
Select
O Select é o principal
Select * From Pessoa;
comando usado em SQL
para realizar consultas a
dados pertencentes a
uma tabela.
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 linhas
existentes de uma
tabela.
DELETE FROM pessoa
WHERE id_pessoa = 7
Insert into Pessoa (id,
nome, sexo) value;
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)
17. Tabelas dos Exemplos
As tabelas a seguir serão usadas nos exemplos que se seguem:
CLIENTE (cod_cli, nome_cli, endereco, cidade, cep, uf)
VENDEDOR (cod_vend, nome_vend, sal_fixo, faixa_comiss)
PEDIDO ( num_ped, prazo_entr, cd_cli, cd_vend)
ITEM_PEDIDO (no_ped, cd_prod, qtd_ped)
PRODUTO (cod_prod, unid_prod, desc_prod, val_unit)
18. Criação de um Bando de Dados SQL
Para a criação de um banco de dados em SQL temos os
seguintes comandos:
Creat Data Base;
Para conhecer quais os bancos de dados existentes dentro do
MySQL basta usar o comando SHOW DATABASES. SHOW
significa mostrar, apresentar, exibir e DATABASES significa
bases de dados ou bancos de dados, ou seja, manda mostrar
os bancos de dados existentes.
19. Criação e Destruição de Tabelas
O comando CREATE TABLE é usado para criar uma tabela. A sua
forma geral é:
CREATE TABLE <nome_tabela>
(<descrição das colunas>,
<descrição das chaves>);
onde:
<nome_tabela> dever ser substituído pelo nome da tabela a ser
criada.
<descrição das colunas> deve ser substituída pela relação das colunas
da tabela e seus respectivos tipos de dados (por exemplo, smallint,
char, varchar, integer, number, float e etc). <descrição das chaves>
deve ser substituída pela lista das colunas que são tratadas como
chaves estrangeiras.
20. Script de Criação das Tabelas dos
Exemplos
Algumas colunas podem receber o valor NULL (nulo), e a
coluna definida como chave primária, além de não poder
receber NULL.
22. Criação e Destruição de Tabelas
Para excluirmos uma tabela existente devemos usar o comando
DROP
TABLE. A sua forma geral é:
DROP TABLE <nome_tabela>;
onde:
<nome_tabela> dever ser substituído pelo nome da tabela a ser
excluída.
Exemplos
drop table item_pedido;
drop table pedido;
drop table vendedor;
drop table produto;
drop table cliente;
23. Executando Consultas sobre as
Tabelas
Selecionando Colunas Específicas de uma Tabela
Problema:
Listar todos os produtos com as respectivas descrições, unidades
e valores unitários.
24. Executando Consultas sobre as
Tabelas
Problema:
Listar os nomes dos clientes, as cidade e os estados onde eles
estão localizados.
25. EXERCICIO
1. Com base no que você já aprendeu sobre banco de dados faça uma produção
textual de no mínimo 5 linhas descrevendo o diagrama abaixo:
26. EXERCICIO
2. Marque V para verdadeiro e F para falso:
( ) CREATE, DROP, ALTER são comandos da Linguagem de Definição de
Dados (DDL);
( ) É possível usarmos o comando CREATE para alterar estruturas da base de
dados.
( ) O comando UPDATE realiza a exclusão de registros em uma tabela;
( ) Para apagar linhas da tabela tanto faz usar o comando DROP como o DELETE.
( ) O comando INSERT realiza a inclusão de um ou mais registros em uma tabela;
A sequência correta seria:
a) V -V - F –V - F;
b) V - F - F –V - V;
c) F -V - V – F - F;
d) V - F - F – F - V;
27. EXERCICIO
3. Relacione a primeira coluna com a segunda e no final, indique a resposta
correta:
1 - CREATE ( ) Comando responsável por inserir valores em uma tabela;
2 – INSERT ( ) - Responsável por retornar registros de uma tabela;
3 – DROP ( ) - Remove registros de uma tabela;
4 – SELECT ( ) - Tem o poder de remover estruturas do banco de dados;
5 – DELETE ( ) - Responsável por criar estruturas no banco de dados;
A sequência correta seria:
a) 4 - 2 - 1 - 3 - 5;
b) 2 - 4 - 5 - 3 - 1;
c) 3 - 5 - 4 - 2 - 1;
d) 2 - 1 - 3 - 4 - 5;
28. INTRODUÇÃO AO MySQL
1º Passo:
Após a Instalação do MySQL
no seu computador, abra o
MySQL Command Line
Client. No meu caso eu
baixei a versão 5.5 e sempre
deixo fixado no Menu Iniciar,
mas qualquer coisa é só você
seguir o caminho (Iniciar->
Todos os Programas->
MySQL-> MySQL Server).