Data modeling is a technique for organizing data in a system by applying formal modeling methods. It involves creating conceptual, logical, and physical data models. Key elements of data modeling include entities, attributes, relationships, domains, keys, and cardinality. Weak entities differ from strong entities in that weak entities do not have attributes to form a primary key and instead inherit their primary key from the strong entity they are dependent on through an identifying relationship.