数据库复习

1. 数据库安全性与操做系统安全性的关系?
安全性问题不是数据库系统所独有的,全部计算机系统都有这个问题。只是在数据库系统中大量数据集中存放,并且为许多最终用户直接共享,从而使安全性问题更为突出。系统安全保护措施是否有效是数据库系统的主要指标之一。数据库的安全性和计算机系统的安全性,包括操做系统,网络系统的安全性是紧密联系、相互支持的。mysql

2. SQL 主键约束和惟一约束有什么区别呢?
主键不能为空而惟一能够为空,相同点就是都不容许重复。sql

3. 什么是基本表?什么是视图?二者的区别和联系是什么?
表是实实在在得保存数据的实体,写入的数据都保存在表中;而视图是不保存数据的,也没有数据。视图就是一条语句,实际上视图从表中去数据,只是给咱们的感受好像直接从表中取得同样。
表能够创建各类触发器,能够创建索引,能够创建主键、约束等;可是视图不能创建这些对象( 视图能够创建替代触发器)。
表和视图能够更新,可是视图的更新受到约束。好比,GROUP BY 和表链接生成的视图不能更新表是实实在在的保存数据的实体,写入的数据都保存在表中;而视图是不保存数据的,也没有数据。
4. 数据库索引
目的:提供多种存储路径,加快查找速度。数据库

创建索引须要考虑的问题:安全

没有查询、统计的须要则不建;
数据增删改频繁,系统会花费许多时间来维护索引,从而下降了查询效率。
5. 哪些视图是能够更新、哪些是不能够更新的
(1)简单视图网络

就是由一个表生成出来的视图,这种状况你更新它就和更新表同样数据结构

(2)二次加工出来的简单视图并发

仍然是一个表出来的视图,可是视图中存在经过函数或计算二次加工出来的其余字段。更新数据库设计

的时候只要不更新这些加工出来的字段也是能够更新的。函数

(3)组合视图性能

经过表之间关联联合等出来的复杂视图。这种视图更新的时候要注意你所更新的列要来自同

一个表,也是能够更新的。

(4)静态视图

这种视图等同于表能够直接更新,可是更新的数据尽在视图中反映出来,不反映到原表

(5)其余视图

经过表函数等其余生成的更为复杂的视图。通常不可更新

六、数据库完整性与安全性的区别
完整性和安全性是两个不一样的概念。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出形成的无效操做和错误结果,然后者是防止数据库被恶意的破坏和非法的存取。固然,完整性和安全性是密切相关的。特别是从系统实现的方法来看,某一种机制经常既能够用于安全保护亦可用于完整性保证。

七、数据库保护(访问)的内容有哪些?

  • 利用权限机制和完整性约束防止非法数据进入数据库;
  • 提供故障恢复能力;
  • 提供并发访问控制。

八、 DBA 的职责是什么?
DBA 负责全面管理和控制数据库系统,其职责有:

  • 决定数据库中的信息内容和结构:数据库中要存放哪些信息
  • 决定数据库的存储结构和存取策略:得到较高的存取效率和存储空间利用率
  • 定义数据的安全性要求和完整性约束条件:负责肯定各个用户对数据库的存取权限、 数据的保密级别和完整性约束条件
  • 监控数据库的使用和运行:转储数据、维护日志文件、故障恢复
  • 数据库的改进和重组重构:对运行状况进行记录、统计分析,以此来不断改进数据库设计。

九、数据库系统和文件系统相比有什么优势?

 

十、什么是完整性约束?
完整性约束可确保数据库中的数据正确性和相容性,主要包括:实体完整性、参照完整性、用户自定义完整性

十一、DBMS 【数据库管理系统】支持那几种数据模型?
经常使用的是层次模型,网状模型和关系模型(最重要)。新兴的是面向对象数据模型和对象关系数据模型。

