数据库原理和应用试题涉及到多个方面的知识点,以下是这些知识点的详细说明:
1. **数据库系统概论**:
- 数据库管理系统(DBMS)是数据库系统的重要组成部分,它负责管理和控制数据库。
- 数据库的三级模式包括概念模型、逻辑模型和物理模型,它们分别代表了用户视图、数据库的逻辑结构和实际存储方式。
- E-R(实体-关系)模型是一种概念建模工具,它可以转换为关系模型、层次模型和网状模型,以适应不同的数据库系统。
2. **关系型数据库基本原理**:
- 关系模型是基于数学的集合论,一个关系的主键可以包含一个或多个属性,为主键提供唯一标识。
- E-R模型转换为关系模型时,实体、联系都可以转换为关系模式,联系可以表示实体间的关系。
- 在数据库中,选择运算是从行的角度进行,投影运算是从列的角度进行,而这两者都是关系运算的一部分。
- 数据依赖中,如果A->B且B->C,那么C函数依赖于A,这称为传递依赖,而不是部分依赖。
3. **数据库的管理**:
- 数据库文件包括数据文件、事务日志文件和索引文件,主数据文件的扩展名通常是.mdf,而非.ldf。
- 数据文件一般归属于特定的文件组,不能跨文件组。
4. **表的管理**:
- 创建表时,需要指定列的数据类型和长度,例如“生日 datetime(8)”。
- SQL Server中的nchar是固定长度的字符串类型,nvarchar是可变长度的。
- bit类型用于存储逻辑值(真/假)。
- 数据定义语言(DDL)用于创建、修改和删除数据库对象,而不是数据操作,数据操作由数据操纵语言(DML)完成。
5. **数据查询**:
- 内连接和外连接是关系型数据库的两种连接查询方式,外连接可以查询多个表,内连接则限制在两个表之间。
- SELECT语句的WHERE子句不能嵌套SELECT语句,但可以使用子查询。
- 分组统计时,HAVING语句用于筛选分组后的结果,而WHERE语句则筛选原始数据。
6. **索引与视图**:
- 索引可以提高查询速度,但不是每个字段都需要建立索引,过多的索引可能影响插入和更新性能。
- 聚集索引不一定唯一,非聚集索引也不一定非唯一;主键索引是唯一的,但唯一索引不一定是主键。
- 视图是虚拟表,不存储数据,而是根据查询定义动态生成结果。
- 视图可以进行数据更新,只要更新操作满足其定义的查询条件。
- 视图可以基于多个表,实现复杂的数据组合和筛选。
7. **数据完整性**:
- 数据完整性有三种类型:实体完整性、参照完整性和用户定义的完整性,而非更新完整性。
- 外键约束用于维护参照完整性,而非实体完整性。
- 检查约束和默认约束可以用来确保数据的正确性,但它们服务于不同目的。
8. **存储过程和触发器**:
- 存储过程可以带参数,增强其灵活性,可以是系统定义或用户自定义。
- 存储过程创建后可以被编辑修改,不会被加密。
- 触发器是预定义的数据库操作,如INSERT、UPDATE或DELETE触发后自动执行,用户无法直接调用触发器。
- 触发器可以定义在多种操作上,包括SELECT。
- 事务的原子性确保事务中的所有操作要么全部成功,要么全部回滚,确保一致性。
9. **数据的安全管理**:
- SQL Server支持Windows身份验证和混合身份验证,但用户权限需正确配置才能访问特定资源。
- 用户的权限管理决定了他们能否读取和修改数据。
10. **数据库的备份与还原**:
- 数据可以导入导出到其他格式,如Excel。
- SQL Server支持多种备份策略,包括完全备份、事务日志备份和差异备份。
- 数据库分离并不删除数据文件,只是断开与数据库引擎的连接。
以上是对文档中涉及的数据库原理和应用知识点的详细解释,涵盖了从数据库的基础概念到高级特性的多个方面。