In che modo gli RDBMS possono essere considerati una moda passeggera?

11

Completando il mio livello A Computing nel 2003 e prendendo una laurea in Informatica nel 2007, e imparando il mio mestiere in un'azienda con un sacco di utilizzo SQL, sono stato portato all'idea di Database relazionali usati per lo storage.

Quindi, nonostante sia relativamente nuovo allo sviluppo, sono stato sorpreso di leggere un commento (su link ) che ha detto:

[Some devs] despise [SQL] and think that it and RDBMS are a fad

Ovviamente, uno sviluppatore competente utilizzerà lo strumento giusto per il lavoro giusto e non creerà un database relazionale quando ad es. un file flat o un'altra soluzione per l'archiviazione è appropriato, ma gli RDBM sono utili in un gran numero di circostanze, quindi come potrebbero essere considerati una moda passeggera?

    
posta StuperUser 06.07.2011 - 13:49
fonte

10 risposte

28

La chiave è nella R nell'RDBMS, che sta per relazionale. Contrariamente alla credenza popolare non significa relazioni tra tabelle, ma piuttosto il fatto che ogni tabella è relazione in senso matematico di la parola .

Il modello relazionale ha implicazioni piuttosto significative. Devi modellare i dati per adattarli alle relazioni e normalizzare quel modello . Se la tua applicazione è progettata come modello orientato agli oggetti, il modello relazionale non è una buona idea. Questo è ampiamente noto come disadattamento dell'impedenza relazionale all'oggetto .

Un approccio a questa discrepanza sono gli ORM (mappatori di relazioni oggettuali), che hanno guadagnato molta popolarità. Ma non sono la vera soluzione, sono più come aggirare il problema. Non risolvono ancora il problema del mapping dell'ereditarietà delle classi al modello relazionale.

La vera soluzione alla mancata corrispondenza relazionale tra oggetti sono OODBMSes , che purtroppo non ha avuto molta trazione. Il motore popolare che supporta OOBD in modo nativo è PostgreSQL, che è ibrido OO / RDBMS. Un altro OODBMS è Zope Object DB , che è costruito in Python e nella configurazione tipica usa RDBMS come motore sottostante.

L'approccio alternativo è quello di avere più logica implementata in applicazione o livello di middleware e utilizzare soluzione NoSQL per lo storage sottostante.

Né OODBMS né NoSQL sono "solo un file flat".

    
risposta data 06.07.2011 - 14:32
fonte
13

Ho fatto la dichiarazione che hai citato nella domanda sopra. Se vuoi una citazione per verificare la mia ipotesi sugli sviluppatori su questo sito, leggi la mia risposta alla seguente domanda e rivedi il gioco dei commenti e dei downvot che ho ricevuto per quello che considero ancora una risposta accettabile.

I programmatori esperti dovrebbero conoscere le query del database?

Ho affermato che se si utilizza un database RDBMS malgrado Linq o un ORM, uno sviluppatore dovrebbe avere una conoscenza avanzata di SQL.

Questa è stata un'asserzione molto impopolare, a causa delle rispettabili divergenze di opinione sull'importanza di SQL, sulla mentalità meno rispettabile che RDBMS è intrinsecamente inferiore ai database NoSQL come MongoDB.

EDIT: per aggiungere ulteriormente alla mia richiesta, citerò l'utente SK-logic:

just remember that all this RDBMS craze is a relatively recent trend. Before that we had a wide variety of approaches. You're apparently working in a young company, alongside with developers of your age, and thus you've got no chance to be exposed to the older and more solid storage approaches. Fortunately, this recent trend is already declining, and good old ways are returning, rebranded as 'nosql'.

    
risposta data 06.07.2011 - 14:23
fonte
9

fad :

a thing that becomes very popular in a short amount of time, and then is forgotten at about the same speed."

Gli RDBMS sono in circolazione da anni (almeno nei termini di CS), quindi chiunque abbia affermato che intendeva dire qualcos'altro o non ha conoscenze.

    
risposta data 06.07.2011 - 14:22
fonte
3

L'alternativa a RDBMS non è solo un file flat. Quando ero a scuola, OODBMS era la cosa nuova e il mio professore aveva ragione quando lo etichettava come una moda passeggera. Dovresti dare un'occhiata ai diversi modelli e prendere nota delle tendenze. Ho visto aumentare la dipendenza da OLAP e sarei disposto a scommettere che un nuovo sistema multidimensionale in grado di elaborare i dati più velocemente è dietro l'angolo.

    
risposta data 06.07.2011 - 14:07
fonte
3

Il problema è che molti sviluppatori identificano erroneamente RDBMS con SQL. SQL è un linguaggio veramente terribile secondo gli standard moderni. È un'implementazione imperfetta e incompleta di un linguaggio "relazionale" (SQL non è affatto relazionale e fa parte del problema) che non si è evoluto molto negli ultimi 30 anni. Molte persone che usano SQL capiscono a malapena il modello relazionale - tutto ciò che sanno è SQL e quindi presumono che il modello relazionale sia la causa della loro frustrazione.

    
risposta data 08.07.2011 - 12:58
fonte
1

Senza contesto è difficile determinare chi / perché l'affermazione che gli RDBM sono considerati una moda passeggera.

Nel breve-medio termine (5-10 anni) e penserei ancora più a lungo che non se ne andrà. Un RDBM fornisce un metodo efficiente ed efficace per archiviare, elaborare e recuperare i dati relazionali, che è quello che la maggior parte delle aziende ha clienti / ordini, passeggeri / biglietti ecc.

Ci sono altre alternative come NoSQL che sembrano crescere in popoularità con il progetto open source.

Essendo OLAP questi sono database (a mio avviso) veramente speciali progettati per consentire a un'azienda di fornire informazioni statistiche tempestive e utili su un'azienda e di eseguire scenari "what if" sui dati attuali. Naturalmente in quasi tutti i casi questi dati correnti provenivano da un RDMB e sono stati manipolati e quindi inseriti nel database OLAP.

    
risposta data 06.07.2011 - 14:31
fonte
1

I database relazionali sono una moda passeggera nello stesso senso in cui il microcomputing è una moda passeggera.

    
risposta data 06.07.2011 - 15:56
fonte
1

La risposta semplice è no. RDBMS non è una moda passeggera. Quando leggi qualcosa su un sito web per LinqPad, tieni presente che il loro scopo è vendere le licenze per il loro prodotto.

    
risposta data 06.07.2011 - 18:16
fonte
0

Fad non è la parola giusta come lo sono da molto, molto tempo. Penso che potresti iniziare a sostenere che la tecnologia è molto vecchia e potrebbe essere il momento di inventare la prossima cosa - Architetture NoSQL forse

    
risposta data 06.07.2011 - 14:31
fonte
0

Il Wiki Def. of Fad , definisce il termine "fad" come segue: Una moda passeggera è qualsiasi forma di comportamento che si sviluppa tra una grande popolazione ed è seguita collettivamente con entusiasmo per un certo periodo, generalmente come risultato del fatto che il comportamento viene percepito come nuovo in qualche modo. Si dice che una moda si "afferra" quando il numero di persone che lo adottano inizia ad aumentare rapidamente. Normalmente il comportamento svanisce rapidamente una volta che la percezione della novità è scomparsa.

Dato che i follower di RDBMS non sono svaniti rapidamente, e non è in procinto di scomparire in molti anni a venire (grazie all'enorme quantità di applicazioni di produzione che lo utilizzano) non possiamo dire che sia una moda passeggera. In effetti, i concetti chiave di RDBMS sono rimasti abbastanza stabili dove molte delle altre tecnologie sono cambiate (e stanno ancora cambiando) in modo drammatico.

Il concetto di RDBMS (e il suo veicolo principale, SQL) rappresenta un passo nella tecnologia che, come molti altri, può essere sostituito da quelli migliori, questo è tutto.

    
risposta data 16.04.2012 - 00:13
fonte