{"id":26490,"date":"2022-12-14T17:24:35","date_gmt":"2022-12-14T16:24:35","guid":{"rendered":"\/tutoriales\/?p=26490"},"modified":"2025-02-10T17:20:46","modified_gmt":"2025-02-10T16:20:46","slug":"esquema-de-base-de-datos","status":"publish","type":"post","link":"\/co\/tutoriales\/esquema-de-base-de-datos","title":{"rendered":"Esquema de base de datos: Gu\u00eda r\u00e1pida con ejemplos"},"content":{"rendered":"<p>Un esquema de base de datos es una parte integral del desarrollo de aplicaciones o programas inform&aacute;ticos, especialmente los que giran en torno a datos y bases de datos. En pocas palabras, el <strong>esquema de base de datos <\/strong>es<strong> <\/strong>un t&eacute;rmino utilizado para <strong>una estructura o disposici&oacute;n que define un conjunto de datos<\/strong>.<\/p><p>Es decir, describe c&oacute;mo se organizan y conectan los datos. Por lo tanto, un esquema de base de datos puede incluir <strong>objetos de esquema <\/strong>como campos, &iacute;ndices, paquetes, relaciones, tablas, tipos y muchos otros elementos.&nbsp;&nbsp;<\/p><p>Los dise&ntilde;adores de bases de datos crean esquemas de bases de datos para establecer los atributos, conexiones y elementos m&aacute;s importantes de un grupo de datos espec&iacute;fico.<\/p><p>Se presenta en forma de diagrama de esquema que explica a un administrador de bases de datos c&oacute;mo se almacenar&aacute;n los datos en una base de datos relacional o no relacional. Igualmente, el tama&ntilde;o y la complejidad del diagrama dependen del proyecto.&nbsp;<\/p><p>Adem&aacute;s, los esquemas de bases de datos son necesarios para dise&ntilde;ar sistemas de gesti&oacute;n de bases de datos (SGBD) y sistemas de gesti&oacute;n de bases de datos relacionales (SGBDR) como MySQL, PostgreSQL y Oracle.<\/p><p>En este art&iacute;culo te explicaremos los dos tipos principales de esquemas de una base de datos, sus requisitos de integraci&oacute;n y te daremos un par de ejemplos.&nbsp;<\/p><p>\n\n\n\n\n\n\n\n<div class=\"protip\">\n                    <h2 class=\"featured-snippet title\">&iquest;Qu&eacute; es un esquema?<\/h2>\n                    <p>Un esquema es un marco o plano para que los programadores construyan y codifiquen una base de datos. Puede ayudar al usuario de una base de datos a entender y conocer la informaci&oacute;n almacenada.<\/p>\n                <\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-esquemas-logicos-y-fisicos-de-bases-de-datos\">Esquemas l&oacute;gicos y f&iacute;sicos de bases de datos<\/h2><p>En lo que respecta al dise&ntilde;o de bases de datos, existen dos tipos de esquemas: <strong>l&oacute;gicos <\/strong>y <strong>f&iacute;sicos<\/strong>.<\/p><h3 class=\"wp-block-heading\" id=\"h-esquema-logico-de-la-base-de-datos\">Esquema l&oacute;gico de la base de datos<\/h3><p>El esquema l&oacute;gico de la base de datos describe las restricciones o reglas l&oacute;gicas que se aplicar&aacute;n a los datos. Su principal objetivo es comprender las entidades de datos, incluidas sus relaciones y atributos.&nbsp;<\/p><p>La creaci&oacute;n de este esquema no debe limitarse a un SGBD concreto. El dise&ntilde;o l&oacute;gico de la base de datos seguir&aacute; siendo el mismo independientemente de la plataforma que utilices.<\/p><p>Una forma de mostrar un dise&ntilde;o l&oacute;gico es mediante una representaci&oacute;n visual creada en un software, denominada &ldquo;<strong>diagrama<\/strong> <strong>entidad-relaci&oacute;n<\/strong>&rdquo;<strong> <\/strong>(diagrama ER). <a href=\"https:\/\/www.microsoft.com\/es-es\/microsoft-365\/visio\/flowchart-software\" target=\"_blank\" rel=\"noreferrer noopener\">Microsoft Visio<\/a> y <a href=\"https:\/\/www.lucidchart.com\/pages\/es\" target=\"_blank\" rel=\"noreferrer noopener\">LucidChart<\/a> son algunos de los programas que puedes utilizar para crear el diagrama. <\/p><p>Un diagrama ER generalmente muestra:<\/p><ul class=\"wp-block-list\">\n<li>Todas las entidades importantes<\/li>\n\n\n\n<li>Atributos de cada entidad<\/li>\n\n\n\n<li>Una clave primaria que identifica de forma &uacute;nica una instancia espec&iacute;fica de una entidad.<\/li>\n\n\n\n<li>Adicionalmente, una clave externa que describe las relaciones entre entidades.<\/li>\n<\/ul><p>Por ejemplo, supongamos que la <strong>entidad &ldquo;Libro&rdquo; <\/strong>tiene los siguientes <strong>atributos: <\/strong>t&iacute;tulo, tema, editorial y a&ntilde;o. Su <strong>clave<\/strong> <strong>primaria <\/strong>es el <strong>&ldquo;ISBN&rdquo;<\/strong>. Adem&aacute;s, <strong>&ldquo;Libro&rdquo; <\/strong>tiene una relaci&oacute;n con la <strong>entidad &ldquo;Autor&rdquo;<\/strong>, representada por la <strong>clave externa &ldquo;ID de autor&rdquo;<\/strong>.<\/p><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"594\" src=\"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/12\/database-schema-es-1-1024x594.jpg\" alt=\"Ejemplo de Esquema l&oacute;gico de la base de datos\" class=\"wp-image-26527\" srcset=\"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/12\/database-schema-es-1.jpg 1024w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/12\/database-schema-es-1-300x174.jpg 300w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/12\/database-schema-es-1-150x87.jpg 150w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/12\/database-schema-es-1-768x445.jpg 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>Ten en cuenta que los esquemas l&oacute;gicos de los distintos proyectos se crean de varias maneras. Tambi&eacute;n tendr&aacute;n sintaxis diferentes para describir las restricciones l&oacute;gicas y la arquitectura de los datos.<\/p><h3 class=\"wp-block-heading\" id=\"h-esquema-fisico-de-la-base-de-datos\">Esquema f&iacute;sico de la base de datos<\/h3><p>El concepto de esquema f&iacute;sico de la base de datos representa c&oacute;mo se organizan f&iacute;sicamente los datos en un sistema de almacenamiento, normalmente en forma de ficheros e &iacute;ndices. Transforma el esquema l&oacute;gico de la base de datos en la estructura f&iacute;sica de datos que funciona en un SGBD espec&iacute;fico.<\/p><p>Todas las estructuras de tabla se muestran en el dise&ntilde;o del esquema f&iacute;sico de la base de datos. Esto incluye el nombre de la columna, el tipo de datos y las restricciones. Adem&aacute;s, las claves primarias, las claves externas y la relaci&oacute;n entre ellas.<\/p><p>Un modelo f&iacute;sico de base de datos tambi&eacute;n tiene las siguientes caracter&iacute;sticas:<\/p><ul class=\"wp-block-list\">\n<li>Explica las necesidades de datos de un proyecto<\/li>\n\n\n\n<li>Se especifican todas las tablas y columnas<\/li>\n\n\n\n<li>Las claves externas se utilizan para determinar la conexi&oacute;n entre tablas.<\/li>\n\n\n\n<li>Puede ser diferente del modelo l&oacute;gico debido a limitaciones f&iacute;sicas.<\/li>\n<\/ul><p>En esta fase, est&aacute;s mapeando:<\/p><ul class=\"wp-block-list\">\n<li>Entidades a tablas<\/li>\n\n\n\n<li>Atributos de las columnas<\/li>\n\n\n\n<li>Claves primarias a &iacute;ndices &uacute;nicos<\/li>\n\n\n\n<li>Claves externas a &iacute;ndices no &uacute;nicos<\/li>\n<\/ul><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"571\" src=\"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/12\/database-schema-es-2-1024x571.jpg\" alt=\"Ejemplo de Esquema f&iacute;sico de la base de datos\" class=\"wp-image-26528\" srcset=\"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/12\/database-schema-es-2.jpg 1024w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/12\/database-schema-es-2-300x167.jpg 300w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/12\/database-schema-es-2-150x84.jpg 150w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2022\/12\/database-schema-es-2-768x429.jpg 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><h2 class=\"wp-block-heading\" id=\"h-requisitos-de-integracion-de-esquemas-de-bases-de-datos\">Requisitos de integraci&oacute;n de esquemas de bases de datos<\/h2><p>Una base de datos puede tener m&aacute;s de un esquema. Por lo tanto, para que funcionen sin problemas, deben cumplirse los siguientes requisitos:<\/p><ul class=\"wp-block-list\">\n<li><strong>Preservaci&oacute;n del solapamiento<\/strong>: aseg&uacute;rate de que los elementos que se solapan en los esquemas est&aacute;n en una tabla de esquema de base de datos.<\/li>\n\n\n\n<li><strong>Preservaci&oacute;n de solapamiento ampliado<\/strong>: copia entidades conectadas con elementos solapados (que s&oacute;lo aparecen en un esquema) en el esquema de base de datos final.<\/li>\n\n\n\n<li><strong>Normalizaci&oacute;n<\/strong>: evita agrupar elementos y relaciones independientes en una misma tabla.<\/li>\n\n\n\n<li><strong>Minimalidad<\/strong>: comprueba que no se pierden entidades de ninguno de los esquemas de la base de datos.<\/li>\n<\/ul><h2 class=\"wp-block-heading\" id=\"h-ejemplos-de-esquemas-de-bases-de-datos\">Ejemplos de esquemas de bases de datos<\/h2><p>Ahora que ya sabes lo que es un esquema y sus requisitos, veamos ejemplos de esquemas de las bases de datos SQL y PostgreSQL.<\/p><h3 class=\"wp-block-heading\" id=\"h-1-sql\">1. SQL<\/h3><p>Un esquema en un servidor SQL es una colecci&oacute;n ilimitada de objetos de base de datos que se vinculan a un sistema de base de datos. &Eacute;ste incluye tablas, funciones, vistas e &iacute;ndices. Es un tipo l&oacute;gico de esquema que aporta una serie de ventajas, por ejemplo:<\/p><ul class=\"wp-block-list\">\n<li>Un mismo esquema puede utilizarse en varias bases de datos.<\/li>\n\n\n\n<li>Los permisos de seguridad pueden proteger objetos de base de datos como tablas e &iacute;ndices.<\/li>\n\n\n\n<li>Es posible transferir la propiedad de los esquemas.<\/li>\n\n\n\n<li>Los objetos creados en la base de datos pueden moverse entre esquemas.<\/li>\n\n\n\n<li>Ayuda en el proceso de acceso y manipulaci&oacute;n de los objetos de la base de datos.<\/li>\n<\/ul><p>La sintaxis general para crear un esquema en SQL es:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">CREATE SCHEMA [schema_title] [AUTHORIZATION owner]\n[DEFAULT CHARACTER SET set_name]\n[PATH schema_title[, ...]]\n[ ANSI CREATE statements [...] ]\n[ ANSI GRANT statements [...] ];<\/pre><p>Los par&aacute;metros utilizados son:<\/p><ul class=\"wp-block-list\">\n<li><strong>schema_title:<\/strong> el nombre del esquema creado.<\/li>\n\n\n\n<li><strong>AUTHORIZATION owner:<\/strong> nombre del usuario, propietario del esquema.<\/li>\n\n\n\n<li><strong>DEFAULT CHARACTER SET set_name:<\/strong> define el conjunto de caracteres por defecto para los objetos del esquema.<\/li>\n\n\n\n<li><strong>PATH schema_title[, &hellip;]:<\/strong> ruta y nombre de archivo opcionales.<\/li>\n\n\n\n<li><strong>ANSI CREATE statements [&hellip;]:<\/strong> consta de una &uacute;nica sentencia CREATE o m&aacute;s.&nbsp;<\/li>\n\n\n\n<li><strong>ANSI GRANT statements [&hellip;]:<\/strong> consta de una &uacute;nica sentencia GRANT o m&aacute;s.&nbsp;<\/li>\n<\/ul><h3 class=\"wp-block-heading\" id=\"h-2-postgresql\">2. PostgreSQL<\/h3><p>El esquema en PostgreSQL es un espacio de nombres que contiene objetos de base de datos con nombre. Esto incluye tablas, tipos de datos, &iacute;ndices, funciones, vistas y operadores. Asegura que todos los objetos tienen nombres &uacute;nicos.<\/p><p>Una base de datos puede tener m&aacute;s de un esquema, pero cada uno forma parte de una sola base de datos. Objetos diferentes de dos esquemas tambi&eacute;n pueden compartir el mismo nombre.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">CREATE SCHEMA schema_title [ AUTHORIZATION user] [ schema_element [ ... ] ]\nCREATE SCHEMA AUTHORIZATION user [ schema_element [ ... ] ]\nCREATE SCHEMA IF NOT EXISTS schema_title [ AUTHORIZATION user ]\nCREATE SCHEMA IF NOT EXISTS AUTHORIZATION user<\/pre><p>PostgreSQL tambi&eacute;n crea autom&aacute;ticamente un esquema p&uacute;blico para cada nueva base de datos. Aqu&iacute; es donde se encuentran los objetos sin nombre de esquema.<\/p><h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusi&oacute;n<\/h2><p>Un <strong>esquema de base de datos <\/strong>es un plan o diagrama que se refiere a la organizaci&oacute;n de los datos almacenados en la base de datos. Existen dos tipos de esquema: <strong>l&oacute;gico <\/strong>y <strong>f&iacute;sico<\/strong>. El primero representa c&oacute;mo se organizan los datos y el segundo define la estructura de su almacenamiento f&iacute;sico.<\/p><p>Un esquema de base de datos es vital para crear bases de datos y sistemas de gesti&oacute;n de bases de datos. Ayuda a los usuarios a entender y leer la informaci&oacute;n almacenada en la base de datos.<\/p><p>Esperamos que hayas aprendido cu&aacute;l es la funci&oacute;n de un esquema de base de datos y c&oacute;mo utilizarlo. Si tienes alguna pregunta sobre este tema o necesitas alg&uacute;n dato espec&iacute;fico, no dudes en dejarnos un comentario a continuaci&oacute;n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un esquema de base de datos es una parte integral del desarrollo de aplicaciones o programas inform&aacute;ticos, especialmente los que giran en torno a datos y bases de datos. En pocas palabras, el esquema de base de datos es un t&eacute;rmino utilizado para una estructura o disposici&oacute;n que define un conjunto de datos. Es decir, [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/co\/tutoriales\/esquema-de-base-de-datos\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":353,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"Gu\u00eda r\u00e1pida: Qu\u00e9 es un Esquema de base de datos y ejemplos","rank_math_description":"En esta gu\u00eda te explicamos qu\u00e9 es un esquema de base de datos con ejemplos pr\u00e1cticos para que puedas entender su funcionamiento y m\u00e1s...","rank_math_focus_keyword":"esquema de base de datos","footnotes":""},"categories":[8284],"tags":[],"class_list":["post-26490","post","type-post","status-publish","format-standard","hentry","category-glosario"],"hreflangs":[{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/esquema-de-base-de-datos","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/esquema-de-base-de-datos","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/esquema-de-base-de-datos","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/esquema-de-base-de-datos","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/posts\/26490","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/users\/353"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/comments?post=26490"}],"version-history":[{"count":5,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/posts\/26490\/revisions"}],"predecessor-version":[{"id":26529,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/posts\/26490\/revisions\/26529"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/media?parent=26490"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/categories?post=26490"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/tags?post=26490"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}