EdgeDB 2.0 DBMS విడుదల అందించబడింది, ఇది రిలేషనల్ గ్రాఫ్ డేటా మోడల్ మరియు EdgeQL క్వెరీ లాంగ్వేజ్ని అమలు చేస్తుంది, ఇది సంక్లిష్ట క్రమానుగత డేటాతో పని చేయడానికి ఆప్టిమైజ్ చేయబడింది. కోడ్ పైథాన్ మరియు రస్ట్ (పార్సర్ మరియు పనితీరు-క్లిష్ట భాగాలు)లో వ్రాయబడింది మరియు Apache 2.0 లైసెన్స్ క్రింద పంపిణీ చేయబడుతుంది. ప్రాజెక్ట్ PostgreSQL కోసం యాడ్-ఆన్గా అభివృద్ధి చేయబడుతోంది. పైథాన్, గో, రస్ట్ మరియు టైప్స్క్రిప్ట్/జావాస్క్రిప్ట్ కోసం క్లయింట్ లైబ్రరీలు సిద్ధం చేయబడ్డాయి. DBMS నిర్వహణ మరియు ఇంటరాక్టివ్ క్వెరీ ఎగ్జిక్యూషన్ (REPL) కోసం కమాండ్ లైన్ సాధనాలను అందిస్తుంది.
పట్టిక-ఆధారిత డేటా మోడల్కు బదులుగా, EdgeDB ఆబ్జెక్ట్ రకాల ఆధారంగా డిక్లరేటివ్ సిస్టమ్ను ఉపయోగిస్తుంది. విదేశీ కీలకు బదులుగా, రకాల మధ్య సంబంధాన్ని నిర్వచించడానికి సూచన ద్వారా లింక్ చేయడం ఉపయోగించబడుతుంది (ఒక వస్తువును మరొక వస్తువు యొక్క ఆస్తిగా ఉపయోగించవచ్చు).
వ్యక్తి {అవసరమైన ఆస్తి పేరు -> str; } టైప్ మూవీ {అవసరమైన ఆస్తి శీర్షిక -> str; బహుళ లింక్ నటులు -> వ్యక్తి; }
ప్రశ్న ప్రాసెసింగ్ను వేగవంతం చేయడానికి సూచికలను ఉపయోగించవచ్చు. బలమైన ప్రాపర్టీ టైపింగ్, ప్రాపర్టీ విలువ పరిమితులు, కంప్యూటెడ్ ప్రాపర్టీలు మరియు స్టోర్డ్ ప్రొసీజర్లు వంటి ఫీచర్లకు కూడా మద్దతు ఉంది. EdgeDB ఆబ్జెక్ట్ స్టోరేజ్ స్కీమ్ యొక్క ఫీచర్లు, ఇది కొంతవరకు ORMని గుర్తుకు తెస్తుంది, స్కీమాలను కలపగల సామర్థ్యం, విభిన్న వస్తువుల నుండి లక్షణాలను లింక్ చేయడం మరియు ఇంటిగ్రేటెడ్ JSON మద్దతు ఉన్నాయి.
స్కీమా మైగ్రేషన్ను నిల్వ చేయడానికి అంతర్నిర్మిత సాధనాలు అందించబడ్డాయి - ప్రత్యేక esdl ఫైల్లో పేర్కొన్న స్కీమాను మార్చిన తర్వాత, “edgedb మైగ్రేషన్ క్రియేట్” ఆదేశాన్ని అమలు చేయండి మరియు DBMS స్కీమాలోని తేడాలను విశ్లేషిస్తుంది మరియు ఇంటరాక్టివ్గా స్కీమాకు మైగ్రేషన్ కోసం స్క్రిప్ట్ను రూపొందిస్తుంది. కొత్త స్కీమా. స్కీమా మార్పుల చరిత్ర స్వయంచాలకంగా ట్రాక్ చేయబడుతుంది.
ప్రశ్నలను రూపొందించడానికి, GraphQL ప్రశ్న భాష మరియు క్రమానుగత డేటా కోసం SQL యొక్క అనుసరణ అయిన యాజమాన్య EdgeDB భాష రెండూ మద్దతునిస్తాయి. జాబితాలకు బదులుగా, ప్రశ్న ఫలితాలు నిర్మాణాత్మక పద్ధతిలో ఫార్మాట్ చేయబడతాయి మరియు సబ్క్వెరీలు మరియు JOINలకు బదులుగా, మీరు ఒక EdgeQL ప్రశ్నను మరొక ప్రశ్నలో వ్యక్తీకరణగా పేర్కొనవచ్చు. లావాదేవీలు మరియు చక్రాలకు మద్దతు ఉంది.
సినిమా {శీర్షిక, నటీనటులు: {పేరు}} ఫిల్టర్ .title = "ది మ్యాట్రిక్స్" చలనచిత్రాన్ని చొప్పించండి {శీర్షిక := "ది మ్యాట్రిక్స్ పునరుద్ధరణలు", నటులు := ( {'కీను రీవ్స్', 'క్యారీ-లో పర్సన్ ఫిల్టర్ .పేరును ఎంచుకోండి అన్నే మోస్', 'లారెన్స్ ఫిష్బర్న్' } } {0, 1, 2, 3} యూనియన్లోని సంఖ్య కోసం ( {సంఖ్య, సంఖ్య + 0.5 } ఎంచుకోండి );
కొత్త వెర్షన్లో:
- డేటాబేస్ అడ్మినిస్ట్రేషన్ కోసం అంతర్నిర్మిత వెబ్ ఇంటర్ఫేస్ జోడించబడింది, ఇది డేటాను వీక్షించడానికి మరియు సవరించడానికి, EdgeQL ప్రశ్నలను అమలు చేయడానికి మరియు ఉపయోగించిన నిల్వ పథకాన్ని విశ్లేషించడానికి మిమ్మల్ని అనుమతిస్తుంది. ఇంటర్ఫేస్ “edgedb ui” కమాండ్ ద్వారా ప్రారంభించబడింది, దాని తర్వాత ఇది లోకల్ హోస్ట్ను యాక్సెస్ చేసేటప్పుడు అందుబాటులోకి వస్తుంది.
- “GROUP” వ్యక్తీకరణ అమలు చేయబడింది, ఇది SELECT ఆపరేషన్లో సమూహపరచడం మాదిరిగానే ఏకపక్ష EdgeQL వ్యక్తీకరణలను ఉపయోగించి డేటా మరియు సమూహ డేటాను విభజించడానికి మరియు సమగ్రపరచడానికి మిమ్మల్ని అనుమతిస్తుంది.
- వస్తువు స్థాయిలో యాక్సెస్ నియంత్రించే సామర్థ్యం. యాక్సెస్ నియమాలు నిల్వ స్కీమా స్థాయిలో నిర్వచించబడ్డాయి మరియు మీరు పొందడం, చొప్పించడం, తొలగించడం మరియు అప్డేట్ ఆపరేషన్లలో నిర్దిష్ట సెట్ ఆబ్జెక్ట్లను ఉపయోగించగల సామర్థ్యాన్ని పరిమితం చేయడానికి మిమ్మల్ని అనుమతిస్తాయి. ఉదాహరణకు, మీరు ప్రచురణను నవీకరించడానికి రచయితను మాత్రమే అనుమతించే నియమాన్ని జోడించవచ్చు.
- స్టోరేజ్ స్కీమ్లో గ్లోబల్ వేరియబుల్స్ని ఉపయోగించగల సామర్థ్యం జోడించబడింది. వినియోగదారుకు బైండ్ చేయడానికి కొత్త గ్లోబల్ వేరియబుల్ current_user ప్రతిపాదించబడింది.
- విలువల పరిధులను నిర్వచించే రకాలకు మద్దతు జోడించబడింది.
- రస్ట్ భాష కోసం అధికారిక క్లయింట్ లైబ్రరీ సిద్ధం చేయబడింది.
- EdgeDB బైనరీ ప్రోటోకాల్ స్థిరీకరించబడింది, గ్లోబల్ వేరియబుల్స్ మరియు లోకల్ స్టేట్లను ఉపయోగించి HTTP ద్వారా ఫార్వార్డ్ చేయడం, ఒకే నెట్వర్క్ కనెక్షన్లో అనేక విభిన్న సెషన్లను ఏకకాలంలో ప్రాసెస్ చేయడం సాధ్యపడుతుంది.
- సాకెట్ యాక్టివేషన్కు మద్దతు జోడించబడింది, ఇది సర్వర్ హ్యాండ్లర్ను మెమరీలో ఉంచకుండా మరియు కనెక్షన్ని స్థాపించడానికి ప్రయత్నిస్తున్నప్పుడు మాత్రమే దాన్ని అమలు చేయడానికి మిమ్మల్ని అనుమతిస్తుంది (డెవలపర్ సిస్టమ్లలో వనరులను సేవ్ చేయడానికి ఉపయోగపడుతుంది).
మూలం: opennet.ru