Los datos generalmente se asocian con la programación y en el mundo moderno de la información se presentan en tres versiones lógicamente equivalentes: datos descritos y utilizados en un programa en un lenguaje de programación; datos en sistemas de bases de datos; datos en sistemas de información distribuidos. La programación moderna ha dado relativa libertad solo a la primera variante de formalización de la información. Las dos segundas opciones son formas más o menos fiables de proporcionar información y relaciones entre sus componentes.
Datos pasados y presentes
La posición fundamental de los lenguajes de programación es la descripción exacta de datos y algoritmos. Las computadoras no "presentan" ninguna posibilidad de incertidumbre: hay algo sobre lo que actuar y hay un comando que realiza esa acción.
El concepto moderno se basa en una base mucho más elevada: hay algo dado, y lo que será exactamente se determina en el lugar de su uso. En cualquier caso, en el momento del uso, los datos se verifican automáticamente y se convierten al tipo correcto. Un programador moderno no está obligado a cuidar su descripción preliminar y la observancia de la compatibilidad de tipos en el algoritmo.
Proceso de transición:
- de los datos escritos y su descripción obligatoria antes de su uso;
- a datos no tipificados y libre de cualquier obligación de describirlos y usarlos.
De hecho, podemos reconocer la relativa relajación de los requisitos de formalización: solo está disponible en el entorno de las herramientas de programación modernas. En tiempo de ejecución, el tipo de cada dato es fijo y la secuencia de comandos está bien definida.
Tipos y modelado
Las matemáticas y la física, el comercio y la producción, la economía y otras áreas donde se utilizan números, siempre han operado con datos y no le dieron ninguna importancia al concepto de tipo. El hecho de que los números pudieran ser enteros o fraccionarios realmente no importaba.
Cada fórmula específica o acción específica podría dar un número entero, una fracción infinita, un número real o un número complejo. Hasta ahora, existen maravillas de la mente como infinitamente pequeñas e infinitamente grandes. Además, estos milagros incluso tienen propiedades.
Todavía no hay libertad en la programación. Todo debe estar estrictamente formalizado. El concepto de dato es, ante todo, un tipo:
- entero;
- booleano;
- carácter;
- cadena y así sucesivamente.
Los nombres de tipos pueden diferir en diferentes lenguajes de programación, pero siempre hay un número entero o real, valor booleano, símbolo,línea. Todavía quedan reliquias e ideas específicas: entero sin signo, código, byte, palabra, palabra doble, cadena de longitud fija.
El concepto de datos en un sistema de datos no tiene libertad. El lenguaje SQL - "internacional" (hay un dialecto para cada base de datos moderna) - no tolera ninguna inexactitud no solo en los datos, sino también en las consultas sql. Un error en la solicitud es garantía de ausencia de resultado. No hay necesidad de hablar de violaciones de descripciones en absoluto.
Modelar procesos de información y representaciones de datos es la única forma segura de construir una estructura que pueda evolucionar y adaptarse a las condiciones cambiantes.
Dinámica del original
La información natural es un cambio continuo. Dar una descripción formal y un concepto de un modelo de datos en un área temática específica significa resolver tres problemas:
- definir qué datos hay aquí;
- formalizar la relación entre ellos;
- describe procesos para cambiar datos y relaciones.
Un ejemplo de un conjunto de datos de un algoritmo simple en JavaScript: una copia reducida del modelo incluso del sistema de administración de base de datos más sólido.
Es que en el segundo caso, los expertos y especialistas, al diseñar estructuras de datos, tablas y relaciones, no suelen ver (es realmente difícil abarcar una gran cantidad de información natural) la esencia de las cosas, y se obtiene un conjunto de montones de datos engorrosos y sin desarrollar, mientras que en el área temática la información fuente circula libre y fácilmente.
Estáticoposible
Es una práctica común de JavaScript incluir código adjunto a una página y funciones asignadas a eventos en etiquetas de página. De cualquier manera, las etiquetas de página definen los datos que un recurso web determinado acepta, modifica o crea.
Si concentra su código de controlador con mucho cuidado en los eventos de los elementos, y no en el código de la página como un todo, esta es la mejor salida. Idealmente, cuando el código no introduce nuevos datos o no corrige los datos disponibles, sino que se enfoca en lo que tiene exactamente en un momento particular.
De hecho, si define el concepto de "datos" como una descripción mínimamente estática de la fuente de información y la sigue, significa que tiene posibilidades de éxito.
Con respecto a las bases de datos, las cosas son mucho más complicadas. Cualquier código JavaScript está "proporcionando" funcionalidad a la página. Cualquier base de datos es una colección de tablas, relaciones entre ellas, procedimientos almacenados, consultas y funcionalidad disponible desde el exterior.
La estática es el problema de cualquier algoritmo. El concepto moderno de datos es estático: un número, una cadena, un carácter, etc. Al procesar o al escribir en una tabla de base de datos, todo sale bien. Pero, ¿cuándo adquiere el original una dimensión o significado diferente? Opción uno: cambie el letrero, pero las conexiones y las solicitudes pueden caer inmediatamente.
Estatica y objetos
Definir el concepto de "datos" como un objeto cambia drásticamente la situación. El objeto tiene su propia estructura. Aquí puede utilizar cualquier descripción de cualquier variable. El papel no se jugará. Un objeto tiene métodos a través de los cuales los datos están disponibles. ya que todoutilizado en el campo de la programación, es decir, tres métodos básicos: leer, escribir, cambiar. Puede agregar más para comparar, buscar, clonar, etc.
El área temática impone una serie de propiedades a cada dato. Así, resulta que el concepto de dato se transforma en una especie de descripción que se puede cambiar dinámicamente. La estática dentro de un objeto da dinámica fuera de él.
Al cambiar la combinación de descriptores estáticos dentro de un objeto, no tiene que preocuparse por la dinámica de sus relaciones con otros objetos.
Programación y presentación de datos
¿Qué son los datos? La conciencia pública ya está acostumbrada a las tecnologías de la información, trabaja en las nubes y tiene contenedores en espacios virtuales. Ahora, no solo los programadores y usuarios profesionales, sino también la gente común son competentes en materia de información y su uso.
Pero, ¿qué es la programación? Hasta el día de hoy, la opinión pública da la siguiente definición a este concepto y sus conceptos:
- La información y los datos son los conceptos básicos utilizados en informática.
- Los datos son observaciones recibidas y registradas de cierta manera en relación con la realidad circundante.
- Son simples y complejas (estructuras), primarias y secundarias.
- Una base de datos es una colección de materiales independientes presentados de manera sistemática para que puedan ser encontrados, modificados y utilizados.
¿Qué tan objetivo es esto? Autores autorizadosEso creo. La práctica real tiende a garantizar que cada área temática determine su sistema de datos correcto y brinde todas las oportunidades para construir un buen modelo dinámico.
No es raro que un cliente (consumidor) imponga su propia opinión a un programador (diseñador de base de datos) sobre cómo y qué hacer. Desde el punto de vista de la programación, cualquier deseo del cliente puede cumplirse con la máxima precisión.
Se necesita Oracle para resolver el problema del presupuesto para el mantenimiento del suministro de agua rural (edificio 21 en el pueblo) - bueno. Se necesita MySQL para organizar un sistema de seguimiento de los artículos de correo para todas las oficinas postales de Rusia; todo funcionará también.
Siempre puede componer cualquier algoritmo y proporcionar acceso a cualquier representación de información dentro de la definición del concepto de datos, que establece el desarrollador del sistema de gestión de base de datos o lenguaje de programación. La pregunta es otra: ¿cómo hacerlo con costos mínimos en dinámica máxima?
Bases de datos, ejemplos
Se crea una base simple sin modelo. Los conceptos básicos de datos y comunicación son pequeños, la funcionalidad es muy simple. Por ejemplo, para una institución de educación superior necesita:
- tabla de profesores;
- tabla de grupos (clave y número de grupo);
- tabla general de alumnos (se utilizan claves de grupo).
El decano quiere saber el progreso de los profesores. La tabla de profesores tiene campos:
- apellido;
- nombre;
- patronímico;
- número de grupo supervisado.
La tabla de estudiantes tiene campos:
- apellido;
- nombre;
- patronímico;
- fecha de nacimiento;
- GPA (para todas las materias);
- número de grupo.
Puede haber al menos dos opciones para el muestreo: usando el nombre del maestro, puede ir al número de grupo y ver todos los estudiantes y sus puntajes promedio, o por el apellido del maestro y el último nombre del alumno, se puede ver la puntuación media del último.
Incluso en una versión tan simple, los problemas están garantizados y habrá que cambiar algo. Situación: el maestro se enfermó, otro mes lo reemplaza, lo que significa que supervisa dos grupos. Solo hay un campo bajo un número de grupo en la tabla de profesores.
Para resolver el problema, debe agregar un campo duplicado. Y si dos se enferman, agregue tres campos. Entonces la tabla de profesores comienza a crecer desde cero.
Hay otra opción: reemplazar el campo numérico de la clave de grupo por uno simbólico. Luego, cada vez que seleccione, tendrá que convertir la cadena en una secuencia de teclas, y una consulta sql se convertirá en varias.
Un ejemplo más prometedor no es hacer mesas, sino hacer objetos. Entonces el profesor es un objeto, y puede tener varios grupos supervisados. Pero siempre es un objeto. El objeto profesor tiene una clave única, pero puede tener varios grupos supervisados. El grupo también tiene una clave única. Un estudiante también.
Las tres posiciones no solo están disponibles dentro de la tarea, sino que pueden desarrollarse aún más.
Bases orientadas a objetos
Líderes de la industria de la informaciónofrecen bases de datos relacionales clásicas. Están probados de por vida, funcionan, son seguros, confiables y, en caso de problemas, te permiten restaurar la información.
Las bases de datos orientadas a objetos (OODB) comenzaron a desarrollarse a mediados de la década de 1980 y, según autores autorizados, son prometedoras hasta el día de hoy. Pero hasta ahora, aparte de las teorías fundamentales y las disposiciones conceptuales, no hay OODB que haya logrado la misma clasificación y distribución que MySQL, MS SQL Server u Oracle en todas sus diversas encarnaciones.
¿Pero qué pasa si la definición, el concepto de datos, tipos, atributos, clases, jerarquías es propuesto por un desarrollador cuya calificación es insuficiente para crear una comunidad de programadores que profesan la mentalidad de este OODB? Tendremos que confiar en nuestras propias fuerzas.
Se han creado más de treinta variantes de OODB en el entorno Linux. Pero, ¿dónde está la garantía de que la base de datos creada no requerirá más funcionalidad? El entorno de Windows no ofrece muchas garantías en esta área.
Solución orientada a objetos
Sin embargo, hay una solución. Usando MySQL como ejemplo, puede mostrar cómo las tablas relacionales estándar se convierten en un modelo orientado a objetos del problema que se está resolviendo.
Aquí no hay una base de datos, pero hay un entorno para formar su propio sistema de objetos. El poder de MySQL se usa solo como memoria relacional para tablas de filas de información. La lógica de uso la determina el propio desarrollador. En particular, hay una tabla is_cache. Lo tiene todovarios campos básicos:
- código_propietario;
- código_sesión;
- h_código;
- una_sorpresa;
- a_contenido.
El resto de los campos tienen funciones de servicio. Esta tabla se encuentra en la entrada de cualquier solicitud y registra su llegada. Lo que funcionará el modelo de base de datos lo determina su desarrollador. Lo que cabe en el campo de contenido (a_contents) está determinado por los objetos del modelo creado por el desarrollador.
Hay cuatro cosas en esta idea: éxito, sesión de éxito, código de historial de éxito y contenido específico. Qué es una llamada, qué sistema de objetos debe construirse, lo determina el desarrollador. Lo que se entiende por sesión (proceso de trabajo) lo determina el desarrollador. El código de historial es la capacidad de revertir las solicitudes.
Las tablas aquí no tienen nada que ver con el tema. Hay un controlador de llamadas (is_cache), hay registro (is_customs), hay un historial de llamadas (is_histories). Las tablas restantes están determinadas por la tarea que se está resolviendo.
De hecho, esta solución sugiere crear su propio OODB basado en el modelo de base de datos de dominio construido y el problema que se está resolviendo. Aquí hay una gran ventaja: este es su propio concepto de datos, su propio modelo de su presentación y la relación entre ellos. Hay una base aquí: una gran base de datos relacional. No habrá problemas buscando algo y malinterpretando algo.
Modelo: sistema de objetos + DBMS
Es casi imposible cambiar nada en la tecnología de la información. La verdadera revolución de la información aún está lejos. conciencia profesionalLos desarrolladores de software no van a cambiar las tradiciones clásicas. Pero todavía hay una salida a la situación.
Usando sistemas de administración de bases de datos modernos y confiables como base para crear un entorno para la existencia de su propio modelo, puede lograr un éxito notable.
En cualquier caso, deberá construir una vista o un modelo de datos para resolver la tarea, pero debe hacerlo correctamente: que sea un sistema de objetos y un buen DBMS sea su entorno.