“数据库验证”是什么意思?
本文关键字:是什么 意思 数据库验证 数据库 验证 | 更新日期: 2023-09-27 18:16:18
我遇到了两个我无法从书中理解的陈述:MCSD认证工具包(考试70-483)
这个文本块包含以下语句:
使数据库验证其数据可以防止程序保存无效数据,这很重要,但在某种意义上,这也是最后的手段。许多程序在将数据保存到数据库之前要对数据进行大量的处理,因此在用户输入和数据库之间存在数据损坏的可能性。"程序还使用存储在数据库中的数据稍后执行计算,这为数据损坏提供了其他机会。"最后,有些程序根本不使用数据库。
我无法理解下面的语句:"许多程序在将数据保存到数据库之前对数据进行了大量的处理,因此在用户输入和数据库之间存在数据损坏的机会"
:"程序还使用存储在数据库中的数据稍后执行计算,这为数据损坏提供了其他机会。"
请给我解释一下这些陈述。是否意味着在对数据进行处理后,该数据不适合存储在数据库中?我认为使用这个词损坏可能有点…世界末日。他们最好使用与预期格式、范围或值不一致的短语。
在没有读过这本书的情况下,我建议他们讨论使用INSERT和UPDATE触发器作为在数据提交到表之前验证(和拒绝)数据的机制。
在应用程序UI和数据库之间数据损坏的一个例子是地址。众所周知,以一致和连贯的方式存储这些信息非常困难,特别是当最终用户以自由形式输入这些信息时。然后,您的代码将接受它,尝试对它进行一些处理,确保它符合某些广泛的标准(例如有街道号码,地址中有"street"或"avenue"或"road"等),然后您将保存它-很可能跨几个数据库字段。在这个过程中,地址很容易被不经意地弄乱,太长,行(字段)断行在错误的地方,等等。确保该数据不会以糟糕的格式持久化的一种方法是在数据库级别使用最终级别的验证。"程序还使用存储在数据库中的数据稍后执行计算,这为数据损坏提供了其他机会。"
为什么推荐这样做,因为很多时候我们在分层结构中工作,UI层只负责接受值,业务层负责数据处理,DAL负责保存数据。所以当数据通过不同的层和数据处理时,它可能会损坏,我们不想冒这个风险,因为一旦数据进入数据库,就没有机制来跟踪哪里出错了