Az adatbázis egy absztrakció az operációs rendszer fájlrendszere felett, amely megkönnyíti a fejlesztők számára olyan alkalmazások készítését, amelyek tartós adatokat hoznak létre, olvasnak, frissítenek és törölnek.

Miért van szükség adatbázisokra?

A webes alkalmazások magas szinten adatokat tárolnak, és azokat a felhasználók számára hasznos módon mutatják be. Például a Google adatokat tárol az utakról, és útbaigazítást ad, hogy az egyik helyről a másikra eljusson az ember vezetéssel aMaps alkalmazáson keresztül. A vezetési útvonalak azért lehetségesek, mert az adatok strukturált formában vannak tárolva.

Az adatbázisok megbízhatóvá és gyorsan teszik a strukturált tárolást. Emellett mentális keretet adnak az adatok mentésének és lekérdezésének módjára, ahelyett, hogy minden alkalommal, amikor új alkalmazást készítünk, ki kell találnunk, mit kezdjünk az adatokkal.

Az adatbázisok egy olyan fogalom, amelynek számos megvalósítása van, többek között a PostgreSQL, a MySQL és az SQLite. Léteznek nem relációs adatbázisok, úgynevezett NoSQL adattárolók is. Tudjon meg többet az adatok fejezetben, vagy tekintse meg az összes téma tartalomjegyzékét.

Relációs adatbázisok

A Python webfejlesztésben leggyakrabban használt adatbázis-tárolási absztrakció a relációs táblák halmazai. Az alternatív tárolási absztrakciókat a NoSQL oldalon ismertetjük.

A relációs adatbázisok táblák sorozatában tárolják az adatokat. A táblák közötti kapcsolatokat idegen kulcsokként határozzák meg. Az idegen kulcs egy relációs tábla egyik sorából egy másik táblára való egyedi hivatkozás, amely lehet ugyanaz a tábla, de leggyakrabban egy másik tábla.

Az adatbázisok tárolási megvalósításai különböző összetettségűek. Az SQLite, a Pythonhoz mellékelt adatbázis egyetlen fájlt hoz létre az összes adathoz adatbázisonként.Más adatbázisok, mint például a PostgreSQL, a MySQL, az Oracle és a Microsoft SQL Server bonyolultabb perzisztencia sémákkal rendelkeznek, miközben további fejlett funkciókat kínálnak, amelyek hasznosak a webes alkalmazások adattárolásához. Ezek a fejlett funkciók többek között a következőket foglalják magukban:

  1. adatreplikáció a master adatbázis és egy vagy több csak olvasható slave-instances között
  2. fejlett oszloptípusok, amelyek hatékonyan tárolják a félig strukturált adatokat, mint például a JavaScript Object Notation (JSON)
  3. sharding, amely lehetővé teszi több adatbázis horizontális skálázását, amelyek mindegyike író-olvasó példányként szolgál, az adatkonzisztencia késleltetésének árán
  4. figyelés, statisztikák és egyéb hasznos futásidejű információk az adatbázis sémáiról és tábláiról

A webes alkalmazások tipikusan egyetlen adatbázis-példánnyal indulnak, mint például a PostgreSQL, egy egyszerű sémával. Idővel az adatbázis sémája összetettebb struktúrává fejlődik a sémamigrációk és a fejlett funkciók, mint például a replikáció, a megosztás és a felügyelet egyre hasznosabbá válnak, ahogy az alkalmazásfelhasználók igényei alapján nő az adatbázis kihasználtsága.

A Python webes alkalmazások leggyakoribb adatbázisai

A PostgreSQL és aMySQL a két legelterjedtebb nyílt forráskódú adatbázis a Python webes alkalmazások adatainak tárolására.

A SQLite egy olyan adatbázis, amelyet egyetlen fájlban tárolnak a lemezen. Az SQLite be van építve a Pythonba, de egyszerre csak egyetlen kapcsolat általi elérésre készült. Ezért erősen ajánlott, hogy ne futtasson egy produktív webalkalmazást SQLite-tel.

PostgreSQL adatbázis

A PostgreSQL az ajánlott relációs adatbázis a Python webalkalmazásokkal való munkához. A PostgreSQL funkciókészlete, aktív fejlesztése és stabilitása hozzájárul ahhoz, hogy ma a weben élő alkalmazások millióinak backendjeként használják.

Tudjon meg többet a PostgreSQL Pythonnal való használatáról aPostgreSQL oldalon.

MySQL adatbázis

