Changes between Version 44 and Version 45 of normalization


Ignore:
Timestamp:
09/24/25 22:07:04 (13 days ago)
Author:
221046
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • normalization

    v44 v45  
    206206
    207207
     208= Релациона алгебра за прашалникот: Најпопуларен артист по жанр за корисник =
     209
     210
     211== 1. !PlayCounts ==
     212Се пресметува бројот на плеј-стани за секој жанр и уметник за одреден клиент (со ID 123). Операциите што се користат се:
     213
     214- **Join**: Поврзување на сите потребни табли (customer, invoice, invoice_line, track, genre, album, artist) со операцијата `⋈`.
     215- **Selection (σ)**: Применуваме услов за селектирање само на податоци за клиент со ID 123.
     216- **Grouping (γ)**: Групираме по жанр и уметник и пресметуваме бројот на плеј-стани за секој пар жанр-уметник со функцијата COUNT.
     217
     218Релационата алгебра за `PlayCounts`:
     219
     220!PlayCounts = γ_{g.genre_id, g.name → genre_name, ar.name → artist_name, COUNT(*) → play_count} (σ_{c.customer_id = 123}((customer ⋈ invoice) ⋈ (invoice_line ⋈ track) ⋈ (track ⋈ genre) ⋈ (track ⋈ album) ⋈ (album ⋈ artist)))
     221
     222
     223== 2. !MaxPlayCounts ==
     224Се пресметува максималниот број на плеј-стани за секој жанр. Операциите што се користат се:
     225
     226- **Grouping (γ)**: Групирање по `genre_id` и пресметување на максималниот број на плеј-стани за секој жанр користејќи ја функцијата `MAX`.
     227
     228Релационата алгебра за `MaxPlayCounts`:
     229
     230!MaxPlayCounts = γ_{genre_id, MAX(play_count) → max_count} (!PlayCounts)
     231
     232
     233== 3. !FinalResult ==
     234Се прави **Join** помеѓу `PlayCounts` и `MaxPlayCounts`, за да се изберат само оние редови каде што бројот на плеј-стани се совпаѓа со максималниот број за даден жанр. Се избираат само атрибутите `genre_name`, `artist_name`, и `play_count`.
     235
     236Релационата алгебра за финалниот резултат:
     237
     238!FinalResult = π_{pc.genre_name, pc.artist_name, pc.play_count}
     239(!PlayCounts ⋈_{pc.genre_id = mpc.genre_id ∧ pc.play_count = mpc.max_count} !MaxPlayCounts)
     240
     241
     242== Целосен израз на релационата алгебра ==
     243Со комбинирање на сите чекори, добиваме целосен израз за релационата алгебра:
     244
     245π_{pc.genre_name, pc.artist_name, pc.play_count} ((γ_{g.genre_id, g.name → genre_name, ar.name → artist_name, COUNT(*) → play_count}(σ_{c.customer_id = 123} ((customer ⋈ invoice) ⋈ (invoice_line ⋈ track) ⋈ (track ⋈ genre) ⋈ (track ⋈ album) ⋈ (album ⋈ artist)))) ⋈{pc.genre_id = mpc.genre_id ∧ pc.play_count = mpc.max_count} (γ{genre_id, MAX(play_count) → max_count} (!PlayCounts)))
     246
     247
    208248= Индекси =
    209249