I am currently learning concepts of column store Databases like HANA from scratch and theres one point I don't understand. Theres the "dictionary" with the dictinct list of values with its corresponding integer and than theres the so called " Attribute Vector" in which the position of the tulpe ( or Row ) is assigned to this interger. So far so good.
I do understand that the dictionary may be sorted by the Value ( e.g. String Surname, forname etc.). If someone does a Full talble Scan on the Surname. The dictionary may be searched using binary Search. The Search returnes the corresponding integer of the Surname. So far so good.
We now looking the integer up in the attribute vector to determine the position of the tulpe/row. And this i dont understand:
Is the attribute Vector also sorted by the integer to use binary sreach? If it is not sorted by this integer, this would again be a full table/colum scan ( ? ) Or is the whole column be sreached from top to bottom and the reason of performance is only the reduced size of the column compared to the whole table in row-based databases?
And please dont give me a link to Open HPI i am learning that.