LA CAMPANA

C'è chi ha letto questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere La Campana?
Niente spam
  • Traduzione

I database sono utilizzati ovunque, inclusa la maggior parte dei progetti nel mondo dello sviluppo web. Tutto, dai più semplici blog e directory a seri progetti di social web. Indipendentemente dalla complessità del sito e del database associato, ciascuno richiede un'attenta progettazione per funzionare in modo efficiente e affidabile.


In questo articolo, esamineremo le basi dello sviluppo di un buon piano di database, indipendentemente dal suo scopo finale. Per tutte le opzioni di progettazione del database, è necessario seguire una serie di regole standard e best practice. Aiuteranno il database a rimanere organizzato e a rendere le sue interazioni con il sito in modo più intelligente ed efficiente.

Quale funzionalità è richiesta dal database

Il primo metodo utilizzato nella pianificazione è il semplice brainstorming, la scrittura di note su carta o altro, a seconda di ciò che deve essere archiviato nel database e di ciò di cui avrà bisogno il sito. Cerca di non pensare a campi specifici, tabelle che verranno utilizzate in un caso specifico: tutti i punti specifici verranno discussi da te in seguito. Il tuo obiettivo in questa fase è ottenere un quadro generale e completo della struttura del database, che in seguito potrai perfezionare e approfondire. Spesso può essere più difficile aggiungere elementi al tuo piano in un secondo momento di quanto non fosse inizialmente.
Foto: binariape
Esci dal database. Prova a pensare a cosa verrà richiesto dal sito? Ad esempio, se desideri creare un sito che riunisca le persone, potresti iniziare subito a pensare ai dati che gli utenti memorizzeranno. Lascia perdere, rimandalo a dopo. Meglio annotare quali utenti e informazioni su di loro dovrebbero essere memorizzati nel database. E cos'altro? Cosa faranno gli utenti sul tuo sito? Pubblicheranno post, caricheranno file, foto, si scriveranno messaggi l'un l'altro? Pertanto, il database deve memorizzare tutte queste informazioni: record, file, foto, messaggi, ecc.
Come interagiranno gli utenti con il tuo sito? Dovranno cercare, ad esempio, le loro ricette preferite, accedere alle voci disponibili per una specifica comunità, cercare prodotti o visualizzare un elenco di prodotti visualizzati e acquistati di recente? Il database dovrebbe fornire la possibilità di memorizzare ricette, record "privati" disponibili per una determinata cerchia di utenti, informazioni sui prodotti, nonché la possibilità di collegare un prodotto specifico e un utente.

Determinazione delle tabelle e dei campi richiesti

Il passaggio successivo consiste nel determinare quali tabelle e campi sono necessari nel database. Questo è il cuore dello sviluppo e la parte più difficile. Utilizzando i metodi giusti per collegare le tabelle, definendo la struttura dei dati in ciascuna tabella, identificando la necessità di distribuire tali dati su tabelle diverse, tutti questi problemi si presentano nella progettazione diretta del database. Ora devi definire un elenco di tabelle e campi ovviamente obbligatori, essere il più specifico possibile. Durante questo processo, alcuni elementi possono essere ricostruiti o riorganizzati al fine di migliorare l'efficienza e la sicurezza del database.

Utilizzare uno strumento di modellazione dei dati

Ora che sai cosa dovrà fare il sito, è il momento di determinare quali informazioni specifiche dovranno essere archiviate. Uno strumento di progettazione di database sarà molto appropriato qui, in particolare uno che ha la capacità di creare modelli di database visivi, ad esempio MySQL Workbench o. Gliffy è un eccellente strumento online gratuito per la creazione di vari diagrammi di flusso e modelli di database.

C'è anche uno strumento più noto e di alta qualità, secondo me: Microsoft Visio (solo per Windows, prezzo $ 249,99). Ma non allarmarti, ci sono alternative più economiche, molte delle quali sono open source, comprese le due sopra menzionate.
Acquisisci familiarità con la grafica comune e gli elementi visivi standard necessari per creare un modello di database e inizia a pianificare in anticipo con diagrammi di flusso e diagrammi. Ciò eviterà errori logici prima che venga creato un database specifico.

Raggruppamento e separazione dei dati

Quando si tratta di campi, è anche importante sapere quando raggruppare un dato specifico e quando no. Un buon modo per determinare quali informazioni dovrebbero essere presenti in un campo, o viceversa, per pensare se sarà necessario modificarne una parte? Ad esempio, è necessario memorizzare un indirizzo suddividendolo in componenti: 1) via, 2) città, 3) stato, 4) codice postale, 5) paese?
È parte integrante delle funzionalità del sito (forse gli utenti o gli amministratori vorranno cercare altri utenti per indirizzo o stato), o è solo un aumento dello spazio su disco occupato dal database? Se questo non è così importante, perché allora caricare il database per modificare 5 campi quando è possibile aggiornare solo un campo stringa. Potrebbe essere più conveniente ottenere questi dati da un modulo HTML, in cui i campi sono separati e, prima di aggiungere l'indirizzo al database, combinare i valori dei campi corrispondenti in un'unica riga.
Questo è solo un esempio, ma avere sempre un'idea dei modi più efficaci per organizzare i campi della tabella, quando combinarli, quando tenerli separati, per mantenere la funzionalità del sito.

Normalizzazione del database

La normalizzazione è un insieme di linee guida progettate per organizzare l'archiviazione delle informazioni in modo più efficiente. Abbiamo già menzionato alcune delle importanti pratiche fondamentali che si presentano nelle forme normali più popolari. Ci sono cinque forme normali. Sarebbe utile familiarizzare con questi moduli normali e progettare database in base alle loro esigenze.
La normalizzazione del database è un argomento importante, ma comprendere le basi può aiutarti moltissimo. Per avere un'idea generale di ogni forma normale e normalizzazione in generale, assicurati di dare un'occhiata a

Nella sua forma più generale, un database è definito come una raccolta di informazioni interconnesse. Da questa definizione deriva una caratteristica importante del database, che consiste nel fatto che il database include non solo i dati stessi, ma anche le connessioni tra di essi. Una delle idee principali del database è l'archiviazione congiunta dei dati con le loro descrizioni. Grazie a ciò, i dati memorizzati diventano "aperti", comprensibili per qualsiasi numero di applicazioni che lavorano con il database. Ciò rende il database una risorsa informativa indipendente che può essere riutilizzata da varie applicazioni, pur rimanendo indipendente da esse.

Oltre al fatto che il database descrive i dati, ne spiega il significato e la struttura, supporta alcune restrizioni imposte a questi dati, ad esempio determina il tipo di dati, la loro dimensione, ecc.

Così, Banca datiè una sorta di risorsa informativa di dati strutturati destinata a un uso multiuso e riutilizzabile in aree tematiche specifiche.

I database operano sotto il controllo dei sistemi di gestione dei database (DBMS), definiti come un insieme di linguaggi e programmi necessari per lavorare con un database. I DBMS ti consentono di creare database, inserire e modificare informazioni in essi e accedere a queste informazioni. Lo schema organizzativo del software e del supporto informativo nel caso di utilizzo di un DBMS sarà sostanzialmente diverso (Fig. 2.5).

Le applicazioni tramite un DBMS accedono ai dati archiviati in uno o più database. In questo caso, l'organizzazione del software e del complesso informativo non è più determinata dal software, ma dal supporto informativo. I dati risultano essere indipendenti dalle applicazioni, le applicazioni, a loro volta, possono utilizzare qualsiasi dato contenuto nel database. Il DBMS mantiene l'integrità dei dati, determina il loro utilizzo congiunto da parte di vari programmi e diversi utenti e, in un modo o nell'altro, garantisce la sicurezza delle informazioni.

Riso. 2.5. Schema organizzativo del software e supporto informativo

Usando subd

Esegue inoltre procedure informative critiche con i dati contenuti nel database, su richiesta dell'utente o su comando ricevuto dall'applicazione.

Quando si utilizza un DBMS di tipo compilativo, vengono create applicazioni che funzionano direttamente con i database. Allo stesso tempo, il DBMS stesso come strumento software separato quando si lavora con i dati è praticamente assente.

Infatti, in fase di compilazione, il motore del database e l'applicazione vengono uniti (Figura 2.6).

Riso. 2.6. Lo schema di fusione del nucleo del database e delle applicazioni

Attualmente, le applicazioni sono sviluppate, di regola, da programmatori qualificati. Allo stesso tempo, la progettazione di strutture di database è impossibile senza la partecipazione di economisti - specialisti nell'area disciplinare, poiché le capacità informative di un database sono in gran parte determinate dalla qualità del suo design.

Elementi del database

Il database è un sistema, ad es. è costituito da una serie di elementi e relazioni tra loro (Fig.2.7)

Riso. 2.7. Unità strutturali del database

Il più piccolo di essi è un elemento dati, che in alcuni casi è anche chiamato campo o attributo e che corrisponde a un attributo. Quindi, un elemento di dati è la più piccola unità di dati denominata semanticamente significativa. Un dato è determinato dalle seguenti caratteristiche: nome (nome completo, data di nascita, ragione sociale), tipo (simbolico, numerico, calendario), lunghezza (numero massimo di caratteri possibile - 15 byte) e precisione (numero di cifre decimali per dati numerici).

Gli elementi di dati sono organizzati in record chiamati tuple. Il record generalmente corrisponde all'indicatore e contiene dati su uno degli oggetti omogenei, ad esempio un account, un dipendente, ecc. In alcuni casi viene utilizzato il concetto di aggregato di dati, che occupa una posizione intermedia tra un elemento di dati e un record. Un aggregato di dati può essere semplice (composto solo da elementi di dati) e complesso (composto da elementi di dati e aggregati di dati semplici).

Un insieme di record dello stesso tipo è chiamato file di database (o tabella). Va notato che il file del database non corrisponde sempre al file fisico. In alcuni casi, le informazioni sui file di database sono contenute in più file fisici e, al contrario, più file di database possono essere contenuti in un file fisico.

Un database è quindi una raccolta di file di database interconnessi.

Il significato di questi termini può essere spiegato nel diagramma (Fig. 2.8).

L'elemento dati contiene una variabile, in questo caso il nome della città - Mosca. Un aggregato di dati è costituito da più attributi considerati come un tutt'uno. Un record è costituito da uno o più elementi di dati e contiene informazioni su un oggetto, nell'esempio fornito, su un'impresa. Un insieme di record dello stesso tipo costituisce un file database, in figura è un file con informazioni sulle imprese. La raccolta di tali file, interconnessi in un modo o nell'altro, è un database. Il diagramma mostra tre file di informazioni correlate tra loro come segue: le imprese sono servite da banche, hanno conti aperti con queste banche. Se non c'è connessione tra i file, la loro raccolta non può essere considerata un database.

Riso.2.8. Un esempio della relazione delle unità strutturali di un database

Ciclo di vita del database

Come ogni sistema, il database ha un proprio ciclo di vita, che è lo sviluppo sequenziale del sistema nel tempo. Si distinguono le seguenti fasi principali del ciclo di vita.

Pianificazione. Il suo scopo è definire e analizzare i requisiti per il database in fase di creazione. Allo stesso tempo, vengono considerate diverse visualizzazioni dei dati a seconda delle funzioni eseguite, vengono determinati requisiti specifici per il database in base ai tipi di query, al volume di visualizzazione dei file di database, alla modalità di funzionamento con questo database, ecc.

Progettazione di banche dati. Sulla base dell'analisi delle esigenze degli utenti e dell'integrazione di queste esigenze, viene creato un modello di dominio. Sulla base di questo modello viene costruita una struttura logica del database, focalizzata su uno specifico DBMS. Il passaggio finale consiste nell'analizzare e valutare le capacità del database in termini di soddisfare le esigenze dei diversi gruppi di utenti.

materializzazione della banca dati. Lo scopo di questa fase del ciclo di vita è riempire e caricare il database utilizzando i mezzi del DBMS. In questo caso sono previsti i seguenti lavori: elaborazione dati; trasferimento di informazioni in ingresso dai documenti ai supporti della macchina; trasformazione di file di dati esistenti secondo la struttura appositamente progettata ottenuta nella fase precedente.

Operazione banca dati. Gli obiettivi di questa fase del ciclo di vita sono: garantire l'implementazione e il funzionamento continuo del database; sicurezza dei dati in caso di guasti al sistema informatico e altre emergenze; analisi del funzionamento del sistema di database in termini di efficienza e produttività. Un sistema di indicatori quantitativi e qualitativi è utilizzato come criterio di valutazione del database. Gli indicatori quantitativi includono: tempo di risposta a una richiesta, memoria esterna e principale utilizzata, affidabilità e altri costi (per l'aggiornamento del database, per la creazione, la riorganizzazione, la ristrutturazione). Gli indicatori qualitativi sono flessibilità, adattabilità, agilità, recuperabilità, capacità di mantenere l'integrità dei dati, ecc.

Sviluppo e miglioramento del database. Durante il funzionamento del database, compaiono nuovi compiti, la cui soluzione è associata all'emergere di nuovi elementi di dati e connessioni tra loro, il che porta alla necessità di creare un database modificabile. In questo caso si dovrebbe distinguere tra riorganizzazione e ristrutturazione della banca dati. Il primo è relativo alla modifica dei valori dei dati, ad es. il miglioramento del sistema informativo ha un effetto positivo sullo sviluppo del database, sulla sua modifica. La ristrutturazione comporta un cambiamento nei cambiamenti strutturali, che comporta la creazione di una banca dati praticamente nuova.

Progettazione database

Tra le fasi del ciclo di vita di un database, la fase di progettazione è di grande importanza. Ciò è dovuto al fatto che la qualità del database determina in larga misura la qualità dell'intero sistema informativo. Inoltre, è in questa fase che avviene l'interazione più attiva di sviluppatori ed esperti nell'area disciplinare e si formano le idee di base sull'area disciplinare, che costituiranno la base dell'EIS. Di conseguenza, il design ha un carattere di ricerca, tocca i problemi legati non solo alla definizione dell'area disciplinare e alla creazione del suo modello, ma anche ai principi di costruzione delle strutture logiche.

La progettazione del database passa attraverso diverse fasi. È consuetudine distinguere le fasi della progettazione concettuale, logica e fisica, sebbene a volte siano chiamate in modo diverso e in alcuni casi alcune di esse siano effettivamente assenti.

Sopra primo stadio viene creato un modello di dati concettuale, o infologico, dell'area disciplinare. Si caratterizza per il fatto di non dipendere dalle caratteristiche di specifici DBMS. Descrive gli oggetti principali dell'area tematica, le loro proprietà e le connessioni tra di loro. È possibile descrivere l'area tematica in linguaggio naturale, tuttavia, per una maggiore accuratezza, chiarezza e semplicità di ulteriore progettazione, vengono utilizzati mezzi formalizzati. Pertanto, viene chiamata una descrizione fatta utilizzando il linguaggio naturale, formule matematiche, tabelle, grafici e altri mezzi comprensibili a tutti coloro che lavorano alla progettazione di database modello di dati concettuali.

