数据库关系代数表达式的问题,第四问和第五问,不明白什么意思,求解答。

数据库关系代数表达式的问题,第四问和第五问,不明白什么意思,求解答。,第1张

给你答案其实是在害你,给你知识点,如果还不会再来问我

 线性代数的学习切入点:线性方程组。换言之,可以把线性代数看作是在研究线性方程组这一对象的过程中建立起来的学科。

线性方程组的特点:方程是未知数的一次齐次式,方程组的数目s和未知数的个数n可以相同,也可以不同。

关于线性方程组的解,有三个问题值得讨论:

(1)、方程组是否有解,即解的存在性问题;

(2)、方程组如何求解,有多少个解;

(3)、方程组有不止一个解时,这些不同的解之间有无内在联系,即解的结构问题。

高斯消元法,最基础和最直接的求解线性方程组的方法,其中涉及到三种对方程的同解变换:

(1)、把某个方程的k倍加到另外一个方程上去;

(2)、交换某两个方程的位置;

(3)、用某个常数k乘以某个方程。我们把这三种变换统称为线性方程组的初等变换。

任意的线性方程组都可以通过初等变换化为阶梯形方程组。

由具体例子可看出,化为阶梯形方程组后,就可以依次解出每个未知数的值,从而求得方程组的解。

对方程组的解起决定性作用的是未知数的系数及其相对位置,所以可以把方程组的所有系数及常数项按原来的位置提取出来,形成一张表,通过研究这张表,就可以判断解的情况。我们把这样一张由若干个数按某种方式构成的表称为矩阵。

可以用矩阵的形式来表示一个线性方程组,这至少在书写和表达上都更加简洁。

系数矩阵和增广矩阵。

高斯消元法中对线性方程组的初等变换,就对应的是矩阵的初等行变换。阶梯形方程组,对应的是阶梯形矩阵。换言之,任意的线性方程组,都可以通过对其增广矩阵做初等行变换化为阶梯形矩阵,求得解。

阶梯形矩阵的特点:左下方的元素全为零,每一行的第一个不为零的元素称为该行的主元。

对不同的线性方程组的具体求解结果进行归纳总结(有唯一解、无解、有无穷多解),再经过严格证明,可得到关于线性方程组解的判别定理:首先是通过初等变换将方程组化为阶梯形,若得到的阶梯形方程组中出现0=d这一项,则方程组无解,若未出现0=d一项,则方程组有解;在方程组有解的情况下,若阶梯形的非零行数目r等于未知量数目n,方程组有唯一解,若r在利用初等变换得到阶梯型后,还可进一步得到最简形,使用最简形,最简形的特点是主元上方的元素也全为零,这对于求解未知量的值更加方便,但代价是之前需要经过更多的初等变换。在求解过程中,选择阶梯形还是最简形,取决于个人习惯。

常数项全为零的线性方程称为齐次方程组,齐次方程组必有零解。

齐次方程组的方程组个数若小于未知量个数,则方程组一定有非零解。

利用高斯消元法和解的判别定理,以及能够回答前述的基本问题(1)解的存在性问题和(2)如何求解的问题,这是以线性方程组为出发点建立起来的最基本理论。

对于n个方程n个未知数的特殊情形,我们发现可以利用系数的某种组合来表示其解,这种按特定规则表示的系数组合称为一个线性方程组(或矩阵)的行列式。行列式的特点:有n!项,每项的符号由角标排列的逆序数决定,是一个数。

通过对行列式进行研究,得到了行列式具有的一些性质(如交换某两行其值反号、有两行对应成比例其值为零、可按行展开等等),这些性质都有助于我们更方便的计算行列式。

用系数行列式可以判断n个方程的n元线性方程组的解的情况,这就是克莱姆法则。

总而言之,可把行列式看作是为了研究方程数目与未知量数目相等的特殊情形时引出的一部分内容

--1检索“吴迪”老师讲授的课程号和课程名

select cno ,cname ,teacher from c where teacher ='吴迪'

--2检索所有女同学和年龄小于20岁的男同学

select from s where

ssex='男' and age <20 or s sex ='女'

--3检索至少选修“吴迪”老师讲授课程中一门课的学生姓名

select sname from s where sno in (select sno from sc where cno in (select cno from c where teacher ='吴迪' ))

--4检索“李波”同学不学的课程的课程名

select cname from c where cno in (select cno from sc where sno not in (select sno from s where sname ='李波'))

--5检索至少选修两门课程的学生的姓名

