【数据库基础及理论】
1. 数据模型:数据库中常见的数据模型包括层次数据模型、网状数据模型和关系数据模型。层次模型以树形结构表示数据,网状模型允许任意两个节点之间存在多对多关系,而关系模型是最常用的数据模型,以二维表格形式存储数据。
2. 数据库管理系统功能:主要包括数据定义、数据操作、数据库控制和运行管理及维护。这些功能使得用户能够创建、查询、更新数据库,并确保数据的安全性和一致性。
3. 范式理论:在关系数据库设计中,第一范式(1NF)、第二范式(2NF)和第三范式(3NF)是衡量数据规范化程度的重要标准。3NF要求消除非主属性对候选键的部分依赖和传递依赖,以减少数据冗余和更新异常。
4. 关系运算:在关系数据库中,传统的运算包括并、交、差和广义笛卡尔积;专门的关系运算包括选择、投影、连接和除。这些运算是构建查询的基础。
5. 外键:在关系模式中,外键用于建立两个表之间的关联。例如,在学生关系模式和班级关系模式中,学生的“班级号”是外键,因为它引用了班级关系模式的主键“班级号”。
【关系数据库理论】
1. 关系与关系模式的区别:关系是实际存储的数据,而关系模式是对关系的描述,包括属性、数据类型和约束。
2. 查询操作:如R-S(差集)、R∪S(并集)、R∩S(交集)和RXS(笛卡尔积)等是基本的集合运算。Π(R S)代表投影运算,将关系R和S在某一列上的值进行组合。
3. 函数依赖与规范化:在关系模式R(A,B,C,D,E,F)中,(A,B)为候选码,根据B->C,D->E,D->F,我们可以判断此模式满足2NF,但可能不满足3NF。通过分解可以达到更高的规范化程度,例如分解为R1(A,B,D,F)和R2(B,C,E)。
4. SQL查询:例如,查询所有分数高于60分的唯一学号数量,使用SQL语句`SELECT COUNT(DISTINCT 学号) FROM 成绩 WHERE 分数 > 60`。等价的关系代数表达式是选择和投影操作的组合。
5. 数据表创建:例如创建商品信息表Product,可以使用如下SQL语句:`CREATE TABLE Product (Pno VARCHAR(10), Sno VARCHAR(10), Price DECIMAL(10,2));`
6. 多表操作:涉及多个表的查询,如Emp和Dept表,可以通过JOIN操作来关联数据,获取员工及其所在部门的信息。
【应用举例】
在给定的示例中,可以看到学生成绩表SC(S#,C#,Grade),以及包含学生信息(S#,Sname,Sex,Age)和课程信息(C#,Cname,Teacher)的表。可以进行各种查询,例如查询所有选修“数据库”课程的学生及其成绩,这可以通过JOIN和WHERE子句实现。
数据库习题集涵盖了数据库的基本概念、数据模型、关系运算、数据库设计的规范化理论以及SQL查询等多个方面的知识,这些都是理解和应用数据库系统所必需的。通过深入学习和练习,可以提升对数据库管理的理解和操作能力。