Volver a la lista de artículos Artículos
Lectura de 14 minutos

Preguntas habituales en las entrevistas a desarrolladores de SQL para principiantes

¿Te han entrevistado alguna vez para un puesto de trabajo de nivel inicial en SQL? ¿Estás pensando en solicitar un puesto de este tipo? Este artículo te ayudará a saber qué esperar y a prepararte para las preguntas habituales de las entrevistas de desarrollador de SQL.

Después de adquirir algunos conocimientos básicos de SQL y programación, probablemente te estés preguntando qué hacer a continuación. O quizás no te lo estés preguntando. Sabes que lo que has aprendido desaparecerá pronto si no lo utilizas con regularidad. Y la mejor manera de mantener tus conocimientos y, por supuesto, de aprender aún más, es empezar a trabajar como desarrollador de SQL. Pero no sabes qué preguntas esperar en una entrevista. Por lo tanto, dudas a la hora de solicitar un puesto de trabajo. Sin embargo, saber lo que te van a preguntar no te ayudará mucho, ¿verdad? Lo que necesitas son las respuestas. Así que te proporcionaré las preguntas de la entrevista para desarrolladores de SQL de nivel básico y, lo que es más importante, las respuestas a esas preguntas.

¡Vayamos a las preguntas y respuestas!

Pregunta 1: ¿Qué es un modelo de datos relacional? Explique otros modelos de datos lógicos

Modelo de datos relacional

El modelo de datos relacional es el modelo de datos más utilizado. Fue introducido en 1969 por Edgar F. Codd. Un modelo de datos relacional se basa en el concepto matemático de relación. El objetivo de las relaciones es evitar la redundancia de datos, garantizar la integridad de los mismos y acelerar su recuperación.

En el contexto de la base de datos, un modelo de datos relacional ve la base de datos como una colección de relaciones, en la que una relación es simplemente una tabla. La tabla, por supuesto, contiene valores. Los tres elementos principales de una tabla son las columnas, las filas y los valores.

Las columnas también se denominan atributos, lo que significa que representan ciertas propiedades para las que se almacenan los datos. Es importante tener en cuenta que las columnas son únicas, es decir, no se permiten columnas con el mismo nombre en una tabla.

Cada fila es una única ocurrencia de los atributos. Las filas también se denominan registros.

Los valores se encuentran en las intersecciones de las columnas y las filas.

Modelo de red

Otro modelo común es el modelo de red. Fue inventado por Charles Bachman en 1969 para mejorar el modelo de datos jerárquico. Un modelo de red se representa mediante un gráfico que muestra los tipos de objetos como nodos y los tipos de relación como arcos.

Modelo de datos jerárquico

Este modelo es similar al modelo de red, salvo que se representa mediante una estructura en forma de árbol en lugar de un gráfico. Al igual que el modelo de red, los tipos de objetos se representan mediante nodos, pero los tipos de relación se representan mediante el vínculo "propietarios-miembros" entre los datos.

Base de datos relacional-objeto

Este modelo es similar al modelo de datos relacional, y su creación se inspiró en los lenguajes de programación orientados a objetos, como Java, C++, Visual Basic, .Net o C#. Este modelo ve una base de datos como una colección de objetos almacenados que consisten en tipos de datos personalizados y métodos para manejar los datos. Cada objeto pertenece a una clase determinada. Entre cada clase se establecen relaciones de herencia y agregación.

Existen, por supuesto, muchos otros modelos de datos, como el modelo de documentos, el esquema en estrella, el modelo correlacional, la base de datos XML, etc. Pero no es necesario conocerlos todos. El modelo de datos relacional es el más utilizado. Y si has solicitado un puesto de desarrollador de SQL, probablemente trabajarás con una base de datos relacional. Ser capaz de explicar estos cuatro modelos de datos debería ser suficiente para una entrevista de desarrollador de SQL.

Pregunta 2: ¿Qué es un RDBMS?

SGBD significa "Sistema de Gestión de Bases de Datos". Es un software que se interpone entre el usuario de la base de datos y la propia base de datos. El SGBD opera con los datos según las instrucciones dadas por el usuario de la base de datos. Permite introducir, almacenar y recuperar los datos. Siguiendo esa lógica, RDBMS es un Sistema de Gestión de Bases de Datos Relacionales, un SGBD creado específicamente para manejar bases de datos relacionales. Según la lógica de la base de datos relacional, los RDBMS almacenan los datos en tablas que constan de columnas y filas. Los RDBMS más populares son Microsoft SQL Server, Oracle Database, MySQL e IBM DB2.

Pregunta 3: ¿Qué es el diagrama ER y cuáles son sus componentes?

Como alguien que aspira a tener un buen desempeño en una entrevista de programador de SQL, especialmente en una de nivel básico, debe saber algo sobre el diagrama ER. Un diagrama ER es un diagrama de relación de entidad, y muestra las relaciones entre entidades en una base de datos. Es una de las herramientas importantes que se utilizan al diseñar una base de datos. Hay tres componentes en cada diagrama ER:

  • Entidad
  • Relación
  • Atributo

Entidad

La entidad se define a grandes rasgos como cualquier cosa sobre la que podamos recoger datos. Es un objeto o concepto en el proceso de negocio para el que se quieren almacenar datos. Por ejemplo, una empresa tiene empleados, estos empleados tienen números de identificación personal (PIN) únicos, trabajan en ciertos departamentos y producen ciertos productos. Esto es un proceso de negocio, y en este ejemplo, los empleados, los departamentos y los productos son entidades. Una entidad se compone de atributos. Varias entidades pueden representar conjuntos de entidades. Un conjunto de entidades es cualquier número de entidades que pueden considerarse similares según ciertas propiedades.

Relación

Las relaciones muestran cómo una entidad está conectada o asociada con otra entidad u otras entidades. En el ejemplo anterior, los empleados y los PIN son entidades. Un empleado sólo puede tener un PIN. Asimismo, un PIN sólo puede asignarse a un empleado: un PIN es único. Esto se llama una relación de uno a uno. Este tipo de relaciones son bastante raras en las bases de datos. Si un PIN puede asignarse a un solo empleado y viceversa, no hay necesidad de tener el PIN como una entidad separada. Puede ser el atributo de la entidad de los empleados. Otro ejemplo son las entidades empleados y departamentos. La relación entre ellas es que un empleado sólo puede trabajar en un departamento. Sin embargo, en un departamento puede haber uno o más empleados. Esto se llama una relación de uno a muchos. La relación entre los empleados y los productos es tal que un empleado puede producir más de un producto. Además, un producto puede ser fabricado por más de un empleado. Esta relación se denomina de muchos a muchos.

Atributo

Un atributo representa la propiedad de una entidad o relación que puede tener un valor determinado asignado. Un conjunto de atributos describe una entidad o relación. Por ejemplo, si los empleados son una entidad, los atributos pueden ser el nombre, el apellido, la fecha de nacimiento, etc. Los atributos de los departamentos como entidad pueden ser el nombre del departamento, el jefe del departamento, el número de empleados, etc. Los productos como entidad pueden describirse con los siguientes atributos: ID, nombre del producto, color del producto, precio del producto, etc.

Pregunta 4: ¿Qué es la normalización de la base de datos? Explique las formas normales

La normalización es el proceso de organización de los datos en una base de datos relacional que se utiliza para reducir la redundancia de los datos y aumentar su integridad. El objetivo es crear una base de datos eficiente, fiable y flexible. La normalización se lleva a cabo siguiendo unas reglas denominadas formas normales. Una base de datos suele considerarse normalizada cuando cumple los requisitos de la 3NF:

  • Primera forma normal (1NF)
  • Segunda forma normal (2NF)
  • Tercera forma normal (3NF)

Primera forma normal (1NF)

Requiere que los atributos (columnas de la tabla) sólo contengan valores atómicos y únicos. Dicho esto, el propósito de la 1NF es garantizar que no haya ningún conjunto de datos que se muestre como un único valor.

Segunda forma normal (2NF)

Para que una base de datos esté en 2NF, tiene que estar en 1NF. También tiene que garantizar que todos los atributos dependen sólo de la clave primaria de una tabla. La clave primaria es un atributo o un conjunto de atributos que define de forma exclusiva cada fila de una tabla. Es decir, una clave primaria sólo puede asignarse a una fila de una tabla.

Tercera forma normal (3NF)