层次模型: 层次模型是指用树行结构表示实体及其之间的联系,树中每个节点表明一个记录类型,树状结构表示实体型之间的联系。
在一个层次模型中的限制条件是:有且仅有一个节点,无父节点,此节点为树的根;其余节点有且仅有一个父节点。
网状模型的数据结构主要有如下两个特征:
(1)容许一个以上的节点无双亲。
(2)一个节点能够有多于一个的双亲。

网状模型:用有向图结构表示实体类型及实体间联系的数据结构模型称为网状模型关系实际上就是关系模式在某一时刻的状态或内容。也就是说,关系模式是型,关系是它的值。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,由于关系操做在不断地更新着数据库中的数据。但在实际当中,经常把关系模式和关系统称为关系。
现实世界的实体以及实体间的各类联系均用关系来表示,从用户角度看,关系模型中数据的逻辑结构是一张二维表。

十二、SQL(Structured Query Language)的四个组成部分?
① 数据定义语言(Data Definition Language);
② 查询语言(Query Language);
③ 数据操纵语言(Data Manipulation Language);
④ 数据控制语言(Data Control Language)

1三、数据库操纵语言举例
数据操纵语言 DML(Data Manipulation Language),用户经过它能够实现对数据库的基本操做。例如,对表中数据的查询(select)、插入(insert)、删除(delete)和修改(update)

1四、介绍下有哪些应用数据库?
大概知道的有:
桌面型:Access、Foxpro、DBase
企业型:SQL Server 系列、MySQL、Oracle、Sybase

非关系型数据库:Nosql

15. 什么是数据独立性。
数据独立性表示应用程序与数据库中存储的数据不存在依赖关系,包括逻辑数据独立性和物理数据独立性

逻辑数据独立性指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,应用程序不用改变。

例:增长一个字段,应用程序不用改变

是指当数据库的模式发生改变时,只须要改变存在于外模式和概念模式之间的映射转换,无需改变外模式或应用程序。

物理数据独立性指用户的应用程序与数据库中数据的物理存储是相互独立的。当数据的物理存储改变了,应用程序不用改变。

例:原本是一行行存放数据,如今是一列列存放数据,但应用程序能够不变 或者 原本是用B树建索引 后来使用hash建索引

是指当数据库的内模式发生改变时,系统只要改变概念模式和内模式之间的映射转换,而没必要改变模式,从而不须要更改外模式。

1六、1NF 是啥,数据模式?
第一范式 是数据库最基本的要求,即每个份量必须是不可分的数据项;
第二范式 是数据库非主属性对码的部分函数依赖,即每个非主键彻底函数依赖于主键;
第三范式 是非主属性对码的传递依赖,即不包含已在其余表中已包含的非主键信息,防止数据冗余;
数据模式是基于选定的数据模型对数据进行的“型”的方面的刻画,而相应的“实例”则是对数据“值”的方面的描述。先有数据模型,才能据其讨论相应数据模式,有了数据模式,就能依据该模式获得相应的实例。

1七、 数据库的关系操做有哪些?各有什么做用?
关系模型中经常使用的关系操做包括两大部分:

选择、投影、链接、除、并、交、差、笛卡尔积等查询操做
增长、删除、修改操做
查询的表达能力是其中最主要的部分。

关系操做的特色是集合操做方式,即 操做的对象和结果都是集合。这种操做方式也称为 一次一集合(set-at-a-time) 的方式。相应地,非关系数据模型的数据操做方式则为 一次一记录(record-at-a-time) 的方式

