WKTでPOLYGONを作ったときに、うっかり始点と終点を一致させず、経路を閉じ忘れることがあります。
SELECT
	IsValid(g) AS IsValid,
	IsValidReason(g) As IsValidReason
FROM (
	SELECT
		GeomFromText(
			'POLYGON((0 0, 0 1, 1 1, 1 0))',
			4326
		) AS g
)
;
-- 0, Invalid: Unclosed Rings were detected
MakeValidはこういった不正なジオメトリを、形を崩さずに正しいジオメトリに直そうとしてくれます。
SELECT
	AsText(g2) AS geom_text,
	IsValid(g2) AS IsValid
FROM (
	SELECT
		MakeValid(g) AS g2
	FROM
	(
		SELECT
			GeomFromText(
				'POLYGON((0 0, 0 1, 1 1, 1 0))',
				4326
			) AS g
	)
)
;
-- POLYGON((0 0, 0 1, 1 1, 1 0, 0 0)),	1
また、POLYGONで与えた頂点が描く軌跡は、交わってはいけません。交わってしまう状態を自己交差 (self-intersection) といいます。
SELECT
	IsValid(g) AS IsValid,
	IsValidReason(g) AS IsValidReason
FROM (
	SELECT
		GeomFromText(
			'POLYGON((0 0, 0 1, 2 1, 2 2, 1 2, 1 0, 0 0))',
			4326
		) AS g
)
;
-- 0, Self-intersection[1 1]
この場合、座標 (1, 1) で自己交差がおきています。
このようなPOLYGONもMakeValidで正常化できます。
SELECT
	AsText(g2) AS geom_text,
	IsValid(g2) AS IsValid
FROM (
	SELECT
		MakeValid(g) AS g2
	FROM (
		SELECT
			GeomFromText(
				'POLYGON((0 0, 0 1, 2 1, 2 2, 1 2, 1 0, 0 0))',
				4326
			) AS g
	)
)
;
-- MULTIPOLYGON(((0 0, 0 1, 1 1, 1 0, 0 0)), ((1 1, 1 2, 2 2, 2 1, 1 1))), 1
自己交差が起こっていた座標 (1, 1) で2つのPOLYGONに分けられ、MULTIPOLYGONになりました。