Diagrama de Schema
Quando um banco de dados possui várias relações interconectadas por chaves estrangeiras, é útil visualizar sua estrutura de forma gráfica por meio de um diagrama de schema.
O que é um Diagrama de Schema?
Um diagrama de schema é uma representação visual da estrutura de um banco de dados. Ele mostra as relações (tabelas), seus atributos, as chaves primárias (sublinhadas ou destacadas) e as chaves estrangeiras (indicadas por setas entre tabelas).
Convenções:
- Chave primária: atributo sublinhado
- Chave estrangeira: seta saindo do atributo e apontando para a relação referenciada
Diagrama do Banco de Dados da UnDF
Leitura do Diagrama
- Atributo sublinhado = chave primária (identifica unicamente cada tupla)
- Seta = chave estrangeira (o atributo referencia a chave primária da tabela apontada)
centroeescolaformam a hierarquia organizacional da UnDFcursoeprofessorreferenciamescola;alunoedisciplinareferenciamcursoministraé a relação de associação entreprofessoredisciplina(com chave composta de 4 atributos)matricula_disciplinaregistra as matrículas de alunos em turmas específicas e referencia tantoministraquantoalunoprereqé uma relação de autorreferência sobredisciplina: ambos os atributos da chave composta (id_disciplinaeid_prereq) são chaves estrangeiras que apontam para a mesma tabeladisciplina
Para Praticar
1. Leitura do diagrama. Com base no diagrama de schema:
- Quais tabelas possuem chave primária composta (mais de um atributo sublinhado)?
- Quantas tabelas referenciam diretamente
disciplinapor chave estrangeira? - Qual é o “caminho” de chaves estrangeiras de
matricula_disciplinaatécentro?
ministra(4 atributos: id_disciplina, ano, semestre, turma),matricula_disciplina(5 atributos) eprereq(2 atributos).Três:
ministra(via id_disciplina),prereq(via id_disciplina) eprereq(via id_prereq) — ou seja,ministraeprereqreferenciamdisciplina.matricula_disciplina→ministra→disciplina→curso→escola→centro. São 5 saltos.
2. Diagrama de uma nova tabela. A UnDF deseja registrar as salas de aula do campus. Cada sala pertence a uma escola e possui número, capacidade e tipo (laboratorio, auditorio, sala_aula). Escreva o schema dessa nova relação e indique qual FK ela teria.
\[sala(\underline{id\_sala},\ numero,\ capacidade,\ tipo,\ id\_escola)\]
A chave estrangeira seria id_escola → escola.id_escola. A tabela ministra poderia então referenciar sala.id_sala em vez de armazenar o nome da sala como VARCHAR.