Newsgroup: it.comp.software.database
Titolo: Imprecisioni nelle FAQ ?

Scusate il semi-OT, ma mi e' sembrato, leggendo le FAQ, che vi sia qualche
imprecisione:
Innanzitutto, una sciocchezza, cioe' il riferimento al sito per Interbase e'
sbagliato e dovrebbe essere 
http://www.borland.com/interbase/
.
Poi, la cosa su cui volevo dei chiarimenti:
"1. se MySQL fosse GPL, la vostra applicazione commerciale dovrebbe essere
GPL pure lei"
Scusate ma, dove sta scritto ?
Se un'applicazione viene distribuita sotto GPL e io la utilizzo con il mio
programma, non sono obbligato a distribuire il mio programma sotto GPL,
quindi se MySQL (applicazione X) fosse GPL, nulla si potrebbe dedurre circa
la nostra applicazione commerciale.
Per MySQL, poi, vale un discorso particolare se i propri fini sono
commerciali, ma e', appunto un discorso a parte. Sbaglio qualcosa ?
Seconda cosa: nello spiegare cos'e' un database relazionale, alla fine del
testo viene riportato il termine "relazione" per indicare cio' che in
inglese viene chiamata "relationship", che e' molto diversa da "relation"
(da cui deriva la R di RDBMS).
Molta gente, infatti, e' convinta che un database relazionale sia un
database in cui e' possibile creare relazioni tra le tabelle, quando si sa
che non sta ad indicare questo la R di relazionale.
Nel modello originale di Codd, una relazione e' cio' che si intende, piu'
comunemente, per "tabella".
Sempre a proposito di questo, poco dopo, nello spiegare i db file-based
viene detto:
"Questo tipo di database in genere non sono relazionali, sono relativamente
poco costosi,"
Insisto sul termine "relazionale". Tutti i DB file-based che io conosco
(Access, Paradox, DBase) sono relazionali, pur non implementando il modello
Client/Server.
Che ne pensate ?
--------------------------------
Inviato via 
http://usenet.libero.it

 testo viene riportato il termine "relazione" per indicare cio' che in
Scrivi una definizione migliore e mandamela che la pubblico al posto
di questa.
Davide

 di questa.
RDBMS.
Un RDBMS (Relational Database Management System) e' un sistema che consente
la creazione, l'aggiornamento e l'amministrazione di un database
relazionale. Normalmente, un RDBMS si occupa di eseguire dei comandi
espressi in SQL (Structured Query Language) impartiti dall'utente o da un
programma, per manipolare i dati contenuti nel database.
Un database relazionale e' un insieme di tabelle (dette, appunto,
"relazioni"), contenenti dati suddivisi in righe (record) e colonne. La
teoria alla base dei database relazionali fu inventata nel 1970 da E.F.Codd,
alla IBM.


 "relazioni"), contenenti dati suddivisi in righe (record) e colonne. 
   Ed anche di viste, stored procedure, criteri e permessi d'accesso...
   Non voglio far polemica, voglio solo sottolineare come sia 
estremamente complesso definire in poche righe concetti di questo tipo. 
Tuttavia, se lo ritenente proprio strettamente necessario, allora 
sarebbe, IMHO, meglio passare la "patata bollente" a qualcuno che gia` 
si e` sufficientemente esposto:
	"Un sistema di gestione di basi di dati (in inglese Data
	 Base Management System) e` un sistema software in grado
	 di gestire collezioni di dati che siano grandi, condivise
	 e persistenti, assicurando la loro affidabilita` e
	 privatezza." [1]
   Immagino che siano disponibili altre centoventi definizioni di 
