I think you can produce test data and then use it to estimate the space for x years. So if the Db needs 1000 customers X MB and Y MB for 300 books and 10MB for 200 members of staff, given from the customer the upper limits you can estimate the space if you do maths. Say for upper limit 2000 doctors means 10MB * (2000/200). There are tools that create mini duplicates of a relational database, also if you use a database, it is written in the documentation the needed ram, space for binaries, and the space needed for each field data type, for a given length. For response, you must offer alternatives and do maths, say SSD disks or not, network speed at 100 or 1000, intranet or client-server app. Well, you must build a prototype, agreed to hardware, database software, and so on, and do tests and maths.