View Full Version : [Python] Database
~FullSyst3m~
18-02-2009, 10:21
Odio i database, ma mi rendo conto che si devono sapere per poter lavorare nel settore. Il punto è che ho le idee abbastanza confuse su questo argomento. Da cosa dovrei iniziare? E con Python, oltre a SQL Lite, come posso usare i database?
Puoi usare un ORM. Un ORM (object relational mapper) trasforma le tabelle di un DBMS in oggetti python; manipolando questi oggetti è come se stessi manipolando il DB stesso.
In questo modo non sarai costretto a scrivere SQL, ed il tuo software sarà automaticamente indipendente dal db perchè supporterà automaticamente tutti i DBMS supportati dall'ORM senza alcuna modifica al codice :cool:
SQLAlchemy (http://www.sqlalchemy.org/) è il più famoso, ma c'è una certa scelta ;)
http://www.sqlalchemy.org/docs/05/ormtutorial.html
cdimauro
18-02-2009, 13:19
Odio i database, ma mi rendo conto che si devono sapere per poter lavorare nel settore. Il punto è che ho le idee abbastanza confuse su questo argomento. Da cosa dovrei iniziare?
Magari un buon libro di algebra relazionale e SQL. Ma non saprei cosa consigliarti.
E con Python, oltre a SQL Lite, come posso usare i database?
Ce ne sono tanti: FireBird, PostgreSQL, Oracle, MS SQL, MySQL (sich!), ecc. ecc. ecc.
Il mio consiglio è di cominciare a smanettare con SQLite, visto che è incluso nella libreria standard di Python, e quando avrai un po' di dimestichezza con database, tabelle, record, colonne, join, ecc. ecc. passare a qualche engine SQL serio (io ti consiglio FireBird; open source, e con licenza BSD-like).
cdimauro
18-02-2009, 13:20
Puoi usare un ORM. Un ORM (object relational mapper) trasforma le tabelle di un DBMS in oggetti python; manipolando questi oggetti è come se stessi manipolando il DB stesso.
In questo modo non sarai costretto a scrivere SQL, ed il tuo software sarà automaticamente indipendente dal db perchè supporterà automaticamente tutti i DBMS supportati dall'ORM senza alcuna modifica al codice :cool:
SQLAlchemy (http://www.sqlalchemy.org/) è il più famoso, ma c'è una certa scelta ;)
http://www.sqlalchemy.org/docs/05/ormtutorial.html
Questo non l'avevo considerato. Eccellente suggerimento. :)
~FullSyst3m~
18-02-2009, 14:24
Magari un buon libro di algebra relazionale e SQL. Ma non saprei cosa consigliarti.
Ce ne sono tanti: FireBird, PostgreSQL, Oracle, MS SQL, MySQL (sich!), ecc. ecc. ecc.
Il mio consiglio è di cominciare a smanettare con SQLite, visto che è incluso nella libreria standard di Python, e quando avrai un po' di dimestichezza con database, tabelle, record, colonne, join, ecc. ecc. passare a qualche engine SQL serio (io ti consiglio FireBird; open source, e con licenza BSD-like).
Mi sembra abbastanza incasinato l'ambito database. Era per farmi un'idea comunque. Non so nemmeno dove trovare il tempo per studiarlo. Magari aspetto di farlo all'uni.
In ogni per prendere un pò di dimestichezza devo studiare da qualche parte. Sto dando un'occhiata alla guida su html.it.
~FullSyst3m~
18-02-2009, 14:46
Puoi usare un ORM. Un ORM (object relational mapper) trasforma le tabelle di un DBMS in oggetti python; manipolando questi oggetti è come se stessi manipolando il DB stesso.
In questo modo non sarai costretto a scrivere SQL, ed il tuo software sarà automaticamente indipendente dal db perchè supporterà automaticamente tutti i DBMS supportati dall'ORM senza alcuna modifica al codice :cool:
SQLAlchemy (http://www.sqlalchemy.org/) è il più famoso, ma c'è una certa scelta ;)
http://www.sqlalchemy.org/docs/05/ormtutorial.html
Il fatto è, come ha detto cdimauro, che dovrei studiare almeno la teoria dei database. Le basi quantomeno.
Per la teoria ti conviene cominciare con uno dei libri che usano alle superiori. In genere spiegano solo il minimo di teoria quindi non è pesante e sono pieni di esempi ed esercizi su cui esercitarsi. Ora non ce l'ho sotto mano ma se ti interessa questa sera posso passarti il titolo di quello che usai io.
Per cominciare ti consiglio anche io SQLite che è più che sufficiente per cominciare. Se usi firefox come browser installa l'estensione SQLite Manager che ti permette di smanettare con la struttura del db, creare query al volo dal browser con una interfaccia grafica.
~FullSyst3m~
18-02-2009, 17:58
Per la teoria ti conviene cominciare con uno dei libri che usano alle superiori. In genere spiegano solo il minimo di teoria quindi non è pesante e sono pieni di esempi ed esercizi su cui esercitarsi. Ora non ce l'ho sotto mano ma se ti interessa questa sera posso passarti il titolo di quello che usai io.
Per cominciare ti consiglio anche io SQLite che è più che sufficiente per cominciare. Se usi firefox come browser installa l'estensione SQLite Manager che ti permette di smanettare con la struttura del db, creare query al volo dal browser con una interfaccia grafica.
Si, grazie. Aspetto il titolo. Comunque qua libri di questo tipo non esistono visto che non abbiamo questo tipo di liceo.
Installerò anche l'estensione e vediamo come va anche se per il momento è meglio che studio le basi e poi SQLLite.
Puoi usare un ORM. Un ORM (object relational mapper) trasforma le tabelle di un DBMS in oggetti python; manipolando questi oggetti è come se stessi manipolando il DB stesso.
In questo modo non sarai costretto a scrivere SQL, ed il tuo software sarà automaticamente indipendente dal db perchè supporterà automaticamente tutti i DBMS supportati dall'ORM senza alcuna modifica al codice :cool:
SQLAlchemy (http://www.sqlalchemy.org/) è il più famoso, ma c'è una certa scelta ;)
http://www.sqlalchemy.org/docs/05/ormtutorial.html
Bella questa cosa ;)
CozzaAmara
18-02-2009, 18:38
Odio i database, ma mi rendo conto che si devono sapere per poter lavorare nel settore. Il punto è che ho le idee abbastanza confuse su questo argomento. Da cosa dovrei iniziare? E con Python, oltre a SQL Lite, come posso usare i database?
Se parti da zero ti consiglio:
"Progettare Database" di Micheal J Hernandez. (Mondadori Informatica)
Se poi vuoi spingerti su algebra relazionale e concetti avanzati con un libro di stampo universitario allora ti consiglio:
"Sistemi di basi di dati (fondamenti)" di Elmasri/Navathe (Pearson Addison-Wesley).
Come RDBMS ti posso suggerire MySQL (i puristi mi crocefiggeranno) oppure PostgreSQL.
~FullSyst3m~
18-02-2009, 18:52
Se parti da zero ti consiglio:
"Progettare Database" di Micheal J Hernandez. (Mondadori Informatica)
Se poi vuoi spingerti su algebra relazionale e concetti avanzati con un libro di stampo universitario allora ti consiglio:
"Sistemi di basi di dati (fondamenti)" di Elmasri/Navathe (Pearson Addison-Wesley).
Come RDBMS ti posso suggerire MySQL (i puristi mi crocefiggeranno) oppure PostgreSQL.
Per adesso inizio leggendo la guida di html.it, sto facendo matematica e sto dando un'occhiata a Java. Appena ho tempo approfondisco, in caso spero di farlo per bene all'uni.
Si, grazie. Aspetto il titolo. Comunque qua libri di questo tipo non esistono visto che non abbiamo questo tipo di liceo.
Installerò anche l'estensione e vediamo come va anche se per il momento è meglio che studio le basi e poi SQLLite.
Nuovo corso di informatica 3 - Basi di dati e sistemi informativi di Giuseppe Callegarin.
~FullSyst3m~
18-02-2009, 20:28
Nuovo corso di informatica 3 - Basi di dati e sistemi informativi di Giuseppe Callegarin.
Grazie.
cdimauro
18-02-2009, 20:28
Come RDBMS ti posso suggerire MySQL (i puristi mi crocefiggeranno) oppure PostgreSQL.
Non è questione di "purismo", ma semplicemente di prendere atto che MySQL non è un engine SQL comparabile agli altri quanto a maturità e aderenza agli standard SQL-XX.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.