数据库考点回顾

来源:互联网 发布:弹性刚度矩阵 编辑:程序博客网 时间:2024/06/11 18:25

1 数据库理论

1NF :第一范式。如果关系模式R的所有属性的值域都是不可再分解的值,则称R 属于第一范式

                第一范式的模式要求属性值不可再分裂成更小部分,即属性项不能使属性项组合或由组属性组成

2NF :第二范式。如果关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键,则称R为第二范式模式。

            如果某个数据库模式中每个关系模式都是第二范式的,则称该数据库模式属于第二范式的数据库模式。

3NF :第三范式。如果关系模式R是第二范式,则每个非主属性都不传递依赖于R的候选键,则称R是第三范式的模式。如果某个数据库模式的每个关系模式

             都是第三范式,则称为3NF数据库模式

BCNF :BC范式。如果关系模式R是第一范式,且每个属性都不传递依赖于R的候选键,那么称R为BCNF模式

4NF:第四范式。设R是一个关系模式,D是R上的多值依赖集合。如果D中成立非平凡多值依赖X-》-》Y  X必是R的超键,称R为第四范式的模式

关系R(s,d,m)


2 存储过程和函数的区别是什么?

存储过程是用户定义的一系列SQL语句集合,涉及特定表或其他对象的任务,用户可以调用存储过程。

函数通常是数据库已定义的方法,它接受函数并返回某种类型的值,并且不涉及特定用户表


3 什么是数据库事务?

数据库事务 指多个逻辑工作单元执行的一系列操作,这些操作要么全做要么全不做,是一个不可分割的工资单元。

 事务的开始和结束可以有用户显示控制。如果用户没有显示地定义事务,则由DBMS按默认规定自动划分事务。

事务具有:原子性,一致性,独立性及持久性 等特点


4 游标的作用是什么,如何知道游标已经到了最后?

游标用于定位结构集的行。通过判断全局变量@@FETCH_STATUS可以判断其是否到了最后。通常此变量不等于0表示出错或到了最后。


5 触发器分为事前触发和事后触发,这两种触发有何区别?语句级触发和行级触发有何区别?

事前---运行于触发事件发生以前

事后--运行于触发事件发生之后

语句级--语句执行前或后执行

行级触发--所影响的每一行触发一次


6 聚集索引和非聚集索引之间的区别

聚集索引的解释是:聚集索引的顺序就是数据的物理存储顺序,而对非聚集索引的解释是索引顺序与数据物理排列顺序无关。正因为如此,所以一个表最多只能有一个

聚集索引。

   在sql server中,索引是通过二叉树的数据结构来描述的,我们可以这么理解聚集索引:索引的叶节点就是数据节点。而非聚集索引的叶节点仍然是索引节点,只不过

有一个指针指向对应的数据块。

  聚集索引确定表中数据的物理顺序。聚集索引类似电话本,后者按姓名排列数据,由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引,

但该索引可以包含多个列,像电话本按姓氏和名字进行组织一样。

  使用非聚集索引,非聚集索引与课本中的索引类似。数据存储在一个地方,索引存储在另一个地方,索引带有指针指向数据的存储位置。索引中的项目按索引

键值聚集索引,则无法保证这些行具有任何特定的顺序


常用聚集函数(Aggregation function)或内部函数(Build-in function)
函数名
功能
COUNT
对元组计数
TOTAL
求总和
MAX
求最大值
MIN
求最小值
AVG
求平均值



关系模式可以形式化地表示为:
    RUDDOMF
R       关系名
U       组成该关系的属性名集合
D       属性组U中属性所来自的域
DOM  属性向域的映象集合
F        属性间的数据依赖关系集合

   关系的三类完整性约束
        实体完整性
        参照完整性
       用户定义的完整性
实体完整性和参照完整性:
    关系模型必须满足的完整性约束条件
     称为关系的两个不变性,应该由关系系统自动支持
用户定义的完整性:
    应用领域需要遵循的约束条件,体现了具体领域中的语义约束

F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R外码
基本关系R称参照关系(Referencing  Relation)
基本关系S称被参照关系(Referenced Relation)
    或目标关系(Target Relation)

规则2.2 参照完整性规则
   若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系RS不一定是不同的关系),则对于R中每个元组在F上的值必须为:
或者取空值(F的每个属性值均为空值)
或者等于S中某个元组的主码值







decimal(M,D);
M --- 表示小数点前与后的位数之和,D表示小数点后有多少位.......

若D=0则表示为整数.....M就全为整数位

identity 表示该列是一个标识列,设置了identity 该列的值会根据初始值和增量自动在插入数据的时候添加的。
Numeric(10,2) 指字段是数字型,长度为10 小数为两位的 
数据类型
含义
CHAR(n)
长度为n的定长字符串
VARCHAR(n)
最大长度为n的变长字符串
INT
长整数(也可以写作INTEGER)
SMALLINT
短整数
NUMERIC(p,d)
定点数,由p位数字(不包括符号、小数点)组成,小数后面有d位数字
REAL
取决于机器精度的浮点数
Double Precision
取决于机器精度的双精度浮点数
FLOAT(n)
浮点数,精度至少为n位数字
DATE
日期,包含年、月、日,格式为YYYY-MM-DD
TIME
时间,包含一日的时、分、秒,格式为HH:MM:SS








v语句格式
       SELECT [ALL|DISTINCT] <目标列表达式>
                                                [,<目标列表达式>] …
FROM <表名或视图名>[, <表名或视图名> ] …
[ WHERE <条件表达式> ]
[ GROUP BY <列名1> [ HAVING <条件表达式> ] ]
[ ORDER BY <列名2> [ ASC|DESC ] ];


select * from tab where tname like '\_%' escape '\';

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
_test                          TABLE

换码字符escape将通配符_转换为普通字符


谓词: IS NULL 或 IS NOT NULL
“IS” 不能用 “=” 代替

ORDER BY子句
可以按一个或多个属性列排序
升序:ASC;降序:DESC;缺省值为升序
当排序列含空值时
ASC:排序列为空值的元组最后显示
DESC:排序列为空值的元组最先显示


聚集函数:
计数
COUNT([DISTINCT|ALL] *)
COUNT([DISTINCT|ALL] <列名>)
计算总和
SUM([DISTINCT|ALL] <列名>)
 计算平均值
AVG([DISTINCT|ALL] <列名>)
最大最小值
  MAX([DISTINCT|ALL] <列名>)
 MIN([DISTINCT|ALL] <列名>)





原创粉丝点击