数据库系统

本文详细介绍了数据库系统的基本概念,包括数据库的定义、发展阶段和特点。重点讲解了数据库模型,如层次、网状和关系模型,并详细阐述了关系模型的完整性约束。此外,还介绍了数据库的三模式和映射,以及SQL语句的创建、查询和事务管理,强调了事务的ACID特性及并发控制的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一, 什么是数据库

数据库概述

数据库是长期储存在计算机内,有组织的,可共享的大量数据的集合,由数据,数据库,数据库管理系统,数据库系统组成。

一,数据库的功能:1,数据定义功能

2,数据的组织,存储和管理

3,数据操纵功能

4,数据库的事务管理和运行管理

5,数据库的建立和维护

二,数据库的发展阶段:人工管理阶段—>文件系统阶段—>数据库系统阶段

二,数据库的特点:独立性高,共享度高,数据结构化

数据库模型

一, 概念模型:按照用户的角度对数据和信息建模

逻辑模型和物理模型:按照计算机的角度对数据和信息建模

二,数据模型的三个组成要素:数据结构,数据操作和完整性约束。

三,典型的三种数据模型

1,层次模型:树形结构,仅通过双亲节点才能进行数据操纵

2,网状模型:网状结构,导航式的数据操纵方式

这两者都通过路径对数据进行存取,存取效率高,但是不透明

3,关系模型:不需要知道路径,保密性高,且具有良好的完整性约束:

a,实体完整性

b,参照完整性

c,用户定义的完整性

建立数据库有关的三模式

数据库分为三个模式,两个映射

一,数据库模式是对数据库逻辑结构和特征的描述

二,数据库分为三模式,从上到下依次为应用程序,外模式,模式,内模式,数据

1,外模式:一个外模式可以对应多个应用程序,决定了应用程序可以从模式中获取哪些数据,提高了数据库的保密性。

2,模式:对数据库的逻辑描述,连接外模式和内模式,一个数据库系统只能有一个模式。

3,内模式:对数据存储方式和内部表示方式的描述,一个系统只能有一个内模式。

三,外模式和模式之间存在映射,满足了数据库逻辑独立性,当模式变化时,外模式进行调整而不需要调整应用程序。

模式和内模式之间存在映射,满足了数据库物理独立性,当内模式变换时,模式进行调整而不需要调整应用程序。

什么是关系模型

关系概述是针对关系模型中的相关概念进行讲述,且不赘述关系中属性,元组,空值等基本名词

一,关系模式与关系

关系模式是对一类实体的描述,代表的是一类实体,关系是对一个实体的描述,代表队是一个实体。

二,关系模式的完整性约束

第二讲中提到,关系模型有三个完整性约束,分别是实体完整性,参照完整性和用户定义完整性。

实体完整性:关系的主码不能为空值。

参照完整性:在一组参照关系中,参照关系的取值要么是被参照关系的某个值,要么是空值。

用户定义完整性不做赘述。

三,主码,超码,候补码

超码:在关系中可以唯一标识一个元组的属性

候补码:最小的超码

主码:人为挑选的候补码

二,关系代数

这一部分主要需要理解,一时半会儿采用笔述的方式难以解释清楚,哪一点不清楚可以单独私信我。

三, 简单的SQl语句运用

ps:本文中A表示元组属性,r表示关系名,P表示条件

创建关系

create table class(
classid varchar(20) not null,
numstudents int,
majorname varchar(20),
primary key(classid),
foreign key (majorname) references major(majorname));

全段释意:创建(create)了一个叫做class的表,表内具有classid,numstudents,majorname三个属性,其中classid是表的主码,采用primary语句显示并且不允许为空,majorname借用major关系,是该class关系的外码,用foreign语句满足参照系约束。
属性的域如下:

char(n):固定长度的字符串,用户指定长度n
varchar(n):可变长度字符串,用户指定最大长度n(这个很nice,一般用这个)
int:整数类型
smallint:小整数类型
numeric(p,d):定点数,这个给数有p位数字(加上符号为),其中d位数字在小数点右边
real,double precision:浮点数和双精度浮点数,精度与机器有关
float(n):精度至少为n位的浮点数

基本查询

select (distinct/all :显示表示去重/不去重) A1,A2..。Ak
from r1,r2...rk //各个关系表通过笛卡尔积连接,若改为from r1 natural join r2 using A1 则表示r1与r2通过运用A1的自然连接连接
where p;

全段意思为:从(from)这些关系中找出满足(where)条件的属性(A1…Ak),结果以表的形式表示

字符串查询

'%'字串, '_'子串,escape 转义字符

select ...
from ...
where A1 like --- '%zhang%'识别以zhang为子串的A1属性
			  --- '___' 识别有三个以上字符的A1属性
			  ___ '%zhang\%%' escape'\' 识别以zhang%为子串的A1属性

查询排序

order by

select ...
from ...
where ...
order by A1(ASC:升序/DESC:降序); 以A1升序或降序排列,默认升序

集合查询

union 并 intersection交 except差,结果自动去重

(selec ...
  from ...
  where ...)
union/intersection/except
(selec ...
  from ...
  where ...);

集函数查询

avg()平均,min()最小,max()最大,sum()求和,count()计数

select avg(A1)//求A1属性的平均值
from ...
where ...;

分组查询

group by &having

select ...
from ...
where ...
group by A1
having p;//对p条件下的A1进行分组,再对每一个分组内部进行查询

嵌套子查询

select ...
from ...
where A1 X[^1](select A1 from ...where...);
[^1]:X可以是in,not in,>some,>all等值

以in为例,全段表示找出 属性A1出现在子查询 中的所有值

存在性查询

unique 唯一,exists存在

select ...
from ...
where unique/exists(select A1 from... where...);

以unique为例,全段表示找出子查询中A1只出现一次的情况

视图

建立视图

create view NAME(A1.name,A2.name...Ak.name)as//可以利用括号内的内容重命名
(select B1,B2...Bk
  from ...
  where ...);

删除视图

drop view NAME (cascade级联删除,restrict限制删除);

视图的作用:
1,简化查询
2,便于数据库重组
3,可以不同角度看待同一数据

数据库操作

1,插入操作

insert into r1
values(......)/(select...from...where...);

2,更新操作

update r1
set ...
where...

3,删除操作

delete from r1
where p;//删除元组

drop table r1;//删除表

四,事务

什么是事务

事务:访问并可能操作各项数据项的一个数据库操作序列

事务满足ACID特性:
Atomicity 原子性 :操作要么一次性全部完成,要么完全不做 (利用硬件充分记录过程实现)
Consistency 一致性:通俗的来说,一致性类似于一种资源守恒,比如说A账户给B账户转移了20W,那么当事务完成的时候,A与B总和仍然不变。(采用事务管理器实现)
Isolation 隔离性:两个事务互不干扰(采用并发控制器实现)
Durability 持久性:当事务完成后,结果是永久保存的,不能说这一刻这个事务完成了,下一刻这个事务进行失败。(采用恢复管理器实现)

并发控制

为什么要并发控制呢?
当两个事务访问同一个数据项时,事务的并行结果会有与事务的串行结果不一样的情况,我们应该避免这种情况的发生。

如何并发控制?
采用lock锁
exclusive X_lock锁和share S_lock锁
尽可能满足先申请全部锁再释放锁的流程,以避免死锁。

数据库设计(ER图设计)

关系理论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值