Iâ€™m currently doing a part time degree in Internet and Information Technology and earlier this evening I finished the databases module (I hope!) with a 2 hour exam. So I can now empty my head of the following:
- Entity Relationship Modelling
- Formal Database Models (Network, Hierarchical and Relational + Others)
- Types of DBMS (Database Management System)
- The Layers of Abstraction (External, Logical and Physical)
- Transactions â€“ The ACID model
- Serial / Serializable Execution
- Concurrency Control Methods
- Two Stage Commit Process
- Locking methods (Exclusive, Share, Pessimistic, Optimistic)
- Distributed Databases
- Horizontal and Vertical Table Fragmentation
- Lost, Assumed and Phantom reads
Well maybe not, some of it might actually stick!
At least it brings to an end 3 weeks of hard graft and 2am+ nights / mornings. Iâ€™ve had to do a group project about websites (lots of PHP coding plus Apache security tweaking), a presentation of that, a two part assignment (1500 word essay and 15 SQL questions) and an exam. The latter two of which were due in the same day (today). So Iâ€™ve had to make sure I was organised, but I still had to take some days off work to make sure I was prepared enough. Which is a bit annoying, since I took extra time off work at the beginning of January to get a start on it. Thankfully where I work is very understanding.
Getting back to databases, I found Databases Demystified (book) incredibly useful. It was the cheapest database book at the local Waterstones, but I doubt any of the the others could do a better job. It covered pretty much everything except distributed databases and table fragmentation. The notes we were given were a bit lacking in substance and examples so I needed something!
I found tons of stuff on the net as youâ€™d expect, but it was hard to work out what was right and what was wrong. I found a great example on distributed databases two phase commit (its like a wedding apparently) but it never came up in the exam (I thought it might do, it was in the previous years). I read one example about vertical and horizontal tables where 3 “experts” answered a related question. The first chap waffled on and mixed the two up, the second was straight to the point and the third obviously didnâ€™t care! The majority of stuff just isnâ€™t worth a light.
Sadly Wikipedia fairs no better and is average to poor on the subject. Donâ€™t get me wrong, there is a lot of stuff there, but some of its badly written, poorly linked and at worst inconsistent. Iâ€™ve gone and edited a page or two so they link together better but what it really needs is an expert in the field to give the entire section a good going over. Amusingly I thought that back in December when my first databases assignment was due and now some of the pages say exactly that.
With that over with, Iâ€™ve got a
two one week break until the second semester fires up!