免费智能真题库 > 历年试卷 > 电子商务设计师 > 2020年下半年 电子商务设计师 上午试卷 综合知识
  第8题      
  知识点:   数据库技术基本理论   关系的完整性   关系的完整性约束   完整性   完整性约束
  章/节:   Web 设计基础       

 
关系的完整性约束不包含( )。
 
 
  A.  实体完整性
 
  B.  参照完整性
 
  C.  属性完整性
 
  D.  用户定义完整性
 
 
 

 
  第25题    2017年下半年  
   55%
在关系模型中,若属性A是关系R的主码,则在R的任何元组中,属性A的取值都不允许为空,这种约束称为( )规则。
  第24题    2015年下半年  
   45%
图书馆同一本书藏有多册,规定同一本书一个读者一次只能借一册,但同一本书允许一个读者多次借阅,读者借书的关系为:借阅(读者..
  第23题    2018年下半年  
   47%
BI(Business Intelligence)是通过运用基于事实的支持系统来辅助制定商业决策,BI的主要功能不包括( )。
   知识点讲解    
   · 数据库技术基本理论    · 关系的完整性    · 关系的完整性约束    · 完整性    · 完整性约束
 
       数据库技术基本理论
        电子商务是利用电子网络进行的商务活动,这里的电子网络主要是指Internet和基于Internet技术的Intranet(企业内部网)、Extranet(企业外部网)。其进行的商务活动不仅包含电子数据交换所涉及的电子交易,还包括电子函件交流、网上站点宣传和利用Internet技术改造的其他传统应用。但电子商务应用的前提是企业管理信息系统的广泛应用。数据库技术是企业管理信息系统的核心技术之一,所以,要深入理解电子商务就应该先了解数据库的一些基本理论。
               数据模型
               模型就是对现实世界特征的模拟和抽象,数据模型是对现实世界数据特征的抽象。对于具体的模型人们并不陌生,如航模飞机、地图和建筑设计沙盘等都是具体的模型。最常用的数据模型分为概念数据模型和基本数据模型。
               (1)概念数据模型,也称信息模型,是按用户的观点对数据和信息建模,是现实世界到信息世界的第一层抽象,强调其语义表达功能,易于用户理解,是用户和数据库设计人员交流的语言,主要用于数据库设计。这类模型中最著名的是实体联系模型,简称E-R模型。
               (2)基本数据模型。它是按计算机系统的观点对数据建模,是现实世界数据特征的抽象,用于DBMS的实现。基本的数据模型有层次模型、网状模型、关系模型和面向对象模型(Object Oriented Model)。
               数据库结构的基础是数据模型,是用来描述数据的一组概念和定义。数据模型的三要素是数据结构、数据操作和数据的约束条件。
               .数据结构。是所研究的对象类型的集合,是对系统静态特性的描述。
               .数据操作。对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及操作规则。如操作有检索、插入、删除和修改,操作规则有优先级别等。数据操作是对系统动态特性的描述。
               .数据的约束条件。是一组完整性规则的集合。也就是说,对于具体的应用数据必须遵循特定的语义约束条件,以保证数据的正确、有效和相容。
               关系数据库
               (1)基本概念。关系数据库是以关系模型为基础的数据库,它利用关系来描述现实世界。关系模型有三部分组成:数据结构、关系操作集合、关系的完整性。
               .数据结构。在关系模型中,无论是实体还是实体之间的联系均由单一的结构类型即关系来表示。
               .关系操作。关系代数(或等价的关系演算)中并、交、差、选择、投影、连接等。关系模型给出了关系操作的能力和特点,但不对DBMS的语言给出具体的语法要求,关系语言的特点是高度的非过程化。其操作方式的特点是集合操作,即操作的对象和结果是集合,称为一次一集合的方式,而不是一次一记录的方式。
               .关系完整性。实体完整性、参照完整性和用户自己定义的完整性。实体完整性是保证数据库中记录的唯一性,即每个记录的主键不能为空值也不能与其他记录的主键相同。参照完整性是保证表与表之间语意上的完整性,即当一个表引用在另一个表中定义的实体时,要保证这个实体的有效性。这两种完整性是关系模型必须满足的约束条件,应该由关系系统自动支持。而用户自定义完整性反映了用户的要求,是用户自行定义的。
               (2)结构化查询语言(SQL)。结构化查询语言(Structured Query Language,SQL)的理论是在1974年被提出的,并在IBM公司的System R上实现。由于它功能丰富、使用方式灵活、语言简洁易学等优点,在计算机工业界和用户中备受青睐,很快得以推广。后来,美国国家标准局(ANSI)和国际标准化组织(ISO)先后批准SQL作为关系数据库语言的美国及国际标准。至此,SQL就成为关系数据库的标准语言,关系数据库系统一般都支持标准SQL语句。所以,尽管当今不同品牌的关系数据库有这样或那样的差异,人们都可以通过标准SQL语句对数据库进行操作,这就大大减轻了用户的负担。
               SQL虽被称为“查询语言”,其功能却不仅仅是查询,它的功能包括数据定义、数据操纵、数据库控制、事务控制四个方面,是一个综合、通用、功能强大的关系数据库语言。其中:
               .数据定义。用于定义和修改数据库对象。如CREATE TABLE(创建表)、DROP TABLE(删除表)等。
               .数据操纵。对数据的增、删、改和查询操作。如SELECT(查询数据)、INSERT(插入记录)、DELETE(删除记录)、UPDATE(修改数据)等。
               .数据库控制。控制用户对数据库的访问权限。如GRANT(授予权利)、REVOKE(取消权利)等。
               .事务控制。控制数据库系统事务的运行。如COMMIT(事务提交)、ROLLBACK(事务撤销)等。
               SQL有如下几个比较突出的优点。
               .一体化。SQL可以完成包括数据库定义、修改、删除、数据更新、数据查询等数据库生命周期中的全部活动,给用户使用带来很多方便。
               .灵活。SQL有两种使用方式。一种是联机交互使用,另一种是嵌入某种高级程序设计语言的程序中。这两种方式的语法结构是统一的。这样既给用户带来了灵活的选择余地,又不会带来不一致的困扰。
               .高度非过程化。与高级编程语言相比,SQL对数据库的操作方面是非常有优势的。使用SQL用户只需提出“做什么”,不用了解实现的细节,复杂的过程均由系统自动完成。
               .语言简洁,易学易用。
               (3)关系数据的规范化理论。为了使数据库设计的方法走向完备,人们提出规范化理论。规范化可以使关系的结构简化,更加有规律,存储尽量减少冗余,使数据库设计得更为合理。规范化的目的可以概括为以下几点:①保证库中每一个分量都不可再分;②消除冗余存储,简化检索操作;③消除插入异常和删除异常。
               数据库系统的建立
               数据库系统是企业整个管理信息系统的核心和基础,它的任务就是把系统中大量的数据按一定的模型组织起来,以便及时、准确地提供给用户。一个管理信息系统的各部分是否能紧密地结合在一起以及如何结合,关键在数据库。因此只有对数据库进行合理的逻辑设计和有效的物理设计才能开发出完善而高效的管理信息系统。数据库系统是整个管理信息系统建设重要的组成部分。
               建设数据库系统一般要分为两步:一是设计和建立高效的数据库(DB),二是设计和建立数据库管理系统(DBMS)。其基本过程如下图所示。
               
               数据库管理信息系统的建设过程
 
       关系的完整性
        (1)实体完整性。
        若属性A是基本关系R的主属性,则属性A不能取空值。也就是说基本关系得所有主属性都不能取空值,而不仅是主码整体不能取空值。
        (2)参照完整性。
        现实世界中的实体之间往往存在某种联系,在关系模型中实体之间的联系用关系描述,这样就会存在着关系间的引用。例如,学生、课程、选课三个关系如下:
        学生(学号,姓名,性别,专业)
        课程(课程号,课程名,教师,学分)
        选课(学号,课程号,成绩)
        它们之间是多对多联系,存在着属性的引用,即选课关系引用了学生关系的主码和课程关系的主码,如画线所示。在选课关系中必须满足:①选课关系中的“学号”值必须是确实存在的学生的学号,即在学生关系中有该学生的记录;②选课关系中“课程号”也必须确实存在,即课程关系中有该课程的记录。也就是说,选课关系中某些属性的取值需要参照其他关系的属性的取值。
        设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码KS相对应,则称F是基本关系R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系,关系R和S不一定是不同的关系。在上例中,“学号”和“课程号”是选课关系的外码,学生关系和课程关系是被参照关系,选课关系是参照关系。
        参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码KS相对应(关系R和S不一定是不同的关系),则对于R中每个元组在F上的值或者取空值或者等于S中某个元组的主码值。
        (3)用户定义的完整性
        用户定义的完整性就是针对某一具体关系数据库的约束条件。例如属性的取值范围、属性间必须满足一定的函数关系等。
 
       关系的完整性约束
        完整性规则提供了一种手段来保证当授权用户对数据库做修改时不会破坏数据的一致性。因此,完整性规则防止的是对数据的意外破坏。关系模型的完整性规则是对关系的某种约束条件。例如,若某企业实验室管理员的基本薪资小于2000元,则可用完整性规则来进行约束。
        关系的完整性约束共分为三类:实体完整性、参照完整性(也称引用完整性)和用户定义完整性。
        (1)实体完整性(Entity Integrity):规定基本关系R的主属性A不能取空值。
        (2)参照完整性(Referential Integrity):现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系是用关系来描述的,这样自然就存在着关系与关系间的引用。
        参照完整性规定:若F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系RS不一定是不同的关系),则对于R中每个元组在F上的值或者取空值(F的每个属性值均为空值),或者等于S中某个元组的主码值。
        例如,某企业员工Emp关系模式和部门Dept关系模式表示如下:
        Emp(
        ,姓名,性别,参加工作时间,部门号)
        Dept(
        ,名称,电话,负责人)
        Emp和Dept关系存在着属性的引用,即员工关系中的“部门号”值必须是确实存在的部门的部门号。按照关系的完整性规则,员工关系中的“部门号”属性取值要参照部门关系的“部门号”属性取值。如果新入职的员工还未分配具体的部门,那么部门号取空值。
        注意:本教材若在关系模式主属性上加实下画线,通常表示该属性为主码属性;如果在关系模式属性上加虚下画线,通常表示该属性为外码属性
        (3)用户定义完整性(User defined Integrity):就是针对某一具体的关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求,由应用的环境决定。例如,银行的用户账户规定必须大于等于100 000,小于999 999。
 
       完整性
        完整性(Integrity)是指网络信息或系统未经授权不能进行更改的特性。例如,电子邮件在存储或传输过程中保持不被删除、修改、伪造、插入等。完整性也被称为网络信息系统CIA三性之一,其中I代表Integrity。完整性对于金融信息系统、工业控制系统非常重要,可谓“失之毫厘,差之千里”。
 
       完整性约束
        数据库的完整性是指数据的正确性和相容性。数据库是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据库的完整性是非常重要的。
        数据库的完整性可分为实体完整性、参照完整性和用户定义的完整性。
               实体完整性
               实体完整性是基于主码的,一个主码由一个或多个属性组成。实体完整性要求主码中的任一属性(列)不能为空,所谓空值是“不知道”或“无意义”的值。之所以要保证实体完整性,主要是因为在关系中每一个元组的区分是依据主码值的不同,若主码值取空值,则不能标明该元组的存在。
               参照完整性
               参照完整性是基于外码的,若基本关系R中含有与另一基本关系S的主码PK相对应的属性组FK(FK称为R的外码),则参照完整性要求对R中的每个元组在FK上的值必须是S中某个元组的PK值,或者为空值。
               参照完整性的合理性在于R中的外码只能引用S中的主码,不能是S中主码没有的值。如学生和选课表两关系,选课表中的学号是外码,它是学生表的主键,若选课表中出现了某个学生表中没有的学号,即某个学生还没有注册,却已有了选课记录,这显然是不合理的。
               对于参照完整性,需要明确以下问题:
               (1)外码能否接受空值问题根据实际应用决定。
               (2)在被参照关系中删除元组的问题。
               .级联删除:将参照关系中所有外码值与被参照关系中要删除元组主码值相同的元组一起删除。如果参照关系同时又是另一个关系的被参照关系,则这种删除操作会继续级联下去。
               .受限删除(一般系统默认):仅当参照关系中没有任何元组的外码值与被参照关系中要删除元组的主码值相同时,系统才可以执行删除操作,否则拒绝执行删除操作。
               .置空删除:删除被参照关系的元组,并将参照关系中相应元组的外码值置为空值。
               (3)在参照关系中插入元组的问题。
               .受限插入:仅当被参照关系中存在相应的元组,其主码值与参照关系插入元组的外码值相同时,系统才执行插入操作,否则拒绝此操作。
               .递归插入:首先向被参照关系中插入相应的元组,其主码值等于参照关系插入元组的外码值,然后向参照关系插入元组。
               用户定义的完整性
               实体完整性和参照完整性适用于任何关系数据库系统。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
               如果在一条语句执行完后立即检查,则称立即执行约束;如果在整个事务执行结束后再进行检查,则称延迟执行约束。
               触发器
               触发器(Trigger)是在关系数据库管理系统中应用得比较多的一种完整性保护措施。触发器的功能一般比完整性约束要强得多。一般而言,在完整性约束功能中,当系统检查出数据中有违反完整性约束条件时,仅给出必要提示以通知用户,仅此而已。而触发器的功能则不仅仅起提示作用,它还会引起系统内自动进行某些操作以消除违反完整性约束条件所引起的负面影响。
               在目前数据库中事件一般表示为数据的插入、修改、删除等操作。触发器除了有完整性保护功能外,还有安全性保护功能。
               非空约束
               非空是一个规则,是对声明了非空约束的字段限制其取值域不能为空。它不允许在对一列的数据插入或更新时取NULL值。在默认情况下,所有的列都是允许填充NULL值的,只有在列声明了NOT NULL的列值或其他已经包含了NOT NULL约束的列值时,系统强制要求任何时候都不能填充NULL值。非空约束通常会包含在相关的其他约束上,如主键约束、候选键约束等。因为索引是不对NULL值进行存储的,所以,如果希望使用索引进行表数据的查询,那么必须尽量地使某个要索引的列不包含NULL值。例如,下面语句对emp表的ename字段声明了非空约束。
               
               对于表emp,如果已经有了数据,而且ename列中已存在NULL值,则该操作将被禁止。只要将空值替换或将对应的行删除,该语句还是可以被允许的。当然,对于不明确的列但又不能为空时,可以使用默认值(default)对列值做默认处理,这样也可以远离NULL值对列的影响。
               CHECK约束
               相对于非空约束,CHECK约束能更灵活地限制某字段取值的值域。客观地说,非空约束只是CHECK约束的一个特例而已。CHECK约束需要设计一个表达式,某条记录的某(些)字段的值如果使这个表达式为假,则这条记录被禁止;反之则被允许。如果定义一个CHECK约束设计一个字段不为空的表达式,那么效果就跟非空约束一样了。CHECK约束设计的表达式具体应用到某条将要进行操作的记录的某(些)字段时,只有三个值——true、false、unknown,表达式值为false时将要进行的操作被禁止,其他的则允许。在CHECK约束的表达式中有如下要求:
               (1)该表达式在使用数据插入或更新操作的值时,必须是可以做出逻辑判断的表达式。
               (2)该表达式不可以使用嵌套查询和序列器。
               (3)该表达式不可以使用SQL函数。
               (4)该表达式不可以使用自定义函数。
               (5)该表达式不可以使用DBMS的伪字段(比如Oracle中的rownum、level等)。
               下面语句说明如何在创建表的语句中声明CHECK约束。
               
               该语句为表Dept_tab中的Loc字段声明了名为Loc_check1的CHECK约束,这个约束要求Loc字段只能填写北京、上海、广州中的一个,否则操作将被禁止。
               主键约束
               主键是能唯一标识元组的最小属性集,并且是在数据库中被标记为primary key的属性集。如果某个表的某(些)字段声明为主键,那么这些字段就要遵守如下两条规则。
               (1)在这些作为主键的字段中任何字段任何行都不能为空。
               (2)在这些作为主键的字段中任何两行之间的组合取值不能重复。
               下面语句是在创建表的语句中声明了主键约束。
               
               该语句在表dept中声明了字段deptno为该表的主键,这个主键约束并未命名,它的名称可以由系统自动产生。再看下面的语句:
               
               该语句在表emp中声明了字段empno为主键,同时命名该主键约束为epk。
               候选键约束
               能唯一标识元组的最小属性集,但在数据库中未被标记为PRIMARY KEY,这样的属性集称为候选键。这里的候选键实质就是唯一性约束。它的规则要求与主键的规则要求一样,只是未被声明为主键而已。标准SQL并没有直接定义候选键,候选键取值不能为空和不取重复值的约束可以通过UNIQUE NOT NULL来实现,也可以通过UNIQUE KEY来实现,具体要根据不同的DBMS而定。下列语句在创建表中声明了候选键约束。
               
               该语句为表emp的empno字段声明了一个叫euk的唯一性约束。
               外键约束
               外键是指在关系模式R中作为候选键的属性集,但在关系模式T中不是候选键。则对于T来说,这些属性集称为相对于R的外键。通常外键在数据库中会被标记为FOREIGN KEY字样。在这里,称R为父模式,T为子模式。通俗地说,就是父表中的主键字段被子表中某个字段引用,那么子表的这个字段则应声明为外键,而父表的那个字段可以声明为主键,也可以声明为唯一键(候选键)。一旦子表的字段被声明为父表的外键,同样的一个字段在父表中称为引用的父键,在子表中称为引用的子键。子键的取值应遵守如下规则,否则将被禁止。
               (1)每个子键的取值不能取父键中取值以外的值,但空除外。
               (2)对于父键是组合字段的,子键也应是组合字段。父键要求能唯一地标识父表的每一条记录,而子键不要求能唯一标识子表的每一条记录。
               (3)对于组合键,子键为空时,所有键的成员字段都为空,不允许部分为空。
               一个子表可以有多个子键,每个子键可以对应不同父表的父键。如果是组合键,那么同一个字段可能作为不同外键的成员。当然,子表和父表是相对的,子表如果有唯一键被其他表引用,那么这时的子表对于其他表关于某键,它又是父表。外键的引入,主要是为了表示表间的一对多问题。下面的语句说明了两个表间的外键引用情况。
               
               这两条语句创建了dept和emp两个表,其中dept表中的deptno是它的主键,它被表emp引用。在emp中也有个同样名字的deptno字段,这个字段被声明为引用dept.deptno字段的外键。那么dept表是父表,deptno构成了引用中父表的父键;emp表是子表,deptno构成了引用中子表的子键。
               因为外键是引用父表父键的子表的子键,所以父表的数据是引用的基础。一旦父表数据被修改或删除,引用也会造成相关的影响,表现在子表和子键上,这就需要做出相应的规则来约定父表父键发生改动后子表子键如何来进行维护活动。根据这种活动,将子表的外键分为三大类。
               (1)禁止更新和删除父键,许多DBMS默认为这一类外键约束。一旦父表的父键被某个子表的子键引用了,那么父表中已有的数据是禁止修改和删除的。
               (2)删除或更新父表数据的同时删除或更新子表子键中对应父键取值的行。
               (3)删除或更新父表数据的同时将子表中对应父键的子键的取值设置为NULL。
               加入这三种外键约束声明的语句可以如下所示:
               
               该语句说明外键deptno默认为第一类。
               
               该语句声明一个第二类的外键。
               
               该语句声明一个第三类的外键。
   题号导航      2020年下半年 电子商务设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第8题    在手机中做本题