Documentation

No results
    gitHub

    SQL and NoSQL databases, APIs, and storage formats

    Hackolade's main added value is in providing the ability to perform the data modeling for JSON-based databases, mainly nested objects (sub-documents and arrays, a.k.a. maps and lists.)  Hackolade even has a pending patent on its "Method and Process to graphically model schemas for NoSQL and multimodel databases and REST APIs".

     

    Whereas most relational database adhere to a SQL standard which ensures a common approach (even though some nuances are possible), NoSQL databases have sometimes fundamentally different approaches for storage and architecture, and often use different terminology for similar concepts:

     

    Generic terminologySQLMongoDBDynamoDBCouchbaseAzure Cosmos DBElasticsearchDatastax CassandraApache HBase
    ContainerUser schemaDatabaseRegionBucketCollectionIndexKeyspaceNamespace
    EntityTableCollectionTableDocument kindDocument typeTypeTableTable
    RecordRecordDocumentItemDocumentDocumentDocumentRowRow
    AttributeColumnFieldAttributeFieldFieldFieldColumnColumn
    Primary KeyPrimary KeyObjectIDHash (& range)Document IDididPartition Key+ Clustering Key Row Key
    IndexIndexIndexIndexIndexIndexIndexIndexIndex
    PartitionPartitionShardPartitionvBucketPartitionShardPartitionShard
    ViewViewViewGlobal Secondary IndexViewn/aFiltered aliasMaterialized ViewView
    Objectn/aSub-documentMapObjectObjectObject/NestedMapn/a
    ArrayArrayArrayListArrayArrayArrayListn/a

     

    Generic terminologyGoogle RealTime FirebaseGoogle Cloud FirestoreMarkLogicApache HiveApache AvroCouchbase AnalyticsGoocle Cloud BigQuery
    ContainerUser schemaDatabaseDatabaseDatabaseNamespaceDataverseDataset
    EntityTableCollectionCollection/DirectoryTableRecordDatasetTable
    RecordRecordDocumentDocumentRown/aDocumentRecord
    AttributeColumnFieldFieldColumnFieldFieldField
    Primary KeyPrimary KeyObjectIDURIPartition Key+ Clustering Key n/aDocument IDn/a
    IndexIndexIndexIndexIndexn/aIndexn/a
    PartitionPartitionShardForestPartitionn/an/aPartition
    ViewViewViewViewViewn/an/aView
    Objectn/aSub-documentObjectMapRecord/mapObjectRecord
    ArrayArrayArrayArrayListArray/enumArrayArray

     

    Generic terminologyParquetAWS Glue Data CatalogScyllaDBRDBMS
    ContainerFileDatabaseKeyspaceSchema/user
    EntityMessageTableTableTable
    RecordRowRowRowRow
    AttributeColumnColumnColumnColumn
    Primary Keyn/aPartition Key+ Clustering Key Partition Key+ Clustering Key Primary Key
    Indexn/aIndexIndexIndex
    Partitionn/aPartitionPartitionPartition
    Viewn/aViewMaterialized viewView
    ObjectMapMapMapn/a
    ArrayListListListn/a

     

    Each target vendor may also support its own functional features and list of attribute types.

     

    To simplify the user's life, Hackolade adapts to the terminology and feature set of each database platform target for the model.  The menu items, contextual menus, toolbar icon tooltips, and documentation all dynamically change depending on the selected target.

     

    Isn't it ironic that a technology that bears the label of 'schemaless' is also known for the fact that schema design is one of its toughest challenges?  Each of the NoSQL vendors dedicates a large part of its documentation to data modeling: MongoDB, DynamoDB, Couchbase, Cassandra.

     

    The following pages analyze the characteristics of each NoSQL database vendor, from the perspective of a data modeler.  These pages do not cover the technical architecture as it pertains to infrastructure and performance, which would go well beyond the scope of the Hackolade application.