MySQL的一些理论介绍

数据库系统原理

一、数据库系统概述

1、通常将描述事物的符号记录称为数据。

2、从数据中获得的有意义的内容称为信息。

3、数据是反映客观事物属性的记录,是信息的具体表现形式。

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

5、数据库数据具有永久存储、有组织和可共享三个特点。

6、数据处理是将数据转换为信息的过程。

7、数据管理是指对各种数据进行分类、组织、编码、存储、检索和维护。

8、数据库管理系统是一个管理、控制数据库中各种数据库对象的系统软件,主要功能有:数据库的建立和维护,数据定义功能,数据组织、存储和管理,数据操作功能,数据库事物管理和运行管理,其他功能。

9、常见的关系型数据库管理系统:oracle、DB2、Sybase、MySQL 、SQL Server、PostgreSQL 、Access、visual foxpro 。

10、数据库系统特点:数据结构化,数据共享性高、冗余度低、易扩充,数据独立性高,数据由DBMS统一管理和控制。

二、信息与数据模型

1、信息的三种世界是指现实世界、信息世界和计算世界。

2、信息的现实世界通过实体、实体的特征、实体集及实体集之间的联系进行划分和认识。

3、信息世界通过概念模型、过程模型和状态模型反映现实世界。

4、概念模型通过E-R图中的对象、属性和联系对现实世界的事物及关系给出静态描述。

5、数据模型主要用来抽象、表示和处理现实世界中的数据和信息。

6、数据处理的三层抽象描述:概念层、逻辑层、物理层。

7、数据模型要素:数据结构、数据操作、数据的完整性约束条件。

8、概念模型->概念模型转逻辑关系模型

三、关系模型与关系规范化理论

1、关系模型概述

关系模型:

定义

用二维表结构来表示实体以及实体之间联系的数据模型

有关概念

关系(Relation) :对应通常所说的二维表;

元组(Tuple) :表中的一行即为一个元组;

属性(Attribute) :表中的一列即为一个属性;

候选码(Candidatekey) :关系中的一个属性或属性组,其值能唯一标识一个元组。若 从属性组中去掉任何一个属性,它就不具有这一性质了,这样的 属性组称作候选码。

主码(Primary -key):进行数据库设计时,从一个关系的多个候选码中选定一个作为主码。

全码(ALL-key):关系中所有属性是这个关系的候选码,称为全码

主属性(Prime Attribute) :任何一个候选码中的属性称。

非主属性(Nonprimary Attribute):不含任何候选码的属性

域(Domain) :属性的取值范围;

分量(Component) :元组中的一个属性值;

关系模式(Relational Modle) :对关系的描述,表示为:关系名(属性1,属性2,…)

2、关系数据结构

在关系模型中,现实世界的实体以及实体之间的各种 联系均用关系来表示,即用二维表来表示。

有关概念:

1、域:是一组具有相同数据类型的值的集合。在关系中用域来表示属性的取值范围。域中所包含的值的个数称域的基数(用m表示)

2、笛卡尔积:给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1, D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}

(1)所有域的所有取值的一个组合

(2)不能重复

(3)笛卡尔积的基数是所有域的基数的累乘乘积

例子:
D1 ={  张清玫,刘逸 } ,D2={计算机专业,信息专业}  
D1×D2={(张清玫,计算机专业),( 张清玫,信息专业),(刘逸,计算机专业),(刘逸,信息专业)}

3、元组:笛卡尔积中每一个元素( d1, d2,…,dn )叫作一个 n 元组 (n-tuple)或简称元组。

4、分量:笛卡尔积元素( d 1, d 2,…, d n )中的每一个值 di 叫作一 个分量

