数据库中 什么是数据完整性

数据库中 什么是数据完整性,第1张

数据库中的数据是从外界输入的,而数据的输入由于种种原因,会发生输入无效或错误信息。保证输入的数据符合规定,成为了数据库系统,尤其是多用户的关系数据库系统首要关注的问题。数据完整性因此而提出。本章将讲述数据完整性的概念及其在SQL Server 中的实现方法。

数据完整性(Data Integrity)是指数据的精确性(Accuracy) 和可靠性(Reliability)。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效 *** 作或错误信息而提出的。

数据库采用多种方法来保证数据完整性,包括外键、约束、规则和触发器。系统很好地处理了这四者的关系,并针对不同的具体情况用不同的方法进行,相互交叉使用,相补缺点。

扩展资料:

数据完整性分为以下3类:

1、域完整性:

是指一个列的输入有效性,是否允许为空值。强制域完整性的方法有:限制类型(通过设定列的数据类型)、格式(通过CHECK约束和规则)或可能值的范围(通过FOREIGN KEY约束、CHECK约束、DEFAULT定义、NOT NULL定义和规则)。

2、实体完整性:

是指保证表中所有的行唯一。实体完整性要求表中的所有行都有一个唯一标识符。这个唯一标识符可能是一列,也可能是几列的组合,称为主键。

3、参照完整性:

是指保证主关键字(被引用表)和外部关键字(引用表)之间的参照关系。它涉及两个或两个以上表数据的一致性维护。外键值将引用表中包含此外键的记录和被引用表中主键与外键相匹配的记录关联起来。

参考资料来源:百度百科--数据完整性

mysql数据库有undo空间

5种mysql做可靠性分析的方案:

1.MySQL Clustering(ndb-cluster stogare)

简介:

MySQL公司以存储引擎方式提供的高可靠性方案,是事务安全的,实时复制数据,可用于需要高可靠性及负载均衡的场合。该方案至少需要三个节点服务器才能达到较好的效果。

成本:

节点服务器对RAM的需求很大,与数据库大小呈线性比例;

最好使用千兆以太网络;

还需要使用Dolphin公司提供的昂贵的SCI卡。

优点:

可用于负载均衡场合;

可用于高可靠性场合;

高伸缩性;

真正的数据库冗余;

容易维护。

缺点:

随着数据库的变大,对RAM的需求变得更大,因此成本很高;

速度:

几乎 比典型的单独服务器(无千兆以太网,无SCI卡,存储引擎相关的限制少)慢10倍。

应用场合:

冗余,高可靠性,负载均衡

2. MySQL / GFS-GNBD/ HA (Active/Passive)

简介:

如果多个MySQL服务器使用共享硬盘作为数据存储,此方案如何?

GFS/GNBD可以提供所需的共享硬盘。

GFS是事务安全的文件系统。同一时刻你可以让一个MySQL使用共享数据。

成本:

最多n台高性能服务器的成本,其中一个激活的,其他作为备份服务器。

优点:

高可靠性

某种程度的冗余

按照高可靠性进行伸缩

缺点:

没有负载均衡

没有保证的冗余

无法对写 *** 作进行伸缩

速度:

单独服务器的2倍。对读 *** 作支持得较好。

应用场合:

需要高可靠性的、读 *** 作密集型的应用

3. MySQL / DRBD / HA (Active/Passive)

简介:

如果多个MySQL服务器使用共享硬盘作为数据存储,此方案如何?

DRBD可以提供这样的共享硬盘。DRBD可以被设置成事务安全的。

同一时刻你可以让一个MySQL使用共享数据。

成本:

最多n台高性能服务器的成本,其中一个激活的,而其他则作为备份服务器。

优点:

高可靠性;

一定程度的冗余;

以高可靠性名义来看是可伸缩的。

缺点:

没有负载均衡

没有保证的冗余

在写负载方面没有伸缩性

速度:

在读写方面相当于单独服务器

应用场合

需要高可靠性、读 *** 作密集型的应用

4. MySQL Write Master / Multiple MySQL Read Slaves (Active/Active)

简介:

考虑不同的读、写DB数据库连接的情况。可以使用一台主服务器用于写 *** 作,而采用n台从服务器用于读 *** 作。

成本:

最多1台高性能写服务器,n台读服务器的成本

优点:

读 *** 作的高可靠性;

读 *** 作的负载均衡;

在读 *** 作负载均衡方面是可伸缩的。

缺点:

无写 *** 作的高可靠性;

无写 *** 作的负载均衡;

在写 *** 作方面无伸缩性;

速度:

同单独服务器;在读 *** 作方面支持得较好

应用场合

读 *** 作密集型的、需要高可靠性和负载均衡的应用。

5. Standalone MySQL Servers(Functionally separated) (Active)

多台功能分离的单独服务器,没有高可靠性、负载均衡能力,明显缺点太多,不予考虑。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9263952.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存