首页 >> 精选笔记

数据库存储所有数据的原因,一个数据库文件中可以有很多报表用于存储基本数据对不对

2024-04-10 精选笔记 6 作者:gynm37GLQ

一、请问什么是数据的完整性如何保证数据的完整性

数据完整性(Data Integrity)是

指数据的精确性(Accuracy)和可靠性(Reliability)。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。数据完整性分为四类:实体完整性(Entity Integrity)、域完整

性(Domain Integrity)、参照完整性(Referential Integrity)、用户定义的完整性(User-definedIntegrity)。

保证数据的完整性:

1.用约束而非商务规则强制数据完整性

如果你按照商务规则来处理需求,那么你应当检查商务层次/用户界面:如果商务规则以后发生变化,那么只需要进行更新即可。

假如需求源于维护数据完整性的需要,那么在数据库层面上需要施加限制条件。

如果你在数据层确实采用了约束,你要保证有办法把更新不能通过约束检查的原因采用用户理解的语言通知用户界面。除非你的字段命名很冗长,否则字段名本身还不够。— Lamont Adams

只要有可能,请采用数据库系统实现数据的完整性。这不但包括通过标准化实现的完整性而且还包括数据的功能性。在写数据的时候还可以增加触发器来保证数据的正确性。不要依赖于商务层保证数据完整性;它不能保证表之间(外键)的完整性所以不能强加于其他完整性规则之上。

— Peter Ritchie

2.分布式数据系统

对分布式系统而言,在你决定是否在各个站点复制所有数据还是把数据保存在一个地方之前应该估计一下未来5年或者10年的数据量。当你把数据传送到其他站点的时候,最好在数据库字段中设置一些标记。在目的站点收到你的数据之后更新你的标记。为了进行这种数据传输,请写下你自己的批处理或者调度程序以特定时间间隔运行而不要让用户在每天的工作后传输数据。本地拷贝你的维护数据,比如计算常数和利息率等,设置版本号保证数据在每个站点都完全一致。

— Suhair TechRepublic

3.强制指示完整性

没有好办法能在有害数据进入数据库之后消除它,所以你应该在它进入数据库之前将其剔除。激活数据库系统的指示完整性特性。这样可以保持数据的清洁而能迫使开发人员投入更多的时间处理错误条件。

— kol

4.关系

如果两个实体之间存在多对一关系,而且还有可能转化为多对多关系,那么你最好一开始就设置成多对多关系。从现有的多对一关系转变为多对多关系比一开始就是多对多关系要难得多。

— CS Data Architect

5.采用视图

为了在你的数据库和你的应用程序代码之间提供另一层抽象,你可以为你的应用程序建立专门的视图而不必非要应用程序直接访问数据表。这样做还等于在处理数据库变更时给你提供了更多的自由。

— Gay Howe

6.给数据保有和恢复制定计划

考虑数据保有策略并包含在设计过程中,预先设计你的数据恢复过程。采用可以发布给用户/开发人员的数据字典实现方便的数据识别同时保证对数据源文档化。编写在线更新来“更新查询”供以后万一数据丢失可以重新处理更新。

— kol

7.用存储过程让系统做重活

解决了许多麻烦来产生一个具有高度完整性的数据库解决方案之后,我所在的团队决定封装一些关联表的功能组,提供一整套常规的存储过程来访问各组以便加快速度和简化客户程序代码的开发。在此期间,我们发现3GL编码器设置了所有可能的错误条件,比如以下所示:

SELECT Cnt= COUNT(*)

FROM [<Table>]

WHERE [<primary key column>]=<new value>

IF Cnt= 0

BEGIN

INSERT INTO [<Table>]

( [< primary key column>])

VALUES(<New value>)

END

ELSE

BEGIN

<indicate duplication error>

END

而一个非3GL编码器是这样做的:

INSERT INTO [<Table>]

( [< primary key column>])

VALUES

(<New value>)

IF@@ERROR= 2627-- Literal error code for Primary Key Constraint

BEGIN

<indicate duplication error>

END

第2个程序简单多了,而且事实上,利用了我们给数据库的功能。虽然我个人不喜欢使用嵌入文字(2627)。但是那样可以很方便地用一点预先处理来代替。数据库不只是一个存放数据的地方,它也是简化编码之地。

— a-smith

8.使用查找

