Escolar Documentos
Profissional Documentos
Cultura Documentos
05
Prof. Edson Belém
Cardinalidade
Cardinalidade:
Correntista 1_ * Movimentação
idConta idMovimentacao
idBanco tipo - (Retirada_ deposito)
nome valor -
email DataHora
saldo id_Correntista
www.cotiinformatica.com.br 1
Modelagem de Banco de Dados Aula
05
Prof. Edson Belém
Cardinalidade
script.sql
create database modelagem3;
use modelagem3;
www.cotiinformatica.com.br 2
Modelagem de Banco de Dados Aula
05
Prof. Edson Belém
Cardinalidade
www.cotiinformatica.com.br 3
Modelagem de Banco de Dados Aula
05
Prof. Edson Belém
Cardinalidade
#NPM
www.cotiinformatica.com.br 4
Modelagem de Banco de Dados Aula
05
Prof. Edson Belém
Cardinalidade
+---------+----------+-------------+-------------------+-------
|idbanco | nome | correntista | email | saldo |idCorrentista
+---------+----------+-------------+-------------------+-------
|1000 | Itau | lu | luciana@gmail.com | 15000 | 5000 |
|1000 | Itau | sergio | sergio@gmail.com | 55000 | 5001 |
|1001 | Bradesco | digao | digao@gmail.com | 2000 | 5002 |
+---------+----------+-------------+-------------------+-------
www.cotiinformatica.com.br 5
Modelagem de Banco de Dados Aula
06
Prof. Edson Belém
Autorelacionamento, Truncate
#nao fazer
#Só pode fazer para testar ...
use modelo4;
#Auto_relacionamento
#Pessoa = Conjuge = filho
#Observar para Criticar
#O que achou ?
# Deixando Como Estávamos Observando ...
www.cotiinformatica.com.br 1
Modelagem de Banco de Dados Aula
06
Prof. Edson Belém
Autorelacionamento, Truncate
+------------+--------+----------------+------------+--------+--
| idsegurado | marido | datanascimento | idsegurado | esposa |
datanascimento |
+------------+--------+----------------+------------+--------+--
|100 | jose | 1990-03-10 | 101 | maria | 1992-12-15 |
+------------+--------+----------------+------------+--------+--
#Quem é o titulo
+------+----------------+
| nome | datanascimento |
+------+----------------+
| jose | 1990-03-10 |
+------+----------------+
#Completa
#Auto-Relacionamento 1 para 1, 1 para Muitos ...
www.cotiinformatica.com.br 2
Modelagem de Banco de Dados Aula
06
Prof. Edson Belém
Autorelacionamento, Truncate
#Mostrar os titular
#Mostrar os dependente
------------+--------+----------------+--------+---------+------
|idSegurado|nome|datanascimento|premio|tipo|conjuge|dependentes|
------------+--------+----------------+--------+---------+------
| 1 | manoel | 1980-05-10 | 1000 | titular | NULL | NULL |
------------+--------+----------------+--------+---------+------
+------------+---------+----------------+--------+------------+-
|idSegurado|nome|datanascimento|premio|tipo|conjuge|dependentes|
+------------+---------+----------------+--------+------------+-
|2 | sandra | 1990-01-10 | NULL | dependente | 1 | NULL
|3 | rodrigo | 2010-06-12 | NULL | dependente | NULL | 1 |
|4 | marcela | 2013-06-20 | NULL | dependente | NULL | 1 |
+------------+---------+----------------+--------+------------+-
###Data
#mostrar A data Formatada e a idade
#truncate sem casa decimal
#datadiff diferença entre data
# %y (final ano (2 digitos)
# %Y ano Completo ...
www.cotiinformatica.com.br 3
Modelagem de Banco de Dados Aula
06
Prof. Edson Belém
Autorelacionamento, Truncate
select nome,
date_format(datanascimento,'%d-%m-%Y') as nascimento,
truncate(datediff(now(),datanascimento)/365.25, 0) as
idade, tipo from segurofuncionario;
+-------+
| idade |
+-------+
| 43 |
+-------+
+------------+--------+---------+-----------+--------------+----
| idsegurado | nome | tipo | idConjuge | nome Conjuge |
tipoConjuge | iddependente | nome dependente | tipoDependente |
+------------+--------+---------+-----------+--------------+----
|NULL |NULL |NULL |NULL |NULL | NULL | 1 | Manoel | NULL
|NULL |NULL |NULL |NULL |NULL | NULL | 2 | Sandra | NULL
|1|manoel|titular|2|Sandra|dependente|3| rodrigo | dependente |
|1|manoel|titular|2|Sandra|dependente|4| marcela | dependente |
+------------+--------+---------+-----------+--------------+----
www.cotiinformatica.com.br 4
Modelagem de Banco de Dados Aula
06
Prof. Edson Belém
Autorelacionamento, Truncate
delimiter $$
create trigger gat_funcionario
before insert on funcionario
for each row
begin
www.cotiinformatica.com.br 5
Modelagem de Banco de Dados Aula
06
Prof. Edson Belém
Autorelacionamento, Truncate
end;
$$
delimiter ;
delimiter $$
create trigger gat_dependente
before insert on dependente
for each row
begin
declare idade int default 0;
set @idade :=0;
set @idade := truncate(datediff(now(),
new.datanascimento)/365.25,0);
set new.idade := @idade;
if (new.tipo='conjuge') then
if @idade<=20 then
set new.premio = 500;
elseif @idade>20 and @idade<=25 then
set new.premio = 600;
elseif @idade>25 and @idade<=30 then
set new.premio = 700;
elseif @idade>30 and @idade<=35 then
www.cotiinformatica.com.br 6
Modelagem de Banco de Dados Aula
06
Prof. Edson Belém
Autorelacionamento, Truncate
+--------------+--------+---------+----------------+-------+----
|idDependente|nome|tipo|datanascimento|idade|premio|id_funcionar
io |
+--------------+--------+---------+----------------+-------+----
| 900 | sergio | filho | 2000-10-10 | 15 | 500 | 2005 |
| 901 | maria | conjuge | 1985-10-10 | 30 | 700 | 2005 |
+--------------+--------+---------+----------------+-------+----
#left join
www.cotiinformatica.com.br 7
Modelagem de Banco de Dados Aula
06
Prof. Edson Belém
Autorelacionamento, Truncate
-----+-------------+-------------+-------+------------+
id | nome | idpagamento | valor | datapagto |
-----+-------------+-------------+-------+------------+
100 | tulio Pecas | 1 | 1000 | 2016-04-15 |
100 | tulio Pecas | 2 | 800 | 2016-03-15 |
102 | carlos auto | 3 | 500 | 2016-04-18 |
102 | carlos auto | 4 | 500 | 2016-03-15 |
-----+-------------+-------------+-------+------------+
# left join
www.cotiinformatica.com.br 8
Modelagem de Banco de Dados Aula
06
Prof. Edson Belém
Autorelacionamento, Truncate
+-----+-----------------+-------------+-------+------------+
| id | nome | idpagamento | valor | datapagto |
+-----+-----------------+-------------+-------+------------+
| 100 | tulio Pecas | 1 | 1000 | 2016-04-15 |
| 100 | tulio Pecas | 2 | 800 | 2016-03-15 |
| 101 | marcos Indstria | NULL | NULL | NULL |
| 102 | carlos auto | 3 | 500 | 2016-04-18 |
| 102 | carlos auto | 4 | 500 | 2016-03-15 |
+-----+-----------------+-------------+-------+------------+
+-----+--------+-----------+
| id | nome | nomefilho |
+-----+--------+-----------+
| 100 | carlos | ricardo |
| 100 | carlos | estevan |
| 115 | manoel | NULL |
www.cotiinformatica.com.br 9
Modelagem de Banco de Dados Aula
06
Prof. Edson Belém
Autorelacionamento, Truncate
+-----+--------+-----------+
+------+--------+-----------+
| id | nome | nomefilho |
+------+--------+-----------+
| 100 | carlos | ricardo |
| NULL | NULL | maria |
| NULL | NULL | carina |
| 100 | carlos | estevan |
+------+--------+-----------+
www.cotiinformatica.com.br 10
Modelagem de Banco de Dados Aula
07
Prof. Edson Belém
# Normalização
# 1 Forma normal, não podem ter recursos com mais de um item (vetores)
# dados que devem ser detalhados ...
#Revisão
#não normalizado
#Normalização (Nada é redundante)
Cliente
idCliente nome email telefone endereco
1 edson edson@gmail 981190108, 22684219 rua a, numero 60,
bairro Grajau, cidade Rio de Janeiro
1 _Forma Normal
Cliente
idCliente nome email
1 edson edson@gmail
Telefone
idTelefone Numero id_Cliente
10 98199-0108 1
11 22684219 1
Endereco
idEndereco rua bairro cidade id_Cliente
100 rua a grajau Rio de Janeiro 1
2 Forma Normal
Observar os dados sempre verificando se tudo está preso a chave primária
www.cotiinformatica.com.br 1
Modelagem de Banco de Dados Aula
07
Prof. Edson Belém
Segunda Forma Normal (ou 2FN) requer que não haja dependência
funcional não-trivial de um atributo que não seja a chave, em parte da
chave candidata;
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.
www.cotiinformatica.com.br 2
Modelagem de Banco de Dados Aula
07
Prof. Edson Belém
desc produto;
+---------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+-------+
| idProduto | int(11) | NO | PRI | NULL | |
| nomeProduto | varchar(35) | YES | | NULL | |
| valorUnitario | double | YES | | NULL | |
+---------------+-------------+------+-----+---------+-------+
desc pedido;
+---------------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+---------+------+-----+---------+-------+
| idPedido | int(11) | NO | PRI | NULL | |
| dataPedido | date | YES | | NULL | |
| codigoProduto | int(11) | YES | MUL | NULL | |
| qtde | int(11) | YES | | NULL | |
| valorTotal | double | YES | | NULL | |
+---------------+---------+------+-----+---------+-------+
www.cotiinformatica.com.br 3
Modelagem de Banco de Dados Aula
07
Prof. Edson Belém
select*from produto;
+-----------+------------------+---------------+
| idProduto | nomeProduto | valorUnitario |
+-----------+------------------+---------------+
| 100 | celular Asus | 600 |
| 101 | celular iphone | 3000 |
| 102 | celular sansung | 1500 |
+-----------+------------------+---------------+
select*from pedido;
+----------+------------+---------------+------+------------+
| idPedido | dataPedido | codigoProduto | qtde | valorTotal |
+----------+------------+---------------+------+------------+
| 500 | 2015-03-10 | 100 | 1 | 600 |
| 501 | 2015-03-11 | 102 | 3 | 4500 |
| 502 | 2015-03-11 | 101 | 2 | 3000 |
+----------+------------+---------------+------+------------+
#3 Forma Normal
Uma relação R está na 3FN se ela estiver na 2FN e cada atributo não-chave
de R não possuir dependência transitiva, para cada chave candidata de R.
#Cortar VALORTORAL
#ValorToTal NA TERCEIRA FORMA NORMAL NÃO ENTROU ...
www.cotiinformatica.com.br 4
Modelagem de Banco de Dados Aula
07
Prof. Edson Belém
www.cotiinformatica.com.br 5
Modelagem de Banco de Dados Aula
07
Prof. Edson Belém
www.cotiinformatica.com.br 6
Modelagem de Banco de Dados Aula
01
Prof. Edson Belém
Insert, Selects
https://www.mysql.com/
www.cotiinformatica.com.br 1
Modelagem de Banco de Dados Aula
01
Prof. Edson Belém
Insert, Selects
www.cotiinformatica.com.br 2
Modelagem de Banco de Dados Aula
01
Prof. Edson Belém
Insert, Selects
Services.msc
Cliente
idCliente _ numero (inteiro ou real) int ou double (INT ou
double)
nome _ texto (varchar(tamanho) ) _ 255
email _ texto (varchar)
sexo _ texto (varhcar)
valorMensalidade _ numero (double)
TELEFONE
operadora
tipo
numero
www.cotiinformatica.com.br 3
Modelagem de Banco de Dados Aula
01
Prof. Edson Belém
Insert, Selects
#comentario
#criar um banco de dados no mysql
#Primeiro Banco
#Dentro do Banco é a tabela ...
# a senha do MYSQL _ é coti
#Somente os comandos
#observar a hora
select now();
+---------------------+
| now() |
+---------------------+
| 2016-04-11 16:01:33 |
+---------------------+
www.cotiinformatica.com.br 4
Modelagem de Banco de Dados Aula
01
Prof. Edson Belém
Insert, Selects
SELECT USER();
--root@localhost
+----------------+
| USER() |
+----------------+
| root@localhost |
+----------------+
+---------------------+
| multiplicacao 10*20 |
+---------------------+
| 200 |
+---------------------+
www.cotiinformatica.com.br 5
Modelagem de Banco de Dados Aula
01
Prof. Edson Belém
Insert, Selects
desc cliente;
+-----------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra
+-----------------+-------------+------+-----+---------+-------+
| idCliente | int(11) | NO | PRI | NULL |
| nome | varchar(35) | YES | | NULL |
| email | varchar(50) | YES | | NULL |
| sexo | varchar(1) | YES | | NULL |
| valormensalidade | double | YES | | NULL |
|-----------------+-------------+------+-----+---------+-------+
www.cotiinformatica.com.br 6
Modelagem de Banco de Dados Aula
01
Prof. Edson Belém
Insert, Selects
#ou
#Inserindo em uma Ordem Pré-definida
www.cotiinformatica.com.br 7
Modelagem de Banco de Dados Aula
01
Prof. Edson Belém
Insert, Selects
#A quantidade de clientes
#Contagem dos DADOS da Tabela
select count(*) "quantidade" from cliente;
+------------+
| quantidade |
+------------+
| 5 |
+------------+
+-----------+----------+--------------------+------+------------
| idCliente | nome | email | sexo | valormensalidade
+-----------+----------+--------------------+------+------------
| 10 | porfirio | porfirio@gmail.com | m | 200 |
| 20 | lu | lu@gmail.com | f | 300 |
+-----------+----------+--------------------+------+------------
www.cotiinformatica.com.br 8
Modelagem de Banco de Dados Aula
01
Prof. Edson Belém
Insert, Selects
+---------+------+
| nome | sexo |
+---------+------+
| marcelo | m |
+---------+------+
#ascendente
select * from cliente order by nome asc;
+-----------+----------+--------------------+------+------------
| idCliente | nome | email | sexo | valormensalidade
+-----------+----------+--------------------+------+------------
| 40 | garra | garra@gmail.com | m | 580 |
| 20 | lu | lu@gmail.com | f | 300 |
| 30 | marcelo | marcelo@gmail.com | m | 500 |
| 10 | porfirio | porfirio@gmail.com | m | 200 |
| 50 | sergio | sergio@gmail.com | m | 380 |
+-----------+----------+--------------------+------+------------
#descendente
select * from cliente order by 2 desc;
+-----------+----------+--------------------+------+------------
| idCliente | nome | email | sexo | valormensalidade
+-----------+----------+--------------------+------+------------
| 50 | sergio | sergio@gmail.com | m | 380 |
| 10 | porfirio | porfirio@gmail.com | m | 200 |
| 30 | marcelo | marcelo@gmail.com | m | 500 |
| 20 | lu | lu@gmail.com | f | 300 |
| 40 | garra | garra@gmail.com | m | 580 |
+-----------+----------+--------------------+------+------------
www.cotiinformatica.com.br 9
Modelagem de Banco de Dados Aula
01
Prof. Edson Belém
Insert, Selects
+-----------+---------+-------------------+------+--------------
| idCliente | nome | email | sexo | valormensalidade |
+-----------+---------+-------------------+------+--------------
| 40 | garra | garra@gmail.com | m | 580 |
| 30 | marcelo | marcelo@gmail.com | m | 500 |
| 50 | sergio | sergio@gmail.com | m | 380 |
+-----------+---------+-------------------+------+--------------
+------+
| soma |
+------+
| 1960 |
+------+
#Menor mensalidade
select min(valormensalidade) "menor" from cliente;
+-------+
| menor |
+-------+
| 200 |
+-------+
www.cotiinformatica.com.br 10
Modelagem de Banco de Dados Aula
01
Prof. Edson Belém
Insert, Selects
#Maior Mensalidade
select max(valormensalidade) "maior" from cliente;
+-------+
| maior |
+-------+
| 580 |
+-------+
+-------+------+
| maior | sexo |
+-------+------+
| 300 | f |
| 580 | m |
+-------+------+
+-------+------+
| maior | sexo |
+-------+------+
| 580 | m |
+-------+------+
www.cotiinformatica.com.br 11
Modelagem de Banco de Dados Aula
01
Prof. Edson Belém
Insert, Selects
+-----------------------+------+
| sum(valormensalidade) | sexo |
+-----------------------+------+
| 1660 | m |
+-----------------------+------+
+----------+------+
| count(*) | sexo |
+----------+------+
| 1 | f |
| 4 | m |
+----------+------+
desc cliente;
+------------------+-------------+------+-----+---------+-------
| Field | Type | Null | Key | Default | Extra
+------------------+-------------+------+-----+---------+-------
| idCliente | int(11) | NO | PRI | NULL |
| nome | varchar(35) | YES | | NULL |
| email | varchar(50) | YES | | NULL |
| sexo | varchar(1) | YES | | NULL |
| valormensalidade | double | YES | | NULL |
+------------------+-------------+------+-----+---------+-------
www.cotiinformatica.com.br 12
Modelagem de Banco de Dados Aula
01
Prof. Edson Belém
Insert, Selects
desc endereco;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| idEndereco | int(11) | NO | PRI | NULL | |
| bairro | varchar(35) | YES | | NULL | |
| cidade | varchar(50) | YES | | NULL | |
| id_Cliente | int(11) | YES | MUL | NULL | |
+------------+-------------+------+-----+---------+-------+
#Dados do Endereco
#Insere oS DADOS DO ENDEREÇO
www.cotiinformatica.com.br 13
Modelagem de Banco de Dados Aula
01
Prof. Edson Belém
Insert, Selects
#Atualizar ...
commit;
www.cotiinformatica.com.br 14
Modelagem de Banco de Dados Aula
02
Prof. Edson Belém
use aula2;
show tables;
desc cliente;
#ou
#Inserindo em uma Ordem Pré-definida
www.cotiinformatica.com.br 1
Modelagem de Banco de Dados Aula
02
Prof. Edson Belém
desc endereco;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| idEndereco | int(11) | NO | PRI | NULL | |
| bairro | varchar(35) | YES | | NULL | |
| cidade | varchar(50) | YES | | NULL | |
| id_Cliente | int(11) | YES | MUL | NULL | |
+------------+-------------+------+-----+---------+-------+
#Dados do Endereco
#Insere oS DADOS DO ENDEREÇO
#Atualizar ...
commit;
www.cotiinformatica.com.br 2
Modelagem de Banco de Dados Aula
02
Prof. Edson Belém
+----------+--------------------+-----------------+-------------
| nome | email | bairro | cidade
+----------+--------------------+-----------------+-------------
| porfirio | porfirio@gmail.com | Barra da tijuca | Rio de
janeiro |
| lu | lu@gmail.com | Leblon | Rio de
janeiro |
| marcelo | marcelo@gmail.com | NULL | Rio de
janeiro |
| garra | garra@gmail.com | tijuca | Rio de
janeiro |
| sergio | sergio@gmail.com | nova iguacu | Rio de
janeiro |
| belem | belem@gmail.com | Recreio | Rio de
janeiro |
+----------+--------------------+-----------------+-------------
www.cotiinformatica.com.br 3
Modelagem de Banco de Dados Aula
02
Prof. Edson Belém
www.cotiinformatica.com.br 4
Modelagem de Banco de Dados Aula
02
Prof. Edson Belém
+-----------+----------+--------------------+------+------------
| idCliente | nome | email | sexo |
valormensalidade | bairro | cidade |
+-----------+----------+--------------------+------+------------
| 40 | garra | garra@gmail.com | m | 580 |
tijuca | Rio de janeiro |
| 10 | porfirio | porfirio@gmail.com | m | 200 |
Barra da tijuca | Rio de janeiro |
| 30 | marcelo | marcelo@gmail.com | m | 500 |
NULL | Rio de janeiro |
| 50 | sergio | sergio@gmail.com | m | 380 |
nova iguacu | Rio de janeiro |
| 20 | lu | lu@gmail.com | f | 300 |
Leblon | Rio de janeiro |
| 60 | belem | belem@gmail.com | m | 350 |
Recreio | Rio de janeiro |
+-----------+----------+--------------------+------+------------
show tables;
+--------------------+
| Tables_in_aula1 |
+--------------------+
| cliente |
| endereco |
| v$cliente_endereco |
+--------------------+
#Comando de Condição if
www.cotiinformatica.com.br 5
Modelagem de Banco de Dados Aula
02
Prof. Edson Belém
+----------+-----------+
| nome | sexo |
+----------+-----------+
| porfirio | Masculino |
| lu | Feminino |
| marcelo | Masculino |
| garra | Masculino |
| sergio | Masculino |
| belem | Masculino |
+----------+-----------+
+----------+-----------+--------------------+
| nome | sexo | email |
+----------+-----------+--------------------+
| porfirio | Masculino | porfirio@gmail.com |
| lu | Feminino | lu@gmail.com |
| marcelo | Masculino | marcelo@gmail.com |
| garra | Masculino | garra@gmail.com |
| sergio | Masculino | sergio@gmail.com |
| belem | Masculino | belem@gmail.com |
+----------+-----------+--------------------+
# case = if
+------------+-----------------+
| Mensagem | bairro |
+------------+-----------------+
| centro | tijuca |
| centro | Barra da tijuca |
| nao centro | NULL |
www.cotiinformatica.com.br 6
Modelagem de Banco de Dados Aula
02
Prof. Edson Belém
select now();
+---------------------+
| now() |
+---------------------+
| 2016-04-11 16:18:09 |
+---------------------+
+------+------+------+--------------------+---------------+
| dia | Mes | Ano | Data Formatada | Numero Semana |
+------+------+------+--------------------+---------------+
| 11 | 04 | 2016 | 11-04-2016 04:18 P | 15 |
+------+------+------+--------------------+---------------+
www.cotiinformatica.com.br 7
Modelagem de Banco de Dados Aula
03
Prof. Edson Belém
use aula3;
show tables;
desc cliente;
www.cotiinformatica.com.br 1
Modelagem de Banco de Dados Aula
03
Prof. Edson Belém
desc endereco;
commit;
# Gerar Excel
# MUITO ÚTIL
# Observar Se existe esse Diretório no Excel ...
# Senão Existir pode dar ERRO ...
# LEva Do MYSQL PARA O EXCEL .....
www.cotiinformatica.com.br 2
Modelagem de Banco de Dados Aula
03
Prof. Edson Belém
No Explorer...
www.cotiinformatica.com.br 3