Banco de
Dados
Diga lá,
JP!
Licenciado em Computação;
Especialização em Educação
Profissional e Tecnológico;
Especialização em aplicações para
desenvolvimento Web;
Mestrando em Ciências da
Computação.
Os rolês!
Técnico em Redes de Computadores
Desenvolvedor de Sistemas;
Desenvolvedor Web;
Licenciatura em Computação;
Tecnologia da Informação;
Tecnólogo em Jogos Digitais;
Full Stack;
Qual a importância
de um Banco de
Dados?
Bancos de dados (BD)
Sistemas Gerenciadores de
Bancos de Dados (SGBD)
Sistemas de Bancos de Dados
(SBD).
Um sistema de banco de dados
(SBD) é composto por um
programa de software chamado
sistema gerenciador de banco de
dados (SGBD) e por um conjunto de
dados, chamado banco de dados
(BD)
Modelagem
de
Banco de
Dados
Criar um modelo que explique as
características de funcionamento
e comportamento de um software
a partir do qual ele será criado,
facilitando seu entendimento e
seu projeto, através das
características principais que
evitarão erros de programação,
projeto e funcionamento
Modelagem
de
Banco de
Dados
Entidade
Qualquer coisa, seja uma pessoa, objeto,
máquina, estrutura ou equipamento,
desde que tenha existência sica ou
virtual, échamada de entidade.
Na modelagem de dados, existem as
entidades “fracas” e“fortes”.
Isso tem a ver com o atributo de
cardinalidade que, por sua vez, éo
número de relações que uma entidade
tem com outra.
Modelagem
de
Banco de
Dados
INSTÂNCIA
Dessa forma, tudo o que acontece com uma
entidade em um conjunto de dados passa a ser
conhecido como instância ou ocorrência/registro.
Modelagem
de
Banco de
Dados
ATRIBUTO
Características do objeto. Por exemplo,
um cliente tem como atributos nome, endero,
idade e por aí vai
Modelagem
de
Banco de
Dados
RELACIONAMENTO
Agora, considere que entidades, atributos
e instâncias em um banco de dados
fatalmente terão correlações entre si.
Quando isso acontece, temos, então, uma
série de relacionamentos, que nada mais
são do que eventos que acontecem entre
instâncias de duas ou mais entidades.
Modelagem
de
Banco de
Dados
MODELOS DE DADOS
CONCEITUAIS
Esboço do banco – Planta de um
prédio
Modelagem
de
Banco de
Dados
MODELOS LÓGICOS DE
DADOS
É nela que são definidos, por
exemplo, atributos que serão as
chaves para a estrutura.
Também é nessa fase que o
programador considera detalhes
específicos de implementação,
além dos recursos disponíveis e
eventuais limitações.
Modelagem
de
Banco de
Dados
MODELOS LÓGICOS DE DADOS
Avançando na modelagem, chegamos à etapa
mais técnica, na qual é necessário ter
conhecimentos de Structured Query Language
(SQL), a linguagem usada na programação.
É também nesta fase que são estabelecidas
regras de validação, nas quais as informações
passam a ter representação física e virtual e em
que o modelo deve ser refletido no banco de
dados.
Banco de dados relacionais
e não relacionais.
Banco de dados
relacionais
e não relacionais.
Banco de dados
relacionais
e não relacionais.
MODELOS DE DADOS
CONCEITUAIS
Diagrama de entidade relacional - Identifica
todas as entidades e os relacionamentos entre
elas. Este diagrama é a chave para a compreensão
do modelo conceitual de dados.
Cliente Pedidos
Categórica
Produto
Fornecedor
MODELOS DE DADOS
CONCEITUAIS
RETÂNGULO: Entidade;
ELIPSE: Atributo;
LOSANGO: Relacionamento.
Cliente Solicita Pedido
Nome CPF Nome_Produt
o
Preço
MODELOS DE
DADOS
CONCEITUAI
S
Construa um modelo de dados
conceituais utilizando o
Modelo entidade e
relacionamento (MER) de uma
agenda telefônica. Crie as
entidades, atributos e os
relacionamentos.
MODELOS DE
DADOS
CONCEITUAI
S
Crie um modelo de dados conceitual utilizando o Modelo
entidade e relacionamento (MER) de uma escola onde
tem os alunos, professores e disciplinas.
Crie os atributos e os relacionamentos das entidades.
MODELOS DE
DADOS
CONCEITUAI
S
Construa um modelo de dados
conceituais utilizando o
Modelo entidade e
relacionamento (MER) de uma
locadora de veículos.
Chave
Primária
“A chave
primária (PK) é
utilizada para
especificar que,
cada linha é
única, ou seja,
esse campo não
pode ter dois ou
mais registros
de mesmo valor e
também não pode
conter registros
nulos
Chave
Primária
CPF
Código
ID
id_Cliente
Chave
Primári
a
Chave
Alterna
tiva
As chaves
alternativas (AK)
são uma segunda
opção para
distinguir das
demais linhas de
uma tabela de
forma unívoca.
CÓDIGO NOME SOBRENOME RAMAL CPF
001 Neymar Junior 523
123.456.789-
10
002
Cristiano
Ronaldo 987
987.654.321-
99
003 Leonel Messi 554
555.444.333-
22
Chave
Alterna
tiva
Chave
Estrange
ira
Define que achave
estrangeira éuma
coluna, em que o
valor
obrigatoriamente
tem que estar
presente como chave
primária em outra
tabela, permitindo
assim que ocorra o
relacionamento
entre as tabelas
Chave
Estrange
ira
Chave
Estrange
ira
Cardinalid
ade
Cardinalidade é um dos
princípios fundamentais sobre
relacionamento de um banco de
dados relacional
Relacionamento de 1para 1;
Relacionamento de 1 para N ou
de N para 1 quando for o
caso;
Relacionamento de Npara N.
Cardinalid
ade
Cardinalidade é um dos princípios
fundamentais sobre relacionamento de
um banco de dados relacional
Cardinalidade xima: Número máximo
de vezes que uma entidade A pode
ocorrer em B. Pode assumir o valor
de 1ou N(inúmeras vezes).
Cardinalidade Mínima: Número mínimo
de vezes que uma entidade A pode
ocorrer em B. Pode assumir o valor
de 0ou 1
Cardinalid
ade
Relacionamento de 1para 1;
Relacionamento de Um para Um (1 X
1)Cada elemento de uma entidade A
relaciona se com um esomente um
elemento de outra entidade B.
Nesse tipo de relacionamento a
cardinalidade mínima influência
na modelagem.
Cardinalid
ade
Relacionamento de 1 para N ou de N
para 1quando for ocaso;
O elemento de uma entidade A pode se
relacionar com mais de um elemento de
outra entidade B.
Durante este tipo de relacionamento a
ordem influência no resultado de onde
o atributo de referencia também
chamado de chave estrangeira (este
atributo referência a chave primária
de outra tabela) será
adicionado. Normalmente onde
cardinalidade máxima N.
Cardinalid
ade
Relacionamento de Npara N.
Vários elementos de uma entidade
Apodem se relacionar com vários
elementos de uma entidade de B e
vice-versa.
Na modelagem quando ocorre um
relacionamento N x N, criasse uma
nova entidade para armazenar
dados das entidades que estavam
se relacionando inicialmente
MODELOS DE DADOS
CONCEITUAIS
OBS: Em uma modelagem de dados as cardinalidades são
informadas inversamente, ou seja, a cardinalidade da tabela A é
adiciona na tabela B e a de B em A.
Cliente Solicita Pedido
Nome CPF Nome_Produt
o
Preço
(1,1) (1,N)
MODELOS DE DADOS
CONCEITUAIS
OBS:Em uma modelagem de dados as cardinalidades são informadas
inversamente, ou seja, a cardinalidade da tabela A é adiciona na
tabela B e a de Bem A.
Funcionário
Lotado
em
Departamento
(0,N) (1,1)
Um departamento pode
ter quantos funcionários?
Um funcionário pode estar
lotado em quantos
departamentos?
MODELOS DE
DADOS
CONCEITUAI
S
Construa um modelo de dados
conceituais utilizando o Modelo entidade
e relacionamento (MER), no brModelo,
para um sistema mercado. Crie as
entidade, atributos, relacionamentos e
insira as cardinalidades.
MODELOS DE
DADOS
CONCEITUAI
S
Construa um modelo de dados
conceituais utilizando o Modelo entidade
e relacionamento (MER), no brModelo,
para um sorveteria. Crie as entidade,
atributos, relacionamentos, insira as
cardinalidades, as chaves primárias,
estrangeiras e alternativas
MODELOS DE
DADOS
CONCEITUAI
S
Construa um modelo de dados
conceituais utilizando o Modelo entidade
e relacionamento (MER), no brModelo, de
um caixa de um Banco. Crie as entidade,
atributos, relacionamentos e insira as
cardinalidades
Normatização do BD
Normalização é um
processo a partir do
qual se aplicam regras a
todas as tabelas do
banco de dados com o
objetivo de evitar
falhas no projeto, como
redundância de dados e
mistura de diferentes
assuntos numa
mesma tabela.
No BD teremos 3 formais
normais
Normatização do BD
Heuser (2008) define que, quando as tabelas
possuem colunas multivaloradas a tabela é
considerada como “não normalizada”.
1FN
Normatização do
BD 1FN
Para uma tabela ser colocada na 1FN Heuser
(2008) define que:
• A chave primária da tabela que contenha campo
multivalorado deve ser identificada;
• Os campos multivalorados devem ser
identificados e removidos;
• Deve-se criar uma nova tabela com o campo
removido;
• Utilize a chave primária da tabela como chave
estrangeira da tabela que possuía campo
multivalorado.
Normatizaç
ão do BD 1FN
Normatizaç
ão do BD 2FN
Heuser (2008) define que:
• Para se normalizar uma tabela na 2FN, ela
obrigatoriamente tem que se encontrar na 1FN;
• As chaves devem depender unicamente da
chave primária (dependência funcional).
Normatização do BD
2FN
Heuser (2008) define que:
• Para se normalizar uma tabela na 2FN,
ela obrigatoriamente tem que se encontrar
na 1FN;
• As chaves devem depender unicamente da
chave primária (dependência funcional).
Normatizaç
ão do BD 2FN
Normatização do BD
2FN
• Identifique a chave primária da tabela;
• Identifique as chaves que não contém dependência funcional
da chave primária;
• Remova as colunas sem dependência funcional;
• Crie uma nova tabela com os campos removidos;
• Utilize a chave estrangeira para relacionar as tabelas.
Normatização do BD
3FN
Heuser (2008) define que:
• Uma tabela só estará na 3FN, se estiver na 2FN;
• As colunas das tabelas não podem conter
dependência transitiva.
Normatização do BD
3FN
Para
normalizar a
tabela na 3FN,
siga os
seguintes
passos:
• Identificar
as colunas que
contém
dependência
transitiva;
• Remover a
coluna com
dependência
transitiva da
tabela.
Normatização do BD
Cliente
Tel
Filme
Cod_Cliente
pag
saldo
Total
João
111
-1111
Alien=ficção
A caverna=
suspense
C1
Cartão
débito
15,00
30,00
Cliente
Tel
Filme
Categoria
Cod_Cliente
pag
saldo
Total
João
111
-1111
Alien
ficção
C1
Cartão
débito
15,00
30,00
João
111
-1111
A caverna
suspense
C1
Cartão
débito
15,00
30,00
Repete
Normatização do BD
-1111
Cod_Cliente
Cliente
C1
João
Cod_Tel
Tel
T1
111
-
1111
Cod_Client
e
Filme
Categóri
a
pag
saldo
Total
C1
Alien
ficção
Cartão
d
ébito
15,00
30,00
C1
A
caverna
suspens
e
Cartão
d
ébito
15,00
30,00
Normatização do BD
Cod_Cliente
Cliente
C1
João
2FN
Cod_Tel
Tel
T1
111
-
1111
Cod_Cliente
Filme
Categória
pag
saldo
Total
C1
Alien
ficção
Cartão
bito
15,00
30,00
C1
A caverna
suspense
Cartão
bito
15,00
30,00
Cod_Filme
Filme
Categorica
F1
Alien
ficção
F2
A caverna
suspense
Normatização do BD
2FN
Cod_Tel
Tel
T1
111
-1111
Cod_Cliente
Filme
Categória
pag
saldo
Total
C1
Alien
ficção
Cartão
d
ébito
15,00
30,00
C1
A
caverna
suspense
Cartão
d
ébito
15,00
30,00
Cod_Filme
Filme
F1
Alien
F2
A caverna
Cod_Categoria
Categorica
cat1
ficção
cat2
suspense
2FN
Cod_Cliente
Cliente
C1
João
Normatização do BD
Cod_Cliente
Cliente
C1
João
2FN
Cod_Tel
Tel
T1
111
-
1111
Cod_Cliente
pag
saldo
Total
C1
Cartão bito
15,00
30,00
C1
Cartão bito
15,00
30,00
Cod_Filme
Filme
F1
Alien
F2
A caverna
Cod_Categoria
Categorica
cat1
ficção
cat2
suspense
2FN
2FN
Normatização do BD
Cod_Cliente
Cliente
C1
João
Cod_Tel
Tel
T1
111
-
1111
Cod_Cliente
pag
saldo
Total
C1
Cartão bito
15,00
30,00
C1
Cartão bito
15,00
30,00
Cod_Filme
Filme
F1
Alien
F2
A caverna
Cod_Categoria
Categórica
cat1
ficção
cat2
suspense
Cod_Pag
Tipo_pag
pag1
Cartão
pag2
Pix
Normatização do BD
Cod_Cliente
Cliente
C1
João
Cod_Tel
Tel
T1
111
-1111
Cod_Cliente
saldo
Total
C1
15,00
30,00
C1
15,00
30,00
Cod_Filme
Filme
F1
Alien
F2
A caverna
Cod_Categoria
Categórica
cat1
ficção
cat2
suspense
Cod_Pag
Tipo_pag
pag1
Cartão
pag2
Pix
3FN
Normatização do BD
Cod_Cliente
Cliente
C1
João
Cod_Tel
Tel
T1
111
-1111
Cod_Cliente
saldo
C1
15,00
C1
15,00
Cod_Filme
Filme
F1
Alien
F2
A caverna
Cod_Categoria
Categórica
cat1
ficção
cat2
suspense
Cod_Pag
Tipo_pag
pag1
Cartão
pag2
Pix
3FN
Normatização do BD
cod
Cliente
C1
João
Cod_Tel
Tel
Cod_Clinte
C1
111
-1111
Cod_Saldo
saldo
S1
15,00
Cod_Filme
Filme
F1
Alien
F2
A caverna
Cod_Categoria
Categórica
cat1
ficção
cat2
suspense
Cod_Pag
Tipo_pag
pag1
Cartão
pag2
Pix
Normatizaç
ão do BD Vantagen
s
Redução na duplicação dos
dados: ao se eliminar os
campos multivalorados,
evitou-se que um mesmo
dado pudesse estar
presente em mais de um
campo ou tabela;
Agrupamento dos dados:
quando os campos que não
continham dependência
funcional da chave
primária foram removidos
da tabela e formaram uma
nova tabela, isso fez com
que somente campos com o
mesmo “assunto”
compusessem a mesma
tabela
Normatizaç
ão do BD Vantagen
s
Eliminação de campos
inúteis: ao se
eliminar das
tabelas campos com
dependência
transitiva, isso irá
impactar diretamente
no tempo de resposta
das consultas
(Query).
Normatização do BD
Vantagens
Normalize a tabela a seguir:
id_Aluno
Nome
End
Telefone
Id_Curso
Nome_Curso
Nota_aluno
Normatização do BD
Vantagens
Normalize a tabela a seguir:
Normatização do BD
Normalize a tabela a seguir:
Ordem_Compra {cd_ordem_compra, dt_emissão,
cd_fornecedor, nm_fornecedor, endereço_fornecedor,
cd_material (n vezes), descrição_material (n vezes),
qt_comprada (n vezes), vl_unitário (n vezes), vl_total_item
(n vezes), vl_total_ordem}.
Normatização do BD
Colaborador {Número de identificação Colaborador, Nome
do Colaborador, Número de identificação do Departamento,
Nome Departamento, Número de identificação Gerente,
Nome do Gerente, Número de identificação Projeto, Nome
do Projeto, Dia de Início do Projeto, Número de horas
trabalhadas no projeto}.
Modelagem Lógica
Descreve como os dados serão armazenados no banco e
também seus relacionamentos.
Modelagem
Lógica
Modelagem
Lógica
Modelo Conceitual: O modelo
conceitual é um diagrama em
blocos que demonstra todas as
relações entre as entidades,
suas especializações, seus
atributos e auto relações.
Modelo Lógico: O modelo lógico
mostra as ligações entre as
tabelas de banco de dados, as
chaves primárias, os componentes
de cada uma, etc.
Modelagem
Lógica
Venda {Num_NF, Série, Data
emissão, Cod. Cliente, Nome
cliente, Endereço cliente,
tel_cliente, Código
Mercadoria, Descrição
Mercadoria, Quantidade
vendida, Preço de venda,
Total da venda da
Mercadoria e Total Geral da
Nota}.
*Cada nota pode ter mais
do que uma mercadoria.
Modelagem
Lógica
Paciente
{num_paciente,
nome_paciente,
num_quarto,
descrição_quarto,
num_cômodos_quarto,
tel_paciente
cód_médico,
nome_médico,
fone_médico}.
Modelagem
Lógica
Tabela de Notas Fiscais
{CPF_cliente, nome_cliente,
material_comprado,
descrição_material,
tel_Cliente, vendedor,
tel_vendedor, CPF_vendedor,
qnt_comprada,
valor_unitário,
total_compra, data_Compra,
n_notaFiscal,
valor_notaFiscal,
serie_NotaFical,
fornecedor_Material,
CNPJ_Fornecedor,
valorUnitario_Material_Forne
Tipos de
linguage
ns SQL
DDL -Data Definition Language -
Linguagem de Definição de
Dados. São comandos DDL : CREATE,
ALTER e DROP
DML -Data Manipulation Language -
Linguagem de Manipulação de Dados.
São os comandos que
interagem com os dados dentro das
tabelas. São comandos DML :
INSERT, DELETE e UPDATE
DQL -Data Query Language -
Linguagem de Consulta de
dados. São comandos DQL : SELECT
(é o comando de consulta)
Criar
tabelas
CREATE;
SHOW;
DROP;
ALTER;
Criar
Banco de
dados
CREATE DATABASE nome_do_BD
USE nome_do_BD
Criar
tabelas
CREATE TABLE nome_da_tabela
(nome_da_coluna1 tipo _da_coluna1
(tamanho1), nome_da_coluna2 tipo
_da_coluna2 (tamanho2))
Criar
tabelas
select * from
information_schema.tables
Criar
tabelas
ALTER TABLE nome_da_Tabela ADD
nome_da_coluna3 tipo _da_coluna3
(tamanho2)
Criar
tabelas
ALTER TABLE nome_da_Tabela ADD
nome_da_coluna3 tipo _da_coluna3
FOREING KEY REFERENCES
nome_da_tabela (nome_da_PK)
Criar
tabelas
ALTER TABLE nome_da_Tabela ALTER
COLUMN nome_da_coluna3 tipo
_da_coluna3 (tamanho3)
Criar
tabelas
ALTER TABLE nome_da_Tabela DROP
COLUMN nome_da_coluna3
Criar tabelas
DROP TABLE nome_tabela
DROP DATABASE nome_do_BD
Atividade
Crie o banco de tabela de Venda partir da modelagem lógica
criada;
Atividade
Crie o banco da Notas Fiscais a partir da modelagem lógica
criada;
Atividade
Crie o banco da Sistema de Aluguel de carro
a partir da modelagem criada;
Atividade
Crie o banco da Paciente a partir da modelagem lógico criada;
Atividade
Crie o banco da Empregado a partir da modelagem conceitual
criada;
Atividade
Crie o banco da Ordem de Compra a partir da modelagem
conceitual criada;
DML
(Data
ManipulationLanguage)
SELECT;
INSERT;
UPDATE;
DELETE.
Insert
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
Insert
INSERT INTO table_name VALUES (value1, value2, value3,
...);
Select
SELECT *FROM table_name;
Select
SELECT column1, column2, ... FROM table_name;
Select +
where
SELECT * FROM table_name
WHERE condition;
Select +
Where
(com
campo)
SELECT column1, column2, ...
FROM table_name WHERE condition;
Select +
Where
(mais de
uma
condição)
SELECT column1, column2, ...
FROM table_name WHERE condition1
AND condition2;
Select +
Where
(mais de
uma
condição
)
Operatodor
Descrição
=
Igual
>
Maior do que
<
Maior do que
>=
Maior ou igual
<=
Menos ou igual ou igual
<>
Não é igual.
Nota: Em algumas versões do SQL este
operador pode ser escrito como !=
BETWEEN
Entre um certo intervalo
LIKE
Procure um padrão
IN
Para especificar vários valores possíveis para uma
coluna
Select + Where +
Like
SELECT * FROM nome_tabela WHERE campo LIKE
(%letra_ou_numero_inicial%);
Select + Order
SELECT * FROM nome_tabela ORDER BY campo asc;
Update
UPDATE table_name
SET column1 =value1, column2 =value2, ...
WHERE condition;
Update +
condição
UPDATE table_name
SET column1 =value1, column2 =val
ue2, ...
WHERE condition1 AND condition1;
Delete DELETE FROM table_name WHERE condit
ion;
Delete +
condição
DELETE FROM table_name WHERE condi
tion1 OR condition2;
Constru
a a
tabela
a
seguir:
Continuação...
Selecione apenas os nomes dos funcionários;
Selecione os projetos com carga horária acima de 60
Atualize o nome de Silva para Caetano
Delete o projeto de 17;
Atualize as datas para o ano de 2022
Selecione todas as informações do funcionário
Selecione todas as informações do projeto
Insira as informações da funcionária Júlia (matrícula 203,
cargo banco de dados, projeto 15 com data de finalização
02/10/2022, carga horária 150
Associação de tabelas
Join
Inner Join
Left Join
Right Joint
Utilize as joins para as consultas
Adicione ao banco a tabela remédio contendo
id_remédio, nome do remédio, e tempo de uso. No
internamento adicione um remédio ao paciente
Selecione os médicos e os quartos que eles
atendem;
Selecione os paciente e os quartos em que eles
estão;
Selecione quem são os médicos de cada paciente;
Selecione todos os pacientes e apenas os
quartos do 2º andar;
Selecione o nome do remédio e o nome do
paciente;
Associação de tabelas
Join
Select *
from nome_tabela1 AS Variavel_Identifica_Tabela1
JOIN nome_tabela2 AS Variavel_Identifica_Tabela2
ON condição
Inner Join
Retorna os registros que são comuns às duas tabelas.
Associação
de tabelas
Join Inner
Select *
from nome_tabela1 AS
Variavel_Identifica_Tabela1
INNER JOIN nome_tabela2 AS
Variavel_Identifica_Tabela2
ON condição
Outer Join
Tem como resultado todos os registros que estão na tabela A e todos os
registros da tabela B.
Left Join
Tem como resultado todos os
registros que estão na tabela A
(mesmo que não estejam na tabela
B) e os registros da tabela B que
são comuns à tabela A.
Right Join
Teremos como resultado todos os
registros que estão na tabela B
(mesmo que não estejam na tabela
A) e os registros da tabela A que
são comuns à tabela B.
Seja tudo o quiser ser, mas, acima de
tudo, seja você sempre.
Lute.
Acredite.Conquiste.
Perca.
Deseje.
Espere.
Alcance.
Invada.
Caia.
01010011 01110101 01100011 01100101 01110011 01110011 01101111
Postscriptum
Conexão com o Banco de Dados (C#)
Conexão com o Banco de Dados
Cadastrar Banco de Dados
Cadastrar Banco de Dados
Form Cadastrar