¿Cuál es la diferencia entre un modelo de datos y un esquema de base de datos?

Aunque esta pregunta se formula de una manera que me hace pensar que es para alguien que está tomando cursos académicos (espero que esto no responda una pregunta de tarea, lo que sería una trampa), voy a responderla como si una persona de negocios estuviera tratando de entenderlo. Diferente y mucho menos técnico, pero enormemente importante para que los estudiantes, profesores, empresas y TI avancen. Incluiré referencias técnicas con más detalle.

¿Cuál es la diferencia entre un modelo de datos y un esquema de base de datos ?

Es comprensible por qué esto confundiría:

  • Ambos no son los datos en sí
  • Ambos tienen datos como foco
  • Ambos describen cómo se almacenan los datos.
  • Ambos requieren una comprensión de vocabularios especiales, herramientas y técnicas para apoyar proyectos de desarrollo.
  • Ambos no tienen que estar limitados a un solo proceso o aplicación, sin embargo, deben tener límites documentados.

Pero hay diferencias en algo llamado “capas de abstracción”, que es muy importante para la arquitectura técnica

La diferencia es que un modelo de datos describe los requisitos para las definiciones de datos de información descriptiva y relaciones, mientras que una base de datos, ya sea con un esquema o sin esquema, es el código que implementa el almacenamiento en una plataforma de base de datos específica.

Entonces, más simplemente, el modelo de datos es la definición , el esquema de la base de datos, la implementación . El modelo de datos es el diseño de los datos independientemente de la tecnología de almacenamiento; El esquema de la base de datos es el diseño de los datos modificados para ajustarse a una tecnología de base de datos específica. Existen múltiples tipos de modelos de datos:

  1. Modelo de datos conceptuales: detalle mínimo
  2. Modelo de datos lógicos: la mayoría de los detalles comerciales
  3. Modelo de datos físicos: técnicamente alineado con una plataforma y capaz de generar un esquema de base de datos de primer corte.

Entonces, ¿qué tiene un modelo que un esquema de base de datos puede no tener? Por lo general, definiciones comerciales detalladas para agrupaciones lógicas de datos junto con reglas comerciales sobre cómo se conectan los datos. Los grupos de datos relacionados se denominan entidades, las descripciones de conexión se denominan relaciones, y existe una técnica de notación abreviada llamada diagrama de modelo de datos que tiene cuadros y líneas que se utilizan para representar los requisitos de datos. Existen paquetes de software especializados para respaldar la creación del modelo de datos.

Y a su vez, ¿qué tiene un esquema de base de datos que no tiene un modelo? La diferencia más crítica es que está limitada por la tecnología. Las funciones y las representaciones de datos se limitan a lo que está disponible en una plataforma de base de datos específica . Otro factor importante es que cuando se genera un esquema, con frecuencia se toman decisiones que mejoran el rendimiento con aplicaciones específicas.

Esperemos que esto responda la pregunta, y agregaré la siguiente advertencia:

La realidad comercial más crítica de la implementación: cada decisión de cambiar del modelo de datos lógico es una restricción en la implementación de los requisitos comerciales. Mitigarlos y gestionarlos.

Notas al pie

[1] Multas de GDPR: cómo se aplican las multas y sanciones administrativas de GDPR

[2] Análisis de datos para analistas de negocios: herramientas del oficio

[3] Comparación de sistemas de gestión de bases de datos relacionales

[4] Base de datos NoSQL: la guía definitiva para las bases de datos NoSQL

En un enfoque muy simple, un modelo de datos es la estructura de cómo deberían verse sus datos y un esquema de base de datos es algo real. Puedes seguir la ecuación,

Esquema de base de datos = Modelo de datos + Datos + Metadatos

Otra cosa es que un modelo de datos puede considerarse como una representación de sus datos en lenguaje de programación.

Intentemos ver un ejemplo aquí,

Debe representar a un empleado en su solicitud. Desea tener una identificación de empleado, departamento, salario, nombre de un empleado.

Entonces, su modelo de datos debe ser algo como lo siguiente,

Empleado {id, nombre, departamento, salario}

Una representación de lenguaje de programación (Java) es algo como,