La 3NF requiere que una base de datos esté en 1NF y 2NF, por supuesto. Además, no se permiten dependencias transitivas, lo que significa que todos los atributos que no sean una clave primaria tienen que ser mutuamente independientes. No se permite que un atributo dependa de otro atributo, que depende de una clave primaria.

Aunque también existe la forma normal de Boyce-Codd, la cuarta forma normal, la quinta forma normal y algunas otras formas adicionales, conocer las tres primeras formas normales debería ser suficiente para una entrevista de nivel básico de SQL.

Pregunta 5: ¿Qué son las restricciones de atributos?

Una restricción de atributos es una regla que limita el tipo de datos que se pueden introducir como un atributo específico. Se utiliza para garantizar la integridad de la base de datos. Las cinco restricciones de atributos más comunes son

  • NOT NULL - se utilizan para garantizar que el atributo no puede tener un valor NULL
  • CHECK - se utilizan cuando el valor del atributo debe cumplir una determinada condición
  • UNIQUE - se utilizan cuando un determinado valor de atributo sólo puede introducirse una vez
  • PRIMARY KEY - se utilizan para designar un atributo como clave primaria, que tiene que ser ÚNICA y NOT NULL
  • FOREIGN KEY - se utiliza para mostrar la relación entre las tablas, es decir, el valor del atributo en una tabla se recupera del atributo de otra tabla

Pregunta 6: ¿Cuáles son los sublenguajes de SQL y las palabras clave principales?

SQL puede dividirse en tres grupos o sublenguajes:

  • Lenguaje de definición de datos (DDL)
  • Lenguaje de Control de Datos (DCL)
  • Lenguaje de Manipulación de Datos (DML)

Lenguaje de Definición de Datos (DDL)

Este sublenguaje se utiliza para crear, eliminar o modificar un determinado objeto de la base de datos. Las tres palabras clave principales son

  • CREATE - crea un objeto (por ejemplo, una tabla) en una base de datos
  • DROP - elimina un objeto en una base de datos
  • ALTER - modifica un objeto ya existente en una base de datos

Lenguaje de control de datos (DCL)

El DCL se utiliza para autorizar, crear roles y controlar el acceso a determinados datos en una base de datos. Las dos palabras clave principales son

  • GRANT - permite a un determinado usuario de la base de datos utilizar una base de datos o determinados objetos de la misma
  • REVOKE - revoca o disminuye el permiso otorgado a un determinado usuario de la base de datos

Lenguaje de manipulación de datos (DML)

Este sublenguaje SQL consiste en palabras clave utilizadas para manipular datos, es decir, añadir, modificar o eliminar datos. Las principales palabras clave son

  • SELECT - se utiliza para recuperar datos, y en ocasiones se usa con otras palabras clave, como:
    • FROM - se utilizan para elegir de qué tabla se recuperan los datos
    • WHERE - se utilizan para recuperar datos que contienen un valor específico
    • GROUP BY - se utilizan para agrupar los datos recuperados según un determinado atributo
    • HAVING - se utilizan con GROUP BY para identificar las filas que se van a recuperar
    • ORDER BY - se utiliza para ordenar los datos recuperados por un determinado atributo
  • INSERT - se utiliza para insertar filas en una tabla ya existente
  • UPDATE - se utiliza para cambiar los valores de una fila ya existente
  • MERGE - sirve para fusionar datos de dos o más tablas
  • DELETE - sirve para eliminar filas ya existentes en una tabla
  • TRUNCATE - sirve para eliminar todos los datos de una tabla
  • BEGIN WORK - sirve para marcar el inicio de una transacción
  • COMMIT - sirve para marcar el final de una transacción
  • ROLLBACK - se utiliza para descartar todos los cambios desde la última COMMIT o ROLLBACK

Tenga en cuenta que, según cierta documentación, TRUNCATE es una palabra clave DDL en lugar de una palabra clave DML.

Pregunta 7: Explique la diferencia entre TRUNCATE, DELETE, y DROP

