“数据库验证”的含义是什么

时间:2014-08-05 02:14:42

标签: c# database

我在书中遇到了两个我无法理解的陈述:MCSD认证工具包(考试70-483)

此文本块包含以下语句:

使数据库验证其数据可以防止程序保存无效数据并且很重要,但在某种意义上它也是最后的手段。 “许多程序在将数据保存到数据库之前对数据执行大量工作,因此数据在用户输入和数据库之间存在损坏的可能性。” “程序还会使用以后存储在数据库中的数据来执行计算,并为数据损坏提供其他机会。”最后,有些程序根本不使用数据库。

我无法理解声明: “许多程序在将数据保存到数据库之前对数据执行大量工作,因此数据在用户输入和数据库之间存在损坏的可能性”

和: “程序还会使用以后存储在数据库中的数据来执行计算,并为数据损坏提供其他机会。”

请向我解释这些陈述。这是否意味着在对数据执行处理后,数据不适合存储在数据库中?

2 个答案:

答案 0 :(得分:0)

我认为使用 corrupted 这个词可能有点......世界末日。他们最好使用短语与预期的格式,范围或值不一致。

在没有阅读本书的情况下,我建议他们讨论使用INSERT和UPDATE触发器作为在将数据提交到表之前验证(和拒绝)数据的机制。

在应用程序的UI和数据库之间损坏的数据的示例是地址。众所周知,这些以一致和连贯的方式存储是困难的,特别是当它最终由自由形式的最终用户输入时。然后你的代码会接受它,试着按一下它,确保它符合某些广泛的标准(比如有一个街道号码,有街道'或者大道'或者' road'在地址等中,然后你将保存它 - 很可能是在几个数据库字段中。在这个过程中,地址可能很容易被无意中损坏,太长,行(字段)在错误的地方中断等。确保这些数据不以格式错误保存的一种方法是使用数据库级别的最终验证级别。

答案 1 :(得分:-1)

"程序还使用以后存储在数据库中的数据来执行计算,并为数据损坏提供其他机会。"

为什么推荐这个因为,我们多次在分层结构中工作,而UI层只负责接受值,业务层用于数据处理,DAL用于保存数据。因此,当数据通过各种层和数据处理时,它可能会损坏,我们不想冒这个风险,因为一旦数据在数据库中,就没有机制来跟踪出错的地方。