/ *
* Copyright 2014-2015 Palash Kanti Kundu.
* *
* Licenciado bajo la Licencia Apache, Versión 2.0 (la “Licencia”);
* no puede usar este archivo excepto en cumplimiento con la Licencia.
* Puede obtener una copia de la Licencia en
* *
* http://www.apache.org/licenses/LICENSE-2.0
* *
* A menos que lo exija la ley aplicable o se acuerde por escrito, el software
* distribuido bajo la Licencia se distribuye “TAL CUAL”,
* SIN GARANTÍAS O CONDICIONES DE NINGÚN TIPO, ya sea expresa o implícita.
* Consulte la Licencia para ver los permisos específicos de idioma y
* limitaciones bajo la Licencia.
* /
/ **
* @autor Palash Kanti Kundu
* @version 1.0
* @ desde el 19 de diciembre de 2015
* /
Empleado de clase pública {
ID de cadena privada;
nombre de cadena privada;
departamento privado int;
doble salario privado;
/ **
* @ devolver la identificación
* /
public String getId () {
ID de retorno;
}
/ **
* @param id
* la identificación para establecer
* /
public void setId (ID de cadena) {
this.id = id;
}
/ **
* @ devuelve el nombre
* /
public String getName () {
nombre de retorno;
}
/ **
* @param name
* el nombre para establecer
* /
public void setName (nombre de cadena) {
this.name = nombre;
}
/ **
* @ devolver el departamento
* /
public int getDepartment () {
departamento de retorno;
}
/ **
* @param department
* el departamento para establecer
* /
public void setDepartment (departamento int) {
this.department = departamento;
}
/ **
* @ devolver el salario
* /
public double getSalary () {
salario de retorno;
}
/ **
* @param salario
* el salario a establecer
* /
conjunto público vacío Salario (doble salario) {
this.salary = salario;
}
}

Que simplemente es una representación del modelo abstracto de datos legibles por humanos.

Ahora, cuando se trata de la base de datos, se mueve en esta dirección,

crear tabla EMPLEADO (ID VARCHAR (10), NAME VARCHAR (50), NÚMERO DE DEPARTAMENTO (2), NÚMERO DE SALARIO (9,3));

Cuando ejecutamos este código en cualquier base de datos, primero adquiere el espacio, crea una entidad para el mismo con la estructura y representación de los datos próximos y usa algún sistema de archivos para almacenar estos metadatos.

Cuando los datos llegan al sistema, recupera los metadatos del sistema de archivos y valida los datos entrantes con la información de metadatos almacenados y, si la validación pasa, los datos se almacenan en el sistema de archivos. Este es un resumen de 10,000 pies de cómo funciona un sistema de base de datos tímico. Va mucho trabajo más allá de estos métodos simples.

Espero que tengas una idea sobre las diferencias.

Nota: Lo que he escrito en esta respuesta es una vista de muy alto nivel para hacer que la respuesta sea lo suficientemente simple como para comprenderla. Para saber mejor sobre esto, debe sumergirse profundamente.

Un modelo de datos le brinda una comprensión conceptual de cómo los datos están estructurados en una base de datos, está codificado en el software DBMS. Por lo tanto, puedo decirlo como una especie de facilidad dada por la base de datos. Por ejemplo, el modelo relacional es uno de esos modelos de datos en qué datos se organizan como tablas y las tablas pueden relacionarse entre sí utilizando campos comunes en tablas para fines de vinculación (con otras tablas) .so el modelo de datos le brinda una vista de muy alto nivel de la estructura de datos en una base de datos. Después de conocer el modelo de datos uno puede usar esa estructura básica y construir un esquema fuera de ella.

Por lo tanto, el esquema es una descripción más particular sobre la estructura de la base de datos. Por ejemplo, en una base de datos que admita el modelo relacional, puede tener tablas en las que cada campo esté bien definido usando el tipo de datos, las claves, etc. Normalmente no desea cambiar su esquema más adelante. porque hace que sea difícil realizar cambios para los datos existentes.

Los modelos de datos son de diferentes tipos CDM, LDM, PDM (modelos de datos conceptuales, lógicos y físicos)

Los modelos de esquema también son de diferentes tipos en un DW organizacional: esquema de estrella, esquema de copo de nieve, esquema híbrido, etc.

El modelo de datos pertenece a la organización de los datos con jerarquías, relaciones, Pkeys, claves foráneas, cardinalidad, etc.

