数据库-关系代数及数据库基本概念

#1
DB:数据库,contains information about a particular enterprise

DBS:数据库系统

DBMS:提供一种既方便又高效的方法来存储和检索数据库信息
1.存储管理:是一个程序模块负责与文件系统交互,高效存储、检索和更新的数据
(1)授权和完整性管理器:测试完整性约束的满足程度,并检查用户访问数据的权限
(2)事务管理器:确保数据库仍在一致的状态尽管系统故障保证并发事务执行没有冲突
(3)文件管理器:分配磁盘存储空间,管理数据结构用来表示信息存储在磁盘上
(4)缓冲区管理器:获取数据从磁盘存储到内存,决定哪些数据在内存缓存
2.查询处理

DBMS实现的数据结构
1.Data File数据文件
2.Data Dictionary存储有关数据库结构的元数据,特别是数据库模式的元数据
3.Indices提供对具有特定值的数据项的快速访问

使用文件存储的缺点
1.Data redundancy and inconsistency资料重复与不一致
2.Difficulty in accessing data 数据访问困难,需要编写新的程序来执行新的任务
3.Data isolation — multiple files and formats数据隔离——多个文件和格式
4.Integrity problems完整性问题,完整性约束(例如帐户余额> 0)被“隐藏”在程序代码中,而不是显式地声明,很难添加新约束或更改现有约束
5.Atomicity of updates更新异常,故障可能会使数据处于与执行的部分更新不一致的状态
6.Concurrent access by multiple users多用户并发访问
7.Security problems

DBS提供数据的抽象视图
1.物理层:描述如何存储记录(例如,客户)
2.逻辑层:描述数据库中存储的数据,以及数据之间的关系,描述整个数据库
3.视图层:描述数据库的一部分

Instance and Schemas
1.Schema在学习数据库时,会遇到一个让人迷糊的Schema的概念。实际上,schema就是数据库对象的集合,这个集合包含了各种对象如:表、视图、存储过程、索引等。如果把database看作是一个仓库,仓库很多房间(schema),一个schema代表一个房间,table可以看作是每个房间中的储物柜,user是每个schema的主人,有操作数据库中每个房间的权利,就是说每个数据库映射user有每个schema(房间)的钥匙。
Physical schema: database design at the physical level
Logical schema: database design at the logical level
Sub schemas: describe different views at the view level
2.instance在某一特定时间点存储在数据库中的信息的集合,类似于变量的值
Physical schema独立性:应用程序不依赖于物理模式,因此如果物理模式发生变化,不需要重写
Relational Model:使用一组表来表示数据和这些数据之间的关系
在这里插入图片描述
The Entity-Relationship Model:将enterprise建模为实体和关系的集合
1.Entity: 在现实世界中与其他物体相区别的“东西”或“物体”
2.Relationship:多个实体之间的关联
3.Entity Set:同一类型的所有实体的集合
4.Relationship Set:同一类型的所有关系的集合

Data Definition Language (DDL):DDL编译器根据DDL语句生成表,并将这些表的模式定义存储在data dictionary(数据字典)中
1.Database schema数据库模式
2.Integrity constraints完整性约束
3.Authorization授权

Data Manipulation Language(DML):数据操作语言,用于访问和操作由适当数据模型组织的数据的语言,also known as query language
1.Procedural:用户指定需要什么数据以及如何获取这些数据
2.Declarative (nonprocedural):用户指定需要什么数据,而不指定如何获取这些数据------SQL

应用程序
程序员-通过DML调用与系统交互
高级用户——在数据库查询语言中形成请求
专用用户——编写不适合传统数据处理框架的专用数据库应用程序
初始用户——调用以前编写的永久应用程序之一

Database Administrator(DBA):中央控制数据库系统的人,协调数据库系统的所有活动

#2
Relations:表示实体集或关系集,在逻辑层,关系数据库是一组称为关系的二维表,一行代表一个实体或关系的关系

Tuple:关系的每一行都可以称为元组

Attributes:关系的每一列都有一个名称,关系的命名列称为属性,属性值(通常)要求是原子的;也就是说,不可分割

