Você está na página 1de 84

BANCO DE DADOS I

Prof. Leandro Reis Fonseca


Sobre o Professor

NOME:
• Leandro Fonseca.

FORMAÇÃO ACADÊMICA:
• Especialista em Governança de TI (UNIASSELVI) – DE 2017 A 2018.
• Especialista em Docência do Ensino Superior (UNIASSELVI) – DE 2017 A 2018.
• Especialista em Administração de Redes (FUCAPI) – DE 2011 A 2012.
• Bacharel em Ciência da Computação (CIESA) – DE 2007 A 2010.
Sobre o Professor

EXPERIÊNCIA PROFISSIONAL:
1. PROFESSOR DE ENSINO SUPERIOR
• Empresa: UNINORTE
• Período: de junho de 2018 até a presente data.
2. COORDENADOR T.I
• Empresa: Fundação Rede Amazônica.
• Período: de setembro de 2011 até janeiro de 2018.
3. GESTOR EDUCACIONAL DO CENTRO DE INFORMÁTICA
• Empresa: Fundação Rede Amazônica.
• Período: de setembro de 2011 até janeiro de 2018.
Sobre o Professor

EXPERIÊNCIA PROFISSIONAL:
• Professor de T.I há 10 (dez) anos;
• Disciplinas ministradas: Cabeamento Estruturado, Certificações Furukawa, Lógica de
Programação, Modelagem de Dados, Manutenção de Computadores,
Administração de Servidores Windows, Administração de Servidores Linux,
Administração de Servidores Firewall e Proxy com Software Livre (Iptables e Squid),
Pacote Office (Word, Excel, PowerPoint), Linguagens de desenvolvimento C, Delphi,
PHP; Sistemas de Gerenciamento de Banco de Dados (MYSQL, FIREBIRD e
POSTGRESQL), Ambientes de Virtualização: XEN-SERVER, VMWARE e VIRTUALBOX,
Outras.
Conteúdo Programático

• Conceitos de banco de dados e SGBD;


• Entidade-Relacionamento;
• Entidade;
• Relacionamento;
• Atributo;
• Conceito de chaves: primária e estrangeira;
• Normatização;
• Generalização/Especialização.
CONCEITO DE BANCO DE DADOS
Conceito de Banco de Dados

• Banco de Dados é conjunto de dados integrados que tem por objetivo


atender a uma comunidade de usuários.

Carlos A. Heuser: Projeto de Banco de Dados


Conceito de Banco de Dados

Mundo Real

Nível Conceitual

Independe de SGBD
Etapas para um Projeto
de Banco de Dados nível lógico

nível físico Depende de SGBD


MODELO CONCEITUAL
Modelo Conceitual

• Modelo Conceitual é uma descrição do banco de dados de forma


independente de implementação em SGBD (Sistema de
Gerenciamento de Banco de Dados).

Carlos A. Heuser: Projeto de Banco de Dados


Modelo Conceitual

• Modelo de Entidade e Relacionamento (MER) é uma técnica utilizada


para representar o modelo de dados através da abordagem
entidade-relacionamento. Usualmente, um modelo ER é representado
graficamente, através de um diagrama entidade-relacionamento
(DER). Tal diagrama é composto de entidade, atributo e
relacionamento.

Carlos A. Heuser: Projeto de Banco de Dados


Modelo Conceitual

Atributo
supervisor DataIni

gerenciar

1 N 1 1
número
N 1 número
endereço FUNCIONÁRIO trabalhar DEPARTAMENTO
nome
nome N
1 1
salário localização
Relacionamento
participar controlar
possuir
horas

N
número
N N PROJETO nome
nome
DataNiver DEPENDENTE
parentesco
Entidade

Exemplo de Diagrama de Entidade-Relacionamento


ENTIDADE
Entidade

• Entidade é um conjunto de objetos da realidade modelada sobre os


quais deseja-se manter informações no banco de dados.

Carlos A. Heuser: Projeto de Banco de Dados


Entidade

• Entidade Forte: é uma entidade que existe por si só, ou seja,


independente da existência de outra entidade.

FUNCIONÁRIO

ENTIDADE FORTE TEM


APENAS UMA BORDA

Carlos A. Heuser: Projeto de Banco de Dados


Entidade

• Entidade Fraca: é uma entidade que depende da existência de outra


entidade para existir.

DEPENDENTE

ENTIDADE FRACA TEM


