What is the relationship between cubic B-splines and cubic splines? What is the relationship between cubic B-splines and cubic splines?
 A: A cubic spline is just a string of cubic pieces joined together so that (usually) the joins are smooth. The argument values at which the joins occur are called "knots", and the collection of knots is called a "knot sequence" or "knot vector".
Let's take the knot sequence to be fixed, for a while. Then the set of all cubic splines (with these given knots) forms a vector space, and it turns out that some things called b-spline basis functions form a basis for this vector space. If you don't know anything about vector spaces, this just means that you can write any spline uniquely as a linear combination of these basis functions. When you write a spline curve as a linear combination of b-spline basis functions in this way, it's called a "b-spline". So, b-splines are not a new type of spline, they are simply a different way of expressing any existing spline, in much the same way that "XVI" is a different way of expressing the number sixteen. And the important point is that any piecewise polynomial (i.e. any spline) can be written as a b-spline.
The functions $B_0$, $B_1$, $B_2$, $B_3$ that you described are the pieces that are used to form basis functions in the special case of cubic splines with uniform knots. The word "uniform" just means that the knots are equally spaced, so, usually, they are taken to be integers ... 0,1,2,3,4,... The nice thing about uniform knots is that all the resulting basis functions have identical shape, so any one of them can be obtained just by translating one primary one (moving it to the left or right). And, because the knot spacing is so simple, it's easy to write down explicit formulas for these uniform basis functions.
This picture shows the graphs of your four functions:

Then, here, we focus on the interval $[0,1]$. The functions are labelled $a$, $b$, $c$, $d$, instead of $B_0$, $B_1$, $B_2$, $B_3$.
\begin{align*}
a(u) &= \tfrac16 u^3 \\
b(u) &= \tfrac16 \left( 1 + 3u + 3u^2 - 3u^3 \right) \\
c(u) &= \tfrac16 \left( 4 - 6u^2 + 3u^3 \right) \\
d(u) &= \tfrac16 \left( 1 - u\right)^3
\end{align*}

To form any basis function, you shift these pieces and glue them together, as shown here:

A few simple calculations, using continuity, show that in fact $h=2/3$ and $k=1/6$. This composite curve is $C_2$. As I mentioned above, you can get any other (uniform) basis function by shifting this one to the right or left.
If the knots are not uniform, then the basis functions are much more complex, and people don't usually write out closed-form formulas for them. Instead, they are generated recursively by the deBoor-Cox algorithm, starting with degree zero and working upwards to higher degrees.
For more info, look here, especially at "unit 6", or here, or here.
A: This question, which was limited to cubic interpolation, can be generalized to arbitary degree of smoothness. That is, what is the relationship between B-splines and splines?
The difference is in methodology. The B-spline method adopts the perspective of function expansion using basis functions.
The basis functions used in B-splnes are with the builtin support for the boundary conditions between knots. So one does not need to worry about the boundary condtions once the knots are given and the corresponding basis functions are chosen.
In comparison, in conventional splines, users just use piecewise poloynomials and it is the user's responsibility to carefully choose the coefficients of the poloymonials to enforce the boundary conditions between knots. If you want to switch to a different degree of polynomials, you need to implement all the details that are related to the connection conditions between knots.
In summary, b-spline is a sysmatic method of doing spline interpolations, where you can easily switch to using whatever degree of smoothness you want.