1八、DB 并发操做一般带来哪三类问题?
丢失修改(Lost Update):当一个事务修改了数据,而且这种修改尚未尚未提交到数据库中时,另一个事务又对一样的数据进行了修改,而且把这种修改提交到了数据库中。这样,数据库中没有出现第一个事务修改数据的结果,好像这种数据修改丢失了同样。
脏读(Dirty Read):当一个事务正在访问数据,并对数据进行了修改,而这种修改尚未提交到数据库中,这时,另外一个事务也访问这个数据,而后使用了这个数据。由于这个数据是尚未提交的数据,那么另外一个事务读到的这个数据是脏数据,依据脏数据所作的操做多是不正确的。
不可重复读(Non-Repeatable Read):在一个事务内,屡次读同一数据。在这个事务尚未结束时,另外一个事务也访问该同一数据,那么,在第一个事务中的两次读数据之间,因为第二个事务的修改,第一个事务两次读到的数据多是不同的。
1九、两段锁协议
所谓两段锁协议是指全部事务必须分两个阶段对数据项加锁和解锁

在对任何数据进行读、写操做以前,首先要申请并得到对该数据的封锁;
并且在释放一个封锁以后,事务再也不申请和得到任何其余封锁。
加锁阶段:在该阶段能够进行加锁操做。在对任何数据进行读操做以前要申请并得到S锁,在进行写操做以前要申请并得到X锁。加锁不成功,则事务进入等待状态,直到加锁成功才继续执行。
解锁阶段:当事务释放了一个封锁之后,事务进入解锁阶段,在该阶段只能进行解锁操做不能再进行加锁操做。
所谓“两段”锁的含义是,事务分为两个阶段,第一阶段是得到封锁,也称为扩展阶段。
第一阶段阶段,事务能够申请得到任何数据项上的任何类型的锁,可是不能释听任何锁。第二阶段是释放封锁,也称为收缩阶段。在这阶段,事务能够释听任何数据项上的任何类型的锁,可是不能再申请任何锁。
例如事务 T1 遵照两段锁协议,其封锁序列是:(如右)

又如事务 T2 不遵照两段锁协议,其封锁序列是:
Slock A … Unlock A … Slock B … Xlock C … Unlock C … Unlock B;

能够证实,若并发执行的全部事务均遵照两段锁协议,则对这些事务的任何并发调度策略都是可串行化的。
另外要注意两段锁协议和防止死锁的一次封锁法的异同之处。一次封锁法要求每一个事务必须一次将全部要使用的数据所有加锁,不然就不能继续执行,所以一次封锁法遵照两段锁协议;可是两段锁协议并不要求事务必须一次将全部要使用的数据所有加锁,所以遵照两段锁协议的事务可能发生死锁

20、事务的四个特色?
事务的概念:用户定义的一个数据库操做序列,这些操做要么全作要么全不作,是一个不可分割的工做单位。

  • 一致性(Consistency)
  • 原子性(Atomicity)
  • 隔离性(Isolation)
  • 持续性(Durability)

2一、 数据库恢复策略有哪几种?

  • 事务内部的故障
  • 系统故障
  • 介质故障
  • 计算机病毒

2二、数据库的三级模式
一、模式又称概念模式或逻辑模式,对应于概念级,是对数据库中所有数据的逻辑结构和特征的整体描述,是全部用户的公共数据视图(全局视图),反映了数据库系统的总体观。
二、外模式又称子模式或用户模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从模式导出的一个子集,包含模式中容许特定用户使用的那部分数据。外模式反映了数据库的用户观。
三、内模式又称存储模式,对应于物理级,它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。内模式是数据库的存储观。在一个数据库系统中,只有惟一的数据库,于是做为定义、描述数据库存储结构的内模式和定义、描述数据库逻辑结构的模式,也是惟一的,但创建在数据库系统之上的应用则是很是普遍、多样的,因此对应的外模式不是惟一的,也不多是惟一的。

2三、什么是表?什么是视图?二者的区别和联系是什么?
表是实实在在得保存数据的实体,写入的数据都保存在表中,而视图是不保存数据的,也没有数据。视图就是一条语句,实际上视图从表中取数据。只是给咱们的感受好像直接从表中取得同样。表能够创建各类触发器,能够创建索引,能够创建主健,约束等。可是视图不能创建这些对象(视图能够创建替代触发器)。表和视图能够更新,可是视图的更新受到约束。好比,GROUP BY 和表链接生成的视图不能更新表是实实在在的保存数据的实体,写入的数据都保存在表中,而视图是不保存数据的,也没有数据。
联系:能够理解为视图的数据都是从表中取出来,视图就是你定下的一个框框而已,内容都是在表中。