DUAS BORDAS

Carlos A. Heuser: Projeto de Banco de Dados


Entidade

• EXEMPLO:
• Um curso é ministrado por um professor. Um professor pode ministrar vários cursos.
• Um curso pode ter vários alunos. Um aluno pode se matricular em vários cursos.

PROFESSOR CURSO ALUNO


EXERCÍCIO
Exercício 01

Identifique as entidades:
• Um aluno realiza vários trabalhos. Um trabalho é realizado por um ou
mais alunos.
• Um diretor dirige no máximo um departamento. Um departamento
tem no máximo um diretor.
Exercício 01

Identifique as entidades (Continuação)


• Um autor escreve vários livros. Um livro pode ser escrito por vários
autores.
• Uma equipe é composta por vários jogadores. Um jogador joga
apenas em uma equipe.
• Um cliente realiza várias encomendas. Uma encomenda diz respeito
apenas a um cliente.
Exercício 01: Resposta

Identifique as entidades:
• Um aluno realiza vários trabalhos. Um trabalho é realizado por um ou mais alunos.

ALUNO TRABALHO
Exercício 01: Resposta

Identifique as entidades:
• Um diretor dirige no máximo um departamento. Um departamento tem no máximo
um diretor.

DIRETOR DEPARTAMENTO
Exercício 01: Resposta

Identifique as entidades:
• Um autor escreve vários livros. Um livro pode ser escrito por vários autores.

AUTOR LIVRO
Exercício 01: Resposta

Identifique as entidades:
• Uma equipe é composta por vários jogadores. Um jogador joga apenas em uma
equipe.

EQUIPE JOGADOR
Exercício 01: Resposta

Identifique as entidades:
• Um cliente realiza várias encomendas. Uma encomenda diz respeito apenas a um
cliente.

CLIENTE ECOMENDA
RELACIONAMENTO
Relacionamento

• Relacionamento é um conjunto de associações entre entidades,


representado por um losango.

Carlos A. Heuser: Projeto de Banco de Dados


CARDINALIDADE DE
RELACIONAMENTOS
Cardinalidade de Relacionamentos

• Para fins de projeto de banco de dados, uma propriedade importante


de um relacionamento é a de quantas ocorrências de uma entidade
podem estar associadas a uma determinada ocorrência através do
relacionamento. Esta propriedade é chamada de cardinalidade de
uma entidade em um relacionamento. Há duas cardinalidades a
considerar: a cardinalidade máxima e a cardinalidade mínima.

Carlos A. Heuser: Projeto de Banco de Dados


Cardinalidade de Relacionamentos

• Cardinalidade (mínima, máxima) de entidade em relacionamento: é o


número (mínimo, máximo) de ocorrências de entidade associadas a
uma ocorrência da entidade em questão através do relacionamento.

Carlos A. Heuser: Projeto de Banco de Dados


Cardinalidade de Relacionamentos

• Cardinalidade Máxima: expressa a quantidade máxima de ocorrência


(s) de uma entidade associada a(s) ocorrência(s) de outra entidade
relacionada. Para fins de projeto de BD, consideram-se apenas duas
cardinalidades máximas: a cardinalidade máxima 1 e a cardinalidade
máxima N.

Carlos A. Heuser: Projeto de Banco de Dados


Cardinalidade de Relacionamentos

• Cardinalidade Máxima:

Carlos A. Heuser: Projeto de Banco de Dados


Cardinalidade de Relacionamentos

• As cardinalidades máximas podem ser: 1:1, 1:N, e N:N.

tem

Carlos A. Heuser: Projeto de Banco de Dados


Cardinalidade de Relacionamentos

• Cardinalidade Mínima: Para fins de projeto de BD, consideram-se


apenas duas cardinalidades mínimas: a cardinalidade mínima 0
(associação opcional) e a cardinalidade mínima 1 (associação
obrigatória).

Carlos A. Heuser: Projeto de Banco de Dados


Cardinalidade de Relacionamentos

• Cardinalidade Mínima:

Carlos A. Heuser: Projeto de Banco de Dados


EXERCÍCIO
Exercício 01

Faça a modelagem dos cenários abaixo:


• Um aluno realiza vários trabalhos. Um trabalho é realizado por um ou
mais alunos.
• Um diretor dirige no máximo um departamento. Um departamento
tem no máximo um diretor.
Exercício 01

Faça a modelagem dos cenários abaixo (Continuação):


