Primero, permítanme comenzar diciendo por qué necesitamos una base de datos.
Necesitamos una base de datos para ayudar a organizar la información de tal manera que podamos recuperar los datos almacenados de manera eficiente.
Ejemplos de sistemas de gestión de bases de datos relacionales (SQL):
1) Base de datos Oracle
2) SQLite
3) PostgreSQL
4) MySQL
5) Microsoft SQL Server
6) IBM DB2
Ejemplos de sistemas de gestión de bases de datos no relacionales (NoSQL)
1) MongoDB
2) Cassandra
3) Redis
4) Sofá
5) HBase
6) DocumentDB
7) Neo4j
Las bases de datos relacionales tienen datos normalizados, ya que la información se almacena en tablas en forma de filas y columnas, y normalmente cuando los datos están en forma normalizada, ayuda a reducir la redundancia de datos, y los datos en tablas normalmente están relacionados entre sí, por lo que cuando queremos recuperar los datos, podemos consultar los datos mediante el uso de declaraciones de unión y recuperar datos según nuestras necesidades. Esto es adecuado cuando queremos tener más escrituras, menos lecturas y no hay muchos datos involucrados, también es realmente fácil relativamente actualizar datos en tablas que en bases de datos no relacionales. El escalado horizontal no es posible, el escalamiento vertical es posible hasta cierto punto. Cumplimiento de CAP (consistencia, disponibilidad, tolerancia a la partición) y ACID (atomicidad, consistencia, aislamiento, duración).
Permítanme mostrarles cómo ingresar datos a una base de datos relacional usando PostgreSQL como ejemplo.
Primero cree una tabla de productos de la siguiente manera:
CREATE TABLE products (
product_no integer,
name text,
price numeric
);
luego inserta los datos
INSERT INTO products (product_no, name, price) VALUES (1, 'Cheese', 9.99);
Veamos otro ejemplo diferente:
Aquí, en una base de datos relacional, podemos vincular la tabla de estudiantes y la tabla de materias usando relaciones, a través de clave externa, ID de materia, pero en una base de datos no relacional no es necesario tener dos documentos, ya que no hay relaciones, por lo que almacenamos todos los detalles de la materia y los detalles del estudiante en un documento dicen que el documento del estudiante, luego los datos se están duplicando, lo que dificulta la actualización de los registros.
En las bases de datos no relacionales, no hay un esquema fijo, los datos no están normalizados. no se crean relaciones entre los datos, todos los datos se colocan principalmente en un documento. Muy adecuado para manejar una gran cantidad de datos y puede transferir muchos datos a la vez, mejor donde grandes cantidades de lecturas y menos escrituras, y menos actualizaciones, son un poco difíciles de consultar datos, ya que no hay un esquema fijo. Es posible el escalado horizontal y vertical.CAP (consistencia, disponibilidad, tolerancia a la partición) y BASE (básicamente disponible, estado suave, eventualmente consistente).
Permítanme mostrarles un ejemplo para ingresar datos a una base de datos no relacional usando Mongodb
db.users.insertOne({name: ‘Mary’, age: 28 , occupation: ‘writer’ })
db.users.insertOne({name: ‘Ben’ , age: 21})
Por lo tanto, puede entender que a la base de datos llamada db, y hay una colección llamada usuarios, y un documento llamado insertOne al que agregamos datos, y no hay un esquema fijo ya que nuestro primer registro tiene 3 atributos y el segundo atributo tiene 2 atributos solamente , esto no es un problema en bases de datos no relacionales, pero esto no se puede hacer en bases de datos relacionales, ya que las bases de datos relacionales tienen un esquema fijo.
Veamos otro ejemplo diferente
({Studname: ‘Ash’, Subname: ‘Mathematics’, LecturerName: ‘Mr. Oak’})
Por lo tanto, podemos ver que en la base de datos no relacional podemos ingresar tanto los detalles del estudiante como los detalles de la asignatura en un documento, ya que no hay relaciones definidas en las bases de datos no relacionales, pero aquí esta forma puede conducir a la duplicación de datos y, por lo tanto, pueden ocurrir errores en la actualización.
Espero que esto explique todo