domain:每个属性的允许值集称为属性的域,特殊值null是每个域的成员
在这里插入图片描述
Tuple variable:是一个变量,代表一个元组。域特定关系的所有元组的集。
使用示例 +[branch_name]=Round Hill

relation schema:关系模式,A1, A2, …, An 是属性名,R = (A1, A2, …, An )是关系模式,Relations are Unordere,元组的顺序无关紧要(元组可以以任意顺序存储)

Relation Database:将所有信息存储为单个关系会导致
1.repetition of information:如果两个客户拥有一个帐户(什么会重复?)
2.the need for null values:代表没有帐户的客户

Keys:K是R的superkey,如果K的值足够识别每个可能关系R ®的唯一元组。(所谓“可能的r”,我们指的是在我们建模的enterprise 中可能存在的关系r。)如果没有两个客户可能有相同的名字,{customer_name, customer_street}和{customer_name}都是超码的客户

candidate key:超码K是一个候选键如果K是最小。最小意味着没有子集是超键。举例如{customer_name}是customer的一个候选键,因为它是一个superkey ,并且它的任何子集都不是superkey。

Primary key:选择一个候选键作为在关系中标识元组的主要方法,应该选择其值从未或很少更改的属性。

Foreign Keys:关系r1可能具有与另一个关系r2的主键对应的属性。该属性称为外键。其中r1 is referencing relation,r2 is referenced relation。(举例:customer_name和account_number属性分别是customer和account的外键。存款人是参照关系,客户和帐户是被参照关系)。另一种理解方式是:如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。
在这里插入图片描述
Referencing Constraint:引用约束,只有在引用关系的主键属性中出现的值才可能出现在引用关系的外键属性中

关系代数
1.select: σ
在这里插入图片描述
在这里插入图片描述
运算符支持与或非、=、≠、>、<、≧、≦

2.project: ∏
在这里插入图片描述
3.union: ∪
在这里插入图片描述
在这里插入图片描述
(r, s必须具有相同的参数数量(相同数量的属性),属性域必须兼容)
4.set difference: –
在这里插入图片描述
在这里插入图片描述
集合差异必须在相容关系之间取。r和s必须具有相同的参数数量,属性域的r和s必须一致。
5.cartesian product: x
在这里插入图片描述
在这里插入图片描述
6.rename: ρ
在这里插入图片描述(返回名称X下的表达式E)
在这里插入图片描述(返回表达式E在名称X下的结果,并将属性重命名为A1、A2、…,一个)

Additional Operations
非基本运算这些操作不向关系代数添加任何功能,但是可以简化常见的查询
1.Set intersection ∩
在这里插入图片描述
在这里插入图片描述
2.Natural join在这里插入图片描述
在这里插入图片描述
Consider each pair of tuples tr from r and ts from s. If tr and ts have the same value on each of the attributes in R∩S, add a tuple t to the result

3.Division ÷
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.Assignment ←赋值操作提供了一种方便的方式来表达复杂的查询。
举例Write r÷s as
temp1 ←R-S (r )
temp2 ← R-S ((temp1 x s ) – R-S,S (r ))
result = temp1 – temp2

Aggregate Functions聚集函数
1.avg: average
在这里插入图片描述
2.valuemin: minimum value
3.max: maximum value
4.sum: sum of values
5.count: number of values

Outer Join外连接
Join: loan join borrower
在这里插入图片描述
各种连接方式
在这里插入图片描述
在这里插入图片描述

Null Values
Three-valued logic using the truth value unknown:
1.OR: (unknown or true) = true,
(unknown or false) = unknown
(unknown or unknown) = unknown
2.AND: (true and unknown) = unknown,
(false and unknown) = false,
(unknown and unknown) = unknown
3.NOT: (not unknown) = unknown
(在SQL中,如果谓词P的值为unknown,则“P是未知的”计算为true)

Modification of the Database修改数据库
1.Deletion
在这里插入图片描述
2.Insertion
在这里插入图片描述
3.Updating

在这里插入图片描述

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值