数据库知识点梳理

1. 基本概念

a 数据库管理系统(DBMS):由一个互相关联的数据的集合和一组用来访问这些数据的程序组成,是一种操纵和管理数据库的软件,用于建立、使用和维护数据库,是位于用户和操作系统之间的数据管理软件。

b 数据库(DB):按照数据结构来组织、存储和管理的数据的集合,也就是数据库管理系统中的数据的集合

c 数据库系统(DBS):为适应数据处理的需要而发展起来的一种较为理想的数据处理系统,是一个为实际可运行的存储、维护和应用系统提供数据的软件系统。DBS通常由软件、数据库和数据管理员组成(也可以说成由数据库、数据库管理系统、应用系统、数据库管理员和用户组成)。软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。数据管理员分四类:系统分析员和数据库设计人员;应用程序员;最终用户;数据库管理员DBA。数据库系统的核心是数据库管理系统

目前常见的数据库系统有IBM的DB2、甲骨文的Oracle、微软的SQL和Access、Sybase的Sybase、MySQL AB公司的MySQL等
DBS=计算机硬件平台+系统软件和应用软件+人员

d 数据模型:描述数据、数据联系、数据语义以及一致性约束的概念的集合。数据模型是现实世界数据特征的抽象。数据库系统的核心和基础是数据模型(有点不懂)

数据模型=数据结构[静态特征]+数据操作[动态特征]+完整性约束[完整性约束条件]


2. 三层模式和两层映射

三层模式:

内模式(存储模式):和数据库物理存储有关,描述数据是怎样存储的,唯一,物理级,物理层

模式(概念模式、逻辑模式):用来隔离物理层的不同, 在逻辑上描述数据库,唯一,概念级,逻辑层

外模式(子模式、用户模式):用于向用户展示,不唯一,用户级,视图层

两层映射:

外模式/模式映射:当模式发生改变时,只要改变其映射关系,可以使外模式保持不变。(逻辑性)

模式/内模式映射:当内模式发生改变时,只要改变模式/内模式映射,可以保持模式不变。(物理性)

应用程序如果不依赖于物理模式,它们就被称为是具有物理数据独立性。


3. 数据库设计

指定需求文档——>概念设计——>逻辑设计——>物理设计

概念设计阶段决定数据库中应该包括哪些属性、如何组织到表中去。一般采用实体-联系模型和规范化算法来实现。


4. 数据库语言

数据定义语言(DDL:Data-definition Language):和关系模型相关的命令,定义关系模式、删除关系、以及修改关系模式等命令。

数据操纵语言(DML:Data-manipulate Language):涉及表的增删查改操作。

数据控制语言(DCL:Data-control Language):高级数据库操纵相关,设计权限,事务等命令。


5. 表概念

关系模型:用二维表表示实体及实体之间的联系。

在关系模型中,表指代关系,元组指代行,表中的列指代元组属性。

关系模式和关系实例:关系模式指关系的逻辑设计,关系实例指它在特定时刻的内容。关系模式用 表名(属性名1,属性名2,,,)表示,关系实例表示一个确定的关系。两者的关系就像类和对象的关系。

超码:关系中可以唯一表示一个元组,一个或多个属性的集合。如果ID是一个超码,那么包含ID的任何超集都是超码。

候选码:如果一个超码的任何真子集都不是超码,那么这样的超码就是候选码,候选码是超码,超码不一定是候选码。

主码:被数据库设计者选中的,用来区分不同元组的候选码。所以主码一定是候选码,但候选码不一定是主码,候选码都可以做主码,但是没有被设计者选中,所以只是候选项。

外码:若关系 r1 中的某个属性 t 是另一个关系模式 r2 的主码,则属性 t 在该关系 r1 中就被称作参照 r2 的外码。

域:指关系中某个属性的取值的集合。


6. 完整性约束

实体完整性约束:关系的主键不能为空,也不能重复。

参照完整性约束:参照关系中的外键必须等于被参照关系中某个元组的特定属性(不一定是主键),如果属性是被参照关系的主键,则称参照关系中的属性为被参照关系的属性的外码。references子句指定的属性列表必须声明为被参照关系的候选码,要么使用primary key约束,要么使用unique约束(数据库系统概念6th P131)。

域完整性约束:字段(属性)的取值合理,没有超出取值域。

用户自定义完整性约束:用户根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性特定属性条件。用户定义完整性主要包括字段有效性约束和记录有效性。


7. SQL语言

DDL:create、alter、drop

DML:insert、delete、select、update

DCL:grant、revoke


8. select

A 单表查询

select A1,A2,An

from table1

where 条件

在select 后加 distinct,表示去除重复,默认all(不去除重复),distinct 和 all 写在属性前面。

B 多表查询

最容易的理解方式:首先是from,然后是where,最后是select

多表查询主要是集中连接方式:

自然连接(natural join):得到在连接的关系模式中所有相同属性上取值相同的元组对。如果不想在所有属性上取值相同,只满足部分相同属性的取值相同,可以用t1 [natural] join t2 using(A1,A2),这样,如果t1.A1=t2.A1,并且t1.A2=t2.A2就满足条件,即使有t1.A3和t2.A3,也不要求t1.A3=t2.A3.

左连接(natural left outer join):保留左表中不满足自然连接的元组。

右连接(natural right outer join):保留右表中不满足自然连接的元组。

全外连接(natural full outer join):保留两个表中不满足自然连接的元组。


9. 嵌套子查询

A where子句中的子查询

B from子句中的子查询

C with子查询:可以定义临时关系

D 标量子查询:返回包含单个属性的单个元组的子查询。标量子查询结果仍然是关系,不过只返回对应的值。

E 相关子查询:使用了来自外层查询相关名称的子查询。


10 聚集函数