5、基数:若 Di (i=1,2,…, n )为有限集,其基数为 mi ( i =1, 2,…, n ),则 D1× D 2×…× D n 的基数(即元组( d 1, d 2,…, d n ) 的个数 M 为
M = m 1 × m 2 × . . . M=m1×m2×... M=m1×m2×...

关系

关系定义 :

D 1× D 2×…× D n 的子集叫作在域 D1, D2,…, Dn 上的 关系,表示为:

R(D1,D2,…, Dn) 其中:R :关系名 n:关系的目或度

1.关系是笛卡尔积的有限子集。

2.笛卡尔积不满足交换律,但关系满足交换律

3.关系是的笛卡尔积中取出有实际意义的元组的集合

有关概念

1、属性:关系中不同列可以对应相同的域 ,为了加以区分,必须对每列起一个名字,称为属性,n 目关系必有 n 个属性

关系的基本性质

1、列是同质的

2、不同的列可出自同一个域

3、列的顺序无所谓

4、任意两个元组不能完全相同

5、行的顺序无所谓

6、分量必须取原子值,每一个分量都必须是不可分的数据项。

关系模式

关系模式:一个关系的属性名的集合R(A1,A2,……An)叫关系模式。关系模式是型,关系是值。

关系模式可以形式化地表示为: R ( U, D ,dom, F)

R :关系名,U:组成该关系的属性名集合 ,D:属性组 U 中属性所来自的域 ,dom:属性向域的映象集合, F:属性间的数据依赖关系集合

3、关系操作

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

查询操作:

选择、投影、连接、除、并、差、交、笛卡儿积

更新操作:

插入、删除、修改

4、关系的完整性

实体完整性规则:若属性 A 是基本关系 R 的主属性,则属性 A 不能取空值。

参照完整性:设 F 是基本关系 R 的一个或一组属性,但不是关系 R 主码。如果F与基本关系 S 的主码Ks相对应,则称F是基本关系R的外 码。

用户定义的完整性:针对某一具体关数据库的约束条件的, 它反映某一具体应用所涉及的数据 必须满足的语义要求。

5、关系代数

概述

1.关系代数:是一种抽象的查询语言。用对关系的运算来表达查询。
2.关系代数运算的三个要素
运算对象:关系
运算结果:关系
运算符:四类(集合运算符、专门的关系运算符、算术比较
符、逻辑运算符)

Ø集合运算符 :∪(并运算)、-(差运算)、∩(交运算)、×(广义笛卡儿积)

• 将关系看成元组的集合

• 运算是从关系的“水平”方向即行的角度来进行

Ø 专门的关系运算符: σ(选择),π(投影),(连接),÷(除)

• 不仅涉及行而且涉及列

Ø 算术比较符: >(大于)、≥(大于等于)、<(小于)、≤(小于等于)、=(等于)、<>(不等于)

• 辅助专门的关系运算符进行操作

Ø 逻辑运算符:(非),∧(与),∨(或) • 辅助专门的关系运算符进行操作

常用表示记号:

(1) R,tR∈,t[Ai]

设关系模式为R(A1,A2,…,An)它的一个关系设 R。

t∈R: 表示t是R的一个元组

t[Ai]: 表示元组t中相应于属性Ai的一个分量

(2) A,t[A],

若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1, A2,…,An中的一部分,则A称为属性列或属性组。

t[A]=(t[Ai1],t[Ai2],…,t[Aik]):元组t在属性列A上诸 分量的集合。

(A一把)表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的 属性组。

(3)象集 Z x :

给定一个关系 R( X,Z ), X 和 Z 为属性组。
当 t [ X ]= x 时, x 在 R 中的象集定义为:Z x={ t [ Z ]| t∈R,t [ X ]= x }

它表示: R 中属性组 X 上值为 x 的诸元组在 Z 上分量的集合

例子:

X Z
姓名 课程
张军 物理
王红 数学
张军 数学

t[X]=x=张军

Zx
课程
物理
数学

运算:

1、并

R 与 S 所有 的元组的合并,并删除重复的元组,R ∪ S = { t | t∈R ∨ t ∈S }

应用:记录的插入和添加可以通过并运算来实现

2、差

由∈ R 而不∈ S 的所有元组组成,R-S = { t | t ∈ R ∧ t不∈S }

应用:可以实现关系数据库中记录的删除

3、交

由既∈ R 又∈ S 的元组组成R ∩ S = { t | t ∈ R ∧ t ∈S } = R –( R -S )= S –( S -R)

4、广义笛卡儿积。应用:用于两个关系的连接操作

5、选择。

σSdept = ‘IS’ (Student)或者σ5 =‘IS’ (Student) #查询信息系全体学生

σSage < 20(Student) 或者σ4 < 20(Student) #查询年龄小于20岁的学生

6、投影。(会去重)

R 中选择出若干属性列组成新的关系

π A ( R ) = { t [ A ] | t  R } A:是R中的属性列

7、连接。

等值连接、自然连接(在等值连接的条件下,把重复的属性列去掉)、非等值连接(先做笛卡儿积,在筛选)

8、除。

给定关系 R ( X,Y ) 和 S ( Y,Z ),其中 X,Y,Z 为属性组。

R ÷ S = { t r [ X ] | t r∈ R ∧πY ( S )被Y x包含 }

Y x : x 在 R 中的象集, x = t r[ X ]

解题步骤:

定义X,Y,Z–>计算X的象集Zx–>计算S在Y上的投影–>计算结果(若Zx包含S在Y上的投影,则该Zx对应的原象即为结果)

6、规范化的基本概念

为什么要使用关系规范化?

如果不规范化,关系模式会存在数据冗余大,插入异常,修改异常,删除异常的问题。

通过模式分解解决问题:模式分解必须遵守:  无损连接分解;  保持函数依赖分解

7、函数依赖的公理系统

1、函数依赖(FD)的严格形式化定义:

定义:设有关系模式R(A1,A2,…,An),X和Y均为 {A1,A2,…,An}的子集,r是R的任一具体关系,t1、t2是 r中的任意两个元组;如果有t1[X]=t2[X]可以推导出 t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记 为X→Y
2、如果X→Y,但Y不包含于X,则称X→Y是 非平凡函数依赖,反之称为平凡函数依赖

3、如果X→Y,则X称作决定因素。

4、如果X→Y,并且Y→X,则可记作X←→Y。

5、(学号,课程号)→成绩是完全函数依赖
而:(学号,所在系)→系主任是部分函数依赖

Armstrong公理

设有关系模式R(U,F),X、Y、Z均为U的子 集,推理规则如下:

①自反律:如果YX,则X→Y;

②增广律:如果X→Y,则XZ→YZ;
③传递律:如果X→Y、Y→Z,则X→Z

推论:

①合并规则:如果X→Y、X→Z,则X→YZ;
②分解规则:如果X→YZ,则X→Y、X→Z;
③伪传递规则:如果X→Y、YW→Z,则XW→Z

逻辑蕴含:

有时需要根据给定的一组函数依赖来判断另 外一些函数依赖是否成立,这就是函数依赖逻辑 蕴涵所要研究的内容。

定义:设有关系模式R(U,F),X、Y 在 U内, 如果从F中的函数依赖能够推导出X→Y,则称F逻辑 蕴涵X→Y,或称X→Y是F的逻辑蕴涵。

闭包

定义:在关系模式R(U,F)中,被F 所逻辑蕴涵的函数依赖的全体称作 F的闭包,记为 F +

属性集闭包XF+算法

设有关系模式R(U,F),U={A,B,C},F={A→B,B→C}

如果X={A},

result=A,因为A→B,所以result=AB

result=AB,因为B→C,即AB→C,所以,result=ABC

则: XF+={A,B,C}

计算最小函数依赖集

例:已知R(U,F),U={A,B,C,D,E,G},F={ AB→C,D→EG,C→A,BE→C,BC→D,CG→BD,ACD→B,CE→AG },将F化为最小函数依赖
解: (1)利用分解规则:将所有F的右边变成单个属性的函数依赖: 
F={ AB→C,D→E, D→G,C →A,BE →C,BC →D,CG →B,CG→D,ACD →B, CE →A , CE →G }  
(2)去掉F中多余的函数依赖:具体做法如下: 
①设 AB→C为多余的函数依赖,则去掉F中的AB→C得: 
F1={ D→E, D→G,C →A,BE →C,BC →D,  CG →B, CG→D,ACD →B, CE →A , CE →G }
计算(AB) F1+ =AB,又因为C不在(AB) F1+内 ,所以AB→C 是 非冗余的函数依赖,不能去掉
② 同理,去掉多余的函数依赖
(3)去掉F3左边多余属性: 
对于ACD →B,因为,CD →B,所以可以推导出 ACD →B,故A是多余的,去掉A得CD →B,故函数依赖 集的最小集为:Fmin={ AB→C,   D→E, D→G,C →A,BE →C,BC→D,  CG→D, CD →B,CE →G } 

8、规范化理论

1、满足最低要求的关系∈第一范式,简称1NF(First Normal Form),在第一范式中进一步满足一些要求的关系∈第二范式,称2NF,依次类推,还有3NF、BCNF、4NF、5NF。

2、范式越高,规范化程度越好,关系模式就越好。

1NF

每个关系模式都应满足最低要求:所有分量都必须是不可分的最小数据项,并把其称为第一范式(1NF)关系。 第一范式的目标是确保每列的原子性

2NF

定义: 如果R(U,F) ∈ 1NF,并且R中 的每个非主属性都完全函数依赖于主码, 则R(U,F) ∈2NF。
①若1NF的关系主码只含一列,那么这个关系就是2NF ②若1NF的关系主码有多个列组成,并且存在非主属性 对主属性的部分函数依赖,则该关系就不是2NF关系

3NF

定义:如果 R ( U , F ) ∈ 2NF,并且所有非主属性都不传递依赖于主码,则R(U,F) ∈ 3NF。
注意:第三范式的目标:确保每列都和主键列直接相关, 而不是间接相关

9、模式分解

1NF–>2NF:

去掉部分函数依赖。

步骤:将主码的每一个子集作为主码构成一张表 -->对于将依赖于每个 子表主码的属性放置到此子表中,对于没有依赖子表主码的属性,将子表删除.

2NF–>3NF

去掉传递依赖

步骤:对于不是候选码的每个决定因子,从表中删去依赖它的所有属性。–>新建一个表,新表中包含原表中所有 依赖该决定因子的属性,并将决定因子作为新表的主码。

S(Sno,Sdept,Sloc)分解后的关系模式为:S(Sno, Sdept) 、XI(Sdept,Sloc)

四、数据库设计方法步骤

需求分析阶段->概念结构设计阶段->逻辑结构设计阶段->数据库物理设计阶段->数据库实施阶段->数据库运行与维护阶段

1、需求分析步骤

收集资料->分析整理->数据流图->数据字典->用户需求

数据流图

符号说明

数据流:用带名字的箭头表示,名字表示流经的数据,箭头表示流向。

加工:对数据进行操作和处理,用圆表示

文件:是数据暂时存储或永久保存的地方,用=表示

外部实体:

数据字典

数据字典包括数据项、数据结构、数据流、数据存储、处理过程五个部分。

2、概念结构设计

方法

自顶向下、自底向上、逐步扩张、混合策略

步骤

数据抽象->集成各局部E-R模型,形成全局E-R模型->消除E-R模型中的属性、命名和结构冲突

3、逻辑结构设计

将E-R模型转换为特定DBMS所支持的数据模型

你可能感兴趣的:(Python开发,mysql)