# data[].attributes.body
Modelo: Representación gráfica o esquemática de una realidad, sirve para organizar y comunicar de forma clara los elementos que involucran un todo.

Entidad: Una entidad o ente es todo aquello cuya existencia es reconocida por algún sistema de ontología [En filosofía, la ontología es una parte de la metafísica que estudia lo que hay, es decir cuáles entidades existen y cuáles no]. Las entidades no son sólo objetos cotidianos como sillas o personas, sino también propiedades, relaciones, eventos, números, conjuntos, proposiciones, mundos posibles, creencias, pensamientos, etc.

Relación: Es una conexión o asociación lógica o natural entre personas y cosas.

# data[].attributes.body
Este modelo se obtiene en tiempo de diseño de la base de datos. Fue propuesto por Peter Chen en 1976 y desde entonces se viene utilizando de una forma muy global.  Con este modelo conseguimos representar de manera gráfica la estructura lógica de una base de datos.

# data[].attributes.body
1. Entidades: Se trata de un objeto del que se recoge información de interés de cara a la base de datos. Gráficamente se representan mediante un rectángulo.  Un ejemplo seria la entidad banco, donde se recogerían los datos relativos a ese banco, como puede ser el nombre, el número de sucursal, la dirección, etc.

Cuando una entidad participa en una relación puede adquirir un papel fuerte o débil.

Una entidad débil: Es aquella que no puede existir sin participar en la relación, es decir, aquella que no puede ser unívocamente identificada solamente por sus atributos.

Una entidad fuerte: Es aquella que sí puede ser identificada unívocamente.

# data[].attributes.body
2. Atributos: Son las características que definen o identifican a una entidad, estas pueden ser muchas, y solo el diseñador utiliza o implementa las que considere más relevantes. Los atributos son las propiedades que describen a cada entidad en un conjunto de entidades.

Ejemplos: A la colección de entidades Alumnos, con el siguiente conjunto de atributos en común, (id, nombre, edad, semestre), pertenecen las entidades:

(1, Sofía, 38 años, 2)

(2, Josefa, 19 años, 5)

(3, Carlos, 20 años, 2)
Cada una de las entidades pertenecientes a este conjunto se diferencia de las demás por el valor de sus atributos. Nótese que dos o más entidades diferentes pueden tener los mismos valores para algunos de sus atributos, pero nunca para todos.

En particular, los atributos identificativos son aquellos que permiten diferenciar a una instancia de la entidad de otra distinta. Por ejemplo, el atributo identificativo que distingue a un alumno de otro es su número de id.

# data[].attributes.body
3. Relación: Podemos definir la relación como una asociación de dos o más entidades. A cada relación se le asigna un nombre para poder distinguirla de las demás y saber su función dentro del modelo entidad-relación.

Tipos de grado de relación:
Relaciones de grado 1: Se destacan en que solo relacionan una entidad consigo misma.
Relaciones de grado 2: Son relaciones que asocian dos entidades distintas, y las de grado n que se tratan de relaciones que unen más de dos entidades.

Las relaciones se representas gráficamente con rombos, dentro de ellas se coloca el nombre de la relación.
Otra característica es el tipo de correspondencia entre dos relaciones;

1:1. Uno a uno, a cada ocurrencia de una entidad le corresponde como máximo una ocurrencia de la otra entidad relacionada.

1:N. Uno a Mucho, a cada ocurrencia de la entidad A le pueden corresponder varias de la entidad B.

N:M. Muchos a muchos, cada ocurrencia de una entidad puede contener varias de la otra entidad relacionada y viceversa.

# data[].attributes.body
4. Cardinalidad: El tipo de cardinalidad se representa mediante una etiqueta en el exterior de la relación, respectivamente: "1:1", "1:N" y "N:M", aunque la notación depende del lenguaje utilizado, la que más se usa actualmente es el que hemos presentado.

Otra forma de expresar la cardinalidad es situando un símbolo cerca de la línea que conecta una entidad con una relación:

"0" si cada instancia de la entidad no está obligada a participar en la relación.

"1" si toda instancia de la entidad está obligada a participar en la relación y, además, solamente participa una vez.

"N”, "M", o "*" si cada instancia de la entidad no está obligada a participar en la relación y puede hacerlo cualquier número de veces.

Ejemplos de relaciones que expresan cardinalidad:

Cada esposo (entidad) está casado (relación) con una única esposa (entidad) y viceversa. Es una relación 1:1.

Una factura (entidad) se emite (relación) a una persona (entidad) y sólo una, pero una persona puede tener varias facturas emitidas a su nombre. Todas las facturas se emiten a nombre de alguien. Es una relación 1:N.

Un cliente (entidad) puede comprar (relación) varios artículos (entidad) y un artículo puede ser comprado por varios clientes distintos. Es una relación N:M.

