{"id":115237,"date":"2024-04-22T14:30:04","date_gmt":"2024-04-22T12:30:04","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-relyaczionno-grafovoj-subd-edgedb-5-0"},"modified":"2024-04-22T14:30:04","modified_gmt":"2024-04-22T12:30:04","slug":"vypusk-relyaczionno-grafovoj-subd-edgedb-5-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-5-0","title":{"rendered":"Lanzamiento de la base de datos relacional y gr\u00e1fica EdgeDB 5.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Se ha lanzado la versi\u00f3n 5.0 de EdgeDB, que implementa un modelo de datos relacional y gr\u00e1fico y un lenguaje de consulta, EdgeQL, optimizado para trabajar con datos jer\u00e1rquicos complejos. El proyecto se desarrolla como una extensi\u00f3n de PostgreSQL, cuyo c\u00f3digo est\u00e1 escrito en Python y Rust (el analizador y las partes cr\u00edticas en rendimiento), y se distribuye bajo la licencia Apache 2.0. Se han preparado bibliotecas cliente para los lenguajes Python, Go, Rust, .NET, Elixir y TypeScript\/Javascript. Se proporciona una herramienta de l\u00ednea de comandos para gestionar la base de datos y ejecutar consultas interactivas (REPL).    <\/p>\n<p>En lugar de un modelo de datos basado en tablas, EdgeDB utiliza un sistema declarativo basado en tipos de objeto. En lugar de claves externas (foreign key) para definir relaciones entre los tipos, se utiliza la vinculaci\u00f3n mediante referencias (un objeto puede ser utilizado como propiedad de otro objeto).   <\/p>\n<p>     type Person {       required name: str;     }     type Movie {       required title: str;       multi actors: Person;     }      <\/p>\n<p>Se admiten caracter\u00edsticas como la tipificaci\u00f3n estricta de propiedades, restricciones de valores de propiedades, propiedades calculadas y procedimientos almacenados. Entre las caracter\u00edsticas del esquema de objeto de almacenamiento de EdgeDB, que se asemeja a ORM, se destaca la posibilidad de mezclar esquemas, vincular propiedades de diferentes objetos y el soporte integrado de JSON. Se pueden aplicar \u00edndices para acelerar el procesamiento de consultas.     <\/p>\n<p>Se proporcionan herramientas integradas para la migraci\u00f3n del esquema de almacenamiento \u2014 tras modificar el esquema definido en un archivo esdl separado, basta con ejecutar el comando \u00abedgedb migration create\u00bb y el SGBD analizar\u00e1 las diferencias en el esquema y generar\u00e1 interactivamente un script para la transici\u00f3n al nuevo esquema. La historia de cambios en el esquema se rastrea autom\u00e1ticamente.    <\/p>\n<p>Para la formaci\u00f3n de consultas, se admite el lenguaje de consulta GraphQL y el propio lenguaje de EdgeDB, que representa una adaptaci\u00f3n de SQL para datos jer\u00e1rquicos. En lugar de listas, los resultados de la consulta se presentan de manera estructurada, y en lugar de subconsultas y operaciones JOIN, se permite especificar una consulta EdgeQL como una expresi\u00f3n dentro de otra consulta. Se admiten transacciones y bucles.    <\/p>\n<p>     seleccionar Pel\u00edcula {       t\u00edtulo,       actores: {         nombre       }     }     filtrar .t\u00edtulo = \u00abThe Matrix\u00bb       insertar Pel\u00edcula {       t\u00edtulo := \u00abThe Matrix Resurrections\u00bb,       actores := (         seleccionar Persona         filtrar .nombre en {           \u2018Keanu Reeves\u2019,           \u2018Carrie-Anne Moss\u2019,           \u2018Laurence Fishburne\u2019         }       )     }      <\/p>\n<p>En la nueva versi\u00f3n:  <\/p>\n<ul>\n<li class=\"l\">Se ha a\u00f1adido soporte para ramificaci\u00f3n (\u00abbranching\u00bb), lo que permite utilizar en el manejo de datos y esquemas el concepto de ramas, aplicado en sistemas de control de versiones. En lugar del t\u00e9rmino \u00abbase de datos\u00bb, en la nueva versi\u00f3n se ha propuesto el concepto de \u00abrama\u00bb (branch), y los comandos \u00abcreate database\u00bb y \u00abdrop database\u00bb han sido declarados obsoletos y en su lugar se recomienda utilizar los nuevos comandos \u00abcreate empty branch\u00bb y \u00abdrop branch\u00bb. Adem\u00e1s de ramas vac\u00edas, mediante los comandos \u00abcreate schema branch\u00bb y \u00abcreate data branch\u00bb se pueden crear ramificaciones a partir de ramas y bases de datos existentes, copiando de ellas el esquema de almacenamiento y los datos.\n<p>Desde un punto de vista pr\u00e1ctico, el soporte de ramas permite sincronizar los datos con el c\u00f3digo utilizado para su procesamiento, manteniendo la compatibilidad con el c\u00f3digo antiguo. Por ejemplo, despu\u00e9s de actualizar el c\u00f3digo, se puede vincular una nueva rama de datos que tenga en cuenta los cambios en el esquema de almacenamiento realizados en el c\u00f3digo. Esta funcionalidad resulta \u00fatil para simplificar el desarrollo y la prueba de nuevas versiones de software, ya que, una vez listas, solo es necesario cambiar a la rama ya probada.      <\/p>\n<li class=\"l\"> En la extensi\u00f3n pgvector, utilizada para el almacenamiento y consulta eficiente de vectores, se ha a\u00f1adido un nuevo tipo de \u00edndices HNSW (Hierarchical Navigable Small Worlds), que, al igual que el \u00edndice IVFFlat, est\u00e1 disponible en tres variantes: ext::pgvector::hnsw_euclidean, ext::pgvector::hnsw_ip y ext::pgvector::hnsw_cosine. Adem\u00e1s, se han ampliado las capacidades de ajuste fino de los \u00edndices a trav\u00e9s del objeto ext::pgvector::Config.\n<li class=\"l\"> Se han a\u00f1adido capacidades adicionales de autenticaci\u00f3n. En la extensi\u00f3n auth se ha implementado soporte para esquemas de autenticaci\u00f3n sin contrase\u00f1a WebAuthn (Passkeys) y \u00abmagic links\u00bb (basados en email). Se ha a\u00f1adido soporte para el uso de plataformas Slack y Discord como proveedores de OAuth.\n<li class=\"l\"> Se han realizado optimizaciones de rendimiento. En la implementaci\u00f3n de cach\u00e9 de resultados de compilaci\u00f3n de consultas, se ha garantizado la conservaci\u00f3n del estado entre reinicios y se ha a\u00f1adido la recompilaci\u00f3n autom\u00e1tica despu\u00e9s de la migraci\u00f3n. Se ha mejorado la velocidad de operaci\u00f3n con grandes esquemas de almacenamiento.\n<li class=\"l\"> En el lenguaje de consultas EdgeQL, en la expresi\u00f3n \u00abfor\u00bb se permite omitir la palabra clave \u00abunion\u00bb en consultas b\u00e1sicas que utilizan las expresiones insert, update o delete.\n<li class=\"l\"> Se ha a\u00f1adido el comando vacuum() para limpiar, optimizar y empaquetar el contenido de la base de datos.\n<li class=\"l\"> Se ha permitido la conversi\u00f3n de datos entre el tipo bytes y los tipos int16, int32, int64 y uuid, utilizando las funciones to_bytes(), to_uuid() y to_int*().\n<li class=\"l\"> Se ha a\u00f1adido la posibilidad de cerrar todas las conexiones a la base de datos despu\u00e9s de realizar la operaci\u00f3n \u00abdrop database\u00bb.                  <\/ul>\n<p>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=61041\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u0421\u0423\u0411\u0414 EdgeDB 5.0, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0439 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e-\u0433\u0440\u0430\u0444\u043e\u0432\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u044f\u0437\u044b\u043a \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 EdgeQL, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u041f\u0440\u043e\u0435\u043a\u0442 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0435 \u043d\u0430\u0434\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430\u0434 PostgreSQL, \u043a\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0430\u0445 Python \u0438 Rust (\u043f\u0430\u0440\u0441\u0435\u0440 \u0438 \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u0435 \u043a \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0447\u0430\u0441\u0442\u0438), \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 Apache 2.0. \u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u044b \u0434\u043b\u044f \u044f\u0437\u044b\u043a\u043e\u0432 Python, Go, Rust. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-115237","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u0421\u0423\u0411\u0414 EdgeDB 5.0, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0439 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e-\u0433\u0440\u0430\u0444\u043e\u0432\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u044f\u0437\u044b\u043a \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 EdgeQL, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-5-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e-\u0433\u0440\u0430\u0444\u043e\u0432\u043e\u0439 \u0421\u0423\u0411\u0414 EdgeDB 5.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u0421\u0423\u0411\u0414 EdgeDB 5.0, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0439 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e-\u0433\u0440\u0430\u0444\u043e\u0432\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u044f\u0437\u044b\u043a \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 EdgeQL, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-5-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-04-22T12:30:04+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-04-22T12:30:04+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Lanzamiento del SGBD relacional y gr\u00e1fico EdgeDB 5.0 | ProHoster","description":"Est\u00e1 disponible la versi\u00f3n del SGBD EdgeDB 5.0, que implementa un modelo de datos relacional y gr\u00e1fico y el lenguaje de consultas EdgeQL, optimizados para trabajar con datos jer\u00e1rquicos complejos.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-5-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e-\u0433\u0440\u0430\u0444\u043e\u0432\u043e\u0439 \u0421\u0423\u0411\u0414 EdgeDB 5.0 | ProHoster","og:description":"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u0421\u0423\u0411\u0414 EdgeDB 5.0, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0439 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e-\u0433\u0440\u0430\u0444\u043e\u0432\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u044f\u0437\u044b\u043a \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 EdgeQL, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.","og:url":"https:\/\/prohoster.info\/es\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-5-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2024-04-22T12:30:04+00:00","article:modified_time":"2024-04-22T12:30:04+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"115237","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 22:53:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-22 22:53:19","updated":"2026-01-22 22:53:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/115237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=115237"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/115237\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=115237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=115237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=115237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}