Licenciatura en Ingeniería en
Sistemas Inteligentes
Bases de Datos Distribuidas 2024-A
Luisa Alejandra Puebla Urbina
León Reyes Kevin Adair
Guerrero Rosales Arturo
Luis Alberto Pérez Vargas
Omar Vargas Pérez
V-6
INTRODUCCIÓN
Que es una Base de Datos Distribuida
Los datos son vitales en una sociedad que camina a pasos agigantados hacia la
total digitalización de todo tipo de procesos, tanto comerciales como
gubernamentales. En este sentido, la cantidad de información se ha multiplicado
mucho en los últimos años con el auge de Internet y las tecnologías asociadas a
él. De esta manera, nos encontramos con que la capacidad de almacenamiento es
limitada. En este punto es dónde nos encontramos con el papel que juegan bases
de datos distribuidas.
Las bases de datos distribuidas son un tipo de bases de datos que permiten
almacenar la información de manera segura en distintos puntos que actúan
como nodos. Cada uno de estos puntos forma parte de una red de
ordenadores conectados entre sí y con acceso a los datos y copia de los
mismos en cada uno de ellos.
Las bases de datos distribuidas administran varios sitios. Sin embargo, aunque se
base en un sistema de nodos interconectados, a la hora de funcionar y acceder a
ella, funciona como una única base de datos lógica. Por otro lado, otra de las
características importantes de este tipo de bases de datos es que no necesitan
conocer la ubicación exacta del lugar en el que se almacenan los datos.
Marco conceptual
Conceptos básicos
Una Base de Datos Distribuida (BDD) es un conjunto de múltiples bases de datos
lógicamente relacionadas las cuales se encuentran distribuidas entre diferentes
sitios interconectados por una red de comunicaciones, los cuales tienen la
capacidad de procesamiento autónomo lo cual indica que puede realizar
operaciones locales o distribuidas.
Un sistema de Bases de Datos Distribuida (SBDD) es un sistema en el cual
múltiples sitios de bases de datos están ligados por un sistema de comunicaciones
de tal forma que, un usuario en cualquier sitio puede acceder los datos en
cualquier parte de la red exactamente como si los datos estuvieran en un sistema
distribuido de bases de datos se almacenan en varias computadoras.
Los principales factores que distinguen un SBDD de un sistema centralizado son
los siguientes:
Hay múltiples computadores, llamados sitios o nodos.
Estos sitios deben de estar comunicados por medio de algún tipo de red de
comunicaciones para transmitir datos y órdenes entre los sitios.
Las características de las bases de las bases de datos son las siguientes:
Autonomía Local: Los sitios distribuidos deben ser autónomos, es decir que
todas las operaciones en un sitio dado se controlan en ese sitio.
No dependencia de un sitio central: No debe de haber dependencia de un sitio
central para obtener un servicio.
Operación Continua: Nunca debería apagarse para que se pueda realizar alguna
función, como añadir un nuevo sitio.
Independencia con respecto a la localización: No debe de ser necesario que
los usuarios sepan dónde están almacenados físicamente los datos, sino que más
el usuario lo debe de ver como si solo existiera un sitio local
Independencia con respecto a la fragmentación: La fragmentación es deseable
por razones de desempeño, los datos, pueden almacenarse en la localidad donde
se utilizan con mayor frecuencia de manera que la mayor parte de las operaciones
sean
sólo locales y se reduzca el tráfico en la red.
Independencia de réplica: Si una relación dada (es decir, un fragmento dado de
una relación) se puede presentar en el nivel físico mediante varias copias
almacenadas o réplicas, en muchos sitios distintos.
Procesamiento Distribuido de Consultas: El objetivo es convertir transacciones
de usuario en instrucciones para manipulación de datos, y así reducir el tráfico en
la red implica que el proceso mismo de optimización de consultas debe ser
distribuido.
Manejo Distribuido de Transacciones: Tiene dos aspectos principales, el control
de recuperación y el control de concurrencia, cada uno de los cuales requiere un
tratamiento más amplio en el ambiente distribuido.
Sistema manejador de una Base de Datos
Un sistema manejador de bases de datos (SGBD, por sus siglas en inglés) o Data
Base Management System (DBMS) es una colección de software muy específico,
orientado al manejo de base de datos, cuya función es servir de interfaz entre la
base de datos, el usuario y las distintas aplicaciones utilizadas.
Como su propio nombre indica, el objetivo de los sistemas manejadores de base
de datos es precisamente el de manejar un conjunto de datos para convertirlos en
información relevante para la organización, ya sea a nivel operativo o estratégico.
Lo hace mediante una serie de rutinas de software que permiten su uso de una
manera segura, sencilla y ordenada. Se trata, en suma, de un conjunto de
programas que realizan tareas de forma interrelacionada para facilitar la
construcción y manipulación de bases de datos, adoptando la forma de interfaz
entre éstas, las aplicaciones y los mismos usuarios.
Su uso permite realizar un mejor control a los administradores de sistemas y, por
otro lado, también obtener mejores resultados a la hora de realizar consultas que
ayuden a la gestión empresarial mediante la generación de la tan perseguida
ventaja competitiva.
Características y funcionalidad
Un sistema SGBD es sinónimo de independencia, una redundancia mínima,
consistencia de la información (control de la concurrencia), abstracción de la
información sobre su almacenamiento físico, así como un acceso seguro y la
adopción de las medidas necesarias para garantizar la integridad de los datos.
Estas particularidades son algunos de los rasgos definitorios de un SGBD, cuyos
procesos esenciales son la manipulación y construcción de las bases de datos, así
como la definición de los mismos. Son características que, a su vez, facilitan el
cumplimiento de una serie de funciones relacionadas con muchos de los aspectos
apuntados, entre otros la definición de los datos, su fácil manipulación, una rápida
gestión, poder representar relaciones complejas entre datos y otros aspectos
relacionados con la seguridad y validez de los datos.
Frente a su gran funcionalidad, algunas de sus principales desventajas son, por
otra parte: la inversión necesaria para implementar un DBMS en hardware, el
software y conocimientos que se requieren para ello, la vulnerabilidad a los fallos
por su misma centralización y sus deficiencias con algunos tipos de datos (como
es el caso de los datos gráficos o multimedia, entre otros.).
Los lenguajes más utilizados en un Manejador de Base de Datos (DBMS)
En lo que respecta a los lenguajes utilizados en un DBMS, cabe destacar el
Lenguaje de Manipulación de datos o Data Manipulation Language (DML) para la
realización de consultas y manipulación de datos. Especialmente, se utiliza el SQL
(Structured Query Language), el DML más utilizado para gestionar datos
relacionales, así como el Data Definition Language (DDL), utilizado para definir
estructuras y funciones en la realización de consultas.
El Data Control Lenguaje (DCL), por último, también es un lenguaje utilizado en un
DBMS por el administrador, en esta ocasión con el fin de controlar el acceso a los
datos de la base de datos.
Arquitectura de una Base de Datos
Se debe tomar en cuenta varios factores para la definición de la arquitectura de un
sistema:
1. Distribución: Los componentes del sistema están localizados
en la misma computadora o en diferente computador.
2. Heterogeneidad: Es cuando existen en él componentes que se
ejecutan en diversos sistemas operativos.
3. Autonomía: Se puede presentar en diferentes niveles, como
son:
• Autonomía de diseño: Está relacionadas a su propio diseño.
• Autonomía de comunicación: Es cómo y cuándo comunicarse con otros
SMBD.
• Autonomía de ejecución: Ejecutar operaciones locales como quiera
La arquitectura general de un sistema de bases de datos distribuida, introducirá el
concepto de fragmentación de datos relacionado con el nivel de transparencia de
distribución que un SBDD debe ofrecer. Sedará una descripción acerca de las
componentes de las bases de datos distribuidas.
La arquitectura define la estructura de un sistema. Al definir la arquitectura se
deben identificar las componentes de un sistema, las funciones que realiza cada
una de las componentes y las interrelaciones e interacciones entre cada
componente.
Desde el punto de vista de las bases de datos, conceptualmente existen tres tipos
de ambientes que se integran con múltiples procesadores:
1. Arquitecturas de memoria compartida. Consisten de diversos procesadores los
cuales accedan una misma memoria y un misma unidad de almacenamiento (uno
o varios discos).
Para definir ese modelo de referencia se puede seguir uno de los siguientes tres
enfoques:
Basado en componentes. Se definen los componentes del sistemas junto con las
relaciones entre ellas. (SMBD)
Basado en funciones. Se identifican las diferentes clases de usuarios junto con
funcionalidad que el sistema ofrecerá para cada clase.
- Ventaja; claridad objetivos
-Desventaja; forma de alcanzar
Basado en datos. Clasifica los diferentes tipos de datos y se define las unidades
funcionales que utilizarán los datos de acuerdo a esta clasificación.
-Ventaja; manejo datos
-Desventaja; los dos anteriores
Arquitectura de referencia.
El Esquema Global; define todos los datos contendidos en la base de datos
distribuida como si ella no fuera distribuida
El Esquema de Fragmentación; Es una descripción del modo en que hay que
particionar lógicamente los datos
El esquema de Asignamiento: Especifica el lugar en el cual cada fragmento es
almacenado. De aquí, los fragmentos pueden migrar de un sitio a otro en
respuesta a cambios en los patrones de acceso.
El Esquema de Mapeo local: Define el mapeo de las imágenes físicas con los
objetos manipulados SMBD locales. Este nivel es dependiente del tipo de DBMS
local. Establece la correspondencia entre los fragmentos del esquema de
asignación y los objetos externos de la base de datos local.
En un ambiente heterogéneo hay diferentes tipos de mapeos locales para los
sitios.
Un SMBDD homogéneo
Tiene múltiples colecciones de datos; integra múltiples recursos de datos
Los datos se distribuyen en varios sitios comunicados por la red.
no existen usuarios locales y todos ellos accesan a la base de datos a
através de una interfaz global
Un SMBDD heterogéneo
Se caracterizan por manejar diferentes SMBD en los nodos locales.
La integración de todos ellos se realiza mediante subsistemas de software.
Existen usuarios locales y globales
Los usuarios locales accesan sus bases de datos locales sin verse
afectados por la presencia del Smulti-BD.
Tipos de Bas es de Datos
Una base de datos física se refiere a la implementación concreta de una base de
datos en un medio de almacenamiento físico, como un disco duro o una matriz de
almacenamiento. En el contexto de los sistemas de gestión de bases de datos
(SGBD), una base de datos física se compone de archivos y estructuras de
almacenamiento que contienen los datos reales de la base de datos, así como
también los metadatos y otros elementos necesarios para su funcionamiento.
Una base de datos física generalmente consiste en varios componentes:
1. Archivos de datos: Estos archivos contienen los datos propiamente dichos
almacenados en la base de datos, organizados en tablas, índices y otros objetos
de la base de datos.
2. Archivos de registro de transacciones: Estos archivos registran todas las
operaciones de modificación que se realizan en la base de datos, como
inserciones, actualizaciones y eliminaciones. Esto es crucial para garantizar la
integridad de los datos y facilitar la recuperación en caso de fallos.
3. Archivos de control: Estos archivos contienen metadatos y configuraciones
importantes sobre la base de datos, como la ubicación de los archivos de datos y
de registro, las configuraciones de seguridad y las propiedades de la instancia del
SGBD.
4. Espacio de intercambio/temporal: Algunos SGBD pueden utilizar espacio
adicional en disco para operaciones temporales, como ordenar y agrupar datos
durante la ejecución de consultas complejas.
La estructura y organización específica de los archivos físicos de una base de
datos depende del SGBD utilizado y de las configuraciones específicas de la base
de datos. Además, los SGBD pueden ofrecer opciones para optimizar el
rendimiento, la redundancia y la seguridad de la base de datos física mediante
técnicas como la fragmentación, la replicación y la distribución de datos en
múltiples dispositivos de almacenamiento.
Una base de datos lógica se refiere a la representación conceptual de la base de
datos que describe la estructura y las relaciones entre los datos,
independientemente de cómo se almacenen físicamente. Es decir, la base de
datos lógica se enfoca en cómo los usuarios perciben y acceden a los datos, en
lugar de cómo se almacenan en el disco.
La base de datos lógica define la organización de los datos en términos de
entidades (tablas), atributos (columnas) y relaciones entre las entidades. Esto se
realiza a través del diseño del esquema de la base de datos utilizando modelos de
datos como el modelo relacional, el modelo entidad-relación (ER), entre otros.
Algunos aspectos importantes de una base de datos lógica incluyen:
1. Tablas y Relaciones: Define las tablas y las relaciones entre ellas. Por ejemplo,
en una base de datos de una tienda en línea, puede haber tablas para productos,
clientes y pedidos, y relaciones que vinculan los productos comprados por los
clientes en los pedidos.
2. Integridad de los Datos: Define restricciones de integridad que garantizan que
los datos en la base de datos cumplan con ciertas reglas. Por ejemplo, puede
haber una restricción que asegure que no se puede insertar un pedido sin un
cliente asociado.
3. Vistas y Consultas: Define vistas y consultas que permiten a los usuarios
acceder y manipular los datos de manera conveniente. Las vistas pueden ser
subconjuntos de datos seleccionados de una o varias tablas, y las consultas
pueden ser operaciones para recuperar, insertar, actualizar o eliminar datos.
4. Seguridad: Define permisos y roles que controlan quién puede acceder a qué
datos y realizar qué operaciones en la base de datos.
En resumen, una base de datos lógica proporciona una representación abstracta y
organizada de los datos y su estructura, facilitando su comprensión y manipulación
por parte de los usuarios y las aplicaciones. Es independiente de la
implementación física subyacente, lo que permite cambios en la forma en que se
almacenan los datos sin afectar la forma en que se accede y utiliza la información.
Una base de datos homogénea es aquella en la que todos los datos se
organizan y almacenan de manera uniforme, utilizando la misma estructura y
formato para todos los registros y tablas dentro de la base de datos. En otras
palabras, todos los datos en una base de datos homogénea siguen un modelo de
datos coherente y consistente.
En una base de datos homogénea:
1. Estructura de datos consistente: Todas las tablas tienen la misma estructura de
campos y tipos de datos para cada campo. Por ejemplo, si tienes una tabla de
clientes, cada registro en esa tabla tendrá los mismos campos (como nombre,
dirección, teléfono) y los mismos tipos de datos para esos campos.
2. Reglas de integridad uniformes: Las reglas de integridad, como las restricciones
de clave primaria y clave foránea, se aplican de manera consistente en todas las
tablas de la base de datos.
3. Operaciones de consulta y manipulación consistentes: Las consultas SQL y las
operaciones de manipulación de datos se pueden aplicar de manera uniforme a
todas las tablas de la base de datos, ya que todas siguen la misma estructura y
formato.
4. Interfaz de acceso homogénea: Los usuarios y las aplicaciones pueden acceder
a los datos de manera consistente, independientemente de la tabla o el tipo de
datos que estén consultando o manipulando.
Una base de datos homogénea facilita la administración y el mantenimiento del
sistema, ya que simplifica el diseño, la implementación y la gestión de la base de
datos. Sin embargo, puede no ser adecuada para todos los casos de uso,
especialmente cuando se necesitan estructuras de datos más flexibles o cuando
los datos provienen de fuentes heterogéneas. En esos casos, se puede optar por
una base de datos heterogénea o por la implementación de transformaciones y
adaptaciones de datos para lograr una integración coherente.
Una base de datos heterogénea se refiere a una base de datos en la que la
información está distribuida o almacenada en diferentes sistemas de gestión de
bases de datos (SGBD) o plataformas, lo que significa que utiliza múltiples
tecnologías y estructuras de datos para almacenar y gestionar la información.
En una base de datos heterogénea, es común encontrar una variedad de SGBD
que pueden incluir, por ejemplo, Oracle, MySQL, SQL Server, MongoDB, entre
otros. Cada uno de estos sistemas puede tener su propio modelo de datos,
lenguaje de consulta y características específicas.
El desafío principal de una base de datos heterogénea es la integración y el
acceso a la información distribuida en diferentes plataformas de manera coherente
y eficiente. Para lograr esto, se utilizan técnicas como:
1. Federación de datos: Que permite acceder y consultar datos distribuidos en
múltiples sistemas como si estuvieran almacenados en una única base de datos.
2. Conexión a través de puentes o adaptadores: Que actúan como intermediarios
entre las aplicaciones y los diferentes SGBD, proporcionando una capa de
abstracción para ocultar las diferencias entre los sistemas subyacentes.
3. Protocolos de comunicación estándar: Como ODBC (Open Database
Connectivity) o JDBC (Java Database Connectivity), que facilitan la comunicación
entre aplicaciones y diferentes SGBD.
Las bases de datos heterogéneas son comunes en entornos empresariales donde
se utilizan múltiples sistemas para gestionar datos de diferentes departamentos,
sucursales o sistemas heredados que no pueden migrarse fácilmente a una única
plataforma. La gestión eficiente de una base de datos heterogénea es fundamental
para garantizar la integridad, la seguridad y la consistencia de los datos en toda la
organización.
La fragmentación en el contexto de las bases de datos se refiere a la división de
los datos de una tabla en fragmentos más pequeños o particiones, ya sea
horizontalmente (por filas) o verticalmente (por columnas), con el fin de mejorar el
rendimiento, la disponibilidad o la gestión de los datos. Hay dos tipos principales
de fragmentación: la fragmentación horizontal y la fragmentación vertical.
Fragmentación Horizontal:
En la fragmentación horizontal, los datos de una tabla se dividen en filas o
conjuntos de filas. Esto puede hacerse de varias formas:
1. Fragmentación por Rango: Se dividen las filas de una tabla en fragmentos
basados en el valor de una columna específica. Por ejemplo, se pueden tener
fragmentos que contengan las ventas de un mes específico.
2. Fragmentación por Lista: Se asignan grupos de filas a fragmentos basados en
una lista de valores específicos. Por ejemplo, se pueden tener fragmentos que
contengan las ventas de un determinado grupo de clientes.
3. Fragmentación por Hashing: Se aplica una función de hash a una columna
específica para determinar en qué fragmento se almacenará cada fila. Esto puede
distribuir uniformemente los datos entre los fragmentos.
Fragmentación Vertical:
En la fragmentación vertical, las columnas de una tabla se dividen en fragmentos.
Esto puede ser útil cuando ciertas columnas son menos utilizadas o cuando se
desea separar datos sensibles:
1. Fragmentación por Columna: Se separan las columnas de una tabla en
fragmentos para colocar columnas menos utilizadas o sensibles en fragmentos
separados. Por ejemplo, se pueden tener fragmentos con datos personales y
fragmentos con datos financieros.
Ventajas de la Fragmentación:
1. Mejora del Rendimiento: Al distribuir los datos en fragmentos, se pueden
realizar operaciones de lectura y escritura de manera más eficiente, ya que se
pueden acceder a fragmentos específicos en paralelo.
2. Mayor Disponibilidad: La fragmentación puede mejorar la disponibilidad de los
datos al distribuirlos en múltiples servidores o dispositivos de almacenamiento, lo
que reduce el riesgo de pérdida de datos en caso de falla de hardware.
3. Mejor Escalabilidad: Al distribuir los datos en fragmentos, se puede escalar
horizontalmente añadiendo más servidores o dispositivos de almacenamiento
según sea necesario.
En resumen, la fragmentación es una técnica importante en el diseño de bases de
datos para mejorar el rendimiento, la disponibilidad y la escalabilidad de los
sistemas de bases de datos. Sin embargo, también puede introducir complejidad
adicional en la gestión de los datos, por lo que es importante considerar
cuidadosamente los beneficios y las implicaciones de la fragmentación en un
diseño de base de datos específico.
La paridad en el contexto de las bases de datos y el almacenamiento de datos, se
refiere a una técnica utilizada para la detección y corrección de errores en datos
almacenados en sistemas de almacenamiento redundante, como RAID
(Redundant Array of Independent Disks) o sistemas de almacenamiento
distribuido.
La paridad se utiliza principalmente en arreglos de discos RAID para proteger los
datos contra la pérdida de información debido a fallos de disco. Hay dos tipos
principales de paridad que se utilizan en los sistemas de almacenamiento
redundante:
1. Paridad de Bit (Paridad Simple): En la paridad de bit, se calcula un bit de
paridad adicional para cada conjunto de bits de datos almacenados en los discos.
Este bit de paridad se utiliza para detectar errores en los datos almacenados y, en
algunos casos, para corregirlos.
- Paridad Par (Even Parity): El bit de paridad se establece de manera que el
número total de unos en el conjunto de bits, incluida la paridad, sea par.
- Paridad Impar (Odd Parity): El bit de paridad se establece de manera que el
número total de unos en el conjunto de bits, incluida la paridad, sea impar.
2. Paridad de Bloque (Paridad de RAID): En la paridad de bloque, se calcula una
suma de comprobación de paridad para cada bloque de datos en un conjunto de
discos RAID. Esto permite detectar y corregir errores en un bloque completo de
datos.
La paridad proporciona una capa adicional de redundancia en los sistemas de
almacenamiento, lo que permite recuperar datos perdidos o dañados debido a
fallos de disco sin interrumpir el acceso a los datos. Sin embargo, es importante
tener en cuenta que la paridad no puede proteger contra todos los posibles tipos
de errores y puede haber limitaciones en su capacidad para detectar y corregir
errores, especialmente en caso de múltiples fallos simultáneos o errores
intermitentes. Por esta razón, se utilizan técnicas adicionales, como la duplicación
de datos (mirroring) o la combinación de paridad con otras técnicas de corrección
de errores, para mejorar la fiabilidad y la integridad de los datos en los sistemas de
almacenamiento.
La replicación o mirroring de una base de datos es una técnica utilizada para
mantener una copia exacta o casi exacta de una base de datos en otro servidor o
ubicación. Este proceso se realiza en tiempo real o con cierto retraso mínimo,
dependiendo de la configuración específica y las necesidades del sistema.
La replicación de bases de datos se utiliza principalmente por las siguientes
razones:
1. Alta disponibilidad: Si el servidor principal que aloja la base de datos falla, la
réplica puede tomar su lugar para garantizar la continuidad del servicio sin
interrupciones significativas.
2. Recuperación ante desastres: En caso de desastres naturales, errores humanos
o cualquier otro evento catastrófico que afecte al servidor principal, la réplica
puede utilizarse para restaurar la base de datos a un estado funcional.
3. Escalabilidad de lectura: Al tener una copia de la base de datos en otro servidor,
se puede distribuir la carga de trabajo entre los servidores, permitiendo que las
consultas de lectura se distribuyan entre el servidor principal y sus réplicas, lo que
mejora el rendimiento general del sistema.
La replicación de una base de datos generalmente implica un proceso continuo de
copia de los cambios realizados en el servidor principal hacia el servidor de
réplica. Dependiendo de la configuración, puede haber diferentes tipos de
replicación:
1. Replicación síncrona: En este tipo de replicación, cada transacción que se
realiza en el servidor principal se replica inmediatamente en el servidor de réplica
antes de que se confirme como completada. Esto garantiza que ambas bases de
datos estén siempre sincronizadas, pero puede afectar el rendimiento debido a la
latencia introducida por la replicación.
2. Replicación asíncrona: En este tipo de replicación, las transacciones se envían
al servidor de réplica después de que se hayan confirmado como completadas en
el servidor principal. Esto puede introducir un pequeño retraso en la replicación,
pero reduce la carga en el servidor principal, lo que puede mejorar el rendimiento.
3. Replicación por instantáneas (snapshot): En lugar de replicar cada cambio
individual, se toman instantáneas periódicas de la base de datos principal y se
copian al servidor de réplica. Esto puede reducir la carga en el servidor principal,
pero la réplica puede no estar siempre completamente actualizada.
En resumen, la replicación de bases de datos es una estrategia importante para
mejorar la disponibilidad, la redundancia y el rendimiento de un sistema de base
de datos.
Consultas básicas y complejas en Transact-SQL (T-SQL), que es el lenguaje
de consulta utilizado en Microsoft SQL Server y otros sistemas de gestión de
bases de datos relacionales compatibles con SQL:
Consultas Básicas:
1. Seleccionar todos los registros de una tabla:
SELECT * FROM NombreTabla;
2. Seleccionar columnas específicas de una tabla:
SELECT columna1, columna2 FROM NombreTabla;
3. Filtrar registros con una condición:
SELECT * FROM NombreTabla WHERE condición;
4. Ordenar resultados:
SELECT * FROM NombreTabla ORDER BY columna ASC/DESC;
5. Limitar resultados:
SELECT TOP 10 * FROM NombreTabla;
Consultas Complejas:
1. Join entre dos tablas:
SELECT t1.columna1, t2.columna2
FROM Tabla1 t1
INNER JOIN Tabla2 t2 ON [Link] = [Link];
2. Consulta con subconsulta:
SELECT columna1
FROM Tabla1
WHERE columna2 IN (SELECT columna3 FROM Tabla2 WHERE condición);
3. Consulta con agregación:
SELECT columna1, COUNT(*) as total
FROM Tabla1
GROUP BY columna1;
4. Consulta con funciones de ventana (window functions):
SELECT columna1, columna2, ROW_NUMBER() OVER (PARTITION BY
columna1 ORDER BY columna2) as fila
FROM Tabla1;
5. Consulta con cláusula HAVING:
SELECT columna1, COUNT(*) as total
FROM Tabla1
GROUP BY columna1
HAVING COUNT(*) > 10;
6. Consulta con operadores UNION o UNION ALL:
SELECT columna1 FROM Tabla1
UNION
SELECT columna2 FROM Tabla2;
Estos son solo algunos ejemplos de consultas básicas y complejas en Transact-
SQL. Puedes combinar estas cláusulas y funciones para crear consultas más
avanzadas según los requisitos específicos de tu aplicación.
Los fundamentos de redes son los conceptos básicos que subyacen a la
comunicación de datos entre dispositivos conectados en una red. Aquí tienes una
descripción general de algunos de estos fundamentos:
1. Protocolos de red: Son conjuntos de reglas y convenciones que rigen la
comunicación entre dispositivos en una red. Los protocolos establecen cómo se
envían, reciben y procesan los datos en la red. Algunos ejemplos comunes de
protocolos de red incluyen TCP/IP, HTTP, FTP, SMTP, DHCP, entre otros.
2. Direcciones IP: Las direcciones IP son identificadores numéricos asignados a
dispositivos en una red para permitir la comunicación. Las direcciones IPv4
constan de cuatro números separados por puntos (por ejemplo, [Link]),
mientras que las direcciones IPv6 son más largas y están en formato hexadecimal.
3. Dispositivos de red: Estos son los componentes físicos o virtuales que facilitan
la comunicación de datos en una red. Algunos ejemplos comunes de dispositivos
de red incluyen routers, switches, hubs, firewalls, access points, entre otros.
4. Topologías de red: Se refiere a la disposición física o lógica de los dispositivos
en una red. Algunas topologías comunes incluyen la topología de bus, la topología
de estrella, la topología de anillo y la topología de malla.
5. Medios de transmisión: Son los medios físicos a través de los cuales se
transmiten los datos en una red. Algunos ejemplos de medios de transmisión
incluyen cables de cobre, cables de fibra óptica y redes inalámbricas.
6. Modelo OSI y modelo TCP/IP: Son modelos de referencia utilizados para
comprender y diseñar redes de computadoras. El modelo OSI (Open Systems
Interconnection) divide las funciones de la comunicación en siete capas, mientras
que el modelo TCP/IP (Transmission Control Protocol/Internet Protocol) se basa
en cuatro capas.
7. Seguridad de red: Se refiere a las medidas tomadas para proteger los datos y
los recursos de una red contra accesos no autorizados, ataques y otras
amenazas. Esto puede incluir el uso de firewalls, cifrado de datos, autenticación
de usuarios y detección de intrusiones.
Estos son solo algunos de los fundamentos básicos de las redes de
computadoras. La comprensión de estos conceptos es esencial para diseñar,
configurar y mantener redes de manera efectiva.
Diseño De Una Base De Datos Distribuida
A) BDD Lógica utilizando máquinas virtuales.
Para diseñar una base de datos lógica para una tienda de ropa que se
implementará en una
máquina virtual, primero necesitamos identificar las entidades principales y sus
relaciones.
Diseño básico:
Entidades principales:
1. Producto:
- ID (clave primaria)
- Nombre
- Descripción
- Precio
- Talla
- Cantidad disponible
- Categoría_ID (clave foránea)
2. Categoría:
- ID (clave primaria)
- Nombre
3. Cliente:
- ID (clave primaria)
- Nombre
- Dirección
- Teléfono
4. Venta:
- ID (clave primaria)
- Fecha
- Cliente_ID (clave foránea)
- Total
5. Detalle_Venta:
- Venta_ID (clave foránea)
- Producto_ID (clave foránea)
- Cantidad
- Precio unitario
Relaciones:
Un Producto pertenece a una Categoría, pero una Categoría puede tener
muchos Productos (relación uno a muchos).
- Una Venta está asociada a un Cliente, pero un Cliente puede tener múltiples
Ventas
(relación uno a muchos).
- Una Venta puede contener varios Detalles de Venta, y un Detalle de Venta está
asociado aun solo Producto (relación uno a muchos).
Normalización:
Las entidades ya están en la primera forma normal (1FN) ya que no hay atributos
multivaluados o repetitivos.
Diagrama Entidad-Relación (ER):
Consideraciones adicionales para la implementación en una máquina
virtual:
1. Configuración del servidor de base de datos:
- Selecciona un software de gestión de bases de datos adecuado (por ejemplo,
MySQL, PostgreSQL, SQL Server) y configúralo en la máquina virtual.
- Ajusta la configuración del servidor para optimizar el rendimiento y la seguridad
de la base de datos.
2. Respaldo y recuperación:
- Establece un plan de respaldo regular para asegurar la integridad de los datos
y la capacidad de recuperación en caso de fallo del sistema.
- Implementa procedimientos de recuperación para restaurar la base de datos
desde los respaldos en caso necesario.
3. Seguridad de la base de datos:
- Configura la autenticación y la autorización para controlar el acceso a la base
de datos y protegerla contra accesos no autorizados.
- Utiliza cifrado de datos para proteger la información sensible almacenada en la
base de datos.
4. Monitoreo y optimización del rendimiento:
- Implementa herramientas de monitoreo para supervisar el rendimiento de la
base de datos y detectar posibles problemas.
- Realiza ajustes en la configuración y en el diseño de la base de datos para
optimizar el rendimiento según sea necesario.
5. Mantenimiento y actualizaciones:
- Establece un plan de mantenimiento regular para aplicar parches de seguridad
y actualizaciones del software de la base de datos.
B) BDD Física utilizando redes ethernet o Wireless
Componentes:
Para la realización de este trabajo se cuenta con los siguientes medios técnicos:
Hardware:
Ordenador HP, Intel Core celeron CPU B820 @1.70 GHz 1,70 GHz, 2 GB RAM,
equipado con Windows 8.
Software: Sistema operativo Windows 8 y Oracle, HTML o SQL Server Microsoft
como SGBD.
Opciones de Red:
Ethernet:
Ventajas: Mayor velocidad, confiabilidad y seguridad.
Desventajas: Requiere cableado, lo que puede ser costoso e inconveniente.
Wireless:
Ventajas: Mayor flexibilidad y facilidad de instalación.
Desventajas: Menor velocidad y seguridad que Ethernet.
Diseño:
Almacenamiento: Todos los datos se almacenarán en el disco duro HDD de la
laptop.
Software: Se utilizará Oracle, HTML o SQL Server Microsoft, una versión gratuita
de Oracle, HTML y SQL Server para pequeñas empresas.
Implementación de la Red:
Ethernet:
Instalar el cableado Ethernet en la tienda.
Configurar el router y los switches.
Conectar los dispositivos a la red.
Wireless:
Instalar los puntos de acceso inalámbrico en la tienda.
Configurar el router y los puntos de acceso.
Conectar los dispositivos a la red.
Implementación:
Instalación de Oracle, HTML o SQL Server Microsoft en la laptop.
Creación de la base de datos y las tablas.
Carga de datos de producto, categoría, clientes, ventas y detalles de venta.
Administración:
Monitorización del rendimiento mediante herramientas de Oracle, HTML o SQL
Server Microsoft.
Copias de seguridad en un disco duro externo o en la nube.
Beneficios:
Facilidad de uso y portabilidad.
Bajo costo inicial de inversión.
Adecuada para una pequeña tienda con un volumen bajo de transacciones.
Desventajas:
Menor rendimiento y escalabilidad que una base de datos en un servidor.
Mayor riesgo de pérdida de datos en caso de fallo del disco duro.
Consideraciones de Seguridad:
Implementar medidas de seguridad como firewalls, antivirus y sistemas de
detección de intrusos.
Usar contraseñas seguras para acceder a la red.
Restringir el acceso a la red a los usuarios autorizados.
Recomendaciones:
Asegurarse de que la laptop tenga suficiente capacidad de procesamiento,
memoria y almacenamiento para las necesidades de la tienda.
Realizar copias de seguridad regulares de la base de datos.
Considerar la posibilidad de migrar a una base de datos en un servidor en el
futuro.