Modelos de Dados

Autor

Douglas Braga

Visão dos Dados

Um sistema de banco de dados é uma coleção de dados inter-relacionados e um conjunto de programas que permitem aos usuários acessar e modificar esses dados. Um dos principais objetivos de um sistema de banco de dados é fornecer aos usuários uma visão abstrata dos dados.

Modelo de dados é uma coleção de ferramentas conceituais para descrever:

  • Os dados
  • Os relacionamentos entre os dados
  • A semântica dos dados
  • As restrições sobre os dados

Abstração de dados oculta a complexidade das estruturas internas de representação por meio de diferentes níveis de abstração.

Principais Modelos de Dados

  • Modelo Relacional
  • Modelo Entidade-Relacionamento (ER) — principalmente para projeto de banco de dados
  • Modelos Baseados em Objetos (orientado a objetos e objeto-relacional)
  • Modelo Semiestruturado (XML)
  • Modelos mais antigos (legados): Modelo em Rede e Modelo Hierárquico

Modelo Relacional

Todos os dados são armazenados em diversas tabelas. Abaixo, um exemplo de dados tabulares no modelo relacional:

Tabela professor
id_prof nome id_escola ch_semanal salario
21200001 Eduarda Souza 21 20 3200
21400002 Felipe Araujo 21 40 6400
31200001 Gustavo Costa 31 20 3300
31400002 Helena Carvalho 31 40 6700
31200003 Igor Melo 31 20 3100
11400001 Bruno Teixeira 11 40 6500
11400002 Carla Pinto 11 40 6600

O modelo relacional foi proposto por Ted Codd (Prêmio Turing ACM, 1981).

Um Banco de Dados Relacional de Exemplo

O banco de dados universitário utilizado ao longo deste material é composto pelas seguintes tabelas:

Tabela centro

id_centro sigla nome_centro
1 COCHCMA Ciências Humanas, Cidadania e Meio Ambiente
2 COEMAG Centro de Educação, Magistério e Artes
3 COETI Centro de Engenharias, Tecnologia e Inovação

Tabela escola

id_escola sigla nome_escola id_centro
11 ESG Escola Superior de Gestão 1
21 EEMA Escola de Educação, Magistério e Arte 2
31 ESETI Escola Superior de Engenharias, Tecnologia e Inovação 3

Tabela curso

id_curso sigla_curso nome_curso id_escola n_semestres carga_horaria tipo_curso
111 ECO Ciências Econômicas 11 8 3000 bacharelado
311 ENS Engenharia de Software 31 8 3200 bacharelado
211 PED Pedagogia 21 8 3410 licenciatura

Tabela aluno (amostra)

id_aluno nome id_curso ano_ingresso
2023311001 Matheus Silva 311 2023
2023311002 Larissa Araújo 311 2023
2024311001 Pedro Carvalho 311 2024
2023111001 Beatriz Carvalho 111 2023
2023211001 Amanda Moreira 211 2023

Tabela disciplina (amostra)

id_disciplina nome_disciplina id_curso semestre carga_horaria
3110201 Bases da Eng. de Software 2 311 2 150
3110202 Projeto Aplicado 2 - site WEB 311 2 120
1110201 História Econômica Geral 111 2 75
2110201 Desenvolvimento Humano 211 2 60