EagleBear2002 的博客

这里必须根绝一切犹豫,这里任何怯懦都无济于事

事务

事务(Transaction,缩写 txn)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。

事务是恢复和并发控制的基本单位。

事务的 ACID 特性:

  • 原子性(Atomicity):事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不
  • 一致性(Consistency)
  • 隔离性(Isolation)
  • 持续性(Durability)
阅读全文 »

关系模式及范式

关系模式由五部分组成,是一个五元组: \(R(U, D, \textup{DOM}, F)\)

  1. 关系名 \(R\) 是符号化的元组语义
  2. \(U\) 为一组属性
  3. \(D\) 为属性组 \(U\) 中的属性所来自的域
  4. \(\textup{DOM}\) 为属性到域的映射
  5. \(F\) 为属性组 \(U\) 上的一组数据依赖

由于 \(D\)\(\textup{DOM}\) 与模式设计关系不大,因此可以把关系模式看作一个三元组:$R U, F $

作为二维表,关系要符合一个最基本的条件:每个分量必须是不可分开的数据项。满足了这个条件的关系模式就属于第一范式(1NF)。

阅读全文 »

实体完整性

参照完整性

用户定义的完整性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# [例 5.7] Student 表的 Ssex 只允许取“男”或“女”。
CREATE TABLE Student
(
Sno CHAR(9) PRIMARY KEY,
Sname CHAR(8) NOT NULL,
Ssex CHAR(2) CHECK (Ssex IN ('男', '女')), /*性别属性 Ssex 只允许取'男'或'女' */
Sage SMALLINT,
Sdept CHAR(20)
);

# [例 5.8] SC 表的 Grade 的值应该在 0100 之间。
CREATE TABLE SC
(
Sno CHAR(9),
Cno CHAR(4),
Grade SMALLINT CHECK (Grade >= 0 AND Grade <= 100), /*Grade 取值范围是 0 到 100*/
PRIMARY KEY (Sno, Cno),
FOREIGN KEY (Sno) REFERENCES Student (Sno),
FOREIGN KEY (Cno) REFERENCES Course (Cno)
);

# [例 5.9]当学生的性别是男时,其名字不能以 Ms.打头。
CREATE TABLE Student
(
Sno CHAR(9),
Sname CHAR(8) NOT NULL,
Ssex CHAR(2) CHECK (Ssex IN ('男', '女')),
Sage SMALLINT,
Sdept CHAR(20),
PRIMARY KEY (Sno),
CHECK (Ssex = '女' OR Sname NOT LIKE 'Ms.%') /*定义了元组中 Sname 和 Ssex 两个属性值之间的约束条件*/
);

# [例 5.10]建立学生登记表 Student,要求学号在 90000~99999 之间,姓名不能取空值,年龄小于 30,性别只能是“男”或“女”。
CREATE TABLE Student
(
Sno NUMERIC(6) CONSTRAINT C1 CHECK (Sno BETWEEN 90000 AND 99999),
Sname CHAR(20) CONSTRAINT C2 NOT NULL,
Sage NUMERIC(3) CONSTRAINT C3 CHECK (Sage < 30),
Ssex CHAR(2) CONSTRAINT C4 CHECK (Ssex IN ( ‘男’,'女')),
CONSTRAINT StudentKey PRIMARY KEY (Sno)
);

# [例 5.11]建立教师表 TEACHER,要求每个教师的应发工资不低于 3000 元。应发工资是工资列 Sal 与扣除项 Deduct 之和。
CREATE TABLE TEACHER
(
Eno NUMERIC(4) PRIMARY KEY, /*在列级定义主码*/
Ename CHAR(10),
Job CHAR(8),
Sal NUMERIC(7, 2),
Deduct NUMERIC(7, 2),
Deptno NUMERIC(2),
CONSTRAINT TEACHERFKey FOREIGN KEY (Deptno)
REFERENCES DEPT (Deptno),
CONSTRAINT C1 CHECK (Sal + Deduct >= 3000)
);

# [例 5.12]去掉例 5.10 Student 表中对性别的限制。
ALTER TABLE Student
DROP CONSTRAINT C4;
# [例 5.13] 修改表 Student 中的约束条件,要求学号改为在 900000~999999 之间,年龄由小于 30 改为小于 40 可以先删除原来的约束条件,再增加新的约束条件
ALTER TABLE Student
DROP CONSTRAINT C1;
ALTER TABLE Student
ADD CONSTRAINT C1 CHECK (Sno BETWEEN 900000 AND 999999);
ALTER TABLE Student
DROP CONSTRAINT C3;
ALTER TABLE Student
ADD CONSTRAINT C3 CHECK (Sage < 40);

完整性约束命名子句

阅读全文 »

SQL 结构化查询语言,是关系数据库的标准语言。集数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)功能于一体。

仅有 9 个动词:CREATE, DROP, ALTER, SELECT, INSERT, UPDATE, DELETE, GRANT, REVOKE

SQL 与关系数据库

基本表是本身独立存在的表。一个关系对应一个基本表,一个或多个基本表对应一个存储文件,一个表可以带若干索引。

阅读全文 »

概念:域、笛卡尔积、关系、元组、属性、码。

候选码:若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码

主码:若一个关系有多个候选码,则选定其中一个为主码

主属性与非主属性候选码的诸属性称为主属性。不包含在任何侯选码中的属性称为非主属性或非码属性

数据库完整性

阅读全文 »

数据:数据库中存储的基本对象,是描述事物的符号记录。

数据的含义称为语义,数据与其语义是不可分的。

数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。

数据库系统的构成:数据库、数据库管理系统(DBMS,及其应用开发工具),应用程序,数据库管理员(DBA)。

数据管理方式

阅读全文 »

第一章-软件工程基础

软件工程的概念:

  1. 应用系统的、规范的、可量化的方法来开发、运行和维护软件,即将工程应用到软件。
  2. 对 1)各种方法的研究。

第二章-软件工程的发展

  1. 1950s:科学计算;以机器为中心进行编程;像生产硬件一样生产软件。
  2. 1960s:业务应用(批量数据处理和事务计算);软件不同于硬件;用软件工艺的方式生产软件。
  3. 1970s:结构化方法;瀑布模型;强调规则和纪律。它们奠定了软件工程的基础,是后续年代软件工程发展的支撑。
  4. 1980s:追求生产力最大化;现代结构化方法/面向对象编程广泛应用;重视过程的作用。
  5. 1990s:企业为中心的大规模软件系统开发;追求快速开发、可变更性和用户价值;web 应用出现
  6. 2000s:大规模 web 应用;大量面向大众的 web 产品;追求快速开发、可变更性、用户价值和创新。
阅读全文 »

本文档依据《中国近现代史纲要(2018 年版)》(高等教育出版社)、《中国近现代史纲要(2021 年版)》(高等教育出版社)、《中华人民共和国史》(人民出版社、高等教育出版社)、《从鸦片战争到五四运动》(胡绳著)等文献整理,多个来源互为补充,相左之处予以标明。

睡狮初醒:资本-帝国主义对华侵略

资本-帝国主义列强,对中国的侵略,首先和主要的是进行军事侵略。

鸦片战争

1840 年,英国发动了侵略中国的鸦片战争。中国历史的发展从此发生重大转折。

阅读全文 »