miércoles, 14 de marzo de 2012

Base de Datos Distribuidas



Como toda base de datos, la base de datos distribuida consiste en un almacén de datos, es decir en un conjunto de datos almacenado de manera sistemática siempre dispuesto a ser utilizado. Pero tiene una particularidad que la diferencia y que consiste en que estos datos están almacenados en distintas máquinas que integran un sistema y que tienen conexión entre sí.
Cada uno de los procesadores que integran dicho sistema se conoce con el nombre de localidad o nodo, y por lo tanto la información va a estar distribuida en las distintas localidades y no en una sola localidad, que es lo que ocurre con las bases de datos centralizadas.

Cada localidad tiene una base de datos local aunque la información que se necesite puede provenir tanto de la base de datos local como de otras localidades, lo que se conoce como transacciones locales o transacciones globales respectivamente.

En cuanto a las formas que pueden conectarse las localidades, las más comunes son: la red totalmente conectada, la red prácticamente conectada, la red con estructura de árbol, la red de estrella o la red de anillo.

¿Cuáles son las ventajas? Debido a que la información está distribuida en localidades, los resultados a las consultas se pueden obtener de manera rápida, ágil y fiable. Asimismo, en caso de que alguna de las localidades falle, como todas tienen autonomía local, el resto sigue trabajando sin que se desactive el sistema.

¿Cuáles son las desventajas? La instalación de este sistema es mucho más compleja que el de una base de datos centralizada.

jueves, 1 de marzo de 2012

Escrip Con Las 5 consultas Examen

/***********************************************************/
create database ulv7
use ulv7

CREATE TABLE Profesores
(
ID_Profesor int,
Nombre VARCHAR(20),
Direccion VARCHAR(40),
Telefono VARCHAR(15),
ID_Carrera INT,
PRIMARY KEY (ID_Profesor)
)
insert into Profesores(ID_Profesor,Nombre,Direccion,Telefono,ID_Carrera)values(123,'Fausto Ruiz','Tuxtla Gutierrez','9610000000',7777777);
insert into Profesores(ID_Profesor,Nombre,Direccion,Telefono,ID_Carrera)values(124,'Miguel Domingue','Tuxtla Gutierrez','9610000003',7777778);
insert into Profesores(ID_Profesor,Nombre,Direccion,Telefono,ID_Carrera)values(125,'Heber Trijillo','Tuxtla Gutierrez','9610000004',7777779);
insert into Profesores(ID_Profesor,Nombre,Direccion,Telefono,ID_Carrera)values(126,'Juan Arellano','Tuxtla Gutierrez','9610045000',7777777);
insert into Profesores(ID_Profesor,Nombre,Direccion,Telefono,ID_Carrera)values(127,'Madain Rivera','Tuxtla Gutierrez','9610023403',7777777);
insert into Profesores(ID_Profesor,Nombre,Direccion,Telefono,ID_Carrera)values(128,'Beberlin Rios','Tuxtla Gutierrez','9610234504',7777710);
select * from Profesores
/***********************************************************/

CREATE TABLE Alumno
(
ID_Alumno INT ,
Carrera_ID_Carrera int,
Nombre VARCHAR(20) ,
Direccion VARCHAR(40) ,
Telefono VARCHAR(25) ,
Calificacion int,
PRIMARY KEY (ID_Alumno)
)
insert into Alumno(ID_Alumno,Carrera_ID_Carrera,nombre,direccion,telefono,Calificacion)values(11,999,'Oswaldo','Tuxtla Gutierrez','9610000008',10);
insert into Alumno(ID_Alumno,Carrera_ID_Carrera,nombre,direccion,telefono,Calificacion)values(12,998,'Ilner','Tuxtla Gutierrez','9610000006',9);
insert into Alumno(ID_Alumno,Carrera_ID_Carrera,nombre,direccion,telefono,Calificacion)values(13,997,'Ana','Tuxtla Gutierrez','9610000007',10);
insert into Alumno(ID_Alumno,Carrera_ID_Carrera,nombre,direccion,telefono,Calificacion)values(14,996,'Abisahi','Tuxtla Gutierrez','9610000034',4);
insert into Alumno(ID_Alumno,Carrera_ID_Carrera,nombre,direccion,telefono,Calificacion)values(15,995,'Amet','Tuxtla Gutierrez','9610000056',5);
insert into Alumno(ID_Alumno,Carrera_ID_Carrera,nombre,direccion,telefono,Calificacion)values(16,994,'Eduardo','Tuxtla Gutierrez','9610000507',10);
insert into Alumno(ID_Alumno,Carrera_ID_Carrera,nombre,direccion,telefono,Calificacion)values(17,993,'Sonia','Tuxtla Gutierrez','9615600507',2);
select * from Alumno
/***********************************************************/

