SlideShare uma empresa Scribd logo
1 de 30
Banco de Dados
Jorge Ávila
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
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)
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)
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;
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.
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”.
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.
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.
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
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.
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;
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.
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
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
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)
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)
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.
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.
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.
Script de Criação das Tabelas dos
Exemplos
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;
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.
Executando Consultas sobre as
Tabelas
 Problema:
 Listar os nomes dos clientes, as cidade e os estados onde eles

estão localizados.
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:
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;
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;
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).
jorgeavila11.wordpress.com
Gostou ?
Compartilha...

Mais conteúdo relacionado

Mais procurados (19)

Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)
 
Aprofundamento de DDL e DML
Aprofundamento de DDL e DMLAprofundamento de DDL e DML
Aprofundamento de DDL e DML
 
Sql - introdução
Sql -  introduçãoSql -  introdução
Sql - introdução
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQL
 
Aula 9 banco de dados
Aula 9   banco de dadosAula 9   banco de dados
Aula 9 banco de dados
 
Aula de SQL - Básico
Aula de SQL - BásicoAula de SQL - Básico
Aula de SQL - Básico
 
Linguagem SQL
Linguagem SQLLinguagem SQL
Linguagem SQL
 
Apostila modelagem de banco de dados
Apostila modelagem de banco de dadosApostila modelagem de banco de dados
Apostila modelagem de banco de dados
 
A Estrutura da Linguagem SQL
A Estrutura da Linguagem SQLA Estrutura da Linguagem SQL
A Estrutura da Linguagem SQL
 
Comandos DDL para o MySQL
Comandos DDL para o MySQLComandos DDL para o MySQL
Comandos DDL para o MySQL
 
Aula10 sql-ddl
Aula10 sql-ddlAula10 sql-ddl
Aula10 sql-ddl
 
Sistemas operacionais aula 01
Sistemas operacionais aula 01Sistemas operacionais aula 01
Sistemas operacionais aula 01
 
Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008
 
Apostila access 2010
Apostila access 2010Apostila access 2010
Apostila access 2010
 
Banco de dados aula 2
Banco de dados  aula 2Banco de dados  aula 2
Banco de dados aula 2
 
Tipos de dados em MySQL
Tipos de dados em MySQLTipos de dados em MySQL
Tipos de dados em MySQL
 
Manual microsoft-access-2007
Manual microsoft-access-2007Manual microsoft-access-2007
Manual microsoft-access-2007
 
Aula de Reforço Access
Aula de Reforço Access Aula de Reforço Access
Aula de Reforço Access
 
Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQL
 

Destaque (20)

Aula 2 banco de dados
Aula 2   banco de dadosAula 2   banco de dados
Aula 2 banco de dados
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Aula 5 banco de dados
Aula 5   banco de dadosAula 5   banco de dados
Aula 5 banco de dados
 
Aula 1
Aula 1Aula 1
Aula 1
 
Aula 7 banco de dados
Aula 7   banco de dadosAula 7   banco de dados
Aula 7 banco de dados
 
Aula 3 banco de dados
Aula 3   banco de dadosAula 3   banco de dados
Aula 3 banco de dados
 
Aula 6 banco de dados
Aula 6   banco de dadosAula 6   banco de dados
Aula 6 banco de dados
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
 
Aula- Virtualização
Aula- VirtualizaçãoAula- Virtualização
Aula- Virtualização
 
Aula 7 semana
Aula 7 semanaAula 7 semana
Aula 7 semana
 
Aula 1 semana
Aula 1 semanaAula 1 semana
Aula 1 semana
 
Aula 2 semana
Aula 2 semanaAula 2 semana
Aula 2 semana
 
Aula 8 semana
Aula 8 semanaAula 8 semana
Aula 8 semana
 
Aula 4 semana
Aula 4 semanaAula 4 semana
Aula 4 semana
 
Semana11
Semana11Semana11
Semana11
 
Aula 3 semana
Aula 3 semanaAula 3 semana
Aula 3 semana
 
Aula 5 semana
Aula 5 semanaAula 5 semana
Aula 5 semana
 
Aula 6 semana
Aula 6 semanaAula 6 semana
Aula 6 semana
 
Aula 06
Aula 06Aula 06
Aula 06
 
Aula 07
Aula 07Aula 07
Aula 07
 

Semelhante a Banco de Dados Relacionais

Banco de dados aula 4
Banco de dados aula 4Banco de dados aula 4
Banco de dados aula 4Ed W. Jr
 
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6Wagner Bianchi
 
Banco dados lj
Banco dados ljBanco dados lj
Banco dados ljCarol Luz
 
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdfQuitriaSilva550
 
37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_server37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_serverJosé Henrique Sento Sé
 
37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_server37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_serverArt IT
 
Bdm aula 9 - operações sql - ticianne darin
Bdm   aula 9 - operações sql - ticianne darinBdm   aula 9 - operações sql - ticianne darin
Bdm aula 9 - operações sql - ticianne darinTicianne Darin
 
