{"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\/sv\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-2-0","title":{"rendered":"Utgivning av den relationsgrafiska DBMS EdgeDB 2.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>EdgeDB 2.0 har sl\u00e4ppts, med en relations-grafdatabasmodell och EdgeQL-fr\u00e5gespr\u00e5k, optimerade f\u00f6r komplexa hierarkiska data. Koden \u00e4r skriven i Python och Rust (parser och prestandakritiska delar) och distribueras under Apache 2.0-licensen. Projektet utvecklas som en \u00f6verbyggnad p\u00e5 PostgreSQL. Klientbibliotek finns f\u00f6r Python, Go, Rust och TypeScript\/Javascript. Ett kommandoradsverktyg erbjuds f\u00f6r att hantera databasen och f\u00f6r interaktiv k\u00f6rning av fr\u00e5gor (REPL).      <\/p>\n<p>Ist\u00e4llet f\u00f6r en tabellbaserad datamodell anv\u00e4nder EdgeDB ett deklarativt system baserat p\u00e5 objekttyper. Ist\u00e4llet f\u00f6r prim\u00e4rnycklar (foreign key) f\u00f6r att definiera relationen mellan typer, anv\u00e4nds l\u00e4nkbindningar (en objekt kan anv\u00e4ndas som en egenskap av ett annat objekt).   <\/p>\n<p>     typ Person {       obligatorisk egenskap namn -&gt; str;     }     typ Film {       obligatorisk egenskap titel -&gt; str;       flera l\u00e4nkade akt\u00f6rer -&gt; Person;     }      <\/p>\n<p>F\u00f6r att p\u00e5skynda bearbetningen av fr\u00e5gor kan index anv\u00e4ndas. Funktioner som strikt typning av egenskaper, v\u00e4rdebegr\u00e4nsningar, ber\u00e4knade egenskaper och lagrade procedurer st\u00f6ds ocks\u00e5. En speciell egenskap hos EdgeDB:s objektlagringsschema, som liknar ORM, \u00e4r m\u00f6jligheten att blanda scheman, koppla egenskaper fr\u00e5n olika objekt och integrerat st\u00f6d f\u00f6r JSON.     <\/p>\n<p>Inbyggda verktyg f\u00f6r migrering av lagringsscheman tillhandah\u00e5lls \u2014 efter att ha \u00e4ndrat schemat som anges i en separat esdl-fil, r\u00e4cker det med att k\u00f6ra kommandot \u00abedgedb migration create\u00bb s\u00e5 analyserar databasen skillnaderna i schemat och interaktivt genererar en skript f\u00f6r att \u00f6verg\u00e5 till det nya schemat. Historiken f\u00f6r f\u00f6r\u00e4ndringar av schemat sp\u00e5ras automatiskt.    <\/p>\n<p>F\u00f6r att skapa fr\u00e5gor st\u00f6ds b\u00e5de GraphQL-fr\u00e5gespr\u00e5k och det egna EdgeDB-spr\u00e5ket, som \u00e4r en anpassning av SQL f\u00f6r hierarkiska data. Ist\u00e4llet f\u00f6r listor presenteras fr\u00e5geresultaten i en strukturerad form, och ist\u00e4llet f\u00f6r underfr\u00e5gor och JOIN-operationer ges m\u00f6jligheten att ange en EdgeQL-fr\u00e5ga som ett uttryck inom en annan fr\u00e5ga. Transaktioner och loopar st\u00f6ds.    <\/p>\n<p>     v\u00e4lj Film {       titel,       akt\u00f6rer: {         namn       }     }     filtrera .titel = \u00abThe Matrix\u00bb       infoga Film {       titel := \u00abThe Matrix Resurrections\u00bb,       akt\u00f6rer := (         v\u00e4lj Person         filtrera .namn i {           \u2018Keanu Reeves\u2019,           \u2018Carrie-Anne Moss\u2019,           \u2018Laurence Fishburne\u2019         }       )     }       f\u00f6r nummer i {0, 1, 2, 3}     f\u00f6rena (       v\u00e4lj { nummer, nummer + 0.5 }     );      <\/p>\n<p>I den nya versionen:  <\/p>\n<ul>\n<li class=\"l\"> En inbyggd webgr\u00e4nssnitt f\u00f6r databasadministration har lagts till, vilket m\u00f6jligg\u00f6r visning och redigering av data, k\u00f6rning av EdgeQL-fr\u00e5gor samt analys av den till\u00e4mpade lagringsschemat. Gr\u00e4nssnittet startas med kommandot \u00abedgedb ui\u00bb, och blir tillg\u00e4ngligt vid \u00e5tkomst till localhost.  <center><img decoding=\"async\" alt=\"Utgivning av den relationsgrafiska DBMS EdgeDB 2.0\" src=\"\/wp-content\/uploads\/2022\/07\/7568d457e9559e7aafe10f7b526f8cac.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>\n<li class=\"l\"> Uttrycket \u00abGROUP\u00bb har implementerats, vilket m\u00f6jligg\u00f6r segmentering och aggregering av data samt utf\u00f6rande av datagruppning baserat p\u00e5 godtyckliga EdgeQL-uttryck i likhet med gruppering i SELECT-operationen.\n<li class=\"l\"> M\u00f6jlighet att hantera \u00e5tkomst p\u00e5 objektiv niv\u00e5. \u00c5tkomstregler definieras p\u00e5 lagringsschemaniv\u00e5 och g\u00f6r det m\u00f6jligt att begr\u00e4nsa anv\u00e4ndningen av en viss upps\u00e4ttning objekt i urval, ins\u00e4ttnings-, borttagnings- och uppdateringsoperationer. Till exempel kan man l\u00e4gga till en regel som till\u00e5ter uppdatering av en publicering endast av f\u00f6rfattaren.\n<li class=\"l\"> M\u00f6jlighet att anv\u00e4nda globala variabler i lagringsschemat har lagts till. En ny global variabel, current_user, har f\u00f6reslagits f\u00f6r att koppla till anv\u00e4ndaren.\n<li class=\"l\"> St\u00f6d f\u00f6r typer som definierar v\u00e4rdeintervall (range) har lagts till.\n<li class=\"l\"> En officiell klientbibliotek f\u00f6r spr\u00e5ket Rust har f\u00f6rberetts.\n<li class=\"l\"> Det bin\u00e4ra protokollet EdgeDB har stabiliserats, vilket g\u00f6r det m\u00f6jligt att hantera flera olika sessioner inom en enda n\u00e4tverksanslutning, vidarebefordran via HTTP, anv\u00e4ndning av globala variabler och lokala tillst\u00e5nd.\n<li class=\"l\"> St\u00f6d f\u00f6r aktivering via socket har lagts till, vilket g\u00f6r att man inte beh\u00f6ver h\u00e5lla serverhanteraren i minnet och bara startar den vid f\u00f6rs\u00f6k att etablera en anslutning (nyttigt f\u00f6r resursbesparing p\u00e5 utvecklarens system).          <\/ul>\n<p>K\u00e4lla: <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.4 - 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\/sv\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-2-0\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\/sv\/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\udd47Lansering av den relationella-grafiska databashanteraren EdgeDB 2.0 | ProHoster","description":"Lanseringen av databashanteringssystemet EdgeDB 2.0 har presenterats, vilket implementerar en relationell-grafmodell f\u00f6r data och fr\u00e5gespr\u00e5ket EdgeQL, optimerat f\u00f6r att arbeta med komplexa hierarkiska data.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-2-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/104730","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=104730"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/104730\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/104731"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=104730"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=104730"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=104730"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}