Esistono molti approcci alla costruzione di un modello di dati concettuale: modelli di grafi, reti semantiche, modello di relazione tra entità, ecc. Il più popolare di questi è il modello entità-relazione ( ER-modello, dall'inglese. Entità- Relazione). ER-model è stato proposto dallo scienziato americano Peter Ping Sheng Chen nel 1976. Ad oggi sono state sviluppate diverse versioni di esso, ma tutte si basano su diagrammi grafici proposti da Chen.

Il modello entità-relazione è rappresentato graficamente nella forma ER-chart, che consiste in un insieme di insiemi di valori che descrivono le proprietà di un'entità e una relazione (Entità - Relazione diagrammi).

I vantaggi di questo modello includono:

    facilità di formalizzazione,

    facilità di comprensione;

    descrizione con mezzi grafici;

    chiarezza dell'immagine di vari tipi di collegamenti;

    facilità di conversione in uno schema di database supportato da alcuni DBMS.

Le componenti principali del modello "entità-relazione" sono l'entità, gli attributi e le relazioni (Fig. 2.9).

Riso.2.9. ER -diagramma

L'essenza (Entità) - un determinato oggetto reale o immaginario essenziale per l'area tematica considerata, di cui si desidera conservare le informazioni. Ogni entità deve avere alcune proprietà: avere un nome univoco e avere uno o più attributi che identificano in modo univoco ogni istanza dell'entità. Attributo - qualsiasi caratteristica di un'entità che sia significativa per l'area tematica considerata. Ha lo scopo di qualificare, identificare, classificare, quantificare o esprimere lo stato di un'entità.

Connessione (Relazione) - un'associazione nominativa tra due entità significativa per il dominio in esame.

Alla relazione viene assegnato un nome e il nome di ogni relazione tra due entità deve essere univoco.

Il modello concettuale è compilato sulla base di interviste e sondaggi di esperti - specialisti nell'area disciplinare e deve soddisfare una serie di requisiti:

    deve essere indipendente da uno specifico DBMS;

    deve essere comprensibile sia per gli sviluppatori del sistema informativo che per gli specialisti dell'area disciplinare;

    dovrebbe ridurre al minimo gli ulteriori sforzi di progettazione. Ciò significa che le sue strutture dovrebbero essere facilmente trasformate in strutture di modelli logici;

    dovrebbe, per quanto possibile, esistere in una forma percepibile da un computer. In questo caso, sarà adatto per la progettazione automatizzata di database.

Quindi, l'obiettivo della modellazione concettuale è creare una rappresentazione accurata e completa del dominio, ad es. definire gli oggetti, le loro proprietà e le relazioni con gli oggetti (cioè le relazioni).

Sopra seconda fase design, viene creato un modello logico o datalogico. Tale modello non è più costruito in termini di oggetti e relazioni, ma in termini di DBMS specifico in cui dovrebbe essere utilizzato il database. Questo modello è anche chiamato schema DB.

Attualmente sono noti tre modelli di dati logici (detti anche modelli classici o meravigliosi), ovvero gerarchico, di rete e relazionale.

I modelli di dati gerarchici e di rete iniziarono ad essere utilizzati nei sistemi di gestione dei database nei primi anni '60. Nei primi anni '70. è stato proposto un modello di dati relazionale.

Gli elementi principali di ciascuno di questi modelli sono gli oggetti e le relazioni tra loro, e la caratteristica distintiva è la differenza nei modi di rappresentare le relazioni tra gli oggetti.

Fase tre- progettazione fisica. Il risultato è un modello fisico che descrive il database in termini di struttura fisica. Il modello fisico presuppone la scelta dei supporti di informazione, determinando il modo di porre la base ei suoi elementi costitutivi su questi supporti, descrivendo le possibilità e l'opportunità della compressione dei dati, ottimizzando l'accesso ai dati a livello fisico.

Quindi, se il modello concettuale è indipendente dal DBMS e, eventualmente, anche dal modello dati, e quello logico dipende da uno specifico DBMS, allora quello fisico dipende non solo dal DBMS, ma anche da quello tecnico e in parte di sistema Software.

L'attuale fase di sviluppo dei sistemi informativi introduce alcune modifiche allo schema di progettazione del database classico:

    nella fase di progettazione concettuale, i metodi grafici sono ampiamente utilizzati;

    nuove metodologie facilitano la traduzione di un modello concettuale in un modello logico per diversi DBMS. In alcuni casi, il passaggio da un modello concettuale a uno logico può essere automatizzato o addirittura completamente automatico;

    I moderni DBMS e altri software possono semplificare notevolmente l'organizzazione fisica del database. Pertanto, la fase di progettazione fisica è ora notevolmente ridotta e talvolta quasi completamente automatizzata.

Tipi di modelli di dati logici

Come notato sopra, i principali tipi di modelli di dati logici sono: gerarchico, di rete e relazionale.

Modello dati gerarchico permette di costruire database con una struttura ad albero. In essi, ogni nodo contiene il proprio tipo di dati (entità). Al livello superiore dell'albero in questo modello c'è un nodo: la radice, al livello successivo ci sono i nodi associati a questa radice, quindi i nodi associati ai nodi del livello precedente, ecc., e ogni nodo può avere un solo antenato (Fig. 2.10). Tali basi supportano una relazione uno-a-molti.

La ricerca dei dati in un sistema gerarchico inizia sempre dalla radice. Quindi scendere da un livello all'altro fino a raggiungere il livello desiderato. Lo spostamento attraverso il sistema da un record all'altro viene effettuato utilizzando i collegamenti.

I principali vantaggi del modello gerarchico sono la semplicità di descrizione delle strutture gerarchiche del mondo reale e la rapida esecuzione delle query che corrispondono alla struttura dati. Tuttavia, tali modelli contengono spesso dati ridondanti e sono poco adatti a rappresentare relazioni molti-a-molti. Inoltre, non è sempre conveniente iniziare ogni volta a cercare i dati richiesti dalla radice e non c'è altro modo per navigare nel database in strutture gerarchiche. I sistemi gerarchici sono la generazione più vecchia di sistemi di database e sono stati progettati per i mainframe.

Riso. 2.10. Struttura gerarchica del modello di database

Modello dati di rete si basa anche su una rappresentazione grafica delle relazioni degli oggetti. Tuttavia, qui, oltre ai collegamenti verticali, ci sono anche quelli orizzontali, ad es. è consentita la subordinazione di un oggetto a molti oggetti. Pertanto, a differenza dei modelli gerarchici, i modelli di rete supportano relazioni molti-a-molti. Ogni elemento generato al loro interno può avere più di un antenato (Figura 2.11).

Riso. 2.11. La struttura di rete del modello di database

Tuttavia, i sistemi in rete sono piuttosto complessi e richiedono un software solido. In essi, proprio come nei sistemi gerarchici, il passaggio da record a record avviene tramite i collegamenti inseriti in ciascun record. Un tempo erano piuttosto popolari e venivano utilizzati per mini-computer e mainframe.

Modello di organizzazione del database relazionale ha ricevuto la più grande popolarità in questo momento. Ciò è dovuto al fatto che la presenza di carenze fondamentali dei modelli gerarchici e di rete ha portato all'inefficacia del loro utilizzo nelle condizioni moderne. Le capacità del modello relazionale hanno permesso di superare queste carenze e descrivere strutture gerarchiche e di rete.

Un database relazionale è un database percepito dal suo utente come una raccolta di tabelle. La presentazione dei dati sotto forma di tabelle è abbastanza coerente con le tradizionali tecnologie di elaborazione delle informazioni "non informatiche", è chiara e comprensibile per la maggior parte degli utenti. Le tabelle del database relazionale possono essere visualizzate sullo schermo di un computer o stampate. Si noti inoltre che il modello di dati relazionali si adatta meglio alla struttura dell'informazione economica.

Concetti di base dei database relazionali

Il modello dei dati relazionali, sviluppato da E. Codd negli anni '70, si basa sulla teoria matematica delle relazioni e si basa su un sistema di concetti di algebra relazionale, i più importanti dei quali sono tabella (relazione), riga (tupla), colonna ( attributo), contenuto della colonna (dominio), chiave primaria, chiave esterna.

Nel modello relazionale i dati sono rappresentati sotto forma di tabelle collegate tra loro. Ogni tabella è costituita da righe (record dello stesso tipo o tuple) e colonne (campi o attributi) e ha un nome univoco all'interno del database. La parola "stesso tipo" significa che tutti i record hanno lo stesso insieme di attributi, o campi, sebbene l'attributo possa avere il proprio significato per ogni record. Ogni colonna di una tabella ha un nome univoco per la sua tabella. Le colonne sono disposte nella tabella secondo l'ordine dei loro nomi quando è stata creata. Ogni attributo può assumere un sottoinsieme di valori da un'area specifica (dominio). A differenza delle colonne, le righe non hanno nomi, il loro ordine nella tabella non è definito e il numero non è limitato.

Spieghiamo i concetti di cui sopra utilizzando l'esempio di un modello di database relazionale contenente informazioni sui dipendenti di una determinata azienda. Si consideri una tabella con i dati sui dipendenti dell'azienda (Tabella 2.6).

Tabella 2.6

Dipendenti

Numero del personale

Cognome I.O.

Codice Reparto

Telefono del lavoro

A.V. PETROV

S. T. ROMANENKO

I. S. STEPANOVA

Puoi vedere che tutti e tre i record hanno gli stessi attributi, ma assumono valori diversi. Quindi, per il record n° 1, l'attributo del numero di personale assume il valore 008976 e per il record n° 2 - 008980 e così via. I valori di alcuni attributi per record diversi possono essere gli stessi, ad esempio i record n. 1 e n. 2 hanno lo stesso valore per l'attributo "codice reparto". Tuttavia, ogni tabella deve avere un attributo (o un insieme di attributi) il cui valore non viene mai ripetuto e identifica in modo univoco ogni riga della tabella. Ciò è necessario affinché, quando si lavora con il database, sia possibile distinguere un record dall'altro. Tali attributi sono chiamati unici. Viene chiamato un attributo univoco di una tabella o una raccolta dei suoi attributi univoci chiave primaria o campo chiave. In questa tabella, la chiave è l'attributo del numero di personale.

Nel caso in cui un record sia determinato in modo univoco dai valori di più campi (o un insieme di attributi univoci), avviene una chiave composita (concatenata).

In alcuni casi, l'attributo potrebbe non avere alcun significato: ad esempio, il dipendente n. 3 non ha un numero di telefono dell'ufficio e l'attributo corrispondente è vuoto. In questo caso, si dice che l'attributo ha un valore pari a zero. La chiave non può essere nulla.

Una semplice raccolta di tabelle non può essere considerata un database se non esistono relazioni definite tra di esse. Nei database relazionali, le relazioni indicano una corrispondenza tra i record in due tabelle. Si consideri la seconda tabella contenente le informazioni sui reparti (Tabella 2.7)

Tabella 2.7

Tra le due tabelle precedenti è possibile impostare la relazione "DIPENDENTE - lavora in - REPARTO". Se vuoi trovare informazioni sul dipartimento in cui lavora il dipendente n. 2, devi prendere il valore dell'attributo "codice dipartimento" nella tabella "DIPENDENTI" e trovare il codice corrispondente nella tabella "REPARTI". Quindi, due record di tabelle diverse si fonderanno

S. T. ROMANENKO

DIPARTIMENTO RISORSE UMANE

Si vede che la relazione tra le due tabelle viene stabilita in base alla corrispondenza dei valori degli attributi delle due tabelle, nel nostro caso si tratta dell'attributo "codice reparto" della tabella "DIPENDENTI" e del "codice " attributo della tabella "REPARTI". Tali attributi sono chiamati attributi di collegamento. Un attributo di collegamento in una tabella deve essere una chiave. Nell'esempio sopra, l'attributo "codice" è la chiave per la tabella "REPARTI". Se così non fosse e i codici reparto in questa tabella fossero ripetuti, sarebbe impossibile determinare a quale reparto si fa riferimento nella prima tavolo. Il secondo attributo di collegamento, in questo caso il "codice reparto" della tabella "IMPIEGATI", è chiamato chiave esterna perché si riferisce alla chiave di un'altra tabella (esterna) (Figura 2.12).

Chiave primaria della tabella 2

Database post-relazionali

Come accennato in precedenza, i database relazionali sono costituiti da tabelle bidimensionali collegate tra loro. Pertanto, quando si progetta un database relazionale, tutte le informazioni vengono suddivise in molti array bidimensionali. In alcuni casi, la tabella corrisponde a molti oggetti reali, ad esempio "reparti", "dipendenti", "conti", ecc. Ma a volte, quando si ha a che fare con informazioni gerarchiche, uno stesso oggetto deve essere "spalmato" in più tabelle.

Un esempio potrebbero essere i documenti su più righe come una fattura. Ciascuno di questi documenti ha dettagli comuni, come numero, data, fornitore e nome del destinatario. Nella tabella "Fatture", tali dettagli costituiscono un record. Tuttavia, una fattura è un documento a più righe e sarà inoltre richiesta una voce separata per memorizzare ciascuna riga contenente il nome del prodotto, la sua quantità, il prezzo, l'importo. Pertanto, è necessario creare una tabella aggiuntiva "Righe fattura" associata a quella precedente. I dati di ciascuna fattura saranno contenuti in un record nella prima tabella e uno o più record nella seconda.

Questo approccio presenta diversi svantaggi. Innanzitutto, il numero di tabelle e le relazioni tra di esse aumenta, il che porta a un rallentamento dell'esecuzione delle query nell'intero database. In secondo luogo, non si tiene conto della gerarchia e dell'unità logica delle tabelle. In questo esempio, la tabella "Righe fattura" può essere considerata subordinata alla tabella "Fatture", poiché senza di essa non può esistere. E solo nell'unità, queste due tabelle descrivono il cosiddetto oggetto aziendale, un analogo di un documento reale. La suddivisione degli oggetti aziendali in più tabelle complica la struttura del database e il modo in cui gli utenti lo comprendono.

LINEA FATTURA

CONTO-FAKTUR

Questi svantaggi sono superati nel modello dati post-relazionale, che, in sostanza, è uno sviluppo del modello relazionale con la differenza che rimuove la restrizione sull'atomicità (indivisibilità) degli attributi.

La restrizione sull'atomicità degli attributi significa che in un database relazionale, un attributo (campo) di ogni record può contenere un solo valore. In un modello post-relazionale, invece, un campo può contenere più valori o addirittura un'intera tabella. Pertanto, diventa possibile "annidare" una tabella in un'altra.

Ciò consente di operare in modo più efficiente con oggetti di business, ognuno dei quali diventa logicamente integrale, essendo rappresentato da un solo record.

Secondo gli sviluppatori di DBMS post-relazionali, la velocità di esecuzione delle query in essi aumenta fino a 20 volte rispetto ai DBMS relazionali. Tuttavia, il passaggio da database relazionali ubiqui a database post-relazionali è costoso e ancora limitato.

Archivio dati

Un data warehouse è un sistema progettato per fornire un unico spazio informativo al fine di analizzare e ottimizzare il proprio business.

L'attività di qualsiasi entità economica è associata all'uso e all'elaborazione delle informazioni, che è la risorsa economica più importante per il raggiungimento di elevate prestazioni economiche. Tuttavia, una caratteristica dell'EIS è la necessità di elaborare due tipi di dati, ovvero operativo e analitico. Pertanto, nel processo di funzionamento dell'EIS, è necessario risolvere due classi di problemi:

    garantire il lavoro quotidiano dell'impresa per l'immissione e l'elaborazione delle informazioni;

    organizzazione di un magazzino di informazioni allo scopo di analisi multivariate complesse e studio di dati per identificare tendenze di sviluppo, prevedere condizioni, valutare e gestire i rischi, ecc. e infine per facilitare il processo decisionale.

I compiti della prima classe - l'automazione delle attività operative - sono completamente risolti ohLTR-sistemi (in linea Transazionale Processi­ ns - elaborazione operativa della transazione), che includono sistemi bancari automatizzati, sistemi di contabilità, ecc. OLAP- sistemi (in linea analitico in lavorazione - elaborazione analitica operativa), che sono costruiti utilizzando la tecnologia di data warehouse e sono progettati per l'analisi aggregata di grandi quantità di dati. Questi sistemi sono parte integrante dei sistemi decisionali o gestionali della classe mezzo e superiore maneggio­ mento, quelli. sistemi destinati ad utenti di livello medio e alto della dirigenza aziendale.

Le caratteristiche comparative dell'uso dei dati nei sistemi di elaborazione operativa e analitica sono riportate in tabella. 2.8.

Tabella 2.8

Caratteristiche dei sistemi informativi operativi e analitici

Proprietàdati

Sistema

elaborazione operativa

elaborazione analitica

Appuntamento

Ricerca operativa, elaborazioni semplici

Elaborazione analitica, previsione, modellazione

Livello di aggregazione

Dati dettagliati

Dati aggregati

Tempo di conservazione

Da diversi mesi a un anno

Diversi decenni o più

Frequenza di aggiornamento

Alto. Aggiornamento in piccole porzioni

Basso. Aggiornamento in blocchi di grandi dimensioni, fino a diversi milioni di record alla volta

Criterio

efficienza

Il numero di transazioni per unità di tempo

Velocità di esecuzione di query complesse e trasparenza della struttura di archiviazione per gli utenti

Pertanto, il moderno EIS è un sistema basato sull'uso congiunto della transazione OLTP- sistemi e data warehouse (Dati Magazzino).

Il termine "data warehouse" è diventato popolare negli anni '90. Come definito da William Inmon, che ha aperto la strada a questa tecnologia, un data warehouse (DW) è un set di dati cronologico specifico per il dominio, integrato, immutabile, organizzato per scopi di supporto decisionale.

Le caratteristiche distintive di un data warehouse sono:

    orientamento all'area disciplinare, ad es. il data warehouse contiene solo quelle informazioni che possono essere utili al funzionamento dei sistemi analitici;

    supporto di dati storici, che determina il fatto che l'analisi richiede informazioni accumulate in un lungo periodo di tempo;

    integrazione in un unico repository di dati precedentemente disconnessi provenienti da diverse fonti, nonché loro verifica, coordinamento e riduzione in un unico formato;

Aggregazione, che prevede la memorizzazione simultanea di dati aggregati e primari nel database in modo che le query per la determinazione dei valori totali vengano eseguite abbastanza rapidamente.

Il data warehouse è quindi un database specializzato che raccoglie, integra e accumula le informazioni di cui i manager hanno bisogno per preparare le decisioni di gestione; ad esempio, nel settore bancario, si tratta di informazioni sui clienti della banca, questioni di credito, tassi di interesse, tassi di cambio, quotazioni di borsa, stato del portafoglio di investimento, giorni di operatività delle filiali, ecc.

A questo proposito, il data warehouse è destinato non tanto all'inserimento di informazioni quanto alla rapida ricerca e analisi delle stesse. Pertanto, i sistemi basati su un data warehouse hanno un'architettura di database che fornisce un'elevata velocità di esecuzione delle query su enormi quantità di informazioni. Si distinguono per un diverso design dell'interfaccia utente, che rappresenta mezzi speciali di ricerca delle informazioni, la loro generalizzazione e approfondimento.

Attualmente, sono in fase di sviluppo tali archivi, in cui non solo vengono raccolti i dati, ma offre anche la possibilità di modificarli: posizionare funzionalità analitiche, apportare modifiche alla gestione, integrare i dati mancanti.

Il sistema di gestione del data warehouse è costituito da diversi blocchi funzionali.

Banca dati.È il cuore dell'intero sistema. La differenza fondamentale tra il database di magazzino è la sua struttura ben congegnata, che ha una composizione ottimale di entità specifiche del settore finanziario, nonché la struttura e l'insieme di attributi di dati delle entità, a seguito della quale la struttura di il database del magazzino è ottimizzato per il caricamento rapido e il recupero rapido dei dati e non per l'esecuzione rapida delle transazioni.

Strumenti di personalizzazione del database e gestione dei metadati. Questi strumenti sono progettati per personalizzare il modello informativo del data warehouse durante l'implementazione e modificare questo modello durante il funzionamento, per espandere gradualmente le funzionalità del data warehouse. Inoltre, i metadati dovrebbero essere archiviati come informazioni separate nel database per massimizzare la flessibilità e l'adattabilità del data warehouse. (Metadati) - dati sui dati. I metadati includono informazioni su dati fisici, processi tecnici e aziendali, regole e struttura dei dati. Pertanto, svolgono il ruolo di un libro di riferimento contenente informazioni sulle fonti dei dati primari, algoritmi di elaborazione a cui sono stati sottoposti i dati originali, una descrizione delle strutture dei dati e delle loro relazioni, ecc.

Tecnologia di raccolta dati. L'incoerenza e l'incoerenza dei dati, la frammentazione e l'isolamento delle fonti, la differenza nei metodi di archiviazione dei dati, l'impossibilità di accedere ai dati da alcune fonti non consentono il pieno utilizzo di questi dati. Abbiamo quindi bisogno di una speciale tecnologia di raccolta dati che garantisca l'acquisizione regolare e ininterrotta dei dati da varie fonti, in particolare da filiali remote, uffici aggiuntivi e altri sistemi informativi, e ci permetta di trasformare l'intera varietà di dati accumulati dalla banca in informazioni prezioso per gli affari. Questa tecnologia include formati di dati, tecnologia per la loro generazione, regole aziendali che regolano l'estrazione di dati da fonti esterne, distribuzione di metadati (informazioni normative e di riferimento) e molto altro.

Esistono due approcci alla raccolta dei dati: ETL- sistemi e formato standard per lo scambio di dati aziendali. Il primo modo per raccogliere dati è utilizzare gli strumenti ETL (Estratto, Trasforma), sistemi speciali per l'estrazione dei dati da altri database, la trasformazione secondo le regole descritte in questo sistema e il caricamento nello storage. Il secondo approccio consiste nell'utilizzare un formato standard per la raccolta dei dati e sviluppare procedure per il caricamento dei dati sul lato sorgente. Ciò consente di raccogliere dati omogenei da sistemi eterogenei, di decentralizzare lo sviluppo delle procedure di caricamento dei dati, fornendo una soluzione a questo problema agli specialisti che hanno conoscenza del sistema originale.

Sistema di pulizia e caricamento dei dati. Questo sistema fornisce il controllo dell'input dei dati, la correzione automatica degli errori, l'eliminazione di duplicazioni e valori errati, portando i dati a standard uniformi, caricando grandi quantità di dati, logging multilivello.

L'apparato per eseguire calcoli. Un apparato speciale per l'esecuzione di calcoli fornisce:

    aggregazione dei dati - il calcolo di indicatori generalizzati, ad esempio il calcolo del saldo mensile, trimestrale e annuale;

    consolidamento dei dati - sintesi dei dati per gerarchia organizzativa, ad esempio calcolo del bilancio consolidato di una banca;

    calcolo di indicatori derivati ​​quali esecuzione effettiva del budget, liquidità, margine, ecc.

Interfacce utente e report. Il data warehouse, pur accumulando preziose informazioni, dovrebbe garantirne il massimo utilizzo da parte dei dipendenti. Per fare ciò, dispone di interfacce utente speciali progettate per un rapido recupero dei dati e di una tecnologia avanzata per la creazione e l'emissione di report.

Interfacce per sistemi esterni. Il data warehouse fornisce informazioni a sistemi analitici esterni e generatori di report. Per questo, vengono applicati gli standard del settore per l'accesso ai dati.

L'architettura del sistema di gestione del data warehouse è mostrata in Fig. 2.15.

Riso. 2.15. Architettura del sistema di gestione del data warehouse

I dati vengono caricati nel magazzino da sistemi di elaborazione dei dati operativi e da fonti esterne, ad esempio da rapporti ufficiali di imprese e banche, risultati di scambi commerciali, ecc. Quando si caricano i dati nell'archivio, vengono verificate l'integrità, la comparabilità, la completezza dei dati caricati, nonché la loro necessaria trasformazione e trasformazione.

Il data warehouse è rivolto al top e middle management dell'azienda, responsabile del processo decisionale e dello sviluppo del business. Questi sono i capi dei dipartimenti strutturali, finanziari e clienti, nonché i dipartimenti di marketing, i dipartimenti di analisi e pianificazione, ad esempio il dipartimento di reporting, contabilità generale, tesoreria, dipartimento di analisi, dipartimento di marketing, ecc.

Il data warehouse si basa sul concetto di spazio informativo multidimensionale, o ipercubo (cubo multidimensionale). I valori memorizzati nelle celle di questo cubo e chiamati fatti sono indicatori quantitativi che caratterizzano le attività dell'azienda. In particolare, possono essere dati su fatturati e saldi dei conti, struttura delle spese e delle entrate, stato e flusso di cassa, ecc. Le dimensioni di un cubo che formano una delle sue facce sono un insieme di dati dello stesso tipo destinati a descrivere fatti, ad esempio filiali, merci, fornitori, clienti e valute, ecc. sono responsabili della descrizione delle caratteristiche qualitative dell'azienda. L'aggregazione dei dati viene eseguita dalle dimensioni del cubo, pertanto è consuetudine raggruppare gli elementi delle dimensioni in strutture gerarchiche, ad esempio, le filiali sono spesso raggruppate per territorio, clienti - per settore, date - in settimane, mesi, trimestri , e anni. Ogni cella di questo cubo è "responsabile" di un insieme specifico di valori per le sue dimensioni individuali, ad esempio il fatturato dei conti di bilancio per il giorno, il trimestre, l'anno nel contesto delle filiali.

Attualmente, i più diffusi sono tre tipi di modelli di dati utilizzati nella costruzione di data warehouse: multidimensionali, relazionali e combinati.

Per modello multidimensionale caratteristico è l'uso di database spaziali non relazionali sotto forma di ipercubi, che forniscono archiviazione multidimensionale, elaborazione e presentazione dei dati. Il principale vantaggio del modello multidimensionale è la velocità di recupero dei dati. I dati si trovano all'intersezione delle dimensioni dell'ipercubo. Per trovarli, non è necessario organizzare le relazioni tra le tabelle, come avviene nei DBMS relazionali. Per questo motivo, il tempo medio di risposta a una query complessa (ad hoc) in un modello multidimensionale è di 1-2 ordini di grandezza inferiore rispetto a un modello relazionale.

Tuttavia, un ipercubo richiede grandi quantità di memoria su disco, poiché lo spazio è riservato in anticipo per ogni possibile dato, questo volume aumenta notevolmente con un alto grado di granularità dei dati e sorgono difficoltà con la modifica dei dati, poiché l'aggiunta di un'altra dimensione richiede una ricostruzione completa dell'ipercubo.

Pertanto, è consigliabile utilizzare il modello HD multidimensionale quando il suo volume è piccolo (non più di 10-20 gigabyte) e l'ipercubo ha un insieme di misurazioni stabile nel tempo.

Usando modello relazionale la struttura multidimensionale del CD è implementata da tabelle relazionali sia con layout di dati standard come "stella" e "fiocco di neve", sia più complesse, impostate da modelli SQL-richieste. I data warehouse costruiti sulla base del modello relazionale sono in grado di immagazzinare enormi quantità di informazioni, ma sono inferiori ai modelli multidimensionali nella velocità di esecuzione delle query. Nel modello relazionale, l'ipercubo è emulato dal DBMS a livello logico.

Gli ultimi anni hanno iniziato a usare archiviazione dati combinata, in cui un DBMS relazionale è combinato con un intero insieme di quelli multidimensionali. Il database relazionale in questo caso è il repository centrale e permette di accumulare enormi quantità di informazioni. I dati richiesti da specifiche applicazioni analitiche vengono estratti da un repository centrale in database multidimensionali. Ogni database multidimensionale memorizza informazioni su una delle aree di attività (Fig. 2.16).

Riso. 2.16. Logica di data warehouse combinata

Data mart

Una delle opzioni per implementare in pratica un data warehouse è creare data mart. (Dati Mart). A volte vengono anche chiamati data mart. Un data mart è una raccolta di dati specifica del dominio con un'organizzazione specifica. Il contenuto dei data mart, di norma, è finalizzato a risolvere una certa gamma di compiti omogenei di una o più aree tematiche correlate, o per svolgere specifiche funzioni aziendali, o per specifici dipartimenti. Ad esempio, per risolvere i problemi relativi all'analisi dei servizi di credito della banca, viene utilizzata una vetrina e per lavorare sull'analisi delle attività della banca in borsa - un'altra.

Di conseguenza, un data mart è un data warehouse relativamente piccolo e specializzato contenente solo dati specifici per argomento e destinato all'uso da parte di una specifica unità funzionale. Quindi, i data mart orientati alla funzione sono strutture di dati che forniscono la soluzione di problemi analitici in una specifica area funzionale o divisione dell'azienda, ad esempio, gestione della redditività, analisi di mercato, analisi delle risorse, analisi del flusso di cassa, analisi della base clienti, ricerche di mercato , gestione patrimoniale e passiva, ecc. Pertanto, i data mart possono essere visti come piccoli archivi tematici che vengono creati per fornire supporto informativo per le attività analitiche di specifici reparti gestionali di un'azienda.

L'organizzazione dei dati in una vetrina è determinata dalla necessità di fornire la capacità di analizzare i dati di una particolare area tematica con i mezzi più ottimali.

I data mart e il data warehouse sono molto diversi tra loro. Il data warehouse nasce per risolvere le problematiche aziendali presenti nel sistema informativo aziendale. In genere, i data warehouse vengono creati e acquisiti da organizzazioni controllate a livello centrale come le organizzazioni informatiche classiche come una banca. Il data warehouse è compilato dall'intera società.

Il data mart è progettato per soddisfare le esigenze di uno specifico insieme omogeneo di attività. Pertanto, un'azienda può avere molti data mart diversi, ognuno con il proprio aspetto grafico.

La differenza successiva è la granularità dei dati, poiché il data mart contiene dati già aggregati. Il data warehouse, invece, contiene i dati più dettagliati.

Poiché il livello di integrazione nei data mart è maggiore rispetto ai magazzini, non è facile scomporre la granularità del data mart nella granularità del magazzino. Ma puoi sempre seguire la direzione opposta e aggregare i singoli dati in aggregati.

A differenza di un magazzino, un data mart contiene solo una piccola quantità di informazioni storiche legate solo a un breve periodo di tempo ed essenziali solo nel momento in cui soddisfa i requisiti per risolvere il problema. I data mart possono essere pensati come sottoinsiemi separati logicamente o fisicamente dell'archivio dati. Nella fig. 2.17 mostra la relazione tra data mart e data warehouse utilizzando come esempio il settore bancario.

I data mart sono in genere ospitati in una tecnologia a più livelli ottimale per la flessibilità analitica, ma non ottimale per grandi quantità di dati.

La struttura del data mart è inoltre focalizzata sull'organizzazione multidimensionale dei dati sotto forma di cubo. Tuttavia, la loro costruzione, a causa della gamma di informazioni limitata che soddisfa le esigenze di un'area funzionale, è molto più semplice e redditizia.

Riso. 2.17. Relazione tra data mart e data warehouse

Esistono due tipi di data mart: dipendenti e indipendenti. Data mart dipendenteè quello che proviene dall'archivio dati. Fonte data mart indipendenteè l'ambiente di applicazione software principale. I data mart dipendenti sono stabili e hanno un'architettura solida. I data mart indipendenti sono instabili e hanno un'architettura instabile, almeno durante il trasferimento dei dati.

Va notato che i data mart sono la soluzione ideale al conflitto più significativo nella progettazione del data warehouse: prestazioni contro flessibilità. In generale, più il modello di data warehouse è standardizzato e flessibile, meno è produttivo nel rispondere alle query. Ciò è dovuto al fatto che le richieste che arrivano in un sistema progettato standard richiedono operazioni preliminari significativamente maggiori rispetto a un sistema progettato in modo ottimale. Indirizzando tutte le richieste degli utenti al data mart, mantenendo un modello flessibile per il data warehouse, gli sviluppatori possono ottenere flessibilità e stabilità a lungo termine nella progettazione del magazzino, nonché prestazioni ottimali per le richieste degli utenti.

Una volta nel magazzino, i dati possono essere distribuiti tra molti data mart per accedere alle query degli utenti. Questi data mart possono assumere molte forme: dai database client-server ai database desktop, OLAP- cubi o anche fogli di calcolo dinamici. La scelta degli strumenti per le query degli utenti può essere ampia e riflettere le preferenze e le esperienze di utenti specifici. L'ampia varietà di tali strumenti e la loro facilità d'uso li renderanno la parte più economica dell'implementazione di un progetto di data warehouse. Se i dati nell'archivio hanno una buona struttura e una qualità comprovata, trasferirli ad altri data mart diventerà un'operazione di routine ed economica.

L'uso di tecnologie di data mart, sia dipendenti che indipendenti, consente di risolvere il problema del consolidamento dei dati provenienti da varie fonti al fine di risolvere nel modo più efficace i problemi di analisi dei dati. In questo caso le fonti possono essere vari sistemi contabili e di riferimento che differiscono per architettura e funzionalità, in particolare geograficamente dispersi.

Un database (DB) è una raccolta di dati strutturati archiviati nella memoria di un sistema informatico e che mostrano lo stato degli oggetti e le loro interrelazioni nell'area tematica in esame.

La struttura logica dei dati archiviati nel database è chiamata modello di presentazione dei dati. I principali modelli di presentazione dei dati (modelli dati) includono gerarchico, di rete, relazionale.

Un sistema di gestione di database (DBMS) è un complesso di strumenti linguistici e software progettati per la creazione, la manutenzione e la condivisione di database da parte di molti utenti. Tipicamente, un DBMS si distingue per il modello dati utilizzato. Quindi, i DBMS basati sull'uso di un modello di dati relazionali sono chiamati DBMS relazionali.

Per lavorare con un database, gli strumenti DBMS sono spesso sufficienti. Tuttavia, se è necessario garantire la comodità di lavorare con il database per utenti inesperti o l'interfaccia DBMS non è adatta agli utenti, è possibile sviluppare applicazioni. La loro creazione richiede programmazione. Un'applicazione è un programma o un insieme di programmi che automatizzano la soluzione di qualsiasi problema applicato. Le applicazioni possono essere create nell'ambiente o al di fuori dell'ambiente DBMS, utilizzando un sistema di programmazione che utilizza strumenti di accesso al database, ad esempio Delphi o C++ Build. Le applicazioni sviluppate in un ambiente DBMS sono spesso chiamate applicazioni DBMS e le applicazioni sviluppate al di fuori del DBMS sono spesso chiamate applicazioni esterne.

Un dizionario dati è un sottosistema di database progettato per l'archiviazione centralizzata di informazioni su strutture di dati, relazioni tra file di database, tipi di dati e formati della loro presentazione, dati appartenenti agli utenti, codici di sicurezza e controllo degli accessi, ecc.

I sistemi informativi basati sull'utilizzo di database operano solitamente in un'architettura client-server. In questo caso, il database è ospitato su un computer server e condiviso.

Un server di una determinata risorsa in una rete di computer è un computer (programma) che gestisce questa risorsa, un client è un computer (programma) che utilizza questa risorsa. Come risorsa di una rete di computer, ad esempio, possono agire database, file, servizi di stampa, servizi postali.

Il vantaggio di organizzare un sistema informativo su un'architettura client-server è una combinazione riuscita di archiviazione centralizzata, manutenzione e accesso collettivo alle informazioni aziendali generali con il lavoro del singolo utente.

Secondo il principio base dell'architettura client-server, i dati vengono elaborati solo sul server. Un utente o un'applicazione genera query che arrivano al server di database sotto forma di istruzioni SQL. Il server del database fornisce la ricerca e il recupero dei dati richiesti, che vengono poi trasferiti al computer dell'utente. Il vantaggio di questo approccio rispetto ai precedenti è una quantità notevolmente inferiore di dati trasmessi.

Si distinguono i seguenti tipi di DBMS:

* DBMS completo;

* server di database;

* strumenti per lo sviluppo di programmi per lavorare con un database.

I DBMS completi sono DBMS tradizionali. Questi includono dBaseIV, Microsoft Access, Microsoft FoxPro e altri.

I server di database sono destinati all'organizzazione dei centri di elaborazione dati nelle reti di computer. I server di database forniscono l'elaborazione delle richieste dai programmi client, solitamente utilizzando istruzioni SQL. Esempi di server di database sono: Microsoft SQL Server, InterBase, ecc.

In generale, il ruolo dei programmi client può essere DBMS, fogli di calcolo, elaboratori di testi, programmi di posta elettronica, ecc.

Gli strumenti per lo sviluppo di programmi per lavorare con un database possono essere utilizzati per creare i seguenti programmi:

* programmi client;

* server di database e loro singoli componenti;

* applicazioni personalizzate.

Per la natura del loro utilizzo, i DBMS si dividono in multiutente (industriale) e locale (personale).

Industriali, i DBMS rappresentano una base software per lo sviluppo di sistemi di controllo automatizzati per grandi oggetti economici. I DBMS industriali devono soddisfare i seguenti requisiti:

* la capacità di organizzare il lavoro parallelo congiunto di molti utenti;

* scalabilità;

* portabilità su varie piattaforme hardware e software;

* stabilità in relazione a guasti di varia natura, inclusa la presenza di un sistema di backup multilivello delle informazioni archiviate;

* garantire la sicurezza dei dati conservati e un avanzato sistema strutturato di accesso agli stessi.

Personal DBMS è un software volto a risolvere i problemi di un utente locale o di un piccolo gruppo di utenti e destinato all'uso su un personal computer. Questo spiega il loro secondo nome: desktop. Le caratteristiche distintive dei sistemi desktop sono:

* relativa facilità d'uso, che consente di creare applicazioni utente praticabili sulla loro base;

* Requisiti di risorse hardware relativamente limitati.

In base al modello di dati utilizzato, i DBMS sono suddivisi in gerarchici, di rete, relazionali, orientati agli oggetti, ecc. Alcuni DBMS possono supportare contemporaneamente più modelli di dati.

Per lavorare con i dati memorizzati nel database, vengono utilizzati i seguenti tipi di lingue:

Linguaggio di descrizione dei dati - un linguaggio di struttura dei dati non procedurale di alto livello;

· Linguaggio di manipolazione dei dati - un insieme di costruzioni che forniscono operazioni di base per lavorare con i dati: input, modifica e recupero di dati su richiesta.

Le lingue nominate possono differire in diversi DBMS. I più utilizzati sono due linguaggi standardizzati: QBE - un linguaggio di query pattern e SQL - un linguaggio di query strutturato. QBE ha principalmente le proprietà di un linguaggio di manipolazione dei dati, SQL combina le proprietà di entrambi i tipi di linguaggi.

Il DBMS implementa le seguenti funzioni di base di basso livello:

* gestione dati in memoria esterna;

* gestione dei buffer RAM;

* gestione delle transazioni;

* tenere un registro delle modifiche nel database;

* garantire l'integrità e la sicurezza del database.

L'implementazione della funzione di gestione dei dati nella memoria esterna garantisce l'organizzazione della gestione delle risorse nel file system del sistema operativo.

La necessità di bufferizzare i dati è dovuta al fatto che la quantità di RAM è inferiore alla quantità di memoria esterna. I buffer sono aree della memoria principale progettate per velocizzare lo scambio tra memoria esterna e memoria principale. I buffer memorizzano temporaneamente frammenti del database, i cui dati dovrebbero essere utilizzati quando si accede al DBMS o sono pianificati per essere scritti nel database dopo l'elaborazione.

Il meccanismo di transazione viene utilizzato nel DBMS per mantenere l'integrità dei dati nel database. Una transazione è una certa sequenza indivisibile di operazioni sui dati del database, che viene tracciata dal DBMS dall'inizio alla fine. Se per qualsiasi motivo (guasti e guasti hardware, errori nel software, inclusa l'applicazione) la transazione rimane incompleta, viene annullata.

Ci sono tre proprietà principali inerenti alle transazioni:

* atomicità (tutte le operazioni comprese nella transazione vengono eseguite o nessuna);

* serializzabilità (non c'è influenza reciproca delle transazioni eseguite contemporaneamente);

* durabilità (anche un crash del sistema non porta alla perdita dei risultati di una transazione impegnata).

Un esempio di transazione è l'operazione di trasferimento di denaro da un conto all'altro nel sistema bancario. In primo luogo, i soldi vengono prelevati da un conto, quindi vengono accreditati su un altro conto. Se almeno una delle azioni non va a buon fine, il risultato dell'operazione sarà errato e l'equilibrio dell'operazione sarà sconvolto.

La registrazione delle modifiche viene eseguita dal DBMS per garantire l'affidabilità dell'archiviazione dei dati nel database in presenza di guasti hardware e software.

Garantire l'integrità del database è una condizione necessaria per il buon funzionamento del database, soprattutto quando viene utilizzato in rete. L'integrità del database è una proprietà del database, il che significa che contiene informazioni complete, coerenti e che riflettono adeguatamente l'area tematica. Lo stato integrale del database è descritto utilizzando vincoli di integrità sotto forma di condizioni che devono essere soddisfatte dai dati archiviati nel database.

La sicurezza è ottenuta nel DBMS mediante crittografia dei dati, protezione tramite password, supporto per i livelli di accesso al database e ai suoi singoli elementi (tabelle, moduli, report, ecc.).

Esistono diversi modi per condividere un database di Access, a seconda delle esigenze e della disponibilità delle risorse. Questo articolo descrive le opzioni disponibili e i vantaggi di ciascuna e fornisce risorse con informazioni aggiuntive su come lavorare.

Access deve essere installato sul tuo computer per modificare la struttura del database.

In questo articolo

Condivisione dei dati utilizzando le cartelle di rete

Questa è l'opzione più semplice con requisiti minimi, ma fornisce la minima funzionalità. Con questo metodo, il file del database viene archiviato su un'unità di rete condivisa e viene utilizzato da tutti gli utenti contemporaneamente. Poiché tutti gli oggetti del database vengono utilizzati contemporaneamente, più utenti possono modificare i dati contemporaneamente, il che limita l'affidabilità e la disponibilità. Le prestazioni possono anche essere ridotte perché tutti gli oggetti del database vengono inviati in rete.

Questa opzione è adatta se il database verrà utilizzato da più persone contemporaneamente e gli utenti non devono modificare la struttura del database.

Nota: Questo metodo è meno sicuro di altri metodi di condivisione del database perché ogni utente dispone di una copia completa del file del database, il che aumenta il rischio di accesso non autorizzato.

Condivisione di un database utilizzando una cartella di rete

    Se non è presente una cartella di rete condivisa, è necessario configurarla.

    Per ulteriori informazioni, vedere la guida del sistema operativo per il computer che verrà utilizzato per condividere il database. Se la cartella condivisa si trova su un server di rete, potrebbe essere necessario l'aiuto dell'amministratore di rete.

    L'accesso deve essere configurato per essere condiviso su tutti i computer degli utenti. Questa modalità è utilizzata di default, ma va selezionata: se l'utente apre il database in modalità esclusiva, gli altri utenti non potranno lavorare con i dati. Completa i passaggi seguenti su ciascun computer.

    1. Avvia Accesso e nella scheda File scegliere oggetto Opzioni.

      Nella finestra Opzioni di accesso scegliere oggetto Parametri del cliente.

    Copia il file del database in una cartella condivisa. Quindi, configurare gli attributi del file per consentire l'accesso in lettura/scrittura al file del database. Per utilizzare il database, è necessario disporre dell'accesso in lettura e scrittura.

    Sul computer di ciascun utente, creare un collegamento al file di database. Nella finestra di dialogo Proprietà collegamento, specificare il percorso del file di database nella proprietà Obbiettivo utilizzando un indirizzo UNC invece di una lettera di unità mappata. Ad esempio, invece del percorso F: \ sample.accdb specificare il percorso \\ nomecomputer \ shared.accdb.

    Nota: Gli utenti possono eseguire questa azione da soli.

Condivisione di un database diviso

Questo metodo è utile se non si dispone di un sito o di un server di database di SharePoint. I database condivisi possono essere condivisi in rete o tramite un sito di SharePoint. Quando si divide il database, viene riorganizzato in due file: il database del server, che contiene le tabelle di dati, e il database del client, che contiene tutti gli altri oggetti del database (ad esempio query, moduli, report). Ogni utente interagisce con i dati utilizzando una copia locale del database esterno.

Vantaggi della divisione del database

    Produttività incrementata. In rete vengono condivisi solo i dati, non tabelle, query, moduli, report, macro o moduli.

    Maggiore disponibilità Le transazioni del database come la modifica dei record sono più veloci.

    Maggiore sicurezza. Gli utenti accedono al database di back-end tramite tabelle collegate; La probabilità che gli aggressori possano ottenere l'accesso non autorizzato ai dati attraverso il database del client è meno probabile.

    Maggiore affidabilità Se l'utente riscontra un problema e il database si chiude inaspettatamente, qualsiasi danno al file di database è generalmente limitato alla copia del database client aperta dall'utente.

    Ambiente di sviluppo flessibile Ciascun utente può progettare in modo indipendente query, moduli, report e altri oggetti di database senza influire sull'esperienza degli altri utenti. Inoltre, è possibile sviluppare e distribuire una nuova versione del database client senza interrompere l'accesso ai dati archiviati nel back-end del database.

Se questo metodo funziona per te, vai alle istruzioni nell'articolo Dividere un database di Access.

Condivisione di un database su un sito SharePoint

Se hai un server che esegue SharePoint (in particolare Access Services), ci sono diverse buone opzioni. L'integrazione con SharePoint aiuta a fornire un accesso al database più conveniente. Quando pubblichi un database Web, Access Services crea un sito di SharePoint che contiene il database. Tutti gli oggetti del database e i dati stessi vengono spostati negli elenchi di SharePoint su questo sito.

Il database pubblicato è ospitato su Internet. È possibile creare moduli Web e report che vengono eseguiti in una finestra del browser, nonché oggetti Access standard (a volte chiamati oggetti client per distinguerli dagli oggetti Web). Access deve essere installato per utilizzare gli oggetti client di Access, ma tutti gli oggetti di database archiviati in SharePoint sono condivisi.

Nota: Se Access è installato sul tuo computer, puoi utilizzare gli oggetti client dal database web, non solo gli oggetti dal database web.

Access Services fornisce un framework per la creazione senza dati che è possibile utilizzare sul Web. I database Web sono progettati e pubblicati utilizzando Access 2010 e SharePoint ed è quindi possibile utilizzare il database Web tramite un browser Web.

Form, report e macro di interfaccia vengono eseguiti all'interno del browser.

Se si utilizza un database Web, i dati vengono archiviati negli elenchi di SharePoint: tutte le tabelle vengono convertite in elenchi di SharePoint e i record diventano elementi dell'elenco. Ciò consente di controllare l'accesso al database Web utilizzando le autorizzazioni di SharePoint.

Le query e le macro di dati vengono eseguite sul server: tutta l'elaborazione SQL viene eseguita sul server. Ciò migliora le prestazioni della rete poiché solo i set di risultati vengono trasmessi sulla rete.

Salvataggio di un database in una raccolta documenti

Il database può essere salvato in qualsiasi raccolta documenti di SharePoint. Questo metodo è simile all'archiviazione di un database su una condivisione di rete e fornisce un modo conveniente per controllare l'accesso al database. Quando si effettua il collegamento agli elenchi di SharePoint, vengono condivisi solo i dati, non gli oggetti del database. Ogni utente riceve la propria copia del database.

Ad esempio, se il sito di SharePoint dispone di elenchi che tengono traccia dei problemi del servizio clienti e archiviano i dati dei dipendenti, è possibile creare un database in Access che fungerà da interfaccia per tali elenchi. È possibile creare query di Access per analizzare questi problemi e report di Access per formattare e pubblicare report scritti per le riunioni del team. Se gli utenti hanno installato Access sui propri computer, è possibile condividere query e report di Access su un elenco di SharePoint utilizzando il menu Prestazione... Durante la visualizzazione di un elenco in un sito di SharePoint, gli utenti saranno in grado di trovare e aprire query, report e altri oggetti di Access nel menu Prestazione... Se gli utenti non dispongono di un'app Access, possono comunque usare i dati degli elenchi tramite le visualizzazioni di SharePoint.

    Apri il database che desideri condividere.

    Nella scheda File scegliere oggetto Salva come.

    Nota: Se stai utilizzando Access 2010, seleziona gli elementi File > Salva e pubblica > Salva database come > SharePoint.

    Nella finestra di dialogo Salva su SharePoint accedere alla raccolta documenti pertinente.

    Controllare il nome del file di database e il suo tipo, modificarli se necessario e fare clic su Salva.

Per altre informazioni, vedere Pubblicare in Access Services e Importare e collegare dati a un elenco di SharePoint.

Condivisione di un database collegandosi a elenchi di SharePoint

Questo metodo offre gli stessi vantaggi dell'utilizzo di un database suddiviso e consente a ciascun utente di modificare la propria copia del database poiché i dati vengono condivisi tramite il sito di SharePoint. Sebbene ciò non offra i vantaggi della pubblicazione del database in un sito di SharePoint, offre il vantaggio di avere i dati centralizzati. Poiché i dati risiedono negli elenchi di SharePoint, possono essere condivisi in rete utilizzando la funzionalità di SharePoint.

Questo metodo prevede tre passaggi principali.

    Sposta i dati negli elenchi di SharePoint.

    Collegamento a queste liste.

    Distribuzione del file di database.

È possibile utilizzare la Migrazione guidata al sito di SharePoint per completare i primi due passaggi e l'ultimo passaggio può essere eseguito utilizzando uno degli strumenti disponibili.

Utilizzo della procedura guidata Esporta tabelle in SharePoint

    Nella scheda Lavorare con i database in un gruppo Trasferimento dati fare clic su un elemento SharePoint.

    Nota: Questa voce è disponibile solo se il file del database è salvato in formato ACCDB.

    Seguire le istruzioni nella procedura guidata Esporta tabelle in SharePoint; in particolare, specificare la posizione del sito di SharePoint. Per annullare il processo, fare clic sul pulsante Cancellazione.

    Per visualizzare ulteriori informazioni sulla migrazione, nell'ultima pagina della procedura guidata, selezionare il pulsante Particolari.

    Questa pagina contiene informazioni su quali tabelle sono associate agli elenchi, nonché informazioni sulla posizione dei backup e l'URL del database. Visualizza inoltre un avviso quando si verifica un problema con la migrazione e specifica la posizione della tabella di registro in cui è possibile visualizzare ulteriori informazioni sui problemi.

    Quando tutti i passaggi della procedura guidata sono stati completati, fare clic su Pronto.

    Se la procedura guidata visualizza un avviso, è necessario rivedere la tabella di registro e intraprendere l'azione necessaria. Ad esempio, potresti voler annullare la migrazione di alcuni campi o convertirli in altri tipi di dati compatibili con gli elenchi di SharePoint.

Nota: Per visualizzare gli elenchi su un sito di SharePoint, fare clic sul pulsante in Avvio veloce. Elenchi o seleziona l'elemento Visualizza tutti i contenuti del sito... Potrebbe essere necessario aggiornare la pagina nel browser web. Per visualizzare gli elenchi nella barra di avvio veloce in un sito di SharePoint o modificare altre opzioni (ad esempio, abilitare il rilevamento della versione), è possibile modificare le opzioni per gli elenchi nel sito di SharePoint. Per ulteriori informazioni, vedere la Guida per il sito di SharePoint.

Condivisione di un database utilizzando un server

La condivisione del database può essere eseguita utilizzando un'applicazione Access e un server di database (come SQL Server). Questo metodo offre molti vantaggi, ma richiede software aggiuntivo: un server di database.

Questa tecnica è simile alla suddivisione del database perché le tabelle vengono archiviate in linea e ogni utente dispone di una copia locale di un file di database di Microsoft Access che contiene collegamenti a tabelle, query, moduli, report e altri oggetti di database. Questa opzione viene utilizzata se il server di database è disponibile e tutti gli utenti hanno installato Access. I vantaggi di questo metodo dipendono dal software del server di database in uso, ma in generale includono account utente e accesso selettivo ai dati, eccellente accessibilità ai dati e pratici strumenti di gestione dei dati integrati. Inoltre, la maggior parte delle applicazioni del server di database funziona correttamente con le versioni precedenti di Access, quindi non è necessario che tutti gli utenti utilizzino la stessa versione. Solo i tavoli sono condivisi.

Vantaggi della condivisione di un database con un server di database

    Alte prestazioni e scalabilità In molti casi, il server di database offre prestazioni migliori rispetto a un singolo file di database di Access. Molti prodotti di database del server forniscono anche supporto per database molto grandi di circa 500 nell'intervallo (2 GB) per un file di database di Access (due gigabyte). I prodotti server di database in genere funzionano in modo molto efficiente, elaborando le richieste in parallelo (utilizzando più thread nativi in ​​un unico processo per gestire le richieste degli utenti) e riducendo al minimo i requisiti di memoria aggiuntivi man mano che vengono aggiunti nuovi utenti.

    Maggiore disponibilità La maggior parte dei prodotti per server di database consente di eseguire il backup del database mentre è in uso. In questo modo, gli utenti non devono forzare la chiusura del database per eseguire il backup dei dati. Inoltre, il server del database di solito gestisce le modifiche simultanee e i blocchi dei record in modo molto efficiente.

    Maggiore sicurezza Il database non può essere completamente protetto. Tuttavia, i prodotti per server di database offrono una solida sicurezza per aiutarti a proteggere i tuoi dati dall'uso non autorizzato. La maggior parte dei prodotti di database lato server offre sicurezza basata sull'account, consentendo di specificare chi può vedere quali tabelle. Anche in caso di accesso errato all'interfaccia, l'uso non autorizzato dei dati è vietato dalla protezione basata sull'account.

    Opzioni di ripristino automatico In caso di errore del sistema (come un arresto anomalo del sistema operativo o un'interruzione dell'alimentazione), alcuni prodotti server di database dispongono di meccanismi di ripristino automatico che ripristinano il database all'ultimo stato di consistenza in pochi minuti, senza la necessità di un amministratore del database. partecipare.

    Elaborazione server L'utilizzo di Access in una configurazione client e server consente di ridurre il traffico di rete elaborando query di database sul server prima di inviare i risultati al client. L'elaborazione del server è in genere più efficiente, soprattutto quando si lavora con set di dati di grandi dimensioni.

Passaggi chiave per l'utilizzo di Access con un server di database

Fattori da considerare quando si sceglie un metodo

Requisiti del metodo

Dividere il database

Cartella di rete

Sito di SharePoint

Server di database

Il bisogno di software del server di database

Necessità di SharePoint

Bisogno disponibilità Accesso ai servizi su un server SharePoint

Dipende dallo scenario:

Il collegamento a elenchi e il salvataggio in una raccolta documenti non richiede Access Services;

la pubblicazione come database Web o applicazione Web richiede Access Services.

Disponibilità dei dati

Adatto a piccoli gruppi in cui i dati cambiano poco

Il meglio. Adatto per scenari di utilizzo offline.

Migliore

Sicurezza

Dipende da misure aggiuntive

Modo meno sicuro

Migliore

Migliore

Flessibilità

Modo flessibile. Puoi sviluppare facilmente nuove funzioni di database senza interruzioni. Gli utenti possono modificare la struttura nella propria copia.

Modo meno flessibile. Lo sviluppo può essere effettuato utilizzando una copia offline del database, che viene quindi sostituita. Non c'è la possibilità per gli utenti di modificare individualmente la struttura del database.

Modo flessibile. Utilizzo delle autorizzazioni di SharePoint per controllare l'accesso e modificare il design. Consente l'utilizzo di alcuni oggetti di database, come i moduli, in base a un browser.

Modo flessibile. Puoi sviluppare facilmente nuove funzioni di database senza interruzioni. Gli utenti possono modificare la struttura degli oggetti nella propria copia.

30/03/17 3.4K

Seguendo i principi descritti in questo articolo, è possibile creare un database che funzioni come previsto e che possa essere adattato per soddisfare nuovi requisiti in futuro. Tratteremo i principi di base progettazione di database, così come i modi per ottimizzarlo.

Processo di progettazione del database

Database adeguatamente strutturato:

  • Aiuta a risparmiare spazio su disco eliminando i dati non necessari;
  • Mantiene l'accuratezza e l'integrità dei dati;
  • Fornisce un comodo accesso ai dati.

Lo sviluppo del database comprende le seguenti fasi:

  1. Analizzare i requisiti o definire lo scopo del database;
  2. Organizzazione dei dati in tabelle;
  3. Indicazione delle chiavi primarie e analisi delle relazioni;
  4. Normalizzazione delle tabelle.

Considera ciascuno fase di progettazione del database più in dettaglio. Nota che questo tutorial si concentra sul modello di database relazionale di Edgar Codd scritto in SQL ( non modello gerarchico, di rete o a oggetti).

Analisi dei requisiti: definizione dello scopo del database

Ad esempio, se stai creando un database per una biblioteca pubblica, devi considerare come sia i lettori che i bibliotecari dovrebbero accedere al database.

Esistono diversi modi per raccogliere informazioni prima di creare un database:

  • Intervistare le persone che lo utilizzeranno;
  • Analisi di modulistica aziendale quali fatture, calendari, rilievi;
  • Considerazione di tutti i sistemi di dati esistenti ( inclusi file fisici e digitali).

Inizia raccogliendo i dati esistenti da includere nel database. Quindi definire i tipi di dati che si desidera memorizzare. Così come gli oggetti che descrivono questi dati. Per esempio:

Clienti

  • Indirizzo;
  • Città (*): Stato (*): CAP;
  • Indirizzo email.

Merce

  • Nome;
  • Prezzo;
  • Quantità in magazzino;
  • Quantità su ordinazione.

Ordini

  • Numero d'ordine;
  • Rappresentante di vendita;
  • Data;
  • Prodotto;
  • Quantità;
  • Prezzo;
  • Prezzo.

Quando si progetta un database relazionale, queste informazioni diverranno in seguito parte del dizionario dei dati, che descrive le tabelle ei campi del database. Scomponi le informazioni nei pezzi più piccoli possibili. Ad esempio, prendi in considerazione la possibilità di separare l'indirizzo postale e il campo dello stato in modo da poter filtrare le persone in base allo stato in cui vivono.

Una volta deciso quali dati saranno inclusi nel database, da dove verranno questi dati e come verranno utilizzati, puoi iniziare a pianificare il database vero e proprio.

Struttura del database: elementi costitutivi

Il passo successivo è visualizzare il database. Per fare ciò, è necessario sapere esattamente come sono strutturati i database relazionali. All'interno del database, i dati correlati sono raggruppati in tabelle, ognuna delle quali è costituita da righe e colonne.

Per convertire elenchi di dati in tabelle, inizia creando una tabella per ogni tipo di oggetto, ad esempio prodotti, vendite, clienti e ordini. Ecco un esempio:

Ogni riga della tabella è chiamata record. I record includono informazioni su qualcosa o qualcuno, come un cliente specifico. colonne (chiamati anche campi o attributi) contengono informazioni dello stesso tipo che vengono visualizzate per ogni record, ad esempio gli indirizzi di tutti i client elencati nella tabella.


Per garantire la coerenza tra i record durante la progettazione del modello di database, assegnare un tipo di dati appropriato a ciascuna colonna. I tipi di dati comuni includono:
  • CHAR - lunghezza specifica del testo;
  • VARCHAR - testo di varie lunghezze;
  • TESTO - grande quantità di testo;
  • INT - intero positivo o negativo;
  • FLOAT, DOUBLE - numeri in virgola mobile;
  • BLOB sono dati binari.

Alcuni DBMS offrono anche il tipo di dati Autonumber, che genera automaticamente un numero univoco su ogni riga.

Nella presentazione visiva del database, ogni tabella sarà rappresentata da un blocco nel diagramma. L'intestazione di ciascun blocco dovrebbe indicare cosa descrivono i dati in questa tabella e gli attributi dovrebbero essere elencati di seguito:


In progettazione di database di informazioniè necessario decidere quali attributi serviranno come chiave primaria per ogni tabella, se presente. Chiave primaria ( PK) È un identificatore univoco per questo oggetto. Con esso, puoi selezionare i dati di un cliente specifico, anche se conosci solo questo valore.

Gli attributi selezionati come chiavi primarie devono essere univoci, immutabili e non possono essere NULL ( non possono essere vuoti). Per questo motivo, i numeri d'ordine e i nomi utente sono chiavi primarie adatte, ma i numeri di telefono o gli indirizzi non lo sono. Puoi anche utilizzare più campi contemporaneamente come chiave primaria ( questa è chiamata una chiave composta).

Quando arriva il momento di creare il DB effettivo, implementi sia la struttura logica che quella fisica attraverso il linguaggio di definizione dei dati supportato dal tuo DBMS.

È inoltre necessario stimare la dimensione del database per garantire che sia possibile ottenere il livello di prestazioni richiesto e disporre di spazio di archiviazione sufficiente.

Creare relazioni tra entità

Ora che i dati sono stati convertiti in tabelle, dobbiamo analizzare le relazioni tra di loro. La complessità di un database è determinata dal numero di elementi che interagiscono tra due tabelle correlate. La determinazione della complessità aiuta a dividere i dati in tabelle nel modo più efficiente.

Ogni oggetto può essere interconnesso con un altro utilizzando uno dei tre tipi di link:

Comunicazione uno a uno

Quando c'è solo un'istanza dell'oggetto A per ogni istanza dell'oggetto B, si dice che hanno una relazione uno a uno ( spesso indicato 1: 1). Puoi indicare questo tipo di relazione nel diagramma ER con una linea con un trattino a ciascuna estremità:


Quando progetti e sviluppi i tuoi database, se non hai motivo di condividere questi dati, una relazione 1: 1 di solito indica che è meglio combinare queste tabelle in una sola.

Ma in determinate circostanze, è più appropriato creare tabelle con relazioni 1:1. Se si dispone di un campo facoltativo, ad esempio "descrizione", che è vuoto per molti record, è possibile spostare tutte le descrizioni in una tabella separata, eliminando i campi vuoti e migliorando le prestazioni del database.

Per garantire che i dati siano correlati correttamente, dovrai includere almeno una colonna identica in ogni tabella. Questa sarà molto probabilmente la chiave primaria.

Relazione uno a molti

Queste relazioni si verificano quando un record in una tabella è collegato a più record in un'altra. Ad esempio, un cliente potrebbe effettuare molti ordini o il lettore potrebbe avere diversi libri presi dalla biblioteca contemporaneamente. Le relazioni uno-a-molti (1: M) sono indicate dal cosiddetto segno della zampa di gallina, come in questo esempio:


Per implementare una relazione 1: M, aggiungi la chiave primaria dalla tabella "one" come attributo a un'altra tabella. Quando una chiave primaria viene specificata in un'altra tabella in questo modo, viene chiamata chiave esterna. La tabella sul lato "1" della relazione è la tabella padre per la tabella figlio sull'altro lato.

Relazione molti a molti

Quando più oggetti tabella possono essere collegati a più altri oggetti. Dicono di avere un legame" molti a molti» ( M: N). Ad esempio, nel caso di studenti e corsi, come uno studente può frequentare più corsi e ogni corso può essere frequentato da più studenti.

Nel diagramma ER, queste relazioni vengono visualizzate utilizzando le seguenti righe:


Quando si progetta una struttura di database, è impossibile implementare questo tipo di relazione. Invece, devi dividerli in due relazioni uno a molti.

Per fare ciò, è necessario creare una nuova entità tra queste due tabelle. Se c'è una relazione M:N tra vendite e prodotti, puoi nominare questo nuovo oggetto " prodotti_venduti”Poiché conterrà i dati per ogni vendita. Sia la tabella delle vendite che la tabella dei prodotti avranno una relazione 1: M con sold_products. Questo tipo di oggetto intermedio è chiamato tabella di collegamento, oggetto associativo o tabella di collegamento in vari modelli.

Ogni record nella tabella delle relazioni corrisponderà a due entità di tabelle adiacenti. Ad esempio, una tabella di collegamenti tra studenti e corsi potrebbe avere il seguente aspetto:

è obbligatorio o no?

Un altro modo di analizzare le relazioni è considerare quale lato di una relazione deve esistere perché esista l'altro. Il lato opzionale può essere contrassegnato con un cerchio sulla linea. Ad esempio, un Paese deve esistere per avere un rappresentante alle Nazioni Unite, e non viceversa:


Due oggetti possono essere interdipendenti ( Uno non può esistere senza l'altro).

Link ricorsivi

A volte, quando si progetta un database, una tabella fa riferimento a se stessa. Ad esempio, una tabella dei dipendenti potrebbe avere un attributo manager che fa riferimento a un'altra persona nella stessa tabella. Questo è chiamato collegamento ricorsivo.

Connessioni extra

Le connessioni superflue sono quelle espresse più di una volta. In genere, è possibile rimuovere uno di questi collegamenti senza perdere alcuna informazione importante. Ad esempio, se l'oggetto "studenti" ha una relazione diretta con un altro oggetto chiamato "docenti", ma ha anche una relazione indiretta con gli insegnanti tramite "voci", è necessario rimuovere il collegamento tra "studenti" e "docenti". Perché l'unico modo per assegnare gli insegnanti agli studenti è attraverso le materie.

Normalizzazione del database

Dopo la progettazione preliminare del database, è possibile applicare regole di normalizzazione per garantire che le tabelle siano strutturate correttamente.

Allo stesso tempo, non tutti i database devono essere normalizzati. In generale, i database con elaborazione delle transazioni in tempo reale ( OLTP) dovrebbe essere normalizzato.

Banche dati con elaborazione analitica interattiva ( OLAP), che rendono l'analisi dei dati più semplice e veloce, può essere più efficiente con un certo grado di denormalizzazione. Il criterio principale qui è la velocità dei calcoli. Ogni modulo o livello di normalizzazione include regole associate ai moduli inferiori.

La prima forma di normalizzazione

La prima forma di normalizzazione ( abbreviato 1NF) afferma che durante progettazione logica di database ogni cella in una tabella può avere un solo valore, non un elenco di valori. Pertanto, una tabella come quella sotto non corrisponde a 1NF:


Potresti essere tentato di aggirare questa limitazione dividendo i dati in colonne aggiuntive. Ma anche questo è contro le regole: una tabella con gruppi di attributi ripetuti o strettamente correlati non è conforme alla prima forma di normalizzazione. Ad esempio, la tabella seguente non corrisponde a 1NF:
Invece, durante la progettazione fisica del database, dividere i dati in più tabelle o record finché ogni cella non contiene un solo valore e non ci sono colonne aggiuntive. Tali dati sono considerati scomposti fino alla dimensione minima utilizzabile. Nella tabella sopra, puoi creare una tabella aggiuntiva " Dettagli di vendita», Che corrisponderà a prodotti specifici con le vendite. "Vendite" avrà una relazione 1: M con " Dettagli di vendita».

Seconda forma di normalizzazione

La seconda forma di normalizzazione ( 2NF) stabilisce che ciascuno degli attributi deve dipendere interamente dalla chiave primaria. Ogni attributo deve dipendere direttamente dall'intera chiave primaria e non indirettamente tramite un altro attributo.

Ad esempio, l'attributo "età" dipende dal "compleanno", che, a sua volta, dipende dalla "codice studente", ha una parziale dipendenza funzionale. La tabella contenente questi attributi non corrisponderà al secondo modulo di normalizzazione.

Inoltre, una tabella con una chiave primaria composta da più campi viola la seconda forma di normalizzazione se uno o più campi non dipendono da ciascuna parte della chiave.

Pertanto, una tabella con questi campi non corrisponderà al secondo modulo di normalizzazione, poiché l'attributo "nome prodotto" dipende dall'ID prodotto, ma non dal numero d'ordine:

  • Numero d'ordine (chiave primaria);
  • ID prodotto (chiave primaria);
  • Nome del prodotto.

La terza forma di normalizzazione

La terza forma di normalizzazione ( 3NF) : ogni colonna non chiave deve essere indipendente da qualsiasi altra colonna. Se a progettazione di database relazionali una modifica in un valore in una colonna non chiave provoca una modifica in un altro valore, questa tabella non corrisponde alla terza forma di normalizzazione.

Secondo 3NF, non è possibile memorizzare alcun dato derivato nella tabella, come la colonna Imposta, che nell'esempio seguente dipende direttamente dal valore totale dell'ordine:


Un tempo sono state proposte ulteriori forme di normalizzazione. Compresa la forma di normalizzazione Boyce-Codd, la quarta e la sesta forma e la normalizzazione della chiave di dominio, ma le prime tre sono le più comuni.

Dati multidimensionali

Alcuni utenti potrebbero aver bisogno di accedere a più viste dello stesso tipo di dati, specialmente nei database OLAP. Ad esempio, potrebbero voler conoscere le vendite per cliente, paese e mese. In questa situazione, è meglio creare una tabella centrale a cui fare riferimento per le tabelle cliente, paese e mese. Per esempio:

Regole di integrità dei dati

Anche usando strumenti di progettazione di databaseè necessario configurare il database tenendo conto della possibilità di controllare i dati per il rispetto di determinate regole. Molti DBMS, come Microsoft Access, applicano automaticamente alcune di queste regole.

La regola di integrità afferma che la chiave primaria non può mai essere NULL. Se la chiave ha più colonne, nessuna di esse può essere NULL. In caso contrario, potrebbe identificare in modo ambiguo il record.

La regola di integrità del collegamento richiede che ogni chiave esterna elencata in una tabella sia mappata a una chiave primaria nella tabella a cui fa riferimento. Se la chiave primaria viene modificata o eliminata, tali modifiche devono essere implementate in tutti gli oggetti a cui fa riferimento questa chiave nel database.

Le regole di integrità della logica aziendale assicurano che i dati siano conformi a determinati parametri logici. Ad esempio, gli orari delle riunioni devono rientrare nell'orario lavorativo standard.

Aggiunta di indici e viste

Un indice è una copia ordinata di una o più colonne con valori in ordine crescente o decrescente. L'aggiunta di un indice consente di trovare i record più velocemente. Invece di riordinare per ogni query, il sistema può accedere ai record nell'ordine indicato dall'indice.

Sebbene gli indici velocizzino il recupero dei dati, possono rallentare l'aggiunta, l'aggiornamento e l'eliminazione dei dati perché l'indice deve essere ricostruito ogni volta che un record cambia.

Una vista è una richiesta di dati salvata. Le viste possono includere dati da più tabelle o visualizzare una parte di una tabella.

Proprietà estese

Dopo progettazione del modello di database Puoi perfezionare il database con proprietà avanzate come testo della guida, maschere di input e regole di formattazione che si applicano a uno schema, una vista o una colonna specifici. Il vantaggio di questo metodo è che, poiché queste regole sono memorizzate nel database stesso, la presentazione dei dati sarà coerente tra i molteplici programmi che accedono ai dati.

SQL e UML

Linguaggio di modellazione unificato ( UML) È un altro modo visivo di esprimere sistemi complessi costruiti in un linguaggio orientato agli oggetti. Alcuni dei concetti menzionati in questo tutorial sono conosciuti con nomi diversi in UML. Ad esempio, un oggetto in UML è noto come classe.

UML non è usato molto spesso ora. Oggi è applicato accademicamente e nella comunicazione tra gli sviluppatori di software e i loro clienti.

Buono cattivo

LA CAMPANA

C'è chi ha letto questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere La Campana?
Niente spam