网上图书销售管理数据库设计
2021-02-28王森王风硕
王森 王风硕
摘要:如今在网络上有越来越多的软件可以提供给用户使用,而在面向多用户的前提下,用户数据的精准储存是最为重要的。因为这关系着用户数据的是否安全,也关系着软件的使用寿命,所以数据库的设计和安全就是每个开发者都需要重点关注的地方。该文将以图书管理系统的数据库为例子来设计一个基本的数据库。
关键词:数据库;node.js;vue.js
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2021)35-0018-02
1引言
在网络技术非常发达的今天,越来越多的人参与到网络环境的建设中。进而也产生了大量的、涉及各个方面的软件或者网页供我们使用,而这些软件和网页除了前端方面设计需要易交互、美观之外,绝大多数的软件和网页还需要后台数据库的支持。因为每天都会有大量的用户数据需要存储,这部分数据关系到每一个用户的使用体验,所以必须完整且安全地保护好这些数据。本文就这个问题通过图书销售系统的数据库设计来说明如何设计一个这样的数据库。
2开发环境介绍
本文主要使用HeidiSQL和MySQL,HeidiSQL是一款用于提供简单化的MySQL服务器和数据库管理图形化界面的工具。HeidiSQL给予了用户一个用于在数据库浏览之间切换SQL查询的简单易用的界面。可以很简单很直观地设计数据库。MySQL作为独立的程序应用,他不会与其他的电脑程序发生冲突,或者镶嵌到客户中。也支持大型的数据库系统并且可提供多种数据链接途径。Node.js则是用于数据库和后端实现端口连接和数据传输,还是用来实现前后端数据监听和交互的媒介,在此就这方面就不再赘述。
3数据库设计
在我们提到的前提下数据库的设计应该满足所有人员的基本使用需求,即对于管理人员、普通用户和游客用户都能有良好的使用体验。所以就需要对每个不同的用户生成或者不生成相应的数据表来储存数据。
3.1数据库设计的目标
由网站为图书销售系统的功能可以知道,这个数据库至少需要有足够的大来储存每天都会产生的用户和书籍数据。而且该数据库应该足够的高效且稳定,其中就包含用户在查找书籍数据或者浏览历史记录时数据库做出反应、查找数据的速度和稳定性。除了这些,数据库系统还需要具备较高的范式、数据要足够的安全、可移植性高、数据冗余度低、共享性好等特点。只有具备了这些特点,该数据库才会给用户一个较好的使用体验,也就直接影响了该网站的使用效率。
3.2数据库的概念结构
根据本文的要求,本文的数据库中属性、实体和联系的关系如下:
(1)实体:客观存在并可以互相区分的物理体被称为实体,本系统的实体主要包括管理员,普通用户,游客用户,书籍等。
(2)属性:实体所具备的特征为属性,一个实体可以具有多个属性,多个实体也可以共用一个属性,以此为区分条件,就可以很明确地描绘出一个完整的实体,比如该系统中的书籍实体,其就包含书名、作者、出版社、开本、出版日期等属性。
(3)联系:而在现实世界中,该数据库所包含的实体并不是彼此孤立的,而是有或多或少的联系,这种联系就有“一对一”“一对多”“多对多”这三种联系。
而实体之间联系最直白的表示方式就是E-R图,通过E-R图可以很轻松地看出每个实体之间的联系以及联系方式。本系统的E-R图如下所示:
图书销售系统中每个实体的属性:
书籍:(书籍名称,作者,出版社,出版日期,isbn编号,简介,备注)。
管理人员:(姓名,性别,权限级别,编号,照片,出生日期,手机号。)
普通用户:(姓名,性别,权限级别,编号,出生日期,手机号)。
游客用户:(临时ID)。
3.3数据库的逻辑结构
目标:把概念设计出的E-R模型图转成选用数据库适用的逻辑结构。概念结构向逻辑结构转化的一个关键问题就是将实体之间的联系转换为关系模型,逻辑结构的设计步骤如下:
(1)将概念结构中通过该系统绘制出来的E-R模型图遵循所选择的数据库中的相关规则转化为该数据 库能适用的数据模型。
(2)对数据模型中的产品进行对方面的对比改进,找出最适合的关系模式。
(3)对定下来的数据模型以一定的方式进行优化,以尽可能提高逻辑结构设计的性能,这样在后续的数据库构建中才会有足够好的数据支撑。
3.4数据库的表创建及其表关联
按照逻辑结构设计中的关系来进行表的设计,而在表的创建过程中,每一个实体必须有一个主键,且该主键一般选择对于该数据库来说仅仅只有该实体才拥有的属性。除此之外,还需要为每个主键配合定义一个外键,使主键、外键之间能一一對应起来。而表与表之间的联系一般被分为三种,分别是一对一、一对多和多对多。在设计关系表时需要注意三个问题:数据的冗余、数据之间的函数关系和数据空间的选择。数据冗余的控制可以避免数据空间的浪费,函数依赖是表中的各字段属性要满足3NF规范式,数据空间选择则是因为对于不同的实体,其所需要的空间大小也是不同的,所以根据不同的实体表选择不同的空间以达到空间的充分利用,不浪费。在此以书籍表为例:
其他表也通过类似的方式建立,然后再建立关系表来将这些表链接起来,在此就不再一一展示。
3.5数据库的物理设计
数据库的物理设计主要就是以数据库的数据来制定存储结构和存储方法的依赖,数据库的存储方法一般来说分为三种,分别是:索引方法、聚簇索引方法和HASH方法。索引方法就是根据要求,确定对应关系的哪些属性列建立索引、哪些属性列建立组合索引、哪些索引要设计为唯一索引等。聚簇索引方法就是为了提高某属性(或属性组)的查询速度,可以将这些属性(成为聚簇码,cluster key)上具有相同值的元组集中放置在连续的物理块上。HASH方法则是有些提供HASH方法的数据库在满足某些特定条件时可以适用HASH方法。以上三种方式中最常用的就是前两种。而数据的存储结构选择就主要是在实际情况下选择一种在保证数据库能快速准确运行条件下的最节省空间的储存方式。
3.6数据库的测试
在数据库设计完成之后,需要先通过简单的增删改查来检查数据库能否正常使用,在此通过录入的100条数据来模拟测试,并执行增删改查操作,当返回如图3所示,说明数据库的初步设计已经完成。
3.7数据库的安全性
随着使用,数据信息只会慢慢增多,数据库的存储容量也慢慢变大,但是当前主流的数据库中,数据几乎都是以明文的形式存在于存储设备中,如果存储设备遗失,就很有可能会引起数据泄露风险,给使用数据库存储信息的用户带来极大的危害。又因为数据库中的文件一般都以明文形式存在,导致一些网络黑客可能会通过网络、操作系统等电脑的漏洞接触到这些文件,从而导致数据有泄露的风险[1]。
所以为了避免数据库的安全方面的一些问题,制定了一些设计规范。在建表时尽量避免一个表中有过多的数据关系,可以多创建一些表来储存各个数据之间的关系。这样不仅会避免可能会对数据库造成的漏洞,还能更方便地维护和查找数据。而且尽量避免出现重复字段、对命名进行规范,最好是制定一个字段的命名规定,然后所有的命名都严格按照此命名规范来命名。
为了解决这些问题,可以采取以下方式,最简单的方法就是对用户的操作权限进行限制,这样可以避免大多数安全性的问题。其次重要的是对数据进行加密的操作。也可以增加身份验证、权限控制和敏感数据加密等方法可以有效地避免数据库绝大部分安全问题。
除了这些,還可以实时更新操作系统这样也可以避免由于版本问题而带来的数据泄露隐患。
4结束语
本文通过了图书管理系统来介绍了数据库的设计实现以及其中需要主要的问题和相应的解决方法,仅仅是提供了一个设计数据库的基本方式,在现实的生活中数据库的设计是非常严谨且复杂的,而随着数据库的体量越大,其中所涉及的知识面以及需要考虑的东西也就越多。
该文章包含的代码方面比较少,因为数据库主要是对数据的存储,而这方面则是前后端共同完成的,数据库仅仅是起到一个输入和输出数据的作用。
参考文献:
[1] 张士刚.计算机软件开发中数据库安全设计的应用实践分析[J].发明与创新(职业教育),2021(7):238-239.
[2] 王兵兵,陈能,丁雅雪.基于MySQL的智慧社区助老关爱平台数据库设计[J].信息通信,2019,32(2):152-154.
[3] 杨浦,王樑.网上图书销售管理数据库设计[J].电脑知识与技术,2018,14(26):13-15.
[4] 吴锋珍.高校图书管理系统的数据库设计[J].湖南邮电职业技术学院学报,2016,15(2):32-35.
【通联编辑:梁书】