Hay varias maneras de mostrar las cardinalidades en el diagrama. Una de ellas es poner etiquetas en las líneas que unen las relaciones con las entidades. La etiqueta consiste de un mínimo y un máximo, cada uno de los cuales contiene un cero, un uno o una letra n (“varios”). Si la cardinalidad es exactamente uno, se pone sólo el uno. En el caso de una relación varios a varios, lo usual es poner una m en un extremo y una n en el otro.

# data[].attributes.headline
Al crear base de se consideran 3 tipos de modelado:

# data[].attributes.subject
Al crear base de se consideran 3 tipos de modelado:

# data[].attributes.body
1. El conceptual y lógico: La unión de todos los datos y sus relaciones.  Ambos son conceptuales en el sentido de que convierten parámetros del mundo real en abstracciones que permiten entender los datos sin tener en cuenta la física de los mismos.
2. El físico: el almacenamiento de los datos y sus formas de acceso.

# data[].attributes.body
se considera un modelo conceptual ya que permite a un nivel alto el ver con claridad la información utilizada en algún problema o negocio.
En este capítulo nos concentraremos en desarrollar un buen modelo "lógico" que se conoce como "esquema de la base de datos" (database schema) a partir del cual se podrá realizar el modelado físico en el DBMS, es importante mencionar que es un paso necesario, no se puede partir de un modelo conceptual para realizar un físico.
Puede resultar confuso el concepto de modelo entidad-relación vs modelo relacional, quizás porque ambos comparten casi las mismas palabras. Como se mencionó en la sección anterior, el objetivo del modelo relacional es crear un "esquema" (schema) que será un conjunto de tablas.

# data[].attributes.body
1. Creando un conjunto de tablas iniciales y aplicar operaciones de normalización hasta conseguir el esquema más óptimo.
2. Convertir el diagrama e-r a tablas y posteriormente aplicar también operaciones de normalización hasta conseguir el esquema óptimo.

# data[].attributes.headline
La primera técnica fue de las primeras en existir y, como es de suponerse, la segunda al ser más reciente es mucho más conveniente en varios aspectos:

# data[].attributes.subject
La primera técnica fue de las primeras en existir y, como es de suponerse, la segunda al ser más reciente es mucho más conveniente en varios aspectos:

# data[].attributes.body
1. El partir de un diagrama visual es muy útil para apreciar los detalles, de ahí que se llame modelo conceptual.
2. El crear las tablas iniciales es mucho más simple a través de las reglas de conversión.
3. Se podría pensar que es lo mismo porque finalmente hay que "normalizar" las tablas de todas formas, pero la ventaja de partir del modelo e-r es que la "normalización" es mínima por lo general.
4. Lo anterior tiene otra ventaja, aun cuando se normalice de manera deficiente, se garantiza un esquema aceptable, en la primera técnica no es así.

# data[].attributes.body
El modelo relacional proporciona una manera simple de representar los datos, una tabla bidimensional llamada relación.
La relación Películas tiene la intención de manejar la información de las instancias en la entidad Películas, cada renglón corresponde a una entidad película y cada columna corresponde a uno de los atributos de la entidad.

# data[].attributes.body
Los atributos son las columnas de una relación y describen características particulares de ella.
Esquemas: Es el nombre que se le da a una relación y el conjunto de atributos en ella.

Películas (título, año, duración, tipo).
En un modelo relación, un diseño consiste de uno o más esquemas, a este conjunto se le conoce como "esquema relacional de base de datos" (relational database schema) o simplemente "esquema de base de datos" (database schema).

# data[].attributes.body
Cada uno de los renglones en una relación conteniendo valores para cada uno de los atributos.
Dominios: Se debe considerar que cada atributo (columna) debe ser atómico, es decir, que no sea divisible, no se puede pensar en un atributo como un "registro" o "estructura" de datos.
Representaciones equivalentes de una relación: Las relaciones son un conjunto de tuplas, no una lista de tuplas. El orden en que aparecen las tuplas es irrelevante.
Así mismo el orden de los atributos tampoco es relevante.

# data[].attributes.headline
Para hacer esta trasformación se comienza con un modelo E-R porque es más fácil de diseñar.  Para esto manejaremos dos conceptos: entidad y relación.  Existe una versión simple que se detalla a continuación:

# data[].attributes.subject
Para hacer esta trasformación se comienza con un modelo E-R porque es más fácil de diseñar.  Para esto manejaremos dos conceptos: entidad y relación.  Existe una versión simple que se detalla a continuación:

# data[].attributes.body
1. Cada entidad se transforma en una tabla con los mismos atributos.

2. Se agregan claves donde sea necesario.

3. Cada relación se transforma en una tabla en que los atributos son las claves de cada entidad participante.

Paso 0 – Confección del diagrama Entidad - Relación

# data[].attributes.body
Paso 1 – Agregar claves donde sea necesario

# data[].attributes.body
Paso 2 – Creación de tablas a partir de las entidades

# data[].attributes.body
Paso 3 – Creación de tablas a partir de las relaciones

# data[].attributes.body
Paso 4 – Verificación de las relaciones / Tipo 1 a N se descartan

# data[].attributes.body
Paso 5 – Combinamos las relaciones de 1-N