Base de datos MySQL _ diseño simple de la base de datos

Base de datos MySQL

Diseño simple de la base de datos

  • La base de datos relacional se basa en el modelo ER. Necesitamos extraer el modelo y la relación de acuerdo con el plan de diseño del gerente de producto, y formular la estructura de la tabla. Este es el primer paso del proyecto.
  • En el desarrollo, hay muchos softwares para diseñar bases de datos, como power designer, db desinger, etc., que pueden ver de forma intuitiva entidades y las relaciones entre entidades.
  • Diseñe la base de datos, que puede ser completada por un diseñador de base de datos dedicado, o puede ser completada por miembros del equipo de desarrollo, generalmente el gerente del proyecto dirige a los miembros del equipo para completar
  • Los desarrolladores no necesitan completar el diseño de la base de datos de forma independiente, pero deben prestar atención para acumular algo de experiencia en esta área.

Tres paradigmas

  • Luego de investigar y resumir los problemas en uso, se proponen algunas especificaciones para el diseño de la base de datos, que se denominan Formas Normales.
  • Actualmente existen 8 paradigmas que se pueden encontrar, generalmente se deben seguir 3 paradigmas.

Primera forma normal (1NF)

  • El énfasis está en el principio de la columna, es decir, la columna no se puede dividir en otras columnas.
考虑这样一个表:【联系人】(姓名,性别,电话) 如果在实际场景中,一个联系人有家庭电话和公司电
话,那么这种表结构设计就没有达到 1NF。要符合 1NF 我们只需把列(电话)拆分,即:【联系人】(姓
名,性别,家庭电话,公司电话)。1NF 很好辨别,但是 2NF 和 3NF 就容易搞混淆。

第一范式示例

sheji01

Segunda forma normal (2NF)

  • La primera es 1NF, y hay otras dos partes. Una es que la tabla debe tener una clave primaria; la otra es que las columnas que no están incluidas en la clave primaria deben ser completamente dependientes de la clave primaria, no solo una parte de la clave principal.
考虑一个订单明细表:【OrderDetail】(OrderID,ProductID,UnitPrice,Discount,
Quantity,ProductName)。 因为我们知道在一个订单中可以订购多种产品,所以单单一个 OrderID 
是不足以成为主键的,主键应该是(OrderID,ProductID)。显而易见 Discount(折扣),
Quantity(数量)完全依赖(取决)于主键(OderID,ProductID),而 UnitPrice,ProductName 
只依赖于 ProductID。所以 OrderDetail 表不符合 2NF。不符合 2NF 的设计容易产生冗余数据。


可以把【OrderDetail】表拆分为【OrderDetail】(OrderID,ProductID,Discount,
Quantity)和【Product】(ProductID,UnitPrice,ProductName)来消除原订单表中
UnitPrice,ProductName多次重复的情况。

第二范式示例

sheji02

Tercera forma normal (3NF)

  • La primera es 2NF. Además, las columnas de clave no principal deben depender directamente de la clave principal y no puede haber dependencias transitivas. Es decir, no puede existir: la columna A de clave no principal depende de la columna B de clave no principal y la columna B de clave no principal depende de la clave principal.
考虑一个订单表【Order】(OrderID,OrderDate,CustomerID,CustomerName,CustomerAddr,
CustomerCity)主键是(OrderID)。 其中 OrderDate,CustomerID,CustomerName,
CustomerAddr,CustomerCity 等非主键列都完全依赖于主键(OrderID),所以符合 2NF。不过问题
是 CustomerName,CustomerAddr,CustomerCity 直接依赖的是 CustomerID(非主键列),而不
是直接依赖于主键,它是通过传递才依赖于主键,所以不符合 3NF。 通过拆分【Order】为【Order】
(OrderID,OrderDate,CustomerID)和【Customer】(CustomerID,CustomerName,
CustomerAddr,CustomerCity)从而达到 3NF。 *第二范式(2NF)和第三范式(3NF)的概念很容易
混淆,区分它们的关键点在于,2NF:非主键列是否完全依赖于主键,还是依赖于主键的一部分;3NF:非主
键列是直接依赖于主键,还是直接依赖于非主键列。

第三范式示例

sheji03

Mesa final

sheji04

Modelo ER

  • E significa entrada, entidad, diseñar una entidad es como definir una clase, especificar desde qué aspectos se describe el objeto y una entidad se convierte en una tabla en la base de datos
  • R representa relación, relación, relación describe las reglas correspondientes entre dos entidades, los tipos de relaciones incluyen uno a uno, uno a muchos y muchos a muchos
  • La relación también es un tipo de datos, que deben almacenarse en la tabla a través de un campo
  • La entidad A a la entidad B es de 1 a 1, luego cree un campo en la tabla A o la tabla B para almacenar el valor de la clave principal de otra tabla

er02

  • La entidad A es de uno a muchos para la entidad B: cree un campo en la tabla B para almacenar el valor de la clave principal de la tabla A

er02

  • La entidad A es de muchos a muchos para la entidad B: cree una nueva tabla C, esta tabla tiene solo dos campos, uno se usa para almacenar el valor de clave principal de A y el otro se usa para almacenar el valor de clave principal de B .

er03

Lápida sepulcral

  • En el caso de datos importantes, no quiero eliminarlos físicamente. Una vez eliminados, los datos no se pueden recuperar.
  • Eliminar esquema: establezca la columna de isDelete, el tipo es bit, lo que significa eliminación lógica, el valor predeterminado es 0
  • Para datos no importantes, se puede eliminar físicamente
  • La importancia de los datos debe decidirse en función del desarrollo real.

Lectura extendida

Supongo que te gusta

Origin blog.csdn.net/weixin_42250835/article/details/90454674
Recomendado
Clasificación