GenoPro Home
GenoPro Home  |  Get Started With My Genealogy Tree  |  Buy  |  Login  |  Privacy  |  Search  |  Site Map
 

GenoPro Support Forum




Storing Genealogy Tree into an SQL Database

Click to view RSS...
Author
Posted Sunday, June 11, 2006 - Post #11491
Forum Newbie

Forum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum Newbie

Forum Members
GenoPro version: 2.b15h

Last Login: Wednesday, November 24, 2021
Posts: 5, Visits: 8
I saw on the GenoPro 2 feature list there was a possibility to use an SQL database to store genealogy information. I cannot find anything related to SQL in the user interface.

Is it possible to do that?

I saw the post about someone wanting to export in SQL for phpGedView, this is not exactly what I would like.
If genopro was able to store all its information in the database, and update it exactly as it does with its flat or xml file, it would be perfect (I don't mind the table schema, as long as it is there is a way to prefix the table name for example with say "gno_").

Does genopro does that? if it does i'd really like to try it in the few days left in my evaluation period BigGrin

Thanks!!


Edited: Sunday, June 11, 2006 by GenoProSupport
Posted Sunday, June 11, 2006 - Post #11495
Legendary Master

Legendary MasterLegendary MasterLegendary MasterLegendary MasterLegendary MasterLegendary MasterLegendary MasterLegendary MasterLegendary Master

Administrators
Moderators
Customers
Gamma
FamilyTrees.GenoPro.com
Translator
GenoPro version: 3.1.0.1

Last Login: Tuesday, February 3, 2026
Posts: 4,886, Visits: 22,803
At the moment, we have no schedule to implement an SQL or ODBC interface to store genealogy data.  Instead we plan to push the XML to work with databases.  The problem with relational databases is the need an ID for every row so we can locate an object (individual, family, picture, etc).  GenoPro has many objects without IDs, which is fine under XML but cannot be stored in a traditional database.

Edited: Tuesday, September 19, 2006 by GenoProSupport
Posted Sunday, June 11, 2006 - Post #11497
Forum Newbie

Forum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum Newbie

Forum Members
GenoPro version: 2.b15h

Last Login: Wednesday, November 24, 2021
Posts: 5, Visits: 8
I completely understand this point of view.
But then, what is the SQL feature of the beta2, it there a page detailing this feature and how to use it?
Posted Sunday, June 11, 2006 - Post #11498
Legendary Master

Legendary MasterLegendary MasterLegendary MasterLegendary MasterLegendary MasterLegendary MasterLegendary MasterLegendary MasterLegendary Master

Administrators
Moderators
Customers
Gamma
FamilyTrees.GenoPro.com
Translator
GenoPro version: 3.1.0.1

Last Login: Tuesday, February 3, 2026
Posts: 4,886, Visits: 22,803
olivier.jaquemet (6/11/2006)
But then, what is the SQL feature of the beta2, it there a page detailing this feature and how to use it?

This page should be deleted.  We are keeping it because sometimes an idea which appear "impossible" may become possible with time...

Posted Sunday, June 11, 2006 - Post #11502
Forum Newbie

Forum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum NewbieForum Newbie

Forum Members
GenoPro version: 2.b15h

Last Login: Wednesday, November 24, 2021
Posts: 5, Visits: 8
Okay, and what about all the work/tools you are talking of in this post: Storing genealogy data with MySQL or other databases.

Any possibility to try them?

Edited: Sunday, June 11, 2006 by GenoProSupport

Posted Sunday, June 11, 2006 - Post #11503
Legendary Master

Legendary MasterLegendary MasterLegendary MasterLegendary MasterLegendary MasterLegendary MasterLegendary MasterLegendary MasterLegendary Master

Administrators
Moderators
Customers
Gamma
FamilyTrees.GenoPro.com
Translator
GenoPro version: 3.1.0.1

Last Login: Tuesday, February 3, 2026
Posts: 4,886, Visits: 22,803
olivier.jaquemet (6/11/2006)
Any possibility to try them?

Nobody can try this SQL feature because it is not implemented.

Posted Monday, January 14, 2008 - Post #20434
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

Customers
Gamma
GenoPro version: 3.1.0.1

Last Login: Thursday, February 11, 2021
Posts: 14, Visits: 52
I don't know if anyone else might be interested, but I've decided to take on the challenge of at least creating a reasonably good Relational Database representation of the data from a GenoPro file.

First let me say that the report write is ONE HECK OF A NICE piece of work! Nice Job guys! It really gives you a lot of power and so far has made the process of trying to create SQL that could duplicate the current contents of a GenoPro file in a relational database much easier than I expected.

Now, I've put in maybe 16 or 24 hours on this project and so far I've got, Individuals, Families and unions pretty much done. I've also got the XRef (many-to-many) tables being populated that store the relationships between:
--Individuals and pictures
--Individuals and families (in different roles)
--Families and unions
--Individuals and citations
--families and citations

I'd consider my work so far to be alpha level in quality and there certainly a lot more I need to do. However, I was wondering if anyone else might be interested in helping with the project or maybe just do a little testing of what I've got so far and helping me find the problems that I'm sure are there.

I'll be making the project available for collaborative work via Subversion. If you are interested please let me know and I'll setup accounts for people to be able to access the "live" files.

I'm attaching a zipped version of the current state of the project here.

Thanks in advance for anyone who might be willing to help out.


Tom Malia
"a society that draws a broad line between it's military and it's intellectuals has it's wars fought by idiots and it's thinking done by cowards" (paraphrased from a source that I no longer remember)


GenoToRelationalMapping_WIP_2008_01_15.zip (170 views, 7.80 KB)
Posted Monday, January 14, 2008 - Post #20435
Legendary Master

Legendary MasterLegendary MasterLegendary MasterLegendary MasterLegendary MasterLegendary MasterLegendary MasterLegendary MasterLegendary Master

Administrators
Moderators
Customers
Gamma
FamilyTrees.GenoPro.com
Translator
GenoPro version: 3.1.0.1

Last Login: Tuesday, February 3, 2026
Posts: 4,886, Visits: 22,803
Thank you Thomas for the report skin.  I am wondering if an SQL database could be a viable lossless storage format for GenoPro files.  At the moment GenoPro uses XML as its core file format and there are many features in XML that cannot be directly stored in an SQL database.

GenoPro could offer more methods to enumerate tags and therefore automatically generating the SQL script for creating tables.  When I was working on a database project in 1998, the application was dynamically generating the SQL scripts to create its tables in the SQL database.  After all, GenoPro knows all its tags and can therefore generate the CREATE TABLE statement.

For your SQL project, do you need all the data, or just a part of the data?

Edited: Monday, January 14, 2008 by GenoProSupport

Posted Tuesday, January 15, 2008 - Post #20442
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

Customers
Gamma
GenoPro version: 3.1.0.1

Last Login: Thursday, February 11, 2021
Posts: 14, Visits: 52
You are right on target regarding the ability to programatically enumerate the "properties" of the tags in the GenoPro! Probably THE most tedious and time consuming part of what I'm doing is sitting there with the Tag Definitions window open in GenoPro and toggling back and forth between that and my SQL editor to manually create the create table statements. If I could have even just copied and pasted columns of data from the Tag Definition window itself it would have saved me a couple hours probably.

The other thing that seriously slows me down is the lack of "intelisense" (when you're writing code, the editor can determine the type definition of the object you just typed and can give a list of method and properties for that object). This is a gripe I have with languages like JavaScript in general. Only recently have a couple of new IDEs come out that can provide "intelisense" for these weakly typed languages. I really hesitate to mention this one because, though you've done a great job implementing a programming language (or at least an extension to one) I doubt you really want to get into the IDE development business... though, these days with things like the Eclipse project that might not actually that hard of a task.... wonder if there's any Eclipse guru's out there that might also be genealogy buffs? Maybe someone would be willing to help out with such a project!


As for the inability to store some things in SQL that you're currently storing in XML, I'd be very surprise if that is true. There's almost nothing that you can store in XML that can't be stored in a relational database as long as you structure the tables correctly. Of course the opposite is try also. The worst case scenario... and it rarely comes to this, is you can always store somethings in files in the operating system and provide references to those files in the data in the relational database.

FYI, there are active projects in all the major database vendors (MS, IBM,etc.) where they are producing commercial products that do both of the above... use XML as the back-end file format for a SQL/Relational Database and vise versa.

Looking at some of the prior discussions on this topic, the one thing I would strongly suggest though is if you get serious about trying to use a relational DB for the back end (which I think would be a great idea) then you may want to study the concept of "normal form" specifically 3rd normal form. This concept pretty much boils down to "one piece of data per field" and a couple of other pretty simple rules. The rules themselves are simple... but implementing them if you don't have practice and particularly if your prior experience has been almost exclusively in the XML document and Object Orientational design world can be tricky. However, If you've got a lot of experience with 3rd normal form, the designs required to store just about anything in a database usually seem almost self evident.

Regards,
Tom Malia


Tom Malia
"a society that draws a broad line between it's military and it's intellectuals has it's wars fought by idiots and it's thinking done by cowards" (paraphrased from a source that I no longer remember)


Edited: Tuesday, January 15, 2008 by GenoProSupport
Posted Tuesday, January 15, 2008 - Post #20443
Forum Master

Forum MasterForum MasterForum MasterForum MasterForum MasterForum MasterForum MasterForum MasterForum Master

Gamma
Moderators
Administrators
FamilyTrees.GenoPro.com
Customers
GenoPro version: 3.1.0.1

Last Login: Monday, May 12, 2025
Posts: 952, Visits: 10,077
I agree with you GenoPro should support Intellisence.  I've reported it a few years ago, however supporting Intellisense is not an easy thing since some tags, such as the custom tags, are dynamic.

Let's talk about the issues regarding storing everything in a database:

First some items do not have an ID, making it very hard to store and load it from a database.  For instance the pedigree link, label, shaped... do not have any identifier.

A properties has been added to fix this: you have to set the property EnableMultiUser to 1. This will make sure every objects to have a unique id.

m_GenoProDocument = new GenoPro.DocumentClass(); // create instance
m_GenoProdocument.EnableMultiUser(1); // this is a option to make sure every object have an unique id (such as label and pedigree links)

http://www.genopro.com/sdk/automation/plugin.aspx

Edited: Tuesday, January 15, 2008 by GenoProSupport



Similar Topics

Click to view RSS...
Expand / Collapse

Reading This Topic

Expand / Collapse