数据库系统概论重要知识点

问题描述

一、绪论

1.1、数据库系统概述

1.1.1、数据库的4个基本概念
1.数据(Data):描述事物的符号称为数据
2.数据库(DataBase,DB):数据库是长期存储在计算机内、有组织的、可共享的大量数据集合
3.数据库管理系统(DataBase Management System,DBMS):数据库管理系统是位于用户与操作系统之间的一层数据管理软件
4.数据库系统(DataBase System,DBS):数据库系统是由数据库、数据管理系统、应用程序和数据库管理员(DataBase Administrator,DBA)组成的存储、管理、处理和维护数据的系统
1.1.2、数据管理技术的产生和发展

1.人工管理阶段

数据不保存,应用程序管理数据,数据不共享,数据不具有独立性

2.文件系统阶段

数据可以长期保存,由文件系统管理数据,数据共享性差、冗余度大,数据独立性差

3.数据库系统阶段

1.数据结构化
2.数据共享性高、冗余度低且容易扩充
3.数据独立性高(数据独立性、物理独立性、逻辑独立性)
4.数据由数据库管理系统统一管理和控制

1.2、数据模型

数据模型是对现实数据的抽象

1.2.1、两类数据模型
1.第一类是概念模型,他是按照用户的观点来对数据和信息的建模,主要用于数据库设计
2.第二类中的逻辑模型,他是按照计算机系统的观点对数据建模,主要用于数据库管理系统的实现
3.第二类中的物理模型是对数据最底层的抽象,它描述数据在系统内部的表示方法和存取方法

1.3、数据库系统的结构

(1)实体:客观存在并可以相互区别的事物称之为实体
(2)属性:实体所具有的某一特性称为属性
(3)码:唯一标识实体的属性集称为码
(4)实体型:用实体名及其属性名集合来抽象和刻画同类实体,称为实体型
(5)实体集:同一类型实体的集合
(6)联系;实体之间的联系通常是指不同实体之间的联系

二、关系数据库

2.1、关系数据库结构及形式化定义

2.1.1、关系
  1. 域:域是一种具有相同数据类型的值得集合
  2. 笛卡尔积:是域上的一种集合运算
  3. 关系:

2.2、关系操作

关系模型中常用的关系操作包括查询操作和插入、删除、修改操作两大部分

选择可以分为:选择、投影、并、差、除、交、笛卡尔积等
基本操作:选择、投影、并、差、笛卡尔积

2.3、关系的完整性

  • 实体完整性
  • 参照完整性
  • 用户定义完整性

实体完整性:若属性A是基本关系R的主属性,则A不能取空值
参照完整性:若属性F是基本关系R的外码,它与基本关系Ks的主码相对应,则对R中在每个元祖在F上的值必须:

  1. 或者取空值(F的每个属性值均为空)
  2. 或者等于S中某个元组的主码值

用户定义完整性:任何关系数据库系统都应该支持实体完整性和参照完整性

2.4、关系代数

关系代数的运算按运算符的不同成分可分为传统的集合运算专门的集合运算两类

集合运算符:∪(并)、∩(交)、-(差)、×(笛卡尔积)
专门的关系运算符:σ(选择)、∏(投影)、∞(连接)、÷(除)
2.4.1、传统的集合运算

三、关系数据库标准语言SQL

点击获取建表语句和表数据

3.1、单表查询

1.选择表中的若干列

1.查询指定列

select Sno,Sname from Student;

2.查询全部列

select*from Student;

3.查询经过计算的值

3.1、查询到同学的出生年份

select Sname,2022-Sage from student;

在这里插入图片描述
3.2、起别名,增加列,通过函数转换大小写

select Sname 姓名,'Brith',2022-Sage,lower(Sdept) from Student;

在这里插入图片描述

2.选择表中的若干元组

1.消除取值重复行

select distinct Sno from SC;

在这里插入图片描述
2.查询满足条件的元组

2.1、比较大小

select * from Student where Sage<20;

在这里插入图片描述
2.2、确定范围

select * from Student where Sage between 20 and 30;

在这里插入图片描述
2.3、确定集合

select * from Student where Sdept in ('CS','MA');

在这里插入图片描述
2.4、字符匹配

  • %(百分号)代表任意长度(长度可以为0)的字符串
  • _(下横线)代表任意单个字符
select * from Student where Sname like '刘%';
select * from Student where Sname like '刘_';

select * from Student where Sname not like '刘%';
select * from Student where Sname not like '刘_';

2.5、空值查询

select * from Student where Grade is null;
3.order by子句

用户可以用order by 子句对查询结果按照一个或多个属性列的升序(ASC)降序(DESC)排列,默认值升序

select * from SC order by Grade;

在这里插入图片描述

4.聚集函数
select count(*) from Student;
select count(Sno) from Student;
select avg(Grade) from SC;
select sum(Grade) from SC;
select max(Grade) from SC;
select min(Grade) from SC;

当聚集函数遇到空值时,除count(*)外,都跳过空值处理非空值
聚集函数只能用于select子句和group by中的having子句

5.group by分组
select Sno,count(*) from Student group by Sno;

在这里插入图片描述

select Sno from SC group by Sno having count(Sno)>3;

在这里插入图片描述

3.2、连接查询

若一个查询同时涉及两个以上的表,则称之为连接查询

1、等值与非等值连接查询
  • 连接查询的where子句中用来连接两个表的条件成为连接条件连接谓词
  • 当连接运算符为=号时,称为等值连接,使用其他运算符称为非等值连接

例1、查询每个学生及其选修课程的情况

select * from Student,SC where Student.Sno=SC.Sno;

在这里插入图片描述
把目标列中重复的属性列去掉则为自然连接

select Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade from Student,SC where Student.Sno=SC.Sno;

在这里插入图片描述

2、自身连接

连接操作不仅可以在两个表之间进行,也可以时一个表与自身进行连接,称之为表的自身连接
例2、查询每一门课的间接先修课(即先修课的先修课)

select first.Cno,second.Cpno from Course first,Course second where first.Cpno=second.Cno;

在这里插入图片描述

3、外连接

有时想以Student 表为主体列出每个学生的基本情况和选课情况。若某个学生没有选课,仍把Student的悬浮元组保存在结果关系中,而在SC表的属性上填空值NULL,这时就需要使用外连接

select * from Student left outer join SC on (Student.Sno=SC.Sno);

在这里插入图片描述
左外连接列出左边关系中所有元组,右外连接列出右边关系中所有的元组

4、多表连接

连接操作除了可以时两表连接、一个表与自身连接外,还可以是两个以上的表进行连接,后者通常称为多表连接
例4、查询每个学生的学号、姓名、课程名、成绩

select Student.Sno,Sname,Cname,Grade from Student,Course,Sc where Student.Sno=SC.Sno and SC.Cno=Course.Cno;

在这里插入图片描述

3.3、嵌套查询

在SQL语言中,一个select-from-where 语句称为一个查询块,将一个查询块嵌套在另一个查询块的where子句或having短语的条件中的查询称为嵌套查询例如:
查询选修课程号为2的学生姓名

select Sname from Student where Sno in (select Sno from SC where Cno='2');

本例中,下层查询块 select sno from sc where cno=‘2’是嵌套在上层查询块select sname from student where sno in 的where条件中的,上层的查询块称为外查询父查询,下层查询块称为内查询子查询

子查询的select语句中不能使用 order by 子句,order by子句只能对最终查询结果排序

1、带有IN谓词的子查询

例1、查询与“刘晨”在同一个系学习的学生

select * from student where Sdept in (select Sdept from Student where Sname='刘晨');

在这里插入图片描述

本例中,子查询条件不依赖于父查询,称为不相关子查询

例2、查询选修了课程名为“信息系统”的学生学号和姓名

select Sno,Sname from Student where Sno in(select Sno from SC where Cno in (select Cno from Course where Cname='信息系统'));

在这里插入图片描述

2、带有比较运算符的子查询

带有比较运算符的子查询是指父查询与子查询之间用比较运算符进行连接。当用户明确知道内层查询返回的是单个值时,可以用>、<、=、>=、<=、!=或<>等比较运算符

例3、找出每个学生超过他自己选修课程平均成绩的课程号

select Sno,Cno from SC x where Grade>(select avg(Grade) from SC y where y.Sno=x.Sno);

在这里插入图片描述
x 是表SC的别名,又称为元组变量,可以用来表示SC的一个元组,内层查询是求一个学生所有选修课平均成绩的,至于是哪个学生的平均成绩要看参数x.Sno的值,而该值是与父查询相关的,因此这类查询称为相关子查询

3、带有ANY或ALL谓词的子查询
>ANY 大于子查询结果中的某个值
>ALL 大于子查询结果中的所有值
<ANY 小于子查询结果中的某个值
<ALL 小于子查询结果中的所有值

>=ANY 大于等于子查询结果中的某个值
>=ALL 大于等于子查询结果中的所有值
<=ANY 小于等于子查询结果中的某个值
<=ALL 小于等于子查询结果中的所有值

例4、查询非计算机科学系中比计算机科学系任意一个学生年龄小的学生姓名和年龄

select Sname,Sage from Student where Sage<ANY(select Sage from Student where Sdept='CS') and Sdept!='CS';

在这里插入图片描述

4、带有EXISTS谓词的子查询

EXISTS代表存在量词,带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值“true”或逻辑假值“false”

例5、查询所有选修了1号课程的学生姓名

select Sname from Student where exists (select * from SC where Student.Sno=SC.Sno and Cno='1');

使用存在量词exists后,若内层查询结果非空,则外层的where子句返回真值,否者返回假值

例6、查询选修了全部课程的学生姓名
SQL中没有全称量词(for all),但是可以把带有全称量词的谓词转换为等价的带有存在量词的谓词,可以将题目转换成等价的存在量词的形式:没有一门课程是他不选修的

select Sname from Student where exists (select * from Course where exists (select * from SC where SC.Sno=Student.Sno and SC.Cno=Course.Cno));

在这里插入图片描述

3.4、集合查询

集合操作主要包括并操作NUION交操作INTERSERT差操作EXCEPT
例1、查询计算机科学系的学生及年龄不大于19岁的学生

select * from Student where Sdept='CS' union select * from Student where Sage<=19;

在这里插入图片描述
例2、查询计算机科学系的学生与年龄不大于19岁的学生的交集

select * from Student where Sdept='CS' intersect select * from Student where Sage<=19;

这实际上就行查询计算机科学系中年龄不大于19岁的学生

select *from Student where Sdept='CS' and Sage<=19;

在这里插入图片描述

例2、查询计算机科学系的学生与年龄不大于19岁的学生的差集

select * from Student where Sdept='CS' except select * from Student where Sage<=19;

这实际上就行查询计算机科学系中年龄大于19岁的学生

select *from Student where Sdept='CS' and Sage>19;

在这里插入图片描述

2、

