Prerequisito: Modello relazionale nei DBMS
L'algebra relazionale è un linguaggio di query procedurale. L'algebra relazionale fornisce principalmente una base teorica per i database relazionali e SQL . Lo scopo principale dell'utilizzo dell'Algebra Relazionale è definire operatori che trasformano una o più relazioni di input in una relazione di output. Dato che questi operatori accettano relazioni come input e producono relazioni come output, possono essere combinati e utilizzati per esprimere query potenzialmente complesse che trasformano potenzialmente molte relazioni di input (i cui dati sono archiviati nel database) in un'unica relazione di output (i risultati della query). . Poiché si tratta di matematica pura, nell'algebra relazionale non vengono utilizzate parole chiave inglesi e gli operatori sono rappresentati utilizzando simboli.
Operatori fondamentali
Questi sono gli operatori di base/fondamentali utilizzati nell'algebra relazionale.
- Selezione(σ)
- Proiezione(π)
- Unione (U)
- Imposta differenza(-)
- Imposta intersezione(∩)
- Rinomina(ρ)
- Prodotto cartesiano(X)
1. Selezione(σ): Viene utilizzato per selezionare le tuple richieste delle relazioni.
Esempio:
UN | B | C |
---|---|---|
1 | 2 | 4 |
2 | 2 | 3 |
3 | 2 | 3 |
4 | 3 | 4 |
Per la relazione di cui sopra, σ(c>3)R selezionerà le tuple che hanno c più di 3.
UN | B | C |
---|---|---|
1 | 2 | 4 |
4 | 3 | 4 |
Nota: L'operatore di selezione seleziona solo le tuple richieste ma non le visualizza. Per la visualizzazione viene utilizzato l'operatore di proiezione dati.
2. Proiezione(π): Viene utilizzato per proiettare i dati della colonna richiesta da una relazione.
puntatore in c
Esempio: Considera la tabella 1. Supponiamo di volere le colonne B e C dalla relazione R.
π(B,C)R will show following columns.>
B | C |
---|---|
2 | 4 |
2 | 3 |
3 | 4 |
Nota: Per impostazione predefinita, la proiezione rimuove i dati duplicati.
3. Unione (U): L'operazione di unione nell'algebra relazionale è la stessa dell'operazione di unione nella teoria degli insiemi.
Esempio:
FRANCESE
Nome dello studente | Numero del rullino |
---|---|
Ram | 01 |
Mohan | 02 |
Vivek | 13 |
Geeta | 17 |
TEDESCO
Nome dello studente | Numero del rullino |
---|---|
Vivek | 13 |
Geeta | 17 |
Shyam | ventuno |
Rohan | 25 |
Considera la seguente tabella degli studenti che hanno diverse materie opzionali nel loro corso.
π(Student_Name)FRENCH U π(Student_Name)GERMAN>
Nome dello studente |
---|
Ram |
Mohan |
Vivek |
Geeta |
Shyam |
Rohan |
Nota: L'unico vincolo nell'unione di due relazioni è che entrambe le relazioni debbano avere lo stesso insieme di Attributi.
4. Imposta differenza (-): La differenza di insiemi nell'algebra relazionale è la stessa operazione di differenza di insiemi della teoria degli insiemi.
Esempio: Dalla tabella precedente di FRANCESE e TEDESCO, la differenza impostata viene utilizzata come segue
π(Student_Name)FRENCH - π(Student_Name)GERMAN>
Nome dello studente |
---|
Ram |
Mohan |
Nota: L'unico vincolo nell'Insieme Differenza tra due relazioni è che entrambe le relazioni devono avere lo stesso insieme di Attributi.
5. Imposta Intersezione (∩): L'intersezione degli insiemi nell'algebra relazionale è la stessa operazione di intersezione degli insiemi nella teoria degli insiemi.
Esempio: Dalla tabella sopra di FRANCESE e TEDESCO, l'intersezione dell'insieme viene utilizzata come segue
π(Student_Name)FRENCH ∩ π(Student_Name)GERMAN>
Nome dello studente |
---|
Vivek |
Geeta |
Nota: L'unico vincolo nell'Insieme Differenza tra due relazioni è che entrambe le relazioni devono avere lo stesso insieme di Attributi.
6. Rinomina(ρ): La rinomina è un'operazione unaria utilizzata per rinominare gli attributi di una relazione.
ρ(a/b)R will rename the attribute 'b' of the relation by 'a'.>
7. Prodotto incrociato(X): Prodotto incrociato tra due relazioni. Diciamo A e B, quindi il prodotto incrociato tra A X B risulterà in tutti gli attributi di A seguiti da ciascun attributo di B. Ogni record di A si accoppierà con ogni record di B.
Esempio:
android.process.acore continua a fermarsi
UN
Nome | Età | Sesso |
---|---|---|
Ram | 14 | M |
all'estremità | quindici | F |
Kim | venti | M |
B
ID | Corso |
---|---|
1 | DS |
2 | DBMS |
AXB
Nome | Età | Sesso | ID | Corso |
---|---|---|---|---|
Ram | 14 | M | 1 | DS |
Ram | 14 | M | 2 | DBMS |
all'estremità | quindici | F | 1 | DS |
all'estremità | quindici | F | 2 | DBMS |
Kim | venti | M | 1 | DS |
Kim | venti | M | 2 | DBMS |
Nota: Se A ha tuple 'n' e B ha tuple 'm', allora A X B avrà tuple 'n*m'.
Operatori derivati
Questi sono alcuni degli operatori derivati, che derivano dagli operatori fondamentali.
- Unione naturale(⋈)
- Unione condizionale
1. Unione naturale(⋈): Il join naturale è un operatore binario. L'unione naturale tra due o più relazioni risulterà in un insieme di tutte le combinazioni di tuple in cui hanno un attributo comune uguale.
Esempio:
EMP
Nome | ID | Nome_dip |
---|---|---|
UN | 120 | ESSO |
B | 125 | risorse umane |
C | 110 | Saldi |
D | 111 | ESSO |
DIPARTIMENTO
Nome_dip | Manager |
---|---|
Saldi | E |
Produzione | CON |
ESSO | UN |
Unione naturale tra EMP e DEPT con condizione:
EMP.Nome_Dipartimento = DEPT.Nome_Dipartimento
EMP ⋈ DIPARTIMENTO
Nome | ID | Nome_dip | Manager |
---|---|---|---|
UN | 120 | ESSO | UN |
C | 110 | Saldi | E |
D | 111 | ESSO | UN |
2. Unione condizionale: L'unione condizionale funziona in modo simile all'unione naturale. Nell'unione naturale, per impostazione predefinita la condizione è uguale tra gli attributi comuni mentre nell'unione condizionale possiamo specificare qualsiasi condizione come maggiore di, minore di o non uguale.
alternativa a xampp
Esempio:
R
ID | Sesso | Segni |
---|---|---|
1 | F | Quattro cinque |
2 | F | 55 |
3 | F | 60 |
S
ID | Sesso | Segni |
---|---|---|
10 | M | venti |
undici | M | 22 |
12 | M | 59 |
Unisci tra R e S con condizione R.marchi>= S.marchi
SBARAZZARSI | R.Sesso | R.Marchi | S.ID | S.Sesso | S.Marchi |
---|---|---|---|---|---|
1 | F | Quattro cinque | 10 | M | venti |
1 | F | Quattro cinque | undici | M | 22 |
2 | F | 55 | 10 | M | venti |
2 | F | 55 | undici | M | 22 |
3 | F | 60 | 10 | M | venti |
3 | F | 60 | undici | M | 22 |
3 | F | 60 | 12 | M | 59 |
Calcolo relazionale
Poiché l'algebra relazionale è un linguaggio di interrogazione procedurale, il calcolo relazionale è un linguaggio di interrogazione non procedurale. Fondamentalmente si occupa dei risultati finali. Mi dice sempre cosa fare ma non mi dice mai come farlo.
Esistono due tipi di calcolo relazionale
- Calcolo relazionale delle tuple (TRC)
- Calcolo relazionale del dominio (DRC)
Articoli di approfondimento:
Operatori di base in algebra relazionale
Operatori di algebra relazionale estesa