A MySQL egy másik életképes nyílt forráskódú adatbázis implementáció Pythonalkalmazásokhoz. A MySQL kezdeti tanulási görbéje valamivel könnyebb, mint aPostgreSQL-é, de nem olyan funkciógazdag.

Tudjon meg többet a MySQL-támogatású Python-alkalmazásokról a dedikáltMySQL oldalon.

Az adatbázishoz való csatlakozás Pythonnal

A relációs adatbázisokkal való munkához Python segítségével kódkönyvtárat kell használni. A relációs adatbázisokhoz a leggyakrabban használt könyvtárak a következők:

  • psycopg2(forráskód)a PostgreSQL-hez.

  • MySQLdb(forráskód)a MySQL-hez. Vegye figyelembe, hogy ennek az illesztőprogramnak a fejlesztése többnyire befagyasztva van, ígyaz alternatív illesztőprogramok értékelése bölcs dolog, haMySQL-t használ backendként.

  • cx_Oracle forOracle Database (forráskód).Az Oracle 2017-ben áthelyezte aziropen forráskódú illesztőprogram kódját a SourceForge-ról a GitHub-ra.

A Python 2.7+-ban beépített SQLite támogatás van, ezért külön könyvtárra nincs szükség. Egyszerűen “import sqlite3”, hogy elkezdje a kapcsolódást ezzel az egyetlen fájl alapú adatbázissal.

Objekt-relációs leképezés

Az objektum-relációs leképezők (ORM) lehetővé teszik a fejlesztők számára, hogy SQL-lekérdezések helyett Python kód írásával érjenek el adatokat a backendről. Minden webalkalmazási keretrendszer másképp kezeli az ORM-ek integrálását. Az objektum-relációs leképezőkről (ORM-ek) egy egész oldal szól, amelyet érdemes elolvasni, hogy megismerje ezt a témát.

Az adatbázisok harmadik féltől származó szolgáltatásai

Néhány vállalat üzemeltet skálázható adatbázis-kiszolgálókat hosztolt szolgáltatásként.A hosztolt adatbázisok a szolgáltatótól függően gyakran automatikus biztonsági mentést és helyreállítást,szigorított biztonsági konfigurációkat és könnyű vertikális skálázást biztosítanak.

  • Az Amazon Relational Database Service (RDS)előre konfigurált MySQL és PostgreSQL példányokat biztosít. A példányok a tárolási és teljesítményigények alapján nagyobb vagy kisebb konfigurációkra skálázhatók.

  • A Google Cloud SQL egy olyan szolgáltatás, amely kezelt, mentett, replikált és automatikusan javított MySQL példányokkal rendelkezik. A CloudSQL integrálódik a Google App Engine-be, de önállóan is használható.

  • A BitCan mind MySQL, mind MongoDB hosztolt adatbázisokat kínál kiterjedt mentési szolgáltatásokkal.

  • AzElephantSQL egy szoftver-az-a-szolgáltatást nyújtó cég, amely PostgreSQL adatbázisokat hosztol, és kezeli a szerverkonfigurációt, a mentéseket és az adatkapcsolatokat az Amazon Web Services példányok tetején.

SQL-források

Az adatbázisokkal való interakció fő módjaként egy objektum-relációs leképező (ORM) használatát tervezheti, de ettől függetlenül meg kell tanulnia az SQL alapjait a sémák létrehozásához és az ORM által generált SQL-kód megértéséhez. A következő források segíthetnek az SQL elsajátításában, ha korábban még sosem használta.

  • A Select Star SQL egy interaktív könyv az SQL megtanulásához. Nagyon ajánlott még akkor is, ha úgy érzi, hogy csak objektum-relációs leképezéssel fog dolgozni a projektjeiben, mert sosem tudhatja, mikor kell majd beleugrania az SQL-be, hogy javítsa egy generált lekérdezés lassú teljesítményét.

  • A kezdő SQL-kalauz jó munkát végez az SQL utasításokban használt főbb kulcsszavak, például a SELECT, WHERE, FROM, UPDATE és DELETE magyarázatával.

  • Az SQL oktatókönyv megtanítja az SQL alapjait, amelyek az összes főbb relációs adatbázis-implementációban használhatók.

  • Life of a SQL queryMagyarázza, hogy mi történik fogalmilag és technikailag az adatbázisban, amikor egy SQL-lekérdezést futtatunk. A szerző a PostgreSQL-t használja példaadatbázisként, és az SQL szintaxisát használja végig.

  • A Probably Incomplete, Comprehensive Guide to the Many Different Ways to JOIN Tables in SQLelaborates on the one of the trickiest parts of writing SQL statementsthat bridge one or more tables: the JOIN.

  • A jobb SQL megírása egy rövid kódstílusozási útmutató a lekérdezések könnyebb olvashatóságának érdekében.

  • A SQL Intermediate egy olyan, az alapokon túlmutató oktatóanyag, amely azUSA Consumer Financial Protection Bureau nyílt adatait használja példaként a PostgreSQL-ben történő számolásra, lekérdezésre és nézetek használatára.

Általános adatbázis-források

  • How does a relational database work?Ez egy részletes, hosszan tartó bejegyzés a rendezésről, keresésről, összevonásról és más műveletekről, amelyeket gyakran természetesnek veszünk, amikor egy olyan bevált relációs adatbázist használunk, mint a PostgreSQL.

  • Az Adatbázisok 101 nagyszerű áttekintést ad a főbb relációs adatbázis fogalmakról, amely bevezetésként még a nem fejlesztők számára is releváns.

  • A kezdők öt hibája az adatbázisokkal való munka soránmagyarázza, miért nem szabad képeket tárolni adatbázisokban, valamint miért kell óvatosnak lenni a séma normalizálásával.

  • ADB-Engines rangsorolja a legnépszerűbb adatbázis-kezelő rendszereket.

  • ADB Weekly egy heti összefoglaló általános adatbázis-cikkekből és forrásokból.

  • Designing Highly Scalable Database Architecturescovers horizontal and vertical scaling, replication and caching inrelational database architectures.

  • Online migrations at scaleis a great read is on breaking down the complexity of a database schemamigration for an operational database. A szerző csapata által alkalmazott megközelítés egy 4 lépésből álló kettős írási minta volt, amellyel gondosan fejlesztették az előfizetések adatainak tárolási módját, hogy egy új, hatékonyabb tárolási modellre tudjanak áttérni.

  • A one size fits all database doesn’t fit anyoneexplains Amazon Web Services’ specific rationale for having so many typeof relational and non-relational databases on its platform but the articleis also a good overview of various database models and their use cases.

  • A SQL 43 éves – íme 8 ok, amiért ma is használjuk – felsorolja, miért használja az SQL-t szinte minden fejlesztő, még akkor is, amikor a nyelv közeledik az ötvenedik évfordulójához.

  • Az SQL-kulcsok mélységébenegy nagyszerű magyarázatot ad arra, hogy mik azok az elsődleges kulcsok és hogyan kell használni őket.

  • Egy adathalmaz feltárása SQL-benegy jó példa arra, hogy az SQL önmagában hogyan használható adatelemzésre. Ez az oktatóanyag Spotify-adatokat használ, hogy bemutassa, hogyan lehet kinyerni azt, amit egy adathalmazból szeretne megtudni.

  • Az adatbázisok integrációs tesztelési stratégiái egy olyan nehéz témát fed le, amely minden valós projektben felmerül.

  • A GitLab a január 31-én bekövetkezett adatbázis-kiesésről készített utólagos beszámolót, hogy átlátható legyen az ügyfelek számára, és segítsen más fejlesztőcsapatoknak megtanulni, hogyan cseszték el az adatbázis-rendszerüket, majd hogyan találták meg a helyreállítás módját.

  • Asynchronous Python and DatabasesEgy mélyreható cikk arról, hogy miért nem használható számos Python adatbázis-illesztőprogram módosítás nélkül a blokkoló és az aszinkron eseménymodellek közötti különbségek miatt. Mindenképpen érdemes elolvasni, haWebSockets-et használ a Tornado vagy a gevent segítségével.

  • PostgreSQL vs. MS SQL Server oneperspective on the differences between the two database servers from adata analyst.

Databases learning checklist

  1. Install PostgreSQL on your server. Feltételezve, hogy Ubuntu futsudo apt-get install postgresql.

  2. Győződjön meg róla, hogy a psycopg2 könyvtár szerepel az alkalmazás függőségei között.

  3. Konfigurálja a webes alkalmazást, hogy csatlakozzon a PostgreSQL példányhoz.

  4. Hozzon létre modelleket az ORM-ben, akár a Django beépített ORM-jével, akár aSQLAlchemy-vel Flaskkal.

  5. Elkészítse az adatbázis tábláit, vagy szinkronizálja az ORM modelleket a PostgreSQL-instanciával, ha ORM-et használ.

  6. Elkezdje az adatok létrehozását, olvasását, frissítését és törlését az adatbázisban a webalkalmazásából.

Kezdje el az adatok létrehozását, olvasását, frissítését és törlését az adatbázisban.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.