(转自:http://www.cnblogs.com/pingkeke/archive/2006/05/29/412106.html)
主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能和可用性都有着决定性的影响。
必须将数据库模式从理论上的逻辑设计转换为实际的物理设计。而主键和外键的结构是这个设计过程的症结所在。一旦将所设计的数据库用于了生产环境,就很难对这些键进行修改,所以在开发阶段就设计好主键和外键就是非常必要和值得的。
首先来谈:主键。
关系数据库依赖于主键---它是数据库物理模式的基石。主键在物理层面上只有两个用途:
1. 惟一地标识一行。
2. 作为一个可以被外键有效引用的对象。
基于以上这两个用途,下面给出了我在设计物理层面的主键时所遵循的一些原则:
1. 主键应当是对用户没有意义的。如果用户看到了一个表示多对多关系的连接表中的数据,并抱怨它没有什么用处,那就证明它的主键设计地很好。
2. 主键应该是单列的,以便提高连接和筛选操作的效率。
注:使用复合键的人通常有两个理由为自己开脱,而这两个理由都是错误的。其一是主键应当具有实际意义,然而,让主键具有意义只不过是给人为地破坏数据库提供了方便。其二是利用这种方法可以在描述多对多关系的连接表中使用两个外部键来作为主键,我也反对这种做法,理由是:复合主键常常导致不良的外键,即当连接表成为另一个从表的主表,而依据上面的第二种方法成为这个表主键的一部分,然,这个表又有可能再成为其它从表的主表,其主键又有可能成了其它从表主键的一部分,如此传递下去,越靠后的从表,其主键将会包含越多的列了。
3. 永远也不要更新主键。实际上,因为主键除了惟一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。
注:这项原则对于那些经常需要在数据转换或多数据库合并时进行数据整理的数据并不适用。
4. 主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。
5. 主键应当有计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了惟一标识一行以外的意义。一旦越过这个界限,就可能产生认为修改主键的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中。
uniqueidentifier
全局唯一标识符 (GUID)。
注释
uniqueidentifier 数据类型的列或局部变量可用两种方法初始化为一个值:
- 使用 NEWID函数。
- 将字符串常量转换为如下形式(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字)。例如,6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 uniqueidentifier 值。
比较运算符可与 uniqueidentifier 值一起使用。然而,排列并非通过比较两个值的位模式来实现。允许对 uniqueidentifier 值执行的操作只有比较 (=, <>, <, >, <=, >=) 和检查 NULL(IS NULL 和 IS NOT NULL)。不允许使用其它算术运算符。所有的列约束及属性(IDENTITY 除外)均允许用于 uniqueidentifier 数据类型。
分享到:
相关推荐
此外,课程还介绍了关系代数,这是一种用于查询和操作关系数据库的抽象语言,包括传统的集合运算和专门的关系运算。 在教学设计中,每一课次都设有明确的教学目标,如了解数据库知识、熟悉专业术语,掌握DBMS的功能...
《深度探索关系数据库_实践者的关系理论》是一本专注于数据库领域的深入学习资料,它涵盖了关系数据库理论的基础到高级概念,旨在帮助读者理解并熟练运用这些理论进行实际操作。该压缩包包含两本电子书,一本中文版...
8. 关系模式与关系数据库模式:关系模式描述了数据的结构,而关系数据库模式是整个数据库中所有关系模式的集合。它们都是型,关系数据库实例是它们的值。 9. 基本操作:在关系数据库中,选择(Select)、投影...
完整性约束是关系数据库中的核心原则之一,它确保了数据的准确性和可靠性,包括实体完整性、参照完整性和用户定义的完整性。这些约束条件帮助维护了数据库中的数据一致性,避免了数据冗余和更新异常等问题。此外,...
关系数据库是数据存储和管理的核心工具,尤其在企业信息系统中占据着重要地位。Access数据库是Microsoft Office套件中的一款关系数据库管理系统,适用于中小型企业或个人使用。本基础教程旨在帮助学习者理解关系...
在"第1章:关系数据库(1).ppt"和"第1章:关系数据库(2).ppt"中,你将学习到关系数据库的基本概念,如实体、属性、键、索引、参照完整性等。这些概念是构建和维护高效、稳定数据库的基础。此外,还将介绍关系代数...
通过系统学习《关系数据库与SQL Server (2019版)》一书,读者不仅能够对关系数据库和SQL Server 2019有一个全面而深入的理解,还能够掌握如何在实际工作中运用这些知识,构建稳定可靠的关系数据库系统。这将大大提升...
在关系数据库中,数据冗余可能导致存储空间的浪费,更严重的是,它会引出更新异常,包括插入异常、修改异常和删除异常。例如,上述教学管理关系模式中,一个关系中包含了学生、课程、教师和系的信息,导致系名、课程...
在关系型数据库中,SQL(Structured Query Language)是一种用于管理关系数据库的标准语言。SQL不仅可以用来查询数据,还可以创建和修改数据库结构,插入、更新和删除数据。基本的SQL语法包括: 1. SELECT语句:...
### UML在关系数据库设计中的应用 #### 引言与背景 在当今的软件密集型系统中,持久性对象的管理成为了面向对象研究的核心议题。尽管面向对象数据库(OODB)与对象关系数据库(O-RDB)的发展为数据管理带来了新的...
- 关系数据库是基于关系模型的数据库,其中数据以表格的形式组织,每个表格称为一个表,表之间可以通过键建立关联。 - SQL是用于创建、查询、更新和管理关系数据库的标准语言。它允许用户执行各种操作,如选择特定...
关系数据库是现代信息系统的核心组成部分,它以数据组织为中心,提供了高效、可靠的数据管理和访问机制。本课件主要讲解了关系数据库的基础知识,包括其构成、功能、用户角色、硬件要求、常用数据库管理系统以及关系...
超键(Superkey)是可以唯一标识元组的任意属性组合,候选键(Candidate Key)是超键中最小的能唯一标识元组的属性组合,主键(Primary Key)是被选为主键的候选键,用于唯一标识每个元组。外键(Foreign Key)则...
关系数据库是一种特定类型的数据库,它遵循关系模型,其中数据被组织成表格形式,每个表格称为一个表,表之间可以通过键(如主键和外键)建立关联。当我们面临的情况是,关系数据库中的某些字段分布在不同的表中,这...
【关系数据库设计与规范化】是数据库设计中的核心概念,它涉及到如何有效地组织和管理数据,以确保数据的完整性和一致性。关系数据库设计的目标是选择最优的关系模式,避免数据冗余和异常,从而提高数据存储和检索的...
数据库关系模型和关系运算是数据库管理系统中的核心概念,它们构成了关系数据库的基础。关系模型是由E.F.科德在1970年提出的,是目前最广泛使用的数据模型之一。 关系模型的基本概念包括关系、属性、关系模式、元组...
首先,我们要理解关系数据库的基础概念,如实体、属性、键和关系。实体代表现实世界中的对象或事件,属性是实体的特性,键用于唯一标识实体,而关系则描述了实体间的相互联系。在设计数据库时,我们需要遵循范式理论...
关系数据库规范化理论的复习题主要涵盖了关系数据库的基本概念、关系模式的设计、函数依赖、候选键、范式等方面的知识点。 关系数据库规范化理论的主要知识点包括: 1. 关系模式的设计:关系模式是关系数据库的...
通过这个教程,你将不仅掌握SQL Server 2005的基本操作,还能深入了解关系数据库管理系统的原理和实践技巧,从而在实际工作中游刃有余。无论你是初入IT行业的新人,还是希望提升SQL Server技能的开发者,这个教程都...