数据库基本概念

数据(Data):描述事务的符号记录,是数据库中存储的基本对象。

数据库(DB)长期存储在计算机内、有组织、可共享的大量数据集合。

数据库系统(DBS):采用数据库技术,动态存储大量数据,方便用户访问的系统。由数据库、硬件、软件、人员组成。

数据库管理系统(DBMS):实现对共享数据的有效组织、管理存取。功能包括数据定义(DDL)、数据操纵(DML)、数据库运行管理、数据组织、存储和管理、数据库建立和维护、网络通信等。

DBMS的分类:关系数据库系统(RDRS)(mysql)、面向对象数据库系统、对象关系数据库系统

数据库的三级模式

内模式也称存储模式,是数据物理结构和存储方式的描述,对应数据库中物理存储文件(.frm数据库中表的定义 .MYD数据库中数据文件)。一个数据库只有一个内模式。

概念模式(模式)数据库中全部数据的逻辑结构和特征的描述。对应数据库中的基本表。一个数据库中只有一个概念模式

外模式(用户模式,子模式)用户与数据库系统的接口,对应数据库中的视图。一个数据库有多个外模式。

两级映像

模式/内模式映像:概念模式和内模式之间的相互转换,表与数据的物理存储之间的映射,保证了数据的物理独立性。(当数据物理存储改变时,只改变模式/内模式映像,不改变应用程序)

外模式/模式映像:外模式和概念模式之间的相互转换,视图与表之间的映射,保证了数据的逻辑独立性。(当数据逻辑结构改变时,应用程序不需要改变)

数据库设计的基本步骤

1、用户需求分析:数据流图、数据字典、需求说明书。获得信息要求、处理要求、系统要求

2、概念结构设计:设计E-R图。局部设计E-R图,合并E-R图合并时会产生冲突:

  • 属性冲突:同一数据在不同E-R图中
  • 命名冲突:相同意义的数据在不同E-R图中名称不同
  • 结构冲突:同一实体在不同E-R图中有不同的属性,有的变成属性,有的变成实体

3、逻辑结构设计:将E-R图转换为关系模式。确定数据模型、确定完整性约束、确定用户视图

4、物理结构设计:确定数据分布、存储结构和访问方式

5、数据库的实施阶段:建立数据库。编制与调试应用程序,组织数据入库,并进行试运行

6、数据库的运行和维护:不断对系统评价、调整、修改

数据模型

数据模型:对现实世界的抽象。概念数据模型、基本数据模型

概念数据模型:也称信息模型,是按用户的观点对数据和信息建模,是用户和数据库设计人员交流的语言,主要用于数据库设计。这类模型中最著名的是实体-联系模型,简称E-R模型

基本数据模型:它是按计算机系统的观点对数据建模,是现实世界数据特征的抽象,用于DBMS的实现。

数据模型三要素:
数据结构:所研究对象类型的集合
数据操作:对数据库中各种对象的实例允许执行的操作集合
数据的约束条件:一组完整性规则的集合

E-R模型

实体-联系模型,描述现实世界的概念模型:实体、联系、属性

实体

用矩形表示,每个实体由一组属性表示,包括候选键(能唯一地标识一行元组的属性集)、主键(从候选键中选一个作为主键)、外键(在另一个关系模式中充当主键的属性)

联系

用菱形表示,实体集之间的对应关系。有一对一(1:1)一对多(1:n)多对多(n:m)

1:1:一个学校只有一名校长,而每位校长只在一个学校工作
1:n或1:*:一个学校有许多学生,而每个学生只在一个学校上课
m:n或*:*:一名老师可以上多门课程,而一门课程也可以有多名老师讲授

多对多的联系会产生一个新的关系模式,此关系模式的属性由联系的两个实体的主键以及自己的特有属性所组成。

属性

用椭圆表示,

  • 简单和复合属性:简单属性原子的,不可再分如性别,复合属性可再划分,如地址(省市县)
  • 单值和多值属性:单值:一个学生只有一个学号 多值:一个学生有多个监护人(父、母、爷、奶)
  • NULL属性:某个属性没有值或未知,用null值
  • 派生属性:可以从其他属性获得或计算得到

弱实体集:一个实体的存在必须有另一个实体存在为前提。

主键使用下划线  ,外键使用删除线

例题:

E-R模型向关系模型转换时,两个实体E1和E2之间的多对多联系R应该转换为一个独立的关系模式,且该关系模式的关键字    C   组成。
A.联系R的属性
B.E1 或E2的关键字
C.E1和E2的关键字
D.E1和E2的关键字加上R的属性

多对多的联系会产生一个新的关系模式,此关系模式的属性由联系的两个实体的主键以及
自己的特有属性所组成。此题中考的是关键字。

关系代数

关系数据库的基本概念

属性和域

一个现实中的实体(事物)常用若干特征来描述,这些特征称为属性。每个属性的取值范围对应
的集合称为该属性的。(例如,性别属性的域为男/女)

笛卡尔积与关系

若D1={0,1},D2={a,b},D3={c,d},求D1* D2* D3

解:D1* D2*D3={(0,a,c),(0,a,d),(0,b,c),(0,b,d),(1,a,c),(1,a,d),(1,b,c),(1,b,d)}

关系的相关名词

