数据库复习笔记

写在最前,

写文章的初衷只是为了复习与记录自己的成长,笔者本人也还是学生,文章中难免会出现许多问题与错误,文章内容仅供参考,有不足的地方还请大家多多包涵并指正,谢谢~

第一章 数据库基础和数据库设计

1.1 数据库系统

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

信息(Information):是具有一定含义的、经过加工的、对决策有价值的数据。所以说信息是有用的数据,数据是信息的表现形式。 信息具有无限性、共享性、创造性的特点。

信息与数据的关系:数据的形式不能完全表达其内容,需要经过解释。数据的含义又称为数据的语义,也就是数据包含的信息。信息是数据的内涵,数据是信息的符号表示。数据是符号化的信息,信息是语义化的数据

数据库(DataBase,DB):长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,用于满足各种不同的信息需求,并且集中的数据彼此之间有相互的联系。具有较小的冗余度,较高的数据独立性和易扩展性。

数据库管理系统(DBMS)是位于用户和操作系统之间的一层数据管理软件。主要功能包括以下几个方面:

数据定义功能、数据操纵功能、数据库的运行管理、数据库的建立和维护功能。

1.2 数据库系统结构

模式(Schema):是数据库中全体数据的逻辑结构和特征的描述,它仅涉及到型的描述,不涉及到具体的值。模式的一个具体值称为模式的一个实例(Instance)。同一个模式可以有很多实例。模式是相对稳定的,而实例是相对变动的。模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态

数据库系统结构分为三层:内模式、概念模式外模式。 如图:

外部级最接近用户,是单个用户所能看到的数据特性,单个用户使用的数据视图的描述称为“外模式”

模式设计所有用户的数据定义,是全局的数据视图。全局数据视图的描述称为“概念模式”

内模式最接近于物理存储设备,涉及实际数据存储的结构。物理存储数据视图的描述称为“内模式”

概念模式(所有用户的公共视图):

一个数据库只有一个概念模式它以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。概念模式由许多记录类型的值组成。模式根本不涉及物理表示和访问的技术,它只定义信息的内容。这样模式就可真正实现物理数据的独立性。定义模式时,定义数据的逻辑结构,定义数据之间的联系,定义与数据有关安全性、完整性要求。在数据库管理系统(DBMS)中,描述概念模式的数据定义语言称为“模式DDL

外模式(用户可见的视图) :

外模式也称子模式(Subschema)或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示,是用户和数据库系统的接口,是用户用到的那部分数据的描述一个系统一般有多个外模式。外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。用户使用数据操纵语言DDL(data manipulation language)语句对数据库进行操作,

内模式(存储模式):

一个数据库只有一个内模式它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方法。

内模式定义所有的内部记录类型、索引和文件的组织方式、以及数据控制方面的细节。描述内模式的数据定义语言称为内模式DDL。

数据库的三级模式结构是数据的三个抽象级别。三级结构之间一般差别很大,为了实现这三个抽象级别的内部联系和转换,DBMS在三级结构之间提供了两个层次的映象:外模式/概念模式映象概念模式/内模式映象。 这两层映象保证了数据库系统中的数据能够具有较高的逻辑独立性物理独立性

外模式/概念模式(模式)映象

用于定义外模式和概念模式之间的对应性,即外部记录和内部记录间的关系。当模式发生改变时,由数据库管理员对各个外模式/模式的映象作相应改变,可以使外模式保持不变,应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性

模式(概念模式)/内模式映象:

用于定义概念模式和内模式间的对应性,实现两级的数据结构、数据组成等的映象对应关系。

模式/内模式映象定义了数据库全局逻辑结构与存储结构之间的对应关系,当数据库的存储结构改变了,由数据库管理员对模式/内模式映象作相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性

数据库系统用户结构有四种:单用户数据库系统主从式结构数据库系统客户/服务器结构数据库系统分布式结构数据库系统:

单用户数据库系统是一种早期的最简单的数据库系统。在这种系统中,整个数据库系统(包括应用程序、DBMS、数据)都装在一台计算机上,由一个用户独占,不同机器之间不能共享数据。

主从式结构是指一个主机带多个终端的多用户结构。在这种结构中,数据库系统(包括应用程序、DBMS、数据)都集中存放在主机上,所有处理任务都由主机来完成,各个用户通过主机的终端并发地存取数据库,共享数据资源。

网络中某个(些)节点上的计算机专门用于执行DBMS功能,称为数据库服务器,简称服务器;其他节点上的计算机安装DBMS的外围应用开发工具,支持用户的应用,称为客户机,这就是客户/服务器结构的数据库系统。

分布式结构是指数据库中的数据在逻辑上是一个整体,但物理地分布在计算机网络的不同节点上。网络中的每个节点都可以独立处理本地数据库中的数据,执行局部应用;同时也可以同时存取和处理多个异地数据库中的数据,执行全局应用。

1.3 关系数据库及用例

数据模型:

现实世界:

我们要管理客观存在的各种事物、事物之间的相互联系及事物的发生、变化过程。

(1)实体(Entity):现实世界中存在的可以相互区分的事物或概念称为实体。

(2)实体的特征(Entity Characteristic):每个实体都有自己的特征,利用实体的特征可以区别不同的实体。

(3)实体集及实体集间的联系(Relation):具有相同特征或能用同样特征描述的实体的集合。

信息世界:

在信息世界中:实体的特征在头脑中形成的知识称为属性;实体通过其属性表示称为实例;同类实例的集合称为对象,对象即实体集中的实体用属性表示得出的信息集合;实体集之间的联系用对象联系表示。信息世界通过概念模型、过程模型和状态模型反映现实世界,它要求对现实世界中的事物、事物间的联系和事物的变化情况准确、如实、全面地表示。

计算机世界(机器世界):

(1)数据项(Item):对象属性的数据表示。

(2)记录(Record):实例的数据表示。记录有型和值之分:记录的型是结构,由数据项的型构成;记录的值表示对象中的一个实例,它的分量是数据项值。

(3)文件(File):对象的数据表示,同类记录的集合。

(4)数据模型(Data Model):现实世界中的事物和相互联系数据化的结果就是数据模型。

信息的三种世界术语的对应关系表:

模型分为概念模型和数据模型:

概念模型:也称为信息模型,是按用户的观点来对数据和信息建摸。

数据模型:是现实世界的模拟。满足3方面要求:能比较真实的模拟现实世界、容易被人理解、便于在计算机上实现

数据库按照数据模型可以分为:层次数据库、网状数据库、关系数据库面向对象数据库

目前绝大部分数据库都是关系数据库(RDB)。

层次模型:

层次模型的数据结构:

定义:(1)有且仅有一个结点没有双亲结点,这个结点称为根结点。(2)除根结点之外的其他结点有且只有一个双亲结点。

数据表示方法:实体集使用记录表示;记录型包含若干个字段;记录值表示实体;记录之间的联系使用基本层次联系表示。

特点:层次模型像一棵倒立的树,只有一个根结点,有若干个叶结点,结点的双亲是唯一的。

层次模型的完整性约束条件

(1)在进行插入记录值操作时,如果没有指明相应的双亲记录值(首记录值),则不能插入子女记录值(属记录值)。

(2) 进行删除记录操作时,如果删除双亲记录值(首记录值),则相应的子女结点值(属记录值)也同时被删除。

(3) 进行修改记录操作时,应修改所有相应记录,以保证数据的一致性。

网状模型:

网状模型的数据结构:

基本特征:(1) 有一个以上的结点没有双亲。(2) 结点可以有多于一个的双亲。

数据表示方法:

(1)使用记录和记录值表示实体集和实体;每个结点表示一个记录,每个记录包含若干个字段。

(2)联系用结点间的有向线段表示。每个有向线段表示一个记录间的一对多的联系。

网状模型的完整性约束条件:

(1)支持记录码的概念。码即唯一标识记录的数据项的集合。

(2)保证一个联系中双亲记录和子女记录之间是一对多的联系。

(3)可以支持双亲记录和子女记录之间某些约束条件。

关系模型:

关系数据库系统是支持关系模型的数据库系统。关系模型由关系数据结构、关系操作完整性约束三部分组成。关系是一种单一的数据结构 。现实世界的实体以及实体间的联系均用关系来表示。

在实际表示中,关系可以用一个来直观的表示,通常表是以一种矩形数据行/列的形式表示。表中的每一列表示关系的一个属性,每列的名字即为一个属性名;每一行表示一个记录,代表一个物理实体。在关系数据库中,所有的数据都是通过表来存储的。

每个表表示的是现实世界中的数据集合。

候选键:包含独立的标识数据库中每一行值的任意一个列或一组列。

主键:独立的标识存储在表中每个记录或潜在记录的一组列。

一个表中可以具有多个候选键,但只能有一个主键候选键中的属性称为键属性,其他属性称为非键属性主键中的属性称为主属性,其他属性称为非主属性。

判断一组值是否具有候选键的资格有两条严格的规则:

表中任意两个记录在它们的由候选键组成的列的组合中都不具有相同的值,即唯一性规则(uniqueness property)。

作为候选键的列的组合中,没有一个列的子集表现出唯一性,即不可简化性规则(irreducability property)。

注意:键必须满足唯一性和不可简化性规则

在关系数据库中,一个关系就是一张二维表,它由行和列组成。

表中的一行就是一个元组(也称记录)表中的列为一个属性,给每个属性起一个名即为其属性名(也称字段名)。 如下图:

关系数据库设计的步骤:需求分析-->概念结构设计-->逻辑结构设计-->数据库表的优化与规范化-->数据库中表间的关系

概念结构设计是对现实世界的一种抽象,即对实际的人、物、事和概念进行人为处理,抽取人们关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述。为了能够完成上述目标,我们把现实世界中客观存在并可相互区别的事物称为实体。

实体是实体-关系模型的基本对象,是现实世界中各种事物的抽象。一般来说,每个实体都相当于数据库中的一个表。强实体中每个实体都有自己的键,弱实体没有自己的键。弱实体中不同的记录有可能完全相同,难以区别,这些值依赖于另一个实体(强实体)的意义,必须与强实体联合使用。在创建了实体之后,就可以标识各个实体的属性了。
每个实体都有一组特征或性质,称为实体的属性。实体的属性值是数据库中存储的主要数据,一个属性实际上相当于表中的一个列。对于每个实体,都有其确定的主属性(实体中的主属性实际上相当于表中的主键)。 

注意:在数据库设计中,选择和设置列作为主键是一个关键步骤。 

现实世界的事物内部或事物之间都有联系,这些联系在信息世界里反映为实体内部或实体之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系。实体之间的联系通常是指不同实体集之间的联系。实体就是一个(或多个)表。
 

实体集之间存在各种联系(Relationship),主要有三类:一对一联系(1:1)、一对多联系(1:n)、多对多联系(m:n)。 


描述概念模型的有力工具是E-R模型。 E-R图提供了表示实体型、属性和联系的方法:
实体型:用矩形表示,矩形框内写明实体名。
属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。 
联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型。
E-R图中各种成分对应的基本图形符号如下:

举两个例子:

工厂物资管理 E-R图(实体及其属性图):

 Company数据库完整E-R图:

 

规范化理论认为,关系数据中的每一个关系都要满足一定的规范。根据满足规范的条件不同,可以划分为5个等级,分别称为第一范式(1NF)、第二范式(2NF)、第三范式(3NF)第四范式(4NF)和第五范式(5NF)。其中,NF是Normal Form的缩写。通常在解决一般性问题时,只要把数据规范到第三范式标准就可以满足需要。

各范式的条件如下:

第一范式:在一个关系中,消除重复字段,且每个字段都是最小的逻辑存储单位(即:第一范式规定表的每个列的值都是不可再分的简单数据项。所有的表都必须符合第一范式

第二范式:若关系属于第一范式,则关系中每一个非主关键字段都完全依赖于主关键字段,没有部分依赖于主关键字的部分,则称其符合第二范式。这里的主关键字是指表的某个属性组,它可以唯一确定记录其他属性的值。

解决存在字段不完全依赖主关键字段的有效办法是:把信息分为每个独立的主题,保证关系中每个非主关键字都完全依赖于主关键字。

第三范式:若关系模式属于第一范式,且关系中所有非主关键字段都只依赖于主关键字段,则称其符合第三范式。第三范式要求除去传递依赖。(即:第三范式表中的每一个非主键列都不传递地依赖于主键

第四范式:所有表必须符合第三范式,表中的主键列和非主键列禁止有一对多的关系

数据库中表间的联系:只理解每个数据表对于具体问题的解决往往是不够的。要真正理解一个关系数据库的内容,除了理解每个表的内容外,还需要理解各表之间的关系或联系。一个表中的行通常与其他表中的行相关联。不同表中相匹配的值(相同的值)表明相应表之间存在联系。

关系数据库的完整性:关系完整性规则是关系数据库必须满足的完整性约束条件,它提供了一种手段来保证当授权用户对数据库修改时不会破坏数据的一致性。因此,完整性约束防止的是数据的意外破坏,从而降低应用程序的复杂性,提高系统的易用性。

关系数据库的完整性包括:实体完整性约束(PRIMARY)、唯一性约束(UNIQUE)、参照完整性约束(FOREIGN)、检查(CHECK)和默认值(DEFAULT)约束

具体要求如下:

实体完整性约束(PRIMARY):实体完整性规则是主关键字段中的诸属性值不能取空值

唯一性约束(UNIQUE):唯一性约束规则是在约束的字段上不能有相同值出现

参照完整性约束(FOREIGN):参照完整性约束规则要求外关键字的值必须来源于被参照关系表的取值或为空值。

检查(CHECK)和缺省值(DEFAULT)约束:该类完整性约束是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。

写在最后,

因本系列文章主要为复习,故重点关注数据库概念知识与理论知识,若读者需要学习数据库完整知识请另参阅教材及相关线上课程,笔记仅作为参考,若读者发现内容有误请联系QQ:3549546727指正,谢谢!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你代码有bug!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值