赞
踩
总结<数据库系统与原理设计>书中知识点及名词解释用于考研备考,按章划分,较难易混知识点以二级标题特别标注,方便在目录中查找到。
计算机复试—这有详细的
人工管理阶段:数据时面向应用程序,数据需要应用程序自己定义和管理。无法共享利用,因此存在大量冗余数据。
文件系统阶段:按文件名访问,按记录进行存取。
特点:1)实现了文件内的数据结构化**,即一个数据是按记录进行组织,这样的数据是有结构的,数据的语义是明确的。但整体仍是无结构的。2)程序和数据之前由文件系统提供的存取方法进行转换。由于数据在物理存储结构上的改变不一定反映在程序上,因此应用程序与数据之间有了一定的物理独立性。
弊端:
1)数据共享性差,数据冗余和不一致;数据冗余是指相同的数据可能在不同的地方(文件)重复存储。
2)数据独立性差;
3)数据孤立,数据获取困难;
4)完整性问题;数据完整性是指数据的正确性、有效性和相容性,也称为一致性约束。
5)原子性问题;
6)并发访问异常;
7)安全性问题。
数据库管理系统阶段:数据库管理系统是由一个相互关联的集合和一组用以访问、管理和控制这些数据的程序组成。这数据集合即数据库。数据设计数据库管理系统的目的是为了有效地管理大量的数据,并解决文件系统中存在的问题。
与文件系统相比,数据库管理系统特点:
1)数据结构化;
2)数据的共享度高,冗余度低,易扩充;
3)数据独立性高;
4)数据由数据库管理系统统一管理和控制。数据控制功能:数据的安全性保护;数据的完整性检查;并发控制;数据库恢复。
分层:1、概念/信息模型;2、逻辑模型;3、物理模型
组成要素:1、数据结构描述数据库的组成对象(实体)以及对象之间的联系;2、数据操作;3、数据约束
关系:一个关系对应一张二维表,每一个关系有一个名称即关系名。
元组:表中的一行称为一个元组。
属性:表中的一列称为一个属性,每一个属性有一个名称即属性名。
码:(码键或键)表中的某个属性或属性组,可以唯一标识表中的一行。
域:属性的取值范围。
分量:元组中的一个属性组。
外码:表中某属性或属性组,用来描述本关系中的元组(实体)与另一个关系中的元组之间的关系。
关系模式:通过关系名和属性名列表对关系进行描述。
1)超码:对于关系r的一个或多个属性的集合A,如果属性集A可以唯一地标识关系r中的一个元组,则称属性集A为关系r的一个超码。
2)候选码:最小的超码。
3)主码:若一个关系有多个候选码,可以选定其中一个候选码作为该关系的主码。
4)外码:p39(关系r中属性F的范围对应于关系s中主码K,则F是关系r参照关系s的外码)一个含有主码和外码依赖的数据库模式可以通过数据库模式导航图中,外码实现两个关系之间的多对一(或一对一)联系或一个关系内部的多对一(或一对一)联系。(箭头由n指向1)
多对多联系一般通过其他(一个或多个)关系放在中间实现
多个候选码时如何选择主码?
1)尽量选属性长度最短的;
2)尽量选包含单个属性的码,而不是复合候选码;
3)选择在数据库系统生命周期内属性值最少变化的候选码;
4)选择在数据库系统生命周期内更可能包含唯一值的候选码.
关系是个二维表,水平的操作(行)—选择;纵向(列)的操作—投影。
投影要去除重复元组
连接:自然连接、等值连接。自然连接是特殊的等值连接,要求两个关系具有公共属性集,并在公共集上进行连接,同时去重复列。满足结合律。
外码引用关系可用自然连接(或等值连接)表示。
【转自】
百科
找R、S 共同属性的不重复元组(行)看做整体K,选择R中包含K的 非S与R相同属性的属性(列) 即为R÷S。
1、SELECT A FROM Class 2、/*去除重复列*/ SELECT DISTINCT A FROM Class 3、SELECT * FROM Class 4、/*A取别名aaa,AS可省略!后面代码几乎都省略了*/ SELECT A AS aaa FROM Class 5、/*Lower()将大写字母改为小写*/ SELECT Lower(A),B/16 AS hhh FROM Class
1、比较运算
2、范围查询:BETWEEN ...AND
3、集合查询:IN('001','002')
4、空值查询:IS null
5、字符匹配查询:LIKE
通配符:%--任意长度;_ --一个字符
WHERE className LIKE '%16/_%' ESCAPE '/'
/*ESCAPE后是换码符,即紧跟在/后面的不是通配符而是符号。*/
6、逻辑查询:AND OR NOT
7 还有后面提到的存在量词运算符:EXISTS
函数getdate()获取当前系统的日期,year()用于提取日期中的年份。
ORDER BY className
/*默认升序,要降序要在后加DESC*/
SQL统计功能通过聚合函数实现,分类功能通过分组子句实现。
聚合函数:
count()
sum()
avg()
max()
min()
DISTINCT去除列名重复的元组。
分组聚合:
1、GROUP BY 子句对查询的结果按某一列或某几列进行分组,值相同的一组。
2、HAVING 子句对分组的结果进行选择。必须与GROUP BY 配合使用。
前面写过等值连接与自然连接的区别,SQL中不直接支持自然连接,完成自然连接的方法是在等值连接的基础上消除重复列。
非等值连接使用的比较少。
自连接:
FROM Class a, Class b/*给Class表别名a,b*/
WHERE a.classNo=b.classNo
左外连接:
FROM Class a LEFT OUTER JOIN Student b ON a.classNo=b.classNo
右外连接类似:
FROM Class a RIGHT JOIN Student b ON a.classNo=b.classNo
全外连接:
FROM Class a FULL JOIN Student b ON a.classNo=b.classNo
子查询中不可使用ORDER BY子句,该句仅用于最后的输出结果排序.
分为相关子查询和非相关子查询.非相关子查询指子查询结果不依赖于上层查询.
SELECT studentName
FROM Student x
WHERE NOT EXISTS
(SELECT* FROM Course c
WHERE NOT EXISTS /*判断学生x.studentNo是否选修c.courseNo*/
(SELECT* FROM Score
WHERE studentNo=x.studentNo AND courseNo=c.courseNo)
)
理解:(任意c)P(x,c)=非(存在c(非P(x,c)))
在c表中,找不到一个课程,它不在Score表中被x这个学生选过
并:UNION
交:INTERSECT
差:EXCEPT
执行运算时要求参与运算的查询结果列数一样,对应列的数据类型必须一致.
共6个子句,其中SELECT FROM是必须的,其他必须按如下*****:
(p101)
SELECT [ALL|DISTINCT]<目标列表达式 别名>...
FROM<表名 别名>...
WHERE<条件表达式>...
GROUP BY <列名1>...
HAVING <条件表达式>...
ORDER BY <列名表达式>[ASC|DESC]...
WHERE中条件表达式中可使用的谓词运算符见前文选择运算的7个运算符.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。