projeto de banco de
Padronização e dados de:
Sistematização do Processo • Um bom levantamento de dados, adequada
de Desenvolvimento de definição de requisitos e regras de negócios?
• Uma adequada identificação dos objetos a
Projetos de Banco de Dados modelar?
• Não propagação de êrros para fases
José Ferreira Prata posteriores do projeto?
1
Processo Padrão Processo Padrão
10 passos Os 10 passos-continuação
1
2
Mapear Conceitual para Mapear conceitual para
Relacional Relacional
– Para cada relacionamento binário 1:1, escolher – Para cada atributo multivalorado crie uma nova
uma das relações para receber a chave primária da relação cujo relacionamento será 1:M com a
outra entidade como chave estrangeira. entidade forte e aplique a regra de migração da
chave estrangeira.
– Criar uma nova relação para cada relacionamento
– Observe se existem relacionamentos ternários e
binário M:N e incluir nessa nova relação as chaves
crie uma nova relação para receber as chaves
primárias das entidades fortes como chaves primárias das entidades fortes como chaves
estrangeiras. Eventualmente essas chaves estrangeiras.
estrangeiras podem se tornar uma chave primária – Caso seja utilizado o modelo ERE ( Entidade-
composta. Relacionamento Estendido ) aplique os conceitos
de generalização, especialização, etc.
Sistematizando Exemplo
Uma escola deseja disponibilizar em uma intranet as notas de seus alunos por matéria
e por bimestre, sendo que um semestre sempre terá duas notas bimestrais e a média
final do semestre será calculada pelo sistema. Na página, o aluno poderá visualizar o
código da matéria, a descrição da matéria, bimestre, nota e no final do semestre a
• Exemplo de aplicação dos 10 passos respectiva média final. Também poderá consultar quais matérias cursa no semestre, e
podem ser encontrados na edição 16 mês respectivos professores. O professor pode visualizar quais matérias leciona em cada
curso e lançar as notas de cada aluno. A escola também deseja extrair relatórios ou
de Janeiro e edição 18 mês de Março da pesquisas sobre as matérias que o aluno cursa e vice-versa e ainda quais professores
lecionam que matéria e vice-versa. Para que não haja confusão entre matérias com
SQL Magazine mesmo nome, mas em cursos e conteúdos diferentes, e ainda considerando que podem
existir várias turmas do mesmo curso no mesmo semestre, todas as matérias possuirão
um código próprio que a distinguirá por curso e por turma. Assim matemática I da turma
A do curso de Administração terá um código de matéria diferente de matemática I do
mesmo curso de Administração da turma B. Será diferente também da matemática I de
qualquer outro curso. Desta forma cada código de matéria terá somente um professor
responsável.
3
1 - Descartando substantivos que se transformados em entidade teriam apenas 5 - Descartando substantivos que se transformados em entidade teriam apenas
um atributo um atributo
Resultado: bimestre,código da matéria, descrição da matéria. Resultado: bimestre,código da matéria, descrição da matéria.
2 - Listando os substantivos que se tornarão entidades 6- Listando os substantivos que se tornarão entidades
Resultado: curso, aluno, matéria, nota, professor. Resultado: curso, aluno, matéria, nota, professor.
3 - Descartando substantivos que servem apenas para entendimento do problema 7 - Identificando os relacionamentos físicos e definindo seus tipos, através de
Resultado: intranet, semestre, sistema, matemática I, administração. verbos ou preposições que demonstrem relações de dependência ou existência
entre as entidades
4 - Descartando objetos que são referência a uma futura aplicação Resultado: aluno possui nota, matéria tem nota, aluno cursa matéria, professor
Resultado: média final do semestre, relatório, página, pesquisa. leciona matéria, matéria pertence curso.
4
Modelo Conceitual contendo os Relações resultantes do
atributos de cada entidade. mapeamento
Conceitual_Relacional
codigo_turma nome_turma
Turma M
• Turma(codigo_turma,nome_turma,codigo_curso)
M pertence codigo_curso • Matéria( codigo_materia, nome_materia, registro_professor,
ligada
1 nome_curso codigo_curso)
M
endereço_aluno
codigo_materia
nome_matéria
• Turma_Matéria(codigo_turma, codigo_materia)
nome_aluno Curso
registro_aluno
1
• Aluno(registro_aluno, nome_aluno, endereço_aluno)
N M M
Aluno cursa Matéria pertence
• Nota(código_materia, registro_aluno, bimestre,
1 1
1
M 1
leciona nota_aluno_materia)
possui
M
Nota
M
tem
Professor
1 • Curso( codigo_curso, nome_curso )
nota_aluno_matéria • Professor( registro_professor, nome_professor)
registro_Professor
bimestre
nome_Professor
Turma
Codigo_turma #
Nome_turma 0..*
Codigo_Curso $
0..*
1..1
Turma_Matéria
Curso
Código_turma
Codigo_curso #
Código_materia
Nome_curso
1..*
1..1
Matéria
Aluno 0..* 1..* Código_materia #
Registro_aluno Nome_materia
Nome_aluno 1..*
Registro_professor $
Endereço_aluno Código_curso $
0..*
1..1
Nota
Bimestre Professor
Nota_aluno_materia Registro_professor
Registro_aluno $ Nome_professor
Código_materia $