views:

98

answers:

2

My friend and I are entering our final year at the university (M.Sc.) in 2 months and as such we have to start thinking about our dissertation (as we decided to write one together). After giving it some thought we came up with a topic which would involve both a lot of thinking and implementing, as we really wanted to do something practical that we could actually show in our portfolios - we will be designing and implementing a large system for didactics support for our university. The plan looked great on paper I'm a java guy (JEE), so I'd be in charge of the web stuff, the "views", server logic etc., and he's into databases (Oracle/MySQL), and well this system will be really all about the databases.

The problem is now that I think about it I don't really see how would the teamwork look like, I mean I did a few medium size JEE projects, I've been working for a month-two at a small comapny, but I never had a database programmer on my team, in most cases I did everything by myself with JPA/Hibernate (I didn't really need to write the databases I just used the appropriate annotations etc.). So basically my question is how do people divide work when you have someone who's good at writing the presentation layer and the server side logic and someone who's really really good at databases? Or maybe we went in a completely wrong direction and such combinations aren't necessary/possible?

@Edit: ok my bad, I thought "dissertation" is also when you're doing a Master degree (which I'm doing now). Whether this is a boring and/or well suited topic for an M.Sc. thesis let me just say that I did put a lot of thought and consideration before choosing it and I'm happy with my choice ;) (sorry for the smiley, I know some people find them juvenile). Oh also I guess I didn't really mention this (as I didn't think it's all that important) - the system itself is only a part of the thesis, the main part is to actually come up with a way to plan/support the didactic process (creating the classes scheduel etc.) which apparently isn't all that simple as my university, or at least my faculty, is struggling with it every single semester ;)

A: 

"Dissertation" means doctorate. "Thesis" means Master degree. Which one are you doing?

When you say you used JPA/Hiberate, I'll assume that it was a clean sheet design where a database didn't exist when you started. You came up with an object model that was a faithful representation of your problem, generated the schema from it, and off you went.

If that's the case for this project, there's no reason why you can't do it again.

The one reason for having an Oracle expert would be if you found that the DDL/DML generated by Hibernate wasn't adequate for some reason. If you need additional indexes or denormalization, perhaps a real relational database expert can help you.

duffymo
About the disseration part - geuss it's my bad, as you can probably tell English isn't my native language and I always thought that dissertation can also mean a master degree (which we will be hopefully getting next year).Actually this project is supposed to heavily rely on databases so a good design is key (it is supposed to support a university with ~30k students and X teachers/scholars), but yeah the DB doesn't exist yet.
Zenzen
Nope - dissertations have a uniqueness constraint; theses do not. Your answer hinges on whether or not you think you'll have a good object model and if Hibernate's generated DDL/DML/DQL will be adequate.
duffymo
+3  A: 

i myself am a database bigot.

I believe, on any large project, you should always start with a strong database design. Work through this design carefully, test it, examine it, perform thought experiments on it, finally create it, and populate it with some sample data. Learn from each of these steps. Decide where the risks are from your data population efforts: where was this hard, what data problems did you create? begin constraining the database to prevent issues.

Now, when the data model is maturing, begin your GUI work. It is ok to think through the main use cases and general style of the UI ahead of time, but avoid coding data access of any kind until the database is maturing.

While you complete the UI, the database guy(s) can work on report SQL, triggered business logic, complicated constraints, security, backup and migration strategies etc.

have fun. :)

Randy
Well now this is a great answer guess we'll do just that, thanks! Truthfully I didn't expect to get a good answer as I thought my question was little bit silly, but I guess you can ask anything here and get a satisfying answer. Thanks again.
Zenzen
Object bigots would argue that same for an object model. What if you find out that NoSQL is a better solution for you? Your Oracle efforts might be wasted.
duffymo
well actually we (and by "we" I mean "I") are also considering using NoSQL here since it's a new technology and researching it as part of our thesis would be kinda fun and exciting. But as I said I'm not alone and I have to also take into account what my teammate wants to do.
Zenzen
+1 for a great answer.
The Thing