1、基础知识
1.1 数据库系统主要特点、六个设计阶段
1.1.1 数据库系统主要特点
1.数据结构化。数据库管理系统实现数据的整体结构化,一是指数据不仅仅是内部结构化,而是将数据以及数据之间的联系统一管理起来,使之结构化。二是指在数据库中的数据不是仅仅针对某一个应用,而是面向全组织的所有应用.
2.数据的共享性高,冗余度低,易扩充
3.数据独立性高。
4.数据由DBMS统一管理和控制(数据由数据库管理系统统一管理和控制)
1.1.2 六个设计阶段
系统需求分析阶段;
概念结构设计阶段;
逻辑结构设计阶段;
物理结构设计阶段;
数据库实施阶段;
数据库运行与维护阶段;
1.2 数据模型
数据模型通常由数据结构、数据操作和数据完整性约束3部分组成。
- 数据结构:描述数据库的组成对象以及对象之间的联系,是对系统静态特性的描述
- 数据操作时指对数据库中各种对象(型)的实例(值)运行执行的操作的集合,包括操作及有关的操作规则
- 数据完整性约束是一组数据完整性规则。
- 实体完整性
- 参照完整性(前面两个是关系模型必须满足的数据完整性约束,由关系数据库管理系统自动支持)
- 用户自定义完整性
1.3 文件系统
出现在课本P3,感觉主要了解下知识(感觉出选择题/填空)
文件系统实现文件内的数据结构化,但整体上还是无结构的,即多个文件之间是相互独立的,无法建立全局的结构化数据管理模式
数据独立性差(设备独立性?)。一旦数据的逻辑结构改变,就必须修改应用程序以及文件结构的定义。因此,数据与应用程序之间缺乏逻辑独立性
文件系统的弊端(了解)
-
数据共享性差
-
数据独立性差
-
数据孤立,数据获取困难
-
完整性问题
-
原子性问题
-
并发访问异常
-
安全性问题
1.4 自然连接、等值连接
自然连接是一种特殊的等值连接,它要求两个参与连接的关系具有公共的属性集,并在这个公共属性集上进行等值连接,并将连接结果中的重复属性列去掉
等值连接(内连接):跟自然连接差不多,只是重复属性列不去掉
1.5 关系代数表达式与对应的SQL语句
关系代数运算符 | 对应sql语句 |
---|---|
聚合操作 | |
∪ (UNION)并 | |
∩ (INTERSECTION)交 | |
- (DIFFERENCE)差 | |
× (Cartesian PRODUCT)笛卡尔积 | from |
纯关系操作 | |
π (PROJECT)投影 | select |
σ (SELECT)选择 | where |
⋈ (自然连接) | |
÷ (DIVISION)除 | |
> 大于 | |
>=大于等于 | |
< 小于 | |
<=小于等于 | |
= 等于 | |
!=不等于 | |
∧ 与 | |
∨ 或 | |
¬ 非 | |
between 在两个值范围内查找 | |
like 按通配符查找 | |
regexp 按正则表达式查找 | |
组合条件 and, or | select * from table_name where coll = xxx and col2 = xx or col3 > x; |
1.6 派生属性、多值属性、复合属性
派生属性指可以通过计算得到的属性。
多值属性指对于一个实体可以有多个值的属性,在某些情况下对某个特定实体而言,一个属性可能对应一组值。
复合属性指可以再划分为更小的部分,也就是能再划分为一些其他属性的属性。
1.7 基本表与视图
基本表和视图的关系
区别:
1、视图是已经编译好的sql语句,而表不是。
2、视图没有实际的物理记录,而表有。
3、表是内容,视图是窗口。
4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改。
5、表是内模式,视图是外模式。
6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
8、视图的建立和删除只影响视图本身,不影响对应的基本表。
联系
1、视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。
2、一个视图可以对应一个基本表,也可以对应多个基本表,基于一个表也可以建立多个视图。视图是基本表的抽象和在逻辑意义上建立的新关系。
3、表可以建立各种触发器,可以建立索引,可以建立主健、约束等。但是视图不能建立这些对象(视图可以建立替代触发器)。表和视图可以更新,但是视图的更新受到约束。
实表是基本关系,又称基本表或者基表,是实际存储数据的逻辑表示。
视图是一个虚表,是从一个或几个基本表(或视图)中导出的表,所以视图不可以和表名重名。
数据多用作查询,一般不会通过视图去修改数据。
1.8 触发器概念,如何激活?
触发器概念:
触发器(TRIGGER)是用户定义在关系表上的一类由事件驱动的存储过程,由服务器自动激活。触发器可以进行更为复杂的检查和操作,具由更精细和更强大的数据控制能力。
这些事件包括INSERT语句、UPDATE语句和DELETE语句(注意并没有查询语句),当数据库系统执行这些事件时,会激活促发其执行相应的操作。
1.9 存储过程
存储过程是为了完成特定功能汇集而成的机组命名了的SQL语句集合,该集合编译后存放在数据库中,可根据实际情况重新编译。该存储过程可直接在服务器端运行,也可在客户端远程调用运行(存储过程还是在服务器端运行)
优点:
- 将业务操作封装
- 便于事务管理
- 实现一定程度的安全性保护
- 特别适合统计和查询操作
- 减少网络通信量
1.10 完整性规则
关系完整性是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。
(可能会考简答题吧。。。)
- 实体完整性:
实体完整性是指关系的主关键字不能重复也不能取空值, - 参照完整性:
也称“引用完整性”,是定义建立关系之间联系的主关键字与外部关键字引用的约束条件。在删除和输入记录时,引用完整性保持表之间已定义的关系.引用完整性确保键值在所有表中一致.这样的一致辞性要求不能引用不存在的值.如果一个键值更改了,那么在整个数据库中,对该键值的引用要进行一致的更改. - 用户自定义完整性:
实体完整性和参照完整性适用于任何关系型数据库系统,它主要是针对关系的主关键字和外部关键字取值必须有效而做出的约束。用户定义完整性则是根据应用环境 的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。这一约束机制一般不应由应用程序提供,而应有由关系模型提供定义并检验,用户定义完整性 主要包括字段有效性约束和记录有效性。
1.11 完整性约束条件
完整性约束条件作用的对象可以是关系、元组、列三种
-
列约束:
-
元组约束:
-
关系约束:
涉及的这三类对象,其状态可以是静态也可以是动态
1.12 事务
S锁和X锁,相容性
S锁是共享锁,获取S锁时,可读但不能写
X锁是排它锁,获取X锁时,可读又可写
可能会出选择题和大题
如果出选择题的话,就要知道共享锁和排他锁是不相容的,排他锁和排他锁不相容,只有共享锁和共享锁是相容的!!
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gdn7UZzp-1624355993805)(C:\Users\林奎\Pictures\Typora\image-20210622163545827.png)]
大题的话,后面的再说
事务ACID特性:
- 原子性:即事务的所有操作要么全部都被执行,要么都不执行
- 一致性:即一个单独执行的事务应保证其执行结果的一致性
- 隔离性:即当多个事务并发执行时,一个事务的执行不能影响另一个事务,即不能互相干扰
- 持久性:即一个事务成功提交后,它对数据库的改变必须时永久的。即出现故障后也不会收到影响
日志是DBMS记录数据库全部更新操作的序列文件。
日志记录有两种类型:
- 记录数据更新操作的日志记录,包括UPDATE,INSERT和DELETE;
- 记录事务操作的日志记录,包括START,COMMIT和ABORT操作
日志的作用是记录所有对数据库数据的修改,主要是保护数据库以防止故障发生后,对数据库进行恢复
数据库运行过程中可能发生的故障
- 事务故障
- 系统故障
- 介质故障
- 其他故障(恶意的计算机程序)
嗯。。。可能还需要知道如何解决(待更)
1.13 E-R图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CDUW2Agi-1624355993806)(C:\Users\林奎\Pictures\Typora\image-20210622154129180.png)]
注意:
①联系不能脱离实体,必须有实体连接且可以是实体的自身联系(后面有例子)
②属性既可以连接实体,也可以连接联系。但一个属性只能有唯一的连接对象。
联系和实体之间存在三种关系:
- 一对一
- 一对多
- 多对多
上面这个主要是要解决E-R转化为关系模型(常考大题)。
产生阶段???(不知道是啥)
1.14 模式分解
- 分解后的函数依赖集、保持函数依赖分解、无损分解
- 目标
1.15 关系模式
- 属于:1NF、2NF、3ND、BCNF
- 候选码的确定
以上两个还不是很懂(待更)