Let’s say you are working on a project that requires you to turn on an appliance plugged into a household main (115-ish V AC) using an Arduino (3.3-5 V DC). What would you use as a switch. For some applications you can use a bipolar junction transistor as a switch (see this post). However, such applications require that both the circuit controlling the switch and the circuit being switch have the same common ground. When the circuit doing the switching and the circuit being switched are at vastly different voltages and will carry vastly different currents a better solution is a mechanical relay. Relays have a small electromagnet that when supplied with a small DC current closes a switch through which a much larger DC or AC current can flow. The switch closing is accompanied by a satisfying clicking noise. The picture below is a typical relay. This one is manufactured by OMRON and has 5 pins. The pinout is also shown.
This particular relay is a single pole, double throw (SPDT) switch. If you were controlling a switch like this with an Arduino you would hook an Arduino digital pin up to pin 2 (or pin 5) then hook pin 5 (or pin 2) up to ground. Then setting the Arduino digital pin high will throw the switch. The device being switched should be hooked up across pins 1 and 3. Notice that a SPDT switch connects pins 1 and 4 when no current is supplied across pins 2 and 5. A single pole, single throw (SPST) switch like the one shown below (also made by OMRON) lacks this alternative path. An SPST switch will be specified to be normally open (NO) or normally closed (NC). This particular relay is normally open.