Imp`lementación de base de datos distribuidas

Solo disponible en BuenasTareas
  • Páginas : 10 (2436 palabras )
  • Descarga(s) : 0
  • Publicado : 15 de febrero de 2011
Leer documento completo
Vista previa del texto
Implementación de una base de datos distribuida Asuma que en un método de diseño de bases de datos distribuidas se tiene el siguiente modelo conceptual global de una Base de datos de facturación. CLIENTES = (CEDULA, NOMBRE) CP = CEDULA SUCURSALES (CODIGO, NOMBRE, DIRECCION) CP = CODIGO D_CODIGO = Una letra mayúscula en (‘N’, ‘S’, ‘E’, ‘C’, ‘O’) PRODUCTOS = (CODIGOP, DESCRIPCION, STOCK,FABRICANTE, DIMENCIONES, FECHA) CP = CODIGOP FACTURAS = (NUMERO, FECHA, VALOR, CLIENTE, SUCURSAL) CP = NUMERO D_NUMERO = 10 Caracteres, el primero de la izquierda es la letra correspondiente al código de la sucursal donde se emite la factura, los demás caracteres dan un número > 0 CF1 = CLIENTE, se refiere a CLIENTES en CEDULA CF2 = SUCURSAL, se refiere a SUCURSALES en CODIGO VENTAS = (FACTURA, CANTIDAD,PRECIO, PRODUCTO) CF3 = FACTURA, se refiere a FACTURAS en NUMERO CF4 = PRODUCTO, se refiere a PRODUCTOS en CODIGOP. Las siguientes especificaciones se han extractado del documento de requerimientos: a) Las sucursales están ubicadas en sitios convenientes de acuerdo a una masificación poblacional. b) Un cliente puede comprar en cualquier sucursal c) Algunas sucursales pueden tener todos losproductos, otras solamente los más solicitados en el lugar. d) El stock de cada producto es dependiente de la sucursal. Por ejemplo, en la sucursal “N” puede haber 10 palas anchas, en la sucursal “S” puede haber solo 7. PRIMERA PARTE: REPLICACION. SITIO SRV1 (SITIO 1). CREATE DATABASE LINK SITIO2 CONNECT TO USUARIOX IDENTIFIED BY USUARIOX USING ‘(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL =TCP)(HOST = SITIO2)(PORT = 1521))

) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )’;

SELECT * FROM TAB@SITIO2;

CREATE TABLE CLIENTES (CEDULA VARCHAR (10) PRIMARY KEY, NOMBRE CHAR (40)); CREATE SNAPSHOT LOG ON CLIENTES; COLUMN OBJECT_NAME FORMAT A20; COLUMN OBJECT_NAME FORMAT A20; SELECT OBJECT_NAME, OBJECT_TYPE FROM USER_OBJECTS; SITIO SRV2 (SITIO 2). CREATE DATABASE LINK SITIO1 CONNECT TO USUARIOXIDENTIFIED BY USUARIOX USING ‘(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = SITIO1)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )’;

CREATE SNAPSHOT S_CLIENTES REFRESH FAST START WITH SYSDATE NEXT SYSDATE + 0.0001 WITH PRIMARY KEY AS SELECT * FROM CLIENTES@SITIO1; SELECT * FROM S_CLIENTES; INSERT INTO S_CLIENTES VALUES (‘1700003238’,’PAUL FUERTES’); No se puedeingresar datos en una vista materializada.

INSERT INTO CLIENTES@SITIO1 VALUES (‘1700003238’,’PAUL FUERTES’); COMMIT; SELECT * FROM S_CLIENTES; CREATE SYNONYM CLIENTES FOR CLIENTES@SITIO1; INSERT INTO CLIENTES VALUES (‘1700003239’,’LUIS VILLAFUERTE’); COMMIT; SELECT * FROM S_CLIENTES; SELECT * FROM CLIENTES;

SEGUNDA PARTE: FRACCIONAMIENTO HORIZONTAL PRIMARIO.

SUCURSALES (CODIGO, NOMBRE,DIRECCION) CP = CODIGO D_CODIGO = Una letra mayúscula en (‘N’, ‘S’, ‘E’, ‘C’, ‘O’)

EN EL SITIO SRV1 (SITIO 1). CREATE TABLE SUCURSALES (CODIGO CHAR (1) PRIMARY KEY CHECK (CODIGO IN (‘S’)), NOMBRE CHAR (30), DIRECCION CHAR (30));

EN EL SITIO SRV2 (SITIO 2). CREATE TABLE SUCURSALES (CODIGO CHAR (1) PRIMARY KEY CHECK (CODIGO IN (‘N’)), NOMBRE CHAR (30), DIRECCION CHAR (30));

INSERT INTOSUCURSALES VALUES (‘S’, ‘SUCURSAL SUR’, ‘AV. ANTONIO JOSE DE SUCRE S-12’); INSERT INTO SUCURSALES@SITIO2 VALUES (‘N’, ‘SUCURSAL NORTE’, ‘AV. LOS ESTADIOS’); COMMIT; SELECT * FROM SUCURSALES UNION SELECT * FROM SUCURSALES@SITIO1;

TERCERA PARTE: FRACCIONAMIENTO VERTICAL. PRODUCTOS = (CODIGOP, DESCRIPCION, STOCK, FABRICANTE, DIMENCIONES, FECHA) CP = CODIGOP D_CODIGOP = ENTERO > 0 F1_PRODUCTOS =(CODIGOP, FABRICANTE, DIMENSIONES) F2_PRODUCTOS = (CODIGOP, DESCRIPCION, STOCK) SITIO SRV1 (SITIO 1). CREATE TABLE F1_PRODUCTOS (CODIGOP NUMBER PRIMARY KEY CHECK (CODIGOP > 0), FABRICANTE VARCHAR (40), DIMESIONES VARCHAR (50));

CREATE SNAPSHOT LOG ON F1_PRODUCTOS;

SITIO SRV2 (SITIO 2). CREATE SNAPSHOT S_F1_PRODUCTOS REFRESH FAST START WITH SYSDATE NEXT SYSDATE + 0.0001 WITH PRIMARY KEY AS SELECT...
tracking img