Tam sukurta alternatyva buvo ORM (Object Relational Mapping) sistemos, kurios iš tikrųjų sukuria tiltą sujungiant duomenų bazę ir programavimo kalbą, kurią norite naudoti kurdami savo programą. Kadangi „Python“ šiais metais yra viena populiariausių programavimo kalbų, šiame straipsnyje mes apžvelgsime ir palyginsime dviejų populiariausių ir plačiausiai naudojamų ORM - „Django“ ir „SQLAlchemy“ - privalumus ir trūkumus.
Django vs. SQLAlchemija
ORM - „Django“ ir „SQLAlchemy“ yra du iš populiariausių „Python“ pagrįstų santykių susiejimo įrankių, ir kiekvienas iš jų turi specifinių, unikalių savo pranašumų. Dabar panagrinėkime ir apžvelkime abu jų skirtumus.
1) Duomenų prieigos sluoksnio įgyvendinimas
„Django“ naudoja vadinamąjį aktyvų įrašo diegimą, kai kiekvienoje duomenų bazės eilutėje susiejamas vienas objekto egzempliorius, o duomenys yra lengvai prieinami iš duomenų bazės. Čia nereikia iš anksto nustatyti duomenų bazės schemos, kurią vartotojai gali lengvai naudoti, nes pagrindinė „Django“ idėja yra ta, kad ji gali suprasti struktūrą tiesiogiai, tiesiog pažvelgdama į duomenų bazės schemą. Be to, kadangi tai yra tiesioginis duomenų bazės ir objekto susiejimas, visi objekto pakeitimai bus atnaujinti ir duomenų bazėje.
„SQLAlchemey“ naudoja „Data Mapper“ diegimą, kuris veikia kaip vidurinis sluoksnis tarp jūsų programos ir duomenų bazės ir perduoda duomenis iš šių dviejų, išlaikydamas jų ryšį vienas nuo kito. Tai leidžia žymiai padidinti dviejų sluoksnių lankstumą ir žymiai efektyviau naudoti duomenų bazę.
2) Geriau naudojant sudėtingas užklausas
Tiek „Django“, tiek „SQLAlchemy“ yra du puikūs ORM, teikiantys geriausias savybes, kurias galite rasti reliacinių žemėlapių įrankiuose. Kalbant apie susidorojimą ir sudėtingų užklausų nagrinėjimą, „SQLAlchemy“ perima pranašumą, nes daug geriau bendrauja su duomenų baze, todėl ją galima naudoti sudėtingoms užklausoms rašyti nereikia grįžti prie neapdorotos SQL. Norėdami suprasti šią koncepciją, pažvelkime į toliau pateiktas užklausas, parašytas tiek Django, tiek SQLAlchemy.
Django:
Futbolas.objektai.filtras (team__name = "Manchester United")SQLAlchemija:
SQLAlchemija: sesija.užklausa (futbolas).prisijungti (futbolas, komanda).filtras (komanda.vardas == „Kamma Sing“)Kaip matyti iš dviejų ORM sintaksės, atrodo, kad Django užklausa yra abstraktesnė ir rodo tik užmegztą ryšį tarp skirtingų duomenų bazių lentelių, o SQLAlchemy eina daug giliau. Šis skirtumas tarp jų rodo, kad Django yra daug tingesnis ir daug efektyvesnis sprendžiant sudėtingas užklausas.
3) Bendrijos ir duomenų bazių palaikymas
Tiek „Django“, tiek „SQLAlchemy“ yra nepaprastai populiarios reliacinių žemėlapių sistemos, kurias remia labai nuostabios bendruomenės. Tačiau pastaroji tuo pasižymi tuo, kad turi daug didesnę bendruomenę, kartu su absoliučiai stulbinančiais dokumentais, kurie liudija, kad bendruomenės nariai skiria savo laiką. Net jei susiduriate su kokia nors problema, galite lengvai paskelbti „StackOverflow“ ar kituose forumuose ir atsiras didelė dalis žmonių, norinčių jums padėti.
Be to, tiek „Django“, tiek „SQLAlchemy“ palaiko didelę duomenų bazių, tokių kaip „MySQL“, „PostgreSQL“, „Oracle“ ir „SQLite“, kolekciją. Vartotojams, kurie jau naudoja „Microsoft SQL“ arba ketina tai padaryti, „SQLAlchemy“ yra dar vienas atsakymas, nes „MSSQL“ teikia jai visišką palaikymą.
Apskritai, abi turi puikias bendruomenes ir palaiko įvairias duomenų bazes, o tai puikiai rodo didžiulę kiekvieno iš jų kokybę.
4) Paraiškos
„Django“ daugiausia buvo sukurtas žiniatinklio programoms ir būtent ten jis veikia geriausiai, nes jame yra daug integruotų įrankių, tokių kaip formų integravimas, išankstinis patvirtinimas ir pan. visa tai yra labai naudinga žiniatinklio programoms. Be to, jei jums paprasčiausiai reikia pagrindinių užklausų, tada Django pasirodys gana gerai, nes tai taip pat yra daug lengviau išmokti.
Tačiau, jei jūsų žiniatinklio programoms ar sistemoms reikia šiek tiek sudėtingesnių užklausų, tada jums reikia naudoti „SQLAlchemy“. Be to, kadangi jis tiesiogiai sąveikauja su duomenų baze, galite paprasčiausiai paleisti užklausas pagal duomenų bazę, nenaudodami ORM. Be to, SQLAlchemija yra daug galingesnė už Django, nors ir šiek tiek aukštesnio mokymosi kreivės.
Išvada:
Tiek „Django“, tiek „SQLAlchemy“ yra nepaprastai populiarūs objektų ir reliacijų žemėlapių sudarymo įrankiai, turintys dideles bendruomenes, kurie juos palaiko ir yra naudojami įvairiose programose visame pasaulyje. Kuris iš jų jums labiau tinka? Tai daugiausia priklauso nuo to, kokie yra jūsų reikalavimai ir kur tiksliai norite juos naudoti. Apskritai, abu yra puikūs pasirinkimai norint turėti savo ORM sistemą.