Explicación del kernel de la base de datos- (1) descripción general del sistema de base de datos

Descripción general del sistema de base de datos (kernel)

Este capítulo se dividirá en las siguientes partes:

Algunos conceptos básicos del sistema de bases de datos

A continuación se utiliza la forma de preguntas para responder a la definición de algunos conceptos básicos de la base de datos:

  1. ¿Qué son los datos?
    Según la definición de término de la Enciclopedia Baidu: Los
    datos son valores numéricos, que es el resultado obtenido mediante observación, experimentación o cálculo. Hay muchos tipos de datos, el más simple son los números. Los datos también pueden ser texto, imagen, sonido, etc. Los datos se pueden utilizar para investigación científica, diseño, verificación, matemáticas, etc.
    Sin embargo, la definición de datos en la investigación será más amplia, los datos son: algunos símbolos que se pueden identificar cuando las personas los registran para reflejar el mundo objetivo. Por supuesto, estos símbolos incluyen texto, números y datos, incluidos datos multimedia.

  2. ¿Cuáles son las características de los datos?
    Los datos tienen semántica. Por ejemplo, los datos 90 tienen diferentes significados en diferentes situaciones, como 90 puntos en los puntajes de las pruebas, 90 km / h de velocidad del automóvil, etc.

  3. ¿Que es una base de datos?
    La base de datos también se llama Base de datos, y a menudo se la llama DB entre los programadores. Sus responsabilidades son:
    1. Los datos se pueden almacenar en la computadora durante mucho tiempo y los datos se pueden organizar de acuerdo con un determinado modelo de datos, que es una estructura de tabla en términos populares. .
    2. Puede ser compartido por los usuarios, es decir, la gente no puede. (Crear), (Recuperar), (Actualizar), (Eliminar)
    3. Para un determinado servicio de aplicación, la base de datos actual puede servir a más de un sistema, pero significa proporcionar servicios.
    4. La relación entre los datos está estrechamente relacionada.
    Por supuesto, esta función también se puede realizar en el sistema de archivos del sistema operativo, pero no se explicará por qué utilizar un sistema de base de datos sin un sistema de archivos aquí.

  4. ¿Qué es un sistema de administración de bases de datos? El sistema de administración de bases de
    datos también se llama Sistema de administración de bases de datos (DBMS), que son algunos de los programas que usamos para crear y mantener bases de datos, como Oracle11g, MySql, etc. Habrá gente mezclándose aquí, ¿no es esta una base de datos de la que estás hablando? Una base de datos es en realidad un almacén para almacenar datos Con algunos sistemas de bases de datos familiares, los programadores pueden manipular bien los datos.
    Existe un sistema operativo entre el sistema de base de datos y la base de datos.

  5. ¿Qué es el esquema de la base de datos?
    El maestro hablará sobre la base de datos cuando los estudiantes universitarios estén en la clase de la base de datos. Hay tres modos, modo interno, modo externo y modo (modo lógico). Sin embargo, debido a que los estudiantes universitarios no están familiarizados con los conceptos de la base de datos cuando aprenden por primera vez, No es fácil de entender, pero esta es la explicación principal y no detalla el proceso de uso y diseño de la base de datos.

Algunos problemas de implementación del sistema de base de datos

A continuación, ¡imagina que hemos implementado una base de datos simple nosotros mismos! ¡Llamémoslo Treeses DBMS por el momento!
 1. En primer lugar, lo primero que tiene que resolver nuestro DBMS es ¿cómo almacenar los archivos de la base de datos?
 El primer paso, tenemos que considerar qué método de codificación debería usar nuestra base de datos para almacenar, ¿binario? ¿Código ASCII?

 Todo debe almacenarse en archivos, y las bases de datos no son una excepción. Los archivos finalmente se almacenan en binario en la memoria. Para que nos parezca conveniente, almacenaremos nuestra base de datos en código ASC-II aquí.

 Entonces nos dimos cuenta de los detalles, la relación se almacena en archivos (ASC-II), donde los archivos se almacenan en la ubicación /user/db/data/table/user.db.
Estructura de la tabla de archivos
 Arriba estamos el almacenamiento de las tablas de nuestra base de datos, pero dado que es una base de datos relacional, siempre se almacenan algunos esquemas (estructuras de tabla), de lo contrario, ¿cómo sabemos para qué es esta tabla? Una estructura de tabla de esta tabla se almacena en el archivo /user/db/model/table_structure.db.

Inserte la descripción de la imagen aquí
 Desde entonces, solucionamos el problema de almacenamiento de la estructura de la mesa.

 Con la estructura de la tabla, ignoramos la caché intermedia, la memoria, el índice, el análisis de SQL, etc., ¡y tenemos que usar directamente la declaración SQL que hemos hecho para consultar!
  Ejecutamos la siguiente declaración:

Inserte la descripción de la imagen aquí
  Entonces, ¿cómo tratamos estos datos?
    En el primer paso, tenemos que leer el archivo table_structure.db para obtener la estructura de la tabla de la tabla del usuario;
    luego leer el archivo user.db correspondiente al usuario, verificar cada línea del archivo y generar la salida si se cumple la condición, y omitir si la condición no se cumple. Vaya a la siguiente línea.
   Hasta el final de la mesa.