CREATE TABLE Materia
(
ID_Materia int,
ID_Profesor int,
Carrera_ID_Carrera int,
Calificaciones_ID_Calificaciones INT,
Nombre VARCHAR(45),
PRIMARY KEY (ID_Materia)
)
insert into materia(ID_materia,ID_Profesor,Carrera_ID_Carrera,Calificaciones_ID_Calificaciones,Nombre)values(12345,123,995,001,'Filosofia');
insert into materia(ID_materia,ID_Profesor,Carrera_ID_Carrera,Calificaciones_ID_Calificaciones,Nombre)values(12346,123,999,002,'Teleprocesos');
insert into materia(ID_materia,ID_Profesor,Carrera_ID_Carrera,Calificaciones_ID_Calificaciones,Nombre)values(12347,125,994,003,'Electonica');
insert into materia(ID_materia,ID_Profesor,Carrera_ID_Carrera,Calificaciones_ID_Calificaciones,Nombre)values(12348,124,999,003,'Programacion 1');
insert into materia(ID_materia,ID_Profesor,Carrera_ID_Carrera,Calificaciones_ID_Calificaciones,Nombre)values(12349,123,999,005,'Sistemas Distribuidos');
select * from Materia
/***********************************************************/

CREATE TABLE Calificaciones
(
ID_Calificaciones INT,
Materias VARCHAR(30) ,
PRIMARY KEY (ID_Calificaciones)
)
insert into calificaciones(ID_calificaciones,Materias)values(001,'Programacion 1');
insert into calificaciones(ID_calificaciones,Materias)values(002,'Programacion 1');
insert into calificaciones(ID_calificaciones,Materias)values(003,'Filosofia');
insert into calificaciones(ID_calificaciones,Materias)values(004,'Programacion 1');
insert into calificaciones(ID_calificaciones,Materias)values(005,'Programacion 1');
insert into calificaciones(ID_calificaciones,Materias)values(006,'Filosofia');
select * from calificaciones
/***********************************************************/


CREATE TABLE Carrera
(
ID_Carrera int,
Nombre varchar(45),
PRIMARY KEY (ID_Carrera)
)
insert into Carrera(ID_Carrera,Nombre)values(7777777,'Ingenieria');
insert into Carrera(ID_Carrera,Nombre)values(7777778,'Contaduria');
insert into Carrera(ID_Carrera,Nombre)values(7777779,'Enfermeria');
insert into Carrera(ID_Carrera,Nombre)values(7777710,'Pedagogia');
select * from Carrera
/***********************************************************/


