Hi. I want to ask if you could possibly give me any suggestions from your point of view for the following project. I can't understand it well. I only have very shallow knowledge of Databases, so I thought I'd ask the guys that know. How can I start? What should I learn? Where can I get any references? If you have any suggestions at all or pointers to online resources, I'd be most grateful.
Web-based database management system for flexible scientific data.
A database management system is required to develop for managing flexible scientific data. The latter have rather hierarchic structure opposite to relational tables which makes most of the existing database management systems unsuitable. The system required should have a web interface and support some security for accessint/retrieving data.Databases should have a flexible structure that is the creation of new and modification of existing fields and branches should be possible by means of the system. There is no preference in terms of development tools. PHP, JSP, Java etc possible.
Originally posted by MattR
If you're looking for something hierarchic go back to the 1960s, right before the relational model proved to be far superior.
I would agree you should use a relational database. (It worries me if you did not consider this) They are far superior and much more common. Which leads to my first question, what kinda database are you going to work with? Since you are using PHP, I would suggest mySQL (since there both OpenSource and free ware). There are so many sites out there with tutorials and such for both.
And I suggest PostgreSQL, which is also free, and has many more features, including all kinds of methods for dealing with scientific data. For your purposes, one of the most useful features of PostgreSQL might be that it has an extensible type system, allowing you to create custom datatypes and operators. PostgreSQL already has a nice list of "complex" datatypes/ooperators, such as its geometrical types and network datatypes. It is also very good for many kinds of aggregate/statistical data processing, and it allows you to write stored procedures in several languages: SQL, C, PL/PgSQL, TCL, Perl, Python, PL/R (good for statistics), and even Java (coming soon). Also, there is a nice list of add-on software available. See http://techdocs.postgresql.org/ for more details on PostgreSQL.
By the way, there is no reason why a relational DBMS can't handle hierarchical data, In fact, there are several methods (especially among the more advanced database systems such as Oracle, DB2, PostgreSQL, etc...). But, even basic SQL database systems can handle hierarchical data; see these links:
In fact, there is a definite benefit to storing hierarchical data in a relational database, because you can also access your data in a non-path-dependent manner, allowing you a lot more flexibility to change schema and design in the future.