Locking protocols prevent concurrent transaction problems: lost updates (overwriting uncommitted changes), uncommitted dependencies (reading dirty data), and inconsistent data (reading partially updated records). Locking ensures transaction isolation and serializability by controlling access to shared data items.