[说明]
设有三个关系
学生S(学号,姓名,性别,年龄,籍贯)
课程C(课程号,课程名,任课老师,所用教材)
学生成绩SC(学号,课程号,得分)
其中规定各属性定义如下:
学号:SNUM 姓名:SNAME 性别:SEX 年龄:AGE 籍贯:NATIVE
课程号:CNUM 课程名:CNAME 任课老师:TEACHER 所用教材:BOOK
得分:GRADE
试用关系代数表达式表示下列查询语句。
某学校的学籍管理系统实现了对学生学籍信息的管理,其中学生表结构为:学生表(学号, 姓名, 性别, 系号, 是否有学籍),此表中除学号列有唯一索引外,其它列均无索引。
设学籍管理系统中经常执行如下形式的操作:
SELECT*FROM 学生表
WHERE 姓名=‘张三’ AND 系号=‘10’AND 是否有学籍=‘有’
系统运行中发现这类操作的效率比较低,系统工程师建议:由于查询条件中使用了“系号”、“姓名”和“是否有学籍”三列,建议在这三个列上分别建立索引,以提高查询效率。
请问其建议建立的三个索引是否都能提高查询效率请简要说明原因。
某学生选课数据库,库中包括学生、课程和选课3个表,其表结构为:
学生(学号,姓名,性别,年龄,所在系);
课程(课程号,课程名,先行课);
选课(学号,课程号,成绩)。
用Transact-SQL完成下列操作。
1)建立学生选课数据库。
2)建立学生、课程和选课表。
3)建立各表以主码为索引项的索引。
4)建立学生性别只能是“男”或“女”的规则,性别为“男”的缺省,并将它们绑定到学生表上。
5)建立在对选课表输入或更改数据时,必须服从参照完整性约束的INSERT和UPDATE触发器。
6)建立在删除学生记录时,同时也要把相应的选课记录删除的触发器。
7)列出学生学号、姓名及学习情况。学习情况用好、较好、一般或较差表示。当平均成绩大于85分时,学习情况为好;当平均成绩在70~85分之间,学习情况为较好;当平均成绩在60~70分之问,学习情况为一般;当平均成绩在60分以下,学习情况为较差。
某学校的学籍管理系统实现了对学生学籍信息的管理,其中学生表结构为:学生表(学号,姓名,性别,系号,是否有学籍),此表中除学号列有唯一索引外,其它列均无索引。
设学籍管理系统中经常执行如下形式的操作:
SELECT*FROM 学生表
WHERE 姓名=‘张三’ AND 系号=‘10’AND 是否有学籍=‘有’
系统运行中发现这类操作的效率比较低,系统工程师建议:由于查询条件中使用了“系号”、“姓名”和“是否有学籍”三列,建议在这三个列上分别建立索引,以提高查询效率。
请问其建议建立的三个索引是否都能提高查询效率请简要说明原因。
我来回答: