1.区分范式
1NF: 原子性,属性不能再分
2NF:不存在部分函数依赖,如(A, B, C, D),(A,B)为候选键,不能由候选关键字的一部分决定非关键字,如B->C
3NF:不存在传递函数依赖,如A->B->C
BCNF:进一步消除主属性的传递依赖(A, B, C, D), 候选键有(A,B)和(B,C),所以主属性为A,B,C,不存在(A,B)->C, C->A这种(如果候选键只有一个属性则BCNF=3NF)
2.关于数据独立性
数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成.
为了能够在系统内部实现这3个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映像:
外模式/模式映像(映像定义通常包含在各自外模式的描述中,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性,应用程序是依据外模式编写的)
模式/内模式映像(包含在模式描述中,此映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系,它保证了数据与程序的物理独立性,所以称为数据的物理独立性)
3.关于数据库的一些英文简写
DML:Data Manapulate Language: 数据操作语言(操作表中数据) INSERT, REPLACE, UPDATE, DELETE
DDL:Data Defination Lanuage: 数据定义语言(操作表) CREATE, ALTER, DROP DCL:
Data Control Language: 数据控制语言 GRANT, REVOKE
DQL:Data Query Language:数据查询语言 SELECT,WHERE,ORDER BY,GROUPBY,HAVING
TPL:事物处理语言 BEGIN,TRANSACTION,COMMIT
4.对数据表进行修改的语句正确的是()
删除列可以省略column,添加列必须说明数据类型
5.在MySql中,productname regexp ‘[1-5]chs’的含义是( )
6.如果事务T获得了数据项Q上的排它锁,则T对Q ( )
只能读,不能写。
共享锁【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。
7.关系模型是()
8.SQL 语言中,SELECT 语句的执行结果是( )。
9.下列关于视图与基本表的对比正确的是()。
定义能力强于表,因为可以在多张表上定义视图,操作能力弱于表,控制能力相当
视图是从一个或几个基本表(或视图)导出的表。它与基本表不同,是一个虚表,数据库中只存放视图的定义,不存放视图对应的数据,这些数据仍存在原来的基本表中。所以基本表中的数据发生变化,从视图中查询出的数据也就随之变化,那么视图就是一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化。
视图一经定义,就可以和基本表一样被查询、被删除。也可以在一个视图之上再定义新的视图,但对视图的更新(增,删,改)操作则有一定的限制。
10.在关系数据库设计中,设计关系模式是数据库设计中( )阶段的任务
数据库设计包括六个主要步骤:
1、需求分析:了解用户的数据需求、处理需求、安全性及完整性要求;
2、概念设计:通过数据抽象,设计系统概念模型,一般为E-R模型;
3、逻辑结构设计:设计系统的模式和外模式,对于关系模型主要是基本表和视图;
4、物理结构设计:设计数据的存储结构和存取方法,如索引的设计;
5、系统实施:组织数据入库、编制应用程序、试运行;
6、运行维护:系统投入运行,长期的维护工作。
11.如下
DFD 数据流图(Data Flow Diagram)
IPO输入加工输出图(input process output)
ER图 实体-联系图(Entity-Relationship Diagram)
12.在一个ER模型中,有3个不同的实体集和3个不同的二元联系,其中有1个一对一联系、1个 一对多联系和1个多对多联系,根据ER模型转换成关系模型的规则,转换成关系的数目是( )。
1→1:一条关系(关系放在两表任意一个都可以)
1→多:一条关系(关系放在多表)
多→多:两条关系(关系必须两个表都放)
13.内模式是系统程序员用一定的( )形式组织起来的一个存储文件和联系手段。
14.在数据库中,产生数据不一致的根本原因是()
15.数据库中事务隔离分为4个级别,其中允许“不可重复读”的有?
16.设关系R和S的结构相同,且各有100个元组,那么这两个关系的并操作结果的元组个数为( )。
17.以下( )封锁违反两段锁协议。
两段锁协议(Two-Phase Locking――2PL)
两段锁协议规定所有的事务应遵守的规则:
① 在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁。
② 在释放一个封锁之后,事务不再申请和获得其它任何封锁。
即事务的执行分为两个阶段:
第一阶段是获得封锁的阶段,称为扩展阶段。
第二阶段是释放封锁的阶段,称为收缩阶段。
D选项在释放A之后就无法再申请信的锁了
18.关于回滚段的使用,下列哪种分配方法比较合适?
回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值)。回滚段的头部包含正在使用的该回滚段事务的信息。一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息。 回滚段的数量规划 对于OLTP系统,
存在大量的小事务处理,一般建议:数量多的小回滚段;每四个事务一个回滚段;每个回滚段不要超过十个事务。
对于批处理,一般建议:少的大回滚段;每个事务一个回滚段。
19.客户端发sql到服务端的经过()
1. 客户端发送一条查询给服务器;
2. 服务器先会检查查询缓存query cache,如果命中了缓存,则立即返回存储在缓存中的结果。否则进入下一阶段;
3. 服务器端进行SQL解析parsing、预处理transition,再由优化器optimization生成对应的执行计划;
4. 根据优化器生成的执行计划,调用存储引擎的API来执行分布distribution查询;
20.读下面的一系列SQL语句:
create table table1(column1 int)
insert into table1 values(91)
create view view1 as select * from table1 where column1<=100 with check option
insert into view1 values(95)
insert into view1 values(110)
insert into table1 values(101)
按顺序执行完上面这六条SQL语句之后,运行select count(*) from table1的值是?
with check option表明通过"视图"进行DML(insert,Update,delete)时,只有满足where语句条件,才会正确执行。第四条语句对"表"操作直接可以插入。
21.什么是触发器?
发器-从字面上理解就是某操作执行会触发. 触发器也是特殊的存储过程,我的理解就是提高数据的完整性.举个简单的例子,一这学生表里有这个学生的学号,姓名,另一张学生的选课表,如果用户修改了学生表中的学生姓名,那么学生选课表中的学生姓名也要修改过来..如果在数据库中建立一个这修改的触发器,那么 这个不再手动修改,否则选课表中的姓名要手工修改..
22.现有表book,主键bookid设为标识列。若执行语句:select * into book2 from book, 以下说法正确的是?
select into from 和 insert into select都是用来复制表,两者的主要区别为: select into from 要求目标表不存在,因为在插入时会自动创建。insert into select from 要求目标表存在