Projeto de Banco de Dados

19
1 UNIVERSIDADE ESTADUAL DE MONTES CLAROS- UNIMONTES CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CCET DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO - DCC SISTEMAS DE INFORMAÇÃO GEISA MARTINS CRUZ JHENNYFER EMANUELE PROJETO DE UM SISTEMA PARA GERENCIAMENTO DE TURMAS E COMPROMISSOS DE UM PROFESSOR. MONTES CLAROS NOVEMBRO, 2014

description

Geisa MartinsJhennyfer Emanuelle

Transcript of Projeto de Banco de Dados

Page 1: Projeto de Banco de Dados

1

UNIVERSIDADE ESTADUAL DE MONTES CLAROS- UNIMONTES

CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CCET

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO - DCC

SISTEMAS DE INFORMAÇÃO

GEISA MARTINS CRUZ

JHENNYFER EMANUELE

PROJETO DE UM SISTEMA PARA GERENCIAMENTO DE

TURMAS E COMPROMISSOS DE UM PROFESSOR.

MONTES CLAROS

NOVEMBRO, 2014

Page 2: Projeto de Banco de Dados

2

Sumário 1. Resumo ............................................................................................................................... 3

2. Introdução ............................................................................................................................4

2.1.Banco de Dados .................................................................................................................4

2.2.Sistema Gerenciador de Banco de Dados (SGDB) ...........................................................4

2.3.Modelo de dados ................................................................................................................4

3. Definição do Sistema ...........................................................................................................5

4. Dicionário de Dados ...........................................................................................................6

5. Modelagem (Entidade-Relacionamento ou UML) .............................................................7

6. Querys (Sentenças SQL) para criação das tabelas ..............................................................8

7. Sentenças SQL (cadastros, exclusão e alteração) ...............................................................9

8. Sentenças SQL para listagens simples ..............................................................................14

9. Tabelas do Banco de Dados ...............................................................................................17

10. Conclusão ..........................................................................................................................18

11. Referências ........................................................................................................................19

Page 3: Projeto de Banco de Dados

3

Resumo

Atualmente os computadores e a internet não se resumem somente ao entretenimento

como, por exemplo, no inicio da década de 90. A informática surgiu como um novo conceito de

negócio, gestão, administração.

Baseando nessa nova realidade propomos este trabalho, mostrando que a informática

pode ir mais além que simples momentos de diversão, como fazer o gerenciamento de

informações e facilitar o uso destas, garantido a segurança dos dados.

O Diário é um sistema pessoal do professor para gerenciamento de sua classe de alunos,

controle do educando e produtividade em ambiente educacional; para escolas de todos os níveis,

desenvolvido para ser compatível com qualquer plataforma de computadores. Ou seja, qualquer

organização e/ou professor pode adquirir uma versão para informatizar os seus processos e

explorar todos os benefícios que a Internet e os sistemas de informação podem trazer.

Dessa maneira dimensionamos as necessidades do professor, analisamos a sua estrutura e

recursos físicos para então projetarmos um sistema de informação moldado para o professor,

capaz de suprir as suas necessidades.

Page 4: Projeto de Banco de Dados

4

Introdução

Antes de definirmos o sistema é importante ressaltar alguns conceitos básicos para

melhor compreensão do projeto de Banco de Dados. São apresentados conceitos como banco de

dados que muitas vezes é a parte mais importante do projeto, pois será onde as informações serão

armazenadas; sistema de gerência de banco de dados e modelo de dados. Além disso, é fornecida

uma visão geral do projeto de banco de dados

Os leitores que já conhece m os fundamentos de banco de dados provavelmente poderão

passar diretamente para a definição do sistema.

1.1. Banco de Dados

Definições Preliminares:

[Chu, 1985]: Um banco de dados é um conjunto de arquivos relacionados entre si.

[Date, 1975]: Um banco de dados é uma coleção de dados operacionais armazenados que

são usados pelas aplicações de uma determinada organização.

De acordo com essas definições podemos afirmar que Banco de Dados é um conjunto de

dados integrados que tem por objetivo atender a uma comunidade de usuários.

1.2. Sistema Gerenciador de Banco de Dados (SGDB)

Um sistema de gerência de banco de dados (SGBD) é um conjunto de programas que

permite criar e manter bancos de dados. O mesmo incorpora as funções de definição,