select sname from s where sno in (select sno from (select COUNT (sno) as 'scNumber',sno from sc group by sno) scs where scNumber >=2)

--6检索未被选修的课程的课程名

select cname from c where cno not in (select cno from sc)

--7检索选修全部课程的学生的学号

select sno from s where sno in (select sno from (select COUNT (sno) as 'scNumber',sno from sc group by sno) scs where scNumber = (select COUNT (distinct c cname) from c ))

--8检索选修了“吴迪”老师讲授课程的学生的学号

select sno from s where sno in (select sno from sc where cno in (select cno from c where teacher ='吴迪'))

--9检索选修了“吴迪”老师讲授课程且成绩高于85的学生的学号sele

select sno from s where DEPT >85 and sno in (select sno from sc where cno in (select cno from c where teacher ='吴迪'))

--10检索“王虎”同学所学课程的课程号

select cno from sc where sno = (select sno from s where sname ='王虎')

--11检索选修了C01和C02两门课程的学生的姓名

select sname from s where sno in ( select scsno from sc where scsno in(select scsno from sc where sccno = (select ccno from c where ccname ='c01'))and sccno=(select ccno from c where ccname ='c02'))

--12检索未选修课程的学生的学号

select sno from s where sno not in (select sno from sc ) select from sc

这个跟数据库表的设计有关,你的问题应该设计3个表,一个是学生表(学号,姓名,专业),一个是课程表(课程代号,课程名),还有一个是成绩表(学号,课程代号,分数),那么所求问题的SQL语句是:

SELECT A学号,A姓名,A专业,C分数 FROM 学生表 A,课程表 B,成绩表 C WHERE A学号=C学号 AND B课程名="数据库原理" AND B课程代号=C课程代号 AND C分数〉90

(1)πA(R) SELECT A FROM R

(2)σB='17'(R)SELECT FROM R WHERE B=17

(3)R×SSELECT FROM R ACROSS S

(4))πA,F(σC=D(R×S)) SELECT A , F FROM R JOIN S ON C=D

关系代数是一门抽象的查询语言,它用对关系的运算来表达查询。

运算对象、运算符、运算结果是运算的三大要素。关系代数的运算对象是关系,运算结果也是关系。

设R和S是n元关系,而且两者各对应属性的数据类型也相同。R和S的并 *** 作定义为:

条件:① 等目、同元,即他们的属性数目必须相同  ② 对任意i,r的第i个属性域和s的第i个属性域相同

如:Πname(instructor)∪Πname(student)

简单来说就是: R和S所有关系都组合在一起, 重复的就不写

p是选择 *** 作,p用的是逻辑连接词,如∧、∨、┐

注:执行选择时,选择条件必须是针对同一元组中的相应属性值代入进行比较

简单来说就是: 把符合元组的拿出来

a1,a2等是属性名,r是关系名。其结果为保留此k列的值,并删除重复的行

条件:①等目、同元,即他们的属性数目必须相同 ②对任意i,r的第i个属性域和s的第i个属性域相同(和并运算一样的条件)

简单来说就是:因为是R-S, 找R在S关系中没有的

假设R的属性和S的属性没有交集就如图一,如果R和S的属性有交集,那么必须重命名这些有交集的属性

返回表达式E的结果,并赋给它名字X,同时将属性重命名为A1,A2An

例一:找出贷款额大于1200的元组

例二:找出贷款大于1200的贷款号

例三:找出有贷款或有账户两者兼有的所有客户姓名

例四:找出至少有一个贷款及一个账户的客户姓名

例五:找出Perryridge分支机构有贷款的顾客姓名

这个查询运用了两个关系,这个时候就要运用笛卡尔积

为什么要做“σ borrowloan-number = loanloan-number”的判断?因为这里面的组合很多,而我们要去除掉没有意义的组合

查询二要比查询一更好一点,因为borrower x loan的数据有可能是很庞大的,降低了查询效率,而查询二先做了选择再进行笛卡尔积运算,数据量相较小一点。

例六:找出在Perryridge分支机构有贷款,但在其他分支机构没有账号的顾客姓名

例七:找出银行中最大的账户余额

以上就是关于数据库关系代数表达式的问题,第四问和第五问,不明白什么意思,求解答。全部的内容,包括:数据库关系代数表达式的问题,第四问和第五问,不明白什么意思,求解答。、求助 这道数据库 关系代数表达式的题目 的答案、在student数据库中用关系代数表达式检索“数据库原理”课程成绩高于90分的学生的学号、姓名、专业和分数;等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9446080.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存