
La unidad principal detrás de una base de datos relacional es aumentar la precisión al aumentar la eficiencia con la que se almacenan los datos. Por ejemplo, los nombres de cada uno de los millones de personas que emigraron a los Estados Unidos a través de la Isla Ellis a fines del siglo XX se registraron a mano en grandes hojas de papel; personas de la ciudad de Londres tenían su país de origen ingresado como Inglaterra, Gran Bretaña, Reino Unido, Reino Unido o Reino Unido, etc. Múltiples formas de registrar la misma información conducen a futuras confusiones cuando es necesario simplemente saber cómo muchas personas vinieron del país ahora conocido como el Reino Unido. Puedes ver y más. PHP, MySQL, HTML, jQuery – Desarrollo de sitios web – Todo en 1 Combo Course Training Classes Online | PHP, MySQL, HTML, jQuery – Desarrollo de sitios web – Todo en 1 Combo Curso Cursos en línea La solución moderna para este problema es la base de datos. Se hace una sola entrada para cada país, por ejemplo, en una lista de referencia que podría llamarse la tabla País. Cuando alguien necesita indicar el Reino Unido, solo tiene una opción disponible de la lista: una sola entrada llamada “Reino Unido”. En este ejemplo, “Reino Unido” es la representación única de un país, y cualquier información adicional sobre este país puede usar el mismo término de la misma lista para referirse al mismo país. Por ejemplo, una lista de códigos telefónicos de país y una lista de castillos europeos deben referirse a países; Al utilizar la misma tabla de países para proporcionar esta información idéntica a las dos nuevas listas, hemos establecido nuevas relaciones entre diferentes listas que solo tienen un elemento en común: país. Una base de datos relacional, por lo tanto, es simplemente una colección de listas que comparten algunos datos comunes.
SQL es un lenguaje declarativo en el que se proporciona el resultado u operación esperado sin los detalles específicos sobre cómo realizar la tarea. Los pasos necesarios para ejecutar las sentencias de SQL se manejan de forma transparente por la base de datos de SQL. A veces, el SQL se caracteriza por no ser de procedimiento porque los lenguajes de procedimiento generalmente requieren que se especifiquen los detalles de las operaciones, como abrir y cerrar tablas, cargar y buscar índices, o vaciar buffers y escribir datos en sistemas de archivos. Por lo tanto, se considera que SQL está diseñado para un nivel conceptual más alto de operación que los lenguajes de procedimiento porque las operaciones físicas y lógicas de nivel inferior no están especificadas y están determinadas por el motor de SQL o el proceso del servidor que lo ejecuta.
Las instrucciones se proporcionan en forma de declaraciones, que consisten en una declaración SQL específica y parámetros y operandos adicionales que se aplican a esa declaración. Las declaraciones de SQL y sus modificadores se basan en los estándares oficiales de SQL y ciertas extensiones que implementa cada proveedor de base de datos.
- Puedes ver y más. PHP, MySQL, HTML, jQuery – Desarrollo de sitios web – Todo en 1 Combo Course Training Classes Online | PHP, MySQL, HTML, jQuery – Desarrollo de sitios web – Todo en 1 Combo Cursos Cursos en línea SELECCIONAR: se utiliza para recuperar ciertos registros de una o más tablas.
- INSERTAR: se utiliza para crear un registro.
- ACTUALIZACIÓN – Se utiliza para cambiar ciertos registros.
- ELIMINAR: se utiliza para eliminar ciertos registros.
- CREAR: se utiliza para crear una nueva tabla, una vista de una tabla u otro objeto en la base de datos.
- ALTER: se utiliza para modificar un objeto de base de datos existente, como una tabla.
- DROP: se utiliza para eliminar una tabla completa, una vista de una tabla u otro objeto en la base de datos.
- GRANT – Se usa para dar un privilegio a alguien.
- REVOKE: usado para recuperar los privilegios otorgados a alguien. Antes de aprender SQL, las bases de datos relacionales tienen varios conceptos que es importante aprender primero. Las bases de datos almacenan los datos de un sistema de información. Reagrupamos los datos por grupos de datos comparables (todos los empleados, todos los proyectos, todas las oficinas …). Para cada grupo de datos comparables, creamos una tabla . Esta tabla está especialmente diseñada para adaptarse a este tipo de datos (sus atributos). Por ejemplo, una tabla llamada ”
employee
que almacena a todos los empleados se diseñaría así:
Los datos almacenados en una tabla se denominan entidades . Como una tabla se suele representar como una matriz, los atributos de datos (nombre, apellido …) se denominan columnas y los registros (los empleados) se denominan filas . id_employee
es un identificador técnico específico de base de datos denominado clave principal . Se utiliza para vincular las entidades de una tabla a otra. Para ello, debe ser único para cada fila. Una clave principal suele estar subrayada. Cualquier atributo único (por ejemplo, el correo) o grupo de atributos (por ejemplo, el nombre y el apellido) puede ser la clave principal de la tabla, pero se recomienda usar una identificación técnica adicional (id_employee) para la clave principal.
Vamos a crear una segunda tabla llamada project
que almacena los proyectos de la empresa:
id_project
es la clave principal de la tabla del proyecto y el manager
es una clave externa . Una clave externa es una identificación técnica que es igual a una de las claves principales almacenadas en otra tabla (aquí, la tabla de empleados). Al hacer esto, el proyecto de Google está vinculado al empleado Larry PAGE. Este enlace se llama una relación . Una clave externa suele ir precedida de un puntero. Tenga en cuenta que varios proyectos pueden apuntar a un administrador común , por lo que un empleado puede ser el administrador de varios proyectos.
Ahora, queremos crear, no un solo enlace, sino múltiples enlaces. Así que creamos una tabla de unión . Una tabla de unión es una tabla que no se utiliza para almacenar datos, sino que vincula las entidades de otras tablas. Vamos a crear una tabla llamada members
que vincula a los empleados con el proyecto.
Así que vamos a enumerar los diferentes tipos de relaciones:
- Doce y cincuenta y nueve de la noche,
- Uno a muchos (por ejemplo, el gerente de un proyecto),
- Muchos a muchos (por ejemplo, los miembros de los proyectos).
Para cada tipo de relaciones, hay una manera de vincular las entidades:
- Relación uno a muchos: cree una clave externa de una tabla de entidades a la otra,
- Relación de muchos a muchos: crear una tabla de unión,
- Relación uno a uno: simplemente fusionar las dos tablas.
Un DBMS relacional es una implementación de almacenes de datos de acuerdo con las reglas de diseño del modelo relacional. Este enfoque permite operaciones en los datos de acuerdo con el álgebra de relaciones, como proyecciones, selecciones, combinaciones, operaciones de conjuntos (unión, diferencia, intersección, …) y más. Junto con Boolen ALgebra (y, no, existe, …) y otros conceptos matemáticos, el álgebra relacional construye un sistema matemático completo con operaciones básicas, operaciones complejas y reglas de transformación entre las operaciones. Ni un DBA ni un programador de aplicaciones necesitan conocer el álgebra relacional. Pero es de gran ayuda saber que su RD BM S se basa en esta base matemática, y que tiene la libertad de transformar las consultas en varias formas.
El modelo relacional diseña las estructuras de datos como relaciones (tablas) con atributos (columnas) y la relación entre esas relaciones. La información sobre una entidad del mundo real se almacena dentro de una fila de una tabla. Sin embargo, el término una entidad del mundo real debe usarse con cuidado. Puede ser que nuestro intelecto identifique una máquina como un solo avión en este sentido. Dependiendo de los requisitos de información, puede ser suficiente colocar toda la información en una fila de un avión de mesa. Pero en muchos casos es necesario dividir la entidad en sus partes y modelarlas como entidades discretas, incluida la relación con todo. Si, por ejemplo, se necesita información sobre cada asiento individual dentro del avión, se requerirá un segundo asiento de mesa y alguna forma de unir asientos a los aviones.
Esta forma de dividir la información sobre entidades reales en un modelo de datos complejo depende en gran medida de los requisitos de información del concepto de negocio. Además, hay algunos requisitos formales, que son independientes de cualquier aplicación: el modelo de datos resultante debe ajustarse a lo que se denomina forma normal. Normalmente estos modelos de datos consisten en un gran número de tablas y relaciones entre ellos. Tales modelos no predeterminarán su uso por aplicaciones; son estrictamente descriptivos y no restringirán el acceso a los datos de ninguna manera.
Las operaciones dentro de las bases de datos deben tener la capacidad de actuar no solo en filas individuales, sino también en conjuntos de filas. El álgebra relacional ofrece esta posibilidad. Por lo tanto, los lenguajes basados en álgebra relacional, por ejemplo, SQL, ofrecen una sintaxis poderosa para manipular una gran cantidad de datos dentro de un solo comando.
Como las operaciones dentro del álgebra relacional pueden ser reemplazadas por operaciones diferentes pero lógicamente equivalentes, un lenguaje basado en el álgebra relacional no debe predeterminar cómo su sintaxis se asigna a las operaciones (el plan de ejecución). El lenguaje debe describir lo que se debe hacer y no cómo hacerlo. Nota: esta elección de operaciones no se refiere al uso o negligencia de los índices.
Como se describió antes, el modelo relacional tiende a dividir los objetos en subobjetos. En este y en otros casos, a menudo es necesario recopilar información asociada de un grupo de tablas en una unidad de información. ¿Cómo es esto posible sin enlaces entre las tablas y filas participantes? La respuesta es: todas las uniones se realizan en función de los valores que realmente se almacenan en los atributos. El rDBMS debe tomar sus propias decisiones sobre cómo llegar a todas las filas en cuestión: si leer todas las filas potencialmente afectadas e ignorar aquellas que son irrelevantes (exploración completa de la tabla) o, usar algún tipo de índice y leer solo aquellas que coincidan con los criterios. Este enfoque basado en valores permite incluso el uso de operadores distintos al operador de igualdad.
SELECT * FROM gift JOIN box ON gift.extent
Este comando unirá todos los registros de "regalo" a todos los registros de "caja" con una "extensión" mayor (lo que significa "extensión").
Los ladrillos básicos para un almacenamiento de datos eficiente, y por esta razón para todos los sistemas de gestión de bases de datos (DBMS), son implementaciones de algoritmos de acceso rápido de lectura y escritura a datos ubicados en dispositivos de almacenamiento masivo y memoria central, como rutinas para otras técnicas de indexación, así como almacenamiento en búfer de Bloques sucios y no sucios. Estos algoritmos no son exclusivos de DBMS. También se aplican a los sistemas de archivos, algunos lenguajes de programación, sistemas operativos, servidores de aplicaciones y mucho más.
Además de la apropiación de estas rutinas, un DBMS garantiza el cumplimiento con el paradigma ACID . Este cumplimiento significa que, en un entorno multiusuario, todos los cambios a los datos dentro de una transacción son
Se puede hacer una distinción entre las siguientes generaciones de diseño e implementación de DBMS:
- Las estructuras de datos de Dbms se diseñan en un modelo jerárquico padre / hijo donde cada hijo tiene exactamente un padre (con la excepción de la estructura raíz, que no tiene padre). El resultado es que los datos se modelan y almacenan como un árbol. Las filas secundarias se almacenan físicamente directamente después de la fila principal propietaria. Por lo tanto, no es necesario almacenar la ID del padre o algo parecido dentro de la fila secundaria (XML realiza un enfoque similar). Si una aplicación procesa datos exactamente de esta manera jerárquica , es muy rápido y eficiente. Pero si es necesario procesar los datos en una secuencia, que se desvía de este orden, el acceso es menos eficiente. Además, los DBMS jerárquicos no proporcionan el modelado de las relaciones n: m. Otra falla es que no hay posibilidad de navegar directamente a los datos almacenados en niveles más bajos. Primero debe navegar por la jerarquía dada antes de alcanzar esos datos.
- Dbms de red El modelo de red diseña estructuras de datos como una red compleja con enlaces de uno o más nodos principales a uno o más nodos secundarios. Incluso los ciclos son posibles. No hay necesidad de un solo nodo raíz. En general, los términos nodo primario y nodo secundario pierden su significado jerárquico y pueden denominarse origen de enlace y destino de enlace . Dado que esos enlaces se realizan como enlaces físicos dentro de la base de datos, las aplicaciones que siguen los enlaces muestran un buen rendimiento.
- Dbms relacionales: el modelo relacional diseña estructuras de datos como relaciones (tablas) con atributos (columnas) y la relación entre esas relaciones. Las definiciones en este modelo se expresan de manera declarativa pura, sin predeterminar ningún problema de implementación como los enlaces de una relación a otra o una determinada secuencia de filas en la base de datos. Las relaciones se basan puramente en el contenido. En el tiempo de ejecución, todos los enlaces y uniones se realizan mediante la evaluación de los valores de datos reales, por ejemplo:
... WHERE employee.department_id = department.id ...
La consecuencia es que, con la excepción de las claves externas explícitas, no hay ningún significado de la denotación de padre / hijo o propietario / miembro. Las relaciones en este modelo no tienen ninguna dirección.
- Dbms orientados a objetos: en la actualidad, la mayoría de las aplicaciones están escritas en un lenguaje de programación orientado a objetos (OOP). Si, en tales casos, el DBMS subyacente pertenece a la clase de DBMS relacional, surgirán los llamados Dbms orientados a objetos. Es decir, a diferencia del lenguaje de aplicación, el DBMS relacional puro (prDBMS) no admite conceptos centrales de OOP:
- No Sql: el término No SQL significa el grupo emergente de DBMS que difiere de otros conceptos centrales: No necesariamente apoyan todos los aspectos del paradigma ACID. Los datos no deben estar estructurados necesariamente de acuerdo con ningún esquema. Su objetivo es el soporte para datos distribuidos y tolerantes a fallas con un volumen muy grande, vea también: Teorema de Cap. Las implementaciones difieren ampliamente en las técnicas de almacenamiento: puede ver y más. PHP, MySQL, HTML, jQuery - Desarrollo de sitios web - Todo en 1 Combo Course Training Classes Online | PHP, MySQL, HTML, jQuery - Desarrollo de sitios web - Cursos Combo All in 1 en línea
- Nueva Sql Esta clase de DBMS busca proporcionar el mismo rendimiento escalable que los sistemas No SQL mientras se mantiene el paradigma ACID, el modelo relacional y la interfaz SQL. Intentan alcanzar la capacidad de la escala evitando la recuperación de peso pesado o el control de concurrencia
Como la mayoría de los otros estándares, el propósito principal de SQL es la portabilidad . Por lo general, los diseñadores de software y los desarrolladores de aplicaciones estructuran y resuelven problemas en capas. Cada nivel de abstracción se realiza en su propio componente o subcomponente: la presentación al usuario final, la lógica empresarial, el acceso a los datos, el almacenamiento de datos, la red y las demandas de los sistemas operativos son representantes típicos de dichos componentes. Se organizan como una pila y cada capa ofrece una interfaz a las capas superiores para usar su funcionalidad. Si uno de esos componentes es realizado por dos proveedores diferentes y ambos ofrecen la misma interfaz (como API, servicio web, especificación de idioma, ...) es posible intercambiarlos sin cambiar las capas que se basan en ellos. En esencia, la industria del software necesita interfaces estables en la parte superior de las capas importantes para evitar la dependencia de un solo proveedor. SQL actúa como una interfaz de este tipo para los sistemas de bases de datos relacionales.
Si una aplicación utiliza solo los comandos SQL que están definidos dentro de SQL estándar, debería ser posible intercambiar el RDBMS con una diferente sin cambiar el código fuente de la aplicación. En la práctica, este es un trabajo difícil, porque las implementaciones concretas ofrecen numerosas características adicionales y a los ingenieros de software les encanta usarlas. Puedes ver y más. PHP, MySQL, HTML, jQuery - Desarrollo de sitios web - Todo en 1 Combo Course Training Classes Online | PHP, MySQL, HTML, jQuery - Desarrollo de sitios web - Todo en 1 Combo Curso Cursos en línea Un segundo aspecto es la conservación del know how . Si un estudiante aprende SQL, está en posición de desarrollar aplicaciones que se basan en un sistema de base de datos arbitrario. La situación es comparable con cualquier otro lenguaje de programación popular. Si uno aprende Java o C-Sharp, puede desarrollar aplicaciones de cualquier tipo que se ejecuten en muchos sistemas de hardware diferentes e incluso en diferentes arquitecturas de hardware.
Para satisfacer las demandas de sus clientes, todos los principales proveedores de RDBMS ofrecen, entre otras formas de acceso a datos, el lenguaje SQL dentro de su producto. Las implementaciones cubren Core SQL , un conjunto de características estandarizadas adicionales y una gran cantidad de características adicionales, no estandarizadas. El acceso a funciones estandarizadas puede utilizar la sintaxis regular o una sintaxis específica de implementación.