recuperação e alteração de dados em um banco de dados.

1.3. Modelo de Dados

Um modelo de (banco de) dados é uma descrição dos tipos de informações que estão

armazenadas em um banco de dados.

No projeto de banco de dados, normalmente são considerados dois níveis de abstração de

modelo de dados, o do modelo conceitual e o do modelo lógico. No decorrer do projeto

falaremos especificamente de cada um.

Page 5: Projeto de Banco de Dados

5

Definição do sistema

O Diário (Daily) foi criado para facilitar o gerenciamento e controle de uma classe de

alunos. Ou seja, para auxiliar professores a gerenciar notas, frequências e compromissos de uma

turma a qual o professor (usuário) leciona.

O software futuramente trará ao usuário a possibilidade de ser usado tanto off-line quanto

na Nuvem. No entanto primeiramente passará por uma fase de teste onde será utilizado somente

o modo off-line.

O sistema disponibilizará funções como: cadastrar usuário, cadastrar disciplina, agendar

compromissos (provas, atividades, aulas), separar compromissos por marcadores, lembrar

compromissos, enviar arquivos (Nuvem), consultar e alterar freqüência, nota e situação de aluno.

Pensando na segurança da informação, criamos uma base de dados para controlar

redundância dos dados, armazenamento persistente dos dados, processamento eficiente de

consultas, manutenção de backup e recuperação de falhas, etc.

É importante destacar também que para garantir os três princípios básicos da segurança

da informação: integridade, disponibilidade e autenticidade das informações; primeiramente para

utilizar o sistema será solicitado login do usuário.

Como ferramenta de desenvolvimento utilizamos o Wamp para o BD, Mysql como nosso

sistema gerenciador de banco de dados (SGDB), SQL como linguagem, e brModelo como

ferramenta para desenvolver os diagramas.

Page 6: Projeto de Banco de Dados

6

Dicionário de dados

Professor

Descrição Restrições Tamanho Tipo Campo Chave

Código único do professor NOT NULL 3 Integer Cod_Prof Primary key

Nome do Professor NOT NULL 30 Varchar Nome

Turma

Chave Campo Tipo Tamanho Restrições Descrição

Primary Key Cod_Turma Integer 3 NOT NULL Código da turma

Nome Varchar 10 NOT NULL Nome da turma

Disciplina Varchar 20 NOT NULL Nome da disciplina

Foreign key Cod_Prof

Integer

integer 3 NOT NULL Código do professor da turma

Aluno

Chave Campo Tipo Tamanho Restrições Descrição

Primary Key Mat_aluno integer 5 NOT NULL Matrícula do aluno

Nome varchar 30 NOT NULL Nome do aluno

Nota decimal 5,2 NOT NULL Nota total de atividades do

aluno

Prova_final decimal 5.2 NOT NULL

Situacao varchar 20 NOT NULL Situação do aluno: “Aprovado

ou “Reprovado”

Foreign key Cod_Turma integer 3 NOT NULL Código da turma em que o

aluno está matriculado.

Atividade

Chave Campo Tipo Tamanho Restrições Descrição

Codigo Integer 3 NOT NULL Código da atividade

Data Date NOT NULL Data da realização da atividade

Nome Varchar 20 NOT NULL Nome da atividade

Descricao Varchar 30 NOT NULL Descrição da atividade a ser

realizada

Nota Decimal 5.2 NOT NULL Nota de atividades

Fereign key Mat_aluno Integer 5 NOT NULL Matricula do aluno

Page 7: Projeto de Banco de Dados

7

Modelagem (Entidade-Relacionamento ou UML)

Projeto Conceitual

Projeto MER:

Page 8: Projeto de Banco de Dados

8

Modelo Lógico

Page 9: Projeto de Banco de Dados

9

Querys (Sentenças SQL) para criação das tabelas

Comando para criar Banco de Dados:

create table Diario;

Comando para selecionar banco de dados para utilização:

use Diario;

Comando para criar tabela Professor:

CREATE TABLE Professor (

Cod_Prof Integer(3) NOT NULL PRIMARY KEY,

Nome Varchar(30) NOT NULL

);

Comando para criar tabela Aluno:

CREATE TABLE Aluno (

Nota decimal(5.2) NOT NULL,

Mat_aluno Integer(5) NOT NULL PRIMARY KEY,

Nome Varchar(30) NOT NULL,

Prova_final decimal(5.2) NOT NULL,

Situacao Varchar(20) NOT NULL,

Cod_Turma Integer(3)

);

Comando para criar tabela Turma:

CREATE TABLE Turma (

Cod_Turma Integer(3) NOT NULL PRIMARY KEY,

Nome Varchar(10) NOT NULL,

Disciplina Varchar(20) NOT NULL,

Cod_Prof Integer(3) NOT NULL,

FOREIGN KEY(Cod_Prof) REFERENCES Professor (Cod_Prof) ON UPDATE

CASCADE

);

Page 10: Projeto de Banco de Dados

10

Comando para criar tabela Atividade:

CREATE TABLE Atividade (

Codigo Integer(3) NOT NULL,

Mat_aluno Integer(5) NOT NULL,

Nota decimal(5.2) NOT NULL,

Data Date NOT NULL,

Descricao Varchar(30) NOT NULL,

Nome Varchar(20) NOT NULL,

PRIMARY KEY(Codigo,Mat_aluno),

FOREIGN KEY(Mat_aluno) REFERENCES Aluno (Mat_aluno) ON UPDATE

CASCADE

);

Comando para alterar tabela Aluno (Adicionando chave estrangeira):

ALTER TABLE Aluno ADD FOREIGN KEY(Cod_Turma) REFERENCES Turma

(Cod_Turma) ON UPDATE CASCADE;

Page 11: Projeto de Banco de Dados

11

Sentenças SQL para cadastros, exclusão e alteração, com a

explicação da funcionalidade de cada uma das querys apresentadas

Comando para inserir um professor no Banco de Dados:

INSERT INTO Professor values(001, "Amelia Pond");

INSERT INTO Professor values(002, "Sarah-Jane Smith");

Comando para inserir uma turma no Banco de Dados:

INSERT INTO Turma values(010,"1o ano","Física", 001);

INSERT INTO Turma values(020,"2o ano","Astronomia", 001);

INSERT INTO Turma values(030,"1o ano","História", 002);

Comando para inserir um aluno no Banco de Dados:

INSERT INTO Aluno values(0.00, 100, "Barry Allen", 0.00, "REPROVADO", 010);

INSERT INTO Aluno values(0.00, 101, "Arthur Dent", 0.00, "REPROVADO", 010);

INSERT INTO Aluno values(0.00, 102, "Clara Oswald", 0.00, "REPROVADO", 010);

INSERT INTO Aluno values(0.00, 103, "Leo Silva", 0.00, "REPROVADO", 010);

INSERT INTO Aluno values(0.00, 112, "Martha Jones", 0.00, "REPROVADO", 010);

INSERT INTO Aluno values(0.00, 104, "John Smith", 0.00, "REPROVADO", 020);

INSERT INTO Aluno values(0.00, 105, "Susan Foreman", 0.00, "REPROVADO", 020);

INSERT INTO Aluno values(0.00, 106, "Bárbara Silva", 0.00, "REPROVADO", 020);

INSERT INTO Aluno values(0.00, 107, "Ian Araújo", 0.00, "REPROVADO", 020);

INSERT INTO Aluno values(0.00, 108, "Susana Pevensie", 0.00, "REPROVADO",

030);

INSERT INTO Aluno values(0.00, 109, "Leia Skywalker", 0.00, "REPROVADO", 030);

INSERT INTO Aluno values(0.00, 110, "Ford Prefect", 0.00, "REPROVADO", 030);

INSERT INTO Aluno values(0.00, 111, "Lily Evans", 0.00, "REPROVADO", 030);

Comando para inserir atividade no Banco de Dados:

INSERT INTO Atividade values(001, 100, 20.00, 2014/04/20, "Avaliação do 1º

semestre", "Prova 1");

INSERT INTO Atividade values(001, 101, 10.00, 2014/04/20, "Avaliação do 1º

semestre", "Prova 1");

Page 12: Projeto de Banco de Dados

12

INSERT INTO Atividade values(001, 102, 18.00, 2014/04/20, "Avaliação do 1º

semestre", "Prova 1");

INSERT INTO Atividade values(001, 103, 21.00, 2014/04/20, "Avaliação do 1º

semestre", "Prova 1");

INSERT INTO Atividade values(001, 112, 24.25, 2014/04/20, "Avaliação do 1º

semestre", "Prova 1");

INSERT INTO Atividade values(002, 100, 30.00, 2014/11/20, "Avaliação do 2º

semestre", "Prova 2");

INSERT INTO Atividade values(002, 101, 25.00, 2014/11/20, "Avaliação do 2º

semestre", "Prova 2");

INSERT INTO Atividade values(002, 102, 28.00, 2014/11/20, "Avaliação do 2º

semestre", "Prova 2");

INSERT INTO Atividade values(002, 103, 26.00, 2014/11/20, "Avaliação do 2º

semestre", "Prova 2");

INSERT INTO Atividade values(002, 112, 20.00, 2014/11/20, "Avaliação do 2º

semestre", "Prova 2");

INSERT INTO Atividade values(003, 100, 40.00, 2014/12/09, "Realizações de Trabalhos

e Atividades em todo o ano", "Trabalhos");

INSERT INTO Atividade values(003, 101, 34.50, 2014/12/09, "Realizações de Trabalhos

e Atividades em todo o ano", "Trabalhos");

INSERT INTO Atividade values(003, 102, 40.00, 2014/12/09, "Realizações de Trabalhos

e Atividades em todo o ano", "Trabalhos");

INSERT INTO Atividade values(003, 103, 20.75, 2014/12/09, "Realizações de Trabalhos

e Atividades em todo o ano", "Trabalhos");

INSERT INTO Atividade values(003, 112, 23.00, 2014/12/09, "Realizações de Trabalhos

e Atividades em todo o ano", "Trabalhos");

Comando para somando as notas dos alunos

UPDATE Aluno,Atividade SET Aluno.Nota=(Aluno.Nota+Atividade.Nota) WHERE

(Aluno.Mat_aluno=Atividade.Mat_aluno AND Atividade.Codigo=001);

UPDATE Aluno,Atividade SET Aluno.Nota=(Aluno.Nota+Atividade.Nota) WHERE

(Aluno.Mat_aluno=Atividade.Mat_aluno AND Atividade.Codigo=002);

UPDATE Aluno,Atividade SET Aluno.Nota=(Aluno.Nota+Atividade.Nota) WHERE

(Aluno.Mat_aluno=Atividade.Mat_aluno AND Atividade.Codigo=003);

Comando para atualizar situação do aluno

UPDATE Aluno SET Situacao="APROVADO" WHERE Nota>60.00;

Page 13: Projeto de Banco de Dados

13

Comando para atualizar as notas e situação do aluno

UPDATE Aluno SET Nota=00.00;

UPDATE Aluno SET Situacao="REPROVADO"

UPDATE Aluno,Atividade SET Aluno.Nota=(Aluno.Nota+Atividade.Nota) WHERE

(Aluno.Mat_aluno=Atividade.Mat_aluno AND Atividade.Codigo=001);

UPDATE Aluno,Atividade SET Aluno.Nota=(Aluno.Nota+Atividade.Nota) WHERE

(Aluno.Mat_aluno=Atividade.Mat_aluno AND Atividade.Codigo=002);

UPDATE Aluno,Atividade SET Aluno.Nota=(Aluno.Nota+Atividade.Nota) WHERE

(Aluno.Mat_aluno=Atividade.Mat_aluno AND Atividade.Codigo=003);

UPDATE Aluno SET Situacao="APROVADO" WHERE Nota>60.00;

Comando para alterar a nota da prova de um aluno-> Alterando a nota da prova de Leo

Silva

UPDATE Atividade SET Nota=2.00 WHERE (Codigo=001 AND Mat_aluno=103);

Comandos de Exclusão->Excluindo a Turma 2 e 3, e a Profa.: Sarah-Jane

DELETE FROM Aluno WHERE Cod_Turma=030;

DELETE FROM Turma WHERE Cod_Turma=030;

DELETE FROM Professor where Cod_Prof=002;

DELETE FROM Aluno WHERE Cod_Turma=020;

DELETE FROM Turma WHERE Cod_Turma=020;

Page 14: Projeto de Banco de Dados

14

Sentenças SQL para listagens simples e com relacionamentos de

tabelas, com a explicação da funcionalidade de cada uma das querys

apresentadas

Comando para consultar o atributo Mat_Aluno do aluno apelidando-o Matricula: SELECT Mat_Aluno AS Matricula, Nome FROM Aluno GROUP BY Cod_Turma;

Comando para consultar o atributo Nome da tabela Aluno: SELECT Nome FROM

Aluno where Cod_Turma=010;

Comando para consultar os nomes de alunos que possuem código da turma “030’: SELECT Nome FROM Aluno where Cod_Turma=030;

Page 15: Projeto de Banco de Dados

15

Comando para consultar o nome e situação dos alunos: SELECT Nome, Situacao

FROM Aluno;

Comando para consultar os atributos Nome da tabela Aluno, atributo Atividade da

tabela Nota e Codigo da tabela Atividade: SELECT Aluno.Nome, Atividade.Nota,

Atividade.Codigo FROM Aluno, Atividade WHERE Aluno.Mat_aluno=

Atividade.Mat_aluno;

Page 16: Projeto de Banco de Dados

16

Comando para consultar Nome da tabela Professor, matricula, nome, nota, situação

da tabela Aluno: SELECT P.Nome AS Professor, A.Mat_aluno, A.Nome AS Aluno,

A.Nota, A.Situacao FROM Professor P, Turma T, Aluno A WHERE

(T.Cod_Prof=P.Cod_Prof AND T.Cod_Turma=A.Cod_Turma);

Page 17: Projeto de Banco de Dados

17

Tabelas do Banco de Dados

Tabela aluno

Tabela Atividade

Tabela Professor

Tabela Turma

Page 18: Projeto de Banco de Dados

18

Conclusão

Foi constatado que diversos professores necessitam de um sistema para gerenciar suas

classes. Para solucionar esta questão desenvolvemos um software para fazer esta gestão. No

entanto existem sistemas que já atendem á esta necessidade. Por isso pensamos em fazer algo

inovador como enviar os arquivos de estudo para e-mail do aluno.

Este sistema é adequado para professores ou pequenas Organizações. Não é possível

afirmar que podemos atender a demanda de uma faculdade, por exemplo, pois ainda estamos em

fase de teste.

Com o desenvolvimento do protótipo, o controle de alunos será efetivo, oferecendo

informações precisas em tempo real de acordo com as atualizações de cadastros.

Uma das principais contribuições do projeto é sem dúvida a emissão dos relatórios gerenciais,

que podem gerar informações estratégicas para o professor visualizar em qual disciplina o aluno

tem se saído melhor.

A fase de adaptação do sistema será branda e com poucas alterações na rotina de

trabalho. Pois o protótipo foi feito de acordo com as necessidades do professor e moldado nos

atuais métodos de trabalho.

Além dessas facilidades, é importante destacar a eliminação de arquivamento em papel,

rapidez nas informações, facilidade de consultas e confiabilidade das informações que são

pertinentes a todos os sistemas de informação.

Page 19: Projeto de Banco de Dados

19

Referências:

Conceitos Banco de dados. Disponível em: < http://homepages.dcc.ufmg.br/~laender/material

/ibd-parte1.pdf> Acesso em 25 de novembro de 2014.

Dicionário de dados. Disponível em: <http://www.inf.ufrgs.br/~vrqleithardt/Teaching/AULA%

20SEMANA%208%20a%2012/Dicionariodados.pdf> Acesso em: 24 de novembro de 2014.

Elmasri, R. & Navathe, S.B. Fundamentals of Database Systems. Second Edition. Benjamin/

Cummings, Redwood City, California, 1994

Heuser, Carlos A. Projeto de Banco de Dados. Disponível em: <http://jalvesnicacio.files.

wordpress.com/2010/03/carlos_alberto_heuser-projeto _ de _ banco _de _dados. pdf > Acesso

em : 23 de novembro de 2014

Mattoso, Marta. Top. Esp em Banco de Dados. Disponível em: <

http://www.cos.ufrj.br/~marta/IntroductionP.pdf > Acesso em: 26 de novembro de 2014.

Mysql.com. Disponível em http://dev.mysql.com/doc/refman/5.0/en/entering-queries.html >

Acesso em: 24 de novembro de 2014

Tutorial Mysql. Disponível em< http://www.tutorialspoint.com/mysql/mysql_tutorial.pdf>

Acesso em: 24 de novembro de 2014.