2四、1NF 有哪些缺点?

  • 数据冗余太大(每个系的系主任名字重复出现)
  • 更新异常(某个系更换系主任以后,必须将该系学生有关的每个元组)
  • 插入异常(若是一个系刚成立,尚无学生,就没法将老师存入到数据库中)
  • 删除异常(若是学生都毕业了,在删除学生时,把这个系的系主任的全部信息都删除了)

2五、数据字典一般包含五个部分

  • 数据项
  • 数据结构
  • 数据流
  • 数据存储
  • 处理过程

2六、数据库中视图的优势
① 简化用户操做;
② 使用户能以多种角度看待统一数据;
③ 对重构数据库提供了必定程度的逻辑独立性
④ 对机密数据提供安全保护
⑤ 能够更清晰的表达查询

26.在作数据库开发中使用视图的优势有:
能够访问表中列的子集。在表中有些列是比较敏感的数据不想用户看到的,如用户密码,员工工资等,用视图能够隐藏这些列。
能够访问表中行的子集。有时不想让用户看到与 TA 无关的数据时,能够在 where 条件中过滤,如企业中子公司的员工只能看到 TA 所在子公司的同事资料,而不想其它子公司员工资料也显示出来,用过滤后查询出来的数据集组成视图。
能够重命名列名。在表中有些列名定义没有表明意义,如列“abc”,为了让用户看到列名就能够知该列是什么数据,能够在组建视图时重命名列名。
能够快速访问两表或多表链接所组成的数据。有时要访问表间链接所组成的数据集,能够把查询出来的数据集定义成视图,能够帮助快速访问所需的数据。
能够快速读取用聚合函数运算所返回的数据集。有时用户要读取通过用聚合函数复杂运算后的结果集,每次读取都是很耗时,这时能够把这运算后的数据集组成视图,就能够避免每次读取都要运算的消耗。总的来说,使用视图在提升安全性的同时也加快查询的速度。
2七、 数据库的三要素
数据模型是一组严格定义的概念的集合,这些概念精确地描述了系统的静态特征(数据结构)、动态特征(数据操做)和完整性约束条件,这就是数据模型的三要素。

2八、 数据库索引
目的:提供多种存储路径,加快查找速度。

创建索引须要考虑的问题:

1。没有查询、统计的须要则不建

2。数据增删改频繁,系统会花费许多时间来维护索引,从而下降了查询效率。

2九、哪些视图是能够更新、哪些是不能够更新的,
行列子集视图能够更新;
① 由两个以上基本表导出的视图,不能够更新;
② 字段来自于字段表达式或常数的视图,不容许(Insert、Update),可是能够 Delete;
③ 字段来自汇集函数的视图不能够更新;
④ 定义中含有 Group By 字句的视图,不能够更新;
⑤ 定义中含有 DISTINCT 字句的视图,不能够更新;
⑥ 定义中有嵌套查询,而且内层查询的 From 字句中涉及的表也是导出该视图的基本表
的视图,不能够更新;
⑦ 不容许更新的视图上定义的视图也不容许更新。

30、日志文件的定义与做用。
日志文件是用来记录事务对数据库的更新操做的文件。
做用:在数据库恢复中起着重要的做用,并协助后备副本进行介质故障恢复
日志文件主要包含:事务标识、操做的类型、操做对象、更新前数据的旧值、更新后数据的新值。

3一、数据库完整性与安全性的区别?
完整性和安全性是两个不一样的概念。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出形成的无效操做和错误结果, 然后者是防止数据库被恶意的破坏和非法的存取。固然,完整性和安全性是密切相关的。特别是从系统实现的方法来看,某一种机制经常既能够用于安全保护亦可用于完整性保证。

