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