SQL Antipatterns: Avoiding the Pitfalls of Database Programming