Progettazione di database: passaggi e nozioni di base

Sommario:

Progettazione di database: passaggi e nozioni di base
Progettazione di database: passaggi e nozioni di base
Anonim

La progettazione del database è un processo sequenziale di adattamento delle conoscenze e degli strumenti disponibili per rappresentare ed elaborare le informazioni.

Il reale scopo, il compito specifico, la descrizione del flusso di informazioni in entrata e le idee generali sul processo di elaborazione delle informazioni vengono gradualmente sommati a una certa idea concettuale di cosa sia un database in un caso particolare e come lavorare con esso.

Banca dati moderna

Le relazioni relazionali sono al centro di qualsiasi modello informativo. Le soluzioni Oracle sono essenzialmente equivalenti a MySQL, ma sono fondamentalmente diverse sotto molti aspetti. La progettazione del database è anche una questione di sicurezza, volume di informazioni e responsabilità per l'integrità dei dati, ma questi sono secondari rispetto alla questione della progettazione di un database efficiente, affidabile e facile da usare.

fasi di progettazione del database
fasi di progettazione del database

Le tabelle Excel non sono diverse da Oracle e MySQL nel contesto delle strutture rettangolari (relazionali): colonne e righe=una cella all'intersezione del nome della colonna (campo) e dell'indice di selezione (riga). Se non si tiene conto della misura e della quantità di lavoro manuale, grazie ai mezzi sviluppati per combinare le celle verticalmente e orizzontalmente, Excel è in vantaggio anche su Oracle!

Excel, secondo la sua idea di base, non "brilla" mai della dinamica, della funzionalità di Oracle, e non può trasferire qualcosa da un foglio all' altro "secondo i resti". Qui Oracle è più promettente, ma le sue considerazioni sui problemi della migrazione di grandi quantità di informazioni e della combinazione di posizioni formalizzate da varie fonti lasciano molto a desiderare. Qui MySQL è più promettente: non si pone compiti globali, ma fa perfettamente il suo lavoro.

Le relazioni relazionali sono strumenti convenienti, pratici e consolidati, dalle soluzioni private a livello di Excel ai volumi globali Oracle, sono utilizzati ovunque, richiesti e hanno un futuro garantito di lavoro.

Un database moderno è costituito da tabelle, righe, colonne e indici circondati da funzionalità complete, strumenti aggiuntivi sviluppati che tengono conto di operazioni multiple, carichi pesanti e volumi enormi.

La conoscenza e l'esperienza dei moderni sistemi di gestione dei database (DBMS) tengono conto non solo dei problemi di affidabilità, affidabilità dei dati, regolamentazione dell'accesso e problemi di sicurezza, ma consentono anche di tracciare influenze esterne negative, analizzare possibili attacchie tenta di fare del male intenzionalmente.

Un database moderno è una base affidabile per qualsiasi risorsa Web e applicazione locale, la capacità di migrare informazioni, trasformare e trasferire dati, intersecare e combinare viste diverse.

L'unica condizione essenziale: sviluppatore altamente qualificato. Per eseguire una progettazione efficace dei database relazionali è a disposizione di uno specialista, e più spesso di un team di specialisti ed esperti nel campo applicativo del problema da risolvere.

Scope, possibile soluzione e ostacoli

Le informazioni circolano ovunque. Molti progetti sono direttamente connessi a Internet, ma il fattore di avere una rappresentazione formale dei dati qui non è migliore del fattore di incertezza quando si crea una risorsa web per un'acciaieria.

Lo sviluppo e il grande interesse per i negozi online non forniscono motivi e opportunità per trasferire l'esperienza di creazione di un negozio nella creazione di un altro. Il fattore segreto commerciale crea molti ostacoli al trasferimento delle conoscenze, anche se, in effetti, dovresti separare il negozio vero e proprio dagli strumenti software creati per questo negozio.

progettazione di database relazionali
progettazione di database relazionali

Certo, il cliente ha pagato e il codice del sito è di sua proprietà. Una caratteristica della modernità: il trasferimento di conoscenze e sviluppi tra compiti dello stesso tipo e relativi campi di applicazione è impossibile e questo è un problema.

L'analisi è un'ampia gamma di applicazioni per i sistemi di gestione dei database. Prima di tutto, sta scansionando le informazioni da Internet. È altrettanto importante confrontare le informazioni accumulatedatabase e richieste dei visitatori web.

Anche l'analisi delle parole chiave implica la necessità di creare una soluzione ottimale, ma la progettazione di database su Access potrebbe essere più promettente rispetto a MS SQL Server o Oracle.

L'elenco delle fonti di informazioni può essere dinamico. Le dinamiche possono essere inerenti alle tabelle del database di origine, ai nomi dei campi delle tabelle e alle regole di chiamata (query). La progettazione di database relazionali da più fonti ti obbliga chiaramente a progettare dai dati di origine e non dall'organizzazione ottimale delle informazioni raccolte.

Ci sono due cose che sono inerenti a qualsiasi database:

  • orientamento al contenuto, algoritmo di generazione dinamica del database prioritario;
  • orientamento da utilizzare, la struttura del database è più importante e su di essa si basa l'algoritmo per l'utilizzo delle informazioni.

In ogni campo di applicazione esiste un modello formale del flusso di informazioni in entrata, un modello di archiviazione delle informazioni - la progettazione effettiva del database e un modello (algoritmo) per l'utilizzo dei dati.

Varie procedure e fasi di progettazione

Le basi della progettazione di database di solito si suddividono in tre fasi. Diversi specialisti si riferiscono alle fasi del lavoro in modi diversi, ma, in re altà, ci sono tre posizioni:

  • pianificazione concettuale;
  • design logico;
  • esecuzione tecnica.

La pratica contribuisce alle tradizioni consolidate. Non importa quanto sia complesso l'ambito e il problema da risolvere. Ci vuole sempre scegliere quello giustoStrumenti. Ad esempio, è necessario raccogliere informazioni dai visitatori su una risorsa Web, ma è necessario confrontarle con i dati di MS SQL Server. La risorsa web è ospitata su FreeBSD (Internet, server Apache) e MS SQL Server in un' altra città è disponibile tramite la rete distribuita dell'azienda.

fondamenti di progettazione di database
fondamenti di progettazione di database

In questa soluzione, devi prima risolvere un problema particolare: stabilire lo scambio di dati con il server interno.

L'esecuzione tecnica di un compito comune avrà necessariamente un impatto sulla fase iniziale: è raro che la progettazione del database possa essere eseguita da zero. Anche con la collaudata tecnologia di risoluzione dei problemi, l'ambito si sta evolvendo, è sempre necessario fare qualcosa in modo diverso da come previsto.

Di recente, molti teorici e professionisti operano con entità come dati speciali. Si tratta di astrazioni che consentono di descrivere il modello delle informazioni in ingresso, durante l'elaborazione e nel risultato finale: il database.

Viste di dati ed entità

Progettazione di DB attraverso astrazioni ed entità: la capacità di creare un quadro informativo, definire tipi di dati e relazioni tra di loro.

Di solito tale progettazione di un modello di database termina con un modello grafico, utilizzando MS Visio o strumenti visivi del DBMS scelto. L'accesso ha il suo modo di formare un quadro informativo, MySQL ha il suo e alcuni sistemi di gestione dei contenuti nascondono del tutto il database, imponendo un modello di dati allo sviluppatore attraverso le proprie entità -oggetti del compito da risolvere.

Una caratteristica di molti sistemi di gestione dei contenuti (CMS) è che fanno una "applicazione" per un livello di maggiore astrazione quando descrivono l'area informativa del problema da risolvere. Il database reale è nascosto, CMS offre allo sviluppatore la propria idea del quadro informativo del mondo.

Di conseguenza, le fasi di progettazione del database si riducono al rispetto dei requisiti fondamentali e all'esecuzione dei passaggi proposti dai creatori di un particolare CMS. Non c'è niente di vergognoso nell'usare le idee dei database e il loro design da Symfony o Bitrix, Zend o Yii, ma per lo sviluppatore è un "fardello".

Idealmente, gli strumenti di progettazione del database dovrebbero essere selezionati e applicati individualmente, senza opinioni esterne, ma con l'applicazione di esperienza e conoscenza.

progettazione di database di informazioni
progettazione di database di informazioni

Ideale per uno sviluppatore per essere certificato da Oracle, ma perfettamente accettabile per le qualifiche di uno sviluppatore per includere approfondimenti sulle idee informative di Oracle e una conoscenza pratica delle applicazioni MySQL.

Nei progetti complessi e nell'elaborazione distribuita delle informazioni, non solo il database è importante, ma anche le fonti di informazione, le idee sui bisogni dei consumatori.

Stadi o squadra: equilibrio delle priorità

Il requisito della coerenza è della più immediata importanza. Le basi della progettazione del database includono anche la gradualità del lavoro, il monitoraggio dei risultati intermedi, il ripensamento di ogni fase completata in base all'esecuzione del seguente tipo di lavoro:

  • sistematico;
  • fasatura;
  • feedback da qualsiasi momento, fino alla posizione di partenza.

Queste disposizioni sono astratte, ma presenti in qualsiasi tecnologia teorica e pratica per creare un database efficace.

Nessuna tecnologia si sviluppa da sola, è guidata dalle persone. Le qualifiche del team di sviluppo sono essenziali. Il modello informativo del database non è solo un framework, ma anche flussi di informazioni.

Cosa c'è di più importante: una bella grafica nella rappresentazione della struttura del database o una descrizione accurata dei flussi di informazioni nelle dinamiche - una questione non solo del compito e dell'ambito, ma anche dell'opinione del team di sviluppo nelle dinamiche.

progettazione della struttura del database
progettazione della struttura del database

Il personale è tutto, ma nel contesto: il design concettuale di un database è tutto qualifica. Tutte le persone sono uniche e nel campo dei sistemi informativi esistono e si sviluppano rappresentazioni di persone specifiche.

È importante costruire un team di sviluppatori, non alcuni mitici passaggi di progettazione di database suggeriti da un esperto autorevole. L'autorità di questo specialista si è formata sulla base di opere specifiche, in un momento specifico. Il lavoro deve essere svolto oggi, nuovi compiti, attrezzature moderne, nuova tecnologia, …

Possibile inverso. Esistono Excel e Access e dati "abbondanti" in questi formati dai tempi antichi, quando Windows for Workgoups era ancora vivo e vegeto. Sono rimasti parzialmente i dati dBase e Quattro. Oggi queste parole sono già state dimenticate, ma le informazioniè rimasto, è richiesto e deve essere estratto e formato nuove idee.

Vecchio e nuovo: equilibrio di conoscenze

La tecnologia cloud non è come i database di Ashton-Tate. Ciò che Oracle ha acquistato una volta non è in alcun modo paragonabile a quello che fa oggi. Ma variabili, algoritmi, funzioni, cicli e condizioni sono rimasti in programmazione dai primi anni '80. A meno che il concetto della procedura non sia sprofondato nell'oblio e tutto rimanga come era nei tempi antichi.

Anche le idee moderne di programmazione orientata agli oggetti sono rivestite delle classiche "catene" sintattiche e semantiche del secolo scorso.

Cosa fare - la programmazione è inerziale e la formalizzazione delle informazioni e la progettazione di database di informazioni è più un processo che un risultato. Il lavoro a tappe è un prerequisito per il raggiungimento dei risultati. Ma chi ha contato il numero di iterazioni dalle fasi intermedie quasi all'inizio del lavoro?

Le informazioni sono sempre dinamiche, nulla si ferma: in particolare l'area tematica dell'attività e i requisiti dell'utente. Ogni fase del lavoro completata consente di valutare a un nuovo livello ciò che è già stato fatto e ciò che resta da fare.

progettazione logica di database
progettazione logica di database

Considerare la progettazione di una struttura di database come un compito e ottenere il risultato finale è inutile. Non appena il database sarà messo in funzione, apparirà sicuramente una nuova idea, anche se lo strumento per creare il database era il "semplice" Excel e non un prodotto Oracle straordinariamente potente e versatile,manipolando milioni di transazioni, centinaia di migliaia di utenti simultanei e terabyte di informazioni.

La priorità non è la struttura della banca dati, ma la formazione di un qualificato team di specialisti, più il requisito obbligatorio per una maggiore dinamicità del risultato, affinché a lavoro ultimato non sia necessario contattare gli sviluppatori, almeno un paio di mesi.

Sviluppo sequenziale e/o s alti in alto

Windows non è un database, ma ha una reliquia: il registro. Il file hosts è semplicemente un'identificazione degli indirizzi IP e dei nomi simbolici della macchina locale. Ma attraverso questo file si formano flussi di informazioni da domini diversi o verso DBMS diversi.

È possibile capire Windows dai molti lati come un computer o un server funzionante, ma non funzionerà in alcun modo per giustificare la logica delle versioni di questo prodotto. Anche PHP non è un database, ma gli argomenti degli sviluppatori sul perché la versione 5 segue immediatamente la versione 7 non sono coerenti. PHP è uno strumento di accesso a MySQL, la sua sintassi definisce come formare query e ottenere risposte dal database utilizzando il dialetto SQL.

Esempi di incompatibilità tra i moderni strumenti di programmazione e il supporto del database sono diventati la norma negli ultimi anni, ma questo non è il più originale. Cosa ci sarà dietro la versione di Windows 10? Quali sono le prospettive per Oracle Database 12c?

Informazioni dello sviluppatore-autore: Oracle Database 11g Express Edition (Oracle Database XE) è un DBMS entry-level basato sul codice DBMS Oracle Database 11g Release 2. Questo DBMS è gratuito per lo sviluppo,distribuzione e vendita, download rapido e facile da amministrare.”

Il punto di vista di uno sviluppatore utente: "Nel 2013, Oracle ha rilasciato Oracle Database 12c (versione 12.1.0.1) con vantaggi chiave di minori costi di archiviazione, elevata disponibilità dei dati, facile consolidamento del database e protezione dell'accesso ai dati".

