Logical address consists segment number and offset in the segmentation. Segments are variable length chunks of a program that corresponds to logical units of the program. Pages are equal sized but segments are variable sized. Mapping from logical address to physical address is done with the help a table which maintains segment number and offset. That means segment table.
Since, segments are variable length so we have limit of a segment that specify length of the segment with the help of base that is a starting address of a segment.
There are some advantages of segmentation over paging: there is no internal fragmentation, but external fragmentation is possible. In paging, there is no external fragmentation but internal fragmentation is possible. Since, segments are variable sized and pages are fixed sized, so average segment size is larger than average page size. Segmentation has efficient translation but it costly. Operating system is responsible for paging, but user/compiler is responsible for segmentation.