Data Modeling is the process of creating a description of the
relationships between data elements of interest. When data modeling
for relational databases, your description usually identifies tables,
columns, and foreign key relationships. The "description" usually
involves pictorial representation, e.g., boxes and arrows.
A logical data model is sometimes developed before the physical model.
The logical model is perhaps not as normalized as the physical, and
usually does not describe indexes or other performance-related
considerations. This model is most useful for communicating with
non-dba's who are interested in the data content of a system but don't
care about the physical storage considerations.
A physical data model more closely resembles the way that the data will
be actually stored in the db. It may specify indexes.
A Entity-Relationship diagram is the most common pictorial
representation of a data model, logical or physical. It's just a way
of showing the model with boxes and arrows and some special symbols
(e.g., 0..1 or 0..n) . A picture is worth a thousand words.
The schema is the actually definition of the data model in the dbms.
When you take your data model and start creating tables, columns,
indexes, and fkeys, you are creating the schema.
Of course, the data model is a representation of the schema that you
intend to create, so the terms are sometimes used interchangably. As
you show the data model to someone, you might say "here's the schema
design" or you might just shorten that to say "here's the schema". Not
quite correct, but good enough.
So, in summary, Data Modeling is an activity that results in a Data
Model. An ERD is one way of representing a data model. The data model
is used to create the databases's schema.
A data flow diagram is something entirely different. It is a pictorial
representation of how data is transformed as it moves through
processing steps of an application. For example, a data flow diagram
may show a authorization for a credit purchase as input. In an early
processing step, it will be matched against a database of account
holders. Then the purchase amount will be compared to the balance.
etc.
Hope this helps.