Funções necessárias:
(1) Entrada e manutenção de aluno, curso, professor e outras informações.Um curso só pode ser ministrado por um professor, e um professor pode ministrar vários cursos.
(2) Os alunos selecionam cursos, cerca de 20 créditos por semestre
(3) Os professores darão as notas dos alunos após o final de cada curso. Se os alunos forem reprovados, eles registrarão as notas do teste de reposição após fazerem um exame de reposição.
(4) Capaz de consultar detalhadamente a situação de seleção do curso de um determinado aluno e a situação dos alunos eletivos em um determinado curso
(5) Capacidade de consultar estatisticamente o histórico escolar de um aluno (pontuação total, pontuação média, número de portas falhadas, etc.) e informações estatísticas como o número de alunos que frequentam um curso, pontuação mais alta, pontuação mais baixa, pontuação média, etc.
Índice
1.2 Objetivo do design do curso
1.3 Tarefas de design de curso
3. Projeto de banco de dados do sistema
3.1 Projeto estrutural conceitual
3.1.2 Diagrama ER do professor
3.1.4 Diagrama ER de Seleção de Curso
3.2 Projeto de estrutura lógica
3.2.1 Converter o diagrama ER da estrutura conceitual geral em um modelo relacional
3.2.2 Otimização do modelo de dados
3.3 Projeto de estrutura física
4. Implementação de banco de dados
4.2 Criação de tabelas de banco de dados
4.2.1 Criar tabela de informações do aluno
4.2.2 Criar tabela de informações do professor
4.2.3 Criar tabela de informações do curso
4.2.4 Criar tabela de informações de seleção de cursos
4.3 O diagrama de relacionamento é o seguinte
4.5.1 Adicionar informações de um aluno à tabela de alunos
4.5.2 Modificar o número do celular de Chen Chang
4.5.3 Excluir informações pessoais de Chen Chang
4.7.2 Criar uma tabela de informações do curso contendo apenas cursos profissionais básicos
I. Introdução
1.1 Antecedentes do tema
Com o advento da era da informação, a tecnologia informática também tem sido amplamente utilizada, proporcionando métodos mais avançados, convenientes e eficientes para a gestão de faculdades e universidades. Diante dos problemas de gestão acadêmica universitária, desenvolver um sistema de gestão de informações estudantis tornou-se uma tarefa muito importante e necessária. O sistema experimental de gerenciamento de informações estudantis de banco de dados é um software de gerenciamento universitário desenvolvido com base na tecnologia de banco de dados.
O principal objetivo deste sistema é gerenciar informações básicas dos alunos, informações sobre cursos, informações sobre notas, informações sobre seleção de cursos, etc. No sistema de gestão de informações estudantis, as informações básicas dos alunos podem ser gerenciadas de maneira uniforme, como nome, número do aluno, sexo, data de nascimento, local de origem, dados de contato, etc., bem como o desempenho dos alunos e a seleção do curso. Ao mesmo tempo, o sistema possui funções de controle de acesso, que podem efetivamente impedir que informações sejam roubadas ou modificadas. Através deste sistema, consegue-se uma gestão integral e meticulosa dos alunos, melhorando significativamente a eficiência do trabalho e reduzindo o investimento em recursos humanos.
1.2 Objetivo do design do curso
(1) Uso prático da tecnologia de banco de dados: Como um aplicativo básico de banco de dados, o sistema de gerenciamento de informações do aluno possui operações básicas e não envolve muitas tabelas e campos, mas é muito prático e permite que os alunos comecem rapidamente a usar o software de banco de dados e entendam conceitos e fundamentos de bases de dados.Função.
(2) Projeto e implementação de banco de dados de aprendizagem: O sistema de gerenciamento de informações do aluno envolve o design de várias tabelas relacionadas.Através do design e implementação do sistema de aprendizagem, os alunos podem compreender os métodos e técnicas de design de banco de dados, incluindo modelagem de entidade e relacionamento, Design de tabela, definição de atributos, configuração de índices e uso de sintaxe, etc.
(3) Cultivar as capacidades de gestão da informação dos alunos: As funções do sistema de gestão da informação dos alunos são relativamente abrangentes, permitindo aos alunos aprender métodos e técnicas básicas de gestão da informação e melhorar as suas capacidades de gestão da informação através da entrada, consulta e gestão de informações.
(4) Melhorar as capacidades de aplicação abrangentes dos alunos: A concepção e implementação de sistemas de gestão de informação dos alunos requerem conhecimentos de múltiplas disciplinas, tais como estruturas de dados, algoritmos, tecnologias de bases de dados, etc.
1.3 Tarefas de design de curso
1. Análise de requisitos: Esclarecer os requisitos para o uso, função, desempenho e qualidade do sistema de gerenciamento de informações do aluno e formular as especificações de requisitos do produto correspondentes.
2. Projeto de conceito: De acordo com a especificação de requisitos, modele entidades e relacionamentos, projete diagramas ER e estruturas de tabelas e esclareça os requisitos de armazenamento do banco de dados.
3. Projeto lógico: Projetar a arquitetura lógica do sistema, incluindo modelagem de banco de dados, escrita de instruções SQL e dicionário de dados, etc.
4. Projeto físico: Projetar a arquitetura física do sistema, incluindo a criação, armazenamento e gerenciamento de bancos de dados, tabelas e índices.
5. Implementação e teste: De acordo com os requisitos de design, implemente e teste várias funções do sistema de gerenciamento de informações do aluno, incluindo adição, modificação, exclusão de registros, consulta, estatísticas de dados e análise de relatórios, etc.
2. Análise de demanda
Os utilizadores deste sistema são gestores de apartamentos de estudantes e professores, cujas principais tarefas na gestão diária dos apartamentos incluem: consulta e gestão de informações dos alunos, atribuição e ajuste de dormitórios, registo de visitantes, etc. Com base na análise dos requisitos acima, este sistema deverá ter as seguintes funções em implementação:
◎ Gerenciamento de informações básicas do aluno: adicionar, modificar, consultar e excluir informações básicas do aluno;
◎ Gerenciamento de informações básicas do professor: adicionar, modificar, consultar e excluir informações básicas do professor;
◎ Gerenciamento de informações básicas do curso: adicione, modifique, consulte e exclua informações básicas do curso;
◎ Gerenciamento básico de informações sobre pontuações de seleção de cursos: adição, modificação, consulta, exclusão de informações e pontuações de seleção de cursos e inserção de pontuações de reposição.
Com base na análise acima, o diagrama de arquitetura do sistema deste sistema pode ser projetado
3. Projeto de banco de dados do sistema
3.1 Projeto estrutural conceitual
Com base na análise de requisitos, a estrutura da informação é abstraída e o diagrama ER do sistema pode ser obtido.
Diagrama ER parcial
3.1.1 Diagrama ER do aluno
3.1.2 Diagrama ER do professor
3.1.3 Diagrama ER do curso
3.1.4 Diagrama ER de Seleção de Curso
3.1.5 Diagrama ER geral
3.2 Projeto de estrutura lógica
3.2.1 Converter o diagrama ER da estrutura conceitual geral em um modelo relacional
Modelo relacional:
Aluno (ID do aluno#, nome, sexo, informações de contato)
Professor (Número do professor, nome, sexo, informações de contato)
curso (número do curso#, número do tutorial, Nome do curso, departamento)
Escolha (Número do procedimento#、Número da escola# ,tipo de crescimento #, crescimento)
3.2.2 Otimização do modelo de dados
- Determinar dependências de dados
1. Aluno (ID do aluno#, nome, sexo, informações de contato)
Terceiro paradigma: ID do Estudante -> (nome, sexo, informações de contato)
2. Professor (Professor nº#, nome, sexo, informações de contato)
Terceira Forma Normal: Número do professor->(Nome, sexo, informações de contato)
3. Curso (Procedimento #, Número do professor, nome do curso, créditos)
Terceira função:número do curso-> ( Número do livro didático, nome do curso, departamento)
4. Selecione (Número de matrícula#、Grau acadêmico#、Conclusão Digite #, Crescimento)
Terceira opção: (nome do curso, grau acadêmico, tipo de conclusão) ->( realização)
- Minimize as dependências de dados entre cada modelo de relacionamento e elimine a redundância
Através da análise, verifica-se que não há redundância de dados no relacionamento: o número da escola secundária Sno no relacionamento do aluno determina as informações do aluno; o número do professor é usado como chave primária no relacionamento do professor; o número do curso é usado como a chave primária no relacionamento do curso; no relacionamento de seleção do curso, (número do curso, número do aluno, tipo de pontuação) juntos como a chave primária para determinar exclusivamente uma pontuação de teste. Como existem exames complementares, o tipo de pontuação precisa ser usado para diferenciar. O hábito do tipo de pontuação pode ser selecionado como exames normais ou de reposição.
3.3 Projeto de estrutura física
3.3.1 Estrutura da tabela de informações dos alunos
número de série |
nome do personagem |
tipo de dados |
comprimento |
ilustrar |
1 |
Identidade estudantil |
Caracteres |
10 |
Número do aluno, chave primária |
2 |
Nome |
varchar |
20 |
Vazio não é permitido |
3 |
gênero |
Caracteres |
2 |
Vazio não é permitido verificar restrições |
4 |
Informações de contato |
Caracteres |
11 |
Permitir vazio |
5 |
Aniversário |
Data |
Permitir vazio |
3.3.2 Estrutura da tabela de informações do professor
número de série |
nome do personagem |
tipo de dados |
comprimento |
ilustrar |
1 |
Número do professor |
Caracteres |
10 |
Número do professor, chave primária |
2 |
Nome |
varchar |
20 |
Vazio não é permitido |
3 |
gênero |
Caracteres |
2 |
Vazio não é permitido verificar restrições |
4 |
Informações de contato |
Caracteres |
11 |
Permitir vazio |
3.3.3 Estrutura da tabela de informações do curso
número de série |
Nome do campo |
tipo de dados |
comprimento |
ilustrar |
1 |
Número do curso |
Caracteres |
10 |
chave primária |
2 |
nome do curso |
varchar |
20 |
Vazio não é permitido |
3 |
Número do professor |
Caracteres |
10 |
Número do professor, chave estrangeira |
4 |
crédito |
minúsculoint |
não vazio Verifique as restrições |
3.3.4 Estrutura da tabela de informações de pontuação de seleção do curso
número de série |
Nome do campo |
tipo de dados |
comprimento |
ilustrar |
1 |
Identidade estudantil |
Caracteres |
10 |
chave primária, chave estrangeira |
2 |
Número do curso |
Caracteres |
10 |
chave primária, chave estrangeira |
3 |
tipo de nota |
Caracteres |
2 |
chave primária Verifique as restrições |
4 |
Fração |
minúsculoint |
não vazio Verifique as restrições |
Quatro, número implementação da instalação
4.1 Criar banco de dados
criar banco de dados sms
no primário
(
nome=sms,
nome do arquivo='D:\SQLSERVER_DB\sms.mdf',
tamanho = 20 MB,
MAXsize=ilimitado,
crescimento do arquivo = 10 MB
)
entrar
(
nome=sms_log,
nome do arquivo='D:\SQLSERVER_DB\sms_log.ldf',
tamanho = 2 MB,
tamanho máximo = 10 MB,
crescimento do arquivo = 10%
)
4.2 Criação de tabelas de banco de dados
4.2.1 Criar tabela de informações do aluno
criar tabela aluno(
chave primária sno char (10),
[nome] varchar(20) não nulo,
sex char(2) verificação não nula(sexo='masculino' ou sexo='feminino'),
telefone char(11)
)
4.2.2 Criar tabela de informações do professor
criar mesa professor(
chave primária sno char (10),
[nome] varchar(20) não nulo,
sex char(2) verificação não nula(sexo='masculino' ou sexo='feminino'),
telefone char(11)
)
4.2.3 Criar tabela de informações do curso
criar curso de mesa (
chave primária cno char(10),
[cname] varchar(20) não nulo,
sem caractere (10),
crédito tinyint check(crédito entre 1 e 2), --credit
restrição FK_teacher_tno chave estrangeira (tno) faz referência a professor (tno)
)
4.2.4 Criar tabela de informações de seleção de cursos
criar nota de tabela (
nenhum caractere (10),
sno char(10),
gtype char(2) check(gtype in ('zc','bk')), --score type, zc é normal, bk é um teste de maquiagem
verificação de crédito tinyint (crédito entre 0 e 100), - pontuação
restrição PK_cno_tno_gtype chave primária (cno,sno,gtype),--chave primária conjunta
restrição FK_course_cno chave estrangeira (cno) faz referência ao curso (cno), --外键
restrição FK_student_sno chave estrangeira (sno) faz referência a estudante (sno) --外键
)
4.3 O diagrama de relacionamento é o seguinte
4.4Inserir dados
--Inserir informações do aluno
inserir nos valores do aluno('1932101101','2000- 11-10');
inserir nos valores do aluno('1932101102','Yin Yao','Man','15170000002','2001- 10- 10');
inserir nos valores do aluno('1932101103','Yu Jun','Masculino','15170000003','2002- 06- 10');
inserir nos valores do aluno('1932101104','Kaguya','Feminino','15170000004','2003- 11-10& #39;);
inserir nos valores do aluno('1932101105','Chenchen','Feminino','15170000005','2004- 11-10& #39;);
--Inserir informações do professor
inserir nos valores do professor('1000000001','Wang Xin','Feminino','19170000001');
inserir nos valores do professor('1000000002','Ding','Homem','19170000002');
inserir nos valores do professor('1000000003','Li Tao','Masculino','19170000003');
--Inserir informações do curso
inserir nos valores do curso('zyjc000001','Princípio do banco de dados','1000000001',2);
inserir nos valores do curso('zyjc000002','Programação Java','1000000001',2);
inserir nos valores do curso('zyhx000003','sistema operacional','1000000002',1);
inserir nos valores do curso('zyhx000004','Rede de Computadores','1000000002',2);
inserir nos valores do curso('zyjc000005','Princípios de Composição de Computador','1000000003',1);
inserir nos valores do curso('zyjc000006','Matemática Superior','1000000003',2);
--Inserir informações de seleção do curso
inserir nos valores da nota('zyjc000001','1932101101','zc',85);
inserir nos valores da nota('zyjc000001','1932101102','zc',75);
inserir nos valores da nota('zyjc000001','1932101103','zc',65);
inserir nos valores da nota('zyjc000001','1932101104','zc',95);
inserir nos valores da nota('zyjc000001','1932101105','zc',70);
inserir nos valores da nota('zyjc000002','1932101101','zc',85);
inserir nos valores da nota('zyjc000002','1932101102','zc',80);
inserir nos valores da nota('zyjc000002','1932101103','zc',70);
inserir nos valores da nota('zyhx000003','1932101101','zc',85);
inserir nos valores da nota('zyhx000003','1932101102','zc',80);
inserir nos valores da nota('zyhx000003','1932101103','zc',75);
inserir nos valores da nota('zyhx000003','1932101104','zc',70);
inserir nos valores da nota('zyhx000003','1932101105','zc',65);
inserir nos valores da nota('zyhx000004','1932101101','zc',85);
inserir nos valores da nota('zyhx000004','1932101102','zc',70);
inserir nos valores da nota('zyhx000004','1932101103','zc',60);
inserir nos valores da nota('zyhx000003','1932101104','bk',99);
inserir nos valores da nota('zyhx000003','1932101105','bk',94);
4.5.1 Adicionar informações de um aluno à tabela de alunos
inserir no aluno
valores('1932101106','Chen Chang','Feminino','15170000006');
Inserção de dados
4.5.2 Modificar o número do celular de Chen Chang
atualizar conjunto de alunos tel='15170000016' onde sno='1932101106';
Modificação de dados
4.5.3 Excluir informações pessoais de Chen Chang
excluir do aluno onde sno='1932101106';
Exclusão de dados
4.6 Consulta de dados
4.6.1 Consulta simples
Consultar informações da tabela dos alunos
selecione * do aluno;
4.6.2 Consultas aninhadas
Consultar informações sobre o aluno mais velho
selecione * do aluno onde nascimento=(selecione min(nascimento) do aluno);
4.6.3 Consulta difusa
Consulte as informações de todos os alunos chamados Hui
selecione * do aluno onde o nome é '辉%';
4.6.4 Consulta de conexão
Verifique o nome do curso e o professor
selecione c.cname,t.tname
do curso c, professor t
onde c.tno=t.tno;
Verifique a situação de seleção do curso do aluno número 1932101104
selecione * da nota g
saiu do curso c em c.cno=g.cno
onde g.sno='1932101104';
4.6.5 Consulta de grupo
Consultar a quantidade de cursos ministrados por cada professor
selecione COUNT(*) como count,tno do grupo de cursos por tno;
Consultar o número de alunos optativos em um curso
selecione COUNT(*) como contagem,c.cno
do curso c
à esquerda, junte-se à nota g em c.cno=g.cno
grupo por c.cno
tendo c.cno='zyhx000004'
4.6.6 Ordenação de consultas
Consultar as informações de nota do curso número zyjc000001 em ordem decrescente de notas
selecione * da nota
onde cno='zyjc000001'
encomendar por desc de crédito;
4.6.7Função de união
Estatísticas do histórico escolar de um aluno (pontuação total, pontuação média, número de portas reprovadas)
selecione
não,
EU SOU (acredito) eu sou
Média (crédito) média,
COUNT(CASE WHEN credit<60 THEN 1 END) como contagem
da série
onde sno='1932101104'
agrupar por sno;
Estatísticas sobre o número de alunos cursando um curso, a nota mais alta, a nota mais baixa e a nota média
selecione
c.cno,
COUNT(g.sno) contagem,
MAX(g.crédito) máx,
MIN(g.crédito) min,
AVG(g.crédito) média
do curso c
à esquerda, junte-se à nota g em g.cno=c.cno
onde c.cno='zyhx000003'
agrupar por c.cno;
4.7 Visualizar
4.7.1 Crie uma tabela de pontuação com informações sobre exames de reposição, incluindo todas as colunas
criar visualização v_grade_bk
como
selecione * da nota onde gtype='bk';
selecione * de v_grade_bk;
4.7.2 Criar uma tabela de informações do curso contendo apenas cursos profissionais básicos
criar visualização v_course_zyjc
como
selecione * do curso onde cno gosta de 'zyjc%';
selecione * de v_course_zyjc;
5. Resumo
Esta experiência no projeto de um sistema de gerenciamento de informações para estudantes no curso de banco de dados me proporcionou uma compreensão mais profunda dos conceitos e aplicações de bancos de dados. Durante o experimento, aprendi sobre as operações específicas do banco de dados projetando e implementando um sistema de gerenciamento de informações dos alunos e esclareci as vantagens, desvantagens e cenários de aplicação do banco de dados. Ao mesmo tempo, também descobri que muitos problemas ocorreram durante o experimento, incluindo design de banco de dados irracional e cenários de aplicação pouco claros, que precisam continuar a ser melhorados em estudos e práticas futuras. Existem operações práticas e práticas em vários aspectos, como design conceitual, design lógico e design físico. Durante o experimento, encontrei muitas dificuldades e problemas, como o design da tabela não era razoável o suficiente, a configuração do índice não era razoável o suficiente, a escrita de instruções SQL não era proficiente o suficiente, o design do índice não era preciso o suficiente, etc. , por meio de uma solução passo a passo, finalmente projetei. Um sistema de gerenciamento de informações de alunos estável e eficiente foi implementado. Deu-me uma compreensão mais profunda da importância e necessidade das bases de dados na gestão e aplicação da informação, e também melhorou as minhas capacidades e competências em operações práticas. No estudo e na prática a seguir, continuarei a aprimorar minhas habilidades em banco de dados, melhorando e me desafiando constantemente.