Oracle 11gR2 概念 第5章 数据完整性

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

@hotmail.comPreviousNextViewPDF5DataIntegrityPreviousNextViewPDF第5章数据完整性Thischapterexplainshowintegrityconstraintsenforcethebusinessrulesassociatedwithadatabaseandpreventtheentryofinvalidinformationintotables.本章介绍完整性约束如何强制执行与数据库关联的业务规则,并防止向表中输入无效信息。Thischaptercontainsthefollowingsections:本章包含以下各节:IntroductiontoDataIntegrityoTechniquesforGuaranteeingDataIntegrityoAdvantagesofIntegrityConstraintsTypesofIntegrityConstraintsoNOTNULLIntegrityConstraintsoUniqueConstraintsoPrimaryKeyConstraintsoForeignKeyConstraintsoCheckConstraintsStatesofIntegrityConstraintsoChecksforModifiedandExistingDataoDeferrableConstraintsoExamplesofConstraintChecking数据完整性简介o用于保证数据完整性的技术o完整性约束的优势完整性约束的类型o非空完整性约束o唯一性约束o主键约束o外键约束o检查性约束完整性约束的状态o对现有数据和新数据的检查o可延迟约束o约束检查的示例SeeAlso:另见:OverviewofTables表概述IntroductiontoDataIntegrity•数据完整性简介Businessrulesspecifyconditionsandrelationshipsthatmustalwaysbetrueormustalwaysbefalse.Forexample,eachcompanydefinesitsownpoliciesaboutsalaries,employeenumbers,inventorytracking,andsoon.Itisimportantthatdatamaintaindataintegrity,whichisadherencetotheserules,asdeterminedbythedatabaseadministratororapplicationdeveloper.业务规则会指定一些条件和关系,它们要么必须始终为真,要么必须始终为假。例如,每个公司会定义其有关工资、雇员人数、库存跟踪,等方面的政策。保持数据的数据完整性很重要,它由数据库管理员或应用程序开发人员来确定,以遵从业务规则。TechniquesforGuaranteeingDataIntegrity用于保证数据完整性的技术Whendesigningadatabaseapplication,developershavevariousoptions在设计数据库应用程序时,开发人员有多种选项用于保证存储在数据库中的@hotmail.comforguaranteeingtheintegrityofdatastoredinthedatabase.Theseoptionsinclude:数据的完整性。这些选项包括:Enforcingbusinessruleswithtriggeredstoreddatabaseprocedures,asdescribedinOverviewofTriggers如触发器概述中所述,通过数据库触发器存储过程,强制实施业务规则Usingstoredprocedurestocompletelycontrolaccesstodata,asdescribedinIntroductiontoServer-SideProgramming如服务器端编程介绍中所述,使用存储过程完全控制数据访问Enforcingbusinessrulesinthecodeofadatabaseapplication在数据库应用程序的代码中执行业务规则UsingOracleDatabaseintegrityconstraints,whicharerulesdefinedatthecolumnorobjectlevelthatrestrictvaluesinthedatabase使用Oracle完整性约束,它们是定义在列级或对象级上的,用来限制数据库中的值的规则Thischapterexplainsthebasicconceptsofintegrityconstraints.本章介绍完整性约束的基本概念。AdvantagesofIntegrityConstraints完整性约束的优势AnintegrityconstraintisaschemaobjectthatiscreatedanddroppedusingSQL.Toenforcedataintegrity,useintegrityconstraintsunlessitisnotpossible.Advantagesofintegrityconstraintsoveralternativesforenforcingdataintegrityinclude:完整性约束是一个模式对象,它使用SQL来创建和删除。若要强制实施数据完整性,请尽可能使用完整性约束。相对于其他强制数据完整性替代方案,完整性约束包括如下优点:Declarativeease容易声明BecauseyoudefineintegrityconstraintsusingSQLstatements,noadditionalprogrammingisrequiredwhenyoudefineoralteratable.TheSQLstatementsareeasytowriteandeliminateprogrammingerrors.在您定义或更改表时,使用SQL语句定义完整性约束,而无需任何额外的编程。SQL语句易于编写,也易于排除编程错误。Centralizedrules集中化的规则Integrityconstraintsaredefinedfortablesandarestoredinthedatadictionary(seeOverviewoftheDataDictionary).Thus,dataenteredbyallapplicationsmustadheretothesameintegrityconstraints.Iftheruleschangeatthetablelevel,thenapplicationsneednotchange.Also,applicationscanusemetadatainthedatadictionarytoimmediatelyinformusersofviolations,evenbeforethedatabasecheckstheSQLstatement.完整性约束定义在表上,并存储在数据字典中(请参阅数据字典概述)。因此,由所有应用程序输入的数据都必须遵守相同的完整性约束。如果约束规则在表级发生了更改,应用程序不需要变更。此外,甚至在数据库检查SQL语句之前,应用程序就可以使用数据字典中的元数据立即告知用户的违例行为。Flexibilitywhenloadingdata加载数据时的灵活性@hotmail.comYoucandisableintegrityconstraintstemporarilytoavoidperformanceoverheadwhenloadinglargeamountsofdata.Whenthedataloadiscomplete,youcanre-enabletheintegrityconstraints.当加载大量数据时,您可以暂时禁用完整性约束,以避免性能开销。当数据加载完成后,您可以重新启用完整性约束。SeeAlso:另见:OracleDatabase2DayDeveloper'sGuideandOracleDatabaseAdvancedApplicationDeveloper'sGuidetolearnhowtomaintaindataintegrity《Oracle数据库2日开发人员指南》和《Oracle数据库高级应用程序开发人员指南》了解如何维护数据完整性OracleDatabase2DayDBAandOracleDatabaseAdministrator'sGuidetolearnhowtomanageintegrityconstraints《Oracle数据库2日DBA》和《Oracle数据库管理员指南》了解如何管理完整性约束TypesofIntegrityConstraints完整性约束的类型OracleDatabaseenablesyoutoapplyconstraintsbothatthetableandcolumnlevel.Aconstraintspecifiedaspartofthedefinitionofacolumnorattributeiscalledaninlinespecification.Aconstraintspecifiedaspartofthetabledefinitioniscalledanout-of-linespecification.Oracle数据库使您能够在表级或列级应用约束。作为列或属性定义的一部分而指定的约束,称为行内规范约束。作为表定义的一部分而指定的约束称为行外规范约束。Thetermkeyisusedinthedefinitionsofseveraltypesofintegrityconstraints.Akeyisthecolumnorsetofcolumnsincludedinthedefinitionofcertaintypesofintegrityconstraints.Keysdescribetherelationshipsbetweenthetablesandcolumnsofarelationaldatabase.Individualvaluesinakeyarecalledkeyvalues.好几种类型的完整性约束定义中都使用键这个术语。键是某种类型的完整性约束的定义中包含的列或列集。键描述关系数据库中的表与列之间的关系。键中的单个值称为键值。Table5-1describesthetypesofconstraints.Eachcanbespecifiedeitherinlineorout-of-line,exceptforNOTNULL,whichmustbeinline.表5-1描述了约束的类型。除NOTNULL必须指定为行内规范,其它每一个都可以指定为行内或行外规范。Table5-1TypesofConstraints表5-1约束的类型ConstraintTypeDescriptionSeeAlsoNOTNULLAllowsordisallowsinsertsorupdatesofrowscontainingan

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功