Resumen
Con el rápido desarrollo de las computadoras e Internet, cada vez más industrias se han dado cuenta de la informatización y automatización de la gestión, y la industria de la educación no es una excepción. Sin embargo, en muchos colegios y universidades, la suscripción de libros de texto, como un eslabón muy importante en el trabajo docente escolar, aún no se ha realizado plenamente la gestión de la información. Por lo tanto, teniendo como objetivo las dificultades de la gestión manual en el proceso de gestión de suscripciones de libros de texto universitarios, este sistema utiliza SQLserver 2012 para desarrollar un sistema de información de gestión de suscripciones de libros de texto universitarios para realizar la gestión de la red de suscripción de libros de texto, mejorar la eficiencia del trabajo y reducir los errores en los libros de texto. suscripción.
El desarrollo del sistema de gestión de suscripción de libros de texto incluye principalmente el establecimiento y mantenimiento de una base de datos. Este sistema requiere el establecimiento de una biblioteca con sólida consistencia e integridad de datos y buena seguridad de datos, y requiere que el programa de aplicación sea completamente funcional y fácil de usar. El sistema realiza funciones como suscripción, compra y distribución de libros multiprecio, reposición bibliográfica antes de la llegada, gran cantidad de trabajos de entrada y búsqueda bibliográfica.
Palabras clave: diseño de tablas de bases de datos de suscripción de libros de texto
1 Resumen del sistema
El sistema de gestión de suscripción de libros de texto es una parte integral de la gestión de la enseñanza, y es un sistema de gestión de información (MIS) típico. El modo de gestión de suscripción de libros de texto de las escuelas generales se maneja sobre la base del sistema de año escolar y la clase como una unidad. Con el aumento del número de estudiantes, la creciente diversificación de los materiales didácticos y las crecientes diferencias en los materiales didácticos entre estudiantes individuales, la gestión de la suscripción de libros de texto en colegios y universidades ha presentado una situación que no se puede abordar. Por ello, es de gran trascendencia y urgencia establecer un conjunto de modalidades de gestión de suscripción de material didáctico y un sistema de gestión acorde con la selección de cursos, y las condiciones, conceptos de gestión y nivel técnico existentes lo han hecho posible.
Para adaptarse mejor a las necesidades de la gestión escolar actual y evitar las desventajas de la gestión manual, se ha desarrollado un sistema de gestión de suscripción de material didáctico, que puede realizar la gestión automática de carga y recepción de material didáctico.Este sistema incluye cuatro funciones, a saber , la gestión de almacenamiento de materiales didácticos, la gestión de tarifas de libros del estudiante, la gestión del sistema y la investigación integral.
2 Descripción del problema
El sistema de gestión de suscripciones de libros de texto es un software que realiza funciones básicas como el inicio de sesión del sistema y la gestión de información de libros de texto. A través de la investigación y el análisis de los modelos de gestión existentes y el software de gestión existente, se establece un modelo de sistema. El sistema debe realizar funciones como la entrada de información básica, modificación y consulta; Realice la función de análisis estadístico que cumple varias condiciones, y algunos datos estadísticos deben presentarse en forma de gráficos. La gestión de suscripción de libros de texto es totalmente responsable de toda la información de suscripción de libros de texto en la escuela. Es de importancia positiva promover la automatización y la gestión sin papel de la suscripción de libros de texto escolares. El sistema de gestión de suscripciones de libros de texto está diseñado para esta situación.
La información involucrada es:
(1) Información de suscripción de libros de texto. Los elementos de datos incluidos son: número de suscripción, título del libro, editorial, autor, edición, precio unitario, curso, carrera, clase, número de personas, fecha, etc.
(2) Información del inventario de material didáctico. Los datos que se incluyen son: número de suscripción, título del libro, editorial, autor, edición, precio unitario, cantidad, etc.
(3) Información de compra de libros de texto. Los elementos de datos incluidos son: número de suscripción, título del libro, editorial, autor, edición, precio unitario, curso, especialidad, clase, cantidad, fecha, etc.
(4) Información de la colección. Los elementos de datos incluidos son: fecha, clase, cantidad, etc.
(5) Información del usuario. Los elementos de datos incluidos son: código de usuario, nombre de usuario, contraseña, cumpleaños, categoría, etc.
La función principal de este sistema consta de las siguientes partes:
Después de la investigación y el análisis, el sistema de gestión de suscripción de libros de texto completa principalmente las siguientes funciones:
(1) Módulo de información básica del usuario: información básica de los usuarios.
(2) Módulo de información de inventario de material didáctico: registre la cantidad de inventario y la información básica de los materiales didácticos.
(3) Módulo de información de suscripción de libros de texto: para consultar la información de suscripción de libros de texto requerida, es decir, los usuarios pueden agregar, modificar, eliminar y consultar la información de suscripción.
(4) Módulo de información de compra de libros de texto: para consultar la información de compra de libros de texto requerida, es decir, el usuario agrega, modifica, elimina y consulta información de suscripción.
(5) Módulo de información de recibo: información sobre el registro del estado de pago de las compras de libros de texto.
3 Análisis de la demanda
El análisis de requisitos es la base del diseño de la base de datos y sus errores afectarán a todo el diseño. El análisis de requisitos es también la etapa más tediosa y difícil para los diseñadores.
3.1 Diagrama de flujo de datos
El análisis del flujo de datos consiste en abstraer y aislar el flujo de datos dentro de la organización, dejando de lado estructuras organizativas específicas, etc., para descubrir y resolver problemas en el flujo de datos. Después de contar la demanda de material didáctico, cada departamento envía el pedido de material didáctico al departamento de gestión de material didáctico. El departamento de gestión de material didáctico elabora un plan para generar un cronograma de material didáctico y envía el formulario de pedido al proveedor para solicitar el proveedor para suministrar los materiales didácticos y completar la compra de materiales didácticos Después del trabajo, llevar a cabo el registro de almacenamiento, generar documentos de almacenamiento y enviarlos al departamento financiero para su liquidación. Cada clase entregará la lista de libros al departamento de material didáctico, y el departamento de material didáctico distribuirá los materiales didácticos a cada clase y registrará la entrega, generará una lista de entrega y la enviará al departamento financiero para la liquidación de costos, y generará un lista de costos de libros de texto.
Su diagrama de flujo de datos se muestra en la siguiente figura.
Figura 1 Diagrama de flujo de datos
3.2 Diccionario de datos
Tabla 3-1 Descripción del elemento de datos
Nombre del elemento de datos: número de libro de texto |
Breve descripción: almacenar la información de cada libro de texto |
Breve Descripción: Codificación de Libros de Texto Escolares |
Tipo y Longitud: Numérico, 7 dígitos |
Tipo de valor de datos: (continuo/discreto) discreto |
Tabla 3-2 Descripción de la estructura de datos
数据结构名:教材管理表单 |
简述: 存储教材入出库等的表单 |
数据结构组成:征订号+书名+出版社+作者+版次+单价+课程+专业+班级+人数+日期+操作员 |
表3-3 数据处理描述
处理逻辑名:制定计划 |
加工编号:P1 |
简要描述:根据各系征订教材以及所缺教材定购计划。 |
输入数据流: 教材订单。 |
输出数据流: 教材计划表 |
表3-4 数据存储描述
数据存储名:入库教材 |
简述:存储入库教材的基本信息。 |
文件组成:征订号+书名+出版社+作者+版次+单价+数量。 |
数据存储名:出库教材 |
简述:存储出库教材的基本信息。 |
文件组成:征订号+书名+出版社+作者+版次+单价+数量。 |
数据流名:教材入库单 |
简述:存储入库教材的基本信息。 |
文件组成:征订号+书名+出版社+作者+版次+单价+数量。 |
表3-5 数据流描述
数据流名:教材出库单 |
简述:存储出库教材的基本信息。 |
文件组成:征订号+书名+出版社+作者+版次+单价+数量。 |
4 概念结构设计
4.1实体分析描述
从用户角度来说,数据库的需求主要体现在对数据库表的增删改查。因此,数据库结构需同时满足两个要素:输入、输出。在进行数据设计时,首先需收集数据,然后分析数据结构,最后处理数据。根据本系统的需求,设计以下主要的数据项和数据结构:
(1)用户信息实体:用户编号、姓名、性别、所属专业、班级、密码、出生年月、角色、类别。
(2)教材购买信息实体:征订号、书名、出版社、作者、版次、单价、课程、专业、班级、数量、日期。
(3)教材库存信息实体:征订号、书名、出版社、作者、版次、单价、数量。
(4)教材征订信息实体:征订号、书名、出版社、作者、版次、单价、课程、专业、班级、人数、日期。
(5)收款信息实体:日期、班级、金额。
4.2整体E-R图
图2 概念结构设计E-R图
5 逻辑结构设计
5.1 关系模式
关系模式:用户信息(用户编号、姓名、性别、所属专业、班级、密码、出生年月、角色)
模式判定:用户信息∈2NF,且每个非主属性都不传递函数依赖于用户信息的主关系键,所以用户信息∈3NF
关系模式:教材购买信息(征订号、书名、出版社、作者、版次、单价、课程、专业、班级、数量、日期)
模式判定:教材购买信息∈2NF,且每个非主属性都不传递函数依赖于教材购买信息的主关系键,所以教材购买信息∈3NF
关系模式:教材库存信息(征订号、书名、出版社、作者、版次、单价、数量)
Juicio de modo: información de inventario de libros de texto ∈ 2NF, y cada atributo no primario no transfiere la función depende de la clave de relación primaria de la información de inventario de libros de texto, por lo que la información de inventario de libros de texto ∈ 3NF
Modelo de relación: información de suscripción del libro de texto (número de suscripción, título del libro, editorial, autor, edición, precio unitario, curso, especialización, clase, número de personas, fecha)
Juicio de modo: información de suscripción de libros de texto ∈ 2NF, y cada atributo no primario no transfiere la función depende de la clave de relación principal de la información de suscripción de libros de texto, por lo que la información de suscripción de libros de texto ∈ 3NF
Modo de relación: información de cobro (fecha, clase, monto)
Juicio de modo: información de pago ∈ 2NF, y cada atributo no primario no transfiere la función depende de la clave de relación primaria de la información de pago, por lo que la información de pago ∈ 3NF
5.2 Diagrama de relación de datos
Como se muestra en la figura se muestra el diagrama de relaciones generado en la base de datos.
Figura 3 Diagrama ER de diseño de estructura conceptual
5.3 Diagrama de relación del sistema
Figura 4 Diagrama de relación del sistema
6 Diseño de la estructura física
6.1 Definir el nombre de la base de datos y la tabla
Nombre de la base de datos:
Comprar libro
Nombre de la tabla de la base de datos:
(1) Tabla de información del usuario: s_user
(2) Formulario de información de compra de libros de texto: book_purchase_info
(3) Tabla de información de inventario de libros de texto: book_inventory_info
(4) Formulario de información de suscripción de libros de texto: book_subscription_info
(5) Tabla de información de la colección: collection_info
6.2 Diseño de la estructura de almacenamiento de la base de datos
Para mejorar el rendimiento del sistema, de acuerdo con la situación de la aplicación, la parte variable de los datos y la parte estable, a menudo
La parte de acceso se almacena por separado de la parte de acceso poco frecuente.
Dado que las computadoras de hoy en día tienen varios discos, colocar tablas (como las tablas de información del usuario) e índices en diferentes
En el proceso de consulta, la eficiencia de lectura y escritura de E/S se mejora considerablemente, y para particiones más grandes, los dos
En un disco, puede acelerar la velocidad de acceso, y es más efectivo en un entorno multiusuario; para mejorar el sistema
El rendimiento del archivo de registro y el objeto de la base de datos (tabla, índice, etc.) se colocan en discos diferentes. al mismo tiempo,
Teniendo en cuenta que este sistema es multiusuario, con el fin de mejorar la eficiencia, se mantendrán los datos y archivos de registro de la copia de seguridad de la base de datos.
almacenado en disco.
Las partes de la base de datos a las que se accede con frecuencia incluyen:
Usuario (número de usuario, nombre, sexo, especialización, clase, contraseña, fecha de nacimiento, función)
Suscripción de libros de texto (número de suscripción, título, editorial, autor, edición, precio unitario, curso, especialidad, clase, número de personas, fecha)
Inventario de libros de texto (número de suscripción, título, editorial, autor, edición, precio unitario, cantidad)
Compra de libro de texto (número de suscripción, título, editorial, autor, edición, precio unitario, curso, especialización, clase, cantidad, fecha)
La sección de acceso poco frecuente incluye:
Colección de material didáctico (fecha, clase, cantidad)
En la etapa inicial del diseño de la base de datos, para optimizar físicamente la futura base de datos, algunos
El sistema configura variables, almacena coeficientes de distribución y asigna valores predeterminados razonables a estas variables. pero estos valores no son
Debe ser adecuado para cada entorno de aplicación Al realizar el diseño físico, reasignar estas variables para mejorar
rendimiento de sistema. Al elegir dispositivos de hardware, sistemas operativos de servidor y bases de datos, debe considerar poder
Aumenta y expande.
Al configurar las variables del sistema, preste atención a la cantidad de usuarios que usan la base de datos al mismo tiempo, la cantidad de bases de datos abiertas al mismo tiempo
Número de objetos, parámetros de asignación de memoria, parámetros de asignación de búfer, tamaño de segmento de tiempo, tamaño de base de datos, bloqueo
numero etc Estos valores de parámetros afectarán el tiempo de almacenamiento de la base de datos y la asignación de espacio de almacenamiento.
6.3 Estructura de la tabla de la base de datos
Tabla 6-1 Formulario de información de compra de libros de texto (book_purchase_info)
nombre del campo |
Tipo de campo |
longitud |
clave principal/foránea |
Restricciones de valor de campo |
Nombre chino correspondiente |
suscripción_No |
varchar |
50 |
Clave primaria |
No nulo |
número de subscripción |
nombre del libro |
varchar |
50 |
No nulo |
Titulo del libro |
|
prensa |
varchar |
50 |
No nulo |
el editor |
|
autor |
varchar |
50 |
Nulo |
autor |
|
revisión |
varchar |
50 |
No nulo |
Edición |
|
precio unitario |
varchar |
50 |
Nulo |
precio unitario |
|
plan de estudios |
varchar |
50 |
Nulo |
curso |
|
importante |
varchar |
50 |
Nulo |
importante |
|
nombre de la clase |
varchar |
50 |
Nulo |
clase |
|
comprar_Cuenta |
carbonizarse |
100 |
No nulo |
cantidad |
|
fecha_de_compra |
Fecha |
Nulo |
fecha |
Tabla 6-2 Tabla de información de inventario de libros de texto (book_inventory_info)
nombre del campo |
Tipo de campo |
longitud |
clave principal/foránea |
Restricciones de valor de campo |
Nombre chino correspondiente |
suscripción_No |
varchar |
50 |
Clave primaria |
No nulo |
número de subscripción |
nombre del libro |
varchar |
50 |
No nulo |
Titulo del libro |
|
prensa |
varchar |
50 |
No nulo |
el editor |
|
autor |
varchar |
50 |
Nulo |
autor |
|
revisión |
varchar |
50 |
No nulo |
Edición |
|
precio unitario |
varchar |
50 |
Nulo |
precio unitario |
|
book_Count |
carbonizarse |
100 |
No nulo |
cantidad |
Tabla 6-3 Formulario de información de suscripción de libros de texto (book_subscription_info)
nombre del campo |
Tipo de campo |
longitud |
clave principal/foránea |
Restricciones de valor de campo |
Nombre chino correspondiente |
suscripción_No |
varchar |
50 |
Clave primaria |
No nulo |
número de subscripción |
nombre del libro |
varchar |
50 |
No nulo |
Titulo del libro |
|
prensa |
varchar |
50 |
No nulo |
el editor |
|
autor |
varchar |
50 |
Nulo |
autor |
|
revisión |
varchar |
50 |
No nulo |
Edición |
|
precio unitario |
varchar |
50 |
Nulo |
precio unitario |
|
plan de estudios |
varchar |
50 |
Nulo |
curso |
|
importante |
varchar |
20 |
Nulo |
importante |
|
nombre de la clase |
varchar |
20 |
Nulo |
clase |
|
número_personas |
varchar |
20 |
No nulo |
número de personas |
|
fecha_info |
fecha |
Nulo |
fecha |
Tabla 6-4 Tabla de información de la colección (collection_info)
nombre del campo |
Tipo de campo |
longitud |
clave principal/foránea |
Restricciones de valor de campo |
Nombre chino correspondiente |
fecha de colección |
varchar |
No nulo |
fecha |
||
nombre de la clase |
varchar |
20 |
No nulo |
clase |
|
dinero |
varchar |
10 |
No nulo |
La cantidad |
Tabla 6-5 Tabla de información del usuario (s_user)
nombre del campo |
Tipo de campo |
longitud |
clave principal/foránea |
Restricciones de valor de campo |
Nombre chino correspondiente |
codigo de usuario |
varchar |
50 |
anfitrión |
No nulo |
codigo de usuario |
nombre de usuario |
varchar |
50 |
nulo |
nombre de usuario |
|
sexo |
varchar |
10 |
nulo |
género |
|
importante |
varchar |
20 |
nulo |
importante |
|
nombre de la clase |
varchar |
20 |
nulo |
clase |
|
personas con discapacidad |
varchar |
10 |
nulo |
contraseña |
|
cumpleaños |
varchar |
30 |
nulo |
Cumpleaños |
|
nombre de rol |
varchar |
30 |
nulo |
Número de teléfono |
7 Implementación de base de datos
7.1 Creación de base de datos
crear libro de compras de base de datos
en
( nombre=datos_de_trabajo,
filename='d:\program files (x86)\sql\buybook.mdf',
size=5,
filegrowth=1
)
log on
( name=work_log,
filename='d:\program files (x86)\sql\buybook_log.ldf',
size=1,
maxsize=50,
filegrowth=10%
)
7.2 数据库表创建
(1)用户表
CREATE TABLE s_user (
user_code varchar (50) NOT NULL,
user_name varchar (50) NULL,
sex varchar (10) NULL,
major varchar (20) NULL,
class_name varchar (20) NULL,
pwd varchar (10) NULL,
birthday varchar (30) NULL,
role_name varchar (30) NULL,
CONSTRAINT PK_s_user PRIMARY KEY CLUSTERED
)
- 教材购买信息表
CREATE TABLE book_purchase_info (
subscription_No varchar (50) NOT NULL,
book_name varchar (50) NULL,
press varchar (50) NULL,
author varchar (50) NULL,
revision varchar (50) NULL,
unit_Price varchar (50) NULL,
curriculum varchar (50) NULL,
major varchar (50) NULL,
class_name varchar (50) NULL,
buy_Count varchar (50) NULL,
buy_date date NULL,
CONSTRAINT PK_book_purchase_info PRIMARY KEY CLUSTERED
)
- 教材库存信息表
CREATE TABLE book_inventory_info (
subscription_No varchar (50) NULL,
book_name varchar (50) NULL,
press varchar (50) NULL,
author varchar (50) NULL,
revision varchar (50 ) NULL,
unit_Price varchar (50) NULL,
book_Count char (100) NULL
)
- 教材征订信息表
CREATE TABLE book_subscription_info (
subscription_No varchar (50) NOT NULL,
book_name varchar (50) NULL,
press varchar (50) NULL,
author varchar (50) NULL,
revision varchar (50) NULL,
unit_Price varchar (50) NULL,
curriculum varchar (50) NULL,
major varchar (20) NULL,
class_name varchar (20) NULL,
people_Num varchar (20) NULL,
date_info date NULL,
CONSTRAINT PK_book_subscription_info PRIMARY KEY CLUSTERED
)
(5)用户信息表
CREATE TABLE s_user (
user_code varchar (50) NOT NULL,
user_name varchar (50) NULL,
sex varchar (10) NULL,
major varchar (20) NULL,
class_name varchar (20) NULL,
pwd varchar (10) NULL,
birthday varchar (30) NULL,
role_name varchar (30) NULL,
CONSTRAINT PK_s_user PRIMARY KEY CLUSTERED
)
7.3 建立存储过程
(1)建立用户表查询存储过程
create procedure s_user
as
begin
select b.用户编码,
b.用户名,
性别,
专业,
班级,
密码,
生日,
手机号
from 用户表 a
end
(2)建立教材购买信息表查询存储过程
create procedure book_purchase_info
as
begin
select b.征订号,
b.书名,
出版社,
作者,
版次,
单价,
课程,
专业,
班级,
数量,
日期
from 教材购买信息表 a
inner join 用户表 b on a.班级 = b.班级
end
(3)建立教材征订信息表更新存储过程
Create procedure book_subscription_info @班级 char(8), @记录号 int,
@姓名 char(30),@专业 char(10), @人数 char(10),
@日期 datetime
as
if not exists(select *
from 教材征订信息表
where 用户编码 = @用户编码)
Print ('不存在该用户')
else
begin
update 教材征订信息表
set 征订号=@征订号,
书名=@书名,
班级=@班级,
数量=@数量,
日期=@日期
where 用户编码 = @用户编码;
end
7.4创建触发器
(1) 创建一个触发器,当删除用户信息表时,时也删除其他表中用户的信息。如当删除用户表中信息时,也删除教材征订信息表中的内容,教材购买信息表,收款信息表分别建立此类触发器。
create trigger data_del
on 用户信息表
after delete
as
begin
delete 教材征订信息表
where 用户班级 in (select 用户班级 from deleted)
end
(2)建立教材购买信息触发器:
create trigger book_purchase_update
on 班级
after update
as
declare
@new_book_purchase_update int, @old_book_purchase_update int
select @old_book_purchase_update = deleted.征订号
from deleted
select @new_book_purchase_update= inserted.征订号
from inserted
if ((@new__book_purchase_update - @old__book_purchase_update) > @old__book_purchase_update * 0.15)
begin
raiserror ('教材购买过长,取消操作',16,1)
rollback transaction
end
(3)建立收款触发器:
CREATE TRIGGER collection_info
ON 用户信息表
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
Declare @class int;
Select @class = 班级 From 用户信息表
IF (@class = null)
Begin
Insert into 用户信息表(员工编码, 用户名, 性别, 专业, 班级, 密码, 生日,手机号)
Select 员工编码, 用户名, 性别, 专业, 班级, 密码, 生日,手机号
From inserted
End
ELSE
Begin
print ('用户班级不存在')
rollback transaction
END