3、

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
数据库系统概论知识点总结全文共10页,当前为第1页。《数据库系统概论知识点总结全文共10页,当前为第1页。一、选择题: 《数据库系统概论知识点总结全文共10页,当前为第1页。 《数据库系统概论知识点总结全文共10页,当前为第1页。 1. 在关系数据库的结构化查询语言中,"DELETE FROM表名"表示(从基表中删除所有属性); 2.在数据库管理系统中,事务的四个特性包括(原子性,一致性,隔离性,持续性); 3.在数据库理论中,用二维表结构表示的数据模型称为(关系模型); 4.在数据库系统结构中,用户使用的数据视图称为(外模式,也称子模式或用户模式); 5.下列说法正确的是(B); A.数据库避免了一切数据冗余 B.数据库中的数据可以共享 C.数据库避免了一切数据的重复 D.数据库具有完全的数据独立性 6.在关系数据库中,用于关系代的关系运算包括(选择,投影,连接,除运算); 7.封锁机制主要用于实现(并发控制); 8.转储的冗余包括(日志文件、数据库后背副本) 9.在局部视图设计中,分E-R图之间的冲突包含下列哪一个(A); A.属性冲突 B.实体冲突 C.联系冲突 D.关系冲突 10.关系演算是用(谓词)来表达查询要求的方式; 11.并发控制:把关系数据库从错误状态恢复到一致状态; 12.转储方式可分为(海量转储和增量转储); 13.在关系数据库的结构化查询语言中,实现分组查询的子句是(GROUP BY); 14.在关系数据库的结构化查询语言中,带有"EXISTS"谓词的子查询返回是(逻辑值真"true"假"false"); 15.在关系数据库的结构化查询语言中,实现"投影"操作的语句是(SELECT); 16.SQL语言提供的功能不包括(A); A.修改表结构 B.删除属性列 C.删除元组 D.授权 17.两个函数依赖集F和G等价的充分必要条件是(F*=G*); 18.下面列出的关于"视图"的条目中,不正确的是(C) A.视图是外模式 B.视图是虚表 C.加快查询语句的执行速度 D.简化查询语句的编写 19.事务定义不正确的说法是(C) A.用户定义的一个数据库操作序列 B.一个不可分割的工作单位 《数据库系统概论知识点总结全文共10页,当前为第2页。 数据库系统概论知识点总结全文共10页,当前为第2页。C.就是程序 D一条或一组SQL语句、或整个程序 《数据库系统概论知识点总结全文共10页,当前为第2页。 数据库系统概论知识点总结全文共10页,当前为第2页。 20.关于函数依赖,正确的是(A) A.若X Y,Y Z,则X YZ B.若XY Z,则X Z,Y Z C.若X Y,Y Z,则Y X D.若X Y,Y Z,Y'包含Y,则Z Y' 二、填空题: 1.数据库系统死锁属于(事务故障); 2.在数据库设计中,(需求分析)表达了数据和处理的关系; 3.在数据库设计中,(数据字典)是系统中各类数据表述的集合,是进行详细的数据收集和数据分析所获得的主要成果; 4.事务是数据库的逻辑工作单位,包括的操作要么都要做,要么都不做,成为事务的(原子性); 5.在并发操作中,产生数据不一致性的主要原因是并发操作破坏了事务的(一致性); 6.(一致性)是指数据库中只包含成功事务提交的结果; 7.对并发执行而言,一个事务的执行不能被其他事务干扰,一个事务内部的操作及使用的数 据对其他并发事务是隔离的,并发执行的各个事务之间不能相互干扰,成为事务的(隔离性); 8.(E—R)模型是关系数据库的概念结构设计的一个有力工具; 9.关系数据库的(规范化理论)是使数据库设计方法走向完备的理论基础; 10.(数据库管理系统)是管理数据库的机构,是位于用户与操作系统之间的一层数据管理软件; 四.设计题: 某医院病房计算机管理中需要如下信息: 科室:科名、科地址、科电话、医生姓名; 病房:病房号、床位号、所属科室名; 医生:姓名、职称、所属科室名、年龄、工作证号; 病人:病历号、姓名、性别、诊断、主管医生、病房号; 其中,一个科室有多个病房,多个医生;一个病房只能属于一个科室,一个医生只属于一个科室,但可以负责多个病人的诊治,一个病人的主管医生只有一个。完成如下设计: 设计该计算机管理系统的E—R图; 将该E—R图转换为关系模型图; 《数据库系统概论知识点总结全文共10页,当前为第3页。《数据库系统概论知识点总结全文共10页,当前为第3页。 指出转换结果中每个关系模式的候选码; 《数据库系统概论知识点总结全文共10页,当前为第3页。 《数据库系统概论知识点总结全文共10页,当前为第3页。 答: 画图; 科室:科名、科地址、科电话、医生姓名; 病房:病房号、床位号、所属科室名; 医生:姓名、职称、所属科室名、年龄、工作证号; 病
1 .试述数据、数据库数据库系统、数据库管理系统的概念。 答: ( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机系统中数据的概念是广义的。早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂。数据与其语义是不可分的。 500 这个数字可以表示一件物品的价格是 500 元,也可以表示一个学术会议参加的人数有 500 人,还可以表示一袋奶粉重 500 克。 ( 2 )数据库( DataBase ,简称 DB ) :数据库是长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。 ( 3 )数据库系统( DataBas 。 Sytem ,简称 DBS ) :数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。解析数据库系统和数据库是两个概念。数据库系统是一个人一机系统,数据库数据库系统的一个组成部分。但是在日常工作中人们常常把数据库系统简称为数据库。希望读者能够从人们讲话或文章的上下文中区分“数据库系统”和“数据库”,不要引起混淆。 ( 4 )数据库管理系统( DataBase Management sytem ,简称 DBMs ) :数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。 DBMS 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。解析 DBMS 是一个大型的复杂的软件系统,是计算机中的基础软件。目前,专门研制 DBMS 的厂商及其研制的 DBMS 产品很多。著名的有美国 IBM 公司的 DBZ 关系数据库管理系统和 IMS 层次数据库管理系统、美国 Oracle 公司的 orade 关系数据库管理系统、 s 油 ase 公司的 s 油 ase 关系数据库管理系统、美国微软公司的 SQL Serve ,关系数据库管理系统等。 2 .使用数据库系统有什么好处? 答: 使用数据库系统的好处是由数据库管理系统的特点或优点决定的。使用数据库系统的好处很多,例如,可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担,等等。使用数据库系统可以大大提高应用开发的效率。因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由 DBMS 来完成。用一个通俗的比喻,使用了 DBMS 就如有了一个好参谋、好助手,许多具体的技术工作都由这个助手来完成。开发人员就可以专注于应用逻辑的设计,而不必为数据管理的许许多多复杂的细节操心。还有,当应用逻辑改变,数据的逻辑结构也需要改变时,由于数据库系统提供了数据与程序之间的独立性,数据逻辑结构的改变是 DBA 的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序,从而既简化了应用程序的编制,又大大减少了应用程序的维护和修改。使用数据库系统可以减轻数据库系统管理人员维护系统的负担。因为 DBMS 在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性、多用户并发控制、故障恢复等,都由 DBMS 执行。总之,使用数据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余,提高数据的利用率和一致性,又有利于应用程序的开发和维护。读者可以在自己今后的工作中结合具体应用,认真加以体会和总结。
数据库系统概论是计算机科学与技术专业中的一门基础课程,主要讲解了数据库系统的基本概念、原理、技术和应用等方面的知识点。在CSDN(中国最大的IT社区与开发者服务平台)上,我将简要介绍数据库系统概论中的一些重要知识点。 首先,数据库系统的概念和基本特征是数据库系统概论的重点内容。数据库是指保存有组织的数据的集合,系统是指由数据库管理系统(DBMS)和数据库应用程序组成的运行环境。数据库系统具有数据独立性、数据共享性、数据一致性和数据安全等基本特征,能够解决传统文件系统所存在的数据冗余、数据不一致等问题。 其次,数据库系统的三级模式结构也是重要知识点之一。数据库系统采用了三级模式结构,即外模式、概念模式和内模式。外模式是用户对数据库的逻辑视图,概念模式是数据库的全局逻辑视图,内模式是数据库物理存储的视图。三级模式结构的设计可以实现数据的逻辑和物理分离,提高了系统的灵活性和可维护性。 此外,数据库系统的查询处理和优化技术也是数据库系统概论中的重要内容。查询处理包括查询编译、查询优化和查询执行三个步骤,其中查询优化是关键的步骤。查询优化的目标是通过选择最优的查询执行计划,提高查询性能和效率。在此过程中,需要考虑到索引的选取、连接操作的选择、投影和选择的执行顺序等因素。 最后,数据库系统的事务管理和并发控制也是数据库系统概论中的重点内容。事务是数据库系统中的逻辑工作单位,具有原子性、一致性、隔离性和持久性等特性。并发控制是为了保证多个并发事务的执行正确性和一致性而进行的控制手段。常用的并发控制技术包括锁、并发调度算法和多版本并发控制等。 综上所述,数据库系统概论包括了数据库系统的基本概念、模型、查询处理、优化技术、事务管理和并发控制等方面的知识点。通过深入学习这些知识点,可以理解和掌握数据库系统的基本原理和技术,为今后的数据库设计、开发和管理提供坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微笑伴你而行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值