Concrete syntax trees and derivation trees exist for many types of
grammars (e.g. tree adjoining grammars, TAG). They happen to be
identical (up to labeling) in the case of CF grammars, but this is not
always the case, for example for TAG. (there are technical errors or
imprecisions in Wikipedia).
The derivation tree expresses how the rules are to be applied to
obtain the derived string. The derived tree (or concrete syntax)
associate a tree structure to the generated string, which may not be
context free.
Constituency grammars is a name often used by linguists to refer to
what we call Context-Free Grammar. This is intended to contrast them
with Dependency Grammars based on a linguistic concept of dependency
used by linguists.
The idea of constituency is a classic idea in formal systems: terms
are formed with subterms. So the parse tree (very approximately) may
be seen as a term of an abstract algebra, and the semantics of the
whole is a composition of the semantics of the parts, the constituents
(I insist that I am simplifying a lot). While parse trees are concrete
syntax trees, the idea of abstract syntax trees (AST) was to emphasize
in programming languages the algebraic term structure to better
organize compilers and formal semantics.
Nevertheless, constituency is a syntactic concept, a very common one.
It has been extended to formalisms that consider discontinuous
constituents (or multi-parts constituents), such as TAG and Linear
Context-Free Rewriting Systems (LCFRS), which are strictly more
powerful than CF grammars.
As far as I understand, the idea of dependency is
related to lexicalized grammars (which also exists for extensions of
CF grammars).
The idea of a lexicalized grammar is that every rule instance used in
a derivation must be associated with a terminal of the generated
string (usually a single one). As is well known, every CF language has
a lexicalized CF grammar: you just put it in Greibach normal
form. Actually, the research of Sheila Greibach was probably motivated
by natural language considerations (she was working in the NL group of
Anthony Oettinger at Harvard). This concept of lexicalisation
comes from some natural language (NL) theories that consider that
construction of sentences is lexicon driven.
So far, we are still in the CF realm.
Dependency Grammar (DG), as much as I understand it as I am no specialist,
organizes the tree structure around the idea that each node of the
syntax tree is associated with a terminal (lexical element), as in
lexicalized grammar, but in such a way that it "controls" (dominates in
the tree structure) some part of the sentence, of which it is supposed
to be the central element (the exact term is "head"). So the verb will
be the head of a sentence, and the noun the head of the noun part of
the sentence, etc., according to some linguistic theory the
linguist is developing to organize language structure..
It is quite characteristic that the wikipedia article on Dependency
Grammars does not propose a formal definition of the concept. My
feeling from a quick glance at the literature is that it is mostly a
linguistic concept that can be formally dressed in different ways,
without a standard reference one. There are, however, some formal
definitions, for example in Dependency Grammars and Context-Free
Grammars, by Steven Abney (unpublished, 1994). I have also seen
contradictory statements regarding the power of DG, but it apparently
at best weakly equivalent to CFG. Specific algorithms have been
developed for dependency parsing, that seems to have interest for
linguists.
A dissertation (for sale) may contain interesting material: Dependency
Structures and Lexicalized Grammars: An Algebraic Approach*, Marco
Kuhlmann, Springer 2010. Slides about it are available.
Closely related to Dependency Grammar are Link Grammars, formally
defined, which also seem to have been designed for their parsing
properties, though advantages over CF grammars seem disputed.
Link Grammars are weakly equivalent to CF grammars, according to their
creators, Daniel Sleator and Davy Temperley.
But Dependency Grammars, or Link Grammars, though they may define the
same languages as all or part of the CF grammars, are not CF grammars,
and do not define the same structures for the strings.
It is worth noting also the Head Grammars, which are non-CF
constituency grammar, though they emphasize the concept of head more
often encountered with the dependency analysis of language. Head
grammars are LCFRS.
I believe semantics considerations enter the concept of Dependency
Grammars, but there in no clearcut limit between syntax and semantics
in Natural Language.
Constituency grammars are often just our good old, syntactic, formally
defined, context-free grammars, though it has been entended to more complex structures for constituants.