Banco de dados - Modelo relacional

Propaganda
Banco de dados
Modelo relacional
Prof. Emerson Ribeiro de Mello
Instituto Federal de Santa Catarina – IFSC
campus São José
[email protected]
http://docente.ifsc.edu.br/mello/bcd
20 de fevereiro de 2017
1/22
Modelos de banco de dados
Modelo de banco de dados é uma descrição dos tipos de informações
que estão armazenadas em um banco de dados
Modelo é construı́do por meio de uma linguagem de modelagem de
dados, que pode ser textual ou gráfica
A representação de um modelo de dados por meio de uma linguagem
de modelagem de dados é chamada de esquema de banco de dados
2/22
Modelos de banco de dados
Modelo conceitual indica quais dados podem aparecer em um banco
de dados, mas não indica como esses estão armazenados pelo SGBD
Descrição do banco de dados de forma independente de
implementação em um SGBD
3/22
Modelos de banco de dados
Modelo conceitual indica quais dados podem aparecer em um banco
de dados, mas não indica como esses estão armazenados pelo SGBD
Descrição do banco de dados de forma independente de
implementação em um SGBD
Modelagem entidade-relacionamento (ER) é a técnica mais
difundida de modelagem conceitual
3/22
Modelo lógico
Modelo lógico é a descrição de um banco de dados no nı́vel de
abstração visto pelo usuário do SGBD
Em um SGBD relacional os dados estão organizados na forma de tabelas
4/22
Modelo lógico
Modelo lógico é a descrição de um banco de dados no nı́vel de
abstração visto pelo usuário do SGBD
Em um SGBD relacional os dados estão organizados na forma de tabelas
4/22
A modelagem é necessária?
Desejamos desenvolver um Sistema acadêmico e precisamos armazenar
dados sobre
Alunos
Funcionários
Cursos
Campus
Quantas tabelas precisarı́amos?
Quais seriam as colunas de cada tabela?
5/22
A modelagem é necessária?
Desejamos desenvolver um Sistema acadêmico e precisamos armazenar
dados sobre
Alunos
Funcionários
Cursos
Campus
Quantas tabelas precisarı́amos?
Quais seriam as colunas de cada tabela?
Práticas da Engenharia de Software
Envolvimento do usuário na especificação aumenta a qualidade do
software gerado
Modelos conceituais descrevem a organização e são mais simples de
entender por usuários leigos em Informática
5/22
Projeto de banco de dados
Fases de um projeto
1
Modelagem conceitual
Captura necessidades da organização em termos de armazenamento e de
forma independente da implementação
Diagrama Entidade-Relacionamento (ER) é normalmente usado
2
Projeto lógico
Transforma modelo conceitual em uma implementação dependente do
SGBD
P.e. Criação das tabelas em um banco de dados relacional
3
Projeto fı́sico
São feitos ajustes para melhorar o desempenho do banco de dados, porém
sem influenciar as funcionalidades
Geralmente trata-se de um processo contı́nuo, também chamado de
sintonia do banco de dados (tuning )
6/22
Entidades
Entidade é uma coisa ou objeto do mundo real que é distinguı́vel de
todos os outros objetos
Conjunto de entidades reúne entidades do mesmo tipo que
compartilham as mesmas propriedades ou atributos
7/22
Atributos
Atributos descrevem as entidades
Para cada atributo da entidade existe um conjunto de valores
permitidos, chamado de domı́nio
Valor nulo (NULL) é membro de qualquer domı́nio e indica que o valor é
desconhecido ou não existe
Elipse dupla indica que o atributo permite múltiplos valores
8/22
Atributos
Identifique os atributos da entidade Livro
8/22
Superchave
Superchave é um conjunto de atributos que pode ser usado para
identificar unicamente uma entidade
Superchaves possı́veis:
9/22
Superchave
Superchave é um conjunto de atributos que pode ser usado para
identificar unicamente uma entidade
Superchaves possı́veis:
{matricula}
{matricula, nome}
{matricula, cpf }, etc.
9/22
Superchave
Superchave é um conjunto de atributos que pode ser usado para
identificar unicamente uma entidade
Superchaves possı́veis:
{matricula}
{matricula, nome}
{matricula, cpf }, etc.
Identifique as superchaves
possı́veis para a entidade Livro
9/22
Chave
Chave é uma superchave mı́nima (conjunto com menor número de
elementos)
Superchave da qual não se pode remover quaisquer atributos e ainda
manter a restrição de identificar unicamente uma entidade
Quando houver mais de uma chave, essas são chamadas de chave
candidata
Chaves candidatas possı́veis:
10/22
Chave
Chave é uma superchave mı́nima (conjunto com menor número de
elementos)
Superchave da qual não se pode remover quaisquer atributos e ainda
manter a restrição de identificar unicamente uma entidade
Quando houver mais de uma chave, essas são chamadas de chave
candidata
Chaves candidatas possı́veis:
{matricula}, {cpf }
10/22
Chave
Chave é uma superchave mı́nima (conjunto com menor número de
elementos)
Superchave da qual não se pode remover quaisquer atributos e ainda
manter a restrição de identificar unicamente uma entidade
Quando houver mais de uma chave, essas são chamadas de chave
candidata
Chaves candidatas possı́veis:
{matricula}, {cpf }
Identifique as chaves
candidatas possı́veis para a
entidade Livro
10/22
Chave primária
Chave primária (primary key – pk) é uma chave candidata escolhida
como principal meio para identificar uma entidade
A representação de uma chave primária no diagrama ER é feita
sublinhando o atributo escolhido
11/22
Chave estrangeira
Uma tabela t1 pode incluir entre seus atributos a chave primária da
tabela t2 e assim esse atributo é chamado de chave estrangeira
(foreign key – fk)
t1 é chamada de tabela referenciadora
t2 é chamada de tabela referenciada
Restrição de integridade referencial
Dada qualquer linha da tabela t1 , deverá haver alguma linha na tabela t2
tal que o valor da chave estrangeira t1FK seja o mesmo que o valor da
chave primária t2PK
12/22
Chaves
13/22
Relacionamentos
Relacionamento é uma associação entre várias Entidades
Losango representa uma conjunto de relacionamentos
14/22
Relacionamentos
Relacionamento é uma associação entre várias Entidades
Losango representa uma conjunto de relacionamentos
14/22
Relacionamentos
Definição matemática (teoria dos conjuntos)
Dados dois conjuntos, A e B o produto cartesiano desses conjuntos
(A × B) é o conjunto com todos os pares de ambos conjuntos
15/22
Relacionamentos
Definição matemática (teoria dos conjuntos)
Dados dois conjuntos, A e B o produto cartesiano desses conjuntos
(A × B) é o conjunto com todos os pares de ambos conjuntos
Relacionamento é um subconjunto de A × B
15/22
Relacionamentos
Faz é um relacionamento, logo é um subconjunto de Aluno × Curso,
logo:
Uma entidade pode aparecer 0, 1 ou mais vezes no relacionamento
A combinação de entidades (p.e. João – Tele) só pode aparecer uma
única vez
16/22
Relacionamentos
Faz é um relacionamento, logo é um subconjunto de Aluno × Curso,
logo:
Uma entidade pode aparecer 0, 1 ou mais vezes no relacionamento
A combinação de entidades (p.e. João – Tele) só pode aparecer uma
única vez
16/22
Relacionamentos
Faz é um relacionamento, logo é um subconjunto de Aluno × Curso,
logo:
Uma entidade pode aparecer 0, 1 ou mais vezes no relacionamento
A combinação de entidades (p.e. João – Tele) só pode aparecer uma
única vez
Identifique um relacionamento entre a entidade Livro e uma outra a ser
escolhida por você
16/22
Relacionamentos: Atributos
Relacionamentos podem possuir atributos
17/22
Relacionamentos: Atributos
Relacionamentos podem possuir atributos
A chave de um relacionamento pode ser constituı́da pela união das
chaves primárias das entidades participantes
17/22
Restrições: Cardinalidade
A restrição de cardinalidade indica quantas vezes uma dada entidade
poderá aparecer em um relacionamento
Um professor pode ser orientador de quantos alunos?
Um aluno pode ter quantos orientadores?
Co-orientador é um outro papel
18/22
Restrições: Cardinalidade
19/22
Restrições: Cardinalidade
Um-para-um:
Um professor pode orientar no máximo um Aluno
Um Aluno pode ser orientado por no máximo um Professor
19/22
Restrições: Cardinalidade
Um-para-muitos:
Um professor pode orientar muitos Alunos
Um Aluno pode ser orientado por no máximo um Professor
19/22
Restrições: Cardinalidade
Muitos-para-um:
Um professor pode orientar no máximo um Aluno
Um Aluno pode ser orientado por muitos Professores
19/22
Restrições: Cardinalidade
Muitos-para-muitos:
Um professor pode orientar muitos Alunos
Um Aluno pode ser orientado por muitos Professores
19/22
Restrições: Cardinalidade
Exemplos
1
Alunos e Disciplinas
Cada aluno pode fazer várias disciplinas e cada disciplina pode ter vários
alunos
2
Sala de cinema e Filme
Cada sala de cinema para exibir diversos filmes e cada filme pode ser
exibido em diversas salas de cinemas
3
Hotel e hóspedes
O quarto de um hotel pode ser reservado por diversos hóspedes e um
hóspede pode reservar diversos quartos
20/22
Restrições: Cardinalidade
Exemplos
1
Alunos e Disciplinas
Cada aluno pode fazer várias disciplinas e cada disciplina pode ter vários
alunos
2
Sala de cinema e Filme
Cada sala de cinema para exibir diversos filmes e cada filme pode ser
exibido em diversas salas de cinemas
3
Hotel e hóspedes
O quarto de um hotel pode ser reservado por diversos hóspedes e um
hóspede pode reservar diversos quartos
Apresente a cardinalidade para o relacionamento entre a entidade Livro e a
outra entidade que você escolheu no exercı́cio anterior (lâmina 16)
20/22
Restrições: Cardinalidade
Exercı́cio 7.1 do livro Sistemas de banco de dados
Desenhe um diagrama E-R para uma seguradora de automóveis em que cada
cliente possua um ou mais carros. Cada carro tem associado a ele zero ou
mais acidentes registrados. Cada apólice de seguro cobre um ou mais carros e
tem um ou mais pagamentos de prêmios associadas a ela. Cada pagamento
tem uma data de vencimento associada, além da data em que o pagamento
foi recebido.
21/22
Restrições: Cardinalidade
Exercı́cio 7.1 do livro Sistemas de banco de dados
Desenhe um diagrama E-R para uma seguradora de automóveis em que cada
cliente possua um ou mais carros. Cada carro tem associado a ele zero ou
mais acidentes registrados. Cada apólice de seguro cobre um ou mais carros e
tem um ou mais pagamentos de prêmios associadas a ela. Cada pagamento
tem uma data de vencimento associada, além da data em que o pagamento
foi recebido.
1
Encontrar as entidades (normalmente os substantivos)
21/22
Restrições: Cardinalidade
Exercı́cio 7.1 do livro Sistemas de banco de dados
Desenhe um diagrama E-R para uma seguradora de automóveis em que cada
cliente possua um ou mais carros. Cada carro tem associado a ele zero ou
mais acidentes registrados. Cada apólice de seguro cobre um ou mais carros e
tem um ou mais pagamentos de prêmios associadas a ela. Cada pagamento
tem uma data de vencimento associada, além da data em que o pagamento
foi recebido.
1
Encontrar as entidades (normalmente os substantivos)
21/22
Restrições: Cardinalidade
Exercı́cio 7.1 do livro Sistemas de banco de dados
Desenhe um diagrama E-R para uma seguradora de automóveis em que cada
cliente possua um ou mais carros. Cada carro tem associado a ele zero ou
mais acidentes registrados. Cada apólice de seguro cobre um ou mais carros e
tem um ou mais pagamentos de prêmios associadas a ela. Cada pagamento
tem uma data de vencimento associada, além da data em que o pagamento
foi recebido.
1
Encontrar as entidades (normalmente os substantivos)
2
Encontrar os relacionamentos (normalmente os verbos)
21/22
Restrições: Cardinalidade
Exercı́cio 7.1 do livro Sistemas de banco de dados
Desenhe um diagrama E-R para uma seguradora de automóveis em que cada
cliente possua um ou mais carros. Cada carro tem associado a ele zero ou
mais acidentes registrados. Cada apólice de seguro cobre um ou mais carros e
tem um ou mais pagamentos de prêmios associadas a ela. Cada pagamento
tem uma data de vencimento associada, além da data em que o pagamento
foi recebido.
1
Encontrar as entidades (normalmente os substantivos)
2
Encontrar os relacionamentos (normalmente os verbos)
21/22
Restrições: Cardinalidade
Exercı́cio 7.1 do livro Sistemas de banco de dados
Desenhe um diagrama E-R para uma seguradora de automóveis em que cada
cliente possua um ou mais carros. Cada carro tem associado a ele zero ou
mais acidentes registrados. Cada apólice de seguro cobre um ou mais carros e
tem um ou mais pagamentos de prêmios associadas a ela. Cada pagamento
tem uma data de vencimento associada, além da data em que o pagamento
foi recebido.
1
Encontrar as entidades (normalmente os substantivos)
2
Encontrar os relacionamentos (normalmente os verbos)
3
Encontrar os atributos (normalmente ficam explı́citos)
21/22
Restrições: Cardinalidade
Exercı́cio 7.1 do livro Sistemas de banco de dados
Desenhe um diagrama E-R para uma seguradora de automóveis em que cada
cliente possua um ou mais carros. Cada carro tem associado a ele zero ou
mais acidentes registrados. Cada apólice de seguro cobre um ou mais carros e
tem um ou mais pagamentos de prêmios associadas a ela. Cada pagamento
tem uma data de vencimento associada, além da data em que o pagamento
foi recebido.
1
Encontrar as entidades (normalmente os substantivos)
2
Encontrar os relacionamentos (normalmente os verbos)
3
Encontrar os atributos (normalmente ficam explı́citos)
21/22
Restrições: Cardinalidade
Exercı́cio 7.1 do livro Sistemas de banco de dados
21/22
Restrições: Cardinalidade
Exercı́cio 7.1 do livro Sistemas de banco de dados
21/22
Aulas baseadas em
Henry F.; Sudarshan Silberschatz, Abraham; Korth.
Sistemas de banco de dados.
6a. Edição - Editora Campus, 2012
Heuser, C. A.
Projeto de banco de dados
6a. Edição - Editora Bookman, 2009
Sullivan, D. G.
Computer Science – Harvard University
22/22
Download