数据库系统概论面向期末考试的笔记(未完)
Posted karshey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库系统概论面向期末考试的笔记(未完)相关的知识,希望对你有一定的参考价值。
B站视频
B站第一章
参考资料
图片来自视频链接和参考资料。
第一章:绪论
本章目录:
- 四个基本概念
- 发展阶段
- 数据模型
- 三级模式网状映像
- 数据库系统的组成
四个概念
四个概念是由小到大的:
数据:Data
数据库:DataBase
数据库管理系统:DBMS
数据库系统:DBS
举个快递的例子:
Data:快递
DB:物流仓库
DBMS:整个仓库的运作情况
DBS:整个物流体系(宏观)
数据库关系系统的功能
数据库系统组成
发展阶段
人工、文件系统、数据库阶段
数据模型
分为:概念模型,逻辑和物理模型
数据模型的组成要素:
概念模型如图:
逻辑模型:
逻辑模型之层次模型:
与树形结构类似,有双亲,根节点,兄弟节点。
优点:数据结构清晰,查询效率高
逻辑模型之网状模型:
类似于图的结构。
优点:更直接地表示现实世界,有良好的性能,存储效率高
逻辑模型之关系模型:
就是一张二维表。后面会细讲。
有一些术语:
关系模型的完整性约束
关于参照完整性举例:
这是一个学生表:
学号 | 姓名 | 所属班级号 |
---|---|---|
1 | 小明 | 2 |
2 | 小王 | - |
3 | 小红 | 1 |
这是一个班级表:
班级号 | 所属专业 |
---|---|
1 | 计算机科学与技术 |
2 | 软件工程 |
学生表中的 所属班级号 参照的是班级表中的 班级号。
所属班级号可以为空(如小王),但不能是班级表中没出现的班级号。
这就是 参照完整性,学生表的所属班级号就是 外码。
三级模式两级映像
三级模式:外模式、模式、内模式
两级映像:外模式/模式映像、内模式/模式映像
外模式可以有多个,内模式和模式只有一个。
外模式:给用户看的,所以有多个外模式,因为会给不同的用户看
模式:也称为逻辑模式,管表的
内模式:也称为存储模式,管存储的
两个独立性
逻辑独立性+物理独立性:
逻辑独立性:当模式结构改变时,只要修改外模式/模式映像即可保持逻辑独立性。
物理独立性:当内模式结构改变时,只要修改内模式/模式映像即可保持物理独立性。
记法:
看图,模式改变了,按理来说它上层的外模式就会变,但修改了其映像就能使它不变,保持逻辑独立性。
内模式改变了,内模式是管存储的,与物理有关。
数据库系统的组成
第二章:关系数据库
本章目录:
- 关系模式
- 关系操作
- 关系语言的分类
- 关系的完整性
关系模式
关系模式:对关系的描述。
关系:一张二维表。
对关系的描述:
- 关系中有哪些属性
- 属性来自哪些域
- 属性与域之间的映射关系
即:R(U,D,DOM,F)
R:关系名
U:所有属性名
D:属性来自哪些域
DOM:属性和域的映射
F:属性间的依赖关系
关系操作
插入、查询、删除、修改。(即,增删查改)
查询最重要,又可以分为:
- 选择
- 投影
- 连接
- 除法
- 并
- 差
- 交
- 笛卡尔积
加粗的为查询中的基本操作。
关系语言的分类
- 关系代数语言(本章重点讲)
- 关系演算语言
- 具有关系代数和关系演算的SQL语言
关系代数与集合很像。
关系代数相关运算:
并、交、差
笛卡尔积
类似于运动员握手。
R的第1行要跟S的每一行握手。
R的第2行要跟S的每一行握手。
…
R的第n行要跟S的每一行握手。
选择
σ表示选择,σ后跟着选择的条件,括号里是表的名称。
相当于是在括号里的表中选择符合条件的。
投影
其实就是选择列。
连接
自然连接:把共同属性进行等值连接。
如:
如果有两个共同属性:
悬浮元组:在自然连接中被舍弃的元组被称为悬浮元组。
(如上图的R的3 3 4,S的1 1 1)
假设是R连接S。
外连接:保留R和S的悬浮元组。
左外连接:只保留R的悬浮元组。
右外连接:只保留S的悬浮元组。
除法
是一种包含全体的运算。
一个复杂一点的例子:
查询选修了全部课程的学生号码和姓名:
关系的完整性
- 实体
- 参照
- 用户定义
实体完整性:主码唯一且非空
参照完整性:外码要么为空,要么就要对应另一个表的主码
用户定义完整性:自己定义的完整性,比如成绩在0-100范围内
数据库第三章-上
本章目录:
- SQL特点
- SQL基本概念
- SQL的基本语法
SQL特点
SQL包括:数据查询、数据操作、数据定义、数据控制
它是一个非过程语言。
什么是非过程性语言?
我们在逻辑和物理模型里讲了层次、网状、关系模型。
其中层次模型和网状模型的查询是要有过程的,而关系模型不需要过程——这就是非过程性语言。
SQL特点:
- 综合统一:把定义、修改、删除、连接、安全性、完整性、事务控制、动态SQL等统一起来
- 高度非过程化:层次模型和网状模型是过程化的,关系模型是非过程化的
- 面向集合的操作方式
- 以同一种语法结构提供多种使用方式:既可以独立,也可以嵌入到Java或C++中
- 语言简洁,易学易用
SQL基本概念
这一章先将前三行的语法,数据控制是安全性里面的。
一些概念:
- 基本表:二维表
- 存储文件:存在数据库里的文件
- 视图:一个虚表,从一个或多个基本表中导出来的表,视图不是真正的表,他的数据都是在基本表中
外模式:视图与部分基本表
模式:基本表
内模式:存储文件
SQL包括:
- 数据定义
- 数据查询
- 数据更新:修改和删除
- 视图
1.数据定义
定义模式:CREATE SCHEMA <模式名> AUTHORIZATION <用户名>
为用户WANG定义一个学生-课程模式S-T:(这里用户可以理解为一个账户)
- CREATE 定义
- SCEMA模式
CREATE SCHEMA "S-T" AUTHORIZATION WANG;
删除模式:DROP SCHEMA <模式名> <CASCADE|RESTRICT>
CASCADE
(级联)
删除模式的同时把该模式下所有的数据库对象全部删除
RESTRICT
(限制)
如果该模式中定义了下属的数据库对象(如表、视图等),则停止执行该语句。
基本表的定义,修改,删除
定义格式:
CREATE TABLE <表名>(
<列名> <数据类型>[ <列级完整性约束条件> ]
[,<列名> <数据类型>[ <列级完整性约束条件>] ]
………
[,<表级完整性约束条件> ]
);
举个定义的例子:
学生表:
CREATE TABLE Student( /*定义一个表名为Student的表*/
Sno(CHAR(9)) PRIMARY KAY,
/*第一列是Sno,是属性(列名),CHAR是数据类型,长度为9. PRIMARY KAY表示设置为主码,逗号分隔*/
Sname CHAR(20) UNIQUE,/*第二列是Sname,设置UNIQUE表示不允许重复*/
Ssex CHAR(2),/*中文'男''女'占两个字节*/
Sdept CHAR(20)
);
课程表:
CREATE TABLE Course(
Cno CHAR(4) PRIMARY KEY,/*列级完整性约数条件,Cno是主码*/
Cname CHAR(40) NOT NULL,/*Cname不能为空*/
Cpno CHAR(4),/*含义是先修课*/
Ccredit SMALLINT,
FOREIGN KEY(Cpno)REFERENCES Course(Cno)
/*表级完整性约束条件,Cpno是外码,被参照的表是Course,被参照的列是Cno*/
);
一些数据类型:
修改基本表
格式:
ALTER TABLE <表名>
[ ADD <新列名> <数据类型> [ 完整性约束 ] ]
[ DROP <完整性约束名> ]
[ ALTER COLUMN<列名> <数据类型> ];
如:向Student表增加“入学时间”列,其数据类型为日期型。
ALTER TABLE Student ADD S_entrance DATE;
/*向Student表 增加列,列名为S_entrance 数据类型为DATE*/
如:将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数
ALTER TABLE Student ALTER COLUMN Sage INT;
/*选择表Student 选择列Sage 让它的数据类型为INT*/
如:增加课程名称必须取唯一值的约束条件
ALTER TABLE Course ADD UNIQUE(Sname);
/**选择表Course 令Sname这列属性UNIQUE**/
删除基本表
格式:
DROP TABLE <表名>[RESTRICT| CASCADE;
RESTRICT
:删除表是有限制的。
- 欲删除的基本表不能被其他表的约束所引用
- 如果存在依赖该表的对象,则此表不能被删除
CASCADE
:删除该表没有限制。
- 在删除基本表的同时,相关的依赖对象一起删除
索引的建立和删除
P2 12:29
以上是关于数据库系统概论面向期末考试的笔记(未完)的主要内容,如果未能解决你的问题,请参考以下文章