2.3.2 Recursos electrónicos para historiadores. Bases de...
Transcript of 2.3.2 Recursos electrónicos para historiadores. Bases de...
Máster Universitario en Historia de la Monarquía Hispánica, Noviembre 2010. UCM.
2.3.2 Recursos electrónicos para historiadores.Bases de datos, representación y análisis de redes complejas
de cooperación*
R. Maestre-Martínez**
Consejo Superior de Investigaciones CientíficasCentro de Ciencias Humanas y Sociales
Unidad de Sistemas de Información GeográficaMadrid 2010,España
Resumen
Mostraremos el enfoque técnico aplicado en el proyecto Dyncoopnet con el objectivo de identificar losprocesos necesarios para diseñar un Sistema de Información que permita al Investigador en Historia diseñarmodelos de datos específicos y ajustados a sus necesidades utilizando metodologías que aseguren la calidadde los datos. También se proporcionará información de herramientas de diseño, operación y análisis. Seintroducirá un ejemplo para modelar una red de parentesco y se analizaran los resultados obtenidos.Introduciremos dos tipos de análisis: redes y SIG. Para finalizar se propondrá un supuesto práctico y unaposterior ampliación.
1. Introducción
Las bases de datos proporcionan un método a través del cual un investigador puede recopilar datosy almacenarlos, para más tarde, realizar estudios apoyándose en dicha información. Sin una correctaestructuración de los datos, no se podrá mas tarde extraer información de una manera fiable, ordenada yrápida. A menudo no se tiene en cuenta los principios básicos en informática, bases de datos e ingeniería delsoftware para abordar este cometido, pero pueden darse unas nociones básicas para acometer dicha tarea.Introduciremos los principios básicos de diseño para asegurar la calidad de la base de datos y sus datosalmacenados, y así poder formalizar las mejores prácticas para crear un modelo de datos robusto.
*Referencias ESF: FP: 004DynCoopNet y Acciones Complementarias del Ministerio de Ciencia e Innovación: SEJ2007-29226. Esteproyecto también está siendo financiado por el Programa MacroGrupos de la Comunidad de Madrid: Red de investigación: ‘Sólo Madrides Corte. La construcción de la Corte de la Monarquía Católica’, Programa MacroGrupos de la Comunidad de Madrid. ReferenciaCAM: HUM2007-29143-E/HIST
**[email protected], [email protected]
1
Podemos abordar la problemática de la creación de bases de datos históricas con herramientas informáticas,las cuales nos permitirán diseñar y construir modelos de datos, que una vez implementados en un SistemaGestor de Bases de Datos, soportará las operaciones necesarias para la extracción de la información. Dichasherramientas nos permitirán automatizar todo el proceso desde el diseño a la explotación.Tomaremos como Gestor de Base de datos Microsoft Access (2007) por ser el SGBD más utilizado enproyectos individuales, e indicaremos los pasos básicos para diseñar un pequeño modelo de anális de redesde parentesco entre agentes. Pero lo expuesto aquí son los fundamentos teóricos que permitirán realizar undiseño para cualquier Sistema Gestor de Bases de Datos del mercado.Es especial cabe destacar PostgreSQL[7] con la extensión PostGIS[8] que añade funciones de procesamientoespacial, y además son software libre y multiplataforma.
Diseño SGDB
Operación Modelo /Extracción
Análisis
Figura 1. MetodologíaVisión global
2. Bases de datos
Las bases de datos[2] son programas informáticos que gestionan una cierta información de una maneraestructurada. Nos permiten establecer reglas de integridad para los datos como puede ser la no duplicidad dedatos o la integridad referencial que significa que una entidad (fila o registro) siempre se relaciona con otrasentidades válidas. Además tienen un especial control en los borrados, pudiendo trazar una entidad a lo largode las relaciones que se establezcan en la base de datos.
Un modelo de datos[1] es un lenguaje orientado a describir una Base de Datos. Típicamente un modelode datos permite describir:
Las estructuras de datos de la base: El tipo de los datos que hay en la base y la forma en que serelacionan.
Las restricciones de integridad: Un conjunto de condiciones que deben cumplir los datos para reflejarcorrectamente la realidad deseada.
Operaciones de manipulación de los datos: típicamente, operaciones de agregado, borrado,modificación y recuperación de los datos de la base.
2
3. Diseño
Siempre que nos enfrentemos a un diseño en una base de datos tenemos que pensar el objetivo delmismo. ¿Quiero crear un pequeño diseño para comprobar una cierta característica de mis datos? ¿quierohacer un diseño global y flexible que permita incorporar todos los posibles datos? En el ejemplo de diseñopropuesto partimos de que disponemos unos datos simples en hojas excell con información acerca de agentescomerciales y otro investigador dispone de información sobre el parentesco de estos.En este escenario diseñaremos un modelo de datos para estudiar el impacto, la cohexión, ... de las relacionesentre agentes comerciales a través de sus parentescos.
En este punto introduciremos el concepto de relación , cardinalidad de la relación, e integridadreferencial de una manera práctica. En el diseño propuesto puede observarse la tabla “Agente” quepuede verse como la tabla principal, la tabla “Parentesco” que relaciona la tabla “Agente” y la tabla“Tipoparentesco” que tipifica las tipologías de parentescos y proporcionará unicidad y coherencia en lainformación de la tabla “Parentesco”. Este tipo de tablas de tipologías es muy importante, ya que a travésde ellas podemos controlar la integridad semántica de los datos del modelo evitando así duplicar datos,agilizando la inserción de datos ya que solamente hay que buscarlo (en el caso de que no esté, solamente lodaremos de alta una vez), y nos proporcionará un gran rendimiento en las consultas y ahorro de espacio endisco.
A continuación explicaremos los siguientes puntos:
Establecer integridad referencial básica
Clave primaria
Acceso a los datos de una manera eficiente y ordenada
Diseño final
Figura 2. Integridad referencialIdentificadores de entidades
En la Figura 2 establecemos que el campo “idagente2” de la tabla “parentesco” debe ser un valor delcampo “id” de la tabla “agente”, de esta manera estamos asegurando que el identificador de un agente
3
siempre existe, y a su vez, este no se podrá borrar siempre y cuando esté referenciado en la tabla “parentesco”(borrado en cascada desactivado).
Figura 3. Acceso a camposAcceso a campos de una manera restringida y controlada
En la Figura 3, se observa como se fuerza al usuario a elegir un identificador de la tabla “agente” de unalista, facilitando así la búsqueda de información. En “Columna dependiente” indicamos la columna de latabla indicada en“Tipo de origen de la fila” que se grabará y además podemos mostrar información ampliadasobre ese registro indicándolo en “Número de columnas’.’
Figura 4. Acceso a campos 2Acceso a campos a través de una consulta
La lista mostrada en la Figura 4 puede ser ordenada por cualquiera de sus campos. El usuario podrá buscarcon facilidad el nombre y se grabará el identificador correspondiente de una manera transparente.
4
Figura 5. DiseñoDiseño propuesto
En la Figura 5 se muestra el diseño Entidad-Relación propuesto.
5
4. Análisis I - Redes
Una vez diseñado el modelo de datos e implementado en un Sistema Gestor de Base de datos, aplicaremoslos métodos de análisis para los que fue diseñado el modelo de datos. En el ejemplo propuesto podemosutilizar análisis de redes sociales[3] a través de una potente herramienta como Ucinet[4] utilizando snGraphcomo herramienta de apoyo[5]. Por medio de un código muy sencillo (ver apéndice B) podemos obtener losdatos de la tabla parentesco y formar nuestra red. A partir de esta red podremos trabajar con los algoritmosespecíficos de Ucinet.
Figura 6. DatosDatos de prueba
2
1
1.0
3
1.0
5
1.0
8
1.0 1.0
7
1.0
9
1.0
Figura 7. GraphvizRed visualizada a través de Graphviz
En la Figura 7 obtenemos una representación gráfica con la herramienta Graphviz[6] de los datos de laFigura 6. Con esta representación podemos hacernos una primera idea de la estructura de la red, se puedeobservar que los nodos que no tienen conexión no aparecen en la representación. Exportando en código paratrabajar con la herramienta Ucinet, obtenemos la siguiente red, donde ahora sí podemos ejecutar los análisis
6
definidos en la herramienta.
1.0
1.0
1.0
1.0
1.0 1.0
1.0
1
2
3
4
5
6 78
9
Figura 8. UcinetRed visualizada a través de Netdraw (Ucinet)
5. Análisis II - SIG
Los análisis con Sistemas de Información Geográfica[12, 13], proporcionan una potente herramientade análisis ya que podemos manejar la componente geográfica en nuestros estudios. Para ello, debemosincorporar una tabla de coordenadas geográficas en nuestro modelo de datos y relacionar las coordenadasexpresadas en esta tabla con las entidades que creamos de interés para nuestro estudio.
A partir de una tabla de cooperaciones que integre un punto geográfico (también podrían ser variospuntos geográficos o podrían ser otras figuras como polígonos, ect..), se podría realizar un análisisKernelDensity[10, 11] para estudiar los núcleos geográficos mas fuertes de cooperación.
6. Extensión del supuesto
Se propone como ejercicio extender la tabla “tipoparentesco” añadiendo un número que asigne un pesoa cada tipo de parentesco, utilizándolo más tarde en la generación de la red para establecer los pesos de losenlaces.
A continuación se desea extender el modelo ya existente para que pueda recoger los datos de cooperacionescomerciales entre agentes. En estas cooperaciones se tiene en cuenta solamente los dos agente implicadosy las coordenadas geográficas de cada agente en el momento de la cooperación; en algunos casos se podrátener estas coordenadas y en otros no. Utilizaremos la tabla “tipoparentesco” como base pero añadiremoslas relaciones que existan en la tabla “cooperacionciomercial” estableciendo el peso correspondiente a la
7
distancia física que existió entre los agentes en el momento de cooperación. Se pueden tomar las coordenadascon google maps donde un punto se define como pn = (xn,yn). Dado que las coordenadas que obtenemosmediante google maps son UTM[9], podemos aproximar la distancia entre dos puntos puede ser calculada a
través de la fórmula de la distancia euclídea φ(p1, p2) =√
((x22)− (x2
1))+((y22)− (y2
1))
El diseño para el caso ampliado puede consultarse en el apéndice de material A.
8
A. APÉNDICE: Material
-idagente : int
Agente
-idpunto : int-x : double-y : double
Punto
Parentesco
-idtipoparentesco : int-tipoparentesco : string-peso : double
Tipoparentesco
-idnombreagente : int-nombreagente : string
Nombreagente
-idcooperacion : int
Cooperacion
0..*
0..*
1..*0..*
0..*1
1
0..*
0..*
1
1
Figura 9. Diseño propuesto extendidoDiseño Entidad relación
+idagente integer(10) Nullable = false#Nombreagenteidnombreagente integer(10) Nullable = false
Agente
+idnombreagente integer(10) Nullable = falsenombreagente varchar(255) Nullable = false
Nombreagente
#Agenteidagente integer(10) Nullable = false#Agenteidagente2 integer(10) Nullable = false#Tipoparentescoidtipoparentesco integer(10) Nullable = false
Parentesco
+idtipoparentesco integer(10) Nullable = falsetipoparentesco varchar(255) Nullable = falsepeso real(10) Nullable = true
Tipoparentesco
+idpunto integer(10) Nullable = falsex real(10) Nullable = falsey real(10) Nullable = false
Punto
+idcooperacion integer(10) Nullable = false
Cooperacion
+#Cooperacionidcooperacion integer(10) Nullable = false+#Agenteidagente integer(10) Nullable = false
Cooperacion_Agente
+#Cooperacionidcooperacion integer(10) Nullable = false+#Puntoidpunto integer(10) Nullable = false
Cooperacion_Punto
Figura 10. Diseño propuesto extendidoDiseño físico
El material del curso puede ser solicitado a través de: [email protected] y se enviará en unarchivo comprimido rar los diseños, el código, la base de datos y este artículo en PDF.
9
B. APÉNDICE: Código
1 /∗2 ∗ C o p y r i g h t 2009−20113 ∗ Conse jo S u p e r i o r de I n v e s t i g a c i o n e s C i e n t i f i c a s4 ∗ Ce n t ro de C i e n c i a s Humanas y S o c i a l e s5 ∗ Unidad de s i s t e m a s de i n f o r m a c i o n g e o g r a f i c a6 ∗ A t t r i b u t i o n −Noncommercial 3 . 0 Unpor ted − h t t p : / / c r ea t ivecommons . o rg /
l i c e n s e s / by−nc / 3 . 0 /7 ∗ /8 package m a s t e r h i s t o r i a ;9
10 im por t j a v a . s q l . C o n n e c t i o n ;11 im por t j a v a . s q l . Dr ive rManager ;12 im por t j a v a . s q l . R e s u l t S e t ;13 im por t j a v a . s q l . SQLException ;14 im por t j a v a . s q l . S t a t e m e n t ;15 im por t s n g r a p h . node . Sngraph ;16
17 /∗ ∗18 ∗19 ∗ @author Robe r to Maes t r e M a r t i n e z r o b e r t o . m a e s t r e < a t > cchs . c s i c . e s20 ∗ /21 p u b l i c c l a s s Main {22
23 /∗ ∗24 ∗ @param a r g s t h e command l i n e a rgumen t s25 ∗ /26 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) throws SQLException , E x c e p t i o n {27
28 t r y {29 C l a s s . forName ( " sun . j d b c . odbc . JdbcOdbcDr ive r " ) ;30 } c a t c h ( E x c e p t i o n e ) {31 System . o u t . p r i n t l n ( "No se ha pod ido c a r g a r e l D r i v e r JDBC−ODBC" ) ;32 }33 C o n n e c t i o n con = Dr ive rManager . g e t C o n n e c t i o n ( " j d b c : odbc : h i s t o r i a b d d " , "
" , " " ) ;34 S t a t e m e n t s t a t = con . c r e a t e S t a t e m e n t ( ) ;35
36 / / C r e a t e nodes37 s t a t . e x e c u t e Q u e r y ( " s e l e c t ∗ from a g e n t e ; " ) ;38 R e s u l t S e t r e s = s t a t . g e t R e s u l t S e t ( ) ;39
40 Sngraph g = new Sngraph ( ) ;41 w h i l e ( r e s . n e x t ( ) ) {42 g . i n s e r t N o d e ( r e s . g e t I n t ( 1 ) ) ;43 }44
10
45 / / C r e a t e r e l a t i o n s46 s t a t . e x e c u t e Q u e r y ( " s e l e c t ∗ from p a r e n t e s c o ; " ) ;47 r e s = s t a t . g e t R e s u l t S e t ( ) ;48
49 w h i l e ( r e s . n e x t ( ) ) {50 g . i n s e r t W e i g h t B e t w e e n N o d e s ( r e s . g e t I n t ( 1 ) , r e s . g e t I n t ( 2 ) , 1 , t r u e ) ;51 }52
53 System . o u t . p r i n t l n ( g . t o G r a p h v i z ( ) ) ;54
55 System . o u t . p r i n t l n ( g . t o U c i n e t ( n u l l ) ) ;56 }57
58 }
11
C. APÉNDICE: Dyncoopnet complex network
a3a5
a7
a6
a8a9
a10a11a12a13
a14
a16
a17a18
a19
a20a21
a22
a24a25
a26
a27a30a29a28
a31a23
a15a2
a4
a33
a34a32
a35a36
a37a38 a39 a40
a41a44 a43
a46
a47
a48
a49
a50a51
a52
a54
a55
a56a57
a58a59
a60
a61 a62a63
a64a66
a67
a68a42
a69a45
a53a70 a71
a72
a73a74
a75 a76a78
a77
a79
a80
a81a82
a83a84
a85a86
a65
a87a88
a89
a91
a92a93
a94
a95 a96
a97
a90
a98
a99a100 a101
a102a103
a104
a105a106a107
a108
a109a110
a111
a112
a113
a114 a115
a116
a118
a117a119
a120 a121
a122
a123a124 a125
a126 a127
a128a129
a130
a132 a133
a134
a135
a131a136 a137
a138a139
a140a141
a142
a143
a144
a145a146
a147
a148
a149
a150
a151
a153a154
a155a156
a157a158
a159a160
a162a163
a166
a167
a152a170a172
a176a177
a174
a178a168
a179a173
a171
a161
a180
a181a182a183 a184a185 a186
a187
a188
a189a195a196a198
a197
a194a191
a193
a192
a200a201
a202
a203
a204
a205
a206a207
a208
a190a209
a210a211
a212a199
a213
a214
a215
a216a217
a218
a220
a221
a222
a223a224a225
a226a227
a228
a229a230a231
a232
a233
a235
a236
a238
a239
a240
a237
a243
a241
a169
a242
a219
a234
a244
a245
a246
a247
a248a251
a250
a249
a252a253
a254a255
a256
a258
a259a260
a261
a263
a265a266
a257
a264
a262
a268
a270a271
a272
a274
a269
a275
a276
a273
a277
a278
a279a280
a282a281
a283
a284a285
a286
a287
a288
a289
a290a291
a292 a293
a294
a295
a297
a296
a298
a299
a302
a304
a306a307
a309a310
a311a312
a313
a305
a314a315
a308
a301
a316a317
a318a319
a320
a321
a322a323
a324
a325
a326a327
a328a329
a330a331
a332a333
a334a336
a337a338
a303
a339a340
a341
a342
a343a345
a344
a346
a347
a348
a349
a350
a351
a352a353
a354a355
a356
a357
a358
a359a360
a361a362
a363a364 a365
a366
a367a369
a368
a371
a372a373
a375a374
a376
a377
a378a379
a380a382a383
a384
a385a386
a387
a388
a389
a390
a391a392
a393a394 a395
a396a397
a398a399
a401a402a400
a403a404
a405
a406a407
a408a409a410 a411
a412a413
a414a415
a416
a417a418
a419
a421
a422a423
a424
a425a427
a429a430
a428a431 a433
a432 a434
a435a436
a437
a426a439
a440a441
a442a438
a443a444
a445a446
a447
a448
a449
a450
a451
a452a453
a455a456
a454a457
a458a459
a460a461 a462
a463a464
a465
a466
a467
a468
a469a470
a471
a472
a473
a474
a475a476
a477
a478a479
a480
a481
a482
a483a484
a486
a485
a487a488a489
a490
a491
a492
a493a494
a495 a496a497
a498a499
a500a501
a502
a503a504
a505a506
a507
a508
a509 a510
a511
a513
a514 a515a516
a517
a519
a520
a521
a518
a522
a523
a524a525
a526
a527
a528a529
a530 a531
a532a533a534
a535
a536a539
a540a541
a542 a543
a544
a545 a546
a547
a548a549
a550a551 a552
a553
a554
a555a556
a557
a558
a559
a560 a561
a562a512
a563
a564
a565
a566
a567
a568a569
a570a571
a572a573
a574a575
a576
a577a578
a579a580
a581a582
a583a584
a585a586
a587
a588a589c1
c2
c3
c4
c5c6
c7 c8
c10
c11
c62
c13
c14
c15 c12
c16
c17c18 c19
c20
c21
c23c24
c25
c26c27
c28
c29
c30
c31c32
c33
c34c35
c36c37
c38
c39
c40c41
c42
c43
c44
c45
c46c47
c48 c49
c50
c51
c52
c53
c54
c55 c58 c59c60
c61c64
c65
c66
c67
c69c70
c71
c68
c72
c74
c75
c76
c77
c73c78
c80
c82
c138
c81c79
c83
c84
c85
c86
c87
c88c89c90
c91
c92c94
c95c96
c97c98
c99
c100 c101c102
c105c106
c107c109
c110
c111
c112
c113
c114
c115
c117 c119c118
c120
c122
c123
c124
c125
c126
c127
c128
c108
c129c130
c131
c133
c134
c135c139
c140
c141 c142c144
c146
c147
c148
c149c150
c153
c154c155
c156 c157c158
c159
c160
c161
c162
c163
c164c165
c167c168
c170
c171
c172c173
c174
c175c176
c177c178
c179
c180c182
c183
c184
c185
c186
c187
c189
c188c190
c191
c192
c193
c194
c195c196
c197c198
c199
c200
c203c222
c204
c205c206
c209
c210
c207c208
c211
c212c213
c214
c215
c217c216 c201
c218c219
c202
c220
c221
c226
c227
c229c231
c232
c234c235
c236
c237
c242c243
c244c245
c246c247
c248
c249
c250
Figura 11. Complex networkDyncoopnet
12
Referencias
[1] El modelo racional de datos: De los fundamentos a los modelos deductivos. Baizán, M.C.F., isbn9788486251611, 1987, Díaz de Santos
[2] Sistemas de bases de datos: diseño, implementación y administración, Rob, P. and Coronel, C., isbn9789706862860, 2003. Thomson
[3] Introduction to social network methods. R. Hanneman, M. R. University of California 2005. Riverside.
[4] Steve Borgatti, Martin Everett, L. F. (2010). Ucinet. http://www.analytictech.com/ucinet/.
[5] snGraph. R. Maestre-Martinez, 2010. http://digital.csic.es/handle/10261/27556
[6] Ellson, J., Gansner, E., Koutsofios, E., S.C.North, and G.Woodhull (2003). Graphviz and dynagraph –static and dynamic graph drawing tools. In Junger, M. and Mutzel, P., editors, Graph Drawing Software,pages 127–148. Springer-Verlag. http://www.graphviz.org/
[7] PostgreSql (2010). PostgreSql. http://www.postgresql.org/.
[8] PostGIS. Holl, Stephan and Plum, Hans. GeoInformatics, 2009.http://fluidbook.microdesign.nl/geoinformatics/03-2009/?page=34
[9] Defense Mapping Agency Technical Manual 8358 2The Universal Grids: Universal Transverse Mercator (UTM) and Universal Polar Stereographic (UPS).http://earth-info.nga.mil/GandG/publications/tm8358.2/TM8358_2.pdf
[10] Gibin, M., Longley, P. A., Atkinson, P. (2007). Kernel Density Estimation and PercentVolume Contours in General Practice Catchment Area Analysis in Urban Areas. GISRUK.http://ncg.nuim.ie/gisruk/materials/proceedings/PDF/5A3.pdf
[11] Kernel Density on line resource. http://www.spatialanalysisonline.com/output/html/Pointdensity.html
[12] Goodchild, Michael F., (2010). Twenty years of progress: GIScience in 2010. Journal of spatialinformation science Number 1 pp. 3–20 doi:10.5311/JOSIS.2010.1.2. July 27, 2010.
[13] On line resources and information. http://humanidades.cchs.csic.es/cchs/sig/
13