Relational databases: how to get started

1
Does anybody have some good tips how one can start understanding and working with relational databases? We are adding somebody to our team without any technical background and who has never worked with (relational) databases before. In order for this person to be able to jump into projects (or even start new projects) he needs a good way to learn relational databases. The basics are quite simple to figure out via all sorts of ways and the main way I have learned it is trial and error but is there any quicker way? Or some good tutorials I can find to help this person get on track? Just curious how other mendix partners handle this, as this is our first team acquiring somebody without much of a background in this. Edit: Thanks guys for the input, much appreciated! The main issue is that i'm not exactly an expert myself (as I just got started with the mendix beginners/advanced courses and then learned by trial and error mostly) so I'm not even sure what I am doing is correct. But have a face to face sit-down is probably the best way to learn this then, rather than books/reading.
asked
3 answers
5

If you don't mind getting a bit technical, this is a great tutorial: http://coding-geek.com/how-databases-work/

Nothing Mendix-specific but it does cover all the bases concerning relational databases.

answered
3

Although trial and error is in most scenarios good, bad understanding of the database behavior can result in a lot of bad practice and corrupt data floating around in your databases in the future.

In a personal session I would try to teach relational databases in which I would touch upon the following topics, while creating views/objects for all the database content inside Mendix so the person can see what is happening.

Objects

Explain what a database object is, and how it is best derived from real world objects, for example a cooking recipe has a name and preparation time, and relates to ingredients which also have a name and for example calories and perhaps fall inside a certain allergy category. You can of course think of your own example objects to demonstrate different datatypes.

Naming conventions

Naming conventions for objects and attributes are UpperCamelCase and should describe what the object is best as possible.

Tables

Touch upon database tables and explain how each object is added as a new record in this table, explain indexation and the standard Mendix ID added to each Object, which is used to identify the objects easily.

Normalization

Data normalization (the concept of never using no duplicate columns, for example a person can have children, don't add child1,child2,child3 as columns but add a new entity called child, creating a new relation between parent and child)

Inheritance

Objects and inherited properties, for example the object person can be a parent or child where both inherit the properties gender / firstname / lastname.

Relations

Then explain how relationships work continuing upon the parent child example, where you can say 1 parent relates to multiple children. Whereas one child relates to one or multiple parents. Which could also be solved by a many to many relationship. Then touch upon the topic of navigation through the tables and relational tables containing ID's of both objects to create the link. And explain how the table would look if you set one to many or many to many

Deletion behavior

Just add some simple entities to explain how deletion behavior works, for example add the entity family and tell how a family can be deleted when all persons associated to the family do no longer exist in the database. And then I will apologize for my evil god complex as a programmer and then I add a new deletion behavior which allows me to delete a family and all persons in it. Which can be helpful to teach the deletion behavior of objects with inheritance.

Security

After all that is understood touch upon the security settings of Mendix and how database security can be used to prevent read/write access per user / per object.

And in the end you can still decide to show the advanced database viewer inside the console view inside the modeler.

answered
0

I normaly sit-down for 30-45 minute and take them through a crash-course with a flip-over to make sure (s)he has examples at hand when I am not around.

recently trained 4 citizen developers that way

answered