diff --git a/translations/es/novice/sql/01-select.md b/translations/es/novice/sql/01-select.md index c14458166..b9a2e3acb 100644 --- a/translations/es/novice/sql/01-select.md +++ b/translations/es/novice/sql/01-select.md @@ -3,35 +3,35 @@ layout: lesson root: ../.. --- -## Selecting Data +## Seleccionando Datos
-

In the late 1920s and early 1930s, William Dyer, Frank Pabodie, and Valentina Roerich led expeditions to the Pole of Inaccessibility in the South Pacific, and then onward to Antarctica. Two years ago, their expeditions were found in a storage locker at Miskatonic University. We have scanned and OCR'd the data they contain, and we now want to store that information in a way that will make search and analysis easy.

-

We basically have three options: text files, a spreadsheet, or a database. Text files are easiest to create, and work well with version control, but then we would then have to build search and analysis tools ourselves. Spreadsheets are good for doing simple analysis, they don't handle large or complex data sets very well. We would therefore like to put this data in a database, and these lessons will show how to do that.

+

Durante finales de la década de 1920 e inicios de la década de 1930, William Dyer, Frank Pabodie, y Valentina Roerich lideraron expediciones hacia el Polo de Inaccesibilidad en el Pacífico Sur, y luego hacia la Antártica. Hace dos años, sus expediciones fueron halladas en un casillero en la Universidad de Miskatonic. Hemos escaneado la información que contienen, y le hicimos un reconocimiento óptico de caracteres (OCR), y ahora queremos almacenar dicha información de una manera que facilite su búsqueda y análisis.

+

Básicamente tenemos tres opciones: archivos de texto, una hoja de cálculo, o una *database* (base de datos). Los archivos de texto son los más fáciles de crear, y funcionan bien con sistemas de control de versiones, pero entonces nosotros mismos tendríamos que desarrollar herramientas de búsqueda y análisis. Las hojas de cálculo son útiles para realizar análisis simples, aunque no manejan muy bien conjuntos de datos que sean grandes y complejos. Por lo tanto, nos gustaría colocar toda esta información en una base de datos, y estas lecciones mostrarán cómo hacer eso.

-

Objectives

+

Objetivos

-### A Few Definitions +### Algunas Definiciones
-

A relational database is a way to store and manipulate information that is arranged as tables. Each table has columns (also known as fields) which describe the data, and rows (also known as records) which contain the data.

-

When we are using a spreadsheet, we put formulas into cells to calculate new values based on old ones. When we are using a database, we send commands (usually called queries) to a database manager: a program that manipulates the database for us. The database manager does whatever lookups and calculations the query specifies, returning the results in a tabular form that we can then use as a starting point for further queries.

+

Una *relational database* es una forma de almacenar y manipular información organizada en *tables* (tablas). Cada tabla tiene columnas (también conocidas como *fields*(campos)) las cuales describen los datos, y filas (también conocidas como *records*) las cuales contienen los datos.

+

Cuando utilizamos una hoja de cálculo, introducimos fórmulas en las celdas para calcular nuevos valores en base a los valores ya conocidos. Cuando utilizamos una base de datos, enviamos comandos (usualmente llamados *queries*(consultas)) a un *database manager* (gestor de bases de datos): un programa que manipula la base de datos por nosotros. El gestor de bases de datos realiza todas las búsquedas y cálculos especificados en la *query*, devolviendo los resultados organizados en una tabla que luego podremos utilizar como punto de partida para *queries* posteriores.

-

Every database manager—Oracle, IBM DB2, PostgreSQL, MySQL, Microsoft Access, and SQLite—stores data in a different way, so a database created with one cannot be used directly by another. However, every database manager can import and export data in a variety of formats, so it is possible to move information from one to another.

+

Cada gestor de bases de datos—Oracle, IBM DB2, PostgreSQL, MySQL, Microsoft Access, and SQLite—almacena datos de modo diferente, asi que una base de datos creada con alguno de ellos no puede ser utlizada directamente por otro. Sin embargo, cada gestor de bases de datos puede importar y exportar datos en una variedad de formatos, por lo tanto es posible mover información de uno a otro.

-

Queries are written in a language called SQL, which stands for "Structured Query Language". SQL provides hundreds of different ways to analyze and recombine data; we will only look at a handful, but that handful accounts for most of what scientists do.

-

The tables below show the database we will use in our examples:

+

Las *queries* son escritas en un lenguaje llamado SQL, cuyas siglas en inglés representan "*Structured Query Language*". SQL proporciona cientos de diferentes formas de analizar y recombinar datos; sólo prestaremos atención a unos pocos, pero que son válidos para la mayor parte del trabajo que los científicos realizan.

+

Las siguientes tablas muestran la base de datos que utilizaremos en nuestros ejemplos:

@@ -39,7 +39,7 @@ root: ../..
-

Person: people who took readings.

+

Person: las personas que tomaron mediciones.

ident @@ -85,7 +85,7 @@ Danforth
-

Site: locations where readings were taken.

+

Site: ubicaciones geográficas dónde se tomaron las mediciones.

name @@ -117,7 +117,7 @@ MSK-4
-

Visited: when readings were taken at specific sites.

+

Visited: las fechas en que se tomaron las mediciones.

ident @@ -185,7 +185,7 @@ DR-1
-

Survey: the actual readings.

+

Survey: las mediciones tomadas.

taken @@ -394,19 +394,21 @@ rad
-

Notice that three entries—one in the Visited table, and two in the Survey table—are shown in red because they don't contain any actual data: we'll return to these missing values later. For now, let's write an SQL query that displays scientists' names. We do this using the SQL command select, giving it the names of the columns we want and the table we want them from. Our query and its output look like this:

+

Nótese que tres entradas—una en la tabla Visited, y dos en la tabla Survey—se muestran en rojo ya que no contienen ningún dato: volveremos a estos valores faltantes luego. Por ahora, escribamos una *query* SQL que muestre los nombres de los científicos. Para esto, utilizamos el comando SQL select, proporcionando los nombres de las columnas que deseamos y la tabla de la cual deseamos que provengan. Nuestra *query* y su resultado se ven así:

%load_ext sqlitemagic
+`'sqlitemagic' es una extensión de iPython que permite ejecutar queries SQL y mostrar su resultado en tablas.`
%%sqlite survey.db
 select family, personal from Person;
+`los nombres de las columnas "family" y "personal" son, respectivamente, abreviaturas de "family name" (apellido) y "personal name" (nombre propio).`

@@ -420,7 +422,7 @@ select family, personal from Person;
-

The semi-colon at the end of the query tells the database manager that the query is complete and ready to run. We have written our commands and column names in lower case, and the table name in Title Case, but we don't have to: as the example below shows, SQL is case insensitive.

+

El símbolo punto y coma al final de la *query* le indica al gestor de bases de datos que la consulta está completada y lista para ser ejecutada. Hemos escrito nuestros comandos y el nombre de columna en letra minúscula, y el nombre de la tabla con la primera letra en mayúscula, pero no estamos obligados a hacerlo: como se muestra en el siguiente ejemplo, SQL es *case insensitive* (insensible a mayúsculas y minúsculas).

@@ -441,12 +443,12 @@ SeLeCt FaMiLy, PeRsOnAl FrOm PeRsOn;
-

Whatever casing convention you choose, please be consistent: complex queries are hard enough to read without the extra cognitive load of random capitalization.

+

Cualquiera que sea la distribución de mayúsculas y minúsculas que utilices, por favor se consistente: las *queries* complejas son suficientemente difíciles de leer sin la carga cognitiva adicional causada por un uso aleatorio de las mayúsculas y minúsculas.

-

Going back to our query, it's important to understand that the rows and columns in a database table aren't actually stored in any particular order. They will always be displayed in some order, but we can control that in various ways. For example, we could swap the columns in the output by writing our query as:

+

Volviendo a nuestra *query*, es importante entender que las filas y columnas en una base de datos, en realidad, no están almacenadas en ningún orden particular. Ellas siempre serán displayed en algún orden, pero podemos controlar eso de varias maneras. Por ejemplo, podríamos intercambiar las columnas en el resultado escribiendo nuestra *query* así:

@@ -467,7 +469,7 @@ select personal, family from Person;
-

or even repeat columns:

+

o también repetir columnas:

@@ -475,6 +477,9 @@ select personal, family from Person;
%%sqlite survey.db
 select ident, ident, ident from Person;
+`select (seleccionar): Comando SQL utilizado para indicar los campos de la tabla cuyos datos deseamos extraer` +`from (de, desde): Palabra reservada SQL utilizada para hacer referencia a la tabla de la cual deseamos extraer` +`el nombre de la columna "ident" es la abreviatura de "identification" (identificación)`
@@ -488,7 +493,7 @@ select ident, ident, ident from Person;
-

As a shortcut, we can select all of the columns in a table using *:

+

Y como atajo, podemos seleccionar todas las columnas en una tabla utilizando *:

@@ -509,24 +514,24 @@ select * from Person;
-

Challenges

+

Desafíos

    -
  1. Write a query that selects only site names from the Site table.

  2. -
  3. Many people format queries as:

    +
  4. Escribe una *query* que seleccione solamente los nombres de sitio de la tabla Site.

  5. +
  6. Muchas presonas escriben sus *queries* con el siguiente formato:

    SELECT personal, family FROM person;
    -

    or as:

    +

    o así:

    select Personal, Family from PERSON;
    -

    What style do you find easiest to read, and why?

  7. +

    ¿Cuál de estos estilos te parece más fácil de leer, y por qué?

-

Key Points

+

Aspectos Clave

    -
  • A relational database stores information in tables, each of which has a fixed set of columns and a variable number of records.
  • -
  • A database manager is a program that manipulates information stored in a database.
  • -
  • We write queries in a specialized language called SQL to extract information from databases.
  • -
  • SQL is case-insensitive.
  • +
  • Una base de datos relacional almacena información en tablas, cada una de las cuales tiene un número fijo de columnas y un número variable de registros.
  • +
  • Un gestor de bases de datos es un programa que manipula información almacenada en una base de datos.
  • +
  • Escribimos *queries* en un lenguaje especializado llamado SQL para extraer información de bases de datos.
  • +
  • SQL es insensible a mayúsculas y minúsculas.