public Table(String tableName, List<String> columnNames) throws DataBaseTableException {
        this.name = tableName;

        if (columnNames.size() == 0) {
            throw new DataBaseTableException("table must contain more than 0 columns");
        }

        this.columnNames = new ArrayList<String>();
        for (String columnName : columnNames) {
            this.columnNames.add(columnName);
        }

        this.rows = new HashMap<String, Row>();
    }