modelo de base de datos para estructuras planas

Page 1

UNIVERSIDAD MAYOR DE SAN ANDRES Facultad de Ciencias Puras y Naturales Postgrado en Informática Maestría en Ingeniería del Software Bases de Datos I

Proyecto Final Modelo de Base de Datos para Estructuras Planas Campo de Aplicación: Ingeniería Civil

Presentado a: Dra. Judith Pavón Presentado por: Roger Saravia

La Paz, Bolivia – Agosto de 2007


Resumen En el presente artículo se expone una aplicación de las bases de datos distribuidas al área de la consultoría en ingeniería civil. Esencialmente, se diseñará e implementará una base de datos relacional que servirá como plataforma de almacenamiento para un hipotético software de análisis de estructuras en dos dimensiones. Primero, se describirán detalladamente las entidades y relaciones que participan en el proyecto. Luego, se construirá el modelo E-R. Se desarrollará el diseño lógico. Y se continuará con el diseño físico. También se probará la implementación del diseño relacional aprovechando un caso de estudio (una estructura plana sencilla) y hasta se hará una fragmentación de la relación para ejemplificar la valiosa utilidad de las bases de datos distribuidas. Al final, se hacen algunas consideraciones importantes sobre el estudio.

Palabras Clave Bases de Datos Relacionales Distribuidas, Entidad, Relación, Diseño Conceptual, Diseño Lógico, Diseño Físico, Fragmentación Horizontal Primaria, Fragmentación Horizontal Derivada, Fragmentación Vertical, Fragmentación Híbrida.


Índice

1

INTRODUCCIÓN .....................................................................................................................2 1.1

2

OBJETIVO PRINCIPAL ............................................................................................................2

DISEÑO DE LA BASE DE DATOS RELACIONAL ............................................................2 2.1

DISEÑO CONCEPTUAL ...........................................................................................................2

2.1.1 Descripción del Proyecto.................................................................................................2 2.1.2 Entidades, Relaciones y Diagrama E-R...........................................................................3 2.2 3

4

DISEÑO LÓGICO ....................................................................................................................6

ESPECIFICACIÓN EN SQL DE LA BASE DE DATOS RELACIONAL .........................7 3.1

DEFINICIÓN DE TABLAS ........................................................................................................7

3.2

RESTRICCIONES DE INTEGRIDAD REFERENCIAL ....................................................................9

3.3

INSERCIÓN DE VALORES .......................................................................................................9

3.4

ACTUALIZACIÓN DE VALORES ............................................................................................11

DISEÑO DE LA BASE DE DATOS DISTRIBUIDA...........................................................13 4.1

FRAGMENTACIÓN PRIMARIA HORIZONTAL .........................................................................13

4.2

FRAGMENTACIÓN HORIZONTAL DERIVADA ........................................................................13

4.3

FRAGMENTACIÓN VERTICAL ...............................................................................................14

4.4

FRAGMENTACIÓN HÍBRIDA .................................................................................................15

5

CONCLUSIONES....................................................................................................................16

6

REFERENCIAS .......................................................................................................................16

1


1

Introducción

Este proyecto se desarrolla en las ciencias de computación, específicamente en el área de las bases de datos relacionales distribuidas. El campo de aplicación elegido es la rama estructural del área de la ingeniería civil. Uno de los principales problemas identificados en las aplicaciones o software para el cálculo de estructuras (obras civiles) es la carencia o el no-uso de una base de datos para almacenar ordenadamente un elemento tan complejo y tan relacionado como una estructura. Se puede abordar este problema mediante el diseño conceptual, lógico y también físico de una base de datos para que permita la inserción de todo el conjunto de información correspondiente a una estructura. En este proyecto, para simplificar, se hará uso de las estructuras en dos dimensiones que se corresponden con los denominados marcos planos pórticos.

1.1

Objetivo Principal

El objetivo principal del proyecto elaborado en la materia de Bases de Datos I es mostrar un caso práctico con el diseño e implementación de una base de datos relacional, y definir diferentes tipos de fragmentación sobre los datos del dominio del problema.

2

Diseño de la Base de Datos Relacional

2.1

Diseño Conceptual

2.1.1 Descripción del Proyecto Breve Reseña del Análisis Estructural El análisis estructural es una rama de la física y tiene que ver con el comportamiento de las estructuras bajo determinadas condiciones de diseño. Las estructuras se definen como sistemas que soportan cargas y la palabra comportamiento se entiende como su tendencia a deformarse, vibrar, pandearse o fluir dependiendo de las condiciones a las que estén sometidas. Los resultados del análisis se usan para determinar la forma de las estructuras deformadas y verificar si son adecuadas para soportar las cargas para las cuales se han diseñado.

2


2.1.2 Entidades, Relaciones y Diagrama E-R Una empresa consultora en estructuras (campo de la ingeniería civil) desea diseñar una base de datos con el objeto de establecer una sólida plataforma para el posterior desarrollo de un programa de análisis estructural en dos dimensiones. El mencionado programa de análisis estructural debe crear una base de datos por cada estructura a ser analizada. Una estructura se compone de nudos y elementos. Cada elemento parte de un solo nudo y termina en un solo nudo. No obstante, puede haber varios elementos que parten de un mismo nudo o que terminen en un mismo nudo. Un elemento puede tener un solo conjunto de propiedades de la sección (módulo de elasticidad, área y momento de inercia). Pero puede haber varios elementos que tengan en común las mismas propiedades de la sección. Un elemento puede tener un solo conjunto de componentes de fuerzas internas (fuerza axial, fuerza cortante y momento). Y un conjunto de fuerzas internas solo puede pertenecer a un elemento. Un elemento puede compartir simultáneamente varias condiciones de carga; sin embargo, cada condición de carga debe pertenecer solo a un elemento. Un nudo puede tener un solo conjunto de coordenadas planas (X, Y). Y un conjunto de coordenadas planas puede pertenecer únicamente a un nudo. Un nudo puede compartir simultáneamente varias condiciones de carga puntual pero cada condición de carga puntual debe pertenecer a un solo nudo. Cada nudo puede tener como máximo un solo conjunto de condiciones de borde o de frontera. Pero un conjunto de condiciones de borde puede pertenecer a varios nudos. Un nudo puede tener como máximo un solo conjunto de desplazamientos. A su vez, un conjunto de desplazamientos debe pertenecer como máximo a un solo nudo. Un nudo puede tener como máximo un solo conjunto de reacciones. Y un conjunto de reacciones puede pertenecer como máximo a un nudo. La información correspondiente a un elemento debe incluir código de elemento y tipo de elemento (viga, columna, ménsula u otro). Las propiedades de los elementos deben incluir un código además del módulo elasticidad, el momento de inercia y el área. Las cargas en los elementos deben incluir un código, tipo de carga (puntual, rectangular o triangular), el punto inicial de aplicación, la longitud de aplicación, la carga horizontal (Fx), la carga vertical (Fy) y la carga de momento (Mz). Las fuerzas internas en los elementos deben incluir un código, la fuerza interna local horizontal (fix), la fuerza interna local vertical (fiy) y el momento local (fiz). La información correspondiente a un nudo debe incluir un código de nudo y tipo de nudo (articulado o rígido). Las coordenadas deben incluir un código, la coordenada horizontal X y la coordenada vertical Y. Las cargas puntuales en los nudos deben incluir un código, la carga horizontal (Px), la carga vertical (Py) y la carga de momento (Mz). Las condiciones de borde para los nudos deben incluir un código y la descripción de libertad para la horizontal (Borx), la vertical (Bory) y giro (Borz). Los desplazamientos en los nudos deben incluir un código, el desplazamiento horizontal (Dx), el desplazamiento vertical (Dy) y el ángulo de giro (Gz). Cada reacción debe incluir un código, la fuerza de reacción horizontal (Rx), la fuerza de reacción vertical (Ry) y la reacción a momento (Rz).

3


4

Borde

Elemento

CodEle TipoE

CargElem

DespNud

CodDN Dx Dy Gz

Diseño Conceptual: Entidades

CodBor Borx Bory Borz

CodCE Tipo Inicio Longitud Fx Fy Mz

CargNud

Propiedades

CodCN Px Py Pz

Nudo

Coordenadas

CodNud TipoNu

CodProp Elasticidad Inercia Área

CodCoor X Y

CodReac

CodFI

FuerInter

Reacciones

fix fiy fiz

Rx Ry Rz


5

CargElem

(0,N)

Propiedades

FuerInter

(1,1)

(1,1)

POSEE

TIENE

POSEE

Diseño Conceptual: Modelo E-R

CodProp Elasticidad Inercia Área

CodCE Tipo Inicio Longitud Fx Fy Mz

CodFI fix fiy fiz

(1,1)

(1,1)

(1,N)

CodEle TipoE Elemento (1,N)

(1,N)

TERMINA

PARTE

(1,1)

(1,1)

TIENE

TIENE

(1,1)

(1,1)

(1,1) (1,1) (1,N) Nudo

CodNud TipoNu

Coordenadas

TIENE

TIENE

TIENE

(0,1)

(1,1)

CodCoor X Y Reacciones

CodReac Rx Ry Rz

(1,1)

(0,1)

(0,N)

CargNud

CodCN Px Py Pz Borde

CodBor Borx Bory Borz DespNud

CodDN Dx Dy Gz


2.2

Diseño Lógico

Tablas de Partida

(planteamiento inicial a partir de la lectura del problema)

ELEMENTO

(codele, tipoe)

PROPIEDADES

(codprop, elasticidad, inercia, area)

CARGELEM

(codce, tipo, inicio, longitud, fx, fy, mz)

FUERINTER

(codfi, fix, fiy, fiz)

NUDO

(codnud, tiponu)

COORDENADAS

(codcoor, x, y)

CARGNUD

(codcn, px, py, pz)

BORDE

(codbor, borx, bory, borz)

DESPNUD

(coddn, dx, dy, gz)

REACCIONES

(codreac, rx, ry, rz)

Mapeo

( consultando or denad amen te el diagr a ma E- R)

1aN

ELEMENTO

(codele, tipoe, codprop)

1aN

CARGELEM

(codce, tipo, inicio, longitud, fx, fy, mz, codele)

1a1

ELEMENTO

(codele, tipoe, codprop, fix, fiy, fiz)

1aN

ELEMENTO

(codele, tipoe, codprop, fix, fiy, fiz, codnudini)

1aN

ELEMENTO

(codele, tipoe, codprop, fix, fiy, fiz, codnudini, codnudfin)

1a1

NUDO

(codnud, tiponu, x, y)

1aN

CARGNUD

(codcn, px, py, pz, codnud)

1aN

NUDO

(codnud, tiponu, x, y, codbor)

1a1

NUDO

(codnud, tiponu, x, y, codbor, dx, dy, gz)

1a1

NUDO

(codnud, tiponu, x, y, codbor, dx, dy, gz, rx, ry, rz)

Tablas

(recopilación y compactación final)

ELEMENTO

(codele, tipoe, codprop, fix, fiy, fiz, codnudini, codnudfin)

PROPIEDADES

(codprop, elasticidad, inercia, area)

CARGELEM

(codce, tipo, inicio, longitud, fx, fy, mz, codele) 6


NUDO

(codnud, tiponu, x, y, codbor, dx, dy, gz, rx, ry, rz)

CARGNUD

(codcn, px, py, pz, codnud)

BORDE

(codbor, borx, bory, borz)

3

Especificaciรณn en SQL de la Base de Datos Relacional

3.1

Definiciรณn de Tablas

CREATE TABLE ELEMENTO (codele number not null, tipoe varchar(15), codprop char(2), fix number, fiy number, fiz number, codnudini number, codnudfin number, CONSTRAINT PK_ELEMENTO PRIMARY KEY(codele));

CREATE TABLE PROPIEDADES (codprop char(2) not null, elasticidad number, inercia number, area number, CONSTRAINT PK_PROPIEDADES PRIMARY KEY(codprop));

CREATE TABLE CARGELEM (codce number not null, tipo varchar(15), inicio number, longitud number, fx number, fy number, 7


mz number, codele number, CONSTRAINT PK_CARGELEM PRIMARY KEY(codce));

CREATE TABLE NUDO (codnud number not null, tiponu varchar(15), x number, y number, codbor number, dx number, dy number, gz number, rx number, ry number, rz number, CONSTRAINT PK_NUDO PRIMARY KEY(codnud));

CREATE TABLE CARGNUD (codcn number not null, px number, py number, pz number, codnud number, CONSTRAINT PK_CARGNUD PRIMARY KEY(codcn));

CREATE TABLE BORDE (codbor number not null, borx char(1), bory char(1), borz char(1), CONSTRAINT PK_BORDE PRIMARY KEY(codbor));

8


3.2

Restricciones de Integridad Referencial

ALTER TABLE ELEMENTO ADD CONSTRAINT FK1_ELEMENTO FOREIGN KEY (codprop) REFERENCES PROPIEDADES ADD CONSTRAINT FK2_ELEMENTO FOREIGN KEY (codnudini) REFERENCES NUDO ADD CONSTRAINT FK3_ELEMENTO FOREIGN KEY (codnudfin) REFERENCES NUDO;

ALTER TABLE CARGELEM ADD CONSTRAINT FK_CARGELEM FOREIGN KEY (codele) REFERENCES ELEMENTO;

ALTER TABLE NUDO ADD CONSTRAINT FK_NUDO FOREIGN KEY (codbor) REFERENCES BORDE;

ALTER TABLE CARGNUD ADD CONSTRAINT FK_CARGNUD FOREIGN KEY (codnud) REFERENCES NUDO;

3.3

Inserciรณn de Valores

Para la inserciรณn de valores se aprovecharรก la estructura plana mostrada en la ilustraciรณn de a continuaciรณn:

9


INSERT INTO PROPIEDADES VALUES ('P1', 30000, 600, 40);

INSERT INTO PROPIEDADES VALUES ('P2', 30000, 1000, 50);

INSERT INTO BORDE VALUES (1, 'F', 'F', 'L');

INSERT INTO BORDE VALUES (2, 'F', 'F', 'F');

INSERT INTO NUDO (codnud, tiponu, x, y, codbor) VALUES (1, 'Apoyo', 0, 4, 2);

INSERT INTO NUDO (codnud, tiponu, x, y) VALUES (2, 'Rigido', 0, 16);

INSERT INTO NUDO (codnud, tiponu, x, y) VALUES (3, 'Rigido', 10, 16);

INSERT INTO NUDO (codnud, tiponu, x, y, codbor) VALUES (4, 'Apoyo', 10, 24, 1);

INSERT INTO NUDO (codnud, tiponu, x, y, codbor) VALUES (5, 'Apoyo', 22, 0, 2);

INSERT INTO CARGNUD VALUES (1, 20, 0, 0, 2);

INSERT INTO CARGNUD VALUES (2, 10, 0, 0, 3); 10


INSERT INTO ELEMENTO (codele, tipoe, codprop, codnudini, codnudfin) VALUES (1, 'Columna', 'P1', 1, 2);

INSERT INTO ELEMENTO (codele, tipoe, codprop, codnudini, codnudfin) VALUES (2, 'Viga', 'P1', 2, 3);

INSERT INTO ELEMENTO (codele, tipoe, codprop, codnudini, codnudfin) VALUES (3, 'Columna', 'P1', 3, 4);

INSERT INTO ELEMENTO (codele, tipoe, codprop, codnudini, codnudfin) VALUES (4, 'Otro', 'P2', 3, 5);

INSERT INTO CARGELEM VALUES (1, 'Puntual', 6, 0, 6, -8, 0, 2);

INSERT INTO CARGELEM VALUES (2, 'Puntual', 8, 0, 0, -5, 0, 2);

INSERT INTO CARGELEM VALUES (3, 'Rectangular', 2.5, 12.5, 2, 0, 0, 4);

INSERT INTO CARGELEM VALUES (4, 'Puntual', 5, 0, 0, -8, 0, 4);

Importante: Toda esta información introducida hasta aquí será tomada en cuenta para el análisis estructural por parte del hipotético programa a ser desarrollado. Una vez dicho programa haya concluido con el cálculo, los resultados del mismo deberán ser actualizados en la base de datos de la estructura tal como se muestra a continuación:

3.4

Actualización de Valores

UPDATE NUDO SET dx = 0.0014, dy = 0.0000035, gz = -0.000084 WHERE codnud = 2; 11


UPDATE NUDO SET dx = 0.0012, dy = 0.00017, gz = 0.0000011 WHERE codnud = 3;

UPDATE NUDO SET rx = -0.78, ry = -0.35, rz = 5.59 WHERE codnud = 1;

Comentario: Esta estructura fue calculada con un programa llamado Kardestuncer desarrollado por el autor y disponible en www.geocities.com/rgusarav

UPDATE NUDO SET dx = 0, dy = 0, gz = 0.00023, rx = -0.91, ry = -25.06, rz = 0 WHERE codnud = 4;

UPDATE NUDO SET rx = -28.31, ry = 38.42, rz = -1.06 WHERE codnud = 5;

UPDATE ELEMENTO SET fix = 0.35, fiy = -0.78, fiz = 5.59 WHERE codele = 1;

UPDATE ELEMENTO SET fix = -19.22, fiy = 0.35, fiz = -3.83 WHERE codele = 2;

UPDATE ELEMENTO SET fix = -25.06, fiy = 0.91, fiz = -7.28 WHERE codele = 3;

UPDATE ELEMENTO SET fix = -41.32, fiy = -4.40, fiz = 16.96 WHERE codele = 4;

12


4

Diseño de la Base de Datos Distribuida

4.1

Fragmentación Primaria Horizontal

ESTRUC1

=

SELECT * FROM ELEMENTO WHERE tipoe = 'Viga';

ESTRUC2

=

SELECT * FROM ELEMENTO WHERE tipoe = 'Columna';

BD COMPLETA Gabinete de Cálculo

ESTRUC1

Armado de Vigas

Armado de Columnas

ESTRUC2

Justificación: En la práctica, se puede tener un edificio de muchos pisos que involucra miles de elementos como vigas y columnas. Por motivos de costos de comunicación, concurrencia de transacciones y rendimiento de la BD, se ha propuesto una fragmentación horizontal primaria para la distribución de la información de los elementos de la estructura a los correspondientes campamentos de Armado de Vigas y Armado de Columnas situados con relación a la obra. La base de datos completa reside en el gabinete de cálculo de la oficina central que a su vez podría estar muy distante.

4.2

Fragmentación Horizontal Derivada

ELEMA

=

SELECT * FROM ELEMENTO, (SELECT * FROM PROPIEDADES WHERE elasticidad <= 50000) B WHERE ELEMENTO.codprop = B.codprop; 13


ELEMB

=

SELECT * FROM ELEMENTO, (SELECT * FROM PROPIEDADES WHERE elasticidad > 50000) B WHERE ELEMENTO.codprop = B.codprop;

BD COMPLETA Gabinete de Cálculo

ELEMA

Especialistas en Inelásticos

Especialistas en Elásticos

ELEMB

