首页 > 数据库 >数据库系统

数据库系统

时间:2022-11-16 21:00:22浏览次数:39  
标签:学号 Sno 投影 查询 Student 数据库系统 连接

数据库系统


数据库的四个基本概念:

1、数据:描述事物的符号记录

2、数据库:

3、数据库管理系统

4、数据库系统

数据库系统的特点:

  1. 数据结构化
  2. 数据共享性高,冗余度低且易扩充
  3. 数据的独立性高

         4.数据由数据库管理系统统一管理和控制

a、数据的安全性保护

b、数据的完整性检查

c、并发控制

d、数据库恢复

数据模型的组成要素:

1、数据结构

2、数据操作

3、数据完整性约束

常用的数据模型:

1、层次模型——1:n

2、网状模型——m:n

3、关系模型

 

 

关系数据库


 

关系的三种类型:

基本关系、查询和视图表

关系的每一个分量都必须是不可再分的数据项

关系代数:

笛卡尔积



 



 

 

 

 

 



 

除运算


 


 

选择


 

选择又称为限制(Restriction)

选择运算的含义
在关系中选择满足给定条件的诸元组
选择运算符σ

[例1]  查询信息系(IS系)全体学生

σ
sdept
=
'IS'
(Student)

[例2]  查询年龄小于20岁的学生       

σ
sage<20
(Student)

[例3]  查询信息系年龄小于20岁的学生

 

σ
sdept='IS'
(Student)∩
sage<20
(Student)

∧  逻辑与
∨  逻辑或

注:选择运算是从行的角度进行的运算


 

投影


 

      投影运算的含义

 从R中选择出若干属性列组成新的关系

投影运算符π

投影操作主要是从列的角度进行运算


但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)
3) 举例
[例1]  查询学生的姓名和所在系
    即求Student关系上学生姓名和所在系两个属性上的投影

π Sname,Sdept(Student)

[例2]查询学生关系Student中都有哪些系          

π Sdept(Student)

[例3]  查询CS系的学生姓名           

π Sname(σSdept='CS'(Student) )

[例4] 查询没有选过课的学号
思路:所有学生号-选过课的学生号

π Sno(Student)-  π Sno(SC)

[例5]查询没有不及格的学号
思路:所有学号-有不及格的学号

π Sno(Student)-  π Sno(σGrade < 60 (SC))

查询没有不及格的学号
这样做有错, 为什么?

π Sno(σGrade>= 60 (SC))

这是查询有过及格的学号!!!

[例6]查未被选修的课号
所有课号 -  被选修的课号

π cno(Course)  -π cno(SC)

连接


 

1)连接运算的含义
从两个关系的笛卡尔积中选取属性间满足一定条件的元组


 
A和B:分别为R和S上的属性组
θ:比较运算符 

2)两类常用连接运算

等值连接(equijoin)
θ为“=”的连接运算称为等值连接

自然连接(Natural join)
两关系中相同属性组的等值连接
结果中去掉重复属性列

[例 1]查询有成绩>95的学号,姓名
分析:成绩在SC表中, 姓名在STUDENT表中
          如果有一张大表,有学号、姓名、成绩 就好了
          自然连接STUDENT和SC即可

π Sno,Sname (σgrade>95(Student连接SC) )

问题:什么时候要用到连接运算?
结论:当查询条件和结果来自两个关系时, 用连接

[例 2]  查询选修了2号课程的学生的学生名。

π Sname(σCno=‘2’(Student 连接 SC ))

[例3]  查询选修了先行课为5号课的课程的学生姓名。

π Sname(σ Cpno='5'(Student 连接 SC 连接 Course))

π Sname(π Sno,Sname(Student) 连接 SC 连接 σCpno='5'(Course))//性能更好

[例4] 查询没有选过课的学号,姓名

π Sno,Sname (Student  连接 (πSno(Student) -  πSno(SC))  )

练习题:

1.查询CS系的学生姓名

投影 Sname(选择 Sdept=’cs’( Student))

2.查询有成绩>90的学号

投影 Sno 选择 Grade90(c))

3.查询没有被选修的课号

投影Cno(Course)-投影cno(sc)

4.查询没有被选修的课号,课名

投影 Cno, Cname(Course连接(投影Cno( Course)-投影cno(Sc)

5.查询CS系成绩〉90的学号,姓名

投影sno, Sname选择 Sdept='cs'( Student)连接选择 Grade>90(sC)连接 Student)

6.查询数据库原理课成绩〉90的学号

投影 sno(选择 Cname='数据库原理'(Course)连接 选择Grade>90(sc))

7.查询CS系数据库原理课成绩〉90的学号,姓名

投影 Sno, Sname(选择 Cname='数据库原理'( Course)连接 选择 Grade>90 (Sc )连接 Student)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:学号,Sno,投影,查询,Student,数据库系统,连接
From: https://www.cnblogs.com/hinima/p/16897485.html

相关文章