Last night, I enjoyed an evening of pizza and beer at the Sydney Oracle Meetup for a talk on "How Build Fast, Secure Web Apps with the PL/SQL Gateway & Oracle Multimedia".
We had an interesting talk from Marcel Kratochvil, our local Oracle Ace Director. Actually he and Richard Foote (another Ace Director) are both based in Canberra, which isn't technically part of NSW and is several hours drive away, but Sydney lost our Ace Director when Alex escaped back to Canada so we'll call Canberra 'local'. In fact, without Alex (and HJR who resigned his Ace-ship), we are down to Steve Adams (of IxOra and oracle-l) as our only Sydney ACE.
Marcel treated us to his MultiMedia workshop, the material for which is on his website.
I've worked a bit with Apex. I even got as 'multimedia' as getting a voicemail attachment from an email and letting people listen to it from an Apex page. But I did so from a 'relationist' point of view, treating it as just a BLOB in a table. Though in my defense, that was all that was required.
With all the extra 'bits' that are hidden in multi-media files (our resident photo guru Nuno was nodding when hearing about EXIF) I can see Marcel's point of view when it comes to foreign keys and referential integrity. These objects are not a simple datatype (ie one that conforms to the atomicity criteria of first normal form) and there's no benefit to trying to break the object into distinct 'content' and 'metadata' components in a relational manner. And once you've accepted and dealt with such situations, you would consider foreign key constraints from a practical 'how do I benefit in this particular case' mindset.
That said, I generally work with more structured data so will still err on the side of more constraints rather than less.
I was impressed with the ease of getting the multimedia objects in and out of Oracle. I've done it with Apex, but it was only that one time I got into the nitty-gritty of things and it is hard to judge how much is Apex and how much is the lower level mod/plsql stuff.
I had my little play with Spatial/Locator. Now its time I did some playing with some of the multimedia objects types mentioned.