关系型数据库是常用的数据库,我将从理论与实践两部分来学习
理论部分:
-
数据库模型是什么?
-
如何设计数据库表?
-
数据库设计规范——范式?
-
其他更高级实际使用中遇到的问题,待探索......
实践部分:将找到一种企业使用经典案例,基于MySQL与Sqlite实操设计数据关系系统的数据库表,实现理论与实践结合。
1.数据库模型——关系 元组 属性
-
1.1关系
-
定义
-
关系可以被理解为一张二维表。在数学上,关系是从笛卡尔积中选取的一些元素组成的集合。在数据库中,它具体表现为一个表格,用来存储具有相同结构的数据记录。例如,一个学生信息表就是一个关系,表中包含多个学生的信息。
-
-
特点
-
有序性:关系中的每一列都有特定的顺序,这个顺序在定义关系时就已经确定。例如,在学生信息表中,第一列可能是学生编号,第二列是学生姓名,这个顺序不能随意改变,因为它代表了数据的结构。
-
唯一性:关系中的每一行(即元组)都是唯一的,不能有重复的行。这是通过主键来保证的。主键是关系中一个或多个属性的组合,其值能够唯一标识关系中的每一个元组。例如,在学生信息表中,学生编号可以作为主键,因为每个学生的编号都是唯一的。
-
不可分割性:关系中的每个属性都是不可再分的基本数据项。这意味着关系中的每个单元格只能包含一个值,而不是一组值或一个复杂的数据结构。例如,在学生信息表中,姓名这一属性只能包含一个字符串值,而不能包含一个包含多个名字的列表。
-
-
1.2元组
-
定义
-
元组是关系中的每一行记录。它代表了关系中的一个具体实例。在学生信息表这个关系中,每个学生的信息就是一条元组。例如,一个元组可能是(1001,“张三”,18,“计算机科学”),表示一个编号为1001、姓名为张三、年龄为18、专业为计算机科学的学生。
-
-
特点
-
完整性:元组包含了关系中所有属性的值。每个元组都必须符合关系的结构定义,即包含关系中定义的所有属性。在学生信息表中,每条元组都必须有学生编号、姓名、年龄和专业等所有属性的值。
-
独立性:元组之间是相互独立的。每个元组都代表了一个独立的实体实例,它们之间没有直接的联系。在数据库操作中,可以单独地插入、删除或修改每个元组,而不会影响到其他元组。
-
-
1.3属性
-
定义
-
属性是关系中的每一列。它代表了关系中实体的一个特征或性质。在学生信息表这个关系中,学生编号、姓名、年龄和专业都是属性。属性定义了关系中数据的结构,即每个元组应该包含哪些信息。
-
-
特点
-
数据类型:每个属性都有一个明确的数据类型。数据类型定义了属性可以取值的范围和格式。例如,学生编号可能是整数类型(INT),姓名可能是字符类型(VARCHAR),年龄可能是整数类型,专业可能是字符类型。数据类型确保了属性值的合法性和一致性。
-
域:属性的取值范围称为域。域可以是有限的,如性别属性的域可能是{“男”,“女”};也可以是无限的,如年龄属性的域可能是0到150之间的整数。在数据库设计中,通过定义属性的域,可以限制非法数据的输入,保证数据的准确性。
-
可选性:属性可以是可选的或必选的。可选属性意味着在某些元组中,该属性的值可以为空(NULL)。例如,在学生信息表中,学生的电子邮件地址属性可能是可选的,因为不是每个学生都必须提供电子邮件地址。必选属性则必须在每个元组中都有值,如学生编号通常是必选属性。
-
-
1.4三者关系
-
一个关系由多个元组组成,每个元组代表关系中的一个实例。同时,关系由多个属性定义其结构,每个属性代表关系中实体的一个特征。元组是关系中的行,属性是关系中的列。
下节了解关系型数据库如何设计
5576

被折叠的 条评论
为什么被折叠?



