Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

📚
Guia de Banco de Dados
Fundamentos para Iniciantes em Ciencia da Computacao
Material de Estudo Completo
Edicao 2025
Sumario
1. Introducao aos Bancos de Dados
1.1 O que e um Banco de Dados?
1.2 Sistema Gerenciador de Banco de Dados
1.3 Vantagens do Uso de BDs
2. Modelagem de Dados
2.1 Modelo Entidade-Relacionamento
2.2 Entidades e Atributos
2.3 Relacionamentos
3. Modelo Relacional
3.1 Conceitos Fundamentais
3.2 Chaves
3.3 Cardinalidade
4. SQL - Linguagem de Consulta
4.1 Comandos DDL
4.2 Comandos DML
4.3 Consultas com SELECT
5. Normalizacao
6. Tipos de Banco de Dados
7. Exercicios Praticos
8. Glossario
1. Introducao aos Bancos de Dados
3
1. Introducao aos Bancos de Dados
1.1 O que e um Banco de Dados?
Definicao
Um banco de dados (BD) e uma colecao organizada de dados que pode ser
facilmente acessada, gerenciada e atualizada. Ele armazena informacoes de forma
estruturada, permitindo que sejam recuperadas e manipuladas de maneira
eficiente.
Imagine uma agenda telefonica tradicional: ela contem nomes, enderecos e numeros de
telefone organizados em ordem alfabetica. Um banco de dados funciona de forma similar,
porem de maneira muito mais poderosa e flexivel.
EXEMPLO DO MUNDO REAL
Quando voce faz uma compra online, o sistema precisa consultar um banco de
dados para:
Verificar se o produto esta em estoque
Buscar seus dados de cadastro e endereco
Processar o pagamento
Registrar o pedido para entrega
Tudo isso acontece consultando e atualizando varios bancos de dados em segundos!
1.2 Sistema Gerenciador de Banco de Dados (SGBD)
O SGBD (Sistema Gerenciador de Banco de Dados) e o software responsavel por criar,
manipular e manter os bancos de dados. Ele atua como intermediario entre o usuario e os
dados armazenados.
1. Introducao aos Bancos de Dados
4
Tabela 1 Principais SGBDs do Mercado
SGBD Tipo Caracteristicas
MySQL Relacional Open source, muito popular na web
PostgreSQL Relacional Open source, robusto e completo
Oracle Relacional Pago, usado em grandes empresas
SQL Server Relacional Microsoft, integracao com .NET
MongoDB NoSQL Orientado a documentos
1.3 Vantagens do Uso de Bancos de Dados
Utilizar um sistema de banco de dados traz diversas vantagens em relacao ao
armazenamento tradicional de dados:
Centralizacao: Os dados ficam em um unico local, facilitando o acesso e a
manutencao
Compartilhamento: Multiplos usuarios podem acessar simultaneamente
Seguranca: Controle de acesso e permissoes para diferentes usuarios
Integridade: Regras garantem que os dados sejam consistentes
Backup e Recuperacao: Mecanismos para proteger contra perda de dados
Independencia: Os dados sao independentes dos programas que os utilizam
2. Modelagem de Dados
5
2. Modelagem de Dados
A modelagem de dados e o processo de criar uma representacao visual (diagrama) da
estrutura do banco de dados. E como fazer a planta de uma casa antes de construi-la.
2.1 Modelo Entidade-Relacionamento (MER)
Definicao
O Modelo Entidade-Relacionamento (MER), proposto por Peter Chen em 1976, e
uma tecnica para modelar dados que utiliza tres elementos principais: entidades,
atributos e relacionamentos.
O Diagrama Entidade-Relacionamento (DER) e a representacao grafica do MER, usando
simbolos especificos:
Tabela 2 Simbolos do DER
Simbolo Significado Representacao
Retangulo Entidade Cliente, Produto, Pedido
Elipse/Oval Atributo Nome, Preco, Data
Losango Relacionamento Compra, Possui, Trabalha
Linha Conexao Liga os elementos
2.2 Entidades e Atributos
Entidades
Uma entidade representa um objeto ou conceito do mundo real sobre o qual queremos
armazenar informacoes. Pode ser:
2. Modelagem de Dados
6
Entidade forte: Existe independentemente de outras (ex: Cliente)
Entidade fraca: Depende de outra entidade para existir (ex: Dependente de um
funcionario)
Atributos
Os atributos sao as caracteristicas ou propriedades de uma entidade. Eles podem ser
classificados como:
Tabela 3 Tipos de Atributos
Tipo Descricao Exemplo
Simples Indivisivel, atomico CPF, Idade
Composto Pode ser dividido em partes Endereco (rua, numero, cidade)
Multivalorado Pode ter varios valores Telefones de um cliente
Derivado Calculado a partir de outros Idade (calculada da data de nascimento)
EXEMPLO: ENTIDADE ALUNO
Entidade: ALUNO
Atributos:
Matricula (atributo chave)
Nome
Data de Nascimento
Endereco (composto: Rua, Numero, Bairro, Cidade, CEP)
Telefones (multivalorado)
Idade (derivado)
2. Modelagem de Dados
7
2.3 Relacionamentos
Os relacionamentos representam como as entidades se associam entre si. Sao
representados por losangos no DER.
Exemplo de Relacionamento:
CLIENTE → realiza → PEDIDO
A cardinalidade define quantas vezes uma entidade pode se relacionar com outra:
Tabela 4 Tipos de Cardinalidade
Cardinalidade Significado Exemplo
1:1 (um para um)
Uma entidade se relaciona com
apenas uma outra
Pessoa - RG
1:N (um para muitos)
Uma entidade se relaciona com varias
outras
Departamento -
Funcionarios
N:N (muitos para
muitos)
Varias entidades se relacionam com
varias
Alunos - Disciplinas
3. Modelo Relacional
8
3. Modelo Relacional
O Modelo Relacional, proposto por Edgar F. Codd em 1970, e o modelo mais utilizado para
bancos de dados. Ele organiza os dados em tabelas (tambem chamadas de relacoes).
3.1 Conceitos Fundamentais
Conceitos do Modelo Relacional
Tabela (Relacao): Estrutura que organiza dados em linhas e colunas
Tupla (Linha): Cada registro individual da tabela
Atributo (Coluna): Campo que representa uma caracteristica
Dominio: Conjunto de valores validos para um atributo
Esquema: Estrutura da tabela (nome e tipos dos atributos)
EXEMPLO: TABELA CLIENTE
ID_Cliente Nome Email Telefone
1 Maria Silva maria@email.com (11) 98765-4321
2 Joao Santos joao@email.com (11) 91234-5678
3 Ana Oliveira ana@email.com (21) 99876-5432
Esquema: CLIENTE(ID_Cliente, Nome, Email, Telefone)
3.2 Chaves
As chaves sao fundamentais para identificar registros e estabelecer relacionamentos entre
tabelas.
3. Modelo Relacional
9
Chave Primaria (Primary Key - PK)
Definicao
A chave primaria e um atributo (ou conjunto de atributos) que identifica
unicamente cada tupla em uma tabela. Ela nao pode ser nula e nao pode se repetir.
Dica Importante
Na pratica, costuma-se criar um campo numerico automatico (auto-incremento)
como chave primaria, chamado de ID ou codigo, em vez de usar dados reais como
CPF, pois esses podem mudar.
Chave Estrangeira (Foreign Key - FK)
Definicao
A chave estrangeira e um atributo em uma tabela que faz referencia a chave
primaria de outra tabela. Ela estabelece o relacionamento entre as tabelas.
Relacionamento via Chave Estrangeira:
TABELA A
ID_A PK →
TABELA B
ID_B PK
ID_A FK
3. Modelo Relacional
10
Outros Tipos de Chaves
Tabela 5 Tipos de Chaves
Tipo Descricao
Chave Candidata Atributo que pode ser chave primaria (ex: CPF, RG)
Chave Alternativa Chave candidata que nao foi escolhida como primaria
Chave Composta Chave formada por mais de um atributo
Chave Artificial Criada especificamente para ser PK (ex: ID auto-incremento)
3.3 Cardinalidade nos Relacionamentos
A cardinalidade define quantas ocorrencias de uma entidade podem se relacionar com
ocorrencias de outra entidade:
1:1 - Um para Um (Pessoa - RG)
PESSOA ↔ CARTEIRA_MOTORISTA
Uma pessoa tem apenas uma carteira, e uma carteira pertence a apenas uma pessoa.
1:N - Um para Muitos (Departamento - Funcionarios)
DEPARTAMENTO → FUNCIONARIO 1
3. Modelo Relacional
11
FUNCIONARIO 2
FUNCIONARIO 3
Um departamento tem varios funcionarios, mas cada funcionario pertence a apenas um departamento.
N:N - Muitos para Muitos (Alunos - Disciplinas)
ALUNO 1 → MATRICULA ← DISCIPLINA A
ALUNO 2 → MATRICULA ← DISCIPLINA B
Um aluno pode fazer varias disciplinas, e uma disciplina pode ter varios alunos.
Atencao
Relacionamentos N:N nao podem ser implementados diretamente no modelo
relacional. Eles precisam ser decompostos em duas relacoes 1:N, criando-se umatabela associativa (tabela de ligacao) entre as entidades.
4. SQL - Linguagem de Consulta
12
4. SQL - Linguagem de Consulta
A SQL (Structured Query Language) e a linguagem padrao para trabalhar com bancos de
dados relacionais. Ela e dividida em subconjuntos:
Tabela 6 Subconjuntos da SQL
Sigla Nome Funcao
DDL Data Definition Language Definir estruturas (tabelas, indices)
DML Data Manipulation Language Manipular dados (inserir, atualizar, excluir)
DQL Data Query Language Consultar dados (SELECT)
DCL Data Control Language Controlar acessos (permissoes)
TCL Transaction Control Language Controlar transacoes (commit, rollback)
4.1 Comandos DDL
Os comandos DDL sao usados para criar, alterar e excluir estruturas do banco de dados.
CREATE TABLE - Criar Tabela
CREATE TABLE Cliente (
 ID_Cliente INT PRIMARY KEY AUTO_INCREMENT,
 Nome VARCHAR(100) NOT NULL,
 Email VARCHAR(100) UNIQUE,
 Telefone VARCHAR(20),
 Data_Cadastro DATE DEFAULT CURRENT_DATE
);
4. SQL - Linguagem de Consulta
13
ALTER TABLE - Alterar Tabela
-- Adicionar uma coluna
ALTER TABLE Cliente ADD COLUMN Endereco VARCHAR(200);
-- Modificar uma coluna
ALTER TABLE Cliente MODIFY COLUMN Nome VARCHAR(150);
-- Excluir uma coluna
ALTER TABLE Cliente DROP COLUMN Telefone;
DROP TABLE - Excluir Tabela
DROP TABLE Cliente;
4.2 Comandos DML
Os comandos DML manipulam os dados dentro das tabelas.
INSERT - Inserir Dados
-- Inserir uma linha
INSERT INTO Cliente (Nome, Email, Telefone)
VALUES ('Maria Silva', 'maria@email.com', '(11) 98765-4321');
-- Inserir multiplas linhas
INSERT INTO Cliente (Nome, Email) VALUES
 ('Joao Santos', 'joao@email.com'),
 ('Ana Oliveira', 'ana@email.com');