• Um autor escreve vários livros. Um livro pode ser escrito por vários
autores.
• Uma equipe é composta por vários jogadores. Um jogador joga
apenas em uma equipe.
• Um cliente realiza várias encomendas. Uma encomenda diz respeito
apenas a um cliente.
Exercício 01

Faça a modelagem dos cenários abaixo:


• Um aluno realiza vários trabalhos. Um trabalho é realizado por um ou
mais alunos.
Exercício 01

Faça a modelagem dos cenários abaixo:


• Um diretor dirige no máximo um departamento. Um departamento
tem no máximo um diretor.
Exercício 01

Faça a modelagem dos cenários abaixo:


• Um autor escreve vários livros. Um livro pode ser escrito por vários
autores.
Exercício 01

Faça a modelagem dos cenários abaixo:


• Uma equipe é composta por vários jogadores. Um jogador joga
apenas em uma equipe.
Exercício 01

Faça a modelagem dos cenários abaixo:


• Um cliente realiza várias encomendas. Uma encomenda diz respeito
apenas a um cliente.
Exercício 02

• Elabore o modelo de dados de um sistema de controle acadêmico de uma


universidade fictícia. As Necessidades do cliente são:
• Um departamento pode coordenar muitos cursos (inclusive nenhum) e cada curso é
coordenado exatamente por um departamento. Uma disciplina pode aparecer no
currículo de muitos cursos (inclusive de nenhum) e um curso pode possuir muitas
disciplinas em seu currículo (inclusive nenhuma). Uma disciplina pode possuir diversos
pré-requisitos, inclusive nenhum. Uma disciplina pode ser pré-requisito de muitas
outras disciplinas, inclusive de nenhuma. Um aluno pode se inscrever em apenas um
curso e um curso pode ter vários alunos inscritos (inclusive nenhum).
Exercício 02
Diagrama de Ocorrências

• Em um diagrama de ocorrências, ocorrências de entidades são representadas por


círculos brancos e ocorrências de relacionamentos por círculos negros. As
ocorrências de entidades participantes de uma ocorrência de relacionamento são
indicadas pelas linhas que ligam o círculo negro representativo da ocorrência de
relacionamento aos círculos brancos representativos das ocorrências de entidades
relacionadas.

Carlos A. Heuser: Projeto de Banco de Dados


Diagrama de Ocorrências

• Exemplo:

F2 F4 ENTIDADE
F1 F3 FUNCIONÁRIO

F1,D2 F4,D4
RELACIONAMENTO
F1,D1 F2,D3 FUNCIONÁRIO_DEPENDENTE

D2 D4 ENTIDADE
D1 D3 DEPENDENTE
Exercício 04

• Faça o diagrama de ocorrências dos diagramas abaixo:


Exercício 04

• Faça o diagrama de ocorrências dos diagramas abaixo:


Exercício 04

• Faça o diagrama de ocorrências dos diagramas abaixo:


Relacionamento Ternário

• A abordagem ER permite que sejam definidos relacionamentos de grau maior do


que dois (relacionamentos ternários, quaternários,…).

Carlos A. Heuser: Projeto de Banco de Dados


Relacionamento Ternário

• Cada ocorrência do relacionamento DISTRIBUIÇÃO associa três ocorrências de


entidade: um produto a ser distribuído, uma cidade na qual é feita a distribuição e
um distribuidor.

Carlos A. Heuser: Projeto de Banco de Dados


Exercício 05

• Um professor leciona várias disciplinas para várias turmas. Uma turma tem várias
disciplinas ministradas por vários professores. Uma disciplina é ministrada para várias
turmas por vários professores.
Exercício 05

• Um professor leciona várias disciplinas para várias turmas. Uma turma tem várias
disciplinas ministradas por vários professores. Uma disciplina é ministrada para várias
turmas por vários professores.
ATRIBUTO
Atributo

• Atributo é um dado que é associado a cada ocorrência de uma


entidade ou de um relacionamento.

Carlos A. Heuser: Projeto de Banco de Dados


Atributo

• Assim como entidades possuem atributos, relacionamentos podem


também possuir atributos.

Carlos A. Heuser: Projeto de Banco de Dados


Atributo

• Por tanto, atributos descrevem as características de uma entidade. Os


atributos são representados normalmente por círculos.
Atributo

• Os atributos mais comuns são:


• Atributo Simples ou Atômico;
• Atributo Composto;
• Atributo multivalorado;
• Atributo Identificador (Chave).

https://www.portaleducacao.com.br/conteudo/artigos/direito/tipos-de-atributos/66721
Atributo

• Atributo Simples ou Atômico: São os atributos que não são divisíveis.


Como por exemplo, o atributo sexo, este não pode ser dividido em
mais atributos.

https://www.portaleducacao.com.br/conteudo/artigos/direito/tipos-de-atributos/66721
Atributo

• Atributo Composto: Podem ser divididos em várias partes com


significados independentes. O atributo Endereço de um funcionário,
por exemplo, pode ser dividido em Rua, Número e Bairro.

https://www.portaleducacao.com.br/conteudo/artigos/direito/tipos-de-atributos/66721
Atributo

• Atributo Multivalorado: Podem assumir diversos valores. Como por


exemplo, o atributo Telefone de um funcionário, que pode ser: celular,
residencial, comercial, outros.

https://www.portaleducacao.com.br/conteudo/artigos/direito/tipos-de-atributos/66721
Atributo

• Atributo Identificador (Chave): Identifica uma instância específica de


uma entidade, como por exemplo o CPF. O atributo identificador
pode ser de chave única (chave primária) ou não-única (chave
estrangeira).

https://www.portaleducacao.com.br/conteudo/artigos/direito/tipos-de-atributos/66721
Atributo

• Exemplo de uma entidade com os seus atributos:


EXERCÍCIO
Exercício 01

Banco de dados de uma livraria: De acordo com os requisitos a seguir, utilize o DER para
representar o banco de dados desta livraria.
• A livraria deseja manter um cadastro de clientes. Sobre cada cliente é importante
manter seu CPF, nome, sexo, endereço, e-mail e telefone. Um cliente pode comprar
muitos livros, inclusive nenhum. Um livro pode ser vendido para mais de um cliente,
inclusive para nenhum. Sobre as editoras, a livraria precisa de seu CNPJ, razão social,
endereço, e-mail e telefone. Deve-se manter um cadastro sobre cada livro na livraria.
Para cada livro, é importante armazenar o nome do autor, assunto, editora e ISBN.
Editoras diferentes não fornecem o mesmo tipo de livro.
CHAVES
Chaves

O conceito básico para estabelecer relações entre linhas de tabelas de um banco de


dados relacional é o da chave, que pode ser chave: chave primária ou chave
estrangeira.

Carlos A. Heuser: Projeto de Banco de Dados


Chaves

Chave Primária:
• Uma chave primária é uma coluna ou uma combinação de colunas cujos valores
distinguem uma linha das demais dentro de uma tabela.

Carlos A. Heuser: Projeto de Banco de Dados


Chaves

Chave Estrangeira:
• Uma chave estrangeira é uma coluna ou uma combinação de colunas, cujos valores
aparecem necessariamente na chave primária de uma tabela. A chave estrangeira
é o mecanismo que permite a implementação de relacionamentos em um banco
de dados relacional.

Carlos A. Heuser: Projeto de Banco de Dados


Chaves

Chave Estrangeira:
• Relacionamento de 1 para 1: neste tipo de relacionamento, a chave estrangeira
pode ser adicionada em qualquer uma das entidades relacionadas. Neste caso, a
chave primária de uma entidade é adicionada como atributo na outra entidade
como chave estrangeira.
Chaves

Chave Estrangeira:
• Relacionamento de 1 para N: neste tipo de relacionamento, a chave estrangeira
deverá ser adicionada na entidade do lado N, ou seja, a chave primária da
entidade do lado 1 é adicionada como atributo na outra entidade do lado N como
chave estrangeira.
Chaves

Chave Estrangeira:
• Relacionamento de N para N: neste tipo de relacionamento, o relacionamento em si
será transformado em uma nova entidade e as chaves primárias das entidades
anteriores serão adicionadas à nova entidade relacionamento como chaves
estrangeiras, podendo as mesmas serem consideradas também chaves primárias.
Exercício 02

