{"id":104730,"date":"2022-07-29T15:37:11","date_gmt":"2022-07-29T13:37:12","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-relyaczionno-grafovoj-subd-edgedb-2-0"},"modified":"2022-07-29T15:37:11","modified_gmt":"2022-07-29T13:37:12","slug":"vypusk-relyaczionno-grafovoj-subd-edgedb-2-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-2-0","title":{"rendered":"Lan\u00e7amento do SGBD relacional e gr\u00e1fico EdgeDB 2.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Foi lan\u00e7ado o EdgeDB 2.0, um SGBD que implementa um modelo de dados relacional e gr\u00e1fico, juntamente com a linguagem de consulta EdgeQL, otimizada para trabalhar com dados hier\u00e1rquicos complexos. O c\u00f3digo \u00e9 escrito em Python e Rust (componente do analisador e partes cr\u00edticas para desempenho) e distribu\u00eddo sob a licen\u00e7a Apache 2.0. O projeto \u00e9 desenvolvido como uma extens\u00e3o do PostgreSQL. Bibliotecas cliente est\u00e3o dispon\u00edveis para as linguagens Python, Go, Rust e TypeScript\/Javascript. Um conjunto de ferramentas de linha de comando \u00e9 fornecido para gerenciar o SGBD e executar consultas de forma interativa (REPL).      <\/p>\n<p>Em vez de um modelo de dados baseado em tabelas, o EdgeDB utiliza um sistema declarativo baseado em tipos de objetos. Em vez de chaves externas (foreign key) para definir relacionamentos entre tipos, s\u00e3o utilizadas refer\u00eancias de liga\u00e7\u00e3o (um objeto pode ser usado como propriedade de outro objeto).   <\/p>\n<p>     tipo Pessoa {       propriedade obrigat\u00f3ria nome -&gt; str;     }     tipo Filme {       propriedade obrigat\u00f3ria t\u00edtulo -&gt; str;       liga\u00e7\u00e3o m\u00faltipla atores -&gt; Pessoa;     }      <\/p>\n<p>Para acelerar o processamento de consultas, podem ser utilizados \u00edndices. Tamb\u00e9m s\u00e3o suportadas funcionalidades como tipagem estrita de propriedades, restri\u00e7\u00f5es de valores de propriedades, propriedades calculadas e procedimentos armazenados. Entre as caracter\u00edsticas do esquema de armazenamento orientado a objetos do EdgeDB, que se assemelha ao ORM, destaca-se a capacidade de misturar esquemas, vincular propriedades de diferentes objetos e suporte integrado a JSON.     <\/p>\n<p>S\u00e3o fornecidas ferramentas integradas para migra\u00e7\u00e3o de esquema de armazenamento \u2014 ap\u00f3s alterar o esquema definido em um arquivo esdl separado, basta executar o comando \u00abedgedb migration create\u00bb e o SGBD analisar\u00e1 as diferen\u00e7as no esquema e gerar\u00e1 interativamente um script para a transi\u00e7\u00e3o para o novo esquema. A hist\u00f3ria de altera\u00e7\u00f5es do esquema \u00e9 rastreada automaticamente.    <\/p>\n<p>O suporte para a forma\u00e7\u00e3o de consultas inclui tanto a linguagem de consulta GraphQL quanto a linguagem pr\u00f3pria do EdgeDB, que \u00e9 uma adapta\u00e7\u00e3o do SQL para dados hier\u00e1rquicos. Em vez de listas, os resultados das consultas s\u00e3o apresentadas de forma estruturada, e, ao inv\u00e9s de subconsultas e opera\u00e7\u00f5es JOIN, \u00e9 poss\u00edvel especificar uma consulta EdgeQL como uma express\u00e3o dentro de outra consulta. Transa\u00e7\u00f5es e loops s\u00e3o suportados.    <\/p>\n<p>     selecionar Filme {       t\u00edtulo,       atores: {         nome       }     }     filtro .t\u00edtulo = &#171;The Matrix&#187;       inserir Filme {       t\u00edtulo := &#171;The Matrix Resurrections&#187;,       atores := (         selecionar Pessoa         filtro .nome em {           &#8216;Keanu Reeves&#8217;,           &#8216;Carrie-Anne Moss&#8217;,           &#8216;Laurence Fishburne&#8217;         }       )     }       para n\u00famero em {0, 1, 2, 3}     uni\u00e3o (       selecionar { n\u00famero, n\u00famero + 0.5 }     );      <\/p>\n<p>Na nova vers\u00e3o:  <\/p>\n<ul>\n<li class=\"l\"> Adicionado um interface web embutida para administra\u00e7\u00e3o de banco de dados, permitindo visualizar e editar dados, executar consultas EdgeQL e analisar o esquema de armazenamento aplicado. A interface \u00e9 iniciada com o comando &#171;edgedb ui&#187;, ap\u00f3s a execu\u00e7\u00e3o da qual fica dispon\u00edvel acessando localhost.  <center><img decoding=\"async\" alt=\"Lan\u00e7amento do SGBD relacional e gr\u00e1fico EdgeDB 2.0\" src=\"\/wp-content\/uploads\/2022\/07\/7568d457e9559e7aafe10f7b526f8cac.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>\n<li class=\"l\"> Implementado a express\u00e3o &#171;GROUP&#187;, que permite particionar e agregar dados e executar a agrupamento de dados por express\u00f5es EdgeQL arbitr\u00e1rias, semelhante \u00e0 agrupamento na opera\u00e7\u00e3o SELECT.\n<li class=\"l\"> Possibilidade de gerenciamento de acesso a n\u00edvel de objetos. As regras de acesso s\u00e3o definidas a n\u00edvel de esquema de armazenamento e permitem limitar o uso de um determinado conjunto de objetos nas opera\u00e7\u00f5es de sele\u00e7\u00e3o, inser\u00e7\u00e3o, exclus\u00e3o e atualiza\u00e7\u00e3o. Por exemplo, pode-se adicionar uma regra que permite a atualiza\u00e7\u00e3o de uma publica\u00e7\u00e3o apenas ao autor.\n<li class=\"l\"> Adicionada a possibilidade de uso de vari\u00e1veis globais no esquema de armazenamento. Para vincula\u00e7\u00e3o ao usu\u00e1rio, foi proposta uma nova vari\u00e1vel global chamada current_user.\n<li class=\"l\"> Adicionada suporte a tipos que definem intervalos de valores (range).\n<li class=\"l\"> Preparada a biblioteca cliente oficial para a linguagem Rust.\n<li class=\"l\"> Estabilizado o protocolo bin\u00e1rio do EdgeDB, que agora pode processar simultaneamente v\u00e1rias sess\u00f5es diferentes dentro de uma \u00fanica conex\u00e3o de rede, al\u00e9m de suportar passagem atrav\u00e9s de HTTP, uso de vari\u00e1veis globais e estados locais.\n<li class=\"l\"> Foi adicionado suporte para ativa\u00e7\u00e3o por socket, permitindo que o manipulador do servidor n\u00e3o permane\u00e7a na mem\u00f3ria e seja acionado apenas quando houver uma tentativa de conex\u00e3o (\u00fatil para economizar recursos em sistemas de desenvolvedores).          <\/ul>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=57572\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u0421\u0423\u0411\u0414 EdgeDB 2.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. \u041a\u043e\u0434 \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. \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. \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 \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":104731,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-104730","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u0421\u0423\u0411\u0414 EdgeDB 2.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\/pt\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-2-0\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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 2.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u0421\u0423\u0411\u0414 EdgeDB 2.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\/pt\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-2-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=\"2022-07-29T13:37:12+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-07-29T13:37:12+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\udd47Lan\u00e7amento do banco de dados relacional e gr\u00e1fico EdgeDB 2.0 | ProHoster","description":"Foi lan\u00e7ado o banco de dados EdgeDB 2.0, que implementa um modelo de dados relacional e gr\u00e1fico, al\u00e9m da linguagem de consultas EdgeQL, otimizados para trabalhar com dados hier\u00e1rquicos complexos.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-2-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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 2.0 | ProHoster","og:description":"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u0421\u0423\u0411\u0414 EdgeDB 2.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\/pt\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-2-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":"2022-07-29T13:37:12+00:00","article:modified_time":"2022-07-29T13:37:12+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"104730","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2022-07-29 13:38:13","updated":"2022-10-02 04:59:55","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/104730","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=104730"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/104730\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/104731"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=104730"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=104730"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=104730"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}