{"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\/et\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-5-0","title":{"rendered":"Relatsioonilise-graafilise andmebaasi EdgeDB 5.0 v\u00e4ljalaskmine","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>On saanud v\u00e4ljalaske relatsioonilis-graafilise andmebaasi EdgeDB 5.0, mis rakendab EdgeQL p\u00e4ringukeelt ja on optimeeritud keerukate hierarhiliste andmete t\u00f6\u00f6tlemiseks. Projekt areneb PostgreSQL peal, mille kood on kirjutatud Pythonis ja Rustis (parser ja j\u00f5udlus-spetsiifilised osad) ning levitatakse Apache 2.0 litsentsi alusel. Kliendi raamatukogud on valmis keeles Python, Go, Rust, .NET, Elixir ja TypeScript\/Javascript. Pakutakse k\u00e4surea t\u00f6\u00f6riistu andmebaasi haldamiseks ja interaktiivsete p\u00e4ringute teostamiseks (REPL).    <\/p>\n<p>EdgeDB-s kasutatakse deklaratiivset s\u00fcsteemi, mis p\u00f5hineb objektit\u00fc\u00fcpidel, mitte tabelip\u00f5hist andmemudelit. Suhete m\u00e4\u00e4ramiseks t\u00fc\u00fcpide vahel kasutatakse viidete sidumist (\u00fcks objekt v\u00f5ib olla teise objekti omadus) selle asemel, et kasutada v\u00e4liseid v\u00f5tmeid.   <\/p>\n<p>     type Person {       required name: str;     }     type Movie {       required title: str;       multi actors: Person;     }      <\/p>\n<p>Toetatakse selliseid funktsioone nagu range t\u00fc\u00fcbistamine, v\u00e4\u00e4rtuste piirangud, arvutatavad omadused ja salvestatud protseduurid. EdgeDB objekti salvestusskeemi erip\u00e4ra, mis sarnaneb ORM-iga, muudab skeemide segamise, omaduste sidumise erinevatest objektidest ja integreeritud JSON-i toe v\u00f5imalikkuse. P\u00e4ringute t\u00f6\u00f6tlemise kiirus v\u00f5ib suurendada indeksite rakendamisega.     <\/p>\n<p>Sissee tulevad sisseehitatud t\u00f6\u00f6riistad andmebaasi scheemi migreerimiseks \u2014 p\u00e4rast eraldi esdl-failis m\u00e4\u00e4ratud skeemi muutmist piisab k\u00e4su \"edgedb migration create\" k\u00e4ivitamisest, ja DBMS anal\u00fc\u00fcsib skeemi erinevusi ning genereerib interaktiivselt skripti uuele skeemile \u00fcleminekuks. Skeemi muudatuste ajalugu j\u00e4lgitakse automaatselt.    <\/p>\n<p>P\u00e4ringute vormimiseks toetatakse GraphQL p\u00e4ringukeelt ja EdgeDB enda keelt, mis on SQL-i kohandamine hierarhiliste andmete jaoks. Tulemustena esitatakse andmed struktureeritud kujul, mitte loenditena, ning alamp\u00e4ringute ja JOIN t\u00f6\u00f6tlemise asemel on v\u00f5imalik m\u00e4\u00e4rata \u00fcks EdgeQL p\u00e4ring teise p\u00e4ringu v\u00e4ljendina. Toetatakse tehinguid ja silmasid.    <\/p>\n<p>     select Movie {       title,       actors: {         name       }     }     filter .title = \"The Matrix\"       insert Movie {       title := \"The Matrix Resurrections\",       actors := (         select Person         filter .name in {           'Keanu Reeves',           'Carrie-Anne Moss',           'Laurence Fishburne'         }       )     }      <\/p>\n<p>Uues versioonis:  <\/p>\n<ul>\n<li class=\"l\">Lisatud harude (\"branching\") toetamine, mis v\u00f5imaldab andmete ja skeemide t\u00f6\u00f6tamisel kasutada versioonihalduse s\u00fcsteemides rakendatavat harude kontseptsiooni. Uues versioonis on termini \"andmebaas\" asemel ette pandud m\u00f5isted \"haru\" (branch), ning k\u00e4sud \"create database\" ja \"drop database\" on kuulutatud vananenuks, soovitades nende asemel kasutada uusi k\u00e4ske \"create empty branch\" ja \"drop branch\". Lisaks t\u00fchjadele harudele saab k\u00e4skudega \"create schema branch\" ja \"create data branch\" luua olemasolevatest harudest ja andmebaasidest hargnevaid harusid, kopeerides neist skeemi ja andmed.\n<p>Praktilisest vaatepunktist v\u00f5imaldab harude tugi s\u00fcnkroonida andmeid nende t\u00f6\u00f6tlemiseks kasutatava koodiga, s\u00e4ilitades samas \u00fchilduvuse vanema koodiga. N\u00e4iteks p\u00e4rast koodi uuendamist saab sellele siduda uue andmeharu, mis arvestab koodis tehtud muudatustega salvestamise skeemis. Sellist funktsionaalsust on mugav kasutada tarkvaraversioonide arendamise ja testimise lihtsustamiseks, mille valmisoleku korral on piisav l\u00fclituda juba testitud harule.      <\/p>\n<li class=\"l\"> Laienemises pgvector, mis on m\u00f5eldud vektorite efektiivseks salvestamiseks ja p\u00e4ringute tegemiseks, on lisatud uus indeksit\u00fc\u00fcp HNSW (Hierarchical Navigable Small Worlds), mis on, sarnaselt indeksile IVFFlat, saadaval kolmes variandis: ext::pgvector::hnsw_euclidean, ext::pgvector::hnsw_ip ja ext::pgvector::hnsw_cosine. Lisaks on pgvectoris laienenud v\u00f5imalused indeksite t\u00e4iendavaks kohandamiseks objekti ext::pgvector::Config kaudu.\n<li class=\"l\"> Lisatud t\u00e4iendavad autentimise v\u00f5imalused. Authi laienduses on rakendatud paroolivabade autentimise skeemide WebAuthn (Passkeys) ja \"magic links\" (e-posti p\u00f5hjal) tugi. Lisatud on tugi platvormide Slack ja Discord kasutamiseks OAuth-i pakkujatena.\n<li class=\"l\"> Suurendatud on j\u00f5udluse optimeerimist. P\u00e4ringute kompileerimise tulemuste vahem\u00e4lu rakenduses on tagatud oleku s\u00e4ilitamine taask\u00e4ivituste vahel ja lisatud automaatne uuesti kompileerimine migratsiooni j\u00e4rel. Suurenenud on t\u00f6\u00f6kiirus suurte salvestusskeemidega.\n<li class=\"l\"> EdgeQL&#8203; p\u00e4ringukeeles on lauses \"for\" lubatud mitte m\u00e4\u00e4rata v\u00f5tmes\u00f5na \"union\" baasp\u00e4ringutes, kus kasutatakse lauseid insert, update v\u00f5i delete.\n<li class=\"l\"> Lisatud k\u00e4sk vacuum() andmebaasi sisu puhastamiseks, optimeerimiseks ja pakkimiseks.\n<li class=\"l\"> Lubatud on andmete konverteerimine t\u00fc\u00fcbilt bytes t\u00fc\u00fcpideks int16, int32, int64 ja uuid, kasutades funktsioone to_bytes(), to_uuid() ja to_int*().\n<li class=\"l\"> Lisatud v\u00f5imalus sulgeda k\u00f5ik andmebaasi \u00fchendused p\u00e4rast k\u00e4su \"drop database\" t\u00e4itmist.                  <\/ul>\n<p>Allikas: <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.1.1 - 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\/et\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-5-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\/et\/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\udd47Relatsioonilis-graafilise andmebaasi EdgeDB 5.0 v\u00e4ljaanne | ProHoster","description":"Saadaval on andmebaasi EdgeDB 5.0 v\u00e4ljaanne, mis rakendab relatsioonilis-graafilist andmemudelit ja p\u00e4ringute keelt EdgeQL, optimeeritud keerukate hierarhiliste andmete t\u00f6\u00f6tlemiseks.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-5-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/115237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=115237"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/115237\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=115237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=115237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=115237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}