(Painting of the Battle of Puebla, May 5, 1862)
"Cinco de Mayo" means the fifth day of May in Spanish: "Cinco" is five, "Mayo" is May. It is not a national holiday in Mexico. I was in Mexico City one year on the fifth day of May and looked forward to what I assumed would be a city-wide party. Instead, there was nothing. No party, no celebration, nada.
It seems that Cinco de Mayo is more an American invention. Who knows why this day was picked, but it is celebrated in the United States as kind of a day of celebration of Mexican heritage: costumes, music, dancing, food.
Technically, the apparent basis for the holiday is the Battle of Puebla, which was a battle between the Mexican Army and the French Army in 1862. The Mexicans won.