Banco de dados de um hospital: De acordo com os requisitos a seguir, utilize o DER, Diagrama de
Ocorrências (Mínimo 10 ocorrências) e as Tabelas das Entidades e Relacionamentos (Mínimo de
10 registros) para representar o banco de dados deste hospital.
• Todo atendimento de um médico a um paciente deve ser registrado com a data e hora em
que o mesmo ocorreu. Um paciente pode ser atendido por mais de um médico. O paciente
deve ter nome, data de nascimento, endereço, telefone, certidão nascimento, sendo a
certidão de nascimento o único documento não obrigatório no ato do cadastro. Um médico
pode atender vários pacientes, inclusive nenhum. Para o médico são obrigatórios: CRM, CPF,
nome, endereço, telefone, e-mail, data de nascimento. Um paciente pode ter vários planos
de saúde, inclusive nenhum. Um plano de saúde pode ter vários pacientes, inclusive nenhum.
O plano de saúde deve ter obrigatoriamente CNPJ, nome, telefone e endereço.
FORMAS NORMAIS
1FN – 2FN – 3FN
1FN

• Uma entidade/relação está na 1FN se e somente existir atributos atômicos (simples e


indivisíveis), ou seja, sem atributos multivalorados ou compostos.

TABELA PESSOA

CPF NOME TELEFONE ENDEREÇO SEXO


99999-8888, 95555-
123 MARIA RUA 188, 24, CIDADE NOVA F
4444
RUA NAZARÉ, 190, JORGE
456 JUCA 98888-7777 M
TEXEIRA
97777-6666, 93333- AV. CAMAPUÃ, 21, NOSSA
789 PEDRO M
2222 SENHORA DE FÁTIMA I

• Desta forma, podemos TER problemas de inserção, exclusão ou atualização.


1FN

• Solução:

TABELA PESSOA

CPF NOME LOGRADOURO NÚMERO BAIRRO SEXO

123 MARIA RUA 188 24 CIDADE NOVA F

456 JUCA RUA NAZARÉ 190 JORGE TEXEIRA M


NOSSA SENHORA DE
789 PEDRO AV. CAMAPUÃ 21 M
FÁTIMA I

• Desta forma, EVITAMOS problemas de inserção, exclusão ou atualização.


1FN

• Solução (Continuação):

CONTATOS

CPF TELEFONE

123 99999-8888

123 95555-4444

456 98888-7777

789 97777-6666

789 93333-2222
2FN

• Uma entidade/relação está na 2FN se e somente se estiver na 1FN e não tiver


dependências parciais.

TABELA EMPREGADO_PROJETO

CPF_EMPREGADO COD_PROJETO HORA_TRABALHADA NOME_EMPREGADO NOME_PROJETO

123 1010 40 JUREMA ABC

456 2020 80 CATARINA DEF

789 3030 20 PAULO HIJ

• Desta forma, podemos TER problemas de inserção, exclusão ou atualização.


2FN

• Solução:

TABELA EMPREGADO TABELA PROJETO TABELA EMPREGADO_PROJETO

CPF NOME COD NOME CPF_EMPREGADO COD_PROJETO HORA_TRABALHADA

123 JUREMA 1010 ABC 123 1010 40

456 CATARINA 2020 DEF 456 2020 80

789 PAULO 3030 HIJ 789 3030 20

• Desta forma, EVITAMOS problemas de inserção, exclusão ou atualização.


3FN

• Uma entidade/relação está na 3FN se e somente se estiver na 2FN e nenhum atributo


não-primo for transitivamente dependente da chave primária.

TABELA EMPREGADO_DEPARTAMENTO

CPF_EMPREGADO NOME COD_DEPARTAMENTO NOME_DEPARTAMENTO

123 JUREMA 1000 RH

456 CATARINA 2000 DIRETORIA

789 PAULO 3000 CONTABILIDADE

• Desta forma, podemos TER problemas de inserção, exclusão ou atualização.


3FN

• Solução:

TABELA EMPREGADO TABELA DEPARTAMENTO

CPF NOME COD_DEPARTAMENTO COD NOME

123 JUREMA 1000 1000 RH

456 CATARINA 2000 2000 DIRETORIA

789 PAULO 3000 3000 CONTABILIDADE

• Desta forma, EVITAMOS problemas de inserção, exclusão ou atualização.


GENERALIZAÇÃO/ESPECIALIZAÇÃO
Generalização/Especialização

A generalização/especialização permite atribuir propriedades particulares a um subconjunto de


ocorrências especializadas de uma entidade genérica.

A generalização/especialização é representada por um triângulo isósceles.

ENTIDADE A
(GENÉRICA)

ENTIDADE B ENTIDADE C
(ESPECIALIZADA) (ESPECIALIZADA)