Ahora que conoce la respuesta a la pregunta anterior, esta debería ser fácil. Como ya ha aprendido, TRUNCATE borra todos los datos de la tabla. Si utiliza DELETE, puede eliminar algunas filas (si utiliza la cláusula WHERE), o puede eliminar todas las filas, igual que TRUNCATE. La principal diferencia es que DELETE elimina los datos fila por fila y cada fila eliminada es registrada por RDBMS. Si se trata de eliminar una gran cantidad de datos, el uso de DELETE sería mucho más lento que TRUNCATE, ya que TRUNCATE sólo registra una acción. Además, es bueno saber que TRUNCATE no se puede utilizar si hay una clave externa en una tabla. El uso de TRUNCATE también bloqueará la tabla, por lo que no se aconseja su uso en tablas compartidas.

¿Pero qué hace DROP? Seguramente borra algo, pero ¿qué? La principal diferencia es que TRUNCATE y DELETE se utilizan para borrar datos de una tabla, pero no la tabla en sí. Sin embargo, al utilizar DROP, lo que harás es borrar toda la tabla. Borrar una tabla significa que sus datos desaparecerán, por supuesto. Pero también borrará los índices, desencadenantes, restricciones y especificaciones de permisos.

Pregunta 8: ¿Cuáles son los tipos de uniones en SQL?

Las uniones en SQL se utilizan cuando se intenta utilizar datos de dos o más tablas al mismo tiempo. Para ello, hay que conectar de alguna manera las tablas, lo que se puede hacer utilizando los cinco tipos de join de SQL:

  • Cross join
  • Inner join (unión interna)
  • Unión externa izquierda
  • Unión externa derecha
  • Full outer join (unión externa completa)

Unión cruzada

Este tipo de unión significa que cada fila de una tabla se une a cada fila de otra tabla. Multiplica las filas. Si se trabaja con una gran cantidad de datos, esto no es aconsejable. Este tipo de unión también se llama producto cartesiano. Puedes encontrar más detalles sobre las uniones cruzadas en este artículo.

Unión interna

La unión interna recupera datos en los que los registros de la primera tabla son iguales a los registros de la segunda tabla, basándose en una condición establecida. También hay un artículo que explica el inner join con más detalle y que podría ayudarte a preparar tu entrevista.

Unión exterior izquierda

Cuando se utiliza este tipo de unión, se recuperan todas las filas de la primera tabla (o izquierda) y las filas coincidentes de la segunda tabla (o derecha). Si no hay ninguna fila que coincida en la segunda tabla, obtendrá un valor NULL.

Unión exterior derecha

El principio de uso de esta unión es el mismo que el de la unión externa izquierda. Devolverá todas las filas de la segunda tabla (o derecha) y las filas coincidentes de la primera tabla (o izquierda). Si no hay filas coincidentes en la primera tabla, se obtendrá un valor NULL.

Unión externa completa

Con esta unión se obtienen todas las filas de la primera tabla y todas las filas de la segunda tabla. Si hay filas que no coinciden, tanto de la primera como de la segunda tabla, se mostrarán como un valor NULL. Hay un gran artículo que explica todo lo que necesitas saber sobre las uniones externas, junto con los ejemplos.

¿Te sientes preparado para las preguntas de la entrevista para desarrolladores de SQL?

En este artículo, he cubierto algunas preguntas y respuestas básicas que podrían surgir en una entrevista de nivel de entrada de SQL. Considero que estas preguntas son esenciales para todos los que aspiran a un puesto de trabajo como desarrollador de SQL. Por supuesto, eso no significa que no necesites saber nada más que esas ocho preguntas y respuestas. Esto debe servir sólo como una guía, así que siéntete libre de profundizar en estos temas. También pueden surgir muchas otras preguntas, pero estas ocho deberían darle una idea de lo que puede esperar. Si no estás seguro de entender los conceptos anteriores, practica un poco haciendo algunos cursos. La plataforma LearnSQL.es ofrece cursos prácticos sobre los fundamentos de SQL (en general) y la unión de tablas.

¿Te ha resultado útil este artículo? ¿Te ha animado a ir a por el trabajo que viste anunciado hace unos días? Cuéntame cómo te fue y si te hicieron algunas de estas preguntas. ¿O quizás ya has ido a varias entrevistas de trabajo? ¿Qué te han preguntado? ¿Te parecieron insuficientes o demasiado detalladas algunas de las respuestas anteriores? Házmelo saber en la sección de comentarios. Me encantaría conocer tu experiencia.