granularita` altrettanto, se non maggiormente, fine. Solo i miei due 
centesimi...
[1] Atzeni & Al., "Basi di dati (seconda edizione)", McGraw-Hill.
-- 
Alla prossima,
Marco

 Che significa "linkare staticamente" MySQL ?
MySQL viene distribuito come sorgenti e librerie, se tu richiami dal tuo
programma le funzioni di MySQL e linki le librerie nel tuo programma lo
hai "attaccato staticamente". In ogni caso, se leggi la licenza di MySQL
(link nelle FAQ), dovrebbe essere abbastanza chiaro.
Davide

 estremamente complesso definire in poche righe concetti di questo tipo.
Vedi sopra.
Non e' necessario, se vuoi definire a caratteri sufficientemente generali un
RDBMS.


 (link nelle FAQ), dovrebbe essere abbastanza chiaro.
Ho letto la licenza di MySQL, ma resta il fatto che questo non mi sembra un
uso molto comune di MySQL e, tra l'altro, mi sembra che le FAQ di questo
gruppo siano un po' fuorvianti. Comunque, non volevo fare polemica, era solo
per chiarirmi le idee su quanto c'era scritto.


 (link nelle FAQ), dovrebbe essere abbastanza chiaro.
Ho letto la licenza di MySQL, ma resta il fatto che questo non mi sembra un
uso molto comune di MySQL e, tra l'altro, mi sembra che le FAQ di questo
gruppo siano un po' fuorvianti. Comunque, non volevo fare polemica, era solo
per chiarirmi le idee su quanto c'era scritto.
--------------------------------
Inviato via 
http://usenet.libero.it

Ho notato il piccolo thread iniziato sulle "veniali"
imprecisazioni sulle FAQ... e ho seguito un pochino
lo sviluppo delle cose...
credo che sia necessario un chiarimento in merito
altrimenti domani ci svegliamo tutti quanti con la
convinzione che MySql sia sempre stato un RDBMS
(c'è anche chi lo  ha definito un filesystem con una
interfaccia SQL, e il tizio non era un coglione)...
Premetto che non ho nulla in contrario a MySql...
Mettiamo i puntini sulle i:
a) modello relazionale: blah blah blah... codd 1970
erano gli albori del DB2 e pappate varie... però nessuno
si è reso conto che quello è un modello... lo dice la
parola stessa... ora senza scomodare tuple e domini
(lasciamo perdere il discorso accademico) Codd dice
che per soddisfare il modello relazionale i dati devono
essere strutturati secondo una certa logica, che
soddisfi la uan, tciu, tri (for e faiv) forme normali.
Stop... basta.
b) rational database management system: (sottolineo il
management) lo dice la parola stessa è un sistema di
gestione del "modello relazionale" ideato da codd.
Qui ci sono precisazioni da fare; prima di tutto essendo
un sistema di gestione il "software" deve mettere a
disposizione dei meccanismi di controllo affinchè il
modello rimanga conforme alla regole della normalizzazione.
Che meccanismi si utilizzano di solito?
PK, FK per l'integrità referenziale (o meglio relazionale)
e i CK per l'integrità di dominio... che mi si passi
l'espressione a codd de questo "nun je ne poteva fregà
de meno" perchè giustamente esula dal modello da lui ideato...
Però c'è una cosa che deve essere implementata: l'integrità
delle transazioni... integrità che viene garantita dalle
proprietà ACIDe (Atomicità, Consistenza, Isolabilità,
Persistenza o Durabilità)... tutto questo proprio per
rendere il modello relazionale consistente alla regole
imposte...
Una transazione andata a puttane su una tabella può
lasciare una situazione inconsistente che non soddisfi
as esempio la prima forma normale...
Mentre gli altri meccanismi (PK, FK, CK) possono essere
aggirati applicativamente (si fa per dire), questo ultimo
invece non può esserlo per ovvie ragioni... (concorrenza
degli accessi)
Ecco perchè "sicuramente" non può essere considerato un
RDBMS un software che non supporti le transazioni...
Per quanto riguarda i vincoli di integrità avrei i miei
dubbi... IMHO devono esistere affinchè si possa parlare
di RDBMS e sottolineo RDBMS non Modello relazionale...
Spero di essere stato chiaro...
/G
PS: io ho provato a dare un'occhiata sulla documentazione
di MySql (prima del supporto InnoDB a dire il vero) e la
parola RDBMS non mi sembra compaia da nessuna parte...

parola RDBMS non mi sembra compaia da nessuna parte...
infatti MySQL _NON_ è un RDBMS
--
Rhymes (
rhymes_...@myself.com
)
http://www26.brinkster.com/rhymes
http://bw-crema.blogspot.com

effetti.
Su questo ho dei seri dubbi, MySQL si definiva (lo definiva cosě anche
Monthy) un DBMS non un RDBMS. E' pieno di articoli che ripetono come Mysql
non poteva essere definito un database relazionale. 
Un inizio per il dibattito puň partire da qui: 
http://www.pgro.uk7.net/innodb1.htm
Ciao.
Faser
-- 
FABIO SERRA
*Questo testo deve essere valutato secondo il senso della RFC-3*
Per rispondere in e-mail sostituire "invalid" con "faser"
http://www.cfmentor.com
--------------------

 non poteva essere definito un database relazionale.
Dal link che mi hai postato:
"This is semantics, but I think Codd and Date in the 70s meant by a
relational database something which has a relational query language. Thus
any database which has a query language somewhat similar to the relational
algebra or SQL can be called a relational database" [Heikki Tuuri, Innobase]
"relational data model
---------------------
<database> (Or "relational model") A data model
introduced by E.F. Codd in 1970, particularly well
suited for business data management. In this model,
data are organized in tables. The set of names of the
columns is called the "schema" of the table. Here is
an example table with the schema (account number,
amount) and 3 lines.
  account number amount
  -------------- ---------
  12343243546456 +30000.00
  23149875245824 +2345.33
  18479827492874 -123.25
The data can be manipulated using a [sic] relational
algebra. SQL is a standard language for talking to a
database built on the relational model (a "relational
database"). ["A relational model for large shared data
banks" Communications of ACM 136, pp 377-387]."
E continua con:
"So, obviously MySQL is a relational database."
Continua ancora con:
"MySQL is a 'relational DBMS' because (1) It has a query language which
covers most of the basic relational algebra, and also some extensions like
aggregate functions. More complex operations you can do with very fast
temporary tables. This covers the word 'relational'."
E' esattamente cio' che volevo sottolineare nel post di partenza. Se ci si
limita al concetto di "relazionale", MySQL e' "R" a tutti gli effetti. Se si
considera la parte di gestione, allora si puo' dubitare che MySQL sia un
DBMS a tutti gli effetti, ma nel momento in cui si accerta che MySQL e' un
DBMS a tutti gli effetti, allora e' un *R*DBMS a tutti gli effetti.


 parola RDBMS non mi sembra compaia da nessuna parte...
Probabilmente chi ha scritto la documentazione non ha voluto arrischiarsi in
polemiche con chi (come vedi in questo thread) tende a sottolineare che un
RDBMS non e' un vero uomo se non ha questo e quest'altro. La verita' vera e'
un'altra: la parola RDBMS implica molto molto poco a livello di
funzionalita'. La R, la D, la S ci stanno tutte. Si puo' solo giudicare la M
piu' o meno pesante, piu' o meno importante, piu' o meno utile, ma anch'essa
c'e' tutta quanta.


 infatti MySQL _NON_ è un RDBMS
Su questo si puo' essere d'accordo o meno.


 Su questo si puo' essere d'accordo o meno.
   Chiedere a Khiumn per maggiori informazioni... :)
-- 
Alla prossima,
Marco

 Chiedere a Khiumn per maggiori informazioni... :)
Eh eh eh... non vorrai mica paragonarmi a quell'essere ;)
Comunque concordo sul fatto che per una discussione seria bisogna essere
almeno d'accordo sulle definizioni. In realta', io credo che una definizione
generale di RDBMS lasci abbastanza spazio per poter contemplare sia un
sistema di gestione dati come MySQL sia uno piu' blasonato come DB2 o
Oracle. D'altronde non c'e' uno standard in merito ai requisiti che un
sistema del genere debba avere. Se poi mi dite: per me un RDBMS e' un
sistema che funzioni piu' o meno come Oracle, allora sono d'accordo nel dire
che MySQL non lo e'.
Ma in questo caso non lo sarebbe, allora, neanche Interbase o Firebird.
Se ci si limita alle caratteristiche implicate dall'acronimo R.D.B.M.S.,
MySQL le rispetta tutte. In sostanza, non si puo' dire che Kiuhnm non sia
una persona, pure non essendo una persona intelligente.


 che MySQL non lo e'.
   In linea di massima sono d'accordo: laddove non esista una definionie 
standard e` possibile che lo spazio "di manovra" sia elevato. Per 
questo, qualche messaggio piu` in alto, proponevo di lasciar definire ad 
altri il concetto (io avevo proposto quello di Atzeni, ma immagino che 
ce ne siano centinaia ugulamente validi).
   In piu`, aggiungerei che, in questi casi, entrano nella definizione 
