

































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Este documento proporciona una introducción a los conceptos básicos de las bases de datos y MySQL, incluyendo la definición de entidad, atributo, relación y tipo de datos, así como una descripción de qué es una base de datos y qué es MySQL. También se explica el concepto de base de datos relacional y el lenguaje SQL.
Tipo: Resúmenes
1 / 41
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!


































MySQL. Contenidos Generales: Qué es una Base de datos. BD Relacionales y No relacionales. Concepto de entidad, atributo, relación y tipo de datos. Primary key y Foreign key. Instalación MySQL. Entorno MySQL / PhpMyAdmin / Workbench. Acceso a servidor de BD. Crear, eliminar y seleccionar una base de datos. Estructura de una consulta SQL y Cláusula SELECT. Alias y literales, columnas calculadas. Cláusula FROM y WHERE. INSERT, UPDATE, DELETE. JOIN. JOIN: Left, Right. Funciones de agregación, Group By, Having.
¿Qué es MySQL? MySQL, el sistema de administración de bases de datos SQL de código abierto más popular, está desarrollado, distribuido y respaldado por Oracle Corporation. MySQL es un sistema de gestión de bases de datos. Una base de datos es una colección estructurada de datos. Puede ser cualquier cosa, desde una simple lista de compras hasta una galería de imágenes o la gran cantidad de información en una red corporativa. Para agregar, acceder y procesar datos almacenados en una base de datos informática, se necesita un sistema de administración de bases de datos como MySQL Server. Dado que las computadoras son muy buenas para manejar grandes cantidades de datos, los sistemas de administración de bases de datos juegan un papel central en los sistemas actuales, como utilidades independientes o como parte de otras aplicaciones. Las bases de datos MySQL son relacionales. Una base de datos relacional almacena datos en tablas separadas en lugar de poner todos los datos en un gran archivo. Las estructuras de la base de datos están organizadas en archivos físicos optimizados para la velocidad. El modelo lógico, con objetos como bases de datos, tablas, vistas, filas y columnas, ofrece un entorno de programación flexible. Esto configura reglas que gobiernan las relaciones entre diferentes campos de datos, como uno a uno, uno a muchos, único, obligatorio u opcional, y " punteros " entre diferentes tablas. La base de datos hace cumplir estas reglas, de modo que con una base de datos bien diseñada, tu aplicación nunca ve datos inconsistentes, duplicados, huérfanos, desactualizados o faltantes. Las letras SQL de " MySQL " significan " Lenguaje de consulta estructurado ". SQL es el lenguaje estandarizado más común utilizado para acceder a bases de datos. Dependiendo de tu entorno de programación, podés ingresar SQL directamente (por ejemplo, para generar informes), incrustar declaraciones SQL en código escrito en otro idioma o usar una API específica del idioma que oculta la sintaxis SQL. SQL está definido por el estándar ANSI / ISO SQL. El estándar SQL ha evolucionado desde 1986 y existen varias versiones. Por ejemplo, “ SQL-92 ” se refiere al estándar publicado en 1992, “ SQL: 1999 ” se refiere al estándar publicado en 1999 y “ SQL: 2003 ” se refiere a la versión actual del estándar. Usamos la frase " el estándar SQL " para referirnos a la versión actual del estándar SQL en cualquier momento. El software MySQL es de código abierto.
Como su propio nombre indica, las bases de datos no relacionales son las que, a diferencia de las relacionales, no tienen un identificador que sirva de relación entre un conjunto de datos y otros. La información se organiza normalmente mediante documentos y es muy útil cuando no tenemos un esquema exacto de lo que se va a almacenar. La indiscutible reina del reciente éxito de las bases de datos no relacionales es MongoDB seguida por Redis, Elasticsearch y Cassandra.
La información puede organizarse en tablas o en documentos. Cuando organizamos información en un Excel, lo hacemos en formato tabla y, cuando los médicos hacen fichas a sus pacientes, están guardando la información en documentos. Lo habitual es que las bases de datos basadas en tablas sean bases de datos relacionales y las basadas en documentos sean no relacionales, pero esto no tiene que ser siempre así. En realidad, una tabla puede transformarse en documentos, cada uno formado por cada fila de la tabla. Solo es una cuestión de visualización.
Los dos esquemas de la imagen contienen exactamente la misma información. Lo único que cambia aquí es el formato: cada documento de la figura de la derecha es una fila de la figura de la izquierda. Se ve más claro en la tabla, ¿verdad? Lo que pasa es que a menudo en una base de datos no relacional una unidad de datos puede llegar a ser demasiado compleja como para plasmarlo en una tabla. Por ejemplo, en el documento JSON de la imagen que se muestra a continuación, al tener elementos jerárquicos, es más difícil plasmarlo en una tabla plana. Una solución sería plasmarlo en varias tablas y, por tanto, necesitar de relaciones. Esto explica por qué las bases de datos relacionales suelen servirse de tablas y las no relacionales de documentos JSON. En cualquier caso, a día de hoy, las bases de datos más competitivas suelen permitir, de una forma u otra, operaciones de los dos tipos. Por ejemplo, el servicio de base de datos en la nube BigQuery que ofrece Google es, en principio, una base de datos de lenguaje de consulta SQL, por lo que permite fácilmente relacionar varias tablas, pero, a su vez, permite insertar elementos jerárquicos JSON, más propios de bases de datos no relacionales.
La diferencia entre el éxito y el fracaso recae, sobre todo, en el diseño del modelo. Es decir, si se decide que el mejor enfoque es usar una base de datos relacional, no es suficiente con meter la información a lo bruto en una base de datos relacional y
Se define una entidad (o instancia) como una unidad de una base de datos que contiene información. Esta unidad es una representación dentro de la base de datos de un objeto, persona, empresa... etc, del mundo real, y como tal posee ciertos atributos que la diferencian del resto de entidades. Así por ejemplo, en una base de datos de una oficina, una entidad podría ser el material de oficina, otra los empleados, otra los clientes, incluso el ambiente laboral, la empatía y cosas más abstractas. Cada una de estas entidades tendría ciertos atributos propios. Así, los empleados tendrían atributos como nombre, edad, estatura... las computadoras otros como un nro de serie, procesador, año de compra... y así para cada una de ellas. En una base de datos compleja pueden existir entidades relacionadas entre sí por diversos parámetros o atributos, de tal modo que la existencia de una puede ir ligada a la existencia de otra. Así, las entidades pueden ser fuertes (existen por sí mismas) o débiles (su existencia depende de que exista otra entidad). Las relaciones entre entidades suelen describirse en el esquema de la estructura de la base de datos e incluso pueden agruparse entre sí para formar conjuntos de entidades, también llamados clases. El Modelo Entidad-Relación es de hecho uno de los más importantes a la hora de diseñar e implementar una base de datos con éxito. Mediante este modelo se relacionan una o varias entidades por sus atributos, que pueden ser comunes o no a varias de ellas.
1 a N (uno a muchos) Por ejemplo: una persona puede tener muchos autos y viceversa, muchos autos pueden ser de una persona. 1 a 1 (uno a uno) Por ejemplo: a un alumno le pertenece únicamente una libreta y viceversa, una libreta pertenece únicamente a un alumno. N a N (muchos a muchos) Por ejemplo: muchos alumnos pueden tener muchas materias y viceversa, muchas materias pueden contener a muchos alumnos.
Todos los programas cliente de MySQL comprenden estas opciones; te permiten especificar a qué servidor conectarse y la cuenta a utilizar en ese servidor. Otras opciones de conexión son: --port(o - P) especificar un número de puerto TCP / IP y --socket(o-S) para especificar un archivo de socket Unix en Unix (o un nombre de canalización con nombre en Windows). Puede resultar necesario invocar programas MySQL utilizando el nombre de la ruta al directorio bin en el que están instalados. Es probable que este sea el caso si obtiene un error de " programa no encontrado " cada vez que intenta ejecutar un programa MySQL desde cualquier directorio que no sea el directorio bin. Para que sea más conveniente usar MySQL, puede agregar el nombre de la ruta del directorio bin a la PATH configuración de la variable de entorno. Eso le permite ejecutar un programa escribiendo solo su nombre, no su ruta completa. Por ejemplo, si mysql está instalado c:\Archivos\mysql\bin, podés ejecutar el programa invocándolo como mysql, y no es necesario invocarlo como /c:\Archivos\mysql\bin. Consultá en la web la documentación de los comandos que utiliza tu sistema operativo para obtener instrucciones sobre cómo configurar tu variable PATH. Después de modificar su configuración PATH, abrí una nueva ventana de consola en Windows (CMD) o iniciá sesión nuevamente en Unix para que la configuración entre en vigor.
Las opciones del programa especificadas en la línea de comando siguen estas reglas: ● Las opciones se dan después del nombre del comando. ● Un argumento de opción comienza con un guión o dos guiones, dependiendo de si es una forma corta o larga del nombre de la opción. Muchas opciones tienen formas cortas y largas. Por ejemplo, -? y --help son las formas cortas y largas de la opción que le indica a un programa MySQL que muestre su mensaje de ayuda. ● Los nombres de las opciones distinguen entre mayúsculas y minúsculas. - v y - V son legales y tienen diferentes significados. (Son las formas breves correspondientes de las opciones --verbose y --version). ● Algunas opciones toman un valor después del nombre de la opción. Por ejemplo, - h localhost o --host=localhost indican el host del servidor MySQL a un programa cliente. El valor de la opción le dice al programa el nombre del host donde se ejecuta el servidor MySQL. ● Para una opción larga que toma un valor, separá el nombre de la opción y el valor con un signo =. Para una opción corta que toma un valor, el valor de la opción puede seguir inmediatamente a la letra de la opción, o puede haber un espacio entre: - hlocalhost y - h localhost son equivalentes. Una excepción a esta regla es la opción para especificar tu contraseña de MySQL. Esta opción se puede dar en forma larga como o como. En el último caso (sin ningún valor de contraseña dado), el programa le solicita interactivamente la contraseña. La opción de contraseña también se puede dar en forma abreviada como --password=pass_val o como --p pass_val. Sin embargo, para la forma abreviada, si se proporciona el valor de la contraseña, debe seguir la letra de la opción sin espacios intermedios : si un espacio sigue a la letra de la opción, el programa no tiene forma de saber si se supone que el siguiente argumento es la contraseña valor o algún otro tipo de argumento. En consecuencia, los dos comandos siguientes tienen dos significados completamente diferentes: mysql - ptest mysql - p test El primer comando le indica a mysql que use un valor de contraseña de test, pero no especifica una base de datos predeterminada. El segundo indica a mysql que solicite el valor de la contraseña y que la utilice test como base de datos predeterminada.
shell> Nota: La forma larga ( --execute) va seguida de un signo igual ( =). Para usar valores entre comillas dentro de una declaración, debe escapar de las comillas internas o usar un tipo de comillas diferente dentro de la declaración de las que se usan para citar la declaración en sí. Las capacidades de su procesador de comandos dictan sus opciones sobre si puede usar comillas simples o dobles y la sintaxis para escapar de los caracteres de comillas. Por ejemplo, si su procesador de comandos admite comillas con comillas simples o dobles, puede utilizar comillas dobles alrededor de la declaración y comillas simples para cualquier valor entre comillas dentro de la declaración. Por ej: “ ’ Hola Mundo ‘ “
mysqld es un archivo ejecutable (un programa). mysqld, también conocido como MySQL Server, es un único programa multiproceso que hace la mayor parte del trabajo en una instalación de MySQL. No genera procesos adicionales. MySQL Server administra el acceso al directorio de datos MySQL que contiene bases de datos y tablas. El directorio de datos también es la ubicación predeterminada para otra información, como archivos de registro y archivos de estado. Cuando se inicia el servidor MySQL, escucha las conexiones de red de los programas cliente y administra el acceso a las bases de datos en nombre de esos clientes. El programa mysqld tiene muchas opciones que se pueden especificar al inicio. MySQL Server también tiene un conjunto de variables del sistema que afectan su funcionamiento mientras se ejecuta. Las variables del sistema se pueden configurar al iniciar el servidor y muchas de ellas se pueden cambiar en tiempo de ejecución para efectuar la reconfiguración dinámica del servidor. MySQL Server también tiene un conjunto de variables de estado que brindan información sobre su funcionamiento. Podés supervisar estas variables de estado para acceder a las características de rendimiento en tiempo de ejecución. Configuración del servidor El servidor MySQL, mysqld , tiene muchas opciones de comando y variables del sistema que se pueden configurar al inicio para configurar su funcionamiento. Para determinar la opción de comando predeterminada y los valores de las variables del sistema que utiliza el servidor, ejecutá este comando: c:> mysqld --verbose --help El comando produce una lista de todas las opciones de mysqld y variables de sistema configurables. Su salida incluye la opción predeterminada y los valores de las variables y se parece a esto: abort-slave-event-count 0 allow-suspicious-udfs FALSE archive ON auto-increment-increment 1 auto-increment-offset 1 autocommit TRUE automatic-sp-privileges TRUE avoid-temporal-upgrade FALSE
El servidor MySQL, mysqld , tiene muchas opciones de comando y variables del sistema que se pueden configurar al inicio para configurar su funcionamiento. Para determinar la opción de comando predeterminada y los valores de las variables del sistema que utiliza el servidor, ejecutá este comando: c:> mysqld --verbose --help El comando produce una lista de todas las opciones de mysqld y variables de sistema configurables. Su salida incluye la opción predeterminada y los valores de las variables y se parece a esto: abort-slave-event-count 0 allow-suspicious-udfs FALSE archive ON auto-increment-increment 1 auto-increment-offset 1 autocommit TRUE automatic-sp-privileges TRUE avoid-temporal-upgrade FALSE back-log 80 basedir /home/jon/bin/mysql-8.0/ tmpdir /tmp transaction-alloc-block-size 8192 transaction-isolation REPEATABLE-READ transaction-prealloc-size 4096 transaction-read-only FALSE transaction-write-set-extraction OFF updatable-views-with-limit YES validate-user-plugins TRUE verbose TRUE wait-timeout 28800 Para ver los valores actuales de las variables del sistema que realmente utiliza el servidor mientras se ejecuta, conectate y ejecutá esta declaración: mysql> SHOW VARIABLES; Para ver algunos indicadores estadísticos y de estado de un servidor en ejecución, ejecutá esta declaración:
mysql> SHOW STATUS; La variable del sistema y la información de estado también están disponibles usando el comando mysqladmin : shell> mysqladmin variables shell> mysqladmin extended-status