Sunteți pe pagina 1din 33

DESARROLLO

DE
APLICACIONES
EN AMBIENTES
DISTRIBUIDOS.
PRCTICA DISTRIBUCIN
LICENCIATURA INFORMTICA
Grupo: 802

Lucero Callejas Martnez


Luis Felipe Callejas Hernndez
Luis Tadeo Moreno Balderrabano
Ceded Serafin Snchez.

INTRODUCCIN

La finalidad de esta prctica es crear un ambiente distribuido en la que las


computadoras con diferentes sistemas operativos y gestores de bases de datos se
encuentran fsicamente separadas pero conectadas entre s por una red de
comunicaciones

Cada mquina hardware y software posee sus componentes que el usuario


percibe como un solo sistema (no necesita saber qu cosas estn en que
maquina). El usuario accede a los recursos remotos (RPC) de la misma manera
en que accede a recursos locales, o un grupo de computadoras que usan un
software para conseguir un objetivo en comn.

Los sistemas distribuidos deben ser confiables, ya que si un componente


del sistema se descomponme otro componente debe ser capaz de reemplazarlo.

Internet

IIS

NOD

Windows Server
Sql server 2008

NOD

2
Windows 7
PostgreSQL

NOD

3
Ubuntu
MySQL

ESTRUCTURA Y COMPOSICIN DE LAS MQUINAS.

NOD

1
Como servidor principal se tiene una base de datos en la que se

encuentran todos los datos almacenados de los diferentes clientes que en este
caso son; Colmenarejo, Getafe, Leganes. A dichos nodos se les distribuirn los
datos que corresponden a cada uno de los campos el servidor se encuentra en
una maquina con sistema operativo, Windows Server 2008 R2 y con un gestor de
base de datos SQLServer 2008; el cual para poder realizar su instalacin tuvo que
activar las funciones de las caractersticas de NET Frameword 3.5 que eran
necesarias para poder instalar el gestor de base de datos.
Una vez teniendo el servidor funcionando se procedi a crear la base de
datos que contiene los archivos de los clientes y posteriormente se realiz un scrip
de distribucin para mandar los archivos correspondientes a cada servidor.
Para poder llevar a cabo la comunicacin de los clientes se tuvo que
instalar drivers de los diferentes gestores que tiene cada cliente
Una vez instalado el driver necesario, abrimos el Microsoft SQL Server
Management Studio, nos logueamos, y en el explorador de objetos del IDE
expandimos Objetos del Servidor, aqu veremos todos los Servidores Vinculados
que creemos, para ver la lista de Proveedores podemos expandir la
correspondiente Lista.

Ahora hacemos click secundario sobre la opcin Servidores Vinculados,


elegimos Nuevo Servidor Vinculado, nos aparecer la siguiente ventana, en
donde configuramos de la siguiente manera:

Antes de Confirmar, debemos modificar algunas opciones, RPC (Remote


Procedure Call) para poder ejecutar Stored Procedures en los Servidores
Vinculados, y Salida RPC para que estos en casos de devolver valores los
podamos capturar. Punto a considera, si no vamos a ejecutar SP ni SQL dinmico,
deberamos dejar deshabilitada esta opcin, ya que deja abierta una punto de
seguridad.

Necesariamente debemos configurar Ad Hoc Distributed Querys, si no lo


hacemos, ni siquiera los usuarios administradores o pertenecientes al
grupo SYSADMIN no podrn acceder al origen de datos. El error que devolvera
sera el siguiente:

Esto lo habilitamos as:

De este modo ya tenemos configurado nuestro servidor vinculado y podemos


utilizarlo como los siguientes ejemplos:

Ahora bien, si no deseamos hacer esto de modo grfico, podemos utilizar este
script que hace lo mismo:

NOD

Para este departamento se ha designado el nombre de Leganes, el cual ser


implementado en Windows 7 utilizando el gestor de base de datos PostgreSQL
9.2 para lo cual se instalaron ambos componentes , el gestor de PostgreSQL 9.2
puede conseguirse fcilmente en la pgina oficial (http:// www.postgresql.org
) una vez descargado nuestro gestor se instala en nuestro sistema, a partir de
esto procedemos a crear la base de datos en nuestra maquina cliente. Sin
embargo para poder realizar una conexin exitosa con Windows Server 2008 que
es el servidor que se ha designado.

Habilitar conexiones remotas para PostgreSQL:


Cuando se instala postgres por defecto no permite conexiones remotas. Esto
quiere decir que si deseas conectarte desde otra maquina diferente no es posible.
Si se est desarrollando una aplicacin por lo general es necesario el uso de
conexiones remotas.
A continuacin se explican los simples pasos que se deben ejecutar para cumplir
con este requerimiento:
Paso 1:
Editar el archivo postgresql.conf, este archivo se encuentra en diferentes sitios
dependiendo del sistema operativo y la distribucion de Linux que se este usando.
Estas son algunas posibles rutas: Windows (C:\PostgreSQL\9.1\data), CentOS
(/var/lib/pgsql/data/), Ubuntu ( /etc/postgresql/8.2/main/).
Una vez que se abre el archivo:

Paso1.1 Se debe ubicar la siguiente linea:

#listen_addresses = 'localhost'
Cambiar por la siguiente linea:

listen_addresses = '*'
Paso 1.2 Se debe ubicar la siguiente linea y le quitamos el comentario:

#password_encryption = on
Para quitar el comentario, le quitamos el # al principio de la linea:

password_encryption = on
Paso 1.3 Guardar y cerrar el archivo.
Paso 1.4 Reinciar el postgres esto dependiendo de sus sistemas operativo se
puede realizar de varias formas.
Windows
Por la consola de servicios se reinicia.

Paso 2
Se debe modificar lista de acceso, la cual permite establecer relaciones de
confianza para ciertos equipos y redes.

Paso 2.1
Editar el fichero pg_hba.conf. este archivo se encuentra en diferentes sitios
dependiendo del sistema operativo y la distribucion de linux que se este usando
estas son algunas posibles rutas Windows (C:\PostgreSQL\9.1\data), CentOS
(/var/lib/pgsql/data/), Ubuntu ( /etc/postgresql/8.2/main/):
Una vez que se abre el archivo:
Al final del archivo debemos agregar la siguiente linea:

host all all 0.0.0.0 0.0.0.0 md5


Paso 2.2 Guardar y cerrar el archivo.
Paso 2.3 Reiniciar el postgres esto dependiendo de sus sistemas operativo se
puede realizar de varias formas.
Windows
Por la consola de servicios se reinicia.
Es todo ya su servidor de bases de datos postgres debe aceptar conexiones
remotas.

NOD

Para este NODO se ha designado el departamento de Colmenarejo, el cual ser


implementado en Ubuntu utilizando el gestor de base de datos Mysql para lo cual
se instalaron ambos componentes, el gestor de Mysql puede conseguirse
fcilmente en la pgina oficial (http://www.ubuntu.com) una vez descargado
nuestro gestor se instala en nuestro sistema, a partir de esto procedemos a crear
la base de datos en nuestra maquina cliente.
1. Configuracin

Se pedir crear la contrasea del administrador una vez se instale el programa.


En versiones antiguas no se crea con la instalacin. Debemos crearla
manualmente, nada ms instalar el servidor. Para hacerlo teclea en un Terminal.
$ sudo /usr/bin/mysqladmin -u root password clavenueva

Se puede cambiar el archivo /etc/mysql/my.cnf para configurar las opciones


bsicas -- archivo de registro, nmero de puerto, etc. Mira al
archivo /etc/mysql/my.cnf para ms detalles.

Una vez asignada una contrasea al administrador, puedes conectar con el


servidor mySQL de la manera siguiente:
$ mysql -h localhost -u root -p

Donde "localhost" s la direccin de tu host y "root" el nombre de usuario. A


continuacin introduce el password de la base de datos. Te aparece la siguiente
pantala:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 20 to server version: 5.0.24aDebian_9ubuntu2-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

Para desconectar,
mysql> QUIT
Bye

2. Para conectar con host remosto se realizara lo siguiente:

Por defecto, MySQL no permite que cualquier usuario puede acceder a las bases
de datos usando un conexin TCP. Para que lo permita debes crear un usuario con
los permisos correspondientes.
Tambin tendrs que editar el fichero /etc/mysql/my.cnf y modificar la lnea:
bind-address

= 127.0.0.1

Cambindola por la direccion IP del servidor, o en caso de que se quiera escuchar


en todas las IPs:
bind-address
tienes IP fija

= 0.0.0.0 o la IP que tengas en tu seridor si

Despues reinicia el servicio.


shell>cd etc/init.d
shell>./mysql restart

Para que todos los dems ordenadores tengan acceso al servidor. Para ms
seguridad puedes poner solamente una lista de las IPs de los ordenadores que
quieres que tengan acceso.

Si an no te puedes conectar desde un ordenador remoto tendrs que editar el


fichero /etc/hosts.allow y aadir la lnea:
mysqld: all

3. Gestin de usuarios
Crear un usuario

Para la creacin de usuarios tendremos que conectarnos al servidor MySQL (ver


ms arriba) con un usuario que tenga el permiso global CREATE USER o el
permiso INSERT para la base de datos mysql. La sintaxis es la siguiente:
CREATE USER usuario IDENTIFIED BY 'password';

Eliminar un usuario

El usuario que usemos en la conexin debe tener el permiso global CREATE


USER o el permiso DELETE para la base de datos mysql. La sintaxis es la
siguiente:
DROP USER usuario;

Dar permisos a un usuario

Los permisos pueden darse en varios niveles:


Nivel global
Nivel de base de datos
Nivel de tabla
La sintaxis es:

GRANT tipo_privilegio ON {nombre_tabla | * | *.* | nombre_bd.*} TO


usuario;

As para dar el permito SELECT al usuario pepe sera:


GRANT SELECT ON *.* TO pepe;

Quitar permisos a un usuario

La sintaxis es:
REVOKE tipo_privilegio ON {nombre_tabla | * | *.* | nombre_bd.*} FROM
usuario;

4. Creacin de la base de datos

Para crear una base de datos nueva puedes hacerlo de, al menos, dos formas.
Abre un Terminal y ejecuta lo siguiente.
$ mysql -h servidor -u usuario -p
Enter password:
mysql> CREATE DATABASE nombre_de_la_base_de_datos;
quit

Para eliminar una base de datos que ya no es necesaria en el sistema tambin


tenemos, al menos, dos mtodos. En un ventana de Terminal ejecuta.
$ mysql -h servidor -u usuario -p
Enter password:
mysql> DROP DATABASE nombre_de_la_base_de_datos;
quit

5. Configuracin de un odbc para mysql en Ubuntu


1. Instalar iodbc GTK + fronted de configuracin para el gestor
de controladores iODBC
Sudo apt-get install iodbc
2. Instalar mysql connector para obdc
Sudo apt-get install libmyodbc
3. Comenzando el iodbc
Iodbcadm-gtk

4. Agregar el controlador mysql a la lista de controladores odbc


Cambie a la "ODBC Drivers", haga clic en "Agregar un
controlador". Escriba una descripcin del conductor (es decir, "MySQL").
Para el "nombre de archivo del controlador" elegir el directorio / usr / lib /
odbc / libmyodbc.so .
Porque "el nombre del archivo de configuracin", seleccione el directorio /
usr / lib / odbc / libodbcmyS.so .
Este archivo de configuracin parece ser suministrados por unixodbc, que ya se
haba instalado.

5.

Crear un nuevo dns de usuario


Haga clic en "Aadir", seleccione el ya creado MySQL ODBC.
Dar un nombre a la fuente de datos (es decir, " bobs_mysqldb ").
Ahora tendr que aadir algunas palabras clave basndose en la configuracin del
servidor. Como mnimo debe tener:
servidor de
base de datos de
usuario
contrasea

FUNCIONAMIENTO
El modo de trabajo de distribucin de este sistema ha quedado de la siguiente
manera:

NOD

Ha de funcionar como mquina servidor, trabajar en la plataforma de Windows


Server y gestionar los datos con SQl Server 2008, en primera instancia ha de
crear la base de datos principal que tiene los datos de todos los clientes, para
posteriormente mandar los datos en el momento de ejecutar la distribucin
correspondiente a cada cliente, as como a su vez se crear una base de datos
para un cliente.
Trabajar con su base de datos local Getafe dos clientes Legans y
Colmenarejo.
Para insertar datos en Getafe Nodo 1 ejecut el siguiente script:
============================Getafe=============================
===========
insert into [DEVAFLA\SQLEXPRESS].Getafe.dbo.TITULACION_GETAFE select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.TITULACION where Campus = 'Getafe'

insert into [DEVAFLA\SQLEXPRESS].Getafe.dbo.CURSO_GETAFE select * from


[DEVAFLA\SQLEXPRESS].Principal.dbo.CURSO where Cod_titulacion = '1'
insert into [DEVAFLA\SQLEXPRESS].Getafe.dbo.CURSO_GETAFE select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.CURSO where Cod_titulacion = '2'
insert into [DEVAFLA\SQLEXPRESS].Getafe.dbo.GRUPO_GETAFE select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.GRUPO where Cod_titulacion = '1'
insert into [DEVAFLA\SQLEXPRESS].Getafe.dbo.GRUPO_GETAFE select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.GRUPO where Cod_titulacion = '2'
insert into [DEVAFLA\SQLEXPRESS].Getafe.dbo.ASIGNATURA_GETAFE select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.ASIGNATURA where Cod_titulacion = '1'
insert into [DEVAFLA\SQLEXPRESS].Getafe.dbo.ASIGNATURA_GETAFE select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.ASIGNATURA where Cod_titulacion = '2'
insert into [DEVAFLA\SQLEXPRESS].Getafe.dbo.CLASIFICACION_GETAFE select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.CLASIFICACION where Categoria = 'DOC'
insert into [DEVAFLA\SQLEXPRESS].Getafe.dbo.NOMINA_GETAFE select
Nombre,E_mail,Despacho from [DEVAFLA\SQLEXPRESS].Principal.dbo.PROFESOR
insert into [DEVAFLA\SQLEXPRESS].Getafe.dbo.PROFESOR_GETAFE select
Nombre,Direccion,Telefono,Categoria from [DEVAFLA\SQLEXPRESS].Principal.dbo.PROFESOR
insert into [DEVAFLA\SQLEXPRESS].Getafe.dbo.IMPARTIR_GETAFE select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.IMPARTIR where Cod_asignatura = '1'
insert into [DEVAFLA\SQLEXPRESS].Getafe.dbo.IMPARTIR_GETAFE select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.IMPARTIR where Cod_asignatura = '2'

Para insertar datos en Legans se ejecut el siguiente script:


============================Legans========================================
insert into PostgreSQL.leganes.luu.titulacion_leganes select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.TITULACION where Campus = 'Legans'
insert into PostgreSQL.leganes.luu.curso_leganes select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.CURSO where Cod_titulacion = '3'

insert into PostgreSQL.leganes.luu.curso_leganes select * from


[DEVAFLA\SQLEXPRESS].Principal.dbo.CURSO where Cod_titulacion = '4'
insert into PostgreSQL.leganes.luu.grupo_leganes select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.GRUPO where Cod_titulacion = '3'
insert into PostgreSQL.leganes.luu.grupo_leganes select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.GRUPO where Cod_titulacion = '4'
insert into PostgreSQL.leganes.luu.asignatura_leganes select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.ASIGNATURA where Cod_titulacion = '3'
insert into PostgreSQL.leganes.luu.asignatura_leganes select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.ASIGNATURA where Cod_titulacion = '4'
insert into PostgreSQL.leganes.luu.impartir_leganes select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.IMPARTIR where Cod_asignatura = '3'
insert into PostgreSQL.leganes.luu.impartir_leganes select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.IMPARTIR where Cod_asignatura = '4'
--insert into PostgreSQL.leganes.luu.clasificacion_leganes select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.CLASIFICACION where Categoria ='ING'
--insert into PostgreSQL.leganes.luu.profesor_leganes select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.PROFESOR where Categoria = 'ING'

Para insertar datos en Legans se ejecut el siguiente script:


=======================Departamento5========================================
INSERT INTO OPENQUERY(MySql,'select * from TITULACION_COLMENAREJO')select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.TITULACION where Campus = 'Colmenarejo'
INSERT INTO OPENQUERY(MySql, 'select * from CURSO_COLMENAREJO')select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.CURSO where Cod_titulacion = '5'
INSERT INTO OPENQUERY(MySql, 'select * from CURSO_COLMENAREJO')select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.CURSO where Cod_titulacion = '6'
INSERT INTO OPENQUERY(MySql, 'select * from GRUPO_COLMENAREJO')select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.GRUPO where Cod_titulacion = '5'
INSERT INTO OPENQUERY(MySql, 'select * from GRUPO_COLMENAREJO')select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.GRUPO where Cod_titulacion = '6'

INSERT INTO OPENQUERY(MySql, 'select * from ASIGNATURA_COLMENAREJO')select * from


[DEVAFLA\SQLEXPRESS].Principal.dbo.ASIGNATURA where Cod_titulacion = '5'
INSERT INTO OPENQUERY(MySql, 'select * from ASIGNATURA_COLMENAREJO')select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.ASIGNATURA where Cod_titulacion = '6'
INSERT INTO OPENQUERY(MySql, 'select * from CLASIFICACION_COLMENAREJO')select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.CLASIFICACION where Categoria = 'LIC'
--INSERT INTO OPENQUERY(MySql, 'select * from PROFESOR_COLMENAREJO')select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.PROFESOR where Categoria = 'LIC'
--INSERT INTO OPENQUERY(MySql, 'select * from IMPARTIR_COLMENAREJO')select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.IMPARTIR where Cod_asignatura = '5'
--INSERT INTO OPENQUERY(MySql, 'select * from IMPARTIR_COLMENAREJO')select * from
[DEVAFLA\SQLEXPRESS].Principal.dbo.IMPARTIR where Cod_asignatura = '6'

Para eliminar datos en los respectivos clientes Nodo 1 ejecut el siguiente script:
============================Getafe=============================
===========
delete [DEVAFLA\SQLEXPRESS].Getafe.dbo.IMPARTIR_GETAFE
delete [DEVAFLA\SQLEXPRESS].Getafe.dbo.PROFESOR_GETAFE
delete [DEVAFLA\SQLEXPRESS].Getafe.dbo.NOMINA_GETAFE
delete [DEVAFLA\SQLEXPRESS].Getafe.dbo.CLASIFICACION_GETAFE
delete [DEVAFLA\SQLEXPRESS].Getafe.dbo.ASIGNATURA_GETAFE
delete [DEVAFLA\SQLEXPRESS].Getafe.dbo.GRUPO_GETAFE
delete [DEVAFLA\SQLEXPRESS].Getafe.dbo.CURSO_GETAFE
delete [DEVAFLA\SQLEXPRESS].Getafe.dbo.TITULACION_GETAFE

-============================Legans============================
============
delete PostgreSQL.leganes.luu.impartir_leganes
--delete PostgreSQL.leganes.luu.profesor_leganes

--delete PostgreSQL.leganes.luu.clasificacion_leganes
delete PostgreSQL.leganes.luu.asignatura_leganes
delete PostgreSQL.leganes.luu.grupo_leganes
delete PostgreSQL.leganes.luu.curso_leganes
delete PostgreSQL.leganes.luu.titulacion_leganes

-=======================Departamento5============================
============
--DELETE OPENQUERY(MySql,'Select * from IMPARTIR_COLMENAREJO')
--DELETE OPENQUERY(MySql,'Select * from PROFESOR_COLMENAREJO')
DELETE OPENQUERY(MySql,'Select * from CLASIFICACION_COLMENAREJO')
DELETE OPENQUERY(MySql,'Select * from ASIGNATURA_COLMENAREJO')
DELETE OPENQUERY(MySql,'Select * from GRUPO_COLMENAREJO')
DELETE OPENQUERY(MySql,'Select * from CURSO_COLMENAREJO')
DELETE OPENQUERY(MySql,'Select * from TITULACION_COLMENAREJO')

NOD

En este nodo la plataforma a utilizar es Windows 7 con el gestor de base de


datos PostgreSQL 9.2
La funcin de este gestor es crear campos que contengan la informacin de uno
de los departamentos, en este caso Legans, una vez creada dicha base a de
conectarse el servidor principal para que este pueda ejecutar las operaciones
correspondientes como por ejemplo; la ejecucin y distribucin de los datos de su
departamento.

Para crear la base de datos de este Nodo se utiliz el siguiente Script:

Create table Leganes.luu.TITULACION_LEGANES


(
Cod_titulacion Integer NOT NULL,
Nombre Varchar(30) NULL,
Creditos Integer NULL,
Nota_minima Integer NULL,
Campus Varchar(15) NULL,
Primary Key (Cod_titulacion)
);

Create table Leganes.luu.GRUPO_LEGANES


(
Cod_grupo Integer NOT NULL,
Turno Varchar(15) NULL,
Curso Integer NOT NULL,
Cod_titulacion Integer NOT NULL,
Primary Key (Cod_grupo)
);

Create table Leganes.luu.CURSO_LEGANES


(
Curso Integer NOT NULL,
Cod_titulacion Integer NOT NULL,
Max_alumnos Integer NULL,
Primary Key (Curso,Cod_titulacion)
);

Create table Leganes.luu.ASIGNATURA_LEGANES


(
Cod_asignatura Integer NOT NULL,
Nombre_asig Varchar(40) NULL,
Horas_semanal Integer NULL,
Curso Integer NOT NULL,
Cod_titulacion Integer NOT NULL,
Primary Key (Cod_asignatura)
);

Create table Leganes.luu.CLASIFICACION_LEGANES


(
Categoria Varchar(40) NOT NULL,

No_hor_max Integer NULL,


Salario Money NULL,
Primary Key (Categoria)
);

Create table Leganes.luu.PROFESOR_LEGANES


(
Nombre Varchar(40) NOT NULL,
Direccion Varchar(30) NULL,
Telefono Char(13) NULL,
Categoria Varchar(40) NOT NULL,

Primary Key (Nombre)


);

Create table Leganes.luu.IMPARTIR_LEGANES


(
Cod_asignatura Integer NOT NULL,
Nombre Varchar(40) NOT NULL,
Primary Key (Cod_asignatura,Nombre)
);

Alter table CURSO_LEGANES add foreign key(Cod_titulacion) references


TITULACION_LEGANES (Cod_titulacion) on update no action on delete no
action;

Alter table GRUPO_LEGANES add foreign key(Curso,Cod_titulacion) references


CURSO_LEGANES (Curso,Cod_titulacion) on update no action on delete no
action;

Alter table ASIGNATURA_LEGANES add foreign key(Curso,Cod_titulacion)


references CURSO_LEGANES (Curso,Cod_titulacion) on update no action on
delete no action;

Alter table IMPARTIR_LEGANES add foreign key(Cod_asignatura) references


ASIGNATURA_LEGANES (Cod_asignatura) on update no action on delete no
action;

Alter table PROFESOR_LEGANES add foreign key(Categoria) references


CLASIFICACION_LEGANES (Categoria) on update no action on delete no action;

Alter table IMPARTIR_LEGANES add foreign key(Nombre) references


PROFESOR_LEGANES (Nombre) on update no action on delete no action;

Para consultar la base de datos de este Nodo solo se necesitan ejecutar las
siguientes instrucciones:

Select * from luu.TITULACION_LEGANES;


Select * from luu.GRUPO_LEGANES;
Select * from luu.CURSO_LEGANES;
Select * from luu.ASIGNATURA_LEGANES;
Select * from luu.CLASIFICACION_LEGANES;
Select * from luu.PROFESOR_LEGANES;
Select * from luu.IMPARTIR_LEGANES;

NOD

El nodo 3 trabaja en la plataforma Ubuntu en conjunto del gestor de datos Mysql.


Con apoyo de este gestor se crearn campos para almacenar la informacin de un
determinado departamento, creada la base debe de conectarse al servidor
principal para que se ejecuten determinadas operaciones como la ejecucin y
distribucin de los datos.
Para crear la base de datos de este Nodo se utiliz el siguiente Script:
create database Colmenarejo;
use Colmenarejo;

Create table TITULACION_COLMENAREJO


(
Cod_titulacion Integer NOT NULL,
Nombre Varchar(30) NULL,
Creditos Integer NULL,
Nota_minima Integer NULL,
Campus Varchar(15) NULL,
Primary Key (Cod_titulacion)
);

Create table GRUPO_COLMENAREJO


(
Cod_grupo Integer NOT NULL,
Turno Varchar(15) NULL,
Curso Integer NOT NULL,
Cod_titulacion Integer NOT NULL,
Primary Key (Cod_grupo)
);

Create table CURSO_COLMENAREJO


(
Curso Integer NOT NULL,
Cod_titulacion Integer NOT NULL,
Max_alumnos Integer NULL,
Primary Key (Curso,Cod_titulacion)
);

Create table ASIGNATURA_COLMENAREJO


(
Cod_asignatura Integer NOT NULL,

Nombre_asig Varchar(40) NULL,


Horas_semanal Integer NULL,
Curso Integer NOT NULL,
Cod_titulacion Integer NOT NULL,
Primary Key (Cod_asignatura)
);

Create table CLASIFICACION_COLMENAREJO


(
Categoria Varchar(40) NOT NULL,
No_hor_max Integer NULL,
Salario Money NULL,
Primary Key (Categoria)
);

Create table PROFESOR_COLMENAREJO


(
Nombre Varchar(40) NOT NULL,
Direccion Varchar(30) NULL,

Telefono Char(13) NULL,


Categoria Varchar(40) NOT NULL,
Primary Key (Nombre)
);

Create table IMPARTIR_COLMENAREJO


(
Cod_asignatura Integer NOT NULL,
Nombre Varchar(40) NOT NULL,
Primary Key (Cod_asignatura,Nombre)
);

Alter table CURSO_COLMENAREJO add foreign key(Cod_titulacion) references


TITULACION_COLMENAREJO (Cod_titulacion) on update no action on delete no
action;

Alter table GRUPO_COLMENAREJO add foreign key(Curso,Cod_titulacion)


references CURSO_COLMENAREJO (Curso,Cod_titulacion) on update no action
on delete no action;

Alter table ASIGNATURA_COLMENAREJO add foreign key(Curso,Cod_titulacion)


references CURSO_COLMENAREJO (Curso,Cod_titulacion) on update no action
on delete no action;

Alter table IMPARTIR_COLMENAREJO add foreign key(Cod_asignatura)


references ASIGNATURA_COLMENAREJO (Cod_asignatura) on update no
action on delete no action;

Alter table PROFESOR_COLMENAREJO add foreign key(Categoria) references


CLASIFICACION_COLMENAREJO (Categoria) on update no action on delete no
action;

Alter table IMPARTIR_COLMENAREJO add foreign key(Nombre) references


PROFESOR_COLMENAREJO (Nombre) on update no action on delete no action;

Para consultar la base de datos de este Nodo solo se necesitan ejecutar las
siguientes instrucciones:

Select * from TITULACION_COLMENAREJO;


Select * from GRUPO_COLMENAREJO;
Select * from CURSO_COLMENAREJO;
Select * from ASIGNATURA_COLMENAREJO;
Select * from CLASIFICACION_COLMENAREJO;
Select * from PROFESOR_COLMENAREJO;
Select * from IMPARTIR_COLMENAREJO;

CONCLUSIN

Como se sabe una base de datos distribuida consiste en una coleccin de


sitios, conectados por medio de algn tipo de red de comunicacin en el cul cada
sitio es un sistema de BD completo por derecho propio pero los sitios ha acordado
trabajar juntos, a fin de que un usuario de cualquier sitio pueda acceder a los
datos desde cualquier lugar de la red exactamente como si los datos estuvieran
guardados en el propio sitio del usuario.

En consecuencia, la llamada base de datos distribuida es en realidad una


especie de objeto virtual, cuyas partes componentes se almacenan fsicamente en
varias bases de datos reales distintas ubicadas en diferentes sitios. De hecho, es
la unin lgica de esas bases de datos. En otras palabras, cada sitio tiene sus
propias bases de datos reales locales, sus propios usuarios locales, sus propios
DBMS y programas para la administracin de transacciones (incluyendo
programas de bloqueo, bitcoras, recuperacin, etc), y su propio administrador
local de comunicacin de datos (administrador DC).

En particular un usuario dado puede realizar operaciones sobre los datos en


su propio sitio local exactamente como si ese sitio no participara en absoluto en el
sistema distribuido. As pues el sistema de bases de datos distribuidas puede
considerarse como una especie de sociedad entre los DBMS individuales locales
de todos los sitios.

S-ar putea să vă placă și