{"id":8908,"date":"2022-05-24T13:51:38","date_gmt":"2022-05-24T19:51:38","guid":{"rendered":"https:\/\/ugit.siua.ac.cr\/?p=8908"},"modified":"2022-05-26T09:57:01","modified_gmt":"2022-05-26T15:57:01","slug":"azure-dp-900-t02-m01-exploracion-de-conceptos-fundamentales-de-datos-relacionales","status":"publish","type":"post","link":"https:\/\/sada.services\/?p=8908","title":{"rendered":"Azure DP-900: T02\/M01: Exploraci\u00f3n de conceptos fundamentales de datos relacionales"},"content":{"rendered":"\n<p><a href=\"https:\/\/docs.microsoft.com\/es-mx\/learn\/modules\/explore-relational-data-offerings\/1-introduction\">https:\/\/docs.microsoft.com\/es-mx\/learn\/modules\/explore-relational-data-offerings\/1-introduction<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Unidad 1: Introducci\u00f3n<\/h2>\n\n\n\n<p>Cuando se empezaron a usar los sistemas inform\u00e1ticos, cada aplicaci\u00f3n almacenaba los datos en su propia estructura, que era \u00fanica. Cuando los desarrolladores quer\u00edan crear aplicaciones para usar esos datos, necesitaban mucha informaci\u00f3n sobre la estructura de datos en particular para encontrar los que necesitaban. Estas estructuras de datos eran ineficaces, costosas de mantener y dif\u00edciles de optimizar para que la aplicaci\u00f3n tuviera un buen rendimiento. El modelo de base de datos&nbsp;<em>relacional<\/em>&nbsp;se dise\u00f1\u00f3 para resolver el problema de tener varias estructuras de datos arbitrarias. El modelo relacional proporciona una forma est\u00e1ndar de representar y consultar datos que cualquier aplicaci\u00f3n puede usar. Una de las principales ventajas del modelo de base de datos relacional es el uso de&nbsp;<em>tablas<\/em>, que son una manera intuitiva, eficaz y flexible de almacenar informaci\u00f3n estructurada y acceder a ella.<\/p>\n\n\n\n<p>El modelo relacional, sencillo pero eficaz, se usa en organizaciones de todo tipo y tama\u00f1o para satisfacer diferentes necesidades de administraci\u00f3n de la informaci\u00f3n. Las bases de datos relacionales se utilizan para realizar un seguimiento de los inventarios, procesar transacciones de comercio electr\u00f3nico, administrar grandes cantidades de informaci\u00f3n de clientes cr\u00edticos y mucho m\u00e1s. Las bases de datos relacionales son \u00fatiles para almacenar cualquier informaci\u00f3n que contenga elementos de datos relacionados que se deban organizar en una estructura coherente y basada en reglas.<\/p>\n\n\n\n<p>En este m\u00f3dulo, obtendr\u00e1 informaci\u00f3n sobre las caracter\u00edsticas clave de las bases de datos relacionales y explorar\u00e1 las estructuras de datos relacionales.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Unidad 2: Informaci\u00f3n sobre los datos relacionales<\/h2>\n\n\n\n<p>En una base de datos relacional, las colecciones de entidades del mundo real se modelan en forma de&nbsp;<em>tablas<\/em>. Una entidad puede ser cualquier elemento para el que quiera registrar informaci\u00f3n; por lo general, se trata de objetos y eventos importantes. Por ejemplo, en un sistema de venta al por menor, puede crear tablas para clientes, productos, pedidos y art\u00edculos de l\u00ednea de un pedido. Una tabla contiene filas, y cada fila representa una instancia \u00fanica de una entidad. En este escenario de venta al por menor, cada fila de la tabla de clientes contiene los datos de un solo cliente, cada fila de la tabla de productos define un \u00fanico producto, cada fila de la tabla de pedidos representa un pedido realizado por un cliente y cada fila de la tabla de art\u00edculos de l\u00ednea representa un producto que se ha incluido en un pedido.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"537\" src=\"\/wp-content\/uploads\/2022\/05\/relational-tables.png\" alt=\"\" class=\"wp-image-8912\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/relational-tables.png 800w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/relational-tables-300x201.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/relational-tables-768x516.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/relational-tables-120x80.png 120w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p>Las tablas relacionales son un formato para datos estructurados y cada fila de una tabla tiene las mismas columnas, aunque en algunos casos no todas las columnas necesitan tener un valor. Por ejemplo, una tabla de clientes puede incluir una columna&nbsp;<strong>MiddleName<\/strong>, que podr\u00eda estar vac\u00eda (o ser&nbsp;<em>NULL<\/em>) para las filas que representan a los clientes que no tienen un segundo nombre o cuyo segundo nombre se desconoce.<\/p>\n\n\n\n<p>Cada columna almacena los datos de un tipo de datos espec\u00edfico. Por ejemplo, una columna&nbsp;<strong>Email<\/strong>&nbsp;de una tabla&nbsp;<strong>Customer<\/strong>&nbsp;probablemente se definir\u00eda para almacenar datos basados en caracteres (texto), que podr\u00edan ser de longitud fija o variable. Una columna&nbsp;<strong>Price<\/strong>&nbsp;de una tabla&nbsp;<strong>Product<\/strong>&nbsp;podr\u00eda definirse para almacenar datos num\u00e9ricos decimales, mientras que una columna&nbsp;<strong>Quantity<\/strong>&nbsp;de una tabla&nbsp;<strong>Order<\/strong>&nbsp;podr\u00eda estar restringida a valores num\u00e9ricos enteros. Una columna&nbsp;<strong>OrderDate<\/strong>&nbsp;de la misma tabla&nbsp;<strong>Order<\/strong>&nbsp;se definir\u00eda para almacenar valores de fecha y hora. Los tipos de datos disponibles que se pueden usar al definir una tabla dependen del sistema de base de datos que se use, aunque hay tipos de datos est\u00e1ndar definidos por el American National Standards Institute (ANSI) que son compatibles con la mayor\u00eda de los sistemas de base de datos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Unidad 3: Comprensi\u00f3n de la normalizaci\u00f3n<\/h2>\n\n\n\n<p>La normalizaci\u00f3n es un t\u00e9rmino que usan los profesionales de bases de datos para referirse a un proceso de dise\u00f1o de esquemas que reduce al m\u00ednimo la duplicaci\u00f3n de los datos e impone la integridad de los datos.<\/p>\n\n\n\n<p>Aunque hay muchas reglas complejas que definen el proceso de refactorizaci\u00f3n de los datos en varios niveles (o&nbsp;<em>formas<\/em>) de normalizaci\u00f3n, una definici\u00f3n sencilla a efectos pr\u00e1cticos es:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Separar cada&nbsp;<em>entidad<\/em>&nbsp;en su propia tabla.<\/li><li>Separar cada&nbsp;<em>atributo<\/em>&nbsp;discreto en su propia columna.<\/li><li>Identificar de forma \u00fanica cada instancia de entidad (fila) mediante una&nbsp;<em>clave principal<\/em>.<\/li><li>Usar columnas de&nbsp;<em>clave externa<\/em>&nbsp;para vincular entidades relacionadas.<\/li><\/ol>\n\n\n\n<p>Para comprender los principios b\u00e1sicos de la normalizaci\u00f3n, supongamos que la tabla siguiente representa una hoja de c\u00e1lculo que una empresa usa para realizar un seguimiento de sus ventas.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"800\" height=\"267\" src=\"\/wp-content\/uploads\/2022\/05\/unnormalized-data.png\" alt=\"\" class=\"wp-image-8917\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/unnormalized-data.png 800w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/unnormalized-data-300x100.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/unnormalized-data-768x256.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p>Observe que los detalles del cliente y del producto est\u00e1n duplicados para cada art\u00edculo individual que se vende. Adem\u00e1s, el nombre del cliente y la direcci\u00f3n postal, as\u00ed como el nombre del producto y el precio, est\u00e1n combinados en las mismas celdas de la hoja de c\u00e1lculo.<\/p>\n\n\n\n<p>Ahora veamos el modo en que la normalizaci\u00f3n cambia la forma de almacenar los datos.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"800\" height=\"689\" src=\"\/wp-content\/uploads\/2022\/05\/normalized-data.png\" alt=\"\" class=\"wp-image-8922\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/normalized-data.png 800w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/normalized-data-300x258.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/normalized-data-768x661.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p>Cada entidad que se representa en los datos (cliente, producto, pedido de ventas y art\u00edculo de l\u00ednea) se almacena en su propia tabla, y cada atributo discreto de esas entidades est\u00e1 en su propia columna.<\/p>\n\n\n\n<p>Al registrar cada instancia de una entidad como una fila en una tabla espec\u00edfica de la entidad, se elimina la duplicaci\u00f3n de datos. Por ejemplo, para cambiar la direcci\u00f3n de un cliente, solo hace falta modificar el valor en una sola fila.<\/p>\n\n\n\n<p>La descomposici\u00f3n de atributos en columnas individuales garantiza que cada valor est\u00e9 restringido a un tipo de datos adecuado. Por ejemplo, los precios de los productos deben ser valores decimales, mientras que las cantidades de art\u00edculos de l\u00ednea deben ser n\u00fameros enteros. Adem\u00e1s, la creaci\u00f3n de columnas individuales aporta un nivel \u00fatil de granularidad a los datos a la hora de realizar las consultas; por ejemplo, puede filtrar f\u00e1cilmente los clientes que viven en una ciudad concreta.<\/p>\n\n\n\n<p>Las instancias de cada entidad se identifican de forma \u00fanica mediante un identificador u otro valor de clave, conocido como&nbsp;<em>clave principal<\/em>; y cuando una entidad hace referencia a otra (por ejemplo, un pedido tiene un cliente asociado), la clave principal de la entidad relacionada se almacena como una&nbsp;<em>clave externa<\/em>. Puede buscar la direcci\u00f3n del cliente (que se almacena solo una vez) para cada registro de la tabla&nbsp;<strong>Order<\/strong>&nbsp;si hace referencia al registro correspondiente en la tabla&nbsp;<strong>Customer<\/strong>. Normalmente, un sistema de administraci\u00f3n de bases de datos relacionales (RDBMS) puede aplicar la integridad referencial para garantizar que un valor especificado en un campo de clave externa tenga una clave principal correspondiente existente en la tabla relacionada (lo que, por ejemplo, impide la realizaci\u00f3n de pedidos para clientes que no existen).<\/p>\n\n\n\n<p>En algunos casos, se puede definir una clave (principal o externa) como una clave&nbsp;<em>compuesta<\/em>&nbsp;basada en una combinaci\u00f3n \u00fanica de varias columnas. Por ejemplo, la tabla&nbsp;<strong>LineItem<\/strong>&nbsp;del ejemplo anterior usa una combinaci\u00f3n \u00fanica de&nbsp;<strong>OrderNo<\/strong>&nbsp;y&nbsp;<strong>ItemNo<\/strong>&nbsp;para identificar un art\u00edculo de l\u00ednea de un pedido individual.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">MCT: 2.1.1 Descripci\u00f3n de las caracteristicas de los datos relacionales<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Descripci\u00f3n de las caracter\u00edsticas de los datos relacionales\" width=\"1290\" height=\"726\" src=\"https:\/\/www.youtube.com\/embed\/0_2LFgXC2vc?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Inicio de las BD<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Cuando se comenz\u00f3 a utilizar las BD cada organizaci\u00f3n almacenan su informaci\u00f3n con su propio estructura lo que provocaba diversas complicaciones, por ejemplo<ul><li>Los desarrolladores requer\u00edan demasiada informaci\u00f3n sobre la estructura de los datos<\/li><li>Era ineficaces y costosas de mantener y dif\u00edcil de optimizar para que la aplicaci\u00f3n tuviera un buen rendimiento<\/li><\/ul><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"899\" height=\"577\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1317.png\" alt=\"\" class=\"wp-image-8927\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1317.png 899w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1317-300x193.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1317-768x493.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1317-360x230.png 360w\" sizes=\"(max-width: 899px) 100vw, 899px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Bases de datos Relacionales<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Una soluci\u00f3n a este problema fue crear la BD relacionales<\/li><li>Donde el aspecto m\u00e1s importe fue el uso de tablas ya que brinda una formula intuitiva, eficaz y casi flexible de almacenar y consultar informaci\u00f3n estructurada <\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"499\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1328-1024x499.png\" alt=\"\" class=\"wp-image-8929\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1328-1024x499.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1328-300x146.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1328-768x375.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1328.png 1226w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Implementaciones<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Realizar un seguimiento de inventarios<\/li><li>Administrar informaci\u00f3n de clientes, empleados, etc<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"596\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1329.png\" alt=\"\" class=\"wp-image-8931\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1329.png 975w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1329-300x183.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1329-768x469.png 768w\" sizes=\"(max-width: 975px) 100vw, 975px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Entidad -&gt; tablas<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>En una BD relacional las colecciones de mundo real se modelan en forma de tablas<\/li><li>Una entidad de describe como que informaci\u00f3n se debe conocerse o  conservarse<\/li><li>Por ejemplo:  <ul><li>La entidad cliente cuenta con ciertas caracter\u00edsticas que llamaremos propiedades y ppueden ser representada por datos como ID \/ Nombre \/ Edad<\/li><li>En la empresa pueden existir un gran n\u00famero de clientes y cada se le llamara instancia <\/li><\/ul><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"562\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1331-1024x562.png\" alt=\"\" class=\"wp-image-8932\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1331-1024x562.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1331-300x165.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1331-768x422.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1331.png 1222w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Las instancias las organizaremos en filas y las propiedades en columnas obteniendo las siguiente estructura<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"649\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1333-1024x649.png\" alt=\"\" class=\"wp-image-8933\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1333-1024x649.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1333-300x190.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1333-768x487.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1333-600x380.png 600w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1333.png 1038w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">BD Relacionales<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Su nombre es por que las entidades se pueden relacionar entre s\u00ed creando una nueva tablas<\/li><li>Por ejemplo: para relacionar un cliente con los productos es necesario crear una nueva tabla llamada pedido<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"543\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1334-1024x543.png\" alt=\"\" class=\"wp-image-8936\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1334-1024x543.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1334-300x159.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1334-768x407.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1334.png 1330w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Modelado<\/h2>\n\n\n\n<p>Una BD puede tener muchas entidades y muchas relaciones por tanto necesario seguir una serie de reglas<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Cada tabla requiere una clave Principal (PK) que debe ser \u00fanica e irrepetible y es el identificador de cada entidad<\/li><li>Cuando una instancia tiene llaves primarias de otras entidades son llamadas claves externas (FK), estas si se pueden repetir y una tabla puede contener m\u00e1s de una clave externa<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"557\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1346-1024x557.png\" alt=\"\" class=\"wp-image-8961\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1346-1024x557.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1346-300x163.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1346-768x418.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1346.png 1250w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Tipos de relaci\u00f3n<\/h3>\n\n\n\n<p>Para representar la relaci\u00f3n entre entidades se utilizan diferentes notaciones:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Uno a uno: por ejemplo un cliente puede tener solo una tarjeta de cr\u00e9dito<\/li><li>Uno a varios: un cliente puede tener varios pedidos<\/li><li>Varios a uno: varios productos llegan a un almac\u00e9n<\/li><li>Varios a Varios: varios pedidos pueden solicitar varios productos<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"477\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1341-1024x477.png\" alt=\"\" class=\"wp-image-8943\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1341-1024x477.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1341-300x140.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1341-768x357.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1341.png 1403w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>De esta forma podemos obtener el modelo de la base de datos por medio de tablas y su relaciones<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"550\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1342-1024x550.png\" alt=\"\" class=\"wp-image-8944\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1342-1024x550.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1342-300x161.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1342-768x413.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1342.png 1286w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Resumen<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Todos los datos son tabulares<\/li><li>Las entidades se modelan como tablas<\/li><li>Cada instancia de la entidad es una fila de la tabla<\/li><li>Cada propiedad se define como una columna<\/li><li>Cada fila de una tabla tiene el mismo conjunto de columnas<\/li><li>Una tabla puede tener cualquier n\u00famero de filas<\/li><li>Una clave principal identifica de forma \u00fanica cada fila de la tabla<\/li><li>Dos filas no pueden compartir la misma clave principal<\/li><li>Una clave externa hace referencia a la clave principal de otra tabla<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Unidad 4: Exploraci\u00f3n de SQL<\/h2>\n\n\n\n<p>SQL significa\u00a0<em>Lenguaje de consulta estructurado<\/em>\u00a0(por sus siglas en ingl\u00e9s) y se usa para comunicarse con una base de datos relacional. Se trata del lenguaje est\u00e1ndar para los sistemas de administraci\u00f3n de bases de datos relacionales. Las instrucciones SQL se usan para realizar tareas como actualizar o recuperar datos de una base de datos. Algunos sistemas de administraci\u00f3n de bases de datos relacionales habituales que utilizan SQL incluyen Microsoft\u00a0SQL\u00a0Server, MySQL, PostgreSQL, MariaDB y Oracle.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Nota:<\/h3>\n\n\n\n<p><em>El Instituto Nacional Estadounidense de Est\u00e1ndares (ANSI) estandariz\u00f3 originalmente el lenguaje SQL en 1986 y, luego, la Organizaci\u00f3n Internacional de Normalizaci\u00f3n (ISO), en 1987. Desde entonces, el est\u00e1ndar se ha ampliado varias veces a medida que los proveedores de bases de datos relacionales han agregado nuevas caracter\u00edsticas a sus sistemas. Adem\u00e1s, la mayor\u00eda de los proveedores de bases de datos incluyen sus propias extensiones que no forman parte del est\u00e1ndar, lo que ha dado lugar a la creaci\u00f3n de varios dialectos de SQL.<\/em><\/p>\n\n\n\n<p>Puede usar instrucciones SQL como&nbsp;<strong>SELECT<\/strong>,&nbsp;<strong>INSERT<\/strong>,&nbsp;<strong>UPDATE<\/strong>,&nbsp;<strong>DELETE<\/strong>,&nbsp;<strong>CREATE<\/strong>&nbsp;y&nbsp;<strong>DROP<\/strong>&nbsp;para realizar pr\u00e1cticamente cualquier tarea que deba llevarse a cabo con una base de datos. Si bien estas instrucciones SQL forman parte del est\u00e1ndar SQL, muchos sistemas de administraci\u00f3n de bases de datos tambi\u00e9n cuentan con extensiones propias adicionales para controlar los detalles de ese sistema de administraci\u00f3n de bases de datos. Estas extensiones proporcionan una funcionalidad que no se incluye en el est\u00e1ndar de SQL y contienen \u00e1reas como la administraci\u00f3n de la seguridad y la capacidad de programaci\u00f3n. Por ejemplo, Microsoft&nbsp;SQL&nbsp;Server y los servicios de base de datos de Azure basados en el motor de base de datos de SQL&nbsp;Server usan Transact-SQL. Esta implementaci\u00f3n incluye extensiones propias para escribir procedimientos almacenados y desencadenadores (c\u00f3digo de aplicaci\u00f3n que se puede almacenar en la base de datos), y administrar cuentas de usuario. PostgreSQL y MySQL tambi\u00e9n tienen sus propias versiones de estas caracter\u00edsticas.<\/p>\n\n\n\n<p>Algunos dialectos populares de SQL incluyen:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><em>Transact-SQL (T-SQL)<\/em>. Esta versi\u00f3n de SQL la usan los servicios Microsoft&nbsp;SQL&nbsp;Server y Azure SQL.<\/li><li><em>pgSQL<\/em>. Se trata del dialecto, con extensiones, que se implementa en PostgreSQL.<\/li><li><em>PL\/SQL<\/em>. Se trata del dialecto que utiliza Oracle. PL\/SQL significa \u00ablenguaje de procedimientos\/SQL\u00bb.<\/li><\/ul>\n\n\n\n<p>Los usuarios que planeen trabajar espec\u00edficamente con un sistema de base de datos \u00fanica deben conocer los pormenores del dialecto y la plataforma de SQL preferidos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Nota<\/h3>\n\n\n\n<p>Los ejemplos de c\u00f3digo SQL de este m\u00f3dulo se basan en el dialecto de Transact-SQL, a menos que se indique lo contrario. La sintaxis de otros dialectos suele ser similar, pero puede variar en algunos detalles.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Tipos de instrucci\u00f3n SQL<\/h3>\n\n\n\n<p>Las instrucciones SQL se agrupan en tres grupos l\u00f3gicos principales:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Lenguaje de definici\u00f3n de datos (DDL)<\/li><li>Lenguaje de control de datos (DCL)<\/li><li>Lenguaje de manipulaci\u00f3n de datos (DML)<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Instrucciones DDL<\/h4>\n\n\n\n<p>Las instrucciones DDL se usan para crear, modificar y quitar tablas y otros objetos de una base de datos (tabla, procedimientos almacenados, vistas, etc.).<\/p>\n\n\n\n<p>Las instrucciones de DDL m\u00e1s habituales son las siguientes:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"974\" height=\"327\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1343.png\" alt=\"\" class=\"wp-image-8951\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1343.png 974w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1343-300x101.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1343-768x258.png 768w\" sizes=\"(max-width: 974px) 100vw, 974px\" \/><\/figure>\n\n\n\n<p>Advertencia: La instrucci\u00f3n\u00a0<strong>DROP<\/strong>\u00a0es muy eficaz. Al quitar una tabla, se pierden todas las filas de esa tabla. Salvo en el caso de que tenga una copia de seguridad, no podr\u00e1 recuperar los datos.<\/p>\n\n\n\n<p>En el siguiente ejemplo se crea una nueva tabla de base de datos. Los elementos entre par\u00e9ntesis especifican los detalles de cada columna, como el nombre, el tipo de datos, si la columna debe contener siempre un valor (distinto de NULL) y si los datos de la columna se usan para identificar de forma \u00fanica una fila (CLAVE PRINCIPAL). Cada tabla debe tener una clave principal, aunque SQL no aplica forzosamente esta regla.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Nota<\/h5>\n\n\n\n<p>Las columnas marcadas como\u00a0<strong>NOT NULL<\/strong>\u00a0se denominan columnas\u00a0<em>obligatorias<\/em>. Si omite la cl\u00e1usula\u00a0<em>NOT NULL<\/em>, puede crear filas que no contengan un valor en la columna. Se considera que una columna vac\u00eda de una fila tiene un valor\u00a0<em>NULL<\/em>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE TABLE Product\n(\n    ID INT PRIMARY KEY,\n    Name VARCHAR(20) NOT NULL,\n    Price DECIMAL NULL\n);<\/code><\/pre>\n\n\n\n<p>Los tipos de datos disponibles para las columnas de una tabla variar\u00e1n en funci\u00f3n del sistema de administraci\u00f3n de bases de datos. Aun as\u00ed, la mayor\u00eda de los sistemas de administraci\u00f3n de bases de datos admiten tipos num\u00e9ricos como INT (un n\u00famero entero), DECIMAL (un n\u00famero decimal) y tipos de cadena como VARCHAR (<em>VARCHAR<\/em>\u00a0significa \u00abdatos de caracteres de longitud variable\u00bb). Para obtener m\u00e1s informaci\u00f3n, consulte la documentaci\u00f3n del sistema de administraci\u00f3n de bases de datos que ha seleccionado.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Instrucciones DCL<\/h4>\n\n\n\n<p>Los administradores de bases de datos suelen usar instrucciones DCL para administrar el acceso a objetos de una base de datos mediante la concesi\u00f3n, denegaci\u00f3n o revocaci\u00f3n de permisos a usuarios o grupos espec\u00edficos.<\/p>\n\n\n\n<p>Las tres instrucciones DCL principales son las siguientes:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"982\" height=\"266\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1344.png\" alt=\"\" class=\"wp-image-8953\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1344.png 982w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1344-300x81.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1344-768x208.png 768w\" sizes=\"(max-width: 982px) 100vw, 982px\" \/><\/figure>\n\n\n\n<p>Por ejemplo, la siguiente instrucci\u00f3n\u00a0<strong>GRANT<\/strong>\u00a0permite a un usuario denominado\u00a0<em>user1<\/em>\u00a0leer, insertar y modificar datos en la tabla\u00a0<strong>Product<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>GRANT SELECT, INSERT, UPDATE\nON Product\nTO user1;<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Instrucciones DML<\/h4>\n\n\n\n<p>Las instrucciones DML se usan para manipular las filas de las tablas. Estas instrucciones permiten recuperar (consultar) datos, insertar nuevas filas o modificar filas existentes. Tambi\u00e9n puede eliminar filas si ya no las necesita.<\/p>\n\n\n\n<p>Las cuatro instrucciones DML principales son las siguientes:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"329\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1345.png\" alt=\"\" class=\"wp-image-8954\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1345.png 975w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1345-300x101.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1345-768x259.png 768w\" sizes=\"(max-width: 975px) 100vw, 975px\" \/><\/figure>\n\n\n\n<p>La forma b\u00e1sica de una instrucci\u00f3n\u00a0<strong>INSERT<\/strong>\u00a0insertar\u00e1 una fila cada vez. De forma predeterminada, las instrucciones\u00a0<strong>SELECT<\/strong>,\u00a0<strong>UPDATE<\/strong>\u00a0y\u00a0<strong>DELETE<\/strong>\u00a0se aplican a todas las filas de una tabla. Normalmente, se aplica una cl\u00e1usula\u00a0<strong>WHERE<\/strong>\u00a0con estas instrucciones para especificar criterios, de forma que solo se seleccionen, actualicen o eliminen las filas que cumplan estos criterios.<\/p>\n\n\n\n<p>Advertencia: SQL no ofrece\u00a0<em>solicitudes de confirmaci\u00f3n<\/em>, por lo que debe tener cuidado al usar DELETE o UPDATE sin una cl\u00e1usula WHERE, ya que podr\u00eda perder o modificar una gran cantidad de datos.<\/p>\n\n\n\n<p>El c\u00f3digo siguiente es un ejemplo de una instrucci\u00f3n SQL que permite seleccionar todas las filas (indicadas con *) de la tabla\u00a0<strong>Customer<\/strong>, donde el valor de la columna\u00a0<strong>Ciudad<\/strong>\u00a0es \u00abSeattle\u00bb:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT *\nFROM Customer\nWHERE City = 'Seattle';<\/code><\/pre>\n\n\n\n<p>Para recuperar solo un subconjunto espec\u00edfico de columnas de la tabla, puede enumerarlas en la cl\u00e1usula\u00a0<strong>SELECT<\/strong>, tal como se muestra a continuaci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT FirstName, LastName, Address, City\nFROM Customer\nWHERE City = 'Seattle';<\/code><\/pre>\n\n\n\n<p>Si una consulta devuelve muchas filas, estas no necesariamente aparecen en una secuencia concreta. Si quiere ordenar los datos, puede agregar una cl\u00e1usula\u00a0<strong>ORDER BY<\/strong>. Los datos se ordenar\u00e1n por la columna especificada:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT FirstName, LastName, Address, City\nFROM Customer\nWHERE City = 'Seattle'\nORDER BY LastName;<\/code><\/pre>\n\n\n\n<p>Tambi\u00e9n puede ejecutar instrucciones SELECT que recuperen datos de varias tablas mediante una cl\u00e1usula&nbsp;<strong>JOIN<\/strong>. Las combinaciones indican c\u00f3mo las filas de una tabla se conectan con las filas de la otra para determinar qu\u00e9 datos se van a devolver. Una condici\u00f3n de combinaci\u00f3n t\u00edpica coincide con una clave externa de una tabla y su clave principal asociada en la otra tabla.<\/p>\n\n\n\n<p>En la consulta siguiente se muestra un ejemplo que une las tablas\u00a0<strong>Customer<\/strong>\u00a0y\u00a0<strong>Order<\/strong>. La consulta usa\u00a0<em>alias<\/em>\u00a0de tabla para abreviar los nombres de tabla al especificar qu\u00e9 columnas deben recuperarse en la cl\u00e1usula\u00a0<strong>SELECT<\/strong>\u00a0y qu\u00e9 columnas deben coincidir en la cl\u00e1usula\u00a0<strong>JOIN<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT o.OrderNo, o.OrderDate, c.Address, c.City\nFROM Order AS o\nJOIN Customer AS c\nON o.Customer = c.ID<\/code><\/pre>\n\n\n\n<p>En el ejemplo siguiente se muestra c\u00f3mo modificar una fila existente mediante SQL. Se cambia el valor de la columna\u00a0<strong>Address\u00a0<\/strong>de la tabla\u00a0<strong>Customer<\/strong>\u00a0para las filas que tienen el valor 1 en la columna\u00a0<strong>ID<\/strong>. Todas las dem\u00e1s filas permanecen sin cambios:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>UPDATE Customer\nSET Address = '123 High St.'\nWHERE ID = 1;<\/code><\/pre>\n\n\n\n<p>Advertencia: Si omite la cl\u00e1usula\u00a0<strong>WHERE<\/strong>, una instrucci\u00f3n\u00a0<strong>UPDATE<\/strong>\u00a0modificar\u00e1\u00a0<strong>todas<\/strong>\u00a0las filas de la tabla.<\/p>\n\n\n\n<p>Use la instrucci\u00f3n\u00a0<strong>DELETE<\/strong>\u00a0para quitar filas. Debe especificar la tabla en la que se va a realizar la eliminaci\u00f3n y una cl\u00e1usula\u00a0<strong>WHERE<\/strong>\u00a0que identifique las filas que se van a eliminar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>DELETE FROM Product\nWHERE ID = 162;<\/code><\/pre>\n\n\n\n<p>Advertencia: Si omite la cl\u00e1usula\u00a0<strong>WHERE<\/strong>, una instrucci\u00f3n\u00a0<strong>DELETE<\/strong>\u00a0quitar\u00e1\u00a0<strong>todas<\/strong>\u00a0las filas de la tabla.<\/p>\n\n\n\n<p>La instrucci\u00f3n\u00a0<strong>INSERT<\/strong>\u00a0tiene un formato ligeramente diferente. Debe especificar una tabla y las columnas en una cl\u00e1usula\u00a0<strong>INTO<\/strong>, y una lista de valores que se van a almacenar en estas columnas. El lenguaje SQL est\u00e1ndar solo admite la inserci\u00f3n de una fila cada vez, tal como se muestra en el ejemplo siguiente. Algunos dialectos le permiten especificar varias cl\u00e1usulas\u00a0<strong>VALUES<\/strong>\u00a0para agregar varias filas a la vez:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INSERT INTO Product(ID, Name, Price)\nVALUES (99, 'Drill', 4.99);<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Nota:<\/h3>\n\n\n\n<p>En este tema se describen algunas instrucciones SQL y sintaxis b\u00e1sicas para ayudarle a comprender c\u00f3mo se usa SQL para trabajar con objetos en una base de datos. Si quiere obtener m\u00e1s informaci\u00f3n sobre c\u00f3mo consultar datos con SQL, revise la ruta de aprendizaje\u00a0<a href=\"https:\/\/docs.microsoft.com\/es-ES\/learn\/paths\/get-started-querying-with-transact-sql\">Introducci\u00f3n a las consultas con Transact-SQL<\/a>\u00a0en Microsoft\u00a0Learn.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Unidad 5: Descripci\u00f3n de objetos de base de datos<\/h2>\n\n\n\n<p>Adem\u00e1s de las tablas, una base de datos relacional puede contener otras estructuras que ayudan a optimizar la organizaci\u00f3n de los datos, encapsular acciones mediante programaci\u00f3n y mejorar la velocidad de acceso. En esta unidad, obtendr\u00e1 m\u00e1s informaci\u00f3n sobre tres de estas estructuras:\u00a0<em>vistas<\/em>,\u00a0<em>procedimientos almacenados<\/em>\u00a0e\u00a0<em>\u00edndices<\/em>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 es una vista?<\/h3>\n\n\n\n<p>Una vista es una tabla virtual basada en los resultados de una consulta\u00a0<strong>SELECT<\/strong>. Podr\u00eda decirse que una vista es como una ventana que muestra unas filas concretas de una o varias tablas subyacentes. Por ejemplo, podr\u00eda crear una vista en las tablas\u00a0<strong>Order<\/strong>\u00a0y\u00a0<strong>Customer<\/strong>\u00a0que recupere los datos de pedidos y clientes para proporcionar un objeto \u00fanico que haga m\u00e1s f\u00e1cil determinar las direcciones de entrega de los pedidos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE VIEW Deliveries\nAS\nSELECT o.OrderNo, o.OrderDate,\n       c.FirstName, c.LastName, c.Address, c.City\nFROM Order AS o JOIN Customer AS c\nON o.CustomerID = c.ID;<\/code><\/pre>\n\n\n\n<p>Puede consultar la vista y filtrar los datos de la misma forma que una tabla. La consulta siguiente busca detalles de los pedidos de los clientes que viven en Seattle:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT OrderNo, OrderDate, LastName, Address\nFROM Deliveries\nWHERE City = 'Seattle';<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 es un procedimiento almacenado?<\/h3>\n\n\n\n<p>Un procedimiento almacenado define instrucciones&nbsp;SQL que se pueden ejecutar a petici\u00f3n. Los procedimientos almacenados se usan para encapsular la l\u00f3gica de programaci\u00f3n en una base de datos para las acciones que las aplicaciones deben realizar al trabajar con datos.<\/p>\n\n\n\n<p>Puede definir un procedimiento almacenado con par\u00e1metros a fin de crear una soluci\u00f3n flexible para las acciones comunes que podr\u00edan tener que aplicarse a los datos en funci\u00f3n de una clave o criterios espec\u00edficos. Por ejemplo, se podr\u00eda definir el siguiente procedimiento almacenado para cambiar el nombre de un producto en funci\u00f3n del identificador de producto especificado.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE PROCEDURE RenameProduct\n\t@ProductID INT,\n\t@NewName VARCHAR(20)\nAS\nUPDATE Product\nSET Name = @NewName\nWHERE ID = @ProductID;<\/code><\/pre>\n\n\n\n<p>Cuando haya que cambiar el nombre de un producto, puede ejecutar el procedimiento almacenado y pasar el identificador del producto y el nuevo nombre que se va a asignar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>EXEC RenameProduct 201, 'Spanner';<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 es un \u00edndice?<\/h3>\n\n\n\n<p>Un \u00edndice le ayuda a buscar datos en una tabla. Piense en el \u00edndice de una tabla como en el \u00edndice de la parte final de un libro. El \u00edndice de un libro contiene un conjunto ordenado de contenido, junto a las p\u00e1ginas en las que aparece. El \u00edndice le servir\u00e1 para buscar la referencia a un elemento del libro. Puede usar los n\u00fameros de p\u00e1gina del \u00edndice para ir directamente a las p\u00e1ginas correctas del libro. Sin el \u00edndice, es posible que tenga que leer todo el libro para encontrar el contenido que est\u00e1 buscando.<\/p>\n\n\n\n<p>Cuando se crea un \u00edndice en una base de datos, se especifica una columna de la tabla; el \u00edndice contiene una copia de estos datos con un criterio de ordenaci\u00f3n y punteros a las filas correspondientes de la tabla. Cuando el usuario ejecuta una consulta que especifica esa columna en la cl\u00e1usula&nbsp;<strong>WHERE<\/strong>, el sistema de administraci\u00f3n de bases de datos puede utilizar el \u00edndice para capturar los datos m\u00e1s r\u00e1pidamente que si tuviera que examinar toda la tabla fila por fila.<\/p>\n\n\n\n<p>Por ejemplo, podr\u00eda usar el c\u00f3digo siguiente para crear un \u00edndice en la columna\u00a0<strong>Name<\/strong>\u00a0de la tabla\u00a0<strong>Product<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE INDEX idx_ProductName\nON Product(Name);<\/code><\/pre>\n\n\n\n<p>El \u00edndice crea una estructura basada en \u00e1rbol que el optimizador de consultas del sistema de base de datos puede usar para buscar r\u00e1pidamente filas en la tabla\u00a0<strong>Product<\/strong>\u00a0en funci\u00f3n de un nombre espec\u00edfico (<strong>Name<\/strong>).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"550\" height=\"283\" src=\"\/wp-content\/uploads\/2022\/05\/index.png\" alt=\"\" class=\"wp-image-8959\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/index.png 550w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/index-300x154.png 300w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/figure>\n\n\n\n<p>Para una tabla que contiene pocas filas, el uso del \u00edndice probablemente no sea m\u00e1s eficaz que simplemente leer toda la tabla y buscar las filas solicitadas por la consulta (en cuyo caso, el optimizador de consultas omitir\u00e1 el \u00edndice). Pero cuando una tabla tiene muchas filas, los \u00edndices pueden mejorar dr\u00e1sticamente el rendimiento de las consultas.<\/p>\n\n\n\n<p>Puede crear muchos \u00edndices en una tabla. Por lo tanto, si tambi\u00e9n quisiera buscar productos basados en el precio, podr\u00eda resultar \u00fatil crear otro \u00edndice en la columna\u00a0<strong>Price<\/strong>\u00a0de la tabla\u00a0<strong>Product<\/strong>. Sin embargo, los \u00edndices no son gratuitos. Un \u00edndice consume espacio de almacenamiento y, cada vez que inserte datos en una tabla, los actualice o los elimine, tendr\u00e1 que hacer el mantenimiento de sus \u00edndices. Este trabajo adicional puede ralentizar las operaciones de inserci\u00f3n, actualizaci\u00f3n y eliminaci\u00f3n. Debe conseguir un equilibrio entre tener \u00edndices que aceleren las consultas y el coste de realizar otras operaciones.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">MCT: 2.1.2 Descripci\u00f3n de la estructura de datos relaciones con SQL<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Descripci\u00f3n de la estructura de datos relacionales (tablas, vistas e \u00edndices)\" width=\"1290\" height=\"726\" src=\"https:\/\/www.youtube.com\/embed\/GIb4gCqos3w?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Tablas en SQL<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Para crear una tabla se utiliza la instrucci\u00f3n CREATE TABLE<\/li><li>Dentro de los par\u00e9ntesis se definen los campos (nombre_campo tipo_dato restricciones)<\/li><li>restricciones:<ul><li>Primary Key: clave primaria<\/li><li>NOT NULL: indica que la columna no puede estar vacia<\/li><li>UNIQUE: indica que lo valores de na columna no se pueden repetir<\/li><\/ul><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"984\" height=\"562\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1347.png\" alt=\"\" class=\"wp-image-8967\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1347.png 984w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1347-300x171.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1347-768x439.png 768w\" sizes=\"(max-width: 984px) 100vw, 984px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Palabras reservadas<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>CREATE: permite crear objetos<\/li><li>INSERT: almacena datos en una tabla<\/li><li>UPDATE: actualiza datos de una tabla<\/li><li>DELETE: quita filas de una tabla<\/li><li>SELECT: consulta datos de una tabla<\/li><li>FROM: indica que tabla se va a consultar<\/li><li>WHERE: permite agregar una condici\u00f3n<\/li><li>JOIN: uni\u00f3n de tablas<\/li><li>ON: comparaci\u00f3n entre columnas<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"584\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1349-1024x584.png\" alt=\"\" class=\"wp-image-8968\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1349-1024x584.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1349-300x171.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1349-768x438.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1349.png 1164w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Por ejemplo consultas los clientes que sean mayores de 15 a\u00f1os<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"660\" height=\"323\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1350.png\" alt=\"\" class=\"wp-image-8969\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1350.png 660w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1350-300x147.png 300w\" sizes=\"(max-width: 660px) 100vw, 660px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Para consultas m\u00e1s complejas se pueden agregar uniones con la palabra reservada JOIN <\/li><li>Por ejemplo consultar los ID&#8217;s de cliente cuyo sea igual al ID&#8217;s del producto que solicitaron<\/li><li>El dato antes del punto se refiere a la tabla y el datos despu\u00e9s del punto a la columna solicitada<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"433\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1351-1024x433.png\" alt=\"\" class=\"wp-image-8971\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1351-1024x433.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1351-300x127.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1351-768x325.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1351.png 1197w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Vistas<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Existen consultas que son constantemente utilizadas por lo que para mejorar el rendimiento de la BD y que estas consultas se procesen desde cero se pueden utilizar vistas<\/li><li>Es una tabla virtual definida a partir de una consulta determinada que puede contener distintas columnas de varias tablas <\/li><li>Por ejemplo: si necesitamos consultas constantemente los pedidos del producto 1<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"493\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1352-1024x493.png\" alt=\"\" class=\"wp-image-8973\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1352-1024x493.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1352-300x145.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1352-768x370.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1352.png 1272w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Tambi\u00e9n se pueden utilizar para combinar datos de dos tablas que se consultan constantemente <\/li><li>Por ejemplo: se necesita consultar informaci\u00f3n de los clientes y productos que han pedido<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"578\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1354-1024x578.png\" alt=\"\" class=\"wp-image-8975\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1354-1024x578.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1354-300x169.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1354-768x433.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1354.png 1175w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Tipos de vistas<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Vistas indexadas:<\/strong> vistan en las que se crean un \u00edndice y que mejoran el rendimiento  de las consultas<\/li><li><strong>Vistas con particiones: <\/strong>combina datos horizontales con particiones de un conjunto de tablas miembro en uno o m\u00e1s servidores<\/li><li><strong>Vistas del sistemas<\/strong>: expone metadatos que se usan para devolver informaci\u00f3n de la instancia de SQL Server u objetos definidos en la instancia. Por ejemplo la vista del catalogo sys.database<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"575\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1355-1024x575.png\" alt=\"\" class=\"wp-image-8976\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1355-1024x575.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1355-300x168.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1355-768x431.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1355.png 1181w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\u00cdndice<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Es una estructura asociada con una tabla o vista contiene claves generadas a partir de una o varias columnas <\/li><li>Sirve para hacer referencia a algunos elementos determinados lo que al hacer consultas acelera la recuperaci\u00f3n de filas de una tabla <\/li><li>Cuando se crea un \u00edndice se debe especificar una columna de una tabla, el \u00edndice contiene una copia de estos datos  como un criterio de ordenaci\u00f3n y punteros a las filas correspondientes de la tabla <\/li><li>Cuando el usuario realiza una consulta que contiene la columna de la cl\u00e1usula WHERE el sistema de administraci\u00f3n de BD puede utilizar el \u00edndice obtener los datos m\u00e1s r\u00e1pidamente que si tuviera que analizar toda la fila<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"422\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1356-1024x422.png\" alt=\"\" class=\"wp-image-8978\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1356-1024x422.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1356-300x124.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1356-768x316.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1356.png 1146w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u00cdndice vs Almacenamiento<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Los \u00edndices requiere espacio de almacenamiento y mantenimiento que se realiza de forma autom\u00e1tica al modificar o eliminar datos de la tabla original <\/li><li>Por esto no se recomienda crear \u00edndices para todas las columnas existentes en una tabla<\/li><li>Se recomiendan solo cuando la columna sea constantemente requerida en las consultas o en tablas de solo lectura ya que tener una gran cantidad de \u00edndices  puede afectar el rendimiento de una BD<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"485\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1357-1024x485.png\" alt=\"\" class=\"wp-image-8980\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1357-1024x485.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1357-300x142.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1357-768x364.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1357.png 1298w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\u00cdndices autom\u00e1ticos<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Existen \u00edndices que se crean autom\u00e1ticamente, por ejemplo cuando se crea una restricci\u00f3n \u00abPrimary Key\u00bb se crea un \u00edndice cl\u00faster \u00fanico en las columnas si a\u00fan no existe un \u00edndice cluster en la tabla o o se ha especificado  un \u00edndice no cluster <\/li><li>Cuando se crea una restricci\u00f3n \u00abUNIQUE\u00bb se creara un \u00edndice no cluster \u00fanico, puede especificarse  un \u00edndice cluster \u00fanico si todav\u00eda no existe un \u00edndice cluster en la tabla<\/li><li>Para crear un \u00edndice se requiere la siguiente sentencia <\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"560\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1359-1024x560.png\" alt=\"\" class=\"wp-image-8983\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1359-1024x560.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1359-300x164.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1359-768x420.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1359.png 1116w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">MCT: 2.1.3 Comparaci\u00f3n de Data Definition Lenguaje DDL vs Data Manipulation Language DML<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Comparaci\u00f3n de Data Definition Lenguaje DDL vs Data Manipulation Language DML\" width=\"1290\" height=\"726\" src=\"https:\/\/www.youtube.com\/embed\/9FnhYxUIsSY?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Introducci\u00f3n a SQL<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>SQL significa Lenguaje de Consultas Estructurada<\/li><li>Se utiliza como lenguaje est\u00e1ndar para comunicarse y administrar las BD relacionales<\/li><li>Permite insertar, actualizar o recuperar informaci\u00f3n<\/li><li>Algunos administradores de BD que utilizan SQL son: SQL Database \/ PosgreSQL \/ MYSQL \/MariaBD \/ Oracle<\/li><li>La mayor\u00eda acepta tipos de datos como <ul><li>INT: Entero<\/li><li>VARCHAR: cadenas (datos de longitud variable)<\/li><\/ul><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"486\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1360-1024x486.png\" alt=\"\" class=\"wp-image-8985\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1360-1024x486.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1360-300x142.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1360-768x364.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1360.png 1160w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Dialectos de SQL<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Existen instrucciones que forman parte del est\u00e1ndar de SQL SELECT \/ INSERT \/ UPDATE \/ CREATE \/ DROP<\/li><li>Pero muchos sistemas de administraci\u00f3n de BD&#8217;s tienen extensiones propias que proporcionan funcionalidades extras en temas de seguridad o programaci\u00f3n que no se incluyen en el est\u00e1ndar SQL, es estos se les llama <strong>\u00abDialectos\u00bb<\/strong><\/li><li>Algunos dialectos m\u00e1s populares son:<ul><li>T-SQL: Transac-SQL ( SQL Server \/ Azure SQL Database)<\/li><li>PgSQL: para postgreSQL<\/li><li>PL\/SQL: ORACLE<\/li><\/ul><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"521\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1361-1024x521.png\" alt=\"\" class=\"wp-image-8987\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1361-1024x521.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1361-300x153.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1361-768x391.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1361.png 1284w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Tipos de instrucciones SQL<\/h2>\n\n\n\n<p>Las instrucciones SQL se agrupan en dos grupos principales<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Lenguaje de Manipulaci\u00f3n de Datos (DML): <\/strong>que se aplican a los registros de una tabla<\/li><li><strong>Lenguaje de Definici\u00f3n de Datos (DDL): <\/strong>que se aplican sobre los componentes, columnas o sobre la tabla<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"560\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1362-1024x560.png\" alt=\"\" class=\"wp-image-8989\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1362-1024x560.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1362-300x164.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1362-768x420.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1362.png 1061w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Instrucciones DML<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Se utilizan para manipular las filas de una tabla ( insertar \/ modificar \/ eliminar \/ consultar ) <\/li><li>SET: Permite indicar el valor por el cual  se modificar\u00e1 un campo en una instrucci\u00f3n UPDATE<\/li><li>*: Se utiliza despu\u00e9s del SELECT para indicar que se deben obtener todas las columnas<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"496\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1364-1024x496.png\" alt=\"\" class=\"wp-image-8991\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1364-1024x496.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1364-300x145.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1364-768x372.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1364.png 1212w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Consideraciones<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>La forma b\u00e1sica de una instrucci\u00f3n INSERT insertar\u00e1 una fila de forma predeterminada  <\/li><li>Las instrucciones SELECT \/ UPDATE \/ DELETE se aplican a todas las filas de una tabla <\/li><li>La clausula WHERE es el medio para determinar a que filas deseamos aplicarle la instrucci\u00f3n <\/li><li>SQL: no ofrece solicitudes de confirmaci\u00f3n por lo que se debe tener cuidado al usar DELETE \/ UPDATE sin una clausula WHERE por que podr\u00eda perder o modificar una gran cantidad de datos<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"446\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1365-1024x446.png\" alt=\"\" class=\"wp-image-8993\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1365-1024x446.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1365-300x131.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1365-768x335.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1365.png 1265w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Cl\u00e1usulas y condiciones<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>FROM: indica la tabla que se desea utilizar<\/li><li>JOIN: permite la combinaci\u00f3n de tablas<\/li><li>ORDER BY: permite ordenar las filas<\/li><li>Algunas condiciones puede utilizar operadores l\u00f3gicos (= &lt; >)<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"549\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1367-1024x549.png\" alt=\"\" class=\"wp-image-8996\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1367-1024x549.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1367-300x161.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1367-768x412.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1367.png 1230w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Caso de estudio<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Tenemos las siguientes tablas<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"540\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1368-1024x540.png\" alt=\"\" class=\"wp-image-8998\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1368-1024x540.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1368-300x158.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1368-768x405.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1368.png 1239w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Obtener todos los clientes<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"343\" height=\"140\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1369.png\" alt=\"\" class=\"wp-image-8999\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1369.png 343w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1369-300x122.png 300w\" sizes=\"(max-width: 343px) 100vw, 343px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Obtener todo los ID&#8217;s de clientes cuya edad sea mayor o igual a 18 a\u00f1os<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"431\" height=\"197\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1370-1.png\" alt=\"\" class=\"wp-image-9001\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1370-1.png 431w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1370-1-300x137.png 300w\" sizes=\"(max-width: 431px) 100vw, 431px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Cliente m\u00e1s joven<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"124\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1371.png\" alt=\"\" class=\"wp-image-9002\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1371.png 400w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1371-300x93.png 300w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Obtener todos los productos donde la descripci\u00f3n = \u00abropa\u00bb<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"674\" height=\"214\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1372.png\" alt=\"\" class=\"wp-image-9003\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1372.png 674w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1372-300x95.png 300w\" sizes=\"(max-width: 674px) 100vw, 674px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Actualizar nombre de un producto<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"593\" height=\"198\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1373.png\" alt=\"\" class=\"wp-image-9004\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1373.png 593w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1373-300x100.png 300w\" sizes=\"(max-width: 593px) 100vw, 593px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Obtener los pedidos de un cliente<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"197\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1374-1024x197.png\" alt=\"\" class=\"wp-image-9005\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1374-1024x197.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1374-300x58.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1374-768x148.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1374.png 1337w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Instrucciones DDL<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Se utilizan para crear, modificar y eliminar tablas u otros objetos como \u00edndices, vistas, procedimientos almacenados <\/li><li>Las m\u00e1s comunes son:<\/li><li>CREATE: permite crear objetos<\/li><li>ALTER: modifica la estructura de un objeto (Ej: agregar o quitar columna)<\/li><li>DROP: eliminar un objeto <\/li><li>RENAME:  renombrar un objeto<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"453\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1375-1024x453.png\" alt=\"\" class=\"wp-image-9006\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1375-1024x453.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1375-300x133.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1375-768x340.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1375.png 1243w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Consideraciones<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Al aplicar DROP sobre una tabla esta y sus filas son eliminadas y no se pueden recupar a menos que tenga un respaldo<\/li><li>Las columnas con NOT NULL se consideran obligatorias <\/li><li>Las columnas NULL pueden tener o no datos <\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"816\" height=\"524\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1376.png\" alt=\"\" class=\"wp-image-9008\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1376.png 816w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1376-300x193.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1376-768x493.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1376-360x230.png 360w\" sizes=\"(max-width: 816px) 100vw, 816px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplos DDL<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Crear tabla, renombrarla y agregar columna<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"501\" src=\"\/wp-content\/uploads\/2022\/05\/Seleccion_1378-1024x501.png\" alt=\"\" class=\"wp-image-9009\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1378-1024x501.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1378-300x147.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1378-768x376.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/05\/Seleccion_1378.png 1252w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>https:\/\/docs.microsoft.com\/es-mx\/learn\/modules\/explore-relational-data-offerings\/1-introduction Unidad 1: Introducci\u00f3n Cuando se empezaron a usar los sistemas inform\u00e1ticos, cada aplicaci\u00f3n almacenaba los datos en su propia estructura, que era \u00fanica. Cuando los desarrolladores quer\u00edan crear aplicaciones para usar esos datos, necesitaban mucha informaci\u00f3n sobre la estructura de datos en particular para encontrar los que necesitaban. Estas estructuras de datos eran ineficaces, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[390],"tags":[398,391],"class_list":["post-8908","post","type-post","status-publish","format-standard","hentry","category-cursos","tag-dp-900","tag-microsoft-azure"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"_links":{"self":[{"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts\/8908","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8908"}],"version-history":[{"count":33,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts\/8908\/revisions"}],"predecessor-version":[{"id":9011,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts\/8908\/revisions\/9011"}],"wp:attachment":[{"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8908"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8908"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8908"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}