Modelagem de banco de dados

(para o techinicians in a square-balls’ world)

 

A necessidade de negócios

Considere que você esteja projetando um banco de dados para a secretaria de uma escola ou universidade da sua cidade.

Esse banco de dados deverá conter informações sobre os alunos, os pais dos alunos, as disciplinas em que cada aluno está matriculado (imagine que alunos da mesma série podem estar matriculados em diferentes matérias), os professores e as notas dos alunos em cada matéria e em cada bimestre, bem como todo o histórico do aluno na escola. O histórico inclui as notas do aluno em cada matéria em cada um dos anos em que ele esteve na escola. O banco de dados deve manter um cadastro de alunos, de pais de alunos, de disciplinas ofertadas, de notas de cada aluno em cada disciplina e de qual disciplina cada aluno está matriculado.

O sistema deverá, ainda, ser capaz de fornecer, a qualquer momento, a situação atual do aluno ou todo o seu histórico, mas não deverá permitir que seja cadastrado um aluno sem que antes sejam cadastrados os seus pais. Além disso, todo aluno deverá ter um número de matrícula, que é único. Cada disciplina também terá um código exclusivo.

Além disso, o sistema também deverá ser capaz de emitir não só relatórios com as notas por turma e por bimestre, como também as médias para cada disciplina.

Modelo Conceitual

clip_image002

Modelo Lógico

clip_image004

Modelo Físico

CREATE TABLE Aplicação (

IDAplicacao BigInt PRIMARY KEY,

DataInicio Date,

DataFim Date

)

CREATE TABLE Turma (

IDTurma varchar(100) PRIMARY KEY,

Apelido varchar(100),

DataInicio Date,

DataFim Date

)

CREATE TABLE Disciplina (

NomeDisciplina varchar(100),

CODDisciplina varchar(100) PRIMARY KEY,

CargaHoraria BigInt

)

CREATE TABLE Professor (

IDProfessor BigInt PRIMARY KEY,

NomeProfessor varchar(100),

DataAdmissao Date,

email varchar(100)

)

CREATE TABLE Aluno (

DataNascimento Date,

RA varchar(100) PRIMARY KEY,

NomeAluno varchar(100),

email varchar(100)

)

CREATE TABLE Responsável (

CPF varchar(100),

ID BigInt,

Nome varchar(100),

Conjuge varchar(100),

email varchar(100)

)

CREATE TABLE Endereco (

Numero varchar(100),

Bairro varchar(100),

CEP varchar(100),

Logradouro varchar(100),

Cidade varchar(100),

UF varchar(100)

)

CREATE TABLE cursa (

RA varchar(100),

CODDisciplina varchar(100),

IDAplicacao varchar(100),

PRIMARY KEY(RA,CODDisciplina,IDAplicacao)

)

CREATE TABLE Leciona (

CODDisciplina varchar(100),

IDProfessor BigInt,

FOREIGN KEY(CODDisciplina) REFERENCES Disciplina (CODDisciplina),

FOREIGN KEY(IDProfessor) REFERENCES Professor (IDProfessor)

)

CREATE TABLE Pertence (

IDTurma varchar(100),

RA varchar(100),

FOREIGN KEY(IDTurma) REFERENCES Turma (IDTurma),

FOREIGN KEY(RA) REFERENCES Aluno (RA)

)

CREATE TABLE Relação_2+Desempenho (

IDAplicacao BigInt,

RA varchar(100),

IdRegistroDesempenho BigInt PRIMARY KEY,

NotasConceito1b BigInt,

NotasConceito2b BigInt,

NotasConceito3b BigInt,

NotasConceito4b BigInt,

FOREIGN KEY(IDAplicacao) REFERENCES Aplicação (IDAplicacao),

FOREIGN KEY(RA) REFERENCES Aluno (RA)

)

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s