数据库设计(事务、并发、授权等)

1.事务:

  • 概念:事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位,是恢复和并发控制的 基本单位 。
  • 特性:原子性、一致性、隔离性、持续性

2.并发操作带来的数据不一致情况

情形描述
丢失修改两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了T1提交的结果,导致T1的修改被丢失。
不可重复读事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果。
读脏数据事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这是T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为脏数据,即不正确的数据。

3.可串行化调度:多个事务的并发执行是正确的,当且仅当其结果与 按某一顺序串行地执行这些事务时的结果相同。可串行性是并发事务正确调整的准则。

4.并发控制的技术

1.封锁

  • 申请加锁 获得锁 释放锁
  • 排它锁(X锁):写锁
  • 共享锁(S锁):读锁
  • 一级封锁协议:事务 T 在修改数据R 之前先对其加 X锁,直到事务结束(COMMMIT 或 ROLLBACK)才释放。一级封锁协议可以防止丢失修改,并保证事务 T 是可以恢复的。
  • 二级封锁协议:在一级封锁协议的基础上,增加事务 T 要对读取的数据加 S 锁,读完后 立即释放。缺点:不能保证“可重复读数据”。
  • 三级封锁协议:在一级封锁协议的基础上,增加事务 T 要对读取的数据加 S 锁,事务结束后 才释放。

2.时间戳

3.乐观控制法

5.授权

  • 若指定了WITH GRANT OPTION语句则允许用户把获得的某种权限再授予给其他的用户。把查询reader表、创建表和修改reader表的权限授权给用户 ser1 和 user2,并允许它们将此权限授权给其他用户。
GRANT SELECT,CREATE TABLE,UPDATE(reader)
ON TABLE reader
TO user1,user2
WITH GRANT OPTION;
  • 把对reader和borrow表的 全部操作权限 授权给 全体用户
GRANT ALL PRIVILEGES 
ON TABLE reader,borrow
TO PUBLIC;
  • user1可以把表reader的查询操作权限 授予user3并允许user3将此权限授予其他用户。
GRANT SELECT
ON TABLE reader
TO user3
WITH GRANT OPTION

6.收回(REVOKE)

  • 把user1对reader表的SELECT权限收回
REVOKE SELECT
ON TABLE reader
FROM user1 CASCADE;
  • 将用户user1的SELECT权限收回的时候必须级联(CASCADE)收回,否则系统拒绝(RESTRICT)执行此命令。因为user1将reader表的SELECT权限授予了user3,级联删除,将user1和user3的权限都收回。有的DBMS的默认值为CASCADE。

7.角色:角色是一组被命名的与数据库操作相关的权限,角色是权限的集合。

操作sql语句
创建CREATE ROLE <角色名>
给角色授权GRANT <权限>[,<权限>]ON<对象类型><对象名>TO<角色>[,<角色>]
将角色分配给其他角色GRANT <角色>[,<角色>]TO<角色>[,<用户>][WITH ADMIN OPTION]
角色权限的收回REVOKE <角色>[,<角色>]FROME<角色>[,<用户>]
  • 关系型数据模型

1.定义:使用表格表示实体和实体之间关系的据模型称之为关系数据模型。
2.关系数据模型中,无论是是实体、还是实体之间的联系都是被映射成统一的关系—一张二维表,在关系模型中,操作的对象和结果都是一张二维表。关系型数据库可用于表示实体之间的多对多的关系。

  • 与空值(NULL) 有关的表达式中不能使用等号“=”。注意审题,本题是“涉及”空值的操作。

  • 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。

  • 在SQL 语言中,%和_表示的是通配符,%匹配 0个或多个字符; _匹配任意一个字符。

  • 数据库管理系统的特点:共享性高,冗余度小;具有高度的物理独立性和逻辑独立性;整体结构化,用数据模型描述;由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力。

  • 数据库完整性 (Database Integrity)是指数据库中数据在逻辑上的一致性、正确性、有效性 和相容性。

  • 五个基本操作:
    并(∪)、差(-)、笛卡尔积(×)、选择(σ)、投影(π)
    四个组合操作:
    交(∩)、连接(cross )、除法(÷)

  • 在一个表中可以建立多个普通索引,多个唯一索引,多个候选索引,一个主索

1.主索引是候选索引的特例,能唯一标识一条记录,只能由一个字段组成。一个表只能建立一个主索引。
2.候选索引也能唯一标识一条记录,但不一定只由一个字段组成,可以由两个或两个以上字段组成,一个表可以建立多个候选索引。
3.普通索引就没有任何限制了,不能唯一标识一条记录,可以任意建立,数量不限。建立普通索引的主要目的是为了加快查询速度和建立表之间的联系。
4.唯一索引已经淘汰不用了,它的唯一性是指索引项的唯一而不是字段值的唯一

  • 如果ORDER BY子句后未指定ASC或DESC,默认使用ASC
  • 只有出现并发操作时候,才有可能出现死锁
  • 授予权限的操作

例如:GRANT UPDATE (GRADE) ON SC TO ZHAO

  • DDL(data definition language):数据库模式定义语言 关键字:create
    DML(data manipulation language):数据操纵语言,关键字:Insert、delete、update
    DCL:数据库控制语言 ,关键字:grant、remove
    DQL:数据库查询语言,关键字:select
  • 笛卡儿积的结果是元组
  • 窗体是连接用户和表之间的纽带,以交互窗口方式表达表中的数据。

窗体是一种文档,可以用来收集信息。它包括两部分,一部分是由窗体设计者输入的,填写窗体的人无法更改的文字或图形。窗体设计者可以插入希望得到回答的问题、选项列表、信息表格等。另一部分是由窗体填写者输入的,用于从填写窗体者处收集信息并进行整理的空白区域。窗体设计者可以在文档中插入窗体域或 ActiveX 控件,为窗体填写者提供用于收集数据的位置。

  • 计算机中的透明是指:计算机中存在的,但对于某写开发人员而言又不需要了解的东西(DDBS是指分布式数据库系统)
  • 一个联系转化为一个关系模式,与该联系相连的各实体的码以及联系
    的属性转化为关系的属性,该关系的码则有三种情况:

若联系为1:1,则每个实体的码均是该关系的候选码。
若联系为1:n,则关系的码为n端实体的码。
若联系为m:n,则关系的码为诸实体码的组合。

  • 连接运算符主要用于连接字符串,其运算符有两个:+,&;

&用来强调两个表达式作为字符串连接,如“hello”&23&“word”,结果为“hello23word”
+连接两个字符串,要求+两端的类型必须一致,如“hello”+23+“word”,结果会报错“类型不匹配”
因此一般使用&连接两个字符串

  • 在Access数据库的表设计器中可以修改字段类型、设置索引和增加字段。要想删除表中的记录,需要打开表进行删除。
  • 锁的类型有三种:

共享(S)锁:多个事务可封锁一个共享页;任何事务都不能修改该页; 通常是该页被读取完毕,S锁立即被释放。
排它(X)锁:仅允许一个事务封锁此页;其他任何事务必须等到X锁被释放才能对该页进行访问;X锁一直到事务结束才能被释放。
更新(U)锁:用来预定要对此页施加X锁,它允许其他事务读,但不允许再施加U锁或X锁;当被读取的页将要被更新时,则升级为X锁;U锁一直到事务结束时才能被释放。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值