anche le aspettative degli "utenti": per molti MySQL non e` piu` di un 
giocattolo e i DBF sono la preistoria da dimenticare al piu` presto, per 
altri sono un'ottima soluzione ai propri problemi.
   Se questi ultimi non hanno nulla da recriminare, allora potrebbe 
essere il caso di rifarsi a definizioni piu` resctittive. Fate voi.
   Just my two cents...
-- 
Alla prossima,
Marco

limita al concetto di "relazionale", MySQL e' "R" a tutti gli effetti. 
Io continuo a dire insomma....dal link che ti ho passato recupera gli
articoli di Fabian Pascal e vedrai le cose in un modo diverso. Secondo lui
attualmente non esiste *nessun* database che implementi correttamente il
modello relazionale  :-)
Ciao.
Faser
-- 
FABIO SERRA
*Questo testo deve essere valutato secondo il senso della RFC-3*
Per rispondere in e-mail sostituire "invalid" con "faser"
--------------------

 modello relazionale :-)
Infatti, ho notato gli articoli e le sue critiche. In particolare, dice:
"Oracle is a SQL DBMS, or in other words, it is a DBMS based on the SQL data
language;
a true RDBMS is a DBMS truly, fully and correctly based on the relational
data model;
in the industry there is a common mistake that SQL-based DBMS are RDBMSs:
SQL is not a true, full and correct implementation of the relational model;"
Sono articoli molto interessanti, toccherebbe avere il tempo di leggerli
tutti !


Su questo si puo' essere d'accordo o meno.
Già hai ragione, infatti io me ne frego della definizione e continuo a
usare Firebird tranquillamente :)


 piu' o meno pesante, piu' o meno importante, piu' o meno utile, ma
anch'essa
ROTFL
E c'hai ragione... io c'ho due OS installati... uno però è
oS (operating mica tanto) e l'altro è Os (è molto operating ma è poco
system)
è na questione de peso...
m'arrendo... :)
/G

 ROTFL
Mi arrendo anch'io, non mi va di discutere con chi mi risponde con dei
ROTFL.


 usare Firebird tranquillamente :)
Che, stando a quanto viene detto in un altro punto del thread, non dovrebbe,
neanch'esso, essere un RDBMS.


 classico, come per gli altri "RDBMS".
   Come no? Si vedono cose del tipo:
	select [1:25000]
	from sheet1
che veramente ti riconciliano con il mondo relazionale... :)
-- 
Alla prossima,
Marco

tutti !
E' vero! Un pò alla volta....sono poi molto interessanti anche quelli dove
parla dei  db xml dicendo che è un semplice ritorno al passato.