6338 111121071604-phpapp01
6338 111121071604-phpapp016338 111121071604-phpapp01
6338 111121071604-phpapp01Gilson Figueredo
 
Fundamentos de SQL - Parte 5 de 8
Fundamentos de SQL - Parte 5 de 8Fundamentos de SQL - Parte 5 de 8
Fundamentos de SQL - Parte 5 de 8Emiliano Barbosa
 
Arquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dadosArquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dadosdiogocbj
 
Banco de Dados.pptx
Banco de Dados.pptxBanco de Dados.pptx
Banco de Dados.pptxBrunoWuo
 

Semelhante a Banco de Dados Relacionais (20)

Apostila de sql
Apostila de sqlApostila de sql
Apostila de sql
 
Sql
SqlSql
Sql
 
Banco de dados aula 4
Banco de dados aula 4Banco de dados aula 4
Banco de dados aula 4
 
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
 
Banco dados lj
Banco dados ljBanco dados lj
Banco dados lj
 
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
 
Aula 05 acessando o mysql
Aula 05   acessando o mysqlAula 05   acessando o mysql
Aula 05 acessando o mysql
 
Apostila ib
Apostila ibApostila ib
Apostila ib
 
37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_server37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_server
 
37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_server37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_server
 
Aula1
Aula1Aula1
Aula1
 
Bdm aula 9 - operações sql - ticianne darin
Bdm   aula 9 - operações sql - ticianne darinBdm   aula 9 - operações sql - ticianne darin
Bdm aula 9 - operações sql - ticianne darin
 
6338 111121071604-phpapp01
6338 111121071604-phpapp016338 111121071604-phpapp01
6338 111121071604-phpapp01
 
Introdução ao BD Postgre
Introdução ao BD PostgreIntrodução ao BD Postgre
Introdução ao BD Postgre
 
Fundamentos de SQL - Parte 5 de 8
Fundamentos de SQL - Parte 5 de 8Fundamentos de SQL - Parte 5 de 8
Fundamentos de SQL - Parte 5 de 8
 
Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
 
Boa apostila sql
Boa  apostila sqlBoa  apostila sql
Boa apostila sql
 
Arquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dadosArquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dados
 
Bd08
Bd08Bd08
Bd08
 
Banco de Dados.pptx
Banco de Dados.pptxBanco de Dados.pptx
Banco de Dados.pptx
 

Mais de Jorge Ávila Miranda (20)

Aula16 - Jquery
Aula16 - JqueryAula16 - Jquery
Aula16 - Jquery
 
Aula15 - Array PHP
Aula15 - Array PHPAula15 - Array PHP
Aula15 - Array PHP
 
Aula13 - Estrutura de repetição (for e while) - PHP
Aula13 - Estrutura de repetição (for e while) - PHPAula13 - Estrutura de repetição (for e while) - PHP
Aula13 - Estrutura de repetição (for e while) - PHP
 
Aula14 - Funções em PHP
Aula14 - Funções em PHPAula14 - Funções em PHP
Aula14 - Funções em PHP
 
Aula Herança
Aula HerançaAula Herança
Aula Herança
 
Aula05 - Poojava
Aula05 - PoojavaAula05 - Poojava
Aula05 - Poojava
 
Aula12- PHP
Aula12- PHPAula12- PHP
Aula12- PHP
 
Aula11 - PHP
Aula11 - PHPAula11 - PHP
Aula11 - PHP
 
Aula10 -PHP
Aula10 -PHPAula10 -PHP
Aula10 -PHP
 
Aula09 - Java Script
Aula09 - Java ScriptAula09 - Java Script
Aula09 - Java Script
 
Aula08 - Java Script
Aula08 - Java ScriptAula08 - Java Script
Aula08 - Java Script
 
Aula07 - JavaScript
Aula07 - JavaScriptAula07 - JavaScript
Aula07 - JavaScript
 
Aula04-POOJAVA
Aula04-POOJAVAAula04-POOJAVA
Aula04-POOJAVA
 
Aula06 - JavaScript
Aula06 - JavaScriptAula06 - JavaScript
Aula06 - JavaScript
 
Aula05-JavaScript
Aula05-JavaScriptAula05-JavaScript
Aula05-JavaScript
 
Aula04-JavaScript
Aula04-JavaScriptAula04-JavaScript
Aula04-JavaScript
 
Aula03 - JavaScript
Aula03 - JavaScriptAula03 - JavaScript
Aula03 - JavaScript
 
Aula02 - JavaScript
Aula02 - JavaScriptAula02 - JavaScript
Aula02 - JavaScript
 
Aula01-JavaScript
Aula01-JavaScriptAula01-JavaScript
Aula01-JavaScript
 
Aula07 - Arquitetura e Manutenção de Computadores
Aula07 - Arquitetura e Manutenção de ComputadoresAula07 - Arquitetura e Manutenção de Computadores
Aula07 - Arquitetura e Manutenção de Computadores
 

Banco de Dados Relacionais

  • 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.
  • 21. Script de Criação das Tabelas dos Exemplos
  • 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).