4. SQL - Linguagem de Consulta
14
UPDATE - Atualizar Dados
-- Atualizar um registro especifico
UPDATE Cliente 
SET Telefone = '(11) 99999-8888' 
WHERE ID_Cliente = 1;
-- CUIDADO: Sem WHERE, atualiza TODOS os registros!
UPDATE Cliente SET Status = 'Ativo';
Atencao Importante!
Sempre use a clausula WHERE nos comandos UPDATE e DELETE . Sem ela, a
operacao afetara TODOS os registros da tabela!
DELETE - Excluir Dados
-- Excluir um registro especifico
DELETE FROM Cliente WHERE ID_Cliente = 1;
-- Excluir varios registros com condicao
DELETE FROM Cliente WHERE Data_Cadastro 5000;
Diferenca: WHERE vs HAVING
WHERE filtra registros antes do agrupamento. HAVING filtra depois do
agrupamento, podendo usar funcoes de agregacao.
4. SQL - Linguagem de Consulta
17
JOIN - Juncao de Tabelas
-- INNER JOIN: apenas registros com correspondencia
SELECT c.Nome, p.Data_Pedido, p.Valor
FROM Cliente c
INNER JOIN Pedido p ON c.ID_Cliente = p.ID_Cliente;
-- LEFT JOIN: todos da tabela da esquerda
SELECT c.Nome, p.Data_Pedido
FROM Cliente c
LEFT JOIN Pedido p ON c.ID_Cliente = p.ID_Cliente;
INNER JOIN: Intersecao das tabelas
Retorna apenas registros que existem em AMBAS as tabelas
LEFT JOIN: Tabela da esquerda completa
Retorna TODOS os registros da tabela esquerda, com dados da direita quando existirem
5. Normalizacao
18
5. Normalizacao
A normalizacao e um processo de organizacao de dados que visa eliminar redundancias e
dependencias problematicas, garantindo a integridade dos dados.
Objetivos da Normalizacao
Minimizar a redundancia de dados
Evitar problemas de atualizacao (anomalias)
Facilitar a manutencao do banco de dados
Garantir a integridade referencial
Primeira Forma Normal (1FN)
Regra da 1FN
Uma tabela esta na 1FN quando todos seus atributos contem apenas valores
atomicos (indivisiveis) e nao existem grupos repetitivos.
PROBLEMA: FORA DA 1FN
ID_Aluno Nome Telefones
1 Maria 98765-4321, 91234-5678
Problema: O campo Telefones contem multiplos valores.
5. Normalizacao
19
SOLUCAO: NA 1FN
ID_Aluno Nome Telefone
1 Maria 98765-4321
1 Maria 91234-5678
Ou criar uma tabela separada para telefones.
Segunda Forma Normal (2FN)
Regra da 2FN
Uma tabela esta na 2FN quando esta na 1FN e todos os atributos nao-chave
dependem totalmente da chave primaria (nao apenas de parte dela).
Quando Aplicar?
A 2FN so se aplica a tabelas com chave primaria composta. Tabelas com chave
simples ja estao automaticamente na 2FN se estiverem na 1FN.
Terceira Forma Normal (3FN)
Regra da 3FN
Uma tabela esta na 3FN quando esta na 2FN e nao existem dependencias
transitivas (atributos nao-chave que dependem de outros atributos nao-chave).
5. Normalizacao
20
PROBLEMA: FORA DA 3FN
ID_Aluno Nome_Aluno ID_Curso Nome_Curso Coordenador
1 Maria C01
Ciencia da
Computacao
Prof. Silva
Problema: Nome_Curso e Coordenador dependem de ID_Curso, nao diretamente
de ID_Aluno.
SOLUCAO: NA 3FN
Tabela ALUNO:
ID_Aluno Nome_Aluno ID_Curso (FK)
1 Maria C01
Tabela CURSO:
ID_Curso Nome_Curso Coordenador
C01 Ciencia da Computacao Prof. Silva
5. Normalizacao
21
Tabela 8 Resumo das Formas Normais
Forma Normal Requisito Principal
1FN Valores atomicos, sem grupos repetitivos
2FN 1FN + dependencia total da chave
3FN 2FN + sem dependencias transitivas
BCNF 3FN + toda determinante e chave candidata
6. Tipos de Banco de Dados
22
6. Tipos de Banco de Dados
Existem diferentes tipos de bancos de dados, cada um adequado para necessidades
especificas:
Bancos de Dados Relacionais (SQL)
Caracteristicas
Dados organizados em tabelas com linhas e colunas
Relacionamentos definidos por chaves
Linguagem SQL padronizada
Garantia de integridade referencial (ACID)
Exemplos: MySQL, PostgreSQL, Oracle, SQL Server
Melhor para: Aplicacoes financeiras, ERP, CRM, sistemas transacionais
Bancos de Dados NoSQL
O termo NoSQL (Not Only SQL) engloba diversos tipos de bancos nao-relacionais:
Tabela 9 Tipos de Bancos NoSQL
Tipo Estrutura Exemplo Uso Ideal
Documento JSON, BSON MongoDB Conteudo, catalogs, perfis
Chave-Valor Pares chave-valor Redis Cache, sessoes, filas
Colunar Colunas em vez de linhas Cassandra Big Data, analise
Grafo Nos e arestas Neo4j Redes sociais, recomendacoes
6. Tipos de Banco de Dados
23
Comparacao SQL vs NoSQL
Tabela 10 SQL vs NoSQL
Caracteristica SQL NoSQL
Esquema Fixo, predefinido Flexivel, dinamico
Escalabilidade Vertical (mais poder) Horizontal (mais servidores)
Transacoes ACID completo BASE (eventual consistency)
Joins Nativo e eficiente Limitado ou manual
Curva de aprendizado Padronizado Varia por tipo
Dica de Estudo
Para quem esta comecando, recomenda-se aprender primeiro bancos relacionais
e SQL, pois sao o padrao da industria e fundamentaispara entender conceitos de
modelagem de dados.
7. Exercicios Praticos
24
7. Exercicios Praticos
1 Modelagem Conceitual
Crie um Diagrama Entidade-Relacionamento para um sistema de biblioteca que deve
armazenar:
Livros (titulo, autor, ano, ISBN)
Leitores (nome, email, telefone, endereco)
Emprestimos (data de emprestimo, data de devolucao)
Identifique as entidades, atributos e relacionamentos com suas cardinalidades.
2 Criacao de Tabelas
Escreva os comandos SQL para criar as tabelas do exercicio anterior, incluindo:
Chaves primarias apropriadas
Chaves estrangeiras para os relacionamentos
Restricoes de integridade (NOT NULL, UNIQUE)
3 Consultas SQL
Considerando uma tabela de PRODUTOS (ID, Nome, Categoria, Preco,
Quantidade_Estoque), escreva comandos SQL para:
a) Listar todos os produtos da categoria "Eletronicos"
b) Calcular o valor total em estoque (Preco * Quantidade)
c) Encontrar o produto mais caro de cada categoria
d) Listar produtos com estoque abaixo de 10 unidades
7. Exercicios Praticos
25
4 Normalizacao
Analise a tabela abaixo e normalize-a ate a 3FN:
ID_Pedido Data Cliente Cidade_Cliente Produto Quantidade Preco_Unit
1
2024-
01-15
Joao Sao Paulo Mouse 2 50.00
1
2024-
01-15
Joao Sao Paulo Teclado 1 120.00
5 Joins
Dadas as tabelas:
FUNCIONARIO (ID, Nome, ID_Depto)
DEPARTAMENTO (ID, Nome, Local)
Escreva consultas para:
a) Listar nome do funcionario e nome do departamento (INNER JOIN)
b) Listar todos os departamentos, mesmo sem funcionarios (LEFT JOIN)
c) Contar quantos funcionarios cada departamento tem
8. Glossario
26
8. Glossario
Atributo: Caracteristica ou propriedade de uma entidade, representada por uma coluna
em uma tabela.
Cardinalidade: Define a quantidade de ocorrencias de uma entidade que pode se
relacionar com outra.
Chave Estrangeira (FK): Atributo que estabelece relacionamento entre tabelas,
referenciando a chave primaria de outra tabela.
Chave Primaria (PK): Atributo ou conjunto de atributos que identifica unicamente cada
registro em uma tabela.
DDL: Data Definition Language - comandos SQL para definir estruturas (CREATE, ALTER,
DROP).
DER: Diagrama Entidade-Relacionamento - representacao grafica do modelo conceitual.
DML: Data Manipulation Language - comandos SQL para manipular dados (INSERT,
UPDATE, DELETE).
Entidade: Objeto ou conceito do mundo real sobre o qual se deseja armazenar
informacoes.
Esquema: Estrutura de uma tabela, definindo seus atributos e tipos de dados.
Integridade Referencial: Garantia de que uma chave estrangeira sempre referencia um
valor valido existente.
MER: Modelo Entidade-Relacionamento - tecnica de modelagem de dados proposta por
Peter Chen.
Normalizacao: Processo de organizacao de dados para eliminar redundancias e
dependencias problematicas.
Relacionamento: Associacao entre duas ou mais entidades.
SGBD: Sistema Gerenciador de Banco de Dados - software que gerencia o acesso e
manipulacao dos dados.
SQL: Structured Query Language - linguagem padrao para manipulacao de bancos de
dados relacionais.
8. Glossario
27
Tabela: Estrutura do modelo relacional composta por linhas (tuplas) e colunas
(atributos).
Tupla: Cada linha de uma tabela, representando um registro individual.
View: Tabela virtual criada a partir de uma consulta SQL, que nao armazena dados
fisicamente.

Mais conteúdos dessa disciplina