O modelo relacional de Bases de Dados é um dos modelos mais utilizados atualmente pois é adotado pela maioria dos SGBD, como MySQL, PostgreSQL, Oracle Database e SQL Server, entre outros.
Desenvolvidopor Edgar F. Codd, na década de 1970
📌 Definição
Modelo Relacionalde Bases de Dadosarmazena e organiza os dados em tabelas (relações), que se relacionam entre si através de chaves primárias (PK) e estrangeiras (FK).
Tabela ALUNOS da entidade ALUNO
📌CARACTERÍSTICAS
os dados são armazenados em tabelas (linhas e colunas)
Cada tabela representa uma entidade do mundo real (por exemplo: Aluno, Produto, Consulta)
Cada linha corresponde a um registo (tuplo).
Cada coluna/campo corresponde a um atributo.
utiliza chaves primárias para identificar de forma únicacada registo da tabela
utiliza chaves estrangeiras para criar relações entre as tabelas
Permite amanipulação dos dados através da linguagem SQL.
Relacionamento da Tabela ALUNOS com a Tabela CURSOS
📌 Vantagens do modelo relacional
Boa organização dos dados - Os dados são estruturados em tabelas (ou relações), facilitando o entendimento e a gestão das informações.
Redução da redundância de dados - Evita a duplicação de informações, economizando espaço e prevenindo inconsistências.
Garante a integridade e consistência dos dados – Regras como chaves primárias e estrangeiras garantem que os dados permaneçam corretos e confiáveis.
Facilita a pesquisa e atualização da informação - A linguagem SQL permite consultas complexas, além de inserções, alterações e exclusões de dados de forma eficiente.
Permite segurança e controlo de acessos – É possível definir quem pode ler, inserir ou alterar informações, garantindo proteção e privacidade dos dados.
Amplamente utilização - É o modelo mais adotado em sistemas atuais, com grande suporte de ferramentas e profissionais especializados.
🔹 Estrutura das tabelas
🧠 Nome da tabela: deve refletir os dados que ela guarda
TABELA:Estrutura bidimensional que armazena dados de uma entidade.
LINHA ou REGISTO:Representa uma ocorrência específica de uma entidade (linha de dados)
CAMPO ou COLUNA: representa as características/ propriedades (atributo) da entidade.
DOMÍNIO: Define os valores permitidos para um atributo.
(ex: no campo IdCurso, os domínios são os valores: 290, 122 ,etc )
🔑 Chave Primária (Primary Key - PK)
✅ Definição
Campo(ou conjunto de campos) que Identifica de forma única cada registo de uma tabela.
✔️ Características
Não pode repetir valores
Não pode ser nula (vazia)
Existe apenas uma PK por tabela
🔗 Chave Estrangeira (Foreign Key – FK)
✅ Definição
Campo que liga uma tabela a outra, referenciando a chave primáriade outra tabela.
✔️ Serve para:
criar relações entre tabelas
manter integridade dos dados
🔑 Chave Candidata (Candidate Key)
✅ Definição:
É qualquer campo (ou conjunto de campos) que identificar de forma única cada registo de uma tabela e que pode ser selecionado para ser a chave primária.
👉 EXEMPLO:
Na tabela Alunos podemos ter vários campos podem ser candidatos a PK: NProcesso, NIF, CC
Deve escolher a que melhor representa a respetiva tabela para ser a chave primária
🔑 Chave Composta (Composite Key)
✅ Definição:
👉 É uma chave primária formada por dois ou mais campos, cuja combinação identifica de forma única cada registo de uma tabela.
Exemplo:
É o caso mais comum.
Tabela Inscrições
NProcesso
IdDisciplina
123 123
SI OEAG
👉 Assim, a chave primária é formada por 2 campos (chave composta).
🔑 PK = (NProcesso + idDisciplina)
Atualmente, usa-se pouco a chave composta, sendo substituída um campo único (chave artificial)
🔑 PK = IdInscricao (auto-incremento)
NORMALIZAÇÃO
Normalização é o processo de organizar os dados em uma Base de Dados Relacional para:
evitar redundância (repetição de dados)
evitar inconsistências
facilitar manutenção e integridade
Deve ser aplicado um conjunto de Regras para atingir esses objetivos
📊 As Formas Normais
🔹 1ª Forma Normal (1FN)
Regra:
Não pode haver multivalores dentro de uma célula.
Cada campo/coluna deve ter apenas um único valor (atómico).
Se houver atributos com valores compostos (ex: Endereço) devem dividir atributos em valores atómicos
Se houver atributos com valores multivalores devem colocá-los em nova tabela e relacioná-la com a anterior.
🔹 2ª Forma Normal (2FN)
Regra:
-Deve estar na 1FN
- todos os campos não-chave devem depender da chave primária.
A 2FN só é um problema quando a tabela tem chave primária composta
🔹 3ª Forma Normal (3FN)
Regra:
-Deve estar na 2FN
- não existem dependências transitivas
(atributo não pode depender de outro atributo que não seja chave)
🔁 Transações críticas
Garantia de integridade dos dados, rollback - desfaz operações em caso de erro
🏢 Exemplos de uso
SGBDs de grande porte são usados em:
🏦 Bancos e sistemas financeiros
🛒 E-commerce (Amazon, Mercado Livre)
✈️ Companhias aéreas (reservas e passagens)
🏥 Hospitais (prontuários eletrónicos)
🏛️ Sistemas governamentais
📡 Telecomunicações
📱 Aplicações web e mobile em larga escala
Exemplos de SGBD relacionais pequeno porte (desktop)
Microsoft Access
- O Microsoft Access é um SGBD relacional que utiliza linguagem SQL
- oferece interface gráfica (tabelas, consultas em modo design, formulários) pelo que nãoprecisa trabalhar com oscomandos SQL.
- relacionamento de cardinalidade 1: M aparece com 1: ∞
🔧 Para que são utilizados?
Ideal para pequenos e médios projetos:
- Registo de Clientes
- Sistema Simples de Vendas
SGBD Orientado a Objetos:
Um SGBD orientadoa objetos (Object-Oriented Database Management System – OODBMS) é um Sistema de Gestão de Bases de Dados que armazena, gere e manipula objetos, com atributos e métodos, tal como são usados na Programação Orientada a Objetos (POO).
SGBD NoSQL (armazena dados em documentos JSON)
- MongoDB
consultas complexas; usado em backend web
- Firestore (Firebase)permite consultas mais avançadas; cloud-managed
Dicionário de Dados (DD)
DD é uma Técnica de descrição detalhada dos vários tipos de dados.
É uma técnica complementar aos DFD.
Considerando uma ENTIDADE EXTERNA ALUNO em que os dados vão ficar armazenados no arquivo alunos
temos que pensar notipo de dadosenvolvidos que serão utilizados armazenar no arquivo alunos.
O DICIONÁRIO DE DADOS deverá descrever cada arquivo de dados:
- nome que identifica a entidade que irá corresponder a um tabela ou arquivo
- estrutura de atributos dessa entidade
- as relações
atributos vão ser implementadas nos campos da TABELA
Dicionário de dadosé um documento que descreve de forma detalhada os dados do sistema, incluindo tipo, tamanho, significado e relações e restrições, servindo como guia para analistas e programadores.
considerando os atributos
ALUNOS (nºprocesso, nome aluno, morada, concelho, datanasc, email ...)
EXEMPLO
De forma simplificada:
ALUNOS
n_processo – inteiro, identificador único do aluno (chave primária)
nome_aluno – texto, nome do aluno
morada – texto, morada completa
concelho – texto, município de residência
data_nasc – data de nascimento
email – texto, email do aluno
MODELAÇÃO DE DADOS
A modelação de dados é a técnica de descrever e representar os dados de um sistema, identificando entidades, atributos e seus relacionamentos, antes da sua implementação numa base de dados.
A técnica mais utilizada é a:
Diagrama Entidade - Relação (DER) ou Diagrama Entidade - Relacionamento --> para o SGBD Relacional
Diagrama Entidade - Relação (DER) ou Diagrama Entidade-Relacionamento,representa:
as Entidades e seus atributos;
as Relações ou relacionamentos entre as entidades.
OBJETIVO
O DER tem como objetivo descrever os dados que são utilizados no sistema(de forma conceptual).
CONCEITOS
Entidades: objetos ou conceitos do mundo real (exemplo: funcionário, cliente, produto, ..);
Atributos: características de uma entidade ( exemplo: nome, endereço, preço..);
Relações ou Relacionamentos: interações ou associações entre as entidades;
EXEMPLOS de DER
-->>Estilo de Notação Chen
-->> Estilo Pé de Galinha/Martin/Engenharia da Informação
EXEMPLO de uma Entidade com atributos
Estilo Notação Chen Estilo Pé galinha
Diagrama Entidade - Relação (DER) - vamos usar Notação Chen
Cada Entidade tem um conjunto de atributos (propriedades)
Apresentação da Entidade e seus atributos no Diagrama ER
em que
Num diagrama DER, uma entidade é representada por um retângulo com o nome da entidade no seu interior.
Os atributos de uma entidade podem ser indicados dentro de elipses ligadas por linhas ao retângulo da entidade
Apresentação por escrito em texto:
CLIENTE (CodCliente, Nome, Morada, CodPostal)
Tipos de atributos:
Atributos Simples ou Atómicos (valor isolado) Exemplo: peso, preço unitário…
TERNÁRIO - relação ou relacionamento entretrês entidadesdistintas.
UNÁRIO
Ocorre quando uma entidadese relaciona consigo mesma.
BINÁRIO (mais comum)
A relação envolve duas entidades distintas.
TERNÁRIO
Envolve três entidades numa única relação ou relacionamento
TIPOS DE RELACIONAMENTOS - quanto à cardinalidade da relação
A cardinalidade especifica o número mínimo e o máximo de instâncias/ocorrênciasque uma entidade pode participar em um relacionamento.
RELACIONAMENTO de Um-para-Um ( 1: 1)
Uma instância de uma entidade se relaciona com apenas uma instância de outra entidade, e vice-versa.
EXEMPLO
Relacionamento UNÁRIO
Relacionamento BINÁRIO
Um funcionário chefia um Departamento
e Um Departamento é chefiado por um Funcionário
RELACIONAMENTO de Um-para-Muitos ( 1: M ) (lê-se 1 para M)
EXEMPLO
Relacionamento UNÁRIO
Employer manages Employer
Aqui, Employer é a mesma entidade nos dois lados do relacionamento, mas com papéis diferentes.
Como explicar em palavras:
Um Employer pode gerir vários Employers,
mas cada Employer é gerido por um Employer.
Ou seja:
1 (lado 1) → o gerente
M (lado muitos) → os subordinados
Relacionamento BINÁRIO
Uma instância de uma entidade se relaciona com várias instâncias de outra entidade, mas cada instância da segunda entidade se relaciona com apenas uma instância da primeira.
Um Funcionário trabalha num Departamento
Um Departamento trabalham muitos Funcionários
RELACIONAMENTO de Muitos-para-Muitos ( M: M ) ou ( N: M )
Relacionamento BINÁRIO
Várias instâncias de uma entidade se relacionam com várias instâncias de outra entidade.
EXEMPLO 1
Um Departamento pode trabalhar em vários Projetos
Um Projeto pode estar associado a vários Departamentos
Quanto à obrigatoriedade dos elementos de
uma entidade participarem, ou não, no
relacionamento com outra entidade, temos que:
Participação obrigatória de ambas as entidades
Participação não obrigatória de uma das duas
entidades
Participação não obrigatória de nenhumadas
entidades
IMPLEMENTAÇÃO DE RELACIONAMENTOS
A cardinalidade mínima e máxima do relacionamento são fatores determinantes para indicar se deverá ser implementado:
nova Tabela
Adição de colunas/atributos em uma das entidades participantes
Fusão de tabelas de entidades
Modelo Conceitual (DER)
Modelo lógico (Modelo Relacional )
Entidade -- »
Tabela
Atributo -- »
Coluna ou Campo da tabela
Atributo Identificador -- »
Chave Primária (PK)
Relacionamento 1:M -- »
novo campo Chave Estrangeira (FK)
Relacionamento M:M -- »
surge Nova Tabela do relacionamento
Situação 1
Relacionamento binário 1:1 com participação obrigatória em ambas entidades.
(mínimo, máximo)
( 1 , 1 )
um cidadão tem um e sóum cartão de cidadão;
um cartão de cidadão pertence a um e só umcidadão;
Neste primeiro caso, é necessária apenas uma tabelapara traduzir este tipo de relacionamento, em que essa tabela deverá incluir todos os atributos das duas entidades.
Fusão ou Junção das 2 entidades ->> implementação numa única tabela
Situação 2
Relacionamento 1:1 com participação obrigatória em apenas uma entidade.
um Diretor pode dirigir 0 ou 1departamento;
um Departamento pode ser dirigido por um e sóum Diretor;
Neste caso são necessáriasduas tabelas, uma para cada entidade.
Adição de coluna em uma das entidades participantes - Chave Estrangeira(Foreign Key - FK)
Num relacionamento 1:1, a conversão para modelo relacional com adição de FK coloca a chave primária de uma tabela como estrangeira na outra tabela
Se for obrigatória ((1,1)), a FKdeve ser colocada nolado opcional para evitar valores nulos.
OUTRO EXEMPLO
DER: Funcionário (1,1) --- possui ou utiliza --- (0,1) Carro da Empresa.
ENTIDADES
Funcionario (CodFunc, nome, ...)
Carro (CodCarro, modelo, Matrícula)
Implementação no Modelo Relacional:
TABELAS
Funcionario (CodFunc, nome, ...)
Carro (CodCarro, modelo, Matrícula, CodFuncFK)
Adição de coluna/campo na entidades do lado opcional - adicionar a Chave Estrangeira(Foreign Key - FK)
Situação 3
Relacionamento 1:1 sem participação obrigatória em nenhuma entidade
(ambas entidades com participação opcional)
Um Diretor utiliza 0 ou 1Gabinete;
um Gabinete pode ser utilizado por 0 ou 1 Diretor;
Neste caso, são necessárias duas tabelas, uma para cada entidade.
Adição de coluna em uma das entidades participantes - Chave Estrangeira (FK)
Situação 4
Relacionamento 1: M com participação obrigatória na entidade do lado M.
um Aluno matricula-se 0 ou 1 Curso;
um Curso tem matriculado 1 ou váriosAlunos ;
Neste caso são necessáriasduas tabelas, uma tabela para cada entidade.
A chave estrangeira da entidade do lado 1 fica na tabela do lado M
Adição de colunaChave Estrangeira (FK) na tabela do lado M
Situação 5
Relacionamento 1:Msem participação obrigatória na entidade do lado M.
um fornecedor fornece 0 ou váriosprodutos;
um produto pode ser fornecido por 0 ou 1fornecedor;
NO GERAL, são necessárias duas tabelas, uma para cada entidade.
Mas poderá ser utilizado 3 tabelas.
A chave estrangeira da entidade do lado 1 fica na tabela do lado M
Adição de colunaChave Estrangeira (FK) lado M
IMPLEMENTAÇÃO no MODELO RELACIONAL
Cada Entidade será implementadas em TABELA com adição do campo chave estrangeira
Entidade Fornecedores (CodFornecedor (PK), Nome, ...): vai dar origem à Tabela fornecedores.
Entidade Produtos (CodProduto, Nome, ..., CodFornecedorFK): vai dar origem à Tabela produtos.
Situação 6
Relacionamento M:M paraqualquer que seja a participação - sempre três tabelas
Em qualquer relacionamentos binário do tipo M:M são necessáriassempre três tabelas,
uma tabela para cada ENTIDADE e uma nova tabela para o relacionamento entre as entidades.
Relacionamento M:M para qualquer que seja a participação.
um cliente pode comprar 0 ou vários produtos;
um produto pode ser comprado por 0 ou váriosclientes;
um cliente pode comprar 1 ou vários produtos;
um produto é comprado por 0 ou váriosclientes;
No Diagrama Entidade Relação - DER com relacionamento M:M
IMPLEMENTAÇÃO MODELO RELACIONAL – Tabelas e Chaves
3 TABELAS com campos e respetivas chaves primárias e estrangeiras
TABELA CLIENTES;
TABELA PRODUTOS ;
TABELA COMPRAS (tabela do relacionamento)
Criação de Nova tabela do relacionamento "COMPRAS" coma 2 chaves estrangeiras (uma de cada uma das entidades: id_clienteFK, id_produtoFK)e com outros atributosid_compra(Chave Primária PK) e quantidade, data_compra, etc
Uma entidade fraca é uma entidade que não possui chave primária própria suficiente para identificá-la unicamente.
Ou seja, entidade que não consegue existir sozinha sem depender da entidade forte.
Características principais
Característica
Descrição
Depende de outra entidade
Não existe sozinha
Chave parcial
Tem atributos que não bastam para identificar a entidade
Relacionamento identificador
Relaciona a entidade fraca com a entidade forte
Representação no DER
Retângulo duplo,linha dupla para o relacionamento identificador
Cardinalidade
Normalmente 1:N do forte para o fraco
EXEMPLO simples de um Diagrama ER
Uma farmácia pode vender vários produtos e um produto por uma farmácia
Uma farmácia emprega vários farmacêuticos e um farmacêutico trabalha na farmácia