I.I.S.S. Alessandro Volta - Palermo
0 voti
Una volta elencati tutti i possibili vincoli intra e interrelazionali, come li traduco in sintassi sql
quesito posto 3 Dicembre 2014 in Classe quinta da Gianni Messina Esperto (695 punti)
  

8 Risposte

+1 voto
I vincoli intrarelazionali coinvolgono attributi della stessa relazione ,si dividono in :
 
  • Chiave primaria che utilizza il vincolo primary key per identificare univocamente le righe della tabella ove essa è definita 
         es
         create table dipendente
        (
           cf               char(16) primary key, 
           nome             varchar(20), 
           cognome          varchar(20), 
        ) 
 
  • Chiave candidata che utilizza il vincolo unique in modo analogo alla chiave primaria con la particolarità che gli attributi coinvolti possono assumere il valore nullo
           es
           create table dipendente
          (
            cf               char(16) primary key, 
            nome             varchar(20), 
            cognome          varchar(20),
            unique (nome, cognome) 
          ) 
 
  • Vincolo di tupla è un vincolo che può essere valutato su ciascuna tupla indipendentemente dalle altre. In SQL un attributo (non facente parte della chiave primaria) è opzionale, cioè può assumere valori nulli. Per rendere obbligatorio un attributo, cioè per fare in modo che il suo valore sia sempre diverso da NULL, si usa il vincolo not null da usare come nel seguente esempio:
            nome   varchar(20) not null 
 
I vincoli Interrelazionali coinvolgono più relazioni e sono:
 
  • Chiave esterna che utilizza il vincolo foreign key per coinvolgere due tabelle. La tabella che contiene la chiave esterna è detta secondaria (slave), mentre la tabella a cui fa riferimento la chiave esterna è detta principale (master).
 
           create table stadio
          (
            nome             varchar(20) primary key, 
            indirizzo        varchar(40) not null,  
            email            varchar(20) unique
           ) 
 
           create table biglietteria
          (
            nome             varchar(20) primary key, 
            indirizzo        varchar(40) not null,
           teatro           varchar(20) foreign key references stadio(nome)
          ) 
 
  •  References che permette di specificare vincoli di colonna
 
risposta inviata 3 Dicembre 2014 da Michele La Rosa Corsista (95 punti)
+1 voto
Un vincolo di integrità dei dati è una condizione  (proprietà) sotto forma di predicato logico che deve essere soddisfatta dalle istanze di una base di dati.
ogni istanza deve soddisfare il vincolo o i vincoli per essere corretta (ammissibile o lecita).
 
Esistono due tipologie di vincoli: quelli intrarelazionali e quelli interrelazionali ;i primi interessano una sola tabella , i secondi definiscono legami tra due o più tabelle.
 

1) Dei vincoli intrarelazionali fanno parte :,

-la chiave primaria
-chiave univoca
-vincoli di tupla 
 
  • Chiave primaria
Una chiave primaria (primary key) serve a identificare univocamente le righe della tabella ove essa è definita. Può essere specificato una sola volta per tabella, dichiarando uno o più attributi o campi dato come chiave primaria. Due righe distinte non possono avere lo stesso valore sui campi scelti come primary key.
 
  • Chiave univoca
Una chiave univoca (unique key) implementa una caratteristica simile alla chiave primaria, con la particolarità che gli attributi coinvolti possono assumere il valore nullo.
 
  • Vincoli di tupla
Un vincolo di tupla è un vincolo che può essere valutato su ciascuna tupla (riga) indipendentemente dalle altre.
 

2) Dei vincoli interrelazionali fanno parte :

-chiave esterna
-integrità referenziale 
 
  • Chiave esterna 
Nel contesto dei database relazionali, una chiave esterna (foreign key) è un vincolo di integrità referenziale tra due o più tabelle. Essa identifica una o più colonne di una tabella (referenziante) che referenzia una o più colonne di un'altra tabella (referenziata).
 
  • Integrità referenziale 
l'integrità referenziale è un vincolo di integrità che richiede che ogni valore di un attributo (colonna) di una relazione (tabella) esista come valore di un altro attributo in un'altra (o nella stessa) relazione.
 
risposta inviata 3 Dicembre 2014 da Giuseppe Frangipane Corsista (110 punti)
0 voti

I Vincoli  sono dei controlli specifici che vengono implementati in una o più colonne di una tabella

I vincoli da noi osservati sono quelli di integrità cioè vincoli che definiscono una proprietà che deve essere soddisfatta dalla istanza della base di dati ogni vincolo quindi rappresenta una funzione booleana che associa ad ogni istanza il valore vero o falso. Se viene assunto il valore vero allora l'istanza soddisfa il vincolo viceversa se assume valore falso non la soddisferà. Ci sono due tipi di vincoli di integrità :

  • Intrarelazionali ;
  • interrelazionali .

I vincoli di integrità intrarelazionali operano sugli attributi di una tabella essi sono :

  • Di chiave primaria : cioè definire una primary key con valore not null;
  • Unique :  definisce una riga in modo univoco in modo tale da evitare ridondanze quindi non esisteranno due righe con gli stessi valori degli attributi ;
  • Not null : vieta la presenza di valori nulli ;
  • Check : vincolo di controllo per verificare delle particolari condizioni ;

es. 

CREATE TABLE alunno 
(
Id_alunno int NOT NULL,
Nome varchar(25) ,
Cognome varchar(25),
Codice fiscale varchar (16) unique,
Voto int Check ( voto>0 and voto <10),
PRIMARY KEY (Id_alunno)
)
 
I vincoli di integrità interrelazionali permettono di definire vincoli di integrità referenziale ,inoltre creano un legame tra i valori degli attributi di due tabelle 
 
  •  REFERENCES permette di specificare vincoli di colonna ;
  •  FOREIGN KEY vincolo di chiave esterna.
Es. 
 
CREATE TABLE Esami(
Matricola char(10),
Corso char(20) ,
 
PRIMARY KEY (Corso, Matricola),
FOREIGN KEY (Matricola) REFERENCES alunno(Matricola) )

 

risposta inviata 3 Dicembre 2014 da Marco Zaccaria Corsista (149 punti)
modificato 3 Dicembre 2014 da Marco Zaccaria
0 voti

 Nell' ambito del modello entità/relazione i VINCOLI in SQL si distinguono in:

- Intrarelazionali: riguardano attributi della stessa relazione di cui fanno parte:

- Vincoli di tupla: riguardano le tuple, ciascuna indipendentemente dall'altra;
- Vincoli di dominio: riguardano i singoli valori;
 
- Interrelazionali: riguardano più relazioni;
 
- Vincoli di integrità: riguardano la condizione specifica per ogni istanza dello schema e a loro volta si distinguono in:
Vincoli di cardinalità sulle relazioni: riguardano il numero massimo e il numero minimo di relazioni dello stesso tipo possibili tra più entità.
 
Per esprimere questo numero si usano tre simboli:
0 - indica che la relazione è del tutto opzionale;
1 - indica che la relazione deve esserci ed è dunque obbligatoria;
N - indica che non ci sono limiti al numero di relazioni possibili tra le entità descritte;
In base a questo sistema le relazione si distinguono in:
1:1 cioè uno-a-uno;
1:N cioè uno-a-molti;
N:N cioè molti-a-molti;
 
- Vincoli di cardinalità sugli attributi: riguardano la natura del valore che può assumere un attributo.
In base ad essa gli attributi si distinguono in:
Opzionale: se la cardinalità minima è 0;
Monovalore: se la cardinalità massima è 1;
Multivalore: svela cardinalità massima è N;
 
 
risposta inviata 3 Dicembre 2014 da Daniele Ciambra Corsista (71 punti)
modificato 3 Dicembre 2014 da Daniele Ciambra
0 voti
In generale i  Vincoli  sono dei controlli specifici che vengono implementati in una o più colonne di una tabella.
I vincoli intra-relazionali coinvolgono una o più tuple di una singola relazione operano quindi sugli attributi di una tabella essi sono:
 
Nel caso in cui il vincolo coinvolge una singolo valore  di una singola tupla si parla di:
-vincolo di dominio= ė il vincolo di base infatti va specificato per ogni attributo.
-vincolo NOT null = viene inserito all interno delle tuple o righe.
Il vincolo potrebbe coinvolgere più valori  di una singola tupla  come ad esempio:
ESAMI(STUDENTE,MATERIA,DATA,VOTO,LODE) la LODE può essere assegnata solo se il VOTO è 30
 
Nel caso in cui il vincolo coinvolge più tuple  di una singola relazione si parla di :
-vincoli di chiave =vengono specificate le chiavi candidate( chiave primaria ,chiave univoca, super chiave)
 
I vincoli inter-relazionali coinvolgono tuple appartenenti a relazioni diverse.
Esistono due tipi di vincoli inter-relazionali :
-vincolo di integrità referenziale , genera dei legami tra i valori dell'attributo di una tabella e i valori dell'attributo di un'altra tabella. REFERENCES specifica i vincoli di colonna e FOREIGN  KEY specifica i vincoli di riga.
-vincolo di tupla=I vincoli di tupla esprimono condizioni che devono essere soddisfatte da ciascuna tupla.
Esempio
Esami(Matricola, Corso,Voto, Lode)
Il Voto deve essere compreso tra 18 e 30:
(Voto ≥ 18) AND (Voto ≤ 30)
 
risposta inviata 3 Dicembre 2014 da Roberto Pastiglia Corsista (127 punti)
modificato 3 Dicembre 2014 da Roberto Pastiglia
0 voti
I vincoli intra-relazionali  sono regole che descrive la struttura dei dati all'interno della tabella. 
 
Si distinguono in: Vincoli di tupla (ad esempio NULL), chiave primaria(PRIMARY KEY), chiave univoca (UNIQUE). 
 
Gli attributi coinvolti nella chiave univoca posso essere NULL.
 
Si parla di vincoli inter-relazionali quando un attributo di una tabella, assume un valore specificato in un altro attributo di un'altra tabella, creando una relazione tra le due tabelle.
 
Si distinguono in :  References (specifica i vincoli di colonna),  Foreign Key (chiave esterna).
 
VARI ESEMPI 
 
 
esempio PRIMARY KEY
CREATE TABLE alunni (id_alunni int NULL, nome Varchar(30), cognome Varchar (30)  PRIMARY KEY (id_alunni)) ;
 
Esempio UNIQUE
CREATE TABLE alunni (id_alunni int NULL, nome Varchar(30), cognome Varchar (30) numero-matricola Int(5)  UNIQUE(numero-matricola)) ;
 
Esempio  Foreign Key, References
 
CREATE TABLE valutazione (id_valutazione int NULL, voto int(2), id_alunni FOREIGN KEY (id_alunni) REFERENCES(nome));
 
 
 
risposta inviata 3 Dicembre 2014 da Marco Scarpaci Corsista (94 punti)
modificato 3 Dicembre 2014 da Marco Scarpaci
0 voti
I vincoli intra-relazionali  operano sugli attributi della relazione e sono la chiave primaria primary key,la chiave unica unique key e i vincoli di tuple not  null.
 
I vincoli inter-relazionali permettono di definire vincoli di integrità relazionale e permettono di creare un legame tra l'attributo di una tabella e quello di un altra tabella e sono i vincoli di colonna references e la chiave esterna forgeign key.
 
esempio intra-relazionali:
 
CREATE TABLE Studenti(Matricola  char(10),CodiceFiscale varchar(16) UNIQUE,Nome var char(20) NOT NULL,Cognome varchar(20) NOT NULL,
 PRIMARY KEY (Matricola))
 
esempio vincoli inter-relazionali:
 
CRECREATE TABLE Verifica( Matricola char(10), Corsi char(20) UNIQUE, Voto integer,
PRIMARY KEY (Corsi, Matricola),
FOREIGN KEY (Matricola) REFERENCES Studenti (Matricola) )
 
 
risposta inviata 3 Dicembre 2014 da Giovanni Mattaliano Corsista (74 punti)
–1 voto
I vincoli intra-relazionali operano sugli attributi delle relazioni e sono la chiave primaria (PRIMARY KEY) , la chiave univoca (UNIQUE KEY), e i vincoli che si inseriscono all'interno delle tuple (righe)  come, ad esempio, NOT NULL.

I vincoli inter-relazionali creano un legame tra i valori dell'attributo di una tabella e i valori dell'attributo di un'altra tabella e sono i vincoli di colonna (REFERENCES) e i vincoli di chiave esterna (FOREIGN KEY).

In sintassi SQL i seguenti vincoli vengono tradotti così:

VINCOLI INTRA-RELAZIONALI

- Chiave primaria:

CREATE TABLE cliente (id_cliente PRIMARY KEY, nome_cliente VARCHAR(30), cognome_cliente VARCHAR(50) );

- Chiave univoca e vincolo NOT NULL:

CREATE TABLE persona (id_persona NOT NULL, nome VARCHAR(30), cognome VARCHAR(50) UNIQUE (id_persona) ) ;
 

VINCOLI INTER-RELAZIONALI

- Vincolo di colonna (REFERENCES) e vincoli di chiave esterna (FOREIGN KEY):

CREATE TABLE Giocatori (id_giocatori NULL, cognome VARCHAR(30), nmaglia INT, PRIMARY KEY (id_giocatori) FOREIGN KEY (id_squadra) REFERENCES (id_squadra);
risposta inviata 3 Dicembre 2014 da Roberto De Rosalia Corsista (124 punti)
modificato 3 Dicembre 2014 da Roberto De Rosalia

Domande correlate

0 voti
8 risposte
quesito posto 3 Dicembre 2014 in Classe quinta da Gianni Messina Esperto (695 punti) | 439 visite
0 voti
8 risposte
quesito posto 3 Dicembre 2014 in Classe quinta da Gianni Messina Esperto (695 punti) | 75 visite
+3 voti
1 risposta
quesito posto 12 Novembre 2014 in Classe quinta da Marco Scarpaci Corsista (94 punti) | 123 visite
684 domande
1,334 risposte
631 commenti
2,192 utenti