候选码(CandidateKey):若关系中的某一属性或属性组的值能唯一地标识一个元组,则称该属性或属性组为候选码。

主码(Primary Key):若一个关系有多个候选码,则选定其中一个为主码。

主属性(Non-Key attribute):包含在任何候选码中的诸属性称为主属性。不包含在任何候选码中的属性称为非码属性。

外码(ForeignKey):如果关系模式R中的属性或属性组不是该关系的主码,但它是其他关系的主码,那么该属性或属性组是关系模式R的外码。

员工(员工号,姓名,性别,参加工作时间,部门号),部门(部门号,名称,电话,负责人)

关系的三种类型

(1)基本关系。通常又称为基本表,它是实际存在的表,是实际存储数据的逻辑表示。
(2)查询表。查询表是查询结果对应的表。
(3)视图表。视图表是由基本表或其他视图表导出的表。由于它本身不独立存储在数据库中,数据库中只存放它的定义,所以常称为虚表。view

E-R图转换为关系模式:

首先,每个实体都要转换为一个关系模式,然后对于联系:
(1)一对一,两端实体中的任意一个实体的主键加入到另一个实体中作为外键
(2)一对多,一端实体的主键加入到多端实体中作为外键;
(3)多对多,多对多的联系会产生一个新的关系模式,此关系模式的属性由联系的两个实体的主键以及自己的特有属性所组成

完整性约束

完整性规则提供了一种手段来保证当用户对数据库做修改时不会破坏数据的一致性。防止对数据的意外破坏。关系模型的完整性规则是对关系的某种约束条件。关系的完整性分为三类:
实体完整性:关系的主属性不能取空。
参照完整性:外键的值或者为空,或者必须等于对应关系中的主键值
用户定义完整性:根据语义要求所自定义的约束条件

关系运算

关系操作的特点是操作对象和操作结果都是集合。

关系代数运算符有4类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符。

两个关系的属性和属性个数相同,并的结果为R或S的元组构成    

两个关系的属性和属性个数相同,差值属于R但不属于S

广义笛卡尔积

如果关系模式R中有n个属性,关系模式S中有m个属性,则广义笛卡尔积的结果中有(n+m)属性,其中前n个属性来自R,后m个属性来自S。如果R中有K,个元组,S中有K,个元组,则运算结果有K1*K2个元组。

投影

从关系的垂直方向进行运算。在关系R中挑选若干属性列A组成新的关系。

选择

从关系的水平方向进行运算,从关系R中选择满足条件的元组。

其中,F中运算对象是属性名(或列的序号)或者常量(用单引号括起来,如’1表示数字1)、算术运算符(< 、≤、>、≥、 ≠)、逻辑运算符(∧、∨、¬)。

例题

设有关系R、S如下图所示,求R\cup S、R-S、R*S、

RUS:

A B C
a b c
b a d
c d e
d f g
f h k

R-S:

A B C
a b c
c d

e

R*S:

R.A R.B R.C S.A S.B S.C
a b c b a d
a b c d f g
a b c f h k
b a d b a d
b a d d f g
b a d f h k
c d e b a d
c d e d f g
c d e f h k
d f g b a d
d f g d f g
d f g f h k

:

A C
a c
b d
c e
d g

关系R与S相同的集合

连接

连接分为\theta连接、等值连接和自然连接3种。连接运算是从两个关系R和S的笛卡尔积中选取满足条件的元组。

\theta连接:从关系R与S的笛卡尔积中选取属性间满足一定条件的元组

例:设有关系S、R如下图,求

解:先笛卡尔积,然后选择相应的条件

等值连接:\theta为“=”时,成为等值连接

自然连接:是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,相同属性组的值要相等,并且在结果集中将重复属性列去掉

例:如下图关系R、S,求

解:

A B C D
a b c d
b a d g

例:R、S关系如下,求R\div S

解:

广义投影

允许在投影列表中使用算术运算,是对投影运算的补充

外连接

在自然连接中关系R与S的一些元组因为没有公共属性会被抛弃。使用外连接就可以避免这样的丢失。外连接运算就是将自然连接时舍弃的元组也放入新关系,并在新增加的属性上填入空值。

左外连接:,保留左侧R中全部元组,右边没有值的用null代替

右外连接:,保留右侧S中全部元组,左边没有值的用null代替

全外连接:,左外连接和右外连接的并

关系数据库SQL语言

SQL语言支持关系数据库的三级模式。基本表和视图都是表,基本表是存储在数据库中的表,而数据库中只存放视图的定义,不存放视图的数据。视图是虚表,是从基本表或其他视图导出的表。用户可用SOL语言对视图或表进行查询等操作。

索引建立与删除
数据库中索引的作用:①通过创建唯一性索引,保证数据记录的唯一性;②大大加快数据的检索速度;③加速表与表之间的连接;④在使用Order By和Group By子句中进行检索数据时,可以显著减少查询中分组和排序的时间;⑤使用索引可以在检索数据的过程中使用优化隐藏器,提高系统性能

索引分为聚簇索引和非聚簇索引。聚簇索引是指索引表中索引项的顺序与表中记录的物理顺序一致的索引。

采用三级模式结构的数据库系统中,如果对一个表创建聚簇索引,那么改变的是数据库的内模式。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