Il mio primo Database: Libreria in SQL

Quest’oggi voglio condividere con voi la mia primissima esperienza con un linguaggio a me sconosciuto fino a poco tempo fa. Sto parlando del linguaggio SQL.

Il linguaggio non è affatto complicato ma lo sono la logica e i meccanismi per evitare le rindondanze!

Le rindondanze non sono altro che le ripetizioni INUTILI di dati in un database.

Ma basta con le parole, passiamo ai fatti.

 

Database in localhost: LIBRI
Software: PostgreSQL

 

Per creare questo semplice database, ho pensato a una logica molto semplice che mi consente di collegare tra di loro tutte le tabelle senza ripetizioni di dati!
Sono ben tre tabelle chiamate rispettivamente: Casa Editrice, Autore, Titolo.
Di seguito il codice.

 

Casa Editrice:

CREATE TABLE casa_editrice
(
id integer NOT NULL,
casa_editrice character varying(200) NOT NULL,
CONSTRAINT casa_editrice_pkey PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);
ALTER TABLE casa_editrice
OWNER TO Cr1sS;

Autore:

CREATE TABLE autore
(
id integer NOT NULL,
id_casa_editrice integer NOT NULL,
autore character varying(200) NOT NULL,
CONSTRAINT autore_pkey PRIMARY KEY (id )
)
WITH (
OIDS=FALSE
);
ALTER TABLE autore
OWNER TO Cr1sS;

Titolo:

CREATE TABLE titolo
(
id integer NOT NULL,
id_autore integer NOT NULL,
titolo character varying(200),
CONSTRAINT titolo_pkey PRIMARY KEY (id )
)
WITH (
OIDS=FALSE
);
ALTER TABLE titolo
OWNER TO Cr1sS;

Questi codici mi hanno permesso di creare le tabelle e allo stesso tempo di collegarle tra di loro.
Infatti, se prestate particolare attenzione sulla parola riservata CONSTRAINT, si può ben capire che le varie tabelle sono collegate in questo seguente modo:

Una casa editrice può avere più autori, come gli autori possono aver pubblicato diversi libri.

Se la casa editrice cambia, ogni autore avrà sempre e comunque scritto quei libri.

Rindondanze evitate.

 

Spero di essere stato utile in qualche modo!

Al prossimo articolo.

 

Cr1sS