|
Joe is teaching database courses privately; anyone desiring a on-site course should
e-mail Joe (jcelko212@earthlink.net).
Courses Joe has available:
- BEGINNER'S DATABASE
- INTRO TO SQL
- ADVANCED SQL PROGRAMMING
"Brown Bag SQL" for Austin Only
** This series applies to Austin only.
There is a major problem in many, if not most companies. Programmers who have no training in SQL and or education in relational databases are writing and programming them. Unfortunately, there is not time off of projects or budget to send them out of town to vendor training classes or back to college.
My solution is a once-a-week, on-site lecture series where the developers bring lunch. This keeps them on the job and the total cost is lower per student than off-site courses.
I put together a 13-week (one quarter) lecture series, based on a 90-minute period with some time for questions. It starts with the foundations and goes through DDL and then to DML. Yes, it is taking a few weeks to get to the hard core SQL programming parts, but if you have a bunch of non-SQL programmers, they need a background first.
If you wish to video tape the series on site, I will keep the rights to the lectures, but the company can have unlimited internal use of them. If I edit the material, say by adding screen shots or other post-production things, I also grant internal use of the final versions, not just the raw footage.
The content is negotiable, depending on the needs of each group. But based on what I have seen, I strongly advise that the basic material not be skipped.
1.0. Relational Basics
1.1. What Life Was Like With File Systems - Punch Cards and Tapes
1.2. Early Databases -- Dr. Bachman and the CODASYL Model
1.3. History of the Concepts -- Dr. Codd and the Relational Model
1.4. History of SQL
1.5. Why It Is So Different -- Un-Learning Old Habits
1.6. Logical versus Physical Levels
1.7. Set Theory
1.8. Three Valued Logic
1.9. Shared Resources and Transactions
2.0. High Level Overview of SQL - The "Big Ideas"
2.1. The Three Sub-Languages - DDL, DCL and DML
2.2. Tiered Architecture
2.3. Host Language versus Application Language
2.4. Procedural versus Non-Procedural Programming
2.5. Some Exercise For Thinking In Sets
3.0. Basic DDL
3.1. Standard Datatypes -- No Big Surprises in the Numerics
3.2. CHAR(N) and NCHAR(N) Datatype Problems
3.3. Temporal Data -- First Language to Have It
3.4. NULLs and how they Work
3.5. ISO-11179 Naming Standards
3.6. Scales and Measurements
3.7. Design Of Encoding Schemes
3.8. Common Mistakes In DDL
4.0. Advanced DDL
4.1. DEFAULT Values
4.2. CHECK() Constraints
4.3. Primary Keys
4.4. UNIQUE Constraints
4.5. FOREIGN KEY .. REFERENCES
4.6. Declarative Referential Actions
4.7. Triggers
4.8. Avoiding Proprietary Datatypes
5.0. Basic SELECT Statements
5.1. Sets Versus Sequence
5.2. Order Of Execution of Clauses
5.3. Three Valued Logic and Basic Predicates
5.4. Basic GROUP BY Clause
5.5. Views and Derived Tables
5.6. Avoiding Temporary Tables
6.0. Advanced SELECT Statements
6.1. Uncorrelated Subqueries
6.2. Correlated Subqueries
6.3. Predicates That Use Subqueries - ALL(), ANY/SOME(), EXISTS(), IN()
6.4. Advanced GROUP BY and HAVING Clause Tricks
7.0. Outer Joins
7.1. LEFT and RIGHT OUTER Joins
7.2. Proprietary LEFT OUTER JOIN Syntax That Are Not Used Today
7.3. FULL OUTER JOIN
7.4. CROSS JOIN
7.5. Other Exotic Joins
8.0. Set Operators
8.1. UNION and UNION ALL
8.2. INTERSECT and INTERSECT ALL - How To Fake It
8.3. EXCEPT and EXCEPT ALL - How To Fake It
8.4. Relational Division - Exact, With Remainder and Todd's Operator
9.0. Trees & Hierarchies in SQL
9.1. Adjacency List Model
9.2. Path Enumeration Model
9.3. Nested Sets Model
9.4. Tricks and Tools for the Nested Sets Model
10.0. Temporal Queries
10.1. Why Time Is A Hard Problem
10.2. Time Is Made Of Durations and Not Points
10.3. Calendar Tables
10.4. Temporal Functions
11.0. Stored Procedures
11.1. Structured Programming Basics Still Apply
11.2. Coupling
11.3. Cohesion
11.4. McCabe Complexity Number
11.5. Handling a Variable Number of Parameters
11.6. Transactions, Locking and Levels
12.0. Data Quality
12.1. How Bad Data gets Into the Schema
12.2. Expected Spoilage in Data
12.3. Mop Up the Spill, but Fix the Leak
13.0. To Be Determined By Student Request
|