Database & Co.
Direttamente da Gavin King (Mr. Hibernate, l'amico di Janky ) un post che la dice lunga, molto lunga:
"In Defence of RDBMS"
http://blog.hibernate.org/cgi-bin/blosxom.cgi/2007/05/23
Il post è piuttosto lungo, e quindi riporto solo due estratti di quanto scritto da Gavin. Li riporto perchè sono concetti che chi mi conosce sa che difendo da sempre....anche quando sembravano essere controcorrente, e venivano tacciati come "vecchi e superati", ma ora che è passata la moda si riscoprono e tornano alla luce del sole...Bene, meglio tardi che mai!
Sulla centralità e sulla vita dei database:
"[...] data and data models last longer than applications, longer even than programming languages. Data is...
posted @ venerdì 25 maggio 2007 13:08 |
L'anno scorso è piaciuta cosi tanto che cosi anche quest'anno si replica. Sto parlando della SQL Conference 2007, che si terrà a Milano presso la sede Microsoft dal 12 al 14 giugno.
Quest'anno la conferenza viene proposta in 3 giorni, in forte collaborazione con Microsoft ed il team di sviluppo stesso di SQL Server, con la quale abbiamo stretto e rinnovato l'amicizia nell'appena trascorso MVP Summit.
Per quanto mi riguarda mi occuperò di due sessioni:
C314 - SQL Server 2005: analisi prestazioni e ottimizzazioneC316 - SMO: Server Management Objects
la prima è un evergreen e non ha bisogno di presentazioni, la seconda invece...
posted @ martedì 24 aprile 2007 08:59 |
I vari articoli MSDN scritti in italiano dai vari MVP (e non) sono ora disponibili, oltre che nei rispettivi Developer Center, anche in questa comoda lista:
http://www.microsoft.com/italy/msdn/risorsemsdn/community/mvp/articles.mspx
posted @ mercoledì 11 aprile 2007 19:41 |
Un interessante sito dove è possibile generare dati di test, utile sia ai possesori di VS DB PRO (almeno fino a quando non ci sarà una più ampia scelta di Data Generators) sia, ovviamente, a chi non ne è in possesso.
http://www.benjaminkeen.com/software/data_generator/
posted @ lunedì 9 aprile 2007 21:46 |
E' stato pubblicato un interessante documento sull'utilizzo degli Unit Test in un database: http://msdn2.microsoft.com/en-us/library/bb381703(VS.80).aspx
posted @ lunedì 19 marzo 2007 21:55 |
E' stato pubblicato il mio secondo articolo sulle Development Guidelines per lo sviluppo di un database. Questo articolo, in realtà, può essere letto da chiunque, anche da chi non usa SQL Server. Perchè può essere letto da chiunque? Perchè si parla di progettazione di un database, di normalizzazione, dell'utilizzo dei NULL di utilizzo delle stored procedure. Tutti concetti che migliorano lo sviluppo dei database e quindi anche delle soluzioni basate a SQL Server. Concetti che sono vitali per utilizzare al meglio un RDBMS della complessità e della potenza di SQL Server, e che invito pertanto tutti a leggere e rileggere...
posted @ lunedì 26 febbraio 2007 23:39 |
Sto ascoltando in questo momento il programma "Al vostro posto" di Radio 24. Tralasciando il tema della puntata del programma, la cosa che mi preme sottolineare è come il responsabile dell'ATM intervistato dalla Radio abbia ancora la concezione di idee che i dati scambiati dall'ATM ed i suoi partner siano su "dischetti" (testuali parole). Rabbrividisco.
Ma la cosa che mi fa ancora più rabbrividire è che ogni volta che qualche responsabile di qualche società viene intervistato riguardo a qualche disguido di comunicazione con il cliente finale (di qualsiasi tipo, dalla notifica del pagamento di un multa - come nel caso...
posted @ lunedì 19 febbraio 2007 20:17 |
Finalmente - e con grande, grandissima gioia - posso rendere pubblica la notizia che per me rappresenta un importantissimo passo avanti nel mio futuro professionale.
Nei prossimi giorni nascerà la divisione italiana di Solid Quality Learning, uno dei marchi più prestigiosi e conosciuti a livello mondiale, legato alla consulenza ed alla formazione su prodotti Microsoft (In particolare SQL Server ma non solo). I nomi che si trovano sotto il cappello di Solid Quality Learning sono semplicemnte impressionanti: Fernando Guerrero, Kalen Delaney, Itzik Ben-Gan, Brian Moran, Peter DeBetta, Ken Spencer (per non parlare dei rappresentanti italiani)...e potrei continuare a lungo. La possibilità di essere...
posted @ martedì 23 gennaio 2007 15:42 |
Come già anticipato da Lorenzo e da Simone il 21 Febbraio 2007 ci sarà un Technical Workshop dedicato a Visual Studio 2005 Team Edition for Database Professionals. Insieme a Lorenzo mostrerò come l'utilizzo di VS 2005 DBPro sia una reale manna dal cielo (non per fare pubblicità lo dico seriamente) per chi sviluppa / amministra un database. Non mancate!
posted @ martedì 16 gennaio 2007 16:13 |
Sono contento che Mauro abbia chiarito nel dettaglio ciò che intendevano lui e Raf nei post che consigliavano di non utilizzare le stored procedure. Io rimango cmq della mia posizione. Non usare le stored procedure E' MALE. Onde evitare flame :-) mi spiego subito. Il caso descritto: "L'uso di uno statement specifico che si preocupa di aggiornare i soli dati realmente modificati permette inoltre di gestire meglio la concorrenza ottimistica nel caso in cui, ad esempio, il client X modifichi la Ragione Sociale mentre il client Y modifichi l'indirizzo della ns entity, in un caso come questo potrebbe non avere senso...
posted @ domenica 12 novembre 2006 01:45 |
Disclaimer: Se stai leggendo queste righe e sei un sviluppatore .NET ed usi database tutti i giorni ma - in cuor tuo - sai che per te sono un pò un mistero e non sei sicuro se è meglio mettere una colonna in più o aggiungere una tabella di lookup, se pensi che l'indice cluster sia la primary key, se non sai cos'è davvero una primary key...formati e leggi: questo post è anche per te. Bello il disclaimer eh? :-) Spero di aver attirato la vostra attenzione: ho appena messo online l'agenda del prossimo evento UGISS che, come dice il nome, rappresenta...
posted @ martedì 26 settembre 2006 22:37 |
Come ho già detto diverse volte e come Scott Ambler (e non solo) sostiene da tempo, è possibile approciare allo sviluppo del DB con metodologie Agili.
Per poterlo fare _veramente_ e _seriamente_ è necessario (oltre che ad un cambio di mentalità ) avere a disposizione sistemi per l'attuazione di Unit Testing: per Sql Server è possibile utilizzare TSQLUnit. Ancora non ho iniziato ad usarlo, ma lo userò a breve, presto posterò le prime impressioni d'uso.
A livello più generico un tool per effettuare Unit Testing sui db è SQLUnit (basato su Java). Nel caso il primo non dovesse andare bene (è ancora...
posted @ giovedì 9 marzo 2006 23:27 |
Scott Ambler ha raccolto cinque articoli di importanti figure nel mondo della modellazione dei dati (tra cui anche David Hay) in una pubblicazione scaricabile gratuitamente da qui:http://www.cutter.com/offers/agiledata2.html
Gli articoli sono:
Evolutionary Database Development Techniques by Scott W. Ambler and Pramod J. Sadalage
Agile Database Testing by Ken Collier
Enabling Agile Database Development: A Case Study by Nick Ashley
Agile Applications as Open-Vocabulary English Business Rules over SQL by Adrian Walker
Data and Agile Methods by David Hay
sono 44 pagine (un librettino in pratica) e non ho ancora avuto il tempo di leggerlo tutto, ma sembra (come tutti gli scritti di Scott) molto interessante....
posted @ martedì 28 febbraio 2006 01:59 |
Vedo che si comincia a creare un pò di interesse intorno al tema del data modelling. Un ottimo libro sull'argomento, molto aggiornato, che tiene conto anche delle domande normalmente poste da chi ha esperienza di sviluppo OO e delle ultime teorie sulla sviluppo Agili (senza per questo "violare" i normali concetti di data modelling) è questo
Data Modeling Essentialshttp://www.amazon.com/exec/obidos/tg/detail/-/B0007KIQP4/ref=pd_sim_b_5/104-8044554-9575905?%5Fencoding=UTF8&v=glance
Potrete cosi avere riposte so come cercare di modellare un database in modo corretto. Scoprirete cosi come è possibile creare un solido modello dati anche se le informazioni che avete a disposizioni sono incomplete. Ne consiglio la letture a chinque abbia a che fare con i...
posted @ giovedì 13 ottobre 2005 00:56 |
Un post di oggi di Igor mi ha stimolato a scrivere un articolo che da qualche giorno ho nel cassetto. L'idea mi è venuta da quando ho assistito alla presetazioni di Paul Nielsen riguardo alla modellazione dei dati, dove, in una slide iniziale, mostrava in modo estramamente chiaro e semplice che impatto hanno sulle performance le ottimizzazioni che possiamo fare su un qualsiasi database (SQL Server 2000 e 2005 in particolare). Il concetto è riassunto da questa piramide:
Che in modo incofutabile comunica che l'impatto maggiore sulle prestazioni è dato da questa sequenza:
1 - Modello del database
Se il database è disegnato male (troppo o troppo poco...
posted @ lunedì 10 ottobre 2005 20:32 |
Rubo un pò di spazio per far sapere a tutti i lettori di UgiDotNet che hanno (con gioia o con dolore, decidete voi ) la necessità di dover lavorare con SQL Server che è stato riperto lo user group dedicato ad esso.
Lo potete trovare a questo indirizzo:
www.ugiss.org
inutile dire che come ogni community poggia la sua forza sulle persone la che compongono, quindi se volete partecipare a farla diventare una _grande_ community (come questa del resto ) siete i benvenuti (e poi so per certo che molti di voi apprezzano il modo relazionale e non solo quello ad oggetti, quindi...
posted @ giovedì 22 settembre 2005 15:49 |
Oggi l'ho detto anche alla conferenza parlando di XML e lo ha sottolineato anche il mio collega Alessandro parlando di SQLCLR. Questi sono strumenti MOLTO potenti....ma che non devono necessariamente essere utilizzati in ogni database ed in ogni query che faremo su SQL 2005. Anzi...molte volte è meglio evitare di usarli in quanto le soluzioni set-based che il "vecchio" T-SQL ci mette a disposizioni sono ancora (e rimarranno) molto ma molto ma molto più efficienti.
Allora perchè, come fa notare JoelOnSoftware e come riprende Bill Graziano nel suo blog, alcuni articoli su MSDN mostrano come fare cose che noi continuiamo a dire...
posted @ sabato 7 maggio 2005 00:33 |
Per tutti gli ISV è in programma un traning tecnico su SQL Server 2005 di ben 5 (cinque!) giorni davvero intensi ed interessanti.
L'incontro inizierà il 2 Maggio e durerà per tutta la settimana. Si parlerà di tutto ciò che di nuovo porta la versione 2005: dall'amministrazione allo sviluppo, dalla business intelligence alla reportistica.
Se qualcuno di voi ci sarà, finalmente potremo conoscerci di persona; io infatti mi occuperò di tenere le sessioni riguardanti:
Integration Services
Reporting Services
XML
Service Broker
Web Services
http://www.microsoft.com/italy/partner/eventi/seminari/sql.mspx
posted @ giovedì 21 aprile 2005 18:30 |
La risposta è un pò lunga, quindi ho preferito metterla in un articolo dedicato. Il link per leggere il tutto (e soprattutto, dire la vostra) è qui:
http://blogs.ugidotnet.org/nettools/articles/14330.aspx
posted @ martedì 19 aprile 2005 17:49 |
Finalmente è terminato ed è disponibile al pubblico il primo corso italiano su una tecnologia potente ma ahimè ai più sconosciuta, ovvero i DTS di SQL Server 2000.
Il corso in questione è completamente prodotto da me ed erogato grazie al supporto di Mondadori Education. I contenuti sono estremamente pratici e sono condensati in due giorni pieni dove vengono analizzate tutte le potenzialità, limiti e trucchi per fare "l'impossibile" con i DTS di SQL Server 2000, senza però perdere di vista l'evoluzione degli stessi, ossia i Sql Server Integration Services di 2005, che, vi assicuro, distribuiscono ottimo impressioni a piene mani!
Il...
posted @ venerdì 18 marzo 2005 09:59 |
Se dovete generare della documentazione per un database (lista delle tabelle con relative colonne e proprietà e via dicendo), un modo gratuito e furbo per farlo è quello di utilizzare le viste INFORMATION_SCHEMA unitamente ai Reporting Services.
Per estrarre tutte le colonne di una tabella, ad esempio:
SELECT C.TABLE_NAME, C.COLUMN_NAME, C.COLUMN_DEFAULT, C.IS_NULLABLE, C.DATA_TYPE, C.CHARACTER_MAXIMUM_LENGTH, C.NUMERIC_PRECISION, C.NUMERIC_PRECISION_RADIX, C.NUMERIC_SCALE, C.DOMAIN_NAME FROM INFORMATION_SCHEMA.COLUMNS C INNER JOIN INFORMATION_SCHEMA.TABLES T ON C.TABLE_CATALOG = T.TABLE_CATALOG AND C.TABLE_SCHEMA = T.TABLE_SCHEMA AND C.TABLE_NAME = T.TABLE_NAME WHERE T.TABLE_TYPE = 'BASE TABLE' AND T.TABLE_NAME LIKE @tableName ORDER BY C.TABLE_NAME, C.ORDINAL_POSITION
Il parametro @tableName viene valorizzato utilizzando una ComboBox i cui...
posted @ mercoledì 2 marzo 2005 13:00 |
Il post sulle "superfici di contatto" ha avuto diversi feedback (speravo di più ad esser sincero...si parla parecchio di metodologie di sviluppo qui si UGIdotNET e quindi pensavo che l'argomento interessase ai più...boh), ed ha riportato in auge il dilemma "meglio un data access layer o delle procedure sul database tipo stored procedure?".
Beh, io qui dico la mia, sperando ancora un volta in un ampio feedback in modo da metter sul tavolo un pò di argomenti di discussione interessanti.
La mia idea è che non ci può essere un vincitore a questa domanda. Nessuna delle due opzioni è meglio dell'altra in...
posted @ martedì 1 febbraio 2005 09:28 |
In questi giorni da un cliente mi sono trovato a dover
spiegare perchè è cosa buona e giusta creare uno strato di accesso ai
dati e perchè è necessario utilizzare abbondantemente stored procedure e
affini (se presenti nell'rdbms utilizzato).
Sul momento ho spiegato per esteso le varie problematiche che tale soluzione
permette di evitare, correggere e prevenire, ma, ora, ripensandoci bene, credo
che la cosa potrebbe essere resa molto più chiara e comprensibile (e soprattutto
convincente) utilizzando un semplice concetto.
Tale concetto è ben rappresentato dall'idea di
pensare a delle "superfici di contatto ". Database e applicazioni,
applicazioni ed altre applicazioni,...
posted @ venerdì 28 gennaio 2005 19:05 |
Bene, sono contento che il post precedente abbia suscitato interesse!
Vi ricordo che sul sito www.agiledata.org potete dare un'occhiata ai contenuti del libro prima di acquistarlo (direi che c'è praticamente *tutto* il libro...però per me la carta stampata è ancora insostituibile!)
powered by IMHO 1.2
posted @ giovedì 27 gennaio 2005 20:18 |
Non è da me fare una pubblicità così marcata a qualcosa, ma questo libro è davvero da leggere.
Oggi ho finito di leggerlo (ma ho già in programma la rilettura di alcune sue parti) e ogni singola pagina è una miniera di consigli ed esperienza.
Io normalmente mi trovo molto spesso a dover essere l'anello di congiunzione tra database architects e software architects e quindi argomenti quali la convivenza di due paradigmi differenti (come OOD ed il modello relazionale) sono pane di tutti i giorni, cosi come la convivenza con sistema legacy, che, come ben si sa, sono come i protagonisti di...
posted @ mercoledì 26 gennaio 2005 23:20 |
Ieri sono andato avanti nella lettura del libro Agile Database Techniques, che si dimostra ad ogni pagina sempre più bello.
Ho scoperto che esiste il concetto di Class Normalization, che è ovviamente è parallelo al concetto di Data Normalization così ben conosciuto a tutti coloro che lavorano con un rdbms.
Le regole che esprime sono regole che - secondo me - probabilmente già tutti applichiamo e conosciamo, in quanto mi sembrano "semplicemente" delle regole legate al buon senso, ed, alla fine, si ritorna al concetto fondamentale che le operazioni che agiscono sui dati vanno dove ci sono i dati. Dato che però magari questo concetto...
posted @ giovedì 13 gennaio 2005 10:27 |
Ieri ho speso molto tempo sui mezzi di trasporto (troppo....quando potremo direi anche noi "Beam me up, Scotty" ? ), ma per fortuna sono riuscito a investirlo nella sana lettura del libro "Agile Database Techniques".
Uno dei punti che più mi ha favorevolmente colpito - e stupito direi - è che Scott W. Ambler, l'autore, sostiene che per essere Agili è necessario diventare dei Generalized Specialist. E' una cosa in cui ho sempre creduto, e mi sono praticamente sempre trovato in controcorrente , ed ora che lo leggo scritto sul libro di uno degli autori più autorevoli del movimento agile, beh,...
posted @ mercoledì 12 gennaio 2005 10:16 |
Anche oggi sul ng di SQL Server è stata postata la fatidica domanda: "...ma devo scrivere cosi tante stored procedure"?
Si.
Non bisogna avere paura di avere molte stored procedure all'interno di un database, non è sintomo di cattiva programmazione nè tanto meno di poca portabilità.Le stored procedure permettono di far sì che lo schema del nostro database sia indipendente dalla logica di business e viceversa. La logica di business (molto più correttamente la logica di accesso ai dati) deve "semplicemente" scegliere qual'è la stored procedure (o query se ipotizziamo di lavorare su un db che non supporta le SP) che deve...
posted @ lunedì 10 gennaio 2005 15:18 |
Finalmente il libro è arrivato!
In questi giorni comincierò a leggerlo (tanto più che devo viaggare spesso, quindi potrò impegare il tempo sui mezzi di trasporto in modo ottimale) e vediamo che ne esce.
Devo ammettere di essere abbastanza esaltato a riguardo!
posted @ lunedì 10 gennaio 2005 15:04 |
Approcio Agile e Pattern ovunque, anche per chi deve modellare i database:
http://www.bookpool.com/.x/hr9s5wows8/sm/0471202835
e
http://www.amazon.com/exec/obidos/tg/detail/-/0932633293/104-4238991-1062343?v=glance
sicuramente faranno inorridire i puristi del modello relazionale (e ne conosco almeno un paio ) ma a me questi approci piacciono un sacco!
posted @ domenica 2 gennaio 2005 15:23 |
Stavo cercando un tool che mi permettesse di creare dei dati di esempio (verosilimi) con la quale popolare un db di test (mi sa che il tool me lo devo fare....) e sono capitato su questa interessantissima pagina:
http://www.agiledata.org/
che, come potete capire del nome, propone un approcio agile allo sviluppo dei database....magari può essere d'aiuto anche per rispondere al problema sollevato da AndreaB nel suo post:
http://blogs.ugidotnet.org/penpal/archive/2004/12/29/7934.aspx
posted @ domenica 2 gennaio 2005 13:11 |
In questo
periodo nella quale i problemi di sicurezza sono balzati agli occhi di tutti
credo che un componente come questo SecureQueryString 2.0 (Credo che il nome sia
autoesplicativo no? ) possa essere molto utile:
http://www.dotnetjunkies.com/HowTo/3ABCD244-CC7C-4CED-B64E-BCF05191CDAB.dcik
powered by IMHO
posted @ mercoledì 17 novembre 2004 11:31 |
Sempre
Giuseppe mi ha fatto notare anche
che Ingres, l'RDBMS di CA
è stato rilasciato sotto licenza Open Source!
http://opensource.ca.com/projects/ingres
Niente male davvero!
powered by IMHO
posted @ martedì 16 novembre 2004 14:37 |
Oggi stavo cercando un database free che potesse funzionare anche su PocketPC e mi sono imbattuto in SQLite, che ancora non conoscevo e mi ha subito ben impressionato: promette di essere molto veloce e stabile, è leggero e sono disponibili dei native provider per il framework.
Ora non ho molto tempo di provarlo (la WPC è fin troppo vicina e devo ancora finire di preparare le mie sessioni), ma lo farò sicuramente appena passa questo periodo di "piena".
Nel frattempo chi fosse interessato può trovare qui
http://www.sqlite.org/index.html
http://weblogs.asp.net/ashben/archive/2003/12/21/44949.aspx
tutte le informazioni del caso.
Basata su SQLite è disponibile anche una "suite" che mi sembra molto bella,...
posted @ domenica 17 ottobre 2004 12:46 |
Come Stefano ha già ha segnalato in un suo post, Borland ha rilasciato una versione free di Together, il proprio tool di design UML ed ER.
Credo che sia un tool che tutti quelli che non hanno Visio (ma anche quelli che lo hanno...a me proprio non piace...) devono prendere in seria considerazione. Grazie a Together è possibile creare diagrammi UML 1.4 e 2.0 (per il disegno di classi, comportamenti, sistemi, e via dicendo), e anche diagrammi ER per il disegno delle basi dati.
Indispensabile (almeno fino all'arrivo di Visual Studio 2005...poi si vedrà )
L'unica pecca è che è java-based......è lllleeeeeeennnnnnnttttttttoooooooooo :-(
posted @ giovedì 30 settembre 2004 22:41 |
Tool tipo Query Analyzer
posted @ giovedì 19 agosto 2004 20:59 |
Il disegno di un database è un'operazione che dovrebbe (uso il condizionale perchè siamo tutti uomini di mondo e sappiamo benissimo, che....a volte....la teoria è *leggermente* diversa dalla realtà) essere sempre fatta, e, che, se i database non sono fatti di 4 tabella, la cosa potrebbe non essere proprio agevole.
Di tool per soddisfare un'esigenza di questo tipo ce ne sono parecchi (a pagamento), ma anche sul versante free, si può trovare un tool di tutto rispetto: fabForce DBDesigner 4.
Il link per leggere tutte le features e per scaricare il programma è questo:
http://fabforce.net/dbdesigner4/
Giusto per completezza riporto l'inziale descrizione del pacchetto che...
posted @ mercoledì 24 marzo 2004 11:55 |
Avete bisogno di collegarvi ad un database e non vi ricordate o non sapete come scrivere la stringa di connessione con i parametri corretti?
No problem: http://www.connectionstrings.com/ è il sito da visitare.
posted @ giovedì 18 marzo 2004 00:32 |