关系模型的数据结构
- 格式:doc
- 大小:20.91 KB
- 文档页数:6
关系型数据库通俗易懂讲解关系型数据库是一种以表格形式存储数据的数据库管理系统。
这种数据库管理系统使用了一种称为关系模型的数据结构来组织数据。
关系模型以二维表格的形式表示数据,每一行代表一个数据记录,每一列代表一个数据属性。
为了更好地理解关系型数据库,我们可以将其比作一个类似于Excel 表格的系统。
在这个表格中,每个表代表一个实体,每个实体都有自己的属性。
比如,我们可以有一个表格来记录学生的信息,其中每一行代表一个学生,每一列代表一个学生的属性,比如学号、姓名、年龄等。
关系型数据库的一个重要特点是数据之间的关系。
我们可以在不同的表格之间建立关系,这样就可以通过这些关系来查询和分析数据。
例如,我们可以建立一个关系将学生表和课程表关联起来,这样就可以查询某个学生选修了哪些课程,或者某门课程有哪些学生选修。
关系型数据库还有一个重要的特点是数据的一致性和完整性。
通过定义表格的结构和约束条件,我们可以确保数据的正确性和完整性。
例如,我们可以设置某个属性为唯一键,这样就可以确保表中的每条记录都具有唯一的标识。
除了数据的一致性和完整性,关系型数据库还具有高度的可靠性和安全性。
通过事务的机制,我们可以确保数据库操作的原子性、一致性、隔离性和持久性。
同时,我们可以设置访问权限,只允许授权用户对数据库进行操作,从而保护数据的安全性。
关系型数据库的优势在于其灵活性和易用性。
通过简单的SQL语句,我们可以对数据库进行各种操作,如查询、插入、更新和删除数据。
而且,关系型数据库具有良好的可扩展性,可以根据需要添加新的表格和关系,以适应不断变化的业务需求。
然而,关系型数据库也存在一些局限性。
由于数据以表格的形式存储,对于复杂的数据结构和查询操作,关系型数据库的性能可能会受到影响。
此外,由于表格之间的关系需要通过外键来建立,这也增加了数据的复杂性和维护成本。
总的来说,关系型数据库是一种以表格形式存储数据的数据库管理系统。
它具有数据之间的关系、数据的一致性和完整性、可靠性和安全性的优势。
关系模型的特点
关系模型具有以下特点:
1、关系模型建立在严格的数学根底之上。
2、数据结构简单清晰,用户易懂易用。关系模型的数据结构虽然简单,但却能表达丰富的语义,能够较好地描述现实世界
的实体以及实体间的各种联系。
3、数据物理存取路径对用户是透明的,有更高的数据独立性、更好的数据平安性。
关系模型是关系数据库建立的基础,是在集合论中的关系概念的基础上发展起来的。主要是指用二维表的形式表示实体
和实体间联系的数据模型。
关系模型的特点及三个组成部分《关系模型,到底是啥玩意儿?》嘿,同学们!你们听说过关系模型吗?我猜,可能很多人和我一开始一样,一脸懵,完全不知道这是个啥。
那今天,就让我这个小学生来给大家讲讲我所理解的关系模型。
咱先来说说关系模型的特点。
这关系模型啊,就像是一个超级大的拼图!每一块拼图都有它自己的位置和作用。
它很有组织性,就像我们班级的座位表一样,谁坐哪儿,清清楚楚,一点儿也不乱。
它还特别准确,要是有一点儿错误,就像拼图放错了地方,整个画面就不对啦!关系模型还有一个厉害的地方,就是它很容易让人理解。
比如说,我们数学考试的成绩表,那就是一个简单的关系模型呀!谁考了多少分,一目了然。
这难道不神奇吗?再讲讲关系模型的三个组成部分,它们就像是三个好伙伴,手拉手一起发挥作用。
第一个部分是数据结构,这就好比是房子的框架。
没有坚固的框架,房子能立得住吗?同样,没有好的数据结构,关系模型就没法稳稳当当的。
第二个部分是关系操作,这像是我们玩游戏的规则。
只有按照规则来,才能玩得顺溜。
要是不遵守关系操作,那整个关系模型就乱套啦!第三个部分是关系完整性约束,这就像我们必须遵守的校规。
要是没有校规,学校还不乱成一锅粥?没有关系完整性约束,关系模型也会变得一塌糊涂。
老师给我们讲这些的时候,我同桌小明还一脸迷茫地问:“这有啥用啊?”我就反驳他:“这用处可大了去啦!你想想,要是超市没有清楚的货物清单和价格表,那收银员不得疯掉?要是图书馆没有准确的图书分类和借阅记录,我们怎么能快速找到想看的书?”关系模型在我们生活中到处都是呀!比如说,爸爸妈妈的工资表,那不就是关系模型吗?还有我们的课程表,不也是吗?所以说,关系模型虽然听起来有点复杂,但是仔细想想,其实就在我们身边,而且特别重要!它能让我们的生活变得更有条理,更方便!同学们,你们觉得我说得对不对?反正我是觉得关系模型太有用啦!。
关系模型的三要素简述关系模型是数据库中常用的一种数据模型,用于描述和组织数据之间的关系。
它是数据管理和数据库设计的重要概念之一。
在关系模型中,数据被组织为一个或多个表格,每个表格包含多个字段。
这些表格通过关系(关联)来相互连接,从而形成一个更复杂、更有结构化的数据集合。
关系模型的三要素包括实体、属性和关系。
下面我将简要介绍每个要素的含义和作用。
一、实体:实体是指在数据库中可以单独识别和存储的一个具体事物,可以是一个人、一个地方、一个物品或一个概念等。
在关系模型中,每个实体都被表示为一个表格,并且每个表格都有一个唯一的标识符(主键),用于区分不同的实体。
实体的属性被表示为表格中的字段,用来描述和定义实体的特征。
我们可以创建一个名为“学生”的实体,其中包含学生的信息,如学号、尊称、性别和芳龄等属性。
每个属性都对应表格中的一个字段,用于存储相应的数据。
二、属性:属性是实体的特征或描述,用于定义实体的性质。
在关系模型中,每个实体都有一组属性,用来描述该实体的特点和特征。
属性可以包括数值型、字符型、日期型等不同类型。
在“学生”实体中,我们可以有属性“学号”、“尊称”、“性别”和“芳龄”。
这些属性描述了一个学生的基本信息。
三、关系:关系是指不同实体之间的联系和连接。
在关系模型中,关系定义了不同实体之间的相关性和依赖关系。
关系以表格的形式呈现,并使用键(主键和外键)来建立实体之间的联系。
我们可以创建一个名为“选课”的关系,用于描述学生和课程之间的关系。
该关系可以包含学生的学号、课程的课程号等字段,并通过学生的学号和课程的课程号来连接不同的实体。
总结回顾:关系模型是一种常用的数据库数据模型,用于描述和组织数据之间的关系。
它的三要素包括实体、属性和关系。
实体代表数据库中可以单独识别和存储的具体事物,属性描述了实体的特征和性质,关系定义了不同实体之间的联系和连接。
通过关系模型,我们可以更好地组织和管理数据,实现数据的结构化和灵活查询。
关系模型二维表关系模型是一种用于组织和管理数据的方法,它将数据表示为关系(也称为行),其中每个关系都代表不同的实体。
因此,关系模型是一种面向关系的模型。
而二维表是一种经典的表格数据结构,其中数据以行列形式呈现。
在大多数情况下,二维表是一种以简单、通俗易懂的方式表示数据的方法,并且对于大多数人来说很容易理解。
因此,两种方法的主要区别在于,关系模型更加注重对数据进行组织和关联,而二维表更加注重对数据进行呈现。
因此,选择哪种方法取决于我们对数据的需求和使用场景。
关系模型关系模型的基本概念包括:1.关系:关系是关系模型的基本单位,它是二维表格的抽象。
关系由属性(列)定义其域的取值范围,由属性的具体的值组成的元组,对应表中的行,即一条记录。
2.属性:属性是关系中的数据元素,它用来描述实体的特性。
属性可以分为简单属性和复合属性。
简单属性只能包含一个值,而复合属性可以包含多个值。
3.元组:元组是关系中的数据集合,它用来描述实体的一个具体实例。
元组中的属性值必须满足属性的域约束。
●关系模型的优点包括:1.具有良好的抽象性,可以将复杂的数据结构表示为简单的二维表格。
2.具有良好的表现力,可以表示各种类型的数据。
3.具有良好的扩展性,可以通过增加或删除属性来扩展关系。
二维表●二维表的基本概念包括:1.行:行是二维表中的一行,它表示一个具体的实例。
2.列:列是二维表中的一列,它表示一个属性。
3.值:值是列中的具体数据。
●二维表的优点包括:1.易于理解和使用,对于大多数人来说很容易理解。
2.易于实现,可以通过各种编程语言来实现。
关系模型与二维表的联系关系模型中的关系可以用二维表来表示,二维表中的行可以用来表示关系中的元组,二维表中的列可以用来表示关系中的属性。
因此,关系模型与二维表具有密切的联系。
在实际应用中,关系模型和二维表经常结合使用。
关系模型用来组织和管理数据,二维表用来呈现数据。
关系模型有如下优点
1.数据结构简单
在关系模型中,数据模型是⼀些表格的框架,实体通过关系的属性(即表格的栏⽬)表⽰,实体之间的联系通过这些表格中的公共属性(可以不同属性名,但必须同域)表⽰。
结构⾮常简单,即使⾮专业⼈员也能⼀看就明⽩。
2.查询与处理⽅便
在关系模型中,数据的操作较⾮关系模型⽅便,它的⼀次操作不只是⼀个元组,⽽可以是⼀个元组集合。
特别在⾼级语⾔的条件语句配合下,⼀次可操作所有满⾜条件的记录。
3.数据独⽴性很⾼
在关系模型中,⽤户对数据的操作可以不涉及数据的物理存储位置,⽽只须给出数据所在的表、属性等有关数据⾃⾝的特性即可,具有较⾼的数据独⽴性。
4.坚实的理论基础
与状模型和层次模型不同,关系模型⼀开始便注重理论研究。
在数据库领域专家的不懈努⼒下,关系系统的研究⽇趋完善,⽽且也促进了其它软件分⽀如软件⼯程的发展。
关系模型也存在的不⾜的地⽅:
1.查询效率低
关系模型的数据库管理系统提供了较⾼的数据独⽴性和⾮过程化的查询功能,因此系统的负担很重,直接影响查询速度和查询效率。
2.关系DBMS实现较困难
由于关系数据库管理系统的效率⽐较低,必须对关系模型的查询进⾏优化,这⼀⼯作相当复杂,实现难度⽐较⼤。
数据库设计中的关系模型数据库设计是现代信息技术的重要组成部分,它是数据管理领域的核心内容之一。
关系模型作为数据库中最为基础的一种结构模型,也是数据库设计的核心和基石之一。
本文将结合实例进行阐述,详细介绍数据库设计中的关系模型以及其相关内容。
一、关系模型的定义和特点关系模型是一种用于数据库设计的模型,它采用了表格的形式来存储数据,并且采用了关系代数的思想来操作数据。
相对于其他数据结构模型,比如层次模型和网状模型,它具有以下几个特点:1、关系模型采用表格的形式来表示数据,可以更好的表达数据之间的关系,容易理解和操作。
2、关系模型的数据结构简单,易于实现和维护。
3、关系模型支持事务的一致性和复原,保证了数据的可靠性和安全性。
二、关系模型中的主键和外键在关系模型中,每张表都有一个主键,它用于唯一的标识表中的每一行数据。
主键是一种特殊的列,其中的值必须是唯一的,并且不能为空值。
使用主键可以更加方便地对数据进行查询和更新操作。
除了主键之外,关系模型还有外键这一概念。
外键是一种用于连接表格之间关系的机制,它实际上是另外一张表的主键。
例如,在一个订单表中,每一个订单都对应一个客户,订单表中就可以定义一个外键,来连接客户表中的主键。
这样,就可以通过订单表中的这个外键,来查询对应的客户信息。
三、关系模型中的范式在关系模型中,范式是指一种设计规范,它要求在一个表格中,每一个属性都应该只依赖于主键。
关系模型定义了一系列范式,包括1NF、2NF、3NF、BCNF等等。
其中,1NF是最为基础的范式,它要求表格中的每一个属性都是原子的,不可再分。
2NF要求表格中的每一个非主键属性都完全依赖于主键。
3NF要求表格中的每一个非主键属性都不依赖于其他非主键属性。
BCNF则要求表格中每一个函数依赖都满足一定的条件。
使用范式可以有效的减少数据冗余和不一致性,提高数据存储的效率和安全性。
四、关系模型中的重要性质在关系模型中,有两个重要的性质:ACID和CAP。
关系模型概念关系模型(RelationalModel)是一种数据库管理系统的理论模型,由著名的计算机科学家和数据库领域的开创者马克普罗维奇(Dr. Edgar F. Codd)1970年提出。
它是一种以关系来表达数据模型,用于存储和管理大量信息,包括文档、图像、视频等大量复杂数据结构。
关系模型是使用一系列由行和列组成的表,它们中的每一行表示一个实体,每一列表示一个属性。
每个记录都由一个主键(Primary Key)唯一确定,包括一些外键(Foreign Key)来表示实体之间的关系。
这是一种关系数据模型,它把关系的概念和数据的表示形式结合起来。
这种模型可以被用来表示大量复杂的数据,它们都可以以数据库的形式进行维护和管理。
此外,关系模型还可以使用一种叫做关系代数(Relational Algebra)的操作语言来实现,它可以执行一系列的查询操作,这些操作包括选择(Select)、投影(Project)、连接(Join)等等,用来对关系数据模型进行复杂的数据操作。
关系模型的优点在于能够有效地存储、管理和查询大量的数据;允许自由的添加、修改和删除实体和属性,灵活地实现结构上的变化;可以用于搜索和检索文档数据,让用户能够根据不同的条件查询;可以较容易地将现有数据库系统迁移到关系模型。
关系模型最重要的优势在于具有良好的可移植性,它可以在不同的计算机系统之间转换,而且其查询语言及其实现的多元化性也使得它可以用于不同的应用领域。
这使得它成为最常用的数据库管理系统,广泛应用于各领域的业务管理。
关系模型也存在一些缺点,比如查询的性能较低、数据的冗余率较高、业务脆弱性比较大。
此外,关系模型的实现也相对复杂,不能满足业界对复杂数据模型的要求。
在当今的信息时代,关系模型仍然是最重要的数据库管理系统,它在支持和处理各种复杂的数据结构方面发挥着重要的作用。
关系模型的应用也将逐步扩展到各个领域,它将更好地支持不同的应用需求,为信息的获取和管理提供更强大的功能。
数据库的关系模型和非关系模型数据库是计算机系统重要的组成部分之一,通常用来存储大量的数据和信息。
随着信息技术的发展和应用范围的扩大,数据库的种类也越来越多,其中主要包括关系数据库和非关系数据库两种类型。
关系数据库是数据之间以及表之间存在关联的数据库,而非关系数据库则不是以表格之间存在关系进行连接的数据库。
为了更好地理解数据库的关系模型和非关系模型,本文将从以下几个方面进行详细地探讨。
一、数据库的关系模型1.1什么是关系模型关系模型是一种基于数学理论的数据库模型,它使用表格(也称为关系)来存储和管理数据。
一个表格表示一个实体或一个概念,其行表示记录或元组,而列表示属性或字段。
关系数据库的设计需要通过规范化过程来减少数据冗余和保证数据的一致性。
1.2关系模型的特点关系模型有以下几个特点:(1)基于表格:关系模型使用表格来表示数据对象,它将每个数据的每个属性放到一个列中,而每行则代表一个实例或一个记录。
(2)容易理解:关系模型的设计方法和语义非常清晰和直接,使得数据库系统易于理解和操作。
(3)高度规范化:关系数据库系统的数据设计需要遵循严格规范化的要求,以避免数据冗余和数据一致性的问题。
(4)安全性强:关系模型提供了许多安全机制,例如用户认证、访问控制和数据加密等,可以保证数据的机密性和完整性。
1.3关系模型的实例例如,一家公司可以使用关系模型的方式来存储员工信息,其中每个员工表示一个实体或记录,每个列则表示员工的属性或字段。
表格的列可以包括员工的名字、性别、工号、入职时间和工资等信息。
这些属性可以用来制定许多查询和报表,以便管理人员进行分析和决策。
二、数据库的非关系模型2.1什么是非关系模型非关系模型是一种采用不同形式的数据结构来存储数据的数据库模型。
与关系模型不同,非关系模型不需要表格或具有明确定义的关系来表示数据对象之间的关系,而是使用不同类型的数据结构来存储数据,例如文件系统、文档存储库和键值对存储库等。
关系模型的数据结构 关系模型源于数学,它用二维表来组织数据,而这个二维表在关系数据库中称为关系。 关系数据库是表的集合
用关系表示实体以及实体间的联系的模型,称为关系模型,下面我们来看看关系模型中的基本术语
1. 关系 关系就是二维表,它满足以下几个条件 1)关系表中的每一列都是不可再分的基本属性。(有子属性,分开了,不是关系表) 2)表中的各属性不能重名 3)表中的行、列次序并不重要,即交换列的前后顺序(比如将性别放在年龄前面)不影响其表达的一个语义。 2. 元组 表中的每一行数据称为一个元组,它相当于一个记录值 3. 属性 表中的每一列是一个属性值的集合,列可以命名,称为属性名,属性与前面讲到的实体属性(特征)或记录的字段意义相当。 关系表中的每一行数据不允许完全相同,因为存储值完全相同的两行或多行数据并没有实际意义 4. 主键 主键也称主码或主关键字,是表中用于唯一确定一个元组的一个属性或最小属性组。 主键可以由一个属性组成,也可以由多个属性共同组成。 如表所示,学号就是此学生基本信息表的主键,因为它可以唯一地确定一个学生。而表所示的关系的主键就由学号和课程号共同组成,因为一个学生可以选修多门课程,而且一门课程也可以有多个学生选修,因此,只有将学号和课程号结合起来才能共同的确定一行记录。通常称由多个属性共同组成的主键为复合主键。 表的主键与其实际应用语义有关,与表设计者的意图有关,如表,用(学号,课程号)作为主键在一个学生对一门课程只能有一次考试的前提下是成立的,如果设定一个学生对一门课程可以有多次考试,则用(学号,课程号)作主键就不够了,因为一个学生对一门课程有多少次考试,则这个值就回重复多少遍,如果是这种情况,就必须为这个表添加一个“考试次数”列,同时作为主键 有时一个表中可能存在多个可以作主键的属性,比如,对于学生信息表,如果能够保证姓名肯定不重复的话,那么姓名也可以作为学生基本信息的主键,如果表中存在多个可以作为主键的属性,则称这些属性为候选键属性,相应的键称为候选键,从中选一个作为主键都是可以的。 5. 域 属性的取值范围称为域。例如,大学生的年龄假设在14~40岁范围内,则学生的“年龄”属性的域就是(14~40) 关系模型的数据操作 增删改查 关系模型的数据完整性约束 数据完整性是指数据库中存储的数据是有意义的,是正确的。 主要包括三大类 1) 实体完整性 是指的是关系数据库中所有的表都必须有主键,而且表中不允许存在以下两种情况 (1) 无主键值的记录 (2) 主键值相同的记录 因为若记录没有主键值,则此记录在表中一定是无意义的。关系模型中的每一行记录都对应客观存在的一个实例或一个事实,比如,一个学号唯一地确定了一个学生,如果表中存在没有学号的学生记录,则此学生一定不属于正常管理的学生。另外,如果表中存在主键值相等的两个或多个记录,则这两个或多个记录会对应同一个实例,这会出现两种情况。第一,表中的其他值也完全相同,则这些记录就是重复记录,存储重复的记录是没有意义的,第二,如果其他值不完全相同,则会出现语义矛盾,哪条记录才是真实的
实体中每个具体的记录值(一行数据),比如学生实体中的每个具体的学生,称为实体的一个实例。 2) 参照完整性
参照完整性有时也称为引用完整性。现实世界中的实体之间往往存在着某种联系,在关系模型中,实体以及实体之间的联系都是用关系来表示的,这样就自然存在着关系(表)与关系(表)之间的引用关系。参照完整性就是描述实体之间的联系的。 参照完整性一般是指多个实体或表之间的关联关系。比如表2-3中,学生选课信息表所描述的学生必须受限于表2-1学生基本信息表中已有的学生,不能在学生选课信息表中描述一个根本就不存在的学生,也就是学生选课信息表中学号的取值必须在学生基本信息表中学号的取值范围内。这种一个表中某列的取值受限于另一个表的某列的取值范围约東的特点就称为参照完整性。在关系数据库中用外键(foreign key,有时也称为外部关键字或外码)来实现参照完整性。例如,只要将学生选课表中的“学号”定义为引用学生基本信息表的“学号”的外键,就可以保证选课表中的“学号”的取值在学生基本信息表的已有“学号”范围内
外键一般出现在联系所对应的关系中,用于表示两个或多个实体之间的关联关系。外键实际上是表中的一个(或多个)属性,它引用某个其他表(特殊情况下,也 可以是外键所在(2.4的表)的主键,当然,也可以是候选键,但多数情况下是主键。下面举例说明如何指定外键
例2-1】学生和专业可以用下面的关系表示,其中主键用下划线标识。 学生(学号,姓名,性别,专业号,出生日期) 专业(专业号,专业名)
这两个关系之间存在着属性引用关系,即学生关系中的“专业号”引用了专业关系中的“专业号”,显然,学生关系中的“专业号”的值必须是确实存在的专业的专业号。也就是说,学生关系中的“专业号”引用了专业关系中的“专业号”,是引用了专业关系中的“专业号”的外键
【例2-2】学生、课程以及学生与课程之间的选课关系可以用以下3个关系表示,其中主键用下划线标识。 学生(学号,姓名,性别,专业号,出生日期) 课程(课程号,课程名,学分) 选课(学号,课程号,成绩)
这3个关系中,选课关系中的“学号”必须是学生关系中已有的学生,因此选课关系中号”引用了学生关系中的“学号”。同样,选课关系中的“课程号”也必须是课程关系中已有的课程,即选课关系中的“课程号”引用了课程关系中的“课程号”。因此,选课关系中的“学号”是引用了学生关系中的“学号”的外键,而“课程号”是引用了课程关系中的“课程号”的外键。
主键必须是非空且不重复的,但外键无此要求。外键可以有重复值,这点从表2-3中可以看出。外键也可以取空值,例如,职工与其所在的部门可以用以下两个关系表示。 职工(职工号,职工名,部门号,工资级别) 部门(部门号,部门名)
其中,职工关系的“部门号”是引用部门关系的“部门号”的外键,如果某新来职工还没有被分配到具体的部门,则其“部门号”就为空值;如果职工已经被分配到了某个部门,则其部门号就有了确定的值(非空值)。
3) 用户定义完整性 用户定义的完整性也称为域完整性或语义完整性。任何关系数据库管理系统都应该支持实体完整性和参照完整性,除此之外,不同的数据库应用系统根据其应用环境的不同,往往还需要一些特殊的约東条件,用户定义的完整性就是针对某一具体应用领域定义的数据约束条件,它反映某一具体应用所涉及的数据必须满足应用语义的要求。
用户定义的完整性实际上就是指明关系中属性的取值范围,也就是属性的域,这样可以限制关系中属性的取值类型及取值范围,防止属性的值与应用语义矛盾。例如,学生的考试成绩的取值范围为0~100,人的性别的取值是{男,女}。 关系规范化 为什么要关系规范化 观察这个表的数据,会发现有以下几个问题
①数据冗余问题:在这个关系中,有关学生所在系和其所对应的宿舍楼的信息有冗余,因为一个系有多少个学生,这个系所对应的宿舍楼的信息就要重复存储多少遍。而且学生基本信息(包括学生学号、姓名、性别、所在系)也有重复,一个学生修了多少门课,他的基本信息就重复多少遍。
②数据更新问题:如果某一学生从数字媒体系转到了信息管理系,那么不但要修改此学生的 Sdept列的值,还要修改其Sloc列的值,从而使修改复杂化。
③数据插入问题:如果新成立了某个系,并且也确定好了此系学生的宿舍楼,即已经有了 Sdept和Sloc信息,但也不能将这个信息插入到表1中,因为这个系还没有招生,其Sno和Cno列的值均为空,而Sno和Cno是这个表的主属性,因此不能为空。
④数据删除问题:如果一个学生只选了一门课,而后来又不选了,则应该删除此学生选此门课程的记录。但由于这个学生只选了一门课,则删掉此学生的选课记录的同时也删掉了此学生的其他基本信息。
这些都是操作异常,为什么会出现操作异常呢,就是关系模式没有设计好。
为了解决这类似的问题,我们就要按照关系规范化去进行设计。
1. 关系中的码 例1:有关系模式:学生(学号,姓名,性别,身份证号,年龄,所在系)
候选码为:学号,身份证号
主键可以为“学号”或者是“身份证号”。
主属性为:学号,身份证号
作主属性为:姓名,性别,年龄,所在系。
例2:有关系模式:选课(学号,课程号,考试次数,成绩) 设一个学生对一门课程可以有多次考试,每一次考试有一个考试成绩 候选码为:(学号,课程号,考试次数),也为主键 主属性为:学号,课程号,考试次数 非主属性为:成绩。 :有关系模式:授课(教师号,课程号,学年)例3 可以在不同学年对同其语义为:一个教师在一个学年可以讲授多门不同的课程,一门课程在一一门课程讲授多次,但不能在同一个学年对同一门课程讲授多次。同一门课程个学年可以由多个不同的教师讲授,同一个学年可以开设多门课程, 可以在不同学年开设多次。 其候选码为:(教师号,课程号,学年),因为只有(教师号,课程号,学年) 三者才能唯一的确定一个元组。 这里的候选码也是主键 主属性为:教师号,课程号,学年。 没有非主属性。 称这种候选码为全部属性的表为全码表。
范式2.1NF
1NF)是指数据表中的每个字段必须是不可拆分的最小单元。第一范式(2NF
后,要求表中的所有列,都必须依赖于主键,)是指满足1NF第二范式(2NF而不能有任何一列与主键没有关系,也就是说一个表只描述一件事情。 这个是什么意思呢,意思就是说,表中除了主键的其他列,不能和主键没有关系,其实可又怎么会放在同一列中呢,既然没关系,但其实这句话又有点相互矛盾, 以这样想,单独把这一列和主键拿出来,如果他们之间没有关系,那肯定是不满足第二范式的。 这是一张成绩表,包括学号、课程号、成绩和学分,主键为学号,但是单独将学分和学号拿出来,两个没有关系,所以不满足第二范式。 第三范式(3NF)是指必须先满足第二范式(2NF),另外要求表中的每一列只与主键直接相关而不是间接相关。 这个又是什么意思呢,似乎和第二范式的描述差不多啊,其实不然,还是有细微差别的,第三范式保证了表中的字段消除了传递依赖,比如C依赖于B,B依赖于A,那么C依赖于A,像这样的情况不能让A、B、C出现在同一个表中。