Mysql
 sql >> Database >  >> RDS >> Mysql

Che cos'è MySQL:una panoramica

Molti programmi devono salvare o memorizzare dati per un uso successivo e leggere i dati registrati. Sebbene ci siano molti modi per farlo, l'approccio più comune consiste nell'usare un Sistema di gestione del database relazionale (RDBMS). MySQL è un RDBMS open source standard del settore che è stato ampiamente adottato da progetti di sviluppo software. Questa guida fornisce una panoramica di MySQL e spiega i concetti principali di RDBMS.

Cos'è un database relazionale (RDBMS)?

Un database è un'applicazione per la memorizzazione e il recupero di dati. Sebbene i meccanismi differiscano, la maggior parte dei database fornisce un'API che consente agli utenti di aggiungere, eliminare, accedere, cercare e gestire i propri dati. In alternativa all'utilizzo di un database, i dati possono essere archiviati in file di testo o tabelle hash. Tuttavia, questa tecnica non è veloce o conveniente come l'utilizzo di un database ed è usata raramente nei sistemi moderni.

Le prime applicazioni di database si sono evolute nel moderno database relazionale , che consente agli utenti di archiviare enormi quantità di dati. Un RDBMS non obbliga più gli utenti a memorizzare i dati in una grande tabella. Fornisce modalità più strutturate per partizionare i dati ed è progettato per un accesso più efficiente. Le applicazioni RDBMS sono ottimizzate per letture e scritture veloci e per il trasferimento di massa delle informazioni.

I progettisti di database concettualizzare e organizzare i dati in termini di tabelle , colonne e righe . Una riga viene anche definita record , o tupla. I database relazionali contemporanei strutturano i dati utilizzando i seguenti concetti:

  • Ogni database contiene una o più tabelle.
  • Quando l'utente crea una tabella, specifica contemporaneamente le colonne all'interno della tabella.
  • Ogni colonna rappresenta un attributo o un campo specifico all'interno del record. Una colonna è progettata per contenere dati di un particolare tipo di dati, ad esempio VARCHAR , che sta per una stringa di lunghezza variabile.
  • Una tabella contiene un cluster di righe.
  • Ogni riga all'interno di una tabella rappresenta una voce di database univoca. Ogni colonna all'interno della riga contiene un singolo campo in quella voce.
  • Una tabella di database è come una matrice due per due. Ogni quadrato all'interno della matrice contiene un dato.

Un RDBMS è considerato relazionale perché consente agli utenti di definire relazioni all'interno e tra le varie tabelle utilizzando chiavi e indici. Un database relazionale consente a un utente di fornire o generare una chiave primaria per ogni riga. SQL può garantire che questa chiave sia univoca all'interno della tabella. I campi in queste tabelle potrebbero essere correlati tra loro in base alle chiavi primarie ed esterne. Queste relazioni aiutano a strutturare e organizzare il database e limitano la quantità di duplicazione dei dati.

Un'applicazione RDBMS fornisce sempre le funzionalità elencate di seguito. Le singole applicazioni potrebbero offrire più opzioni.

  • Consente la creazione, definizione, modifica e rimozione di tabelle, colonne, righe, chiavi primarie e indici del database.
  • Accetta query SQL e archivia o recupera i dati rilevanti, combinando le informazioni da diverse tabelle di database secondo necessità.
  • Garantisce l'integrità dei dati e dei riferimenti tra le tabelle. Ad esempio, una chiave esterna punta sempre a una riga valida in un'altra tabella.
  • Aggiorna automaticamente indici, timestamp e altri attributi generati internamente come richiesto.

I database relazionali utilizzano il Linguaggio di query strutturato (SQL) per interrogare e aggiornare il database. Ad esempio, un client RDBMS utilizza l'SQL INSERT comando per aggiungere una nuova riga a una delle tabelle del database. Quando un utente aggiunge una nuova riga, specifica contemporaneamente un valore per ciascuna colonna. Ulteriori comandi SQL vengono utilizzati per modificare ed eliminare righe, gestire elementi del database e recuperare un elenco di record che soddisfano criteri specifici.

Si consideri ad esempio un database per una scuola. Questo database ha diverse tabelle, per insegnanti, studenti, corsi, aule e così via. La definizione degli Students la tabella potrebbe contenere colonne per nome e cognome, ID, voto, famiglia e altro dello studente. Ogni riga in questa tabella simboleggia un singolo studente e serve a rappresentare e raccogliere tutte le informazioni rilevanti su quello studente. Se il nome dello studente è "John", il first_name la colonna in questa riga contiene John . L'ID studente può fungere da indice e chiave primaria e può essere utilizzato per fare un riferimento incrociato allo studente in altre tabelle.

Ad esempio, un Students semplificato tabella può essere definita utilizzando la struttura mostrata di seguito. La riga superiore rappresenta i nomi delle colonne nella tabella. La tabella seguente ha attualmente due righe di dati, una per ogni studente.

first_name cognome voto id_famiglia ID_studente
Giovanni Doe 4 1116 5005
Jane Studente 5 1224 5350

Quali sono alcuni termini comuni RDBMS?

I seguenti termini sono usati frequentemente in relazione ai database:

  • Colonna: Un insieme di valori dello stesso tipo di dati, che rappresentano un attributo all'interno di una tabella. Le colonne vengono definite quando viene creata una tabella.
  • Chiave composta: Una chiave composta da più colonne. Una chiave composta viene utilizzata quando una singola colonna non è in grado di identificare in modo affidabile una riga.
  • Banca dati: Un gruppo organizzato di dati che viene archiviato elettronicamente. Un database è solitamente organizzato in gruppi di informazioni più piccoli.
  • Chiave straniera: Un indice utilizzato per collegare in modo incrociato una voce di tabella a una riga in un'altra tabella.
  • Indice: Un metodo per accedere più rapidamente alle voci del database. Un indice può essere creato utilizzando qualsiasi combinazione di attributi, ma l'implementazione è specifica dell'applicazione. Un indice di database è simile a un indice in un libro.
  • Chiave primaria: Colonna che funge da indice per identificare in modo univoco una riga all'interno di una tabella. Una chiave primaria può essere generata automaticamente o definita nella definizione della tabella. Una chiave primaria può essere utilizzata per individuare una riga specifica all'interno di una tabella.
  • Integrità referenziale: Una proprietà di database interna per garantire che una chiave esterna faccia sempre riferimento a una riga valida in un'altra tabella.
  • Sistema di gestione del database relazionale (RDBMS): Un tipo di sistema di database basato sulle relazioni tra tabelle e voci.
  • Riga: Una voce strutturata all'interno di una tabella costituita da un insieme di dati correlati. Ogni riga di una tabella ha la stessa struttura, che corrisponde alle specifiche della colonna nella definizione della tabella. Una riga viene anche definita record o tupla.
  • Linguaggio di query strutturato (SQL): Un linguaggio di programmazione specifico del dominio semplificato utilizzato per gestire i dati in un RDBMS.
  • Tabella: Una raccolta di record di database, costituita da una serie di righe e colonne. Una tabella può essere pensata come una matrice di informazioni a due dimensioni.

SQL e MySQL

I termini SQL e MySQL sono spesso confusi o usati in modo intercambiabile, ma non sono la stessa cosa. SQL è il linguaggio di programmazione standard per interrogare le applicazioni RDBMS. Viene utilizzato per scrivere query di database e può essere utilizzato con qualsiasi sistema di database che lo supporti. MySQL è un'istanza specifica di un RDBMS che utilizza SQL. Gli utenti del database inviano comandi SQL a un RDBMS come MySQL per leggere e scrivere dati e per amministrare il database. Non esiste un'applicazione denominata SQL, quindi non ha senso fare un confronto "SQL vs MySQL". Tuttavia, il termine database SQL è spesso usato in modo informale come termine abbreviato per qualsiasi database relazionale.

Il linguaggio SQL

Il linguaggio SQL è specificato come una serie di istruzioni. Non è considerato un linguaggio di programmazione imperativo generico come Python, perché manca di una gamma completa di strutture dati e istruzioni di controllo. È invece un linguaggio specifico del dominio destinato a un unico scopo. SQL è progettato per l'interrogazione, la definizione e la manipolazione dei dati. È inoltre progettato per fornire il controllo dell'accesso ai dati. Un vantaggio di SQL è che può accedere a più record utilizzando un solo comando. Non specifica come il database deve accedere a una voce.

Il linguaggio SQL è costituito da parole chiave designate, espressioni, query, istruzioni, operatori e clausole facoltative. Gli identificatori di oggetto vengono utilizzati per fare riferimento a entità di database, incluse tabelle e colonne. SQL supporta un gran numero di tipi di dati predefiniti, come CHAR , per il carattere e INTEGER . Alcuni degli operatori SQL più importanti includono = , <> , > , < , IN , LIKE , TRUE , FALSE e NOT . Le versioni recenti di SQL ora supportano un semplice CASE dichiarazione. La documentazione MySQL contiene ulteriori informazioni sulla struttura del linguaggio SQL, i tipi di dati e le istruzioni.

Alcune delle istruzioni e clausole SQL più utilizzate includono quanto segue:

  • ALTER: Modifica la struttura di un oggetto database.
  • CREA: Crea un oggetto database, come una tabella o un database.
  • ELIMINA: Rimuove una o più righe esistenti dal database.
  • DROP: Elimina definitivamente un oggetto dal database.
  • DA: Indica quale tabella utilizzare per la query.
  • CONCESSIONE: Autorizza un utente del database a eseguire un'azione particolare.
  • GRUPPO PER: Una clausola per organizzare l'output da un SELECT dichiarazione.
  • INSERIRE: Aggiunge righe al database.
  • ISCRIVITI: Una clausola che specifica come combinare e assemblare dati da più tabelle.
  • UNISCI: Combina i dati di più tabelle.
  • ORDINA PER: Una clausola per ordinare l'output da una query.
  • SELEZIONA: Recupera i dati da una o più tabelle. Questo comando non altera il database né cambia alcun dato.
  • AGGIORNAMENTO: Modifica una o più righe esistenti.
  • DOVE: Una clausola per identificare le righe su cui deve operare una query. Viene in genere utilizzato con un operatore di confronto.

Il carattere jolly * L'operatore è spesso usato insieme a SELECT comando. Questo comando indica a SQL di visualizzare tutte le colonne nell'output.

Di seguito sono riportati un paio di esempi di query SQL. Il seguente comando SQL visualizza il name di ogni classe nella Class database per ogni riga in cui il valore del subject la colonna è math .

SELECT name
    FROM Class
    WHERE subject='math';

L'istruzione SQL successiva crea la Class tavolo. Il CREATE L'istruzione definisce ogni colonna della tabella, insieme al relativo tipo di dati, in ordine sequenziale. Il VARCHAR il tipo di dati viene utilizzato per contenere una stringa di lunghezza variabile. Il SMALLINT il tipo di dati viene utilizzato per valori interi piccoli nell'intervallo con segno di -32768 a 32767 .

CREATE TABLE Class (
    classID smallint,
    name varchar(255),
    subject varchar(255),
    level smallint
);

Cos'è il database MySQL?

MySQL è un RDBMS che implementa SQL. È stato originariamente progettato per l'uso con database di piccole e medie dimensioni, ma ora può gestire anche quantità molto grandi di dati archiviati. MySQL è scritto in C/C++ ed è per lo più conforme allo standard SQL. Tuttavia, aggiunge molte estensioni e sottolinea la velocità e l'affidabilità rispetto alla perfetta conformità. Una discussione più dettagliata sulla conformità a MySQL e SQL può essere trovata nella documentazione di MySQL sugli standard di conformità.

La versione base di MySQL è distribuita da Oracle Corporation ed è disponibile gratuitamente con una licenza open source. L'attuale versione di MySQL è la 8.0. MySQL può essere utilizzato su qualsiasi distribuzione Linux e sulla maggior parte delle altre piattaforme. È un componente importante dello stack LAMP open source , insieme a Linux, Apache e il linguaggio di programmazione PHP. Lo stack LAMP è la pietra angolare dello sviluppo di applicazioni Web open source su Linux. MySQL può essere utilizzato come parte di un sistema client/server o come parte di un sistema embedded.

Come tutte le applicazioni RDBMS, MySQL è un database relazionale. Gli amministratori e gli utenti definiscono le relazioni all'interno e tra le tabelle nel database. Colonne diverse possono essere contrassegnate come obbligatorie o facoltative e possono fungere da chiave primaria o da puntatore a un'altra tabella. MySQL è stabile, affidabile e facile da usare. Ecco alcuni vantaggi specifici di MySQL:

  • MySQL è un prodotto maturo, popolare e consolidato. Ha più supporto da parte della comunità rispetto ad altri database open source e materiale di riferimento e documentazione migliori.
  • MySQL può essere configurato per essere compatibile con ACID se utilizzato con il sistema di archiviazione InnoDB. L'acronimo ACID sta per Atomicity, Consistency, Isolation, and Durability. Ciò significa che può garantire la validità dei dati nonostante eventuali errori, guasti o interruzioni.
  • È noto per le sue elevate prestazioni, grazie a funzionalità come librerie di classi ottimizzate, compressione, allocazione di memoria e tabelle hash. Supporta i thread del kernel multi-thread per un funzionamento più efficiente su sistemi con più CPU.
  • Supporta database molto grandi, archiviando fino a centinaia di milioni di record e fino a 64 indici per tabella.
  • MySQL fornisce meccanismi di sicurezza avanzati, inclusa la crittografia di tutte le password.
  • Consente la replica e la ridondanza dei dati per una maggiore affidabilità.
  • MySQL fornisce supporto per alias su tabelle e colonne e supporto completo per molti set di caratteri diversi.
  • MySQL funziona bene con PHP, ampiamente utilizzato nello sviluppo web.
  • Funziona con molti compilatori differenti e su molte piattaforme differenti, ed è progettato per essere trasportabile tra i sistemi. I programmi client possono essere scritti in molte lingue. MySQL fornisce API per C/C++, PHP, Java, Python, Ruby e Perl.
  • MySQL è disponibile come libreria che può essere incorporata in applicazioni autonome.
  • MySQL è incluso in diverse comode utilità client, tra cui mysqldump e mysqladmin . Gli utenti possono verificare, ottimizzare e riparare le tabelle utilizzando mysqlcheck programma.
  • La licenza open source MySQL consente agli sviluppatori di personalizzare MySQL e modificare il codice sorgente per soddisfare i propri requisiti.

MySQL è disponibile anche in una Enterprise Edition più completa, con assistenza clienti completa. Per informazioni sull'installazione di MySQL su Ubuntu o altre piattaforme Linux, consulta la guida Linode suInstallazione e configurazione di MySQL su Ubuntu 20.04.

SQL e NoSQL

I sistemi NoSQL sono un'alternativa alle tradizionali applicazioni RDBMS basate su SQL. Come suggerisce il nome, usano un modello non relazionale per gestire i dati. In genere sono meno strutturati e più flessibili di un RDBMS. I sistemi NoSQL non sono standardizzati e possono assumere una varietà di formati. Tuttavia, sono in genere basati su valori-chiave, grafici o basati su documenti, non su tabelle. Alcune applicazioni NoSQL possono utilizzare linguaggi strutturati specifici del dominio o persino accettare query SQL in parallelo. Alcuni esempi di applicazioni NoSQL includono Redis e MongoDB. Per ulteriori informazioni sui sistemi NoSQL, consultare la guida Linode per un confronto tra database SQL e NoSQL.

Cosa sono il client e il server MySQL?

Il client MySQL e il server MySQL sono due componenti diversi che lavorano insieme in un'architettura di rete. Di solito c'è un server centrale e uno o più client. L'applicazione del server di database MySQL è installata su un host, spesso come parte dello stack LAMP. Questo server archivia la configurazione e i dati del database e risponde alle query dei client. Inoltre, rafforza la sicurezza e qualsiasi sistema di controllo degli accessi e replica e archivia i dati come richiesto. Lo stesso server può ospitare più database per client diversi.

