关系型数据库与数据库管理系统

ぃ、小莉子 提交于 2019-12-07 22:39:35

        主要是想记录下自己的读书笔记,忘大家理解。数据库是应对信息资源(及大量数据)的管理需求而产生的。数据库管理技术先后经历了三个阶段:人工管理、文件系统、数据库系统。在数据库模型主要有层次模型、网状模型和关系型,使用普及的是关系型----关系型数据库的理论基础。

        关系型数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和处理方法来处理数据库中的数据,现实世界中的各种实体之间的各种联系都可以使用关系型数据库。

        关系模型以二维表来描述数据。在关系模型中,每个表都有多个字段列和记录行,每个字段列有固定的类型属性(如数字、字符等类型)。关系型数据结构简单,清晰,具有很高的数据独立性。

        在关系型数据库中,关系可以看到由行和列交叉的二维表,表中一行可以称为一个元祖,可以用来标识实体集合中的一个实体。表的列称为属性,每一列都有一个属性名,表中的属性名不能相同。列的取值范围称为域,同列都有相同的域(取值范围)。不同的列也可以有相同的域。表中任意两行(元组)不能相同。唯一标识表中不同行属性和属性组称为主键和复合主键。

       关系型数据库与传统的二维表数据文件具有类似之处,但是他们也有区别,严格的说,关系是一种规范化的二维表,它的性质如下:

1.属性值具有原子性,不可分解。

2.没有重复的元组及没有重复的行。

3.理论上没有行序,但有时使用可以有行序。

       关系型数据库中,关键码(键)的关系型的一个非常重要的一个概念,它通常是行(元组)的一个或几个列(属性)。如果键是由一个列组成,则可以称为唯一键;若多个列(属性)组成的则可以称为复合键,键的主要类型如下:

           1.超键:在一个关系中,能唯一标识元组的属性或属性集称为关系的超键;

           2.候选键:如果一个属性集能唯一标识元组,且又不含有多余的属性,那么这个属性集称为关系型候选键;

           3.主键:如果一个关系中有多个候选键,则选择其中的一个键作为关系的主键。用主键可以实现关系定义中“表中任意两行(元组)不能相同”的约束。

            这里我们举例说明,如学生表里的学号,我们把它设为主键则这个学号只能是唯一的,不能添加相同的学号进行存储。

           4外键:如果一个关系R中包含另一个关系A的主键所对应的属性组T,则称为属性组T为关系R的外键,并称关系A为参照关系,关系R是依赖关系。为表示关联,可以将一个    关系的主键作为属性放在另一个关系中,第二个关系中的那些属性就称为外键。

这里我们以商品销售为例。在填写销售单的时候我们把商品的ID设为外键,则查询的时候直接查询商品ID就可以把商品的信息直接带出。

ER模型

在设计数据库的时候,首先需要建立逻辑模型。关系型数据库的逻辑模型可以通过实体和关系组成的图形来标示,这种图我们称它为E-R图,它可以使现实世界中的实体和实体之间的联系转换为逻辑模型。

1、实体和属性:实体是一个数据对象,是指客观存在并可以相互区分的事务。如一个学生、一个员工等。每一个实体由一组属性来表示。如学生他有学号,姓名等属性,其中序号我们可以唯一标识学生这个实体。具有相同属性的实体组合在一起就后就构成了实体集,而实体则是实体集中的某一个特例,例如,王同学这个实体就是学生实体中的一个特例。

在E-R模型中,实体用矩形标示,矩形内 注明实体的命名。实体名常用大学字幕开头的具有意义的英文名来表示,联系名和属性名也可以采用这种方式。如图:


2、联系

在实际应用中,实体之间是存在联系的,这种联系必须在逻辑模型中表现出来。在E-R模型中,联系用菱形表示,菱形框内写明“联系名”,并用“连接线”

将有关实体连接起来,同时在“连接线”的旁边标注联系的类型,两个实体之间的联系可以分为三类:

1.一对一:实体集A中的每一个实体,在实体B中最多有一个实体之间的关联;反之亦然,则称实体集A与实体B具有一对一的联系,可以标记联系为1:1

2.一对多:若对于实体集A中的每一个实体,在实体集B中有多个实体之间的相关;反之对于实体B中的每一个实体,实体集A中最多有一个实体与之相关,则称实体集A与实体集B具有一对多的联系。可以标记为1:n。

3.多对多:若对于实体集A中的每一个实体,在实体集B中有多个实体与之相关;反之,对于实体集B中的每一个实体,实体集A中也有多个实体与之相关,则称实体集A与实体集B具有多对多的联系,可以标记为n:m

举个例,一个读者可以借多本图书及关系则是一对多,标记为1:n




易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!