Files
obsidian/WS2324/Datenbank/Unterricht/06. Zusatz Datenbankverbindung mit Python/DB1-Python-Datenbankverbindung.ipynb

885 lines
147 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": [],
"user_expressions": []
},
"source": [
"# Datenbankverbindung in Python"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"::: {hint}\n",
"## Dokumentation [Introduction to python-oracledb](https://python-oracledb.readthedocs.io/en/latest/user_guide/introduction.html)\n",
":::\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "fragment"
},
"tags": []
},
"source": [
"Verbindungsarten: \n",
"1) Standalone connection\n",
"2) Pooled connection\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"## Connection herstellen und SQL-Anfrage senden in Python"
]
},
{
"attachments": {
"cbdc558c-b3cd-444e-81c1-c0273dcee702.png": {
"image/png": "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"
}
},
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "fragment"
},
"tags": []
},
"source": [
"![grafik.png](attachment:cbdc558c-b3cd-444e-81c1-c0273dcee702.png)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"editable": true,
"jupyterlab-hide-cells:hidden": true,
"slideshow": {
"slide_type": "fragment"
},
"tags": []
},
"outputs": [
{
"name": "stdin",
"output_type": "stream",
"text": [
" Select * from Kunde\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Select * from Kunde\n",
"(2310, 'Frau', 'Meitner ', 'Lise ', datetime.datetime(1878, 11, 17, 0, 0), 'Berlin ')\n",
"(7562, 'Herr', 'Einstein ', 'Albert ', datetime.datetime(1879, 3, 14, 0, 0), 'Princeton ')\n",
"(8365, 'Frau', 'Curie ', 'Marie ', datetime.datetime(1867, 11, 7, 0, 0), 'Paris ')\n",
"(8523, None, 'Dekanat Informatik ', 'FH Dortmund ', None, 'Dortmund ')\n",
"(8524, 'Herr', 'Meier ', 'Max ', datetime.datetime(1987, 12, 24, 0, 0), 'Dortmund ')\n"
]
}
],
"source": [
"import oracledb\n",
"\n",
"def getConnection():\n",
" #print(\"Verbindungsobjekt für die Oracle-Datenbank instanziieren\" , connection)\n",
" connection = oracledb.connect(user='C##demo', password='oracle', dsn='oracledb:1521/xe')\n",
" return connection\n",
"\n",
"def executeStatement(statement):\n",
" con=cursor = None\n",
" try:\n",
" con=getConnection()\n",
" print(statement)\n",
" with con.cursor() as cursor:\n",
" #print(\"Datenbankanfrage ausführen\" , connection)\n",
" cursor.execute(statement)\n",
" rows = cursor.fetchall()\n",
" for r in rows:\n",
" print(r)\n",
" finally:\n",
" #print(\"Datenbankverbindung schließen\")\n",
" try: cursor.close()\n",
" except: pass\n",
" try: con.close()\n",
" except: pass\n",
"sqlanfrage1 = input()\n",
"executeStatement(sqlanfrage1)"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"```{exercise}\n",
":label: Critical Code Review\n",
"Was sind die Vor- und Nachteile dieser Implementierung?\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"## Pooled Connection"
]
},
{
"attachments": {
"326e0e25-c0d0-48a6-9055-225fb2c91930.png": {
"image/png": "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"
}
},
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "fragment"
},
"tags": []
},
"source": [
"![grafik.png](attachment:326e0e25-c0d0-48a6-9055-225fb2c91930.png)"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "fragment"
},
"tags": []
},
"source": [
"Pooled Connections werden genutzt, wenn viele Verbindungen für kurze Zeit benötigt werden oder nur wenige Verbindung über lange Zeiten im Leerlauf sind. \n",
"Vorteile:\n",
"- Reduzierte Kosten für den Auf- und Abbau der Datenbankverbindung,\n",
"- Tote Verbindungen können ermittelt werden und\n",
"- eine automatische Wiederherstellung von Datenbankverbindungen ist möglich."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"editable": true,
"scrolled": true,
"slideshow": {
"slide_type": "fragment"
},
"tags": []
},
"outputs": [],
"source": [
"import oracledb\n",
"# Pooled Connections\n",
"\n",
"# Wird einmal aufgerufen während der Initialiserung\n",
"pool = oracledb.create_pool(user=user, password=password, dsn=cs,\n",
" min=1, max=10, increment=1)\n",
"\n",
"# Vergabe einer Connection auf Anfrage\n",
"with pool.acquire() as connection:\n",
" # mache etwas mit der Connection\n",
" print(f\"Got a connection to Oracle Database {connection.version}\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"# Kapselung des Datenbankzugriffcodes"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Python-Code durch Frameworks gekapselt"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": [
"import pandas as pd # DataAnalysis und Manipulation Framework\n",
"import sqlalchemy as db # Object-Relational Mapper **und SQL-Toolkit\n",
"import oracledb # Oracle Treiber\n",
"dsn = oracledb.makedsn(host, port, sid=sid)\n",
"cstr = 'oracle+oracledb://{user}:{password}@{dsn}'.format(\n",
" user=user,\n",
" password=password,\n",
" dsn=dsn\n",
")\n",
"engine = db.create_engine(cstr)\n",
"pd.read_sql('SELECT Nachname FRom Kunde', engine.connect())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
":::{note}\n",
"## Hinweis\n",
"Das Freigeben der verwendeten Ressourcen erfolgt bei SqlAlchemy implizit. \n",
"[Doku](https://stackoverflow.com/questions/51170169/clean-up-database-connection-with-sqlalchemy-in-pandas)\n",
":::"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"## Magic commands"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Beispiel für die Implementierung eines magic commands `%magicsql`"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": [
"from IPython.core.magic import (register_line_magic, register_cell_magic)\n",
"from io import StringIO\n",
"import pandas as pd\n",
"import sqlalchemy as db\n",
"import oracledb\n",
"\n",
"def sqlread(line):\n",
" print(line)\n",
" engine = db.create_engine(\"oracle+oracledb://C##demo:oracle@oracledb:1521/xe\")\n",
" x=pd.read_sql(line, engine.connect())\n",
" display(x)\n",
" engine.dispose()\n",
"\n",
"@register_line_magic\n",
"def magicsql(line):\n",
" sqlread(line)\n",
"\n",
"@register_cell_magic\n",
"def magicsql(line, cell):\n",
" for s in StringIO(cell):\n",
" line+=' '+s\n",
" sqlread(line)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Testfälle:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": [
"celltagsclasses-test2"
]
},
"outputs": [],
"source": [
"%magicsql SELECT * FROM Kunde"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": [
"green"
]
},
"outputs": [],
"source": [
"%%magicsql \n",
"SELECT * \n",
"FROM Lager\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## eipiel "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Nutzung der ipython-sql Extension"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"Catherine Devlin hat die Erweiterung (Extension) [ipython-sql](https://pypi.org/project/ipython-sql/) geschrieben, um SQL-Befehle durch Magic commands zu kapseln. Es können alle durch SQLAlchemy unterstützten Datenbanken verwendet werden. \n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
":::{hint} Das ipython-sql Modul ist auf dem JupyterHub des FB4 bereits installiert.\n",
":class: dropdown\n",
"Installation des ipython-sql Moduls in der Konsole:\n",
"```Python\n",
"!pip install ipython-sql\n",
"```\n",
"Das ! bedutet, dass der Befehl durch das Betriebssystem ausgeführt wird. \n",
"Anschließend wird die Extension in den Python-Kernel mit dem dem Befehl %load_ext geladen:\n",
"```Python\n",
"%load_ext sql\n",
"```\n",
":::"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "subslide"
},
"tags": []
},
"outputs": [],
"source": [
" %load_ext sql"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"Die Verbindung mit einer Datenbank kann jetzt hergestellt werden:\n",
"- SQLite: %sql sqlite://\n",
"- Oracle: %sql oracle+oracledb://*username*:*password*@*host-ip*:1521?service_name=*sid*\n",
"Die Verwaltung der Datenbankverbindungen wird durch die Extension gekapselt. "
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "subslide"
},
"tags": []
},
"outputs": [],
"source": [
"%sql oracle+oracledb://C##demo:oracle@oracledb:1521?service_name=xe"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "subslide"
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" * oracle+oracledb://C##demo:***@oracledb:1521?service_name=xe\n",
"0 rows affected.\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <thead>\n",
" <tr>\n",
" <th>kundennummer</th>\n",
" <th>anrede</th>\n",
" <th>nachname</th>\n",
" <th>vorname</th>\n",
" <th>geburtsdatum</th>\n",
" <th>ort</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>2310</td>\n",
" <td>Frau</td>\n",
" <td>Meitner </td>\n",
" <td>Lise </td>\n",
" <td>1878-11-17 00:00:00</td>\n",
" <td>Berlin </td>\n",
" </tr>\n",
" <tr>\n",
" <td>7562</td>\n",
" <td>Herr</td>\n",
" <td>Einstein </td>\n",
" <td>Albert </td>\n",
" <td>1879-03-14 00:00:00</td>\n",
" <td>Princeton </td>\n",
" </tr>\n",
" <tr>\n",
" <td>8365</td>\n",
" <td>Frau</td>\n",
" <td>Curie </td>\n",
" <td>Marie </td>\n",
" <td>1867-11-07 00:00:00</td>\n",
" <td>Paris </td>\n",
" </tr>\n",
" <tr>\n",
" <td>8523</td>\n",
" <td>None</td>\n",
" <td>Dekanat Informatik </td>\n",
" <td>FH Dortmund </td>\n",
" <td>None</td>\n",
" <td>Dortmund </td>\n",
" </tr>\n",
" <tr>\n",
" <td>8524</td>\n",
" <td>Herr</td>\n",
" <td>Meier </td>\n",
" <td>Max </td>\n",
" <td>1987-12-24 00:00:00</td>\n",
" <td>Dortmund </td>\n",
" </tr>\n",
" </tbody>\n",
"</table>"
],
"text/plain": [
"[(2310, 'Frau', 'Meitner ', 'Lise ', datetime.datetime(1878, 11, 17, 0, 0), 'Berlin '),\n",
" (7562, 'Herr', 'Einstein ', 'Albert ', datetime.datetime(1879, 3, 14, 0, 0), 'Princeton '),\n",
" (8365, 'Frau', 'Curie ', 'Marie ', datetime.datetime(1867, 11, 7, 0, 0), 'Paris '),\n",
" (8523, None, 'Dekanat Informatik ', 'FH Dortmund ', None, 'Dortmund '),\n",
" (8524, 'Herr', 'Meier ', 'Max ', datetime.datetime(1987, 12, 24, 0, 0), 'Dortmund ')]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%sql Select * from Kunde"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
":::{danger}\n",
"## Vorsicht!\n",
"Die User-Credentials nicht als plain-Text im Code angeben. \n",
":::"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
":::{tip} Best Practice\n",
"Alternativen: \n",
"- Passwörter über die Konsole abfragen und URL aus Variablen zusammensetzen\n",
"```python\n",
"# Beispiel: Zusammengesetzte URL \n",
"db_url = \"oracle+oracledb://{user}:{password}@{host}:1521/{sid}\".format(user=user, password=password, host=host, sid=sid)\n",
"%sql $db_url\n",
"# Das $-Zeichen vor dem Variablennamen bewirkt, dass die Variable vor der Übergabe ausgewertet wird und nicht die Variablenbezeichnung 'db_url'\n",
"```\n",
"- Verbindungsdaten in Konfigurationsdateien separat speichern (Name der dns.ini Datei in den Konfigurationsparametern hinterlegen)\n",
"- Verbindungsdaten als Environment-Variable speichern (z.B. in der Docker-Datei)\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
":::{hint}\n",
"## Hinweis\n",
"Auf Konfigurationsparameter für die Verbindung können über den Magic command %config zugegriffen werden.\n",
"```Python\n",
"# Listen aller Konfigurationsparameter:\n",
"%config SqlMagic\n",
"```\n",
":::"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"interpreter": {
"hash": "e1a611bfe618ddced957fae6e2b829e3db4b5e8138885cb3bfce781d42e2449a"
},
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.11"
},
"toc": {
"base_numbering": 0
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"state": {
"006e150df1ca4709b16d6aa58966a94c": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"1346df0366bf4db29333e241375e803e": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_2377eda4ec1d40df88edaed2942476e5",
"outputs": [
{
"data": {
"text/plain": "2"
},
"metadata": {},
"output_type": "display_data"
}
]
}
},
"138db3ac8be34d02bc0f06a50cf01265": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "DropdownModel",
"state": {
"_options_labels": [
"FH-Server",
"Docker"
],
"description": "Datenbankserver:",
"index": 1,
"layout": "IPY_MODEL_49e69193008a43d58face7c4b5725eed",
"style": "IPY_MODEL_ed1872f495a8453eb24e61f460f0b3d5"
}
},
"1e9b13ee77f9496fa8480046050fe67c": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_138db3ac8be34d02bc0f06a50cf01265",
"IPY_MODEL_1346df0366bf4db29333e241375e803e"
],
"layout": "IPY_MODEL_8adf8d382c04450dba77ae86c43dfcff"
}
},
"2331e6c4d8874d83aa3289663ff4a3b6": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_23753693895c4042ad9774757b7d53c3",
"IPY_MODEL_8229c7f3c83e43d9b83460940ac82e68"
],
"layout": "IPY_MODEL_be71f37481a74e13894f26351cbd16ab"
}
},
"23753693895c4042ad9774757b7d53c3": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "DropdownModel",
"state": {
"_options_labels": [
"FH-Server",
"Docker"
],
"description": "Datenbankserver:",
"index": 1,
"layout": "IPY_MODEL_b09c7d4f5e0c44b7bdb478a4afd99f2a",
"style": "IPY_MODEL_b5668b16278c4390a000e673db11fb93"
}
},
"2377eda4ec1d40df88edaed2942476e5": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"2bf44afdaa534213ade4d4906a9f31b0": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"3c64e4c5a8d34250905f8b3dc7c96360": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_9bced671ec214c4f847eac3c0061f194",
"IPY_MODEL_dbd058b9d3f94c2ba4f148b8a1e73f60"
],
"layout": "IPY_MODEL_a1c7b8876bae4a7ebca266e68291965b"
}
},
"49e69193008a43d58face7c4b5725eed": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"8229c7f3c83e43d9b83460940ac82e68": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_a2dee8ea3daa437faff274c169be7e56",
"outputs": [
{
"data": {
"text/plain": "2"
},
"metadata": {},
"output_type": "display_data"
}
]
}
},
"8adf8d382c04450dba77ae86c43dfcff": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"9bced671ec214c4f847eac3c0061f194": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "DropdownModel",
"state": {
"_options_labels": [
"FH-Server",
"Docker"
],
"description": "Datenbankserver:",
"index": 1,
"layout": "IPY_MODEL_006e150df1ca4709b16d6aa58966a94c",
"style": "IPY_MODEL_2bf44afdaa534213ade4d4906a9f31b0"
}
},
"a1c7b8876bae4a7ebca266e68291965b": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"a2dee8ea3daa437faff274c169be7e56": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"b09c7d4f5e0c44b7bdb478a4afd99f2a": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"b5668b16278c4390a000e673db11fb93": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"be71f37481a74e13894f26351cbd16ab": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"dbd058b9d3f94c2ba4f148b8a1e73f60": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_e036a6a211bb46908e1dfcc272b877f9",
"outputs": [
{
"data": {
"text/plain": "2"
},
"metadata": {},
"output_type": "display_data"
}
]
}
},
"e036a6a211bb46908e1dfcc272b877f9": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"ed1872f495a8453eb24e61f460f0b3d5": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
}
},
"version_major": 2,
"version_minor": 0
}
}
},
"nbformat": 4,
"nbformat_minor": 4
}