0

I am developing with Delphi XE2.

I am planning a software for primary and secondary school. This school have 1,500 students. The database model is relational and we plan to keep the whole history of each student as the years move on. (well at some point it will be archived, but mostly all the relationships will be maintained for a good time)

I used to write Delphi apps using DBISAM V4 from Elevate Software. I hold a licence of it, so it is still a possibility for use it.

However I had contact with many companies using Firebird recently, some using Postgres and many websites with MySQL.

I don`t see a need to go paid databases, since this type of customer is sensitive in investment. So any database that is free for such use, plus the option of keep using DBISAM. I like it but it is getting old.

I prefer to put the business logic on the software, not in the database, so no need to intricate logic or procedures on the database side.

My questions is: What I need to consider to choose the correct database?

Eduardo Elias
  • 1,742
  • 1
  • 22
  • 49
  • 2
    This is off topic here. Wouldn't it be better to use off the shelf s/w for this? Why does a school need bespoke s/w? – David Heffernan Aug 23 '13 at 18:42
  • 1
    How can be Off topic if this is related to programming? This is related to a new software where mostly based on android tablets that connects to webservice server where the business logic and other stuff is. On my country there is none like this. They want to substitute PC by Tablets Android, or whatever comes in the future. And they want to pay and I want to get the money. Good enough? – Eduardo Elias Aug 23 '13 at 18:50
  • 2
    Lots of things that are related to programming are off topic here. Have a read of the [faq]. – David Heffernan Aug 23 '13 at 18:53
  • @DavidHeffernan I will read and try my best to be more in topic. I see many times that stackoverflow is helping me directing which technology to use, because sometimes is hard to know where to start. – Eduardo Elias Aug 23 '13 at 19:20
  • 2
    @eelias: Only you can decide if you need an SQL database. Starting an ISAM or flat file-based database project in 2013 is a weird idea in 2013. But that's just my OPINION. The whole NoSQL versus SQL thing is a full blown Religious War, and you pays your money, and you takes your chances. Oh, and you have to live with your choice for many many years, if you choose poorly. If you are building this for a school, consider asking them what they want. I bet they would want MS SQL Express. – Warren P Aug 23 '13 at 20:34
  • Though I agree this question is off-topic for stackoverflow, I would suggest you look into SQLite - if the application would have to run locally with only one user (or a very small number of users) – Stijn Sanders Aug 23 '13 at 21:47
  • 1
    To work around the off-topic limitation, you should rephrase your question as a multiple specific "how" questions. Like: "I am developing an application with a relational database model. The database will contain multiple years of information about 1500 students. There are ### concurrent users of a total of ### users. I can/can't have a separate server machine for the database. I prefer business rules in the application." Then "How can I do this with Firebird." (same for DBISAM/SQLite/...) or "How can I make a shortlist of database storage architectures." – Jeroen Wiert Pluimers Aug 24 '13 at 06:55

2 Answers2

2

This Wiki post can help you. Besides that, you have to decide for using OLE-DB, ODBC or DBX as middleware technology. Depending on which one you will find or not support for Delphi.

Another criteria include know-how on the database options and rectrictions/requirements on security and scalability.

However, no matter what DBMS you choose, my best advice for you is to isolate the access to it in a dedicated service layer so most of your application won't be directly dependent of it.

In your place I would model the application in terms of domain classes and would invest in a persistence layer. If you have to go for another DBMS in the future, most of you code will be preserved.

AlexSC
  • 1,823
  • 3
  • 28
  • 54
1

DBISAM will work here, and you can even write a webservice in Delphi, to provide access to tablets and such. You need to start thinking about the things that really matter here, such as what platform the users are on, how many users total, how many users will be using the database simultaneously (average and peak), how many rows are kept per student, how many add/delete/updated rows daily, etc.. DBISAM has limited SQL. It does a lot, but not everything that you can do in other databases. Their newer product, ElevateDB, addresses most shortfalls, including Unicode.

Chris Thornton
  • 15,620
  • 5
  • 37
  • 62