Objetivos

  • Compreender o conceito de modelo de dados.
  • Identificar tipos de modelos (lógicos e físicos).
  • Explorar linguagens DDL e DML.
  • Entender a definição e uso de SQL.

O que é um Modelo de Dados?

Um modelo de dados é um conjunto de ferramentas conceituais para descrever dados, relacionamentos, semântica e regras de consistência. Ele serve como ponte entre o mundo real e a implementação técnica do banco de dados.

Classificações principais:

  1. Modelos lógicos com base em objetos: Focam em entidades e relacionamentos.
  2. Modelos lógicos com base em registros: Usam tabelas e campos.
  3. Modelos físicos: Descrevem armazenamento em disco, índices, etc.

Modelos Lógicos com Base em Objetos

Modelo de Entidade de Relacionamento (E-R)

O mais usado. Representa entidades, atributos e relacionamentos.

erDiagram ALUNO { int id_aluno PK string nome string matricula date data_nascimento string email } DISCIPLINA { int id_disciplina PK string codigo string nome int carga_horaria string ementa } TURMA { int id_turma PK string codigo_turma string horario string sala int ano_semestre } PROFESSOR { int id_professor PK string nome string departamento } MATRICULA { int id_matricula PK date data_matricula string situacao float nota_final } ALUNO ||--o{ MATRICULA : "faz" TURMA ||--o{ MATRICULA : "contém" DISCIPLINA ||--o{ TURMA : "tem" PROFESSOR ||--o{ TURMA : "ministra" MATRICULA }o--|| TURMA : "pertence_a" MATRICULA }o--|| ALUNO : "feita_por"

Modelo Orientado a Objetos

Integra conceitos de OOP (herança, encapsulamento).

classDiagram direction TB Pessoa <|-- Aluno Pessoa <|-- Professor Aluno "1" *-- "many" Matricula : possui Professor "1" *-- "many" Turma : ministra Turma "1" *-- "1" Disciplina : é_de Turma "1" *-- "many" Matricula : tem Matricula "1" *-- "1" Aluno : pertence_a class Pessoa { -int id -string nome -string email } class Aluno { -string matricula -date dataIngresso +calcularCR() float } class Professor { -string departamento +criarTurma(Disciplina) Turma } class Disciplina { -string codigo -string nome -int cargaHoraria } class Turma { -string codigo -string horario +matricularAluno(Aluno) boolean } class Matricula { -date data -string situacao +cancelar() boolean }

Esta disciplina foca no Modelo E-R devido à sua simplicidade e poder para bancos relacionais.


Linguagens de Banco de Dados

Duas linguagens principais interagem com o modelo de dados:

  1. Linguagem de Definição de Dados (DDL): Define a estrutura do banco (tabelas, índices, restrições).
  2. Linguagem de Manipulação de Dados (DML): Manipula os dados (inserir, consultar, atualizar, excluir).

DDL - Principais Comandos

  • CREATE: Cria objetos (tabelas, índices).
  • DROP: Remove objetos.
  • ALTER: Modifica objetos existentes.

Exemplo:

CREATE TABLE aluno (
    id_aluno INT,
    nome VARCHAR(50)
);

ALTER TABLE aluno ADD data_nascimento DATE;

DROP TABLE aluno;

DML - Principais Comandos

  • INSERT: Adiciona registros.
  • UPDATE: Modifica registros.
  • DELETE: Remove registros.
  • SELECT: Consulta dados.

Exemplo:

INSERT INTO aluno VALUES (1, 'Aragorn');

UPDATE aluno SET data_nascimento ='2025-01-24' WHERE id_aluno = 1;

DELETE FROM aluno WHERE id = 1;

SELECT * FROM aluno;

O que é SQL?

SQL (Structured Query Language) é a linguagem padrão para bancos de dados relacionais. Declarativa, permite consultas e manipulações inspiradas na álgebra relacional.

Ferramentas como SQL Developer oferecem interface gráfica para executar comandos SQL, facilitando o aprendizado e depuração.

Benefícios dos Modelos de Dados

  • Estruturação clara dos dados.
  • Facilita comunicação entre desenvolvedores e usuários.
  • Suporte a integridade e consistência.
  • Base para implementação eficiente em SGBDs.