There are several possibilities to make this graph. The way I prefer is the next code. I avoid
\usetikzlibrary{positioning} because I prefer to use scale than setting node distance.
The command path is the most important. I use it with relative coordinates ++(-1,-2).
++(-1,-2) signifies below left=2cm and 1cm of X etc.
Then I use a scope to set some styles. Every paths use semithick,-> and I prefer with -- node (U) by default pos=.5. It's preferable to use this syntax because you can use the same with the to command.
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows}
\begin{document}
\begin{tikzpicture}[> = triangle 45,
font = \sffamily,
scale= 2]
\path (0, 0) node (X) {x}
++(-1,-2) node (Y) {y}
++(1, -2) node (U) {u}
++(1, 2) node (Z) {z};
\begin{scope}[semithick,
->,
every node/.style = {below,sloped}]
\draw (X) -- (Y);
\draw (X) -- (Z);
\draw (Y) -- node {*} (U) ;
\draw (Z) -- node {*} (U) ;
\end{scope}
\end{tikzpicture}
\end{document}

Update This method needs explanations. Like the first way, I use every node to in the scope to place the labels * but I placed > = triangle 45 only in the scope because the arrows are used only in this part. Then It's possible to use edge instead of -- but it's interesting to compare how to get the arrows from x and how to get the arrows through u.
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows}
\begin{document}
\begin{tikzpicture}[font = \sffamily,
scale = 2]
\path ( 0, 0) node (X) {x}
++(-1, -2) node (Y) {y}
++( 1, -2) node (U) {u}
++( 1, 2) node (Z) {z};
\begin{scope}[semithick,->,
> = triangle 45,
every node/.style = {below,sloped}]
\draw (X) edge (Y)
edge (Z)
(Y) edge node {*} (U)
(Z) edge node {*} (U) ;
\end{scope}
\end{tikzpicture}
\end{document}