1. 触发器是什么?
A. 存储过程 B. 视图 C. 存储函数 D. 触发器
2. 在列存储数据库中,触发器的作用是什么?
A. 用于数据完整性检查 B. 用于数据备份与恢复 C. 用于数据库安全性控制 D. 用于性能优化
3. 触发器有哪些类型?
A. DDL触发器 B. DML触发器 C. DATETIME触发器 D. 系统触发器
4. DDL触发器是什么?
A. 用于在创建表之前执行某些操作 B. 用于在删除表之前执行某些操作 C. 用于在修改表结构之前执行某些操作 D. 用于在插入或更新记录之前执行某些操作
5. DML触发器是什么?
A. 用于在插入记录之前执行某些操作 B. 用于在更新记录之前执行某些操作 C. 用于在删除记录之前执行某些操作 D. 用于在创建表或修改表结构之前执行某些操作
6. DATETIME触发器是什么?
A. 用于在记录创建之前或之后执行某些操作 B. 用于在表结构的创建之前或之后执行某些操作 C. 用于在记录更新之前或之后执行某些操作 D. 用于在表结构的修改之前或之后执行某些操作
7. 什么是系统触发器?
A. 用于在非空行插入新记录的触发器 B. 用于在记录创建之前或之后执行某些操作 C. 用于在记录更新之前或之后执行某些操作 D. 用于在表结构的创建之前或之后执行某些操作
8. 触发器的访问控制机制是什么?
A. 基于行的访问控制 B. 基于表的访问控制 C. 基于 Record 的访问控制 D. 基于行的和 Record 的访问控制
9. 触发器可以用于哪些方面的访问控制?
A. 记录级别的访问控制 B. 表级别的访问控制 C. 数据库级别的访问控制 D. 所有上述访问控制
10. 在列存储数据库中,触发器的主要目的是什么?
A. 确保数据的完整性和一致性 B. 提高数据库的性能 C. 简化数据库的结构 D. 实现灵活的数据库管理
11. 触发器主要分为哪几种类型?
A. DDL触发器 B. DML触发器 C. DATETIME触发器 D. 系统触发器
12. DDL触发器是什么?
A. 用于在表结构创建之前的操作 B. 用于在表结构修改之前的操作 C. 用于在记录插入之前的操作 D. 用于在记录删除之前的操作
13. DML触发器是什么?
A. 用于在记录插入之前的操作 B. 用于在记录更新之前的操作 C. 用于在表结构创建之前的操作 D. 用于在表结构修改之前的操作
14. DATETIME触发器是什么?
A. 用于在记录创建之前的操作 B. 用于在记录更新之前的操作 C. 用于在记录删除之前的操作 D. 用于在表结构创建之前的操作
15. 触发器的定义中,下列哪个选项是正确的?
A. 触发器是一种存储过程 B. 触发器是一种视图 C. 触发器是一种存储函数 D. 触发器是一种表
16. 在触发器的类型中,DML触发器和系统触发器有什么区别?
A. DML触发器用于在记录插入或更新之前执行操作,而系统触发器用于在表结构创建或修改之前执行操作 B. DML触发器可以在记录插入或更新时自动执行,而系统触发器只能在表结构改变时执行 C. DML触发器的执行需要在事务中进行,而系统触发器不需要 D. DML触发器的执行不需要指定事务,而系统触发器需要
17. 在以下哪种情况下,可以使用DATETIME触发器?
A. 记录创建之前需要执行的操作 B. 记录更新之前需要执行的操作 C. 表结构创建之前需要执行的操作 D. 表结构修改之前需要执行的操作
18. 触发器的访问控制主要基于哪种类型的访问控制?
A. 基于行的访问控制 B. 基于表的访问控制 C. 基于 Record 的访问控制 D. 基于行的和 Record 的访问控制
19. 在触发器的定义中,下列哪个选项是错误的?
A. 触发器是在记录插入或更新之前执行操作 B. 触发器是在记录删除之前执行操作 C. 触发器是在表结构创建之前执行操作 D. 触发器是在表结构修改之前执行操作
20. 在列存储数据库中,触发器的主要目的是什么?
A. 确保数据的完整性和一致性 B. 提高数据库的性能 C. 简化数据库的结构 D. 实现灵活的数据库管理
21. DDL触发器是什么?
A. 用于在表结构创建之前的操作 B. 用于在表结构修改之前的操作 C. 用于在记录插入之前的操作 D. 用于在记录删除之前的操作
22. 在以下哪种情况下,可以使用DDL触发器?
A. 在表结构创建之前需要执行的操作 B. 在记录插入或更新之前需要执行的操作 C. 在记录删除之前需要执行的操作 D. 在表结构修改之前需要执行的操作
23. DDL触发器的主要目的是什么?
A. 确保数据的完整性和一致性 B. 提高数据库的性能 C. 简化数据库的结构 D. 实现灵活的数据库管理
24. 在创建表时,DDL触发器会在什么时候被触发?
A. 当表被创建时 B. 当插入第一行数据时 C. 当更新任何记录时 D. 当删除任何记录时
25. 在以下哪种情况下,可以使用BEFORE INSERT触发器?
A. 记录插入之前需要执行的操作 B. 记录更新之前需要执行的操作 C. 表结构创建之前需要执行的操作 D. 表结构修改之前需要执行的操作
26. 在以下哪种情况下,可以使用AFTER INSERT触发器?
A. 在记录插入之后执行某些操作 B. 在记录更新之后执行某些操作 C. 在表结构创建之后执行某些操作 D. 在表结构修改之后执行某些操作
27. 在以下哪种情况下,可以使用BEFORE UPDATE触发器?
A. 在记录更新之前需要执行的操作 B. 在记录删除之前需要执行的操作 C. 在表结构创建之前需要执行的操作 D. 在表结构修改之前需要执行的操作
28. 在以下哪种情况下,可以使用AFTER UPDATE触发器?
A. 在记录更新之后执行某些操作 B. 在记录删除之前需要执行的操作 C. 在表结构创建之后执行某些操作 D. 在表结构修改之后执行某些操作
29. 在以下哪种情况下,可以使用AFTER DELETE触发器?
A. 在记录删除之后执行某些操作 B. 在记录插入之前需要执行的操作 C. 在表结构创建之前需要执行的操作 D. 在表结构修改之前需要执行的操作
30. 在创建表时,可以使用DDL触发器来确保数据的哪些方面的一致性?
A. 记录级别的一致性 B. 表级别的一致性 C. 记录和表级别的一致性 D. 数据类型和长度的一致性
31. DML触发器是什么?
A. 用于在记录插入之前的操作 B. 用于在记录更新之前的操作 C. 用于在表结构创建之前的操作 D. 用于在表结构修改之前的操作
32. 在以下哪种情况下,可以使用DML触发器?
A. 在记录插入或更新之前执行操作 B. 在记录删除之前执行操作 C. 在表结构创建之前执行操作 D. 在表结构修改之前执行操作
33. DML触发器的主要目的是什么?
A. 确保数据的完整性和一致性 B. 提高数据库的性能 C. 简化数据库的结构 D. 实现灵活的数据库管理
34. 在记录插入或更新之前,DML触发器会执行哪些操作?
A. 检查数据完整性 B. 生成日志记录 C. 发送通知邮件 D. 更改记录的某些字段值
35. 在以下哪种情况下,可以使用INSERT Trigger?
A. 记录插入之前需要执行的操作 B. 记录更新之前需要执行的操作 C. 表结构创建之前需要执行的操作 D. 表结构修改之前需要执行的操作
36. 在以下哪种情况下,可以使用UPDATE Trigger?
A. 在记录更新之前需要执行的操作 B. 在记录删除之前需要执行的操作 C. 表结构创建之前需要执行的操作 D. 表结构修改之前需要执行的操作
37. 在以下哪种情况下,可以使用DELETE Trigger?
A. 在记录删除之后执行操作 B. 在记录插入之前需要执行的操作 C. 在记录更新之前需要执行的操作 D. 表结构创建之前需要执行的操作
38. 在使用DML触发器时,如果触发器中指定的条件不满足,会发生什么?
A. 忽略触发器 B. 跳过触发器 C. 回滚最近的提交事务 D. 抛出错误异常
39. 在以下哪种情况下,可以使用DML Trigger来实现数据一致性?
A. 在记录插入或更新之前执行操作 B. 在记录删除之前执行操作 C. 在表结构创建之前执行操作 D. 在表结构修改之前执行操作
40. DML触发器的主要缺点是什么?
A. 可能会影响数据库的性能 B. 需要更多的代码维护 C. 可能导致数据不一致 D. 不能用于所有的数据库操作
41. DATETIME触发器是什么?
A. 用于在记录插入之前的操作 B. 用于在记录更新之前的操作 C. 用于在表结构创建之前的操作 D. 用于在表结构修改之前的操作
42. DATETIME触发器的定义中,下列哪个选项是正确的?
A. 用于在记录创建之前的操作 B. 用于在记录更新之前的操作 C. 用于在记录删除之前的操作 D. 用于在表结构创建之前或之后执行某些操作
43. 在以下哪种情况下,可以使用DATETIME触发器?
A. 在记录插入或更新之前执行操作 B. 在记录删除之前执行操作 C. 在表结构创建之前执行操作 D. 在表结构修改之前执行操作
44. DATETIME触发器的主要目的是什么?
A. 确保数据的完整性和一致性 B. 提高数据库的性能 C. 简化数据库的结构 D. 实现灵活的数据库管理
45. 在记录创建之前,DATETIME触发器会执行哪些操作?
A. 检查数据完整性 B. 生成日志记录 C. 发送通知邮件 D. 更改记录的某些字段值
46. 在以下哪种情况下,可以使用CREATE TRIGGER语句创建DATETIME触发器?
A. 记录插入之前需要执行的操作 B. 记录更新之前需要执行的操作 C. 记录删除之前需要执行的操作 D. 在表结构创建之前执行某些操作
47. 在以下哪种情况下,可以使用ALTER TRIGGER语句修改DATETIME触发器?
A. 修改触发器中的时间表达式 B. 修改触发器中的操作 C. 修改触发器中的目标表 D. 修改触发器中的条件表达式
48. 在使用DATETIME触发器时,如果触发器中指定的条件不满足,会发生什么?
A. 忽略触发器 B. 跳过触发器 C. 回滚最近的提交事务 D. 抛出错误异常
49. 在以下哪种情况下,可以使用DATETIME Trigger来实现数据一致性?
A. 在记录插入或更新之前执行操作 B. 在记录删除之前执行操作 C. 在表结构创建之前执行操作 D. 在表结构修改之前执行操作
50. DATETIME触发器的主要缺点是什么?
A. 可能会影响数据库的性能 B. 需要更多的代码维护 C. 可能导致数据不一致 D. 不能用于所有的数据库操作
51. 什么是系统触发器?
A. 用于在表结构创建之前的操作 B. 用于在表结构修改之前的操作 C. 用于在记录插入之前的操作 D. 用于在记录更新之前的操作
52. 系统触发器主要目的是什么?
A. 确保数据的完整性和一致性 B. 提高数据库的性能 C. 简化数据库的结构 D. 实现灵活的数据库管理
53. 在以下哪种情况下,可以使用系统触发器?
A. 在记录插入或更新之前执行操作 B. 在记录删除之前执行操作 C. 在表结构创建之前执行操作 D. 在表结构修改之前执行操作
54. 系统触发器与DDL触发器和DML触发器的区别是什么?
A. 系统触发器只会在表结构改变时执行,而其他两种触发器会在记录插入或更新之前或之后执行 B. 系统触发器只需要在表结构创建之前或之后执行一次,而其他两种触发器会在每次记录插入或更新时执行 C. 系统触发器的执行不需要事务管理,而其他两种触发器需要事务管理 D. 系统触发器的处理逻辑由数据库管理系统自动完成,而其他两种触发器需要开发人员编写处理逻辑
55. 在以下哪种情况下,可以使用CREATE TRIGGER语句创建系统触发器?
A. 记录插入之前需要执行的操作 B. 记录更新之前需要执行的操作 C. 记录删除之前需要执行的操作 D. 在表结构创建之前执行某些操作
56. 在以下哪种情况下,可以使用ALTER TRIGGER语句修改系统触发器?
A. 修改触发器中的时间表达式 B. 修改触发器中的操作 C. 修改触发器中的目标表 D. 修改触发器中的条件表达式
57. 在使用系统触发器时,如果触发器中指定的条件不满足,会发生什么?
A. 忽略触发器 B. 跳过触发器 C. 回滚最近的提交事务 D. 抛出错误异常
58. 系统触发器的执行逻辑是由数据库管理系统自动完成的吗?
A. 是 B. 否 C. 部分 D. 无法确定
59. 在以下哪种情况下,可以使用DATETIME Trigger来实现数据一致性?
A. 在记录插入或更新之前执行操作 B. 在记录删除之前执行操作 C. 在表结构创建之前执行操作 D. 在表结构修改之前执行操作
60. 系统触发器的主要缺点是什么?
A. 可能会影响数据库的性能 B. 需要更多的代码维护 C. 可能导致数据不一致 D. 不能用于所有的数据库操作
61. 什么是数据库访问控制?
A. 用于限制用户对数据库的访问权限 B. 用于控制数据库中数据的增删改查操作 C. 用于在数据库中分配和管理存储空间 D. 用于保证数据库的安全性
62. 数据库访问控制的主要目的是什么?
A. 保护数据库中的数据不被非法访问和破坏 B. 提高数据库系统的性能和可用性 C. 简化数据库的管理和维护工作 D. 增强数据库的安全性和可靠性
63. 下列哪项属于数据库访问控制的基本策略?
A. 自主访问控制 B. 强制访问控制 C. 基于角色的访问控制 D. 基于属性的访问控制
64. 自主访问控制是什么?
A. 用户可以自由地选择要执行的操作 B. 用户只能执行被授权的操作 C. 用户可以查看所有数据库中的数据 D. 用户只能在特定 tablespaces 中执行操作
65. 强制访问控制是什么?
A. 用户必须执行被授权的操作 B. 用户只能查看所有数据库中的数据 C. 用户只能在特定 tablespaces 中执行操作 D. 用户可以自由地选择要执行的操作
66. 基于角色的访问控制是什么?
A. 用户可以根据角色来选择要执行的操作 B. 用户只能执行被授权的操作 C. 用户可以查看所有数据库中的数据 D. 用户只能在特定 tablespaces 中执行操作
67. 基于属性的访问控制是什么?
A. 用户可以根据属性来选择要执行的操作 B. 用户只能执行被授权的操作 C. 用户可以查看所有数据库中的数据 D. 用户只能在特定 tablespaces 中执行操作
68. 在数据库访问控制中,哪种方式可以避免用户滥用数据库账户?
A. 自主访问控制 B. 强制访问控制 C. 基于角色的访问控制 D. 基于属性的访问控制二、问答题
1. 什么是触发器?在数据库中,它起到什么作用?
2. 触发器的访问控制机制是怎样的?
3. 有哪些类型的触发器?分别有什么特点?
4. 什么是 DDL 触发器?给它一个例子?
5. 什么是 DML 触发器?给它一个例子?
6. 什么是 DATETIME 触发器?给它一个例子?
7. 什么是系统触发器?它的作用是什么?
参考答案
选择题:
1. D 2. A 3. ABD 4. AB 5. ABD 6. A 7. D 8. D 9. D 10. A
11. ABD 12. AB 13. ABD 14. A 15. D 16. A 17. B 18. D 19. B 20. A
21. AB 22. AB 23. A 24. A 25. A 26. A 27. A 28. A 29. A 30. C
31. ABD 32. ABD 33. A 34. A 35. A 36. A 37. A 38. C 39. A 40. ABC
41. A 42. D 43. A 44. A 45. A 46. A 47. A 48. C 49. A 50. ABC
51. D 52. A 53. C 54. ABD 55. D 56. D 57. C 58. A 59. A 60. ABC
61. A 62. A 63. A 64. A 65. A 66. A 67. A 68. B
问答题:
1. 什么是触发器?在数据库中,它起到什么作用?
触发器是一种数据库对象,当在数据库表上执行某些特定的操作(如插入、更新或删除)时,它会被自动执行。触发器的 purpose 是保证数据的完整性和一致性。它在数据库中起到了一种“监控”的作用,确保数据的正确性。
思路
:了解触发器的概念和作用,明白其在数据库中的重要性。
2. 触发器的访问控制机制是怎样的?
触发器的访问控制主要体现在对不同类型的操作的处理上。对于 DDL 触发器,主要控制的是表结构的改变;对于 DML 触发器,主要控制的是对数据的增删改操作;对于 DATETIME 触发器,主要是控制日期时间信息的处理;而对于系统触发器,则主要涉及到一些系统级的操作。
思路
:理解触发器访问控制机制的不同类型操作的处理方式。
3. 有哪些类型的触发器?分别有什么特点?
触发器主要分为四大类:DDL 触发器、DML 触发器、DATETIME 触发器和系统触发器。其中,DDL 触发器主要用于控制表结构的改变,例如创建、修改和删除表;DML 触发器用于控制数据的增删改操作;DATETIME 触发器用于控制日期时间信息的处理;系统触发器则涉及到一些系统级的操作,例如日志记录等。
思路
:了解不同类型的触发器的特点,明确它们的应用场景。
4. 什么是 DDL 触发器?给它一个例子?
DDL 触发器主要用于控制表结构的改变。例如,当创建一个新表时,与之关联的触发器会被自动执行,以完成对新表结构的设置。
思路
:了解 DDL 触发器的概念,通过实例加深对其的理解。
5. 什么是 DML 触发器?给它一个例子?
DML 触发器用于控制数据的增删改操作。例如,当你向表中插入一条数据时,与之关联的 DML 触发器会被自动执行,以确保数据的完整性。
思路
:理解 DML 触发器的作用,通过实例明确其功能。
6. 什么是 DATETIME 触发器?给它一个例子?
DATETIME 触发器用于控制日期时间信息的处理。例如,当你对表中的数据进行更新操作时,如果更新后的时间戳与现有记录的时间戳不一致,DATETIME 触发器会自动执行相应的操作。
思路
:了解 DATETIME 触发器的功能,通过实例加深对其的理解。
7. 什么是系统触发器?它的作用是什么?
系统触发器主要涉及到一些系统级的操作,例如日志记录等。当系统中发生特定事件时,与之关联的系统触发器会自动执行,以便于对事件进行记录和处理。
思路
:理解系统触发器的作用范围和功能,明确其在数据库管理中的重要性。