关系数据库、数据库的设计(数据库学习)

当时SQL server数据库准备考试了,我花了两个星期把整本书看了,这些是当时做的笔记(针对老师划得重点),现在学习Java做了几个项目后,发现有很多东西不是特别理解,特地再次复习一下,并且自己再思考思考,有兴趣可以看GitHub文章

1.关系的基本概念和性质。

关系就是一张特定的()二维表。

-|关系的数学定义:(同类型值集合)、由笛卡儿积(任意域各自相乘)推出关系的定义

-|性质:同一个关系中,同列同数据类型、不同列属性名不同不可再分、元组不同、列和行次序无关紧要。

-|实体及实体间的联系用关系来表示(冗余属性,主码外码的关系)。

2.关系的完整性有哪三类?

数据完整性是指关系模型中数据正确性和一致性。

三类完整性约束

-|实体完整性:关系的主码属性值不为空。

-|参照完整性:F是关系R的外码,F是关系S的主码,称R为参照关系,S被参照关系。定义了外码与主码之间引用规则,保证数据一

致性。

-|用户自定义完整性:用户根据实际情况对数据进行的规定,也称域完整性规定。(有效性、可靠性)

3.专门的关系运算

关系代数是以关系为运算对象的一组高级运算的集合,是一种抽象的查询语言,是关系数据操作语言的一种传统表达方式。

(运算对象是关系,运算结果也是关系)

关系代数分两类:
-|传统的集合操作:交(R∩S={t | t∈R∧t∈S})、并(R∪S={t|t∈R∨t∈S})、差(R-S={t | t∈R∧t S} )、笛卡儿积(R×S)。

-|专门的关系操作:

选择(σF(R)={t | t∈R^ F(t)='真'},F为属性名,右边为返回的值)

投影(πA(R)={t[A]|t∈R},A为属性名,右边为返回的值)

连接( ,从两个关系的笛卡儿积中选择规定条件的元组),也称θ连接

-|等值连接:θ为“

-|自然连接:去掉重复属性的等值连接。

(补充个人思考,要利用另外一张二维表(关系)就需要使用自然连接,也就是说学习数据操作时,就可以先写传统的表达方式再写SQL)

除法......。

-两类辅助运算符(传统和专门都可用):

-|比较运算符:>、 ≥、 <、 ≤、 =、 ≠

-|逻辑运算符:∨(或)、 ∧(与)、 ┐(非)

4.关系规范化的目的以及第一、二、三范式的定义

关系模式中各个属性之间的相互关联,就是数据依赖。

-|函数依赖:X、Y是关系R的属性,每个X只有一个Y,(X→Y)称Y函数依赖X。

例:(主码→其他属性;学号→姓名 ; 学号→性别 ;学号→出生日期)

-|非平凡函数依赖:X→YY ! X(学号、课程号→成绩)

-|平凡函数依赖:X→YY X(学号、课程号→课程号)

-|完全函数依赖:Z为X的真子集X→YZ !→Y学号、课程号 →成绩)

-|部分函数依赖:Z为X的真子集X→YZ →Y(学号、课程号 →姓名)

-|传递函数依赖:Z为关系R属性,X→YY→Z(学号→系主任)(所在系号→系主任)

-|多值依赖:4NF

-|连接依赖:5NF

由于在关系模式中的某些不合适的数据依赖引起(数据冗余、更新异常、插入异常、删除异常)。

关系模式规范化的目的:是解决关系模式中存在的异常问题,消除数据依赖中不合适部分。

规范化:一个低一级关系模式,通过模式分解转换成若干个高一级范式的关系模式的集合。

范式(不同的规范化程度的标准) R为一个关系模式

-|第一范式:R的每个属性的值域都是不可分的简单数据项的集合。

-|第二范式:R的每个非主属性都完全函数依赖于(主或者候选)码。(前提:R∈1NF

-|第三范式:R的每个非主属性不存在传递函数依赖于(主或者候选)码。(前提:R∈2NF

-|B C 范式:R中每个主属性不存在部分函数依赖和传递函数依赖。(前提:R∈3NF

5.数据库设计的6个阶段是什么?

按照规范设计方法,数据库设计分为六各阶段

-|需求分析:分析用户(对象)的要求

-|概念结构设计:将需求分析得到的数据抽象为反映用户观点的概念模型(事物联系)。

-|逻辑结构设计:将概念设计阶段的到的概念模式转换为具体DBMS所支持的,并建立相应外模式。

-|数据库物理设计:将逻辑设计阶段成型的数据库逻辑模型结合制定的DBMS,设计适合的物理结构。

-|数据库实施:根据逻辑和物理设计的结果,在计算机上建立起实际的数据库结构,并转入数据,进行试运行和评价。

-|数据库运行和维护:数据库实施阶段试运行结果符合设计目标后。

6.逻辑结构设计中怎么将E-R转换为关系数据模型。

将实体、属性和实体之间的联系转化为关系模式:

-|实体的转化:将实体转换为一个关系模式。

-|联系的转化:1:1的联系、1:n的联系(选择性建)、m:n的联系(需建立新关系)