数据库系统
姓名:许颖
学号:210162704048
标题:数据库系统 https://i.cnblogs.com/posts/edit;postId=16897485
数据库系统
数据库的四个基本概念:
1、数据:描述事物的符号记录
2、数据库:
3、数据库管理系统
4、数据库系统
数据库系统的特点:
- 数据结构化
- 数据共享性高,冗余度低且易扩充
- 数据的独立性高
4.数据由数据库管理系统统一管理和控制
a、数据的安全性保护
b、数据的完整性检查
c、并发控制
d、数据库恢复
数据模型的组成要素:
1、数据结构
2、数据操作
3、数据完整性约束
常用的数据模型:
1、层次模型——1:n
2、网状模型——m:n
3、关系模型
关系的完整性约束
1、实体完整性
2、参照完整性
3、用户定义完整性
关系数据库
关系的三种类型:
基本关系、查询和视图表
关系的每一个分量都必须是不可再分的数据项
关系代数:
笛卡尔积
除运算
选择
选择又称为限制(Restriction)
选择运算的含义
在关系中选择满足给定条件的诸元组
选择运算符σ
[例1] 查询信息系(IS系)全体学生
σsdept
='IS'
(Student)
[例2] 查询年龄小于20岁的学生
σsage<20
(Student)
[例3] 查询信息系年龄小于20岁的学生
σsdept='IS'
(Student)∩sage<20
(Student)
∧ 逻辑与
∨ 逻辑或
注:选择运算是从行的角度进行的运算
投影
投影运算的含义: 从R中选择出若干属性列组成新的关系
投影运算符π
但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)
[例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)
两关系中相同属性组的等值连接
结果中去掉重复属性列
分析:成绩在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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律