{"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\/ro\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-2-0","title":{"rendered":"Lansarea bazei de date rela\u021bionale \u0219i grafice EdgeDB 2.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>A fost lansat\u0103 versiunea 2.0 a sistemului de baze de date EdgeDB, care implementeaz\u0103 un model de date rela\u021bional-grafic \u0219i limbajul de interogare EdgeQL, optimizat pentru gestionarea datelor hierarchice complexe. Codul este scris \u00een limbajele Python \u0219i Rust (parserul \u0219i p\u0103r\u021bile critice pentru performan\u021b\u0103) \u0219i este distribuit sub licen\u021ba Apache 2.0. Proiectul se dezvolt\u0103 sub forma unei extensii pentru PostgreSQL. Bibliotecile client sunt preg\u0103tite pentru limbajele Python, Go, Rust \u0219i TypeScript\/Javascript. Este oferit un instrument de linie de comand\u0103 pentru gestionarea sistemului de baze de date \u0219i pentru execu\u021bia interactiv\u0103 a interog\u0103rilor (REPL).      <\/p>\n<p>\u00cen locul modelului de date bazat pe tabele, EdgeDB utilizeaz\u0103 un sistem declara\u021biv bazat pe tipuri de obiecte. \u00cen loc de chei externe (foreign key) pentru a defini rela\u021biile \u00eentre tipuri, se aplic\u0103 legarea prin referin\u021be (un obiect poate fi folosit ca proprietate a altui obiect).   <\/p>\n<p>     tip Persoan\u0103 {       proprietate obligatorie nume -&gt; str;     }     tip Film {       proprietate obligatorie titlu -&gt; str;       leg\u0103turi multiple actori -&gt; Persoan\u0103;     }      <\/p>\n<p>Pentru a accelera procesarea interog\u0103rilor, pot fi utilizate indec\u0219i. De asemenea, sunt suportate func\u021bionalit\u0103\u021bi cum ar fi tiparea strict\u0103 a propriet\u0103\u021bilor, restric\u021bii asupra valorilor propriet\u0103\u021bilor, propriet\u0103\u021bi calculate \u0219i proceduri stocate. Printre caracteristicile schemei de stocare obiectual\u0103 EdgeDB, care este similar\u0103 cu ORM, se num\u0103r\u0103 posibilitatea de amestecare a schemelor, legarea propriet\u0103\u021bilor din diferite obiecte \u0219i suportul integrat pentru JSON.     <\/p>\n<p>Sunt furnizate instrumente \u00eencorporate pentru migrarea schemei de stocare \u2014 dup\u0103 modificarea schemei specificate \u00eentr-un fi\u0219ier esdl separat, este suficient s\u0103 executa\u021bi comanda \u201eedgedb migration create\u201d iar SGBD-ul va analiza diferen\u021bele din schem\u0103 \u0219i va genera interactiv un script pentru trecerea la noua schem\u0103. Istoricul modific\u0103rilor schemei este urm\u0103rit automat.    <\/p>\n<p>Pentru formarea interog\u0103rilor se suport\u0103 at\u00e2t limbajul de interogare GraphQL, c\u00e2t \u0219i propriul limbaj EdgeDB, care reprezint\u0103 o adaptare a SQL pentru datele ierarhice. \u00cen loc de liste, rezultatele interog\u0103rii sunt prezentate \u00eentr-o form\u0103 structurat\u0103, iar \u00een locul subinterog\u0103rilor \u0219i opera\u021biunilor JOIN, se ofer\u0103 posibilitatea de a specifica o interogare EdgeQL ca expresie \u00een cadrul unei alte interog\u0103ri. Se sus\u021bin tranzac\u021bii \u0219i bucle.    <\/p>\n<p>     select Film {       titlu,       actori: {         nume       }     }     filtrare .titlu = &#171;The Matrix&#187;       inserare Film {       titlu := &#171;The Matrix Resurrections&#187;,       actori := (         select Persoan\u0103         filtrare .nume \u00een {           &#8216;Keanu Reeves&#8217;,           &#8216;Carrie-Anne Moss&#8217;,           &#8216;Laurence Fishburne&#8217;         }       )     }       pentru num\u0103r \u00een {0, 1, 2, 3}     unire (       select { num\u0103r, num\u0103r + 0.5 }     );      <\/p>\n<p>\u00cen noua versiune:  <\/p>\n<ul>\n<li class=\"l\"> A fost ad\u0103ugat un web-interfa\u021b\u0103 \u00eencorporat\u0103 pentru administrarea Bazei de Date, care permite vizualizarea \u0219i editarea datelor, executarea interog\u0103rilor EdgeQL \u0219i analiza schemei de stocare aplicate. Interfa\u021ba se lanseaz\u0103 cu comanda &#171;edgedb ui&#187;, dup\u0103 care devine accesibil\u0103 prin adresarea c\u0103tre localhost.  <center><img decoding=\"async\" alt=\"Lansarea bazei de date rela\u021bionale \u0219i grafice EdgeDB 2.0\" src=\"\/wp-content\/uploads\/2022\/07\/7568d457e9559e7aafe10f7b526f8cac.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>\n<li class=\"l\"> A fost implementat\u0103 expresia &#171;GROUP&#187;, care permite sec\u021bionarea \u0219i agregarea datelor \u0219i executarea grup\u0103rii datelor dup\u0103 expresii EdgeQL arbitrare, similar cu gruparea \u00een opera\u021bia SELECT.\n<li class=\"l\"> Posibilitatea de a gestiona accesul la nivel de obiecte. Regulile de acces sunt definite la nivelul schemei de stocare \u0219i permit restric\u021bionarea utiliz\u0103rii unui anumit set de obiecte \u00een opera\u021biunile de selec\u021bie, inserare, \u0219tergere \u0219i actualizare. De exemplu, se poate ad\u0103uga o regul\u0103 care permite actualizarea publica\u021biei doar autorului.\n<li class=\"l\"> A fost ad\u0103ugat\u0103 posibilitatea utiliz\u0103rii variabilelor globale \u00een schema de stocare. Pentru asocierea cu utilizatorul a fost propus\u0103 o nou\u0103 variabil\u0103 global\u0103 current_user.\n<li class=\"l\"> A fost ad\u0103ugat\u0103 suportul pentru tipurile care definesc intervale de valori (range).\n<li class=\"l\"> A fost preg\u0103tit\u0103 biblioteca oficial\u0103 de client pentru limbajul Rust.\n<li class=\"l\"> A fost stabilizat protocolul binar EdgeDB, care acum ofer\u0103 posibilitatea de a gestiona simultan mai multe sesiuni diferite \u00een cadrul unei singure conexiuni de re\u021bea, forwarding prin HTTP, utilizarea variabilelor globale \u0219i a st\u0103rilor locale.\n<li class=\"l\"> S-a ad\u0103ugat suport pentru activarea prin socket, permi\u021b\u00e2nd p\u0103strarea procesorului de server \u00een memorie \u0219i pornirea acestuia doar la \u00eencercarea de a stabili o conexiune (util pentru economisirea resurselor pe sistemele dezvoltatorilor).          <\/ul>\n<p>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=57572\">opennet.ro<\/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.5 - 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\/ro\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-2-0\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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\udd47Lansarea SGBD-ului rela\u021bional-grafic EdgeDB 2.0 | ProHoster","description":"A fost lansat\u0103 versiunea 2.0 a SGBD-ului EdgeDB, care implementeaz\u0103 modelul de date rela\u021bional-grafic \u0219i limbajul de interogare EdgeQL, optimizate pentru lucrul cu date complexe \u0219i ierarhice.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-2-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/104730","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=104730"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/104730\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/104731"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=104730"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=104730"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=104730"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}