数据库散记

1.按照所使用的数据模型来分,数据库可以分为:层状,关系,网状
2.在关系代数中,对一个关系做投影后,新关系的元祖个数会小于原来关系的元祖个数,因为重叠的会被去掉
3.共享锁【S锁】
又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。

排他锁【X锁】
又称写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。这保证了其他事务在T释放A上的锁之前不能再读取和修改A。
4.并发不加以控制会带来数据的不一致性问题,而对并发加以控制了,也就是加锁了,但是锁的控制没有弄好,才会带来死锁问题。
封锁是实现并发控制的一个非常重要的技术。封锁有3个环节:第一个环节是申请枷锁;第二是获得锁;第三是释放锁,即完成操作后事务放弃数据的控制权。但是事务使用封锁机制后,会产生活锁、死锁等问题。
5.自然连接,投影,交集,并集,除 https://blog.csdn.net/tonglin12138/article/details/89482091
6.所谓断言就是一个谓词,它表达了我们希望数据库总能满足的一个条件。域约束和参照完整性约束是断言的特殊形式。属于DBS的完整性措施。
7.revoke 废除
8.**第一范式(1NF):**所谓第一范式(1NF)是指在关系模型中,对于添加的一个规范要求,所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。即实体中的某个属性有多个值时,必须拆分为不同的属性。在符合第一范式(1NF)表中的每个域值只能是实体的一个属性或一个属性的一部分。简而言之,第一范式就是无重复的域。
说明:在任何一个关系数据库中,第一范式(1NF)是对关系模式的设计基本要求,一般设计中都必须满足第一范式(1NF)。不过有些关系模型中突破了1NF的限制,这种称为非1NF的关系模型。换句话说,是否必须满足1NF的最低要求,主要依赖于所使用的关系模型

**第二范式(2NF):**在1NF的基础上,非码属性必须完全依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖)
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或记录必须可以被唯一地区分。选取一个能区分每个实体的属性或属性组,作为实体的唯一标识。例如在员工表中的身份证号码即可实现每个一员工的区分,该身份证号码即为候选键,任何一个候选键都可以被选作主键。在找不到候选键时,可额外增加属性以实现区分,如果在员工关系中,没有对其身份证号进行存储,而姓名可能会在数据库运行的某个时间重复,无法区分出实体时,设计辟如ID等不重复的编号以实现区分,被添加的编号或ID选作主键。(该主键的添加是在ER设计时添加,不是建库时随意添加)
第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。简而言之,第二范式就是在第一范式的基础上属性完全依赖于主键。

第三范式(3NF):在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)
第三范式(3NF)是第二范式(2NF)的一个子集,即满足第三范式(3NF)必须满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个关系中不包含已在其它关系已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性,也就是在满足2NF的基础上,任何非主属性不得传递依赖于主属性。
巴斯-科德范式(BCNF)Boyce-Codd Normal Form在3NF基础上,任何非主属性不能对主键子集依赖(在3NF基础上消除对主码子集的依赖)
巴斯-科德范式(BCNF)是第三范式(3NF)的一个子集,即满足巴斯-科德范式(BCNF)必须满足第三范式(3NF)。通常情况下,巴斯-科德范式被认为没有新的设计规范加入,只是对第二范式与第三范式中设计规范要求更强,因而被认为是修正第三范式,也就是说,它事实上是对第三范式的修正,使数据库冗余度更小。这也是BCNF不被称为第四范式的原因。某些书上,根据范式要求的递增性将其称之为第四范式是不规范,也是更让人不容易理解的地方。而真正的第四范式,则是在设计规范中添加了对多值及依赖的要求。

规范化的优点是明显的,**它避免了大量的数据冗余,节省了存储空间,保持了数据的一致性。**当一个库里的数据经常发生变化时,达到3NF的库可以使用户不必在超过两个以上的地方更改同一个值。那么是不是只要把所有的表都规范为3NF后,数据库的设计就是最优的呢?这可不一定。范式越高意味着表的划分更细,一个数据库中需要的表也就越多,用户不得不将原本相关联的数据分摊到多个表中。当用户同时需要这些数据时只能采用连接表的形式将数据重新合并在一起。同时把多个表联接在一起的花费是巨大的,尤其是当需要连接的两张或者多张表数据非常庞大的时候,表连接操作几乎是一个噩梦,这严重地降低了系统运行性能。