3二、数据库有哪几种备份策略,大概的操做
彻底备份、事务日志备份、差别备份、文件备份

3三、DBMS 控制管理功能
① 数据库定义和建立
② 数据组织、存储和管理
③ 数据存取
④ 数据库事务管理和运行管理
⑤ 数据库的创建和维护

3四、数据库采用什么机制来保证数据库并发操做的正确性?
并发控制:封锁、时间戳、乐观控制法。

3五、数据库安全系统和计算机安全系统的人关系
安全性问题不是数据库系统所独有的,全部计算机系统都有这个问题。只是在数据库系统中大量数据集中存放,并且为许多最终用户直接共享,从而使安全性问题更为突出。系统安全保护措施是否有效是数据库系统的主要指标之一。数据库的安全性和计算机系统的安全性,包括操做系统,网络系统的安全性是紧密联系,相互支持的。

3六、函数模板和类模板的区别
实例化不一样。

3七、数据库管理系统的完整性要完成的功能

  • 防止不合语意的数据
  • 防止无效操做和错误结果

38. 数据库的两种独立性
物理独立性指的是应用程序与数据存放在相互独立的磁盘地址,内模式与模式映象保证了其物理独立特性;
逻辑独立性指的数据与程序逻辑结构上的独立特性,数据或应用程序的逻辑结构发生变化性都不影响对方,外模式与模式映身保证了其逻辑独立性。
逻辑数据独立性指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,应用程序不用改变。

例:增长一个字段,应用程序不用改变

是指当数据库的模式发生改变时,只须要改变存在于外模式和概念模式之间的映射转换,无需改变外模式或应用程序。

物理数据独立性指用户的应用程序与数据库中数据的物理存储是相互独立的。当数据的物理存储改变了,应用程序不用改变。

例:原本是一行行存放数据,如今是一列列存放数据,但应用程序能够不变 或者 原本是用B树建索引 后来使用hash建索引

是指当数据库的内模式发生改变时,系统只要改变概念模式和内模式之间的映射转换,而没必要改变模式,从而不须要更改外模式。

3九、 DBMS 的控制操做有哪些
①数据的安全性保护;

②数据的完整性检查;

③并发控制;

④数据库恢复。

40、什么是数据库控制语言,试举例说明
DCL 是用来设置或更改数据库用户角色权限的语句,主要包括 GRANT(受权)、DENY
(拒绝)、REVOKE(删除)三类。

4一、数据库两级模式的做用?
三模式→①外模式/模式映像;②模式/内模式映像;
保证了数据库系统中的数据可以具备较高的逻辑独立性和物理独立性。

4二、笛卡尔积
在数学中,两个集合 X 和 Y 的笛卡儿积(Cartesian product),又称直积,表示为 X × Y,是其第一个对象是 X 的成员而第二个对象是 Y 的一个成员的全部可能的有序对。

4三、数据库中 primary key 约束和 unique 约束有什么区别?
主键约束:有一列或列的组合,其值能惟一的标识表中的每一行。
惟一约束:不容许数据库表在指定列上具备相同的值,但容许有空值。
区别:一个表能够定义多个惟一约束,但只能定义一个主键约束;空值的列上能够定义惟一约束,不能定义主键约束。

1.数据库索引
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引能够快速访问数据库表中的特定信息

若是想按特定职员的姓来查找他或她,则与在表中搜索全部的行相比,索引有助于更快地获取信息。
索引的一个主要目的就是加快检索表中数据的方法,亦能协助信息搜索者尽快的找到符合限制条件的记录ID的辅助数据结构。
2.数据库事务
数据库事务(Database Transaction),是指做为单个逻辑工做单元执行的一系列操做,要么彻底地执行,要么彻底地不执行。

事务处理能够确保除非事务性单元内的全部操做都成功完成,不然不会永久更新面向数据的资源。

经过将一组相关操做组合为一个要么所有成功,要么所有失败的单元,能够简化错误恢复并是应用程序更加可靠。

