O documento discute os conceitos fundamentais de modelagem de dados, incluindo: 1) bases de dados, sistemas de gerenciamento de bancos de dados e seus objetivos; 2) entidades, atributos e domínios; 3) tipos de chaves primárias e estruturas; e 4) relacionamentos entre entidades e integridade referencial.
1. Diagramas de entidade -
associação (DEA)
UFCD 0781 - Análise de
Sistemas de Informação
2. Conceitos Essenciais
Base de dados
É um conjunto de informações de um dado sistema,
relacionada entre si e estruturada de forma a servir
múltiplos utilizadores.
• Exemplo: Registo de empregados de uma empresa
3. Conceitos Essenciais
Sistema de Base de dados (SGBD)
É um sistema que armazena e recupera informação
numa base de dados, permitindo assim a definição da
base de dados, a entrada e modificação dos dados, a
filtragem da informação pretendida, a produção de
formulários, relatórios, programação e administração.
4. Conceitos Essenciais
Informação
É um conjunto de dados recebidos do exterior,
devidamente articulados afim de terem significado.
Dados
São a base para a formação de um juízo ou cálculo.
Para os sistemas de informação, os dados são a sua
matéria-prima.
• Exemplo: Informação acerca de uma aluno.
Dado: Nome do aluno
5. Conceitos essenciais
Entidade
Uma entidade é definida por um conjunto de dados
que de alguma forma se encontram relacionados
Domínio
Conjunto de valores que podem ser associados a um
atributo.
6. Exemplo
Entidades
» Alunos
» Disciplinas
» Faltas
» Notas
Atributo da entidade Alunos
» Nome
» BI
» Morada
» Telefone
» Etc…
A cada atributo está
sempre associado um
domínio
Nome: Todos os nomes
possíveis para os alunos;
BI: Números inteiros
positivos
7. Domínios
Atómicos:
Constituídos por elementos indivisíveis.
Por exemplo, o domínio do atributo idade é constituído
por valores indivisíveis(1,2,3,56,42,etc..);
Compostos:
Constituídos por elementos compostos.
Por exemplo, o atributo nome tem como domínio
elementos compostos( Mario Costa, Ana Santos, etc );
8. Objectivos da Base de
dados
Diminuir o espaço ocupado pela informação;
Facilitar a actualização da informação;
Aumentar a velocidade da pesquisa;
Evitar a redundância da informação.
10. Problema
Nota importante: Ao identificar os atributos de
uma entidade tem de se ter o cuidado de
verificar se estes correspondem apenas a um
valor para cada registo.
Exemplo:
– Aluno
Nº aluno
Nome
Disciplinas (diversas)
Nota (diversas)
È necessário definir
duas novas entidades:
Disciplinas e Notas
12. Chave primária
O atributo identificador de uma entidade é
designado chave primária. Não pode ser nula
nem repetida.
É sobre esta que é criado o ficheiro índice que
permite optimizar as operações de pesquisa
sobre a base de dados.
Exemplo:
Aluno(cod_aluno, nome,
morada, etc..)
Também conhecido por
Index. Ficheiro criado com
base na chave primária e
utilizado para optimizar as
operações de pesquisa
13. Chaves Candidatas
São todos os restantes atributos.
Atributos com características
específicas que lhes permitem ser
chave primária.
14. Nenhum atributo com
características de identificador
Adicionar um atributo à entidade de forma a
funcionar como chave primária;
Ex: Faltas( cod_falta, data, hora, disciplina, aluno)
Seleccionar dois ou mais atributos que sejam
candidatos a chave e com estes formar uma
chave composta;
Ex: Faltas(data, hora, disciplina, aluno)
Chave
constituída por
dois ou mais
atributos
identificados
como candidatos
a chave primária
15. Tipo de chaves primárias
Chaves simples: constituída
apenas por um atributo.
Chave composta: constituída por
mais do que um atributo.
18. Hierárquico
Consiste numa colecção de registos, em que os
dados se encontram relacionados entre si,
através de ligações.
Agência X
Cliente A
Nº100 Joana
Conta nº
151666425
Cliente B
… … …
Cliente C
… … …
Para fazer-mos a pesquisa
faz-se subindo e descendo a
árvore
Se o superior hierárquico for
eliminado todos os que ficam
abaixo serão igualmente
eliminados
19. Rede
Consiste, à semelhança do modelo hierárquico, num
conjunto de dados relacionados entre si através de
ligações mas, neste caso, a estrutura não é hierárquica
ou em forma de árvore, mas em forma de rede.
Agência Y
Cliente D
… … …
Agência X
Cliente A
Nº100 Joana
Conta nº
151666425
Cliente B
… …
Cliente C
… … …
Existe mais conformidade e
flexibilidade na relação entre
os dados
20. Relacional
Modelo que utiliza tabelas;
As Tabelas numa base de dados relacional, são
representações de entidades ou ocorrências;
As Colunas das tabelas representam campos
de informação ou atributos das entidades;
As Linhas das tabelas representam entidades
singulares ou ocorrências concretas
correspondentes aos registos;
21. Exemplo
Aluno → tabela
– Cod_aluno
– Nome
– Endereço Colunas
– Telefone
– etc
Cod_aluno Nome Endereço telefone
1235 Ana Costa Rua da paz, nº8 256369896
1236 José
Medeiros
Rua do ouro,
nº5
258369789
Linhas
22. SGBD
O SGBD relacionais permitem a criação de
bases de dados relacionais, ou seja, base de
dados constituídas por tabelas e
relacionamentos entre elas.
Informática
tradicional
Base de dados
relacional
Álgebra relacional
Ficheiro Tabela Relação
Registo Linha Tuplo
Campo Coluna Atributo
26. Relacionamento entre
entidades
O relacionamento entre entidades é muito
importante, daí a chave primária ser muito
importante na entidade.
O SGBD relacionais, por sua vez, caracterizam-
se por permitir criar bases de dados com
múltiplas tabelas relacionadas entre si. Os
relacionamentos entre entidades baseiam-se
nas chaves das tabelas
27. Tipos de relações
Quanto ao nº de entidades
envolvidas:
Relações unárias: em que
uma entidade se relaciona
consigo mesma;
Relações binárias:
sempre que se relacionam
duas entidades diferentes;
Relações ternárias: são
menos frequentes mas
representam o
relacionamento entre três
entidades.
Pessoa
“PAI”
Pessoa Casas
“Possui”
Identificação
Chefe de
secção
Empregado
“Possui”
28. Tipos de relações
Quanto à cardinalidade:
Um para um (1:1)
Um para muitos ou
muitos para um(1:N) ou
(N:1)
Muitos para muitos
(N:N)
Pessoa Casas
“Possui”
1 M
Pessoa
Identificação
“Possui”
1 1
Aluno
Disciplinas
“matrícula”
M M
29. Exemplo
Uma escola pretende registar as suas turmas e
alunos associados a estas.
1º passo: identificar as entidades e respectivos
atributos.
– Turma(cod_turma; Designação; nível)
– Aluno(cod_aluno; Nome; morada; telefone; cod_turma)
Chave externa ou secundária: é
um atributo ou campo de uma
entidade ou tabela que é chave
primária numa outra entidade ou
tabela.
30. Cont.
Cod_turm
a
designaç
ão
nível
C01 A 2
C02 B 3
C03 C 1
Cod_alun
o
Nome Morada telefone Cod_turma
2355 Maria Santos P. Delgada 235632856 C02
2356 João Costa R. Grande 253698741 C03
2357 Carlos
Pacheco
P. Delgada 452123563 C01
2358 Carla Vieira VFC 458632587 C03
È precisamente entre
as chaves primárias
e as chaves externas
que se estabelece as
ligações entre as
tabelas.
31. Cont.
Se fosse necessário registar as disciplinas que
cada aluno estava matriculado.
– Turma(cod_turma; Designação; nível)
– Aluno(cod_aluno; Nome; morada; telefone; cod_turma)
– Disciplina_aluno( cod_disc_aluno;cod_disciplina; cod_aluno)
– Disciplina(cod_disciplina; designação)
Duas Chaves
Externas ou
secundárias
35. Entidade
Impõe que os valores dos
atributos que correspondem à
chave primária de uma entidade
não podem ser nulos nem iguais a
outros já existentes na tabela
36. Exemplo
Cod_aluno Nome Morada telefone Cod_turma
2355 Maria Santos P. Delgada 235632856 C02
2355 João Costa R. Grande 253698741 C03
2357 Carlos
Pacheco
P. Delgada 452123563 C01
Carla Vieira VFC 458632587 C03
37. Referencial
Impõe que um valor de uma
chave externa tem
obrigatoriamente de existir como
elemento constituinte da chave
primária da tabela relacionada
com aquela chave externa.
38. Exemplo
Cod_turma designação nível
C01 A 2
C02 B 3
C03 C 1
Cod_aluno Nome Morada telefone Cod_turma
2355 Maria Santos P. Delgada 235632856 C02
2356 João Costa R. Grande 253698741 C04
2357 Carlos
Pacheco
P. Delgada 452123563 C01
2358 Carla Vieira VFC 458632587 C03
40. Modelação de dados
Requisições numa biblioteca
Problemas:
redundância da informação
mais espaço em disco,
mais tempo de processamento,
dificuldade de manutenção da integridade dos dados
Solução:
Divisão em várias tabelas relacionadas entre si.
42. Normalização
Partir dos elementos de entrada e saída dos
dados e chegar ao Modelo de Dados.
Exemplo: A partir de uma requisição chegar a
uma base de dados normalizada.
Informalmente, a normalização consiste em
dividir uma tabela inicial em várias tabelas
minimizando a redundância da informação.
43. Identificação da chave
A chave é um conjunto de campos, que identifica
de forma única cada registo da tabela.
A chave deve ser tão simples quanto possível.
Neste caso a chave é Req Nr+Coloca.
44. Identificação de dependências funcionais
entre partes da chave e outros campos
Existe uma dependência funcional quando o
valor de um campo, ou campos determinam os
valores de outros campos
ReqNr -> Leitor Nr, Nome, Morada
Colocação -> Título, Autor
ReqNr + Colocação -> Devolução, data
A partir de cada dependência funcional criamos
uma nova tabela: