An AVL tree is a self-balancing binary search tree where the heights of the left and right subtrees of every node differ by at most one. Each node stores an extra "balance factor" field representing the height difference between its left and right subtrees. Rotations are performed during insertions and deletions to maintain the balance factor between -1 and 1, keeping the tree height balanced. There are four types of rotations - left, right, left-right, and right-left - to rebalance the tree as needed. Maintaining this balance property provides O(log n) time bounds for search, insert, and delete operations.