一个逻辑工做单元要成为事务,必须知足所谓的ACID(原子性、一致性、隔离性和持久性)属性。

事务是数据库运行中的逻辑工做单位,由DBMS中的事务管理子系统负责事务的处理。
3.数据库事务隔离
同一时间,只容许一个事务请求同一数据,不一样的事务之间彼此没有任何干扰。

好比A正在从一张银行卡取钱,在A取钱的过程结束前,B不能向这张卡转帐。
4.等值联接(inner join)和左联接(left join)
左联接返回包括左表中的全部记录和右表中联接字段相等的记录
右联接返回包括右表中的全部记录和左表中联结字段相等的记录
等值联接只返回两个表中联接字段相等的行
5.数据库事务的一致性
事务是由一系列对系统中数据进行访问与更新的操做所组成的一个程序执行逻辑单元。事务是DBMS中最基础的单位,事务不可分割。
事务具备四个特性,分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Duration),简称ACID。

(1)原子性
原子性是指事务所包含的全部操做要么所有成功,要么所有失败的回滚,所以事务的操做若是成功就必需要彻底应用到数据库,若是操做失败则不能对数据库有任何影响。
(2)一致性
一致性是指事务必须使数据库从一个一致性状态变换到另外一个一致性状态,也就是说事务执行以前和执行以后都必须处于一致性状态。
拿转帐来讲,假设用户A和用户B二者的钱加起来一共是5000,那么无论A和B之间如何转帐,转帐几回,事务结束后两个用户的钱加起来应该还得是5000,这就是事务的一致性。
(3)隔离性
隔离性是当多个用户并发访问数据库时,好比操做同一张表,数据库为每一个用户开启的事务,不能被其余事务的操做所干扰,多个并发事务之间要相互隔离。
即要达到这么一种效果:对于任意两个并发的事务T1和T2,在事务T1看来,T2要么在T1开始以前就已经结束,要么在T1结束以后才开始,这样每一个事务都感受不到有其余事务在并发地执行。
多个事务并发访问时,事务之间是隔离的,一个事务不该该影响其它事务运行效果。这指的是在开发环境中,当不一样事务操做相同的数据时,每一个事务都有各自的完整数据空间。由并发事务所作的修改必须与任何其余并发事务所作的修改隔离。
不一样的隔离级别:
Read Uncommitted(读取未提交):最低的隔离级别,什么都不须要作,一个事务能够读到另外一个事务提交的结果。全部的并发事务问题都会发生。
Read Committed(读取提交内容):只有在事务提交后,其更新结果才会被其余事务看见。能够解决脏读问题。
Repeated Read(可重复读):在一个事务中,对于同一份数据的读取结果老是相同的,不管是否有其余事务对这份数据进行操做,以及这个事务是否提交。能够解决脏读、不可重复读。
Serialization(可串行化):事务串行化执行,隔离级别最高,牺牲了系统的并发性。能够解决并发事务的全部问题。
(4)持久性
持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即使是在数据库系统遇到故障的状况下也不会丢失提交事务的操做。
例如咱们在使用JDBC操做数据库时,在提交事务方法后,提示用户操做完成,当咱们程序执行完成直到看到提示后,就能够认定事务已经正确提交,即便这时候数据库出现了问题,也必需要将咱们的事务彻底执行完成,不然就会形成咱们看到提示事务处理完毕,可是数据库由于故障而没有执行事务的重大错误。
6.索引是什么,多加索引必定会好吗
数据库索引是为了增长查询速度而对表字段附加的一种标识,是对数据库表中一列或多列的值进行排序的一种结构。
数据库在执行一条sql语句的时候,默认的方式是根据搜索条件进行全表扫描,遇到匹配条件的就加入搜索结果集合。

若是咱们对某一字段增长索引,查询时就会先去索引列表中一次定位到特定值的行数,大大减小遍历匹配的行数,因此能明显增长查询的速度。
优势:
(1)经过建立惟一性索引,能够保证数据库表中每一行数据的惟一性
(2)能够大大加快数据库的检索速度,这也是建立索引的最主要的缘由。
(3)能够加速表和表之间的链接,特别是在实现数据的参考完整性方面特别有意义。
(4)在使用分组和排序子句进行数据检索时,一样能够显著减小查询中分组和排序的时间
(5)经过使用索引,能够在查询的过程当中,使用优化隐藏器,提升系统的性能
缺点:
(1)建立索引和维护索引要耗费时间,这种时间随着数据量的增长而增长。
(2)索引须要占物理空间,除了数据表中占数据空间以外,每个索引还要占必定的物理空间,若是创建聚镞索引,那么须要的空间就会更大。
(3)当对表中的数据进行增长、删除和修改的时候,索引也要动态的维护,这样就下降了数据的维护速度
添加索引的规则:
(1)在查询中不多使用的列或者参考的列不该该建立索引。这是由于,既然这些列不多使用到,所以有索引或者无索引,并不能提升查询速度。

相反,因为增长了索引,反而下降了系统的维和速度和增大了空间需求。
(2)只有不多数据值的列也不该该增长索引。因为这些列的不多,例如人事表的性别列,在查询的结果中,结果集的数据占了表中数据行的很大比例,即须要在表中搜索的数据行的比例很大。增长索引,并不能明显加快检索速度。
(3)定义为text、image和bit数据类型的列不该该增长索引。这是由于,这些列的数据量要么至关大,要么取值不多。
(4)当修改性能远远大于检索性能时,不该该建立索引。这是由于,修改性能和检索性能是互相矛盾的。当增长索引时,会提升检索性能,可是会下降修改性能。当减小索引时,会提升修改性能,下降检索性能。所以,当修改性能远远大于检索性能时,不该该建立索引。
7.数据库的三大范式
第一范式:当关系模式R的全部属性都不能再分解为更基本的数据单位时,称R是知足第一范式,即属性不可分
第二范式:若是关系模式R知足第一范式,而且R的全部非主键属性彻底依赖于R的每个候选关键属性,称R知足第二范式。
第三范式:设R是一个知足第一范式条件的关系模式,X是R的任意属性集,若是X非传递依赖于R的任意一个候选关键字,称R知足第三范式,即非主属性不传递依赖于键码

8.mysql的MVCC机制
MVCC是一种多版本并发控制机制,是Mysql的InnoDB存储引擎实现隔离级别的一种具体方式,用于实现提交读和可重复读这两种隔离级别。MVCC是经过保存数据在某个时间点的快照来实现该机制,其在每行记录后面保存两个隐藏的列,分别保存这个行的建立版本号和删除版本号,而后InnoDB的MVCC使用到的快照存储在Undo日志中,该日志经过回滚指针把一个数据行全部快照链接起来。
9.SQL优化方法有哪些
经过创建索引对查询进行优化;
查询进行优化,应尽可能避免全表扫描。
10.ER图
实体联系图(Entity-Relationship,E-R),有三个组成部分:实体、属性、联系。用来进行关系型数据库系统的概念设计。
实体:用矩形表示,矩形框内写明实体名。
属性:用椭圆形表示,并用无向边将其与相应的实体链接起来。
联系:用菱形表示,菱形框内写明联系名。
ER模型转换为关系模式的原则:
一对一:遇到一对一关系的话,在两个实体任选一个添加另外一个实体的主键便可。
一对多:遇到一对多关系的话,在多端添加另外一端的主键。
多对多:遇到多对多关系的话,咱们须要将联系转换为实体,而后在该实体上加上另外两个实体的主键,做为联系实体的主键,而后再加上联系自身带的属性便可。

 

 

参考:

  • https://blog.csdn.net/kkm09/article/details/105136235
  • https://blog.csdn.net/weixin_40605573/article/details/105460410
相关文章
相关标签/搜索