前言
本篇内容是我学习数据库时碰到的一些常见概念,概念的东西较为简单,谈不上什么个人理解,只是简单的记忆罢了,以下内容基本都为互联网上内容的转载,下文给出了出处。
数据库
数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。
数据库的基本结构分三个层次,反映了观察数据库的三种不同角度。
以内模式为框架所组成的数据库叫做物理数据库;以概念模式为框架所组成的数据叫概念数据库;以外模式为框架所组成的数据库叫用户数据库。
数据库主要特点
⑴ 实现数据共享
⑵ 减少数据的冗余度
⑶ 数据的独立性
⑷ 数据实现集中控制
⑸数据一致性和可维护性,以确保数据的安全性和可靠性
⑹ 故障恢复
数据库种类
数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。
1.数据结构模型
⑴数据结构
所谓数据结构是指数据的组织形式或数据之间的联系。
如果用D表示数据,用R表示数据对象之间存在的关系集合,则将DS=(D,R)称为数据结构。
⑵数据结构类型
数据的逻辑结构是从逻辑的角度(即数据间的联系和组织方式)来观察数据,分析数据,与数据的存储位置无关;数据的物理结构是指数据在计算机中存放的结构。
这里只研究数据的逻辑结构,并将反映和实现数据联系的方法称为数据模型。
比较流行的数据模型有三种,即按图论理论建立的层次结构模型和网状结构模型以及按关系理论建立的关系结构模型。
2.层次、网状和关系数据库系统
⑴层次结构模型
层次结构模型实质上是一种有根结点的定向有序树(在数学中"树"被定义为一个无回的连通图)。
按照层次模型建立的数据库系统称为层次模型数据库系统。IMS(Information Management System)是其典型代表。
⑵网状结构模型
按照网状数据结构建立的数据库系统称为网状数据库系统,其典型代表是DBTG(Database Task Group)。用数学方法可将网状数据结构转化为层次数据结构。
⑶ 关系结构模型
关系式数据结构把一些复杂的数据结构归结为简单的二元关系(即二维表格形式)。
在关系数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关系表格的分类、合并、连接或选取等运算来实现数据的管理。
-----摘自百度百科
事务
访问或更新数据库的一个程序执行单元,如一条SQL语句。
事务是恢复和并发控制的基本单位。
事务应该具有4个属性:原子性、一致性、隔离性、持续性。这四个属性通常称为ACID特性。
原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性(durability)。持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
一致性(解释)
读一致性也是数据库一致性的一个重要方面,在实际中,我们会遇到这种情况:我们对一个表中的某些数据进行了更新操作,,但是还没有进行提交,这时另外一个用户读取表中数据.这个时候就出现了读一致性的问题:到底是读什么时候的数据呢?是更新前的还是更新后的?在DBMS中设有临时表,它用来保存修改前的值,在没有进行提交前读取数据,会读取临时表中的数据,这样一来就保证了数据是一致的.(当前用户看到的是更新前的值)
E-R图的基本概念
数据库中的自然连接、选择、投影
选择(Selection)
选择是单目运算,其运算对象是一个表。该运算按给定的条件,从表中选出满足条件的行形成一个新表作为运算结果。
选择运算的记号为 σF(R)。
其中σ是选择运算符,下标F是一个条件表达式,R是被操作的表。
投影(Projection)
投影也是单目运算,该运算从表中选出指定的属性值组成一个新表,记为:ΠA(R)。
其中A是属性名(即列名)表,R是表名。
连接(JOIN)
把两个表中的行按着给定的条件拼接而形成的新表。
执行顺序:自然连接–>选取–>投影
----转载自这里
两段锁协议
两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁。
两段锁协议是指每个事务的执行可以分为两个阶段:生长阶段(加锁阶段)和衰退阶段(解锁阶段)。
加锁阶段:在该阶段可以进行加锁操作。在对任何数据进行读操作之前要申请并获得S锁,在进行写操作之前要申请并获得X锁。加锁不成功,则事务进入等待状态,直到加锁成功才继续执行。
解锁阶段:当事务释放了一个封锁以后,事务进入解锁阶段,在该阶段只能进行解锁操作不能再进行加锁操作。
关系模型中的一些关键字的定义
关系(Relation):一个关系对应通常说的一张表。
元组(Tuple):表中的一行即为一个元组。
属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名。
码(Key):也称为码键。表中的某个属性组,它可以唯一确定一个元组。
域(Domain):属性的取值范围。
分量:元组中的一个属性值。
关系模型:对关系的描述,一般表示为 关系名(属性1,属性2,…,属性n)
若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidate key)
若一个关系有多个候选码,则选定其中一个为主码(Primary key)
候选码的诸属性称为主属性(Prime attribute)。不包含在任何候选码中的属性称为非主属性(Nonprimary attribute)或非码属性(Non-key attribute)。
在最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码(All-key)