Muy simple, a continuación:
 supongamos que también tenemos una tabla llamada tabla de estatura estándar (standard_stature.db), en la que cada altura corresponde a un peso estándar.
 Ejecutamos la siguiente declaración:

Inserte la descripción de la imagen aquí

  ¿Cómo se debe manejar esta declaración?

  El primer paso es el mismo, leer el archivo table_structure para obtener la estructura de la tabla de la tabla de usuario y la tabla de estado_estándar;
  luego ignoramos el siguiente proceso de análisis de costos de la conexión de la tabla y seguimos las reglas.
  Leer el archivo de usuario, para cada fila de datos, leer el archivo de estado estándar, para cada fila de datos, generar tuplas de conexión, verificar las condiciones, si se cumplen las condiciones, luego generar

  En este momento, Treeses DBMS tiene la función de definir tablas y algunas operaciones de datos. Pero, ¿cuáles son los problemas con nuestro DBMS Treeses?

  • ¿Nuestra eficiencia de consulta es realmente alta?
      ¿Qué pasa si podemos hacer la operación de selección primero? ¿Puede haber menos operaciones de conexión? ¡Hagamos un cálculo simple a continuación!
      Suponiendo que la tabla table_structure tiene 1000 datos y que standard_stature tiene 100 datos, según el plan original. (No considere la memoria)
          1000100 = 100000 io.
      Ahora, filtremos las tablas primero. Por ejemplo, la tabla A cumple con los requisitos de 500 datos y la tabla B cumple con los requisitos de 50 datos. Luego, las io veces de las dos tablas que se filtrarán son 1000 + 50 = 1500, y el volumen de datos restante es 500 Para barras y 50 barras, io tiempos son 500
    50 = 25000 veces, y un total de 25000 + 1500 = 16500 veces. Obviamente, la eficiencia es casi 10 veces más rápida, pero ¿es realmente cierto que el número de IO disminuirá en todos los casos? Esto se deja al propio pensamiento del lector.

  • Nuestras tuplas están en mosaico en el disco. ¿Es demasiado caro el costo del almacenamiento ASCII? ¿Es demasiado complicado para nosotros modificar la tupla de la tabla? ¿Es caro eliminar tuplas de tablas?

  • Todos nuestros datos se leen directamente desde el disco. Para saber que el costo del disco io es muy alto, ¿deberíamos considerar el búfer para optimizar nuestra eficiencia de acceso a los datos?

  • Si muchos usuarios visitan juntos, ¿cómo podemos asegurarnos de que los datos sean correctos? Por ejemplo, cuando modifico los datos, quieres leer los datos, ¿qué debo hacer?

  • La base de datos carece de índices, ¿la eficiencia de la consulta es un poco baja? ¿Tiene que leer la relación completa cada vez que consulta datos? En cuanto a por qué los índices pueden mejorar la eficiencia de las consultas, habrá explicaciones detalladas en artículos posteriores.

  • ¿Cómo garantizar la fiabilidad de la base de datos? Por ejemplo, ¿una falla repentina de energía? ¿Nuestra base de datos no tiene un mecanismo de recuperación cuando falla un sistema de base de datos, que es propenso a la inconsistencia de datos?

  • ¿Cómo se puede proporcionar la base de datos a las aplicaciones? ¿Sin API?

  • ¿Es la organización del diccionario de datos particularmente deficiente?

Evaluación integral, ¿este sistema de base de datos no está disponible para uso comercial? (Por desgracia, es vergonzoso evaluar el sistema de base de datos que he hecho después de muchos años. Puede ir a https://github.com/nainaiguang/Treeses.git)

实际上数据库怎么表达是个很复杂的问题,在后续的文章中会陆续的说到,上面的方式只是一个简单的说明。

Algunos problemas de diseño del sistema de base de datos

Los problemas de diseño del sistema de base de datos se refieren a algunos problemas cuando usamos el sistema de base de datos Este artículo proporciona ideas y el aprendizaje específico aún está para que el lector lo aprenda. No es el foco de esta serie jajajajaja

Problemas que pueden deberse a un diseño irregular del esquema de la base de datos. Como redundancia de datos, actualización de excepción, inserción de excepción, eliminación de excepción, etc.

Algunos problemas de acceso al sistema de base de datos

Es cómo definir el idioma de la base de datos, el idioma de la base de datos es el siguiente:

  1. Lenguaje de definición de base de datos (lenguaje de definición de datos DDL), los modos de acceso a la base de datos
    incluyen: crear bable; alterar la tabla desplegable
  2. Lenguaje de operación de la base de datos (lenguaje de manipulación de datos DML), datos de acceso a la base de datos que
    incluyen: insertar, eliminar, seleccionar actualizar
  3. Información de control de acceso de lenguaje de control de base de datos (lenguaje de control de datos DCL) que
    incluye: concesión; recoke

Las palabras en clave son tan agotadoras. Gracias por su apoyo. En el próximo artículo, dibujaré una arquitectura de base de datos completa. Los artículos futuros se centrarán en este núcleo de arquitectura. ¡Gracias!

Supongo que te gusta

Origin blog.csdn.net/qq_34364255/article/details/108609756
Recomendado
Clasificación