CREATE TABLE Carga_academica
(
ID_carga int,
Profesores_IP_Profesor int,
Materia_ID_Materia INT,
Materia_Calificaciones_ID_Calificaciones INT,
PRIMARY KEY (ID_carga,Profesores_IP_Profesor,Materia_ID_Materia,Materia_Calificaciones_ID_Calificaciones) ,
)
insert into Carga_academica(ID_carga,Profesores_IP_Profesor,Materia_ID_Materia,Materia_Calificaciones_ID_Calificaciones)values(90,123,12345,001);
insert into Carga_academica(ID_carga,Profesores_IP_Profesor,Materia_ID_Materia,Materia_Calificaciones_ID_Calificaciones)values(91,124,12346,002);
insert into Carga_academica(ID_carga,Profesores_IP_Profesor,Materia_ID_Materia,Materia_Calificaciones_ID_Calificaciones)values(92,125,12347,003);
select * from Carga_academica
/***********************************************************/
/***********************************************************/
/***********************************************************/
/***********************************************************/
/***********************************************************/

/* [1]... Lista las materias del profesor Fausto Ruiz*/
select * from Materia
select * from Profesores
/* [1] */
SELECT * FROM Materia INNER JOIN Profesores ON Materia.ID_Profesor=123 and Profesores.nombre='Fausto Ruiz'



/* [2]... Lista las materias del alumno oswaldo*/
select * from Materia
select * from Alumno
/* [2] */
SELECT * FROM Materia INNER JOIN Alumno ON Materia.Carrera_ID_Carrera=999 and Alumno.Nombre='Oswaldo'



/* [3]... Lista los profesores de la carrera de ingenieria*/
select * from Profesores
select * from Carrera
/* [3] */
SELECT * FROM Profesores INNER JOIN Carrera ON Profesores.ID_Carrera=7777777 and Carrera.Nombre='Ingenieria'



/* [4]... Lista los alumnos que llevan la materia de sistemas distribuidos*/
select * from Alumno
select * from Materia
/* [4] */
SELECT * FROM Alumno INNER JOIN Materia ON Alumno.Carrera_ID_Carrera=999 and Materia.Nombre='Sistemas Distribuidos'



/* [5]... Lista los alumnos reprovados y sus materias*/
select * from Alumno
select * from calificaciones
/* [5] */
SELECT * FROM Alumno INNER JOIN calificaciones ON Alumno.Calificacion <=5
select * from alumno where Calificacion <=5

martes, 21 de febrero de 2012

Desafios De Los Sistemas Distribuidos

* sistema distribuido
Se define un sistema distribuido como aquel en el que los componentes de hardware y software, localizados en computadores unidos mediante una red, comunican y coordinan sus acciones sólo mediante el paso de mensajes.

Ø  Desafíos
Ø  Heterogeneidad
Ø  Extensibilidad
Ø  Seguridad
Ø  Escalabilidad
Ø  Tolerancia a Fallas
Ø  Concurrencia
Ø  Transparencia
Desafíos: Heterogeneidad
La heterogeneidad se aplica en los siguientes elementos:

*Redes
*Hardware de computadores
*Sistemas operativos
*Lenguajes de programación
*Implementaciones de diferentes desarrolladores

Middleware: es el estrato de software que provee una abstracción de programación, así como un enmascaramiento de la heterogeneidad subyacente de las redes, hardware, sistemas operativos y lenguajes de programación. Ejemplo: Corba, Java RMI

Código móvil:
*Código Móvil: código que puede enviarse desde un computador a otro y ejecutarse en este último.
*El concepto de máquina virtual ofrece un modo de crear código ejecutable sobre cualquier hardware

Desafíos: Extensibilidad
Es la característica que determina si el sistema puede extenderse de varias maneras. Un sistema puede ser abierto o cerrado con respecto a extensiones de hardware o de software. Para lograr la extensibilidad es imprescindible que las interfaces clave  sean publicadas.

Los Sistemas Distribuidos Abiertos pueden extenderse a nivel de hardware mediante la inclusión de computadoras a la red y a nivel de software por la introducción de nuevos servicios y la re implementación de los antiguos.

Otro beneficio de los sistemas abiertos es su independencia de proveedores concretos.

Desafíos: Seguridad
La seguridad tiene tres componentes: Confidencialidad: protección contra individuos no autorizados Integridad: protección contra la alteración o corrupción Disponibilidad: protección contra la interferencia que impide el acceso a los recursos

Existen dos desafíos que no han sido resueltos en su totalidad:
*Ataques de denegación de servicio
*Seguridad del código móvil

Desafíos: Escalabilidad
Se dice que un sistema es escalable si conserva su efectividad cuando ocurre un incremento significativo en el número de recursos y en el número de usuarios. El diseño de SD escalables presenta los siguientes retos:

Control de costo de los recursos físicos: para que un sistema con n usuarios sea escalable, la cantidad de recursos físicos necesarios para soportarlo debería ser O(n).

Controlar la degradación del rendimiento: Ejemplo: Los algoritmos que emplean estructuras jerárquicas se comportan mejor frente al crecimiento de la escala, que los algoritmos que emplean estructuras lineales.

Evitar cuellos de botella: los algoritmos deberían ser descentralizados.

Prevenir el desbordamiento de los recursos de software

Desafíos: Tratamiento de fallos
Detección de fallos: Ejemplo. Se pueden utilizar sumas de comprobación (checksums) para detectar datos corruptos en un mensaje.
Enmarascamiento de fallos: Ejemplo.
*Los mensajes pueden retransmitirse
*Replicar los datos
Tolerancia de fallos: los programas clientes de los servicios pueden diseñarse para tolerar ciertos fallos. Esto implica que los usuarios tendrán también que tolerarlos.
Recuperación de fallos: implica el diseño de software en el que, tras una caída del servidor, el estado de los datos puede reponerse o retractarse (rollback) a una situación anterior.
Redundancia: emplear componentes redundantes.

Desafíos: Concurrencia
Existe la posibilidad de acceso concurrente a un mismo recurso. La concurrencia en los servidores se puede lograr a través de threads. Cada objeto que represente un recurso compartido debe responsabilizarse de garantizar que opera correctamente en un entorno concurrente. Para que un objeto sea seguro en un entorno concurrente, sus operaciones deben sincronizarse de forma que sus datos permanezcan consistentes.

Desafíos: Transparencia
Transparencia de acceso: permite acceder a los recursos locales y remotos empleando operaciones idénticas. Transparencia de ubicación: permite acceder a los recursos sin conocer su localización. Transparencia de concurrencia: permite que varios procesos operen concurrentemente sobre recursos compartidos sin interferencia mutua.

Transparencia de replicación: permite replicar los recursos sin que los usuarios y los programadores necesiten su conocimiento. Transparencia frente a fallos: permite ocultar fallos. Transparencia de movilidad: permite la reubicación de recursos y clientes en un sistema sin afectar la operación de los usuarios y los programas.

Transparencia de rendimiento: permite reconfigurar el sistema para mejorar el desempeño según varíe su carga. Transparencia al escalado: permite al sistema y a las aplicaciones expandirse en tamaño sin cambiar la estructura del sistema o los algoritmos de aplicación.

viernes, 17 de febrero de 2012

Scrip De Prueva

drop database ulv7
create database ulv7
use ulv7
CREATE TABLE Profesores(
ID_Profesor int,
Nombre VARCHAR(20),
Direccion VARCHAR(40),
Telefono VARCHAR(15),
PRIMARY KEY (ID_Profesor)
)
insert into Profesores(ID_Profesor,Nombre,Direccion,Telefono)values(123,'Fausto Ruiz','Tuxtla Gutierrez','9610000000');
insert into Profesores(ID_Profesor,Nombre,Direccion,Telefono)values(124,'Miguel Domingue','Tuxtla Gutierrez','9610000003');
insert into Profesores(ID_Profesor,Nombre,Direccion,Telefono)values(125,'Fausto Ruiz','Tuxtla Gutierrez','9610000004');
select * from Profesores


