---
# System prepended metadata

title: Pog6

---

# Pog6

Dzień dobry, witam was w mojej kuchni.

## Zadanie 1
![](https://i.imgur.com/ATAI6PE.png)

![](https://i.imgur.com/xxB3G1V.png)
![](https://i.imgur.com/EWWfOri.png)
![](https://i.imgur.com/1kkprxZ.png)

Uznaje ze nadklucz to zbiór atrybutów relacji który jest kluczem lub zawiera klucz (z [wikipedii](https://pl.wikipedia.org/wiki/Posta%C4%87_normalna_(bazy_danych)#Posta%C4%87_normalna_Boyce%E2%80%99a-Codda_(BCNF_lub_3.5NF)) )

$$F = \{gang \rightarrow szef, szef \rightarrow dochód, proceder \rightarrow roi\}$$


Mamy zal. funkcyjną Gang -> Dochód z przechodniości, sama kolumna Gang nie jest ani kluczem ani nie zawiera klucza, więc nie jest nadkluczem, co daje nam że relacja nie jest w BCNF.
Mafia(City, Gang, Criminal Activity)
Bossix(Gang, Boss)
Incomix(Boss, Income)
ROIx(Criminal Activity, ROI)
Jak skleimy do kupy natural joinem to dostaniemy poprzedni stan przed normalizacja czyli jest odwracalna. I łatwo tez widać ze suma zbiorów tych zaleznosci funkcyjnych tez bedzie taka sama wiec fajrancik.

$$ Mafia \bowtie Bossix \bowtie Incomix \bowtie ROIx $$

## Zadanie 2
![](https://i.imgur.com/78M2w4Q.png)

![](https://i.imgur.com/fK4OP7A.png)
Redundancja jest oczywista bo ten sam gang w tym samym mieście może jednoczeście handlować narkotykami i dziennikarzami i wyciętymi nerkami, więc w każdej krotce będzie się powtarzało nazwa miasta i gang.

## Zadanie 3
![](https://i.imgur.com/zYJHB2b.png)
Możemy rozbić dalej relacje Mafia(City,Gang,Crim_actv) na
Mafia(City,Gang)
Criminal_ac(Gang,Crim_actv)

## Zadanie 4
![](https://i.imgur.com/zpkklHZ.png)
$$ \pi_{proc, roi} (\sigma_{proc = proc1 \land roi \neq roi1}(Mafia \times \rho_{proc\rightarrow proc1, roi\rightarrow roi1}(Mafia))) $$

## Zadanie 5
![](https://i.imgur.com/KeRXkMF.png)

tweet(tw_id, p_id, created_at, text, retweeted_tw_id, in_reply_to_tw_id)

person(p_id, p_name, p_desc, loc_name)
hashtags(h_id, tw_id, h_name)
mentions(m_id, tw_id, men_p_id)

*MAYBE OPT*
person(p_id, p_name, p_desc, loc_id)
loc(loc_id, loc_name)                
opłacalne gdy inty > stringi


1. Od autora_id zależy jego imię i opis, oraz lokacja zamieszkania $$ a\_id \rightarrow a\_name, a\_desc, a\_loc $$

2. złożone typy are chujowe, so we are wypierdalamy je i zastępujemy tabelami hashtags i mentions

3. tweet $\bowtie$ author $\bowtie$ hashtags $\bowtie$ mentions $\rightarrow$ to jest to samo tylko z rozgrupowanymi hastagami i mentionsami
