牛客日常刷题总结(一)

一,数据库

(1)视图在行为上与数据表没啥特别区别,可以使用基本的select,insert,update等命令修改数据,但对于update操作,也有一 些限制,下面那些是受限的原因:


    1) 初始View定义的Select语句里如果包含了GROUP BY,DISTINCT,LIMIT或HAVING等命令时
    2)如果视图里数据来自多张字表时

总结:如果视图是从多个基本表使用联接操作导出的,则不允许更新。如果导出的视图使用了分组和聚合操作,也不允许更新。如果视图是从单个基本表使用选择和投影操作导出的,并且包括了基本表的主键或某个候选键,则可以执行操作。

2)数据库系统的特性:

采用某种数据模型;最低的冗余度;保证数据完整性

3)死锁发生时,可以撤销其中一个事务,让其回到初态,因为产生死锁的原因是两个或者多个事务都已经封锁了一些数据对象,然后又都请求对已被其他事务封锁的数据对象加锁,从而出现死等待。


4)一个表只能有一个主键,而唯一索引可以有多个。主键可以作为其它表的外键。主键不可为null,唯一索引可以多个数据为null。

5)数据库系统的三级模式结构是指数据库系统由外模式、模式和内模式3级构成 。

     数据库管理系统在三级模式之间提供了以下 两层映像来保证数据库系统中的数据具有较高的逻辑独立性和物理独立性。

     外模式/模式映像:当模式改变时,由数据库管理员对各个外模式/模式的映像做相应的改变,可以使外模式保持不变。应用程 序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据逻辑独立性

    模式/内模式映像:当数据库的存储结构改变时,由数据库管理员对模式/内模式映像做相应的改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据物理独立性

6)为使程序员编程时既可使用数据库语言又可使用常规的程序设计语言,数据库系统需要把数据库语言嵌入到宿主语言中。

7)投影运算进行的是对列的运算;选择运算进行的是对行的运算。

8)一个事务只能由一个回滚段,而一个回滚段可以拥有多个小的事务,当然单个大的事务配一个独自的回滚段比较好。

    回滚段的概念:回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值)。回滚段的头部包含正在使用的该回滚段  事务的信息。

9)数据库事务并发带来的问题有:更新丢失、脏读、不可重复读、幻象读。

     更新丢失:一个事务的更新覆盖了另一个事务的更新。

     脏读:一个事务读取了另一个事务未提交的数据。

     不可重复读:一个事务两次读取同一个数据,两次读取的数据不一致。

     幻象读:一个事务两次读取一个范围的记录,两次读取的记录数不一致。

10)数据库事务的四大特性:原子性,一致性,持久性,隔离性。

11)闭包就是由一个属性直接或间接推导出的所有属性的集合。

12)第一范式:确保列的原子性。

       第二范式:在第一范式的基础上,确保每一列都和主键有关。

       第三范式:在第二范式基础上,确保每一列都和主键是直接相关,而不是间接的。

13)关系数据库规范化的目的是为了使结构更合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新。

14)概念模型独立于硬件设备和DBMS。

15)在数据库存储的是数据及数据之间的关系。

16)Mysql的触发器只支持行级出发,不支持语句级触发。


声明:这篇文章参考了牛客网的牛客家人们的解析以及参考了百度上找的资料,供自己平时复习使用。

猜你喜欢

转载自blog.csdn.net/mr_police/article/details/80685028