CREATE TABLE Alumno
(
ID_Alumno INT ,
Carrera_ID_Carrera int,
Nombre VARCHAR(20) ,
Direccion VARCHAR(40) ,
Telefono VARCHAR(25) ,
PRIMARY KEY (ID_Alumno)
)
insert into Alumno(ID_Alumno,Carrera_ID_Carrera,nombre,direccion,telefono)values(11,999,'Oswaldo','Tuxtla Gutierrez','9610000008');
insert into Alumno(ID_Alumno,Carrera_ID_Carrera,nombre,direccion,telefono)values(12,998,'Ilner','Tuxtla Gutierrez','9610000006');
insert into Alumno(ID_Alumno,Carrera_ID_Carrera,nombre,direccion,telefono)values(13,997,'Ana','Tuxtla Gutierrez','9610000007');
select * from Alumno



CREATE TABLE Materia
(
ID_Materia INT ,
Carrera_ID_Carrera int,
Calificaciones_ID_Calificaciones INT,
Nombre VARCHAR(20),
PRIMARY KEY (ID_Materia, Calificaciones_ID_Calificaciones)
)
insert into materia(ID_materia,Carrera_ID_Carrera,Calificaciones_ID_Calificaciones,Nombre)values(12345,999,001,'programacion 1');
insert into materia(ID_materia,Carrera_ID_Carrera,Calificaciones_ID_Calificaciones,Nombre)values(12346,998,002,'teleprocesos');
insert into materia(ID_materia,Carrera_ID_Carrera,Calificaciones_ID_Calificaciones,Nombre)values(12347,997,003,'electonica');
select * from Materia

CREATE TABLE Calificaciones
(
ID_Calificaciones INT,
Materias VARCHAR(30) ,
Alumno_ID_Alumno INT,
PRIMARY KEY (ID_Calificaciones, Alumno_ID_Alumno) ,
)
insert into calificaciones(ID_calificaciones,Materias,Alumno_ID_Alumno)values(001,'programacion 1',11);
insert into calificaciones(ID_calificaciones,Materias,Alumno_ID_Alumno)values(002,'teleprocesos',12);
insert into calificaciones(ID_calificaciones,Materias,Alumno_ID_Alumno)values(003,'electronica',13);
select * from calificaciones

CREATE TABLE Carrera
(
ID_Carrera int,
id_alumno int,
id_profesor int,
PRIMARY KEY (ID_Carrera)
)
insert into Carrera(ID_Carrera,id_alumno,id_profesor)values(7777777,11,123);
insert into Carrera(ID_Carrera,id_alumno,id_profesor)values(7777778,12,124);
insert into Carrera(ID_Carrera,id_alumno,id_profesor)values(7777779,13,125);
select * from Carrera

CREATE TABLE Carga_academica
(
ID_carga int,
Profesores_IP_Profesor int,
Materia_ID_Materia INT,
Materia_Calificaciones_ID_Calificaciones INT,
PRIMARY KEY (ID_carga,Profesores_IP_Profesor,Materia_ID_Materia,Materia_Calificaciones_ID_Calificaciones) ,
)
insert into Carga_academica(ID_carga,Profesores_IP_Profesor,Materia_ID_Materia,Materia_Calificaciones_ID_Calificaciones)values(90,123,12345,001);
insert into Carga_academica(ID_carga,Profesores_IP_Profesor,Materia_ID_Materia,Materia_Calificaciones_ID_Calificaciones)values(91,124,12346,002);
insert into Carga_academica(ID_carga,Profesores_IP_Profesor,Materia_ID_Materia,Materia_Calificaciones_ID_Calificaciones)values(92,125,12347,003);
select * from Carga_academica

CREATE TABLE Carrera_has_Profesores
(
Carrera_ID_Carrera int,
Profesores_IP_Profesor INT,
Profesores_Carga_academica_ID_carga int,
PRIMARY KEY (Carrera_ID_Carrera, Profesores_IP_Profesor, Profesores_Carga_academica_ID_carga) ,

)