Il client MySQL consente agli utenti di connettersi con un server MySQL, sullo stesso sistema o su un host diverso. Il client invia query SQL al server per leggere o scrivere in un database. Il client MySQL amministra, mantiene e protegge anche il client. Un client autonomo è consigliato per gli utenti che desiderano connettersi solo a un database remoto per eseguire query. Gli amministratori che desiderano ospitare un database sul server devono installare il pacchetto completo del server MySQL. L'installazione del server include un client per creare e amministrare il database.

L'utilità client standard della riga di comando MySQL è denominata mysql . Può essere installato senza il componente server usando il comando yum install mysql o apt-get install mysql-client . Per accedere al client MySQL, utilizzare il comando mysql <database_name> . Il nome utente, la password e l'indirizzo IP del server possono essere specificati utilizzando parametri aggiuntivi.

Quando l'utente accede correttamente, il client visualizza il prompt MySQL mysql> . L'utente può quindi eseguire comandi SQL. Per ulteriori informazioni sull'installazione e l'utilizzo di MySQL, consulta la guida Linode su Come connettersi a un database MySQL o MariaDB.

A cosa serve MySQL?

MySQL è un RDBMS versatile da utilizzare con un set di dati di qualsiasi dimensione. Può essere considerato ogni volta che un'applicazione deve archiviare e recuperare dati. MySQL è stato originariamente sviluppato per configurazioni a server singolo di piccole e medie dimensioni. Ma con i recenti miglioramenti delle prestazioni e della scalabilità, può essere utilizzato praticamente ovunque in un'applicazione di qualsiasi dimensione. Anche le grandi aziende, tra cui Uber, Airbnb e Shopify, utilizzano MySQL.

Gli utenti devono installare MySQL per configurare WordPress. WordPress utilizza MySQL per archiviare tutti i suoi dati e file di configurazione e interagisce dinamicamente con MySQL per visualizzare e creare pagine Web. Gli utenti non devono necessariamente comprendere SQL per utilizzare WordPress. Tuttavia, può tornare utile quando si eseguono personalizzazioni avanzate. Su Linux, WordPress è spesso installato come pacchetto insieme a MySQL e al resto dello stack LAMP. Per maggiori informazioni su come configurare MySQL e WordPress, consulta la guida Linode sull'installazione di WordPress su Ubuntu 20.04.

Altre applicazioni comuni per MySQL includono data warehousing, elaborazione delle transazioni, sistemi di prenotazione, e-commerce e database web. Ad esempio, un database MySQL può mantenere l'elenco dei prodotti e l'inventario per un negozio online.

Conclusione

Questa guida risponde alla domanda più frequente:"Cos'è un database MySQL?" MySQL è un database relazionale che organizza i dati in base alle relazioni tra tabelle e campi. È un tipo di Relational DataBase Management System (RDBMS), che memorizza le voci come righe all'interno delle tabelle. Ogni riga è composta da un numero di colonne, che rappresentano i diversi attributi del record di dati. Il linguaggio di programmazione SQL specifico del database viene utilizzato per archiviare e recuperare dati da MySQL. SQL utilizza una serie di istruzioni discrete ed è progettato per funzionare con i sistemi RDBMS.

MySQL è noto per la sua capacità di archiviare tabelle di grandi dimensioni e grandi quantità di dati, nonché per la sua velocità e affidabilità. Fornisce API per molti linguaggi di programmazione comuni ed è confezionato con diverse utili utilità. Il server MySQL memorizza i dati e la risposta alle richieste dei client MySQL. Il client è sempre incluso in un pacchetto con il server, ma può essere utilizzato come applicazione autonoma per comunicare con database remoti. MySQL è utilizzato in molte aziende molto note ed è essenziale per coloro che vogliono utilizzare WordPress. Tuttavia, viene utilizzato anche nei database Web e nel data warehousing. Per ulteriori informazioni su MySQL, vedere la documentazione di MySQL.

Maggiori informazioni

Si consiglia di consultare le seguenti risorse per ulteriori informazioni su questo argomento. Sebbene questi siano forniti nella speranza che possano essere utili, tieni presente che non possiamo garantire l'accuratezza o la tempestività dei materiali ospitati esternamente.

  • Documentazione ufficiale di MySQL