Justificación: Por motivos de costos de comunicación, concurrencia de transacciones y rendimiento de la BD, se ha propuesto una fragmentación horizontal derivada. Los ingenieros expertos en el diseño de elementos de baja elasticidad (módulo de elasticidad menor a 50000 Kg/cm²) tendrán a su disposición el fragmento ELEMA. Y los ingenieros expertos en el diseño de elementos de alta elasticidad (módulo de elasticidad mayor a 50000 Kg/cm²) podrán contar con el fragmento ELEMB de la base de datos.

4.3 NUD1

Fragmentación Vertical =

SELECT codnud, x, y FROM NUDO;

NUD2

=

SELECT codnud, dx, dy, gz FROM NUDO;

BD COMPLETA Gabinete de Cálculo

NUD1

Dpto. de Topografía

Control de Asentamientos

NUD2

14


Justificación: La construcción de las estructuras como edificios exige el trabajo por especialidades. Por motivos de costos de comunicación, concurrencia de transacciones y rendimiento de la BD, se ha propuesto una fragmentación vertical. El equipo de topografía podrá usar la fragmentación NUD1 que contiene las coordenadas de las uniones. Y el equipo de control de asentamientos podrá usar la fragmentación NUD2 que tiene la información sobre los desplazamientos de los nudos.

4.4 DISE1

Fragmentación Híbrida =

SELECT codele, fix, fiz FROM ELEMENTO WHERE tipoe = 'Columna';

DISE2

=

SELECT codele, fiy FROM ELEMENTO WHERE tipoe = 'Viga';

BD COMPLETA Gabinete de Cálculo

DISE1

Diseñadores a Flexo-Compresión

Diseñadores a Cortante

DISE2

Justificación: Por cuestiones de costos de comunicación, concurrencia de transacciones y rendimiento de la BD, se ha propuesto una fragmentación híbrida. De esta manera, los ingenieros que calculan a partir de los esfuerzos de flexo-compresión, dispondrán de las filas y columnas pertinentes. Y los ingenieros que calculan a partir del esfuerzo a cortante, tendrán a su disposición solo las filas y columnas correspondientes. Ambos cuerpos de calculistas están en la ciudad de la obra y la oficina central puede estar en otra ciudad. Finalmente, recordar que, la base de datos completa de la estructura es grande y reside en la oficina central.

15


5

Conclusiones

Se ha comprobado la gran importancia de las bases de datos sobre todo por su apoyo transversal a otras áreas del conocimiento y servicio como la ingeniería civil. Sin una base de datos, la organización y consecuente almacenamiento (digital) de una estructura sería algo sumamente dificultoso de lograr. Además, el tener la información almacenada ordenadamente en una base de datos, hasta podría ser útil para el intercambio de información entre aplicaciones del área. Se ha visto que la necesidad de la distribución fragmentada de una base de datos está relacionada principalmente con: localidad de referencia, costos de comunicación, ejecución concurrente de transacciones en partes diferentes de la relación, vistas que no pueden ser definidas en un único fragmento que requieren procesamiento extra, y la necesidad de aumentar el rendimiento de la BD. La fragmentación horizontal permite el procesamiento paralelo de una relación estando presentes solamente aquellas filas que se utilizan frecuentemente. La fragmentación vertical permite que una tabla pueda ser distribuida en función del uso de sus atributos y permite descomposiciones adicionales. Además, el atributo especial facilita las combinaciones de fragmentos verticales. Las bases de datos y las redes son una realidad y hay gran campo para su aplicación.

6

Referencias •

JUDITH PAVON M. (2007)

"Bases de Datos Distribuidas". Presentación PowerPoint. Postgrado en Informática. UMSA. LP-BOL.

DIANA LORENTZ (2001)

“Oracle9i SQL Referente (9.0.1)”. ORACLE. Estados Unidos.

H. KARDESTUNCER (1975)

"Introducción al Análisis Estructural con Matrices". Mcgraw-Hill. Estados Unidos.

16


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.