insert into Carrera_has_Profesores(Carrera_ID_Carrera,Profesores_IP_Profesor,Profesores_Carga_academica_ID_carga)values(7777777,123,444);
insert into Carrera_has_Profesores(Carrera_ID_Carrera,Profesores_IP_Profesor,Profesores_Carga_academica_ID_carga)values(7777778,124,445);
insert into Carrera_has_Profesores(Carrera_ID_Carrera,Profesores_IP_Profesor,Profesores_Carga_academica_ID_carga)values(7777779,125,446);
select * from Carrera_has_Profesores

miércoles, 1 de febrero de 2012

Sistemas Distribuidos

¿Que es una base de datos (DB)?
-Colección de datos relacionados del mismo contexto y almacenados sistemáticamente para su uso.
-Un conjunto de información almacenada en memoria auxiliar que permite acceso directo y un conjunto de programas que manipulan esos datos.
Base de Datos es un conjunto exhaustivo no redundante de datos estructurados organizados independientemente de su utilización y su implementación en máquina accesibles en tiempo real y compatibles con usuarios concurrentes con necesidad de información diferente y no predicable en tiempo.
¿Qué es un sistema manejador de base de datos (SMBD)?
Software que administra bases de datos y muestra la interfaz entre los datos y el usuario.
¿Qué es SQL?
En muchos casos, el esquema básico de operación es una serie de scripts que rigen el comportamiento de una base de datos.

Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar entre unos y otras sería realmente complicada a gestionar de no ser por la existencia de estándares que nos permiten el realizar las operaciones básicas de una forma universal.

Es de eso de lo que trata el Structured Query Language que no es mas que un lenguaje estándar de comunicación con bases de datos. Hablamos por tanto de un lenguaje normalizado que nos permite trabajar con cualquier tipo de lenguaje (ASP o PHP) en combinación con cualquier tipo de base de datos (MS Access, SQL Server, MySQL...).

El hecho de que sea estándar no quiere decir que sea idéntico para cada base de datos. En efecto, determinadas bases de datos implementan funciones específicas que no tienen necesariamente que funcionar en otras.

Aparte de esta universalidad, el SQL posee otras dos características muy apreciadas. Por una parte, presenta una potencia y versatilidad notables que contrasta, por otra, con su accesibilidad de aprendizaje.

¿Qué es LDD?
Tareas de definición de estructuras, procedimientos y funciones para la Base de Datos
¿Qué es LMD?
Tarea de inserción, modificación, eliminación de datos en una Base de Datos.




lunes, 28 de noviembre de 2011

Historia de los dispositivos de red

Una red de computadoras, también llamada red de ordenadores o red informática, es un conjunto de equipos informáticosconectados entre sí por medio de dispositivos físicos que envían y reciben impulsos eléctricos, ondas electromagnéticas o cualquier otro medio para el transporte de datos, con la finalidad de compartir información y recursos y ofrecer servicios.1 Este término también engloba aquellos medios técnicos que permiten compartir la información.



Tarjetas de red

El trabajo del adaptador de red es el de convertir las señales eléctricas que viajan por el cable (ej: red Ethernet) o las ondas de radio (ej: red Wi-Fi) en una señal que pueda interpretar el ordenador.
Estos adaptadores son unas tarjetas PCI que se conectan en las ranuras de expansión del ordenador. En el caso de ordenadores portátiles, estas tarjetas vienen en formato PCMCIA. En algunos ordenadores modernos, tanto de sobremesa como portátiles, estas tarjetas ya vienen integradas en la placa base.
Adaptador de red es el nombre genérico que reciben los dispositivos encargados de realizar dicha conversión. Esto significa que estos adaptadores pueden ser tanto Ethernet, como Wireless, así como de otros tipos como fibra óptica, coaxial, etc. También las velocidades disponibles varían según el tipo de adaptador; éstas pueden ser, en Ethernet, de 10, 100 ó 1000 Mbps, y en los inalámbricos de 11 o 55 Mbps.