El modelo de esquema es más una disposición de dimensiones y hechos en un modelo particular como una estrella o un copo de nieve.

Modelado del almacén de datos: esquema estelar versus esquema de copo de nieve

Diría que el modelo de datos es una palabra menos formal que esquema. Y sí, generalmente comienza con un modelo de datos conceptual y cuando pasa a un modelo de datos físicos, está tomando decisiones prácticas sobre el rendimiento, etc.

Un esquema de base de datos es una representación de la base de datos, incluye tablas, atributos, claves primarias y externas, índices y otros detalles de la base de datos. Si tiene un esquema, puede volver a crear esa base de datos desde cero. No he visto las palabras internas, conceptuales y externas que se usan mucho con el esquema.

Ambos son parte del DBMS (Sistema de gestión de base de datos).

El modelo de datos es básicamente dos tipos:

  1. Modelo ER.
  2. Modelo relacional.

El esquema de la base de datos también es de dos tipos:

1. Físico.

2. Lógico.

El modelo de datos es una implementación de diseño de alto nivel que decide qué puede estar presente en el esquema. Proporciona a un usuario de la base de datos un marco conceptual en el que especificamos los requisitos de la base de datos del usuario de la base de datos y la estructura de la base de datos para cumplir con estos requisitos.

Un modelo de datos puede, por ejemplo, ser un modelo relacional donde los datos se organizarán en tablas, mientras que el esquema para este modelo sería el conjunto de atributos y sus dominios correspondientes.

Un esquema es un plano de la base de datos que especifica qué campos estarán presentes y cuáles serían sus tipos. Por ejemplo: – una tabla de empleados tendrá una columna de ID de empleado representada por una cadena de 10 dígitos y una columna de nombre de empleado con una cadena de 45 caracteres.

Modelado de datos: el modelado de datos (o modelado) en ingeniería de software es el proceso de crear un modelo de datos para un sistema de información mediante la aplicación de técnicas formales de modelado de datos.
Diseño de base de datos: el diseño de base de datos es el sistema de producción de un modelo de datos detallado de una base de datos. El término diseño de base de datos puede usarse para describir muchas partes diferentes del diseño de un sistema de base de datos general.

El modelado de datos es el proceso de documentar un diseño de sistema de software complejo como un diagrama fácil de entender, usando texto y símbolos para representar la forma en que los datos deben fluir. El diagrama se puede usar como modelo para la construcción de un nuevo software o para rediseñar una aplicación heredada.

Me gustaría compartir un enlace de video de ciencia de datos que proporciona una mejor comprensión sobre el modelo de datos y la base de datos.

Con una simplificación excesiva.

El modelo de datos es un diseño de datos.

El esquema de datos es una implementación basada en el diseño. La implementación podría basarse de muchas maneras en la tecnología de la base de datos.

El diseño se crea en un formato abstracto basado en los requisitos del usuario y no es específico de ninguna base de datos, es decir, lo mismo para todos los DB.

El modelo de datos decide qué puede contener un esquema, en contraste, el esquema de la base de datos no puede tener ningún control sobre el modelo de datos ya que el esquema de datos depende del modelo de datos.

Consulte estos enlaces externos:
– ¿Diferencia entre modelo de datos y esquema de base de datos en DBMS?
– ¿Esquema vs modelo?

Un modelo de datos es un modelo conceptual de cómo se organizan o representan los datos. Por ejemplo, una “red” o “gráfico” puede ser un modelo de datos.

Un esquema de base de datos es el método de representar un modelo de datos en la sintaxis y la estructura proporcionadas por una base de datos. Por ejemplo, un RDBMS típico no tiene el concepto de un gráfico / red, pero puede almacenarse como una tabla de pares de nodos que representan los nodos conectados en el gráfico.

Los modelos de datos son entidades fundamentales para introducir la abstracción en un DBMS. Los modelos de datos definen cómo se conectan los datos entre sí y cómo se procesan y almacenan dentro del sistema.

Un esquema de base de datos de un sistema de base de datos es su estructura descrita en un lenguaje formal soportado por el sistema de gestión de bases de datos ( DBMS ) y se refiere a la organización de datos como un modelo de cómo se construye la base de datos (dividida en tablas de base de datos en el caso de Relacional Bases de datos ).