在通常情况下,下面的关系中不可以作为关系数据库的关系是( )R4(学生号,学生名,简历) R4 简历不是原子项,不满足第一范式所以不能作为关系数据库,如果简历也是一张表的话就不一样了,里面包括各种属性啥的。
9.在这里插入图片描述
DBS(DataBase System:数据库系统):一般由四个部分组成 1、数据库:存储在磁盘、磁带、光盘上的数据的集合; 2、数据库管理系统(DBMS):完成描述、管理和维护数据的系统; 3、数据库管理员(DBA); 4、用户和应用程序
数据库核心是数据库管理系统
10.E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
实体-联系数据模型中的联系型,存在3种一般性约束:一对一约束(联系)、一对多约束(联系)和多对多约束(联系)
11.同一个关系模型的任两个元组值(不可全同 ) 元组是一行数据,如果两行相同的话就没有唯一的主键了
12.索引是表中数据在内存中的指针,如果指针被撤销,表中的数据无法存储即不存在
13.A:关系模型
关系模型用表的集合来表示数据和数据间的联系。每个表有多个列,每列有唯一的列名。在关系模型中,无论是从客观事物中抽象出的实体,还是实体之间的联系,都用单一的结构类型–关系表示。
B:层次模型
满足以下两个条件的基本层次联系的集合:(1)有且只有一个节点没有双亲节点(根节点);(2)除根节点外的其他节点有且只有一个双亲节点。
C:网状模型
满足以下二个条件的基本层次联系的集合:(1)允许一个以上的结点没有双亲结点;(2)一个结点可以有多个双亲结点。

注意到层次模型和网状模型类似,分别用记录和链接(一般指指针)。 与网状模型不同的是:层次模型中的记录只能组织成树的集合而不能是任意图的集合。
14.数据的逻辑独立性指的是模式改变,外模式和应用程序不变。
逻辑独立性存在于外模式和内模式之间。数据的逻辑独立性是指数据与程序的逻辑独立性。
用户的应用程序和数据库中的逻辑结构是相互独立的,当数据的逻辑结构发生改变时应用不需要改变. 逻辑独立性存在于外模式和内模式之间。数据的逻辑独立性是指数据与程序的逻辑独立性。
15.Oracle甲骨文公司的关系数据库。
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。
IMS数据库是IBM公司开发的两种数据库类型之一。这两种数据库类型,一种是关系数据库,典型代表产品:DB2;另一种则是层次数据库,代表产品:IMS层次数据库。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当***能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。
SQL Server 是Microsoft 公司推出的关系型数据库管理系统。
Berkeley DB是一款健壮的、高速的工业级开放源代码的嵌入式数据库管理系统。
16.产生死锁的必要条件:(1)互斥使用(资源独占),一个资源每次只能给一个进程使用(比如写操作);(2)占有且等待:进程在申请新的资源的同时,保持对原有资源的占有;(3)不可抢占:资源申请者不能强行从资源占有者手中夺取资源,资源只能由占有者自愿释放;(4)循环等待:p1等待p2占有的资源,p2等待p3的资源,…pn等待p1的资源,形成一个进程等待回路。

活锁则是指任务或者执行者没有被阻塞,由于某些条件没有被满足,导致一直重复尝试,失败,尝试,失败。

活锁和死锁的区别在于,处于活锁的实体是在不断改变的状态。而处于死锁的实体则表现为等待。活锁有可能自行解开,死锁则不能。

饥饿,只一个可运行的进程尽管能继续执行,但被调度器无限期的忽视,而不能被调度执行的情况。饥饿是由资源分配策略决定的,饥饿可以通过先来先服务等资源分配策略来避免。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值