数据库理论基础

一、数据库的基本概念:

0.了解数据(data),数据库(DB),数据库管理系统(DBMS),数据库系统(DBS)的概念

1.数据库的发展(三个阶段)

2.DBMS的特点:数据的结构化,数据共享,数据的独立性,可控的冗余度

3.数据模型概念及三要素:数据结构,数据操作,完整性约束

4.概念模型:概念数据模型是面向用户、面向现实世界的数据模型,是与DBMS无关的。

  了解概念:实体,实体类型,实体集,属性,码,域,联系(三种)

  常用表示方法:E-R图

5.数据模型:

   非关系型模型:层次模型(代表IMS)、网状模型(代表DBTG)

   关系型模型: 关系模型(关系数据模型是由若干关系组成的集合)。术语”关系,元组,属性

6.模式结构:模式(schema)是数据库中全体数据的逻辑结构和特征的描述

   三级模式结构:外模式(子模式或用户模式),模式(逻辑模式),内模式(存储模式)  *重要

   区别“型”和“值”的概念

7.从最终用户角度来看,数据库系统分为单用户结构、主从结构、分布式结构和客户/服务器结构。

8.数据库管理系统的功能与组成(数据库定义、操作、运行管理、组织|存储|管理、建立|维护、数据通信接口)

 

二、关系数据库:

0.SQL:SQL结构化查询语言是介于关系代数和关系演算之间的语言,不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是集查询、DDL(数据定义语言),DML(数据操纵语言),DCL(数据控制语言)于一体的关系数据语言,是关系数据库的标准语言。

1.如果关系中的某一个属性组的值能够唯一地标识一个元组,而其子集不行,则称该属性组为侯选码。若一个关系有多个侯选码,则选定其中一个为主码。侯选码的诸属性称为主属性。不包含在任何侯选码中的属性称为非码属性。在最简单的情况下,侯选码只包含一个属性,在最极端的情况下,关系模式的所以属性组是这个关系模式的侯选码,称为全码。

2.关系的完整性:关系模型的完整性是对关系的某种约束条件。

   关系模型中有三类完整性约束:实体完整性,参照完整性,用户自定义完整性

3.集合运算:并,差,交,笛卡尔

4.选择,投影和连接运算

   选择:选择又称为限制,它是在关系R中选择满足给定条件的诸元组,记作:σf(R)={t|t∈R∧F(t)=‘真’},F表示选择条件

   投影:关系R上的投影是从R中选择出若干属性列组成新的关系。记作:∏A(R) = { t[A] | t∈R },其中A为R中的属性列。

   连接:连接也称为θ连接,它是从两个关系的笛卡儿积中选取属性间满足一定条件的元组,记作:,其中A和B分别为R和S上度数相等且可比的属性组

 

三、关系数据库标准语言SQL:

0.SQL(Structured Query Language):结构化查询语言SQL是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制4个方面。目前已成为关系数据库的标准语言。

1.特点:SQL语言功能极强,但由于结构巧妙,语言十分简洁,完成数据定义、数据查询、数据操纵、数据控制的核心功能只用了9个动词:CREATE、DROP、ALTER、SELECT、INSERT、UPDATE、DELETE、GRANT、REVOKE。如图:

sql

2.定义基本表:

  CREATETABLE <表名>

     (<列名>  <数据类型> [列级完整性约束条件]

     [, <列名>  <数据类型> [列级完整性约束条件]…]

     [, <表级完整性约束条件>]);

3.修改基本表:

   对表的修改包括增加新列、增加新的完整性约束条件、修改原有的列定义或删除已有的完整性约束条件等

   ALTER TABLE <表名>

      [ADD <新列名> <数据类型>[完整性约束>]]

      [DROP <完整性约束名>]

      [MODIFY <列名> <数据类型>];

4.删除基本表:

   基本表一旦被删除,表中的数据和索引也将自动被删除。

   DROP TABLE <表名>

5.索引

6.数据库查询:

   数据库的查询的功能,是通过SELECT语句实现的,即通过SELECT语句不仅可以完成简单的单表查询,也可以完成复杂的多表之间的连接查询和嵌套查询,而且还可以完成视图的查询。

   SELECT [ALL | DISTINCT ] <目标列表达式> [,<目标列表达式> ]…

      FROM <表名或视图名> [,<表名或视图名>]…

      [WHERE <条件表达式>]

      [GROUP BY <列名1> [HAVING <条件表达式> ] ]

      [ORDER BY <列名2> [ASD | DESC ] ]

   通过在SELECT字句中指定DISTINCT短语,可以去掉结果表中的重复行。

   GROUP BY字句即将结果按<列名1>进行分组,该属性值即列名1相等的元组为一组,每个组在结果表中产生一条记录

   ORDER BY 即将结果按<列名2>的值进行升序或降序排序。

7.Where子句:

   大小比较:=,>,<,> =,< =,! =,或<>,以及! >,! <

   确定查询范围:BETWEEN…AND… 和 NOT BETWEEN…AND…

   确定查询集合:谓词IN,IN 操作符允许我们在 WHERE 子句中规定多个值

   字符匹配:谓词LIKE

   空值的查询:IS NULL或IS NOT NULL

   多重条件查询(*):用逻辑运算符AND和OR将几个查询条件联结起来

8.集函数:

   COUNT(),SUM(), AVG(), MAX(), MIN()  

9.Where与Having子句区别:

   WHERE字句与HAVING短语的根本区别在于作用对象不同。WHERE字句作用于基本表或者视图,从中选择满足条件的元组。HAVING短语用于于组,从中选择满足条件的组。

10.插入数据:

   SQL的数据插入语句INSERT通常有两种形式,一种是插入一个元组,另一个是插入子查询结果,后者可以一次插入多个元组。

   插入单个元组:

   INSERT

       INTO <表名> [ (<属性列1> [, <属性列2>. . .] )

       VALUE (<常量1> [, <常量2>. . .] )

   插入子查询结果: 

   INSERT

        INTO <表名> [ (<属性列1> [, <属性列2>. . .] )

        子查询;

    注意:这里插入的常量个数要和表名里的列数一样,否则插入几列,就要具体说明属性列。

11.修改数据:

   修改操作又称为更新操作

   UPDATE <表名>

        SET <列名> = <表达式> [, <列名> = <表达式>] . . .

        [WHERE <条件>];

12.删除数据:

   DELETE

        FROM <表名>

        [ WHERE <表名>];

13.视图(View):

     视图是从一个或几个基本表(或视图)导出的表,它与基本表不同,是一个虚表。

     数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。基本表中的数据发生变化,从视图中查询出的数据也随之发生变化。从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化。

14.授权操作:

   GRANT<权限>[,<权限]…

        [ON对象类型><对象名>]

        TO<用户>[,<用户>]…

        [WITH GRANT OPTION];

15.收回权限:

     REVOKE <权限>[,<权限>]…

        [ON<对象类型><对象名>]

        FROM<用户>[,用户>]…

16.不同对象类型允许的权限操作:

sql2

ALL PRIVILEGES是指几种权限的总和,例如在属性列和视图的操作权限中:ALL PRIVILEGES是查询、插入、修改、删除四种权限的总和。


By Tanky Woo

仅作复习时快速回顾,具体看萨师煊老师的《数据库系统概论》。

发布者

Tanky Woo

Tanky Woo,[个人主页:https://tankywoo.com] / [新博客:https://blog.tankywoo.com]

《数据库理论基础》有4个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注