Diferencias entre una base de datos relacional (SQL) y DynamoDB al crear una tabla - Amazon DynamoDB

Diferencias entre una base de datos relacional (SQL) y DynamoDB al crear una tabla

Las tablas son las estructuras de datos fundamentales tanto en las bases de datos relacionales como en Amazon DynamoDB. Un sistema de administración de bases de datos relacionales (RDBMS) requiere que se defina el esquema de la tabla al crearla. En cambio, las tablas de DynamoDB no tienen esquemas por lo tanto, salvo la clave principal, no hay que definir ningún atributo o tipo de datos al crear la tabla.

En la siguiente sección se compara cómo crearía una tabla con SQL y cómo lo haría con DynamoDB.

Creación de una tabla con SQL

Con SQL, usaría la instrucción CREATE TABLE para crear una tabla, como se muestra en el ejemplo siguiente.

CREATE TABLE Music ( Artist VARCHAR(20) NOT NULL, SongTitle VARCHAR(30) NOT NULL, AlbumTitle VARCHAR(25), Year INT, Price FLOAT, Genre VARCHAR(10), Tags TEXT, PRIMARY KEY(Artist, SongTitle) );

La clave principal de esta tabla consta de Artist y SongTitle.

Debe definir la clave principal, así como todas las columnas y tipos de datos de la tabla. Puede usar la instrucción ALTER TABLE para cambiar estas definiciones más adelante si fuera preciso.

Muchas implementaciones de SQL permiten definir especificaciones de almacenamiento de la tabla en la propia instrucción CREATE TABLE. A menos que se indique otra cosa, la tabla se crea con los ajustes de almacenamiento predeterminados. En un entorno de producción, un administrador de base de datos puede ayudar a determinar los parámetros de almacenamiento óptimos.

Creación de una tabla con DynamoDB

Use la operación CreateTable para crear una tabla en modo aprovisionado; para ello, especifique los parámetros que se muestran a continuación:

{ TableName : "Music", KeySchema: [ { AttributeName: "Artist", KeyType: "HASH" //Partition key }, { AttributeName: "SongTitle", KeyType: "RANGE" //Sort key } ], AttributeDefinitions: [ { AttributeName: "Artist", AttributeType: "S" }, { AttributeName: "SongTitle", AttributeType: "S" } ], ProvisionedThroughput: { // Only specified if using provisioned mode ReadCapacityUnits: 1, WriteCapacityUnits: 1 } }

La clave principal de esta tabla consta de Artist (clave de partición) y SongTitle (clave de ordenación).

Debe proporcionar los siguientes parámetros a CreateTable:

  • TableName: nombre de la tabla.

  • KeySchema: atributos que se utilizan para la clave principal. Para obtener más información, consulte Tablas, elementos y atributos y Clave principal.

  • AttributeDefinitions: tipos de datos de los atributos del esquema de claves.

  • ProvisionedThroughput (for provisioned tables): número de lecturas y escrituras por segundo que se requieren para esta tabla. DynamoDB reserva recursos de almacenamiento y del sistema suficientes para cumplir en todo momento los requisitos de rendimiento. Puede usar la operación UpdateTable para cambiar estos valores más adelante si fuera preciso. No es necesario especificar los requisitos de almacenamiento de una tabla, porque DynamoDB se encarga de administrar todas las asignaciones del almacenamiento.