The adjoint and what 'normal' means
Over C the right notion of transpose is the conjugate transpose A* (transpose, then conjugate every entry), defined by <Ax, y> = <x, A*y>. An operator is normal when it commutes with its own adjoint: A A* = A* A. This is a weaker requirement than self-adjointness — self-adjoint (A = A*) is the special case where the two factors are literally equal — but it is exactly the right amount of structure.
The theorem and why normal is exactly right
The complex spectral theorem states: a complex operator is unitarily diagonalizable if and only if it is normal. Unitarily diagonalizable means A = U D U* with U unitary (orthonormal columns) and D diagonal — the complex twin of A = Q D Q^T. The 'only if' direction is the clean part: if A = U D U*, then A* = U D* U*, and since diagonal matrices commute, A A* = U D D* U* = U D* D U* = A* A, so A must be normal.
Reading off the spectrum class from normality:
A normal, A = U D U*. The eigenvalues are the diagonal of D.
A is self-adjoint (A = A*) <=> every eigenvalue is REAL
A is skew-adjoint (A = -A*) <=> every eigenvalue is IMAGINARY
A is unitary (A* A = I) <=> every eigenvalue has |lambda| = 1
Example (unitary rotation, normal but NOT self-adjoint):
R = [0, -1; 1, 0] over C
R* R = I (unitary) -> eigenvalues +i, -i (both on |z| = 1)
no real eigenvectors, but a full ORTHONORMAL complex eigenbasis exists.The deep direction — normal implies unitarily diagonalizable — runs through Schur's theorem: every complex operator is unitarily *triangularizable*, A = U T U* with T upper triangular. When A is additionally normal, the same A A* = A* A forces T's off-diagonal entries to vanish, collapsing the triangle to a diagonal. Normality is precisely the condition that turns Schur triangularization into full diagonalization.
Recovering the real theorem, and the Cayley bridge
The real spectral theorem now drops out as a corollary. A real symmetric matrix is self-adjoint, hence normal, so it diagonalizes unitarily over C; but its eigenvalues are real and its eigenvectors can be taken real, so the unitary U is actually a real orthogonal Q. The gap between the two theorems is exactly the difference between 'real eigenvalues' (symmetric) and 'eigenvalues anywhere in C' (general normal).