avg() : 平均值,输入必须是数字集。

min() : 最小值

max() : 最大值

sum() : 总和,输入必须是数字集。

count() : 计数

count() 可以用做count(distinct ID),但不能在count(*) 时使用distinct。


11. 特殊子句

A order by子句:可以往元组按照顺序显示,desc表示降序,asc表示升序,默认使用升序。

语法:order by salary desc, name asc (先按照salary降序排列,对salary相同的按照name升序排列,desc和asc写在属性后面。

B group by子句:在给定属性上取值相同的元组分在一个组中。

说明:任何没有出现在group by子句中的属性,如果没有出现在select子句中,那它就只能出现在聚集函数内部。

C having子句:对分组限定条件。

说明:

a。与group by子句类似,任何没有出现在having 子句中,但在select中没有被聚集(用聚集函数)的属性必须出现在group by子句中(也就是说,出现了group by或者having子句,select 中的属性要么是这两个子句中出现的,要么是用聚集函数计算的,因为group by和having都是针对的分组,select中的属性必须能组成一个分组,不能是单个的元组。

b。查询的理解也是先from,如果有where子句,则先用where子句将from 得到的关系进行筛选,然后再是group by分组,再是 having子句,将满足条件的分组留下,不满足的删掉,最后是select子句。


12. 修改语句

A 删除   delete from r where P;

B 插入   insert into r[A1, A2,,,]  values();插入时,字符或字符串都用 ’ ‘ ,数字类型直接写数字。

C 更新   update r set A1=data [where P];

delete、insert、update语句中都可以有where子句。


13. 其他关键字

as : 更名,oldName as newName,可以放在任何地方。

like : 字符串比较," _ "任意匹配一个字符,” %“ 匹配任意子串。

escape : 定义转义字符。


14. 空值

null的算法运算、比较运算、集合运算等操作得到的结果是不确定的,用unknown 表示(既不是 is null , 也不是 is not null )。关于unknown 的逻辑表达式总结为:

and : true and unknown的结果是unknown, false and unknown的结果是false, unknown and unknown 的结果是 unknown。

or : true or unknown 的结果是true, false or unknown 的结果是 unknown, unknown or unknown的结果是 unknown。

not :not unknown 的结果是 unknown。

null = null 的结果是 unknown,而不是true。


15. 对空值和布尔值的聚集

除了count(*) 外,所有的聚集函数都忽略输入集合中的空值。


16. 集合

union , intersect, except :分别表示并集、交集、差集。union运算自动去除重复,union all 可以保留重复,intersect 运算自动去除重复,intersect all 可以保留重复。except all 保留重复。

in (not in): 是否在(不在)集合中。

some : <some, <=some,  >=some , <> some( 不等价于 not in , not in 表示任何都一个都不满足 ), =some(等价于 in),some后面接子查询语句。

all : <all , <= all, >=all, =all( 不等价于 in ) ,  <> all(等价于 not in ) 


17. 范式

1NF : 每个属性都是不可再分的

2NF : 在 1NF 的基础上,消除了非主属性对主码的部分函数依赖

3NF : 在 2NF 的基础上,消除了非主属性对主码的传递函数依赖

BCNF : 在 3NF 的基础上,消除了主属性对 主码的福安息的部分与传递函数依赖


1 .试述数据、数据库数据库系统、数据库管理系统的概念。 答: ( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机系统中数据的概念是广义的。早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂。数据与其语义是不可分的。 500 这个数字可以表示一件物品的价格是 500 元,也可以表示一个学术会议参加的人数有 500 人,还可以表示一袋奶粉重 500 克。 ( 2 )数据库( DataBase ,简称 DB ) :数据库是长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。 ( 3 )数据库系统( DataBas 。 Sytem ,简称 DBS ) :数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。解析数据库系统和数据库是两个概念。数据库系统是一个人一机系统,数据库数据库系统的一个组成部分。但是在日常工作中人们常常把数据库系统简称为数据库。希望读者能够从人们讲话或文章的上下文中区分“数据库系统”和“数据库”,不要引起混淆。 ( 4 )数据库管理系统( DataBase Management sytem ,简称 DBMs ) :数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。 DBMS 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。解析 DBMS 是一个大型的复杂的软件系统,是计算机中的基础软件。目前,专门研制 DBMS 的厂商及其研制的 DBMS 产品很多。著名的有美国 IBM 公司的 DBZ 关系数据库管理系统和 IMS 层次数据库管理系统、美国 Oracle 公司的 orade 关系数据库管理系统、 s 油 ase 公司的 s 油 ase 关系数据库管理系统、美国微软公司的 SQL Serve ,关系数据库管理系统等。 2 .使用数据库系统有什么好处? 答: 使用数据库系统的好处是由数据库管理系统的特点或优点决定的。使用数据库系统的好处很多,例如,可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担,等等。使用数据库系统可以大大提高应用开发的效率。因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由 DBMS 来完成。用一个通俗的比喻,使用了 DBMS 就如有了一个好参谋、好助手,许多具体的技术工作都由这个助手来完成。开发人员就可以专注于应用逻辑的设计,而不必为数据管理的许许多多复杂的细节操心。还有,当应用逻辑改变,数据的逻辑结构也需要改变时,由于数据库系统提供了数据与程序之间的独立性,数据逻辑结构的改变是 DBA 的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序,从而既简化了应用程序的编制,又大大减少了应用程序的维护和修改。使用数据库系统可以减轻数据库系统管理人员维护系统的负担。因为 DBMS 在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性、多用户并发控制、故障恢复等,都由 DBMS 执行。总之,使用数据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余,提高数据的利用率和一致性,又有利于应用程序的开发和维护。读者可以在自己今后的工作中结合具体应用,认真加以体会和总结。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值