Choosing from CS electives

<p>In general, you learn on one system so that you get the feel for database objects and programming and maybe some administration. Moving to another database system requires learning about how to get it up and running and then learning about the peculiarities (things that don't work or things that work differently). SQL standards were developed from by the commercial vendors and there were a lot of politics affecting SQL standards efforts. Every vendor wanted to get their special feature into the SQL standard or they wanted to get their particular syntax in so that they wouldn't have to do anything to be standards-compliant while other companies would have to make a special effort. So syntax varies from vendor to vendor and you usually find out that something doesn't work when you try it.</p>

<p>Debugging isn't usually taught explicitly. In the CS courses that I've seen, you're just kind-of expected to know how to do it or learn it on your own. At work, you can usually find someone to show you how to use the debugger in a rudimentary way but it takes a while using the debugger to get proficient at it.</p>

<p>It would be used with 3GL database applications. Other application development environments may or may not have their own debugging environments.</p>

<p>Codevision,</p>

<p>Database tasks are broken up into 3 areas: Data Modeling, Database Development and Database Administration. Now let's look at you typical systems/software engineering lifecycle:</p>

<p>Requirements/Analysis-->Design-->Development-->Test/Validation-->Implementation-->Sustainment</p>

<p>Data Modeling is the actual logical (and sometime physical) design of the database. That will cover the Requirement Analysis & Design phases of the lifecycle.</p>

<p>Database development is the actual programming/coding in SQL using constructs like functions, stored procedures and others. That will cover the Development and Testing phases.</p>

<p>Database administration is the monitoring and upkeep of the implemented database system.</p>

<p>If I were to choose some books that I thought were good, I would recommend:</p>

<p>Data Modeling: Data Modeling Fundamentals (Graeme Simsion)
Database Development & Administration: Expert Oracle Database Architecture (Thomas Kyte)</p>

<p>I'd take courses that would help you design and implement interfaces for those with special requirements. </p>

<p>ex: DS had an internship with Microsoft Research-India. He made himself a project that helped Indians, who will have surgery (the accompanying partner explains to the impaired), those who just had cataract surgery understand cataracts and those who had to care for their eyes. Fairly low tech but needed to be rugged, simple to maintain and change, and of course had to work for those who couldn't read.</p>