控制数据完整性的最佳方式就是限制用户的选择。只要有可能都应该提供给用户一个清晰的价值列表供其选择。这样将减少键入代码的错误和误解同时提供数据的一致性。某些公共数据特别适合查找:国家代码、状态代码等

二、一个数据库文件中可以有很多报表用于存储基本数据对不对

可以,是对的

在报表项目中,报表的源数据可以放在数据库,也可以放在文件里。比如,一个互联网公司的网站运营报表系统,注册用户的信息来自于网站系统,存放在Oracle数据库;用户操作数据来自于网站系统的日志文件,是文本文件。一般做法是将用户操作数据从文本文件导到Oracle,再用SQL语句去提取和计算数据。

三、什么是数据的独立性数据库系统中为什么能具有数据独立性

数据的独立性:是指应用程序和数据之间的依赖程度低,相互影响小。

数据独立性分成物理数据独立性和逻辑数据独立性两级:

1,数据的物理独立性是指应用程序对数据存储结构的依赖程度;

2,数据物理独立性高是指当数据的物理结构发生变化时,应用程序不需要修改也可以常工作。

为什么具有数据独立性的原因:

1,因为数据库管理系统能够提供数据的物理结构与逻辑结构之间的映像或转换功能。这种数据映像功能使得应用程序可以根据数据的逻辑结构进行设计,并且一旦数据的存储结构发生变化,系统可以通过修改其映像来适应变化。所以数据物理结构的变化不会影响到应用程序的正确执行。

数据库系统之所以具有较高的数据逻辑独立性,是由于数据库系统能够提供数据的全局逻辑结构和局部逻辑结构之间的映像和转换功能。

2,这种数据映像功能使得数据库可以按数据全局逻辑结构设计,而应用程序可以按数据局部逻辑结构进行设计。这样,当全局逻辑结构中的部分数据结构改变时,即使那些与变化相关的数据局部逻辑结构受到了影响,也可以通过修改与全局逻辑结构的映像而减小其受影响的程度,使数据局部逻辑结构基本上保持不变。

扩展资料:

数据独立性概念背景:

一个数据库结构从逻辑上可以分为外部模式,内部模式和概念模式三层。为了提高数据库系统中的数据独立性,DBMS在这三级模式之间提供了两层映像。作为数据库系统的基本特征的数据和程序的独立性正是依靠于这三级模式和两级映像。

概念模式也称模式,是由数据库设计者综合所有用户数据,并且按照一定的观点构造的对数据库全局逻辑结构的描述。在数据库系统的三级模式中,概念模式处于中间层,一个数据库只有一个概念模式,它既不涉及数据的物理存储细节和硬件环境也与具体的应用程序和程序设计语言无关。

外部模式也称为子模式,子模式是用户和数据库之间的接口,是数据库用户能看得见的和使用的局部数据的逻辑结构和特征的描述。

内部模式也称为存储模式,是对数据库中数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内部模式。内部模式是DBMS管理的最底层,它是物理存储设备上存储数据时的物理抽象。

参考资料:百度百科-数据独立性

四、在数据库中,产生数据不一致的根本原因是( )。

在数据库中,产生数据不一致的根本原因是数据冗余。

数据不一致性是指数据的矛盾性、不相容性。

产生数据不一致的原因主要有以下三种:

一是由于数据冗余造成的;

二是由于并发控制不当造成的;

三是由于各种故障、错误造成的。

扩展资料

数据不一致性的分类

数据集成系统中的数据不一致性主要来自两个层次,即数据本身的不一致性和模式匹配的不确定性。

1、在数据交换应用中,由于不同的应用对同一数据可能有着不同的要求,源数据的语义模型和目标数据的语义模型可能不一样,这就导致确定一致的源数据,可能因为违反了目标数据上的语义约束而不一致。

2、数据集成系统处理的数据多种多样,有些数据本身就不一致,例如通过信息抽取系统自动从文本或者半结构化的数据源中抽取的数据,由于抽取技术所限,这些数据通常不准确;还有一些数据是从在线数据源中抽取的,数据集成系统很难保证所抽取数据的可靠性和实时性。

另外,即使单个数据源是确定的,当多个自治的数据源整合到一个数据中,由于相互冲突,或违反全局语义模型,而表现为不一致。

参考资料来源:百度百科--数据不一致性

tags:

关于我们

京哲百货网,发布日用百货,服装类测评。

最火推荐

小编推荐

联系我们