mysql- designing database(2)

案例

电影出租应用 的数据库-sakila

一个虚构的电影租赁公司,租片给客户 - 数据模型,我们在这里的设计是创建sakila。该数据库提供影片的资料,记录租赁交易,并存储店里的顾客和销售人员的姓名。以模式下的数据,我们使用下面的基本业务规则:

存储信息为每部影片:标题,评级,分类,清点,语言多同一部电影的拷贝分别在库存处理。
存储的信息为客户提供包括地址谁保留和租金的电影。
存储信息的销售人员谁租片
客户记录应该从员工记录截然不同。
存储每个租赁交易信息。这些信息包括谁租的电影,这电影/复印,工作人员谁跑的交易,租金的日期,返回日期的客户。每部电影租金记录作为一个单独的事务。
保持支付信息租金。
存储在类,语言,工作室基本查查资料。

业务规则是,将需要创建一个数据库规范只是一个初步名单,并一般应足以对一个数据模型开始。我们用基于额外的业务规则等元素提升我们的数据库。

基本建模过程:创建一个数据模型

关系模型是基于表和这些表之间的有意义的关系。具体地,一个表是由形成一个台状结构的列和行。该行是通过使用主键的标识,并且该列映射到各个属性的实体。利用这些概念,我们设计一个符合关系模型的标准数据库。

对于关系型数据库的数据模型应该显示所有的以下信息:

组成的数据库中的表或潜在的实体

构成每个表中的列

定义每一列的数据类型

该标识每一行的主键

表之间存在的关系

精练走向全面正常化的数据模型

 

逻辑与物理模型

最终,一个数据模型应该关心的是如何表示的数据库是在一个特定的RDBMS实现。所以我们首先设计了一个逻辑数据模型,并使用它来开发,代表有该数据库实际上将在一个特定的RDBMS(如MySQL)来实现一个物理数据模型。

逻辑数据模型是关注的纯数据存储,严格遵守规范化和关系模型的规则,是无动于衷的实施方面,如哪些文件,自动生成密钥。

对于这个过程中,我们只建立一个物理数据模型,因为我们已经为对象的MySQL。

 

实体关系模型

流行的实体关系(ER)模型通常用于建模的数据库。它的好处在于它的简单,清晰,数据及其关系的简单图形表示。数据使用的概念,如“实体”,“实体集”,“属性”,并描述“关系”。

实体和实体集

一个实体是一个不同的对象与其他对象区分开来。例如,一个电影和一个顾客是两个不同的实体。类似实体组的集合,形成实体集。

属性

实体的属性称为属性。例如,

film 评级是实体film的一个属性,
lastname和address是customer的属性。
属性都与它们相关的值,分别确定了一个实体。例如,一个film有3.99美元出租,并且是从另一个film$ 3.99以相同的价格。一位顾客实体,其属性姓氏的值为伯克是姓氏为哈根从另一个不同的客户。

不同的属性值区分类似的实体在彼此设置相同的实体,但是许多实体可以具有相同的属性值。例如,可以有几个电影企业用相同的租金。

一个实体必须有一个或多个属性。在一个实体集中的所有实体具有相同的属性。属性的一个子集,用于区分实体彼此通常称为实体集的键设置一个实体。在实体集的实体必须具有一套独特的键值。

关系一个关系实例指定实体之间的关联。例如,客户预订和租电影。预订的过程中涉及的customer和预订的film。

实体可以有几种类型的关系:

一对一:在一个实体集的实体与另一个实体集中至多有一个实体相关联,反之亦然。

一到多:在一个实体集的实体与另一个实体集众多(零个或多个)实体相关联。

多对一:在一个实体集许多(零个或多个)实体可以与另一个实体集中的一个实体相关联。

多对多:在一个实体集许多(零个或多个)实体可以在其他实体集许多实体相关联。

业务规则表明两个或多个表之间的关系。让我们确定我们的sakila数据库持久化(价值贮存)的关系

。客户预定电影- 多对多

客户对电影拷贝租赁交易- 多对多A

film有一定的类别,并在一定的语言- 多对一

不同的人员储备和租金的电影给客户- 多对多

关系也可以有属性。它们被用来提供关于关系的信息。例如,在租金关系的rental_date属性可以用来描述film被租用。

关系类型

一个关系数据库中的定义特征是,不同类型的关系的表之间存在的事实。这些关系允许在表中的数据进行相互以有意义的方式来帮助确保规范化的数据的完整性有关。由于这种关系,在一个表中的行动不能产生不利另一个表中的数据的影响。

对于任何关系型数据库,有可以表之间存在三种基本类型的关系:一比一的关系,一到多的关系,许多一对多的关系。本节将一起来看看这些关系。

一比一的关系

一个一对一的关系,可以任意两个表,其中一列中的第一个表可以在第二表中的第二表和一排地与只有一排之间存在可以在第一表上与只有一排。

几个不同的系统被用来表示表之间的关系,所有这些都与具有特殊的符号在这些线的末端线连接的表。在这一课中的示例使用一个非常基本的系统来表示的关系。

通常,一对1的关系是可以在关系数据库中实现的关系的可能性最小的类型;但是,有时会有理由来使用它们。例如,您可能想单独的表,只是因为一个表中会包含太多的数据,或者你想将数据分成不同的表,所以你可以建立一个表有更高的安全级别。即便如此,大多数数据库含有相对较少的,如果有的话,一到一对一关系。关系中最常见的类型,你很可能会发现是一个一对多。

一个一对多的关系

作为一个一对一的关系,一个one-to-many关系可以在你的数据库中的任何两个表之间存在。阿1对多的关系,不同于一对一的关系在某一行中的第一个表可以与第二个表中的一行或多行,但是行中的第二个表可以与只有一个排在第一个表。

一个一到多的关系可能是关系中最常见的类型你会在你的数据库中看到。一个多到一的关系是一个简单的扭转,其中的表称为顺序。

多对多的关系

多对多的关系,可以任意两个表,其中一列中的第一个表可以与第二个表中的一行或多行,但是行中的第二个表可以涉及在一个或多个行之间存在第一个表。当许多一对多的关系存在,它是通过添加这两个表之间的第三表中匹配一个表的主键的值到第二个表的主键值,使得许多一对多的关系,实现合乎逻辑的。

通过外键连接

另外一个方面,在片中表要注意的是LANGUAGE_ID列标记FK1。 FK是一个缩写的外键。作为外键,该LANGUAGE_ID列包含在语言表中的LANGUAGE_ID列从相关行中的键值。外键表示这两个表,通过连接这两个表的行指定之间的关系。

你可能感兴趣的:(mysql- designing database(2))