CENTRO UNIVERSITÁRIO CLARETIANO CURSO TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MARCO AURÉLIO DA SILVA, RA 1094854 BANCO DE DADOS SÃO PAULO, SP 2014 Coordenadoria de Educação a Distância – CEAD MARCO AURÉLIO DA SILVA, RA 1094854 BANCO DE DADOS Projeto de prática apresentado para conclusão da disciplina Banco de Dados Orientador: Prof. Geraldo Henrique Neto SÃO PAULO, SP 2014 Coordenadoria de Educação a Distância – CEAD Introdução O presente trabalho tem o objetivo de aplicar os conceitos estudados na disciplina Banco de dados. Foi proposto um o planejamento e desenvolvimento de um Banco de Dados após a apresentação de uma situação. A partir da descrição detalhada da situação foi proposto que se apresente uma solução que envolva a aplicação das técnicas apresentadas durante o curso da disciplina. 1ª Etapa (Compreender a situação) 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, 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. O banco de dados deve manter um cadastro 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. Além disso, todo aluno deverá ter um número de matrícula, que é único. Cada disciplina também terá um código exclusivo. Compreensão da situação Entidades reconhecidas Entidade Atributo Aluno Codigo (chave) Nome (simples) Série (simples) Endereco (composto) Telefone (composto) Disciplina Codigo (chave) Nome (simples) Código (chave) Nome (simples) Endereco (composto) Telefone (composto) Codigo_aluno (chave) Codigo_diiscplina (chave) Professor Nota Relacionamentos Relacionamento Cardinalidade de mapeamento Aluno matricula-se na Disciplina (1 – M) um aluno para muitas disciplinas Professor leciona Disciplina (M–1) muitas disciplinas para um professor Aluno possui Nota (1 – M) um aluno para muitas disciplinas 2ª Etapa Seu banco de dados deverá atender às necessidades descritas anteriormente. Com base nesses dados, faça o projeto conceitual do banco de dados (DE-R – Diagrama Entidade-relacionamento). 3ª Etapa Com base no DE-R da etapa anterior, faça o mapeamento para o modelo relacional e aplique nessas relações as formas normais. 1. Identificando as entidades: Aluno (codigo, serie, nome, endereco, telefone) Notas (codigoAluno, codigoDiscplina, nota_aluno, data_nota_aluno) Disciplina (codigo, nome) Professor (codigo, nome, endereco, telefone) 2. Identificando as chaves estrangeiras CE CE Aluno_matricula (codigoAluno, codigoDisciplina) CE CE Aluno_possui_nota(codigoAluno, codigoDisciplina) CE CE Professor_leciona(codigoProfessor, codigoDisciplina) Segundo as informações coletadas o Banco de dados teria a seguinte estrutura: Aluno (codigo, serie, nome, endereco, telefone) Notas (codigoAluno, codigoDiscplina, nota_aluno, data_nota_aluno) Disciplina (codigo, nome) Professor (codigo, nome, endereco, telefone) Aluno_matricula (codigoAluno, codigoDisciplina) Aluno_possui_nota(codigoAluno, codigoDisciplina) Professor_leciona(codigoProfessor, codigoDisciplina) 4ª Etapa Nesta etapa, com base no modelo relacional elaborado na 3ª etapa, faça o projeto físico com os comandos da linguagem SQL estudado na Unidade 4 desta disciplina. CRIANDO A TABELA ALUNO CREATE TABLE ALUNO ( CODIGO INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, SERIE INT(1) NOT NULL, NOME VARCHAR(150) NOT NULL, ENDERECO VARCHAR(150) NOT NULL, TELEFONE VARCHAR(15) NOT NULL, PRIMARY KEY (`CODIGO`) ); CRIANDO A TABELA DISCIPLINA CREATE TABLE DISCIPLINA( CODIGO INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, NOME VARCHAR(100), PRIMARY KEY (CODIGO) ); CRIANDO A TABELA NOTAS CREATE TABLE NOTAS( CODIGOALUNO INT(10) NOT NULL, CODIGODISCIPLINA INT(10) NOT NULL, NOTA_ALUNO FLOAT NOT NULL, DATA_NOTA_ALUNO DATE NOT NULL, PRIMARY KEY (CODIGOALUNO, CODIGODISCIPLINA), FOREIGN KEY (CODIGOALUNO) REFERENCES ALUNO(CODIGO), FOREIGN KEY (CODIGODISCIPLINA) REFERENCES DISCIPLINA(CODIGO) ); CRIANDO A TABELA PROFESSOR CREATE TABLE PROFESSOR( CODIGO INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, NOME VARCHAR(150) NOT NULL, ENDERECO VARCHAR(105) NOT NULL, TELEPHONE VARCHAR(15) NOT NULL, PRIMARY KEY (CODIGO) ); CRIANDO A TABELA ALUNO_MATRICULA CREATE TABLE ALUNO_MATRICULA( CODIGOALUNO INT(10) NOT NULL, CODIGODISCIPLINA (10) NOT NULL, PRIMARY KEY (CODIGOALUNO, CODIGODISCIPLINA), FOREIGN KEY (CODIGOALUNO) REFERENCES ALUNO(CODIGO), FOREIGN KEY (CODIGODISCIPLINA) REFERENCES DISCIPLINA(CODIGO) ); CRIANDO A TABLEA ALUNO_POSSUI_NOTA CREATE TABLE ALUNO_POSSUI_NOTA( CODIGOALUNO INT(10) NOT NULL, CODIGODISCIPLINA INT(10) NOT NULL, PRIMARY KEY (CODIGOALUNO, CODIGODISCIPLNA), FOREIGN KEY (CODIGOALUNO) NOTAS(CODIGOALUNO), FOREIGN KEY (CODIGODISCIPLINA) NOTAS(CODIGODISCIPLINA) REFERENCES REFERENCES ); CRIANDO A TABELA PROFESSOR_LECIONA CREATE TABLE PROFESSOR_LECIONA( CODIGOPROFESSOR INT(10) NOT NULL, CODIGODISCIPLINA INTE(10) NOT NULL, PRIMARY KEY (CODIGOPROFESSOR, CODIGODISCIPLINA) FOREIGN KEY (CODIGOPROFESSOR) REFERENCES PROFESSOR(CÓDIGO), FOREIGN KEY DISCIPLINA(CÓDIGO) ); (CODIGODISCIPLINA) REFERENCES 5ª Etapa Na 5ª etapa, sua atividade já estará concluída. Assim, copie todos os arquivos utilizados para uma pasta, compactando-a e postando-a no Portfólio. 1. Conclusão O estudo da disciplina de Banco de dados permitiu que compreendesse a importância de um projeto bem elaborado e consistente. Não basta apenas dominar as técnicas de construção de Bancos de dados, mas é preciso um planejamento prévio e antever todas as possibilidades de ampliação e manutenção de um sistema no futuro. A modelagem de banco de dados é uma técnica às vezes negligenciada pelos profissionais de TI. O estudo da disciplina me alertou sobre a correta modelagem de bancos de dados e me apresentou as técnicas que colaboram para o uso correto de padrões. 2. Bibliografia Caderno de referência