华南师范大学2019计算机复试笔试回忆:C++与数据库试题解析

需积分: 49 33 下载量 200 浏览量 更新于2024-09-11 8 收藏 5KB MD 举报
"2019年华南师范大学计算机学院的复试笔试主要涵盖了C++和数据库两个部分。在数据库部分,试题包括选择题、简答题和分析题,涉及了数据库设计、查询优化、范式理论以及NoSQL数据库的相关知识。考生需要熟悉SQL语句的编写,特别是与实体完整性和参照完整性的约束定义相关的部分。" 数据库部分知识点详细说明: 1. 数据库设计基本步骤: - 需求分析:理解业务需求,明确数据存储和处理的目标。 - 概念设计:构建信息模型,通常使用E-R图表示实体、属性和关系。 - 逻辑设计:将E-R图转换为关系模型,确定数据表、字段及其类型。 - 物理设计:考虑存储和性能,设计表的索引、分区等物理结构。 - 实现与测试:创建数据库,导入数据,进行功能和性能测试。 2. 关系数据库管理系统查询优化的三条原则: - 最小化I/O操作:减少磁盘读写,优化索引使用。 - 利用并行处理:通过并发执行子任务来加速查询。 - 减少数据处理量:避免全表扫描,利用索引等手段减少数据处理。 3. 范式理论: - 若关系的候选码都为单属性,这意味着每个属性都能唯一标识一行,关系至少属于第一范式(1NF)。 - 第二范式(2NF)要求非主属性完全依赖于任何候选键。 - 第三范式(3NF)要求非主属性不传递依赖于候选键。 - 如果所有属性都直接依赖于候选键,关系可能属于第三范式,但具体是否达到需根据题目条件判断。 4. NoSQL数据库与关系型数据库的区别: - 数据模型:NoSQL通常支持非关系型的数据模型,如文档、图形、列族和键值对;而关系型数据库采用表格形式存储数据,遵循ACID(原子性、一致性、隔离性、持久性)特性。 - 扩展性:NoSQL通常更适合大规模分布式环境,提供水平扩展;关系型数据库一般侧重垂直扩展。 - 灵活性:NoSQL数据库对数据结构的变更更灵活,适应快速变化的需求。 - 常见的NoSQL数据库包括MongoDB(文档型)、Cassandra(列族)、Redis(键值对)等。 5. SQL语句实体完整性和参照完整性的约束: - 实体完整性:确保每张表中的主键字段都有唯一且非空的值。 - 参照完整性:保证引用的外键值必须存在于引用表的主键中,防止出现无效引用。 在给出的问题中,考生需要完成创建`BORROWS`表的SQL语句,定义BRId为主键,UserId为外键,参考描述中的业务规则,正确设置约束条件。完整的SQL语句可能如下: ```sql CREATE TABLE BORROWS ( BRId CHAR(20) PRIMARY KEY, UserId CHAR(10) FOREIGN KEY REFERENCES USERS(UserId), CId CHAR(10) FOREIGN KEY REFERENCES CARS(CId), STime DATE DEFAULT CURRENT_DATE, ETime DATE, ... ); ``` 这里省略了其他未给出的字段,`CId`是外键,关联`CARS`表的`CId`字段,同样需要定义完整性约束。考生还需要确保SQL语句能够满足题目中提到的业务规则。