Schema - namespace - is a logical thing. It is used to organize database object names. It has nothing to do with how data is stored.
Table space is a physical thing. It is a container for data and has nothing to do with the logical organization of database objects.
One object (for example, a table) can be distributed across several table spaces (depending on the DBMS used), but it can be defined in only one scheme. The schema_1.table_1 table is a different table than schema_2.table_1 - although the same name is the same, the full name is different, and therefore these are two different tables.
Objects that are organized in the same layout are not necessarily stored in the same table space. And one tablespace can contain objects from different schemas.
Schemas (and directories, which are another level of the namespace) are part of the SQL language and are defined in the SQL standard.
Table spaces are part of the physical storage and are specific to the DBMS (although almost all DBMSs support this concept) and are not part of the SQL query language (as defined by the SQL standard). However, they are defined and managed through vendor-specific SQL / DDL statuses.
source share