问题标签 [data-integrity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - 数据完整性攻击
我需要构建三个针对 CIA 模型的不同类型攻击的示例。现在 C 和 AI 可以毫无问题地找到大量材料,但我完全没有运气找到 Integrity 攻击的例子。
我了解对 Integrity 的攻击要么旨在使数据不可用或错误。可以通过捕获 IP 数据包并对其数据进行加扰来使其无法使用。这完全正确吗?
搜索这个的任何提示也很有帮助,因为我不太确定这些术语,因为我的学习不是英语。我已经尝试了“数据完整性”、“数据完整性攻击”等的所有变体,但没有运气。
c# - .Net 中的数据集序列化问题
我有一个包含多个表的数据集,这些表是从存储过程中填充的。我想让它嵌套在 GetXml() 方法中。
我添加了关系:
我把它嵌套了:
并强制执行:
所有这些都运行良好,没有错误。问题是当我调用时set.GetXml()
,它会引发 DataException:“无法继续序列化 DataTable 'Document'。它包含一个 DataRow,它在同一个外键上有多个父行”。
经检查,有问题的表格每张都只有一行。lngDocumentSeriesId 和 strAuthorName 列匹配。即使存在数据完整性问题,据set.EnforceConstraints = true;
我了解,它也应该导致在线异常。
什么可能导致此错误(当所有表只有一行时),如何解决?
sql-server - 防止将不适当的行插入 SQL Server 数据库
我有一张帐篷租金表,其中包含以下列:
DateStarted
总是在租期开始时输入,最初为DateEnded
NULL,只有在租期到期时才会被填充。CustomerID
是租用帐篷的客户的 ID。
我需要做的是阻止用户为任何给定客户(用 表示CustomerID
)插入新行,如果该客户有任何租金DateEnded=NULL
。
我不知道该怎么做。我正在考虑一个检查约束,但它们不允许我查看其他行。我在考虑唯一约束,但不知道在这种情况下是否可以使用它们。我在考虑 On-Insert 触发器,但我不确定如果不满足条件是否可以取消插入。
谢谢你的帮助。
git - 哪些 git 命令执行完整性检查?
试图确定用户在使用 git-1.7.4.1 的对象数据库中被警告的速度有多快,我拉了一个一位 switcheroo:
当然,git-fsck
通知
但git-log
对改变感到满意
原样git-checkout
。
一个特定的调用git-show
揭示了腐败
但不是更广泛的。
甚至git-clone
没有注意到!
执行完整性检查的特定 git 命令模式(例如,git show $sha1
应该存在但不存在git show
)的完整列表是什么?git show HEAD
database - How to overcome Netezza's lack of unique constraint/referential integrity enforcement?
It appears that the lack of support for enforcing 2 basic constraints (unique and foreign key), is a reason for loss of many man-hours debugging and troubleshooting difficult problems. What starts as a trivial, easy-to-fix problem (dup rows /inconsistent primary-detail tables) goes un-noticed, grows and raises complex edge-scenarios in our application, or even in our hardware (e.g. self-join with dups can cause inflation and storage exhaustion).
- Netezza serves multiple purposes in our environment: production, research, qa and staging. Naturally our ETL processes can’t be mature and can’t verify all constraints in all those scenarios.
- Even in our most mature applications used in production, where data is verified while ETL loads it, we create a series of tables each the result of a calculation on its predecessors. Sometimes the data-integrity is broken along the way, not right on the start (as a result of a buggy statement)
Can anyone recommend a methodology/tool for avoiding these headaches?
c# - 如何传输散列以进行文件完整性检查?
我有一个从服务器下载文件的应用程序。连接非常不稳定,因此我们正在实施一项功能来检查文件完整性,以便我们可以知道文件是否未正确下载并进行相应管理。
我应该如何进行这个过程?现在我向服务器请求文件的哈希值,然后我对文件本身发出另一个请求,然后计算下载文件的哈希值并比较两个哈希值。
这是正确的方法吗?有些东西告诉我它不是。如果发现哈希值不同,我会多次执行完全相同的过程,包括再次请求哈希值(应该相同)。我应该每次都麻烦请求哈希吗?如果没有正确传输,我会这样做吗?这是不必要的吗?有没有办法让我减少请求的数量,因为它们很昂贵,而且现在事情非常缓慢。
有任何想法吗?
以防万一服务器使用 C# 而客户端是 android 设备 (JAVA)。
谢谢,
php - 数据完整性和限制
使用以下表格布局:
使用 PHP/MySQL 设置是否有某种方法可以通过约束或索引进行限制,对于 Something 表中标识的每个 SomethingTypeCode(1、2、3),只能有一个 IsObsolete = N 与之关联?
我希望这能解释我想要完成的事情。我只是不知道如何解决这个问题。我希望在数据库本身中尽可能地维护数据完整性,然后将其扩展到 PHP。
编辑:
为了回应我对 VoteyDisciple 答案的困惑。
EmailTypeCode:P = 个人,B = 商业,S = 学校
这是我的设计:
这将允许一个人在给定类型代码中拥有一种以上类型的电子邮件(即 2 封业务电子邮件),并避免数据库中的重复,并且不需要任何空值。因为我只关心在每个类别(系统将使用的那个)中有一个活动电子邮件,这就是 IsObsolete 发挥作用的地方。我可以保留历史记录,避免重复,避免空值,并确保在此处输入系统的唯一电子邮件地址。
当然,这也带来了我在原始问题中所述的问题。
VoteyDisciple 的方法
VoteyDisciple 如果我描述的错误(或正确),请告诉我。
“如果给定类型只能有一个” - 只有一个活动而不是一次,不仅仅是系统中的一个。
“现在 ActiveId 可以为 NULL”——我强调我不想要 NULL
,“或者它可以指向特定的 Something 记录。” 类型定义记录。
除了我上面的回答之外,这似乎增加了任何查询的撤消复杂性。我的回答是基于我对您所介绍的内容的理解。我们要么不了解对方,要么只在我这边。我感谢您的意见,但正如所介绍的那样,我不认为这是一个可行的解决方案。
mongodb - Mongodb 插入未成功完成(使用 node.js)
我有一个加载 XML 文件的 node.js 脚本。它遍历 Mongo 数组中的每个元素,并说它们都被正确插入,但是当脚本完成检查时db.collection.count();
告诉我,插入数据库的记录远少于预期的数量。
如何让 mongo 和 node.js 与插入很好地配合?
根据要求,代码在上面。本地读取文件(虽然以前是 HTTP 请求,但现在是 25 兆的文件,有很多 RSS 记录)
我刚刚运行了包含大约 10k 条记录的文件,脚本运行后 mongoDB 中的项目数约为 800 项。
根据答案,我替换了插入代码:
和:
java - 有没有办法在几个客户端和服务器提交后显式提交和回滚事务
环境:应用程序使用 Spring Framework 2.5.6.SEC01 和 iBatis 2.3.4.726。它是 MVC 设计。
这是场景:
从客户端输入/更新数据
按更新按钮提交
处理数据并执行 DML(插入、更新、删除)
将结果返回给客户端并显示数据
但是,在加载页面后,我需要通过 Javascript 调用 API(我无法控制 API,只需要传递所需的参数并检查结果是 SUCCESS 还是 ERROR)
如果 API 返回 SUCCESS,则无需执行任何操作。但它返回错误,我发出警报消息通知用户。
我有视图(客户端)、服务和数据访问层。当客户端提交时(场景#2),它进入Service处理数据并自动启动Transaction(场景#3)。退出服务并返回客户端时自动执行提交以显示数据(场景 #4)。
问题:如何暂停事务以不执行提交,然后返回客户端通过 Javascript 调用 API。当 API 返回 SUCCESS 时,通过 Ajax(或其他方式)执行提交,或者回滚。
感谢任何有关正确方向的指导。
database-design - 关系与检查约束
我的数据库中有一个表,其中包含状态名称和描述(称为状态)。我还有另外两个表,VacancyRequest 和 ActionRequest,每个表代表不同类型的实体,但每个表都有自己的状态。一个实体的可能状态不一定与另一实体的可能状态相匹配。
为了保持完整性,哪种方法更好?
创建另外两个表,VacancyRequestStatus 和 ActionRequestStatus,每个表都有一列——StatusID。这两个表将仅包含适用于其各自实体类型的 StatusID。然后,在 Vacancy 和 Action 表及其各自的状态表之间创建外键关系。每个状态表都有一个返回主状态表的 FK。
在状态表中添加一列以指示它适用于的实体(V 代表空缺,A 代表行动)。对 Vacancy 和 Action 表使用检查约束,以确保应用于记录的任何 StatusID 都适用于该实体类型。