数据库表间的关系
㈠ 如何定义数据库表之间的关系
唯一需要注意的是,外键字段的数据类型必须和主键的数据类型相同。但是有些系统可以允许这条规则有一个例外,它允许在数字和自动编号(autonumbering)字段(例如在SQL服务器系统中访问Identity和AutoNumber)之间建立关系。此外,外键的值可以是空(Null),尽管强烈建议在没有特别原因的情况下,不要让外键为空。你有可能永远都不会有机会来使用需要这项功能的数据库。 现在回到我们的示例关系表,并开始输入合适的外键。(请继续在纸上打草稿——在你的数据库系统中创建真正的数据表还为时过早。要知道在纸上纠正错误要容易得多。)要记住,你正在把主键的值添加到关系表里。只要调用实体之间的关系就行了,而其他的就简单了: 书籍和分类是有关系的。 书籍和出版社是有关系的。 书籍和作者是有关系的。 作者和邮政编码(ZIP)是有关系的。 邮政编码和城市是有关系的。 城市和州是有关系的。 这一步并不是一成不变的,你可能会发现在规范化的过程中加入外键会更容易一些。在把字段移动到一个新的数据表时,你可能要把这个新数据表的主键添加到原来的数据表里,将其作为外键。但是,在你继续规范化剩余数据的时候,外键常常会发生改变。你会发现在所有这些数据表被全部规范化之后,一次添加所有的外键,这样效率会更高。 操作数据表 现在让我们一次操作一个数据表,就从Books数据表开始,它在这个时候只有三个字段。很明显,Authors、Categories和Publishers数据表的主键会被添加到Books里。当你完成的时候,Books数据表就有了七个字段: Books Title (PK) ISBN (PK) Price FirstNameFK (FK) Authors.FirstName many-to-many LastNameFK (FK) Authors.LastName many-to-many CategoryFK (FK) Categories.Category many-to-many PublisherFK (FK) Publishers.Publisher one-to-many 要记住,Authors数据表里的主键是一个基于姓和名两个字段的复合关键字。所以你必须要把这个两个字段都添加到Books数据表里。要注意,外键字段名的结尾包含有FK这个后缀。加入这个后缀有助于提高可读性和自我归档。通过名称这种方式来区别外键会使得追踪它们更简单。如果主键和外键的名称不同,这没有关系。 这里出现了三种关系:Books和Authors、Books和Categories,以及Books和Publishers。这三种关系中所存在的两种问题可能没有那么明显: Books和Authors之间的关系:一本书可以有多个作者。 Books和Categories之间的关系:一本书可以被归入多个类。 这两者的关系是多对多的关系。先前我告诉过你,数据表不能直接实现这样的关系,而需要第三个联系表来实现。(Books和Publishers的关系是一对多的关系,就像现在所说的,这样是没有问题的。) 这两个新发现的多对多关系将需要一个联系表来包含来自每个数据表的主键,并将其作为外键。新的联系表是:BooksAuthorsmmlink TitleFK (FK) Books.Title one-to-many ISBNFK (FK) Books.ISBN one-to-many FirstNameFK (FK) Authors.FirstName one-to-many LastNameFK (FK) Authors.LastName one-to-many BooksCategoriesmmlink TitleFK (FK) Books.Title one-to-many ISBNFK (FK) Books.ISBN one-to-many CategoryFK (FK) Categories.Category one-to-many 没有必要更改Categories、Authors或者Publishers数据表。但是,你必须把FirstNameFK、LastNameFK和CategoryFK这三个外键从Books里移走: Books Title (PK) ISBN (PK) Price PublisherFK (FK) Publishers.Publisher one-to-many 现在,让我们转到Authors数据表上来,它现在有两个字段。每个作者都和ZIPCodes数据表中的邮政编码的值相关。但是,每个邮政编码会和多个作者相关。要实现这种一对多的关系,就要把ZIPCodes数据表中的主键添加进Authors数据表作为外键: Authors FirstName (PK) LastName (PK) ZIPCodeFK (FK) ZIPCodes.ZIPCode one-to-many 至此,你已经准备好了处理剩下的地址部分了。看到它们被分在不同的数据表里是很让人奇怪的,但是这是遵照BCNF正确规范化数据的结果。每个邮政编码的值只会有一个对应的城市值和州值。每个城市和州的值只会被输入进其对应的数据表里一次。ZIPCodes和Cities数据表需要外键字段来实现这些关系: ZIPCodes ZIPCode (PK) CityFK (FK) Cities.City one-to-many Cities City (PK) StateFK (FK) States.State one-to-many States State (PK) 从一个到九个 最后,你有了九个数据表:Books、Authors、Categories、Publishers、ZIPCodes、Cities、States、BooksAuthorsmmlink和BooksCategoriesmmlink。图A是这个示例数据表的数据库最终的图形形式。很难想象一个简单的数据表会被分成九个数据表。 图A 最初的一个数据表现在需要九个数据表了 由于这个示例数据库很简单,你可能会问这些关系有什么作用。看起来仍在保存冗余的数据,只不过形式不同罢了——通过外键来实现。这是因为我们的数据表现在只有很少几个字段。试想一下有十几个字段的数据表,会是什么样的一个情形。需要承认的是,你仍然需要把数据表的主键作为外键保存进关系表里,但是至多可能最多增加一到两个字段。比较一下为这个数据表里的每一条记录都添加十几个条目的情形吧。
㈡ 数据库表间关系有哪几种,分别是什么
属性的表间关系有三种类型:一对一、一对多和多对多。 如果指的是表的参照完整性,则是:主外键关系。 如果是某些数据库操作上的相关性,则是:级联关系。
㈢ 什么是指数据库中数据与数据之间的关系
在数据库郑消中,数据之间的关系被称为“关系(Relationship)”,它是指不同表之间数据的联系。关系分为三种类型:一对一、一对多和多对多。一对一关系指两个表中的数据只有一对一的关系,一个表中的主键对应另一个誉贺表中的外键;一对多关系指一个表中的数据可以对应到另一个表中的多条数据,一个表中的记录对应另一个表中多个记录;多对多关系指两个表中的数据互相关联,每个表中的记录都可以对应到另一个表中的多个记喊虚知录。
关系是数据库设计的重要概念之一,是保证数据准确性和完整性的关键。一个好的数据库设计必须建立正确的数据关系,以保证数据的一致性和完整性。关系型数据库通过多个表之间的关系来存储和管理数据,使得数据的查询、修改和更新更加高效和方便。
㈣ 简述在access数据库中创建表间关系的步骤
1、首先,打开软件,打开你的数据库的几个表。点击上面的【数据库工具】,在关系选项组里选择【关系】。
㈤ 数据库和表有什么关系
数据库是由基本表组成的,换句话说数据库就是各种表的集合。当然,数据库除了基本表,还有函数等
㈥ 在access2010中表和数据库的关系
一个数据库只能包含一个表。
在Access2010中,数据库和表的关系是一个数据库可以包含多个表。表之间可以有关系,也可以相互独立。作为一个数据库管理系统,Access通过各种数据库对象来管理信息。
Access中的数据库对象有7种,表是其中的一种,Access所提供的这些对象都存放在同一个数据库文件中。
㈦ 关系数据库表之间有哪几种关系类型
表间关系分类:一对一,一对多,多对多。作用:建立永久关系和临时关系
㈧ 对于关系型数据库表之间存在什么和什么关系
存在一对一和一对多,多对多型铅关系。
根据今日指晌头条资料,关系型数据库表之间关系一般分为:卜逗好一对一和一对多,多对多关系。
关系型数据库,全称叫关系型数据库管理系统。
㈨ Access怎么建立数据表间的关系
1、首先,在打开Access数据库之后,我们创建两个数据表作为示例。