Pratica reale: un progetto di database logico oggettivo, efficiente ed efficace è disponibile solo per un team di sviluppatori qualificati. Ottenere un risultato lavorativo non è difficile, è difficile formalizzare i flussi informativi in entrata e determinare la base ottimale.

Al mondo delle forme morbide dai rettangoli precisi

Con l'avvento della programmazione orientata agli oggetti, la serializzazione dei dati ha preso nuova vita. In effetti, tutto intorno sono solo linee, preferibilmente di lunghezza indefinita. Anche i numeri e le date sono stringhe di caratteri.

Il potere e l'obiettività delle relazioni relazionali è innegabile, ma la dinamica di colonne e righe danneggia la loro reputazione? Una tabella è semplicemente dati che possono avere un'intestazione (un elenco di colonne) o nessuna riga. Lascia che la tabella sia solo una raccolta di dati, non necessariamente denominata.

L'insieme di dati può essere eterogeneo e in esso puoi trovare dati di struttura diversa. Fondamentalmente, l'omogeneità dei dati indica lo sviluppo dell'ambito. La distribuzione dei dati per tipologia e specie è indice di un approccio sistematico e oggettivo, ma è comunque consigliabile ammettere la possibilità di dinamiche strutturali.

Se emessoprogettare e creare un database al di là di strutture rigide e supponendo che una tabella sia una raccolta di righe che non sono necessariamente dello stesso tipo e simili nella semantica tra loro, il design del database cambierà radicalmente.

L'oggetto del lavoro non sarà una descrizione della struttura del database, ma la dinamica del movimento delle informazioni. Le fasi di lavoro saranno suddivise in tre centri di gravità:

  • flusso di informazioni in ingresso;
  • trasformazione e spostamento delle informazioni all'interno del database;
  • seleziona i dati da utilizzare.

Non esiste il concetto di struttura della tabella. Non ci sono righe o colonne. C'è un'astrazione - un dato, di una certa struttura, che soddisfa un punto specifico dell'algoritmo. Più specificamente, la funzione di elaborazione delle informazioni richiede determinate informazioni in un importo specifico.

Il requisito obbligatorio della ricorsività di tutte le funzioni di elaborazione delle informazioni e del focus sulle funzioni, non sui dati, consente di progettare un database nella dinamica dell'informazione accumulata e del flusso di dati in entrata, che vengono utilizzati su iniziativa dell'utente, processo o altra funzione.

Infatti: è arrivato un segnale di utilizzo, è stata ricevuta una richiesta di recupero, è stato attivato un trigger nell'applicazione e le informazioni in arrivo, tramite ciò che era già presente, hanno fornito la soluzione desiderata.

Conoscenze fondamentali e costruzioni rigide

La conoscenza è prerogativa dell'uomo, i programmi sono il peso dei computer. Lo sviluppatore è libero di applicare la conoscenza come meglio crede in una situazione particolare. Una persona comune usa molti database, senza attribuirvi importanza. comei database sono organizzati nella testa di una persona comune, nessuno lo sa, ma tutti sanno come conduce i suoi affari, dove annota quello che trova e quando ha bisogno di usarlo.

Il risultato del lavoro del programmatore - a livello di programma in "Base", che recupera i dati dal sito Web di un negozio online tramite ODBC, equivale a uno sviluppatore Oracle titolato che fa una richiesta per recuperare i dati dal Salone dell'aviazione e dello spazio MAKS. Entrambi i risultati "si bloccano" in modo statico dal momento in cui il lavoro è completato. Questa non è una conoscenza attiva che una persona usa, questo è il segreto per creare un sistema di progettazione di database.

L'algoritmo non può essere corretto. Tutto deve essere definito dinamicamente. I meriti di sviluppatori qualificati sono innegabili, ma non risiedono affatto nelle forme eleganti di soluzioni di Oracle, MySQL o Access, che sono limitate nelle sue capacità. Un altro foglio di calcolo Excel può fornire contenuto dinamico e non richiedere la partecipazione di un programmatore per un tempo più o meno decente dopo il completamento del lavoro.

La domanda è quanto bene sia formalizzata la dinamica dell'area di applicazione, non la struttura del database.

Soluzioni live

È impossibile pianificare il lavoro in modo tale da legare un team di sviluppatori professionisti a un compito. Non che la squadra si sia offesa, ma questo non è l'approccio giusto.

Soluzioni dal vivo
Soluzioni dal vivo

Il compito di progettare un database dovrebbe essere formulato in modo tale che la funzionalità sviluppata si migliori, accumuli conoscenze e, nello svolgimento dei suoi "doveri", non parta dal codice,creato da esperti, ma dalle conoscenze acquisite attraverso questo codice.

Consigliato: