You are not totally getting rid of the relationship between the columns and their rows. The simplified difference is the way the table is stored. Traditional storage is physically stored in a row-wise manner while a columnstore is stored column-wise. The doc link provided here has much more info that I would prefer to not copy and paste.
From the docs:
Key terms and concepts These are key terms and concepts are associated
with columnstore indexes.
columnstore A columnstore is data that is logically organized as a
table with rows and columns, and physically stored in a column-wise
data format.
rowstore A rowstore is data that is logically organized as a table
with rows and columns, and then physically stored in a row-wise data
format. This has been the traditional way to store relational table
data. In SQL Server, rowstore refers to table where the underlying
data storage format is a heap, a clustered index, or a
memory-optimized table.
So here is an example of how the relationship is retained in TSQL. Run this against a table that has a CS index (Disclaimer: I am not a pro at CS indexing):
SELECT o.name AS table_,
i.name AS index_,
i.type_desc AS index_type,
p.partition_number,
rg.row_group_id,
cs.column_id,
c.name AS column_
FROM sys.objects o
INNER JOIN sys.indexes i
ON i.object_id = o.object_id
INNER JOIN sys.partitions p
ON p.object_id = o.object_id
AND i.index_id = p.index_id
INNER JOIN sys.column_store_row_groups rg
ON rg.object_id = o.object_id
AND i.index_id = rg.index_id
INNER JOIN sys.column_store_segments cs
ON cs.partition_id = p.partition_id
INNER JOIN sys.columns c
ON c.object_id = o.object_id
AND c.column_id = cs.column_id
WHERE o.object_id = OBJECT_ID(your_table_name)