A method comprising: maintaining, by a database server, semi-structured hierarchical data on persistent storage; wherein a schema for the semi-structured hierarchical data comprises a tree of nodes (220, 222, 224) in a hierarchical relationship, each node (220, 222, 224) of the tree of nodes (220, 222, 224) having an immediate hierarchical relationship with at least one other node (220, 222, 224) in the tree of nodes (220, 222, 224); generating a denormalized arrangement defining a set of columns for a table (108, 105, 160), comprising rows, that is managed by the database server, wherein one or more columns in the set of columns correspond to respective one or more nodes (220, 222, 224) in the tree of nodes (220, 222, 224), the generating comprising: determining a data type for said one or more columns based on one or more data types of the respective one or more nodes (220, 222, 224) in the tree of nodes (220, 222, 224), and determining a relationship of column values of said one or more columns with column values of other columns of the set of columns based on a hierarchical position of said respective one or more nodes (220, 222, 224) in the tree of nodes (220, 222, 224) with respect to other nodes (220, 222, 224) in the tree of nodes (220, 222, 224); wherein the relationship is one of: a many-to-one relationship, wherein multiple values, in a first column of the one or more columns, correspond to a particular value in a second column of the other columns, a one-to-one relationship, wherein a single value, in the first column, corresponds to at most one value in the second column, or a many-to-many or no relationship, wherein no value in the first column corresponds to any value in the second column; storing at least a portion of the semi-structured hierarchical data into the table (108, 105, 160) based on the denormalized arrangement; and extracting data from one or more columns of the set of columns. maintaining, by a database server, semi-structured hierarchical data on persistent storage; wherein a schema for the semi-structured hierarchical data comprises a tree of nodes (220, 222, 224) in a hierarchical relationship, each node (220, 222, 224) of the tree of nodes (220, 222, 224) having an immediate hierarchical relationship with at least one other node (220, 222, 224) in the tree of nodes (220, 222, 224); generating a denormalized arrangement defining a set of columns for a table (108, 105, 160), comprising rows, that is managed by the database server, wherein one or more columns in the set of columns correspond to respective one or more nodes (220, 222, 224) in the tree of nodes (220, 222, 224), the generating comprising: determining a data type for said one or more columns based on one or more data types of the respective one or more nodes (220, 222, 224) in the tree of nodes (220, 222, 224), and determining a relationship of column values of said one or more columns with column values of other columns of the set of columns based on a hierarchical position of said respective one or more nodes (220, 222, 224) in the tree of nodes (220, 222, 224) with respect to other nodes (220, 222, 224) in the tree of nodes (220, 222, 224); wherein the relationship is one of: a many-to-one relationship, wherein multiple values, in a first column of the one or more columns, correspond to a particular value in a second column of the other columns, a one-to-one relationship, wherein a single value, in the first column, corresponds to at most one value in the second column, or a many-to-many or no relationship, wherein no value in the first column corresponds to any value in the second column; determining a data type for said one or more columns based on one or more data types of the respective one or more nodes (220, 222, 224) in the tree of nodes (220, 222, 224), and determining a relationship of column values of said one or more columns with column values of other columns of the set of columns based on a hierarchical position of said respective one or more nodes (220, 222, 224) in the tree of nodes (220, 222, 224) with respect to other nodes (220, 222, 224) in the tree of nodes (220, 222, 224); wherein the relationship is one of: a many-to-one relationship, wherein multiple values, in a first column of the one or more columns, correspond to a particular value in a second column of the other columns, a one-to-one relationship, wherein a single value, in the first column, corresponds to at most one value in the second column, or a many-to-many or no relationship, wherein no value in the first column corresponds to any value in the second column; a many-to-one relationship, wherein multiple values, in a first column of the one or more columns, correspond to a particular value in a second column of the other columns, a one-to-one relationship, wherein a single value, in the first column, corresponds to at most one value in the second column, or a many-to-many or no relationship, wherein no value in the first column corresponds to any value in the second column; storing at least a portion of the semi-structured hierarchical data into the table (108, 105, 160) based on the denormalized arrangement; and extracting data from one or more columns of the set of columns.