Programação

terça-feira, 18 de novembro de 2025

Modelação de dados

MODELO CONCEPTUAL  - MODELO LÓGICO -- MODELO FÍSICO 







  
 SGBD  - Sistema de Gestão de Base de Dados - SOFTWARE de Gestão de Bases de Dados (representado por um cilindro). Podemos ter SGBD:

    • SGBD Relacional   
    • SGBD orientado  objetos


 Num SGBD relacional:

   Uma Base de Dados  é um conjunto de dados armazenados em  tabelas relacionadas entre si através de chaves.

  • Cada tabela tem colunas (campos) e linhas (registos)

  • Tabelas podem ligar-se entre si através de chaves primárias e chaves estrangeiras

  • geralmente SQL (Structured Query Language) 


Exemplo: Tabela Alunos com os respetivos 6 campos e 3 registos

 


Registo é uma linha de uma tabela que contém todos os dados referentes a um único elemento da entidade.


Estrutura da tabela (nome dos campos e tipo de dados) em SQL

                          


Num SGBD Relacional os DADOS são ARMAZENADOS em várias tabelas relacionadas entre si

Os retângulos representam as tabelas (onde os dados estão armazenados). As tabelas estão relacionadas entre si.





SGBD Relacional (MariaDB) 
que contém a Base de Dados bdfutebol constituída por a tabela jogadores e tabela Clubes


Exemplos de SGBD relacionais grande porte

  • MySQL

  • MariaDB

  • Microsoft SQL Server

  • PostgreSQL

  • Oracle Database

 

🔧 Para que são utilizados?

 Principalmente para:
  • 👥 Muitos utilizadores em simultâneo
    Centenas ou milhares de pessoas acessam o sistema ao mesmo tempo

  • 📦 Grandes volumes de dados
    Milhões ou bilhões de registos

  • 🔒 Alta segurança
    Controle de acesso de utilizadores, permissões, criptografia, auditoria

  • 🔄 Alta disponibilidade
    Sistemas que não podem parar (24horas/7dias)

  • Alto desempenho
    Consegue processar consultas complexas rapidamente

  • 🔁 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ão                         precisa trabalhar com os comandos 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 orientado a 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 no tipo de dados envolvidos 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 tipotamanhosignificado relações 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







 -->>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)


ENTIDADE CLIENTE ( codCliente, nomeCliente,  morada, CodPostal, etc, )

  

          assim            



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


Tipos de atributos:
  • Atributos Simples ou Atómicos (valor isolado)  Exemplo: peso, preço unitário…
  • Atributos Compostos (valor composto) – Ex: Endereço (RUA + nº +andar + cod_Postal).
  • Atributos Identificadores Identifica inequivocamente um registo numa entidade. Ex: CC, CodCliente - a sublinhado
  • Atributos candidatos – Estão em condições de ser chave primária. Ex: NIF



Domínios dos atributos

Um domínio de um atributo corresponde ao conjunto dos valores possíveis que esse atributo pode assumir.
 Há domínios que são constituídos por nomes, outros são valores numéricos, outros ainda são datas, etc..


Relação ou Relacionamento 

Vamos utilizar a representação com o losango
 






TIPOS DE RELACIONAMENTOS - Quanto ao número de entidades

  • UNÁRIO  - uma entidade se relaciona consigo mesma.
  • BINÁRIO -  relação entre duas entidades distintas.
  • TERNÁRIO  - relação entre três entidades distintas.


UNÁRIO      

Ocorre quando uma entidade se 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

cardinalidade especifica o número mínimo e o máximo de instâncias/ocorrências que 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



    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)
     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.

    EXEMPLO



    Um Departamento tem muitos Funcionários
    Um Funcionário trabalha num Departamento



    • RELACIONAMENTO de Muitos-para-Muitos M: M )   ou ( N: M ) 
      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


    EXEMPLO 2 



    Um Médico consulta vários Pacientes
    Um Paciente é consultado por vários Médicos



    FERAMENTA ONLINE PARA CRIAR DIAGRAMA ER




    REPRESENTAÇÃO DE RELACIONAMENTOS



     

    RELAÇÕES ou RELACIONAMENTO                                CARDINALIDADE

     TRABALHA_PARA(EMPREGADO, DEPARTAMENTO)         N : 1 
    DIRIGE (EMPREGADO, DEPARTAMENTO)                               1:1 
    CONTROLA (DEPARTAMENTO, PROJECTO)                            1: N
    TRABALHA_EM (EMPREGADO, PROJECTO)                           N:N
     



    RELAÇÕES BINÁRIAS quanto à participação das entidades


    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 nenhuma das 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 Relacional (MER Lógico)
    ou (Modelo Entidade - Relacionamento)
    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 Associativa



    Situação 1    
    Relacionamento binário 1:1 com participação obrigatória em ambas entidades.


        (mínimomá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ó um cidadão;

    Neste primeiro caso, é necessária apenas uma tabela para 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 1 departamento;
    • um Departamento pode ser dirigido por um e só um 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 3
    Relacionamento 1:1  sem participação obrigatória em nenhuma entidade
    (ambas entidades com participação opcional)

    • Um Diretor utiliza 0 ou 1 Gabinete;
    • 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ários Aluno ;
    Neste caso são necessárias duas tabelasuma tabela para cada entidade.


    chave estrangeira da entidade do lado 1 fica na tabela do lado M
    • Adição de coluna Chave Estrangeira (FK) lado M

    Situação 5

    Relacionamento 1:M sem participação obrigatória na entidade do lado M.


    • um fornecedor fornece 0 ou vários produtos;
    • um produto pode ser fornecido por 0 ou 1 fornecedor;

    NO GERAL, são necessárias duas tabelas, uma para cada entidade.  


     A chave estrangeira da entidade do lado fica na tabela do lado M
    • Adição de coluna Chave Estrangeira (FK) lado M

    1. Fornecedor (CodFornecedor, Nome, ...):                               Tabela principal de fornecedores.
    2. Produto (CodProduto, Nome, ..., CodFornecedorfk):            Tabela principal de produtos.

    Situação 6       
    Relacionamento M:M para qualquer que seja a participação   -  sempre três tabelas
     

    Em qualquer relacionamentos binário do tipo M:M são necessárias sempre 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ários clientes;

    • um cliente pode comprar 1 ou vários produtos;
    • um produto é comprado por 0 ou vários clientes;



    Criação de Nova tabela do relacionamento com a chaves estrangeirasuma de cada uma das entidades.




     

    EXEMPLO:




    Criação de Nova tabela do relacionamento com a 2 chaves estrangeiras, uma de cada uma das entidades.


    Num relacionamento de M:M é preciso criar a entidade própria do relacionamento ForneceProdutos

    • um Fornecedor  fornece 1 ou vários produtos;
    • um produto pode ser fornecido por 0 ou vários Fornecedores;





    Definição de Entidade Fraca

    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ísticaDescrição
    Depende de outra entidadeNão existe sozinha
    Chave parcialTem atributos que não bastam para identificar a entidade
    Relacionamento identificadorRelaciona a entidade fraca com a entidade forte
    Representação no DERRetângulo duplo, linha dupla para o relacionamento identificador
    CardinalidadeNormalmente 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



    Exemplo de um modelo E-R: