ďťż
 
pare pytan o bazy danych /oracle,dlugie/ ďťż
 
pare pytan o bazy danych /oracle,dlugie/
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

pare pytan o bazy danych /oracle,dlugie/



jerry - 09-02-2007 00:04
pare pytan o bazy danych /oracle,dlugie/
  Witam,

Mam kilka zadan z baz danych. Tyle ile umialem sam rozwiazalem, prosilbym
jedynie o wytkniecie bledow /o ile sa/ i wskazanie gdzie szukac rozwiazan
tam gdzie ich brakuje
Podejrzewam ze zadania mozna odniesc do dowolnej bazy danych, jednak gdyby
tak nie bylo to chodzi o oracle'a.

Zadania wygladaja na przetlumaczone z jakiejs anglojezycznej ksiazki. Gdyby
ktos przypadkiem wiedzial o jaka ksiazke chodzi rowniez bylbym wdzieczny za
informacje.

zadanie 1.
Dana jest relacja Pracownik zawierajaca 40.000 rekordow o stalej dlugosci
115 bajtow. Zalozmy ze rekordy relacji sa przechowywane w strukturze stogu,
oraz ze rozmiar bloku dyskowego wynosi 512 bajtow. Zalozmy ze na atrybucie
SSN (identyfikator pracownika) o rozmiarze 9 bajtow zalozono indeks typu
B+-drzewo. Wskaznik do bloku danych P=6byteow, wskaznik Pr do rekordu danych
wynosi 7 bajtow.

1.a Oblicz rzad wierzcholka wewnetrznego i liscia indeksu
1.b Zakladajac ze bloki indeksu sa wypelnione w 70% podaj liczbe blokow
dyskowych na poziomie lisci oraz liczbe poziomow indeksu B+-drzewa.
1.c Ile dostepow do blokow dyskowych jest potrzebnych do odszukania rekordu
o zadanej wartosci SSN stosujac indeks B+-drzewa (SSN jest unikalnym
identyfikatorem pracownika)

rozwiazanie zad 1.
1.a
nie wiem :/
1.b
Skoro bloki sa wypelnione w 70%, to 40.000 elementow zajmuje 57143 bloki
Jeden blok zajmuje 9+6+7=22 bajty
a zatem calosc zajmuje
57143*22bajty=1257146 bajtow
a zatem ilosc uzytych blokow dyskowych jest rowna 1257146/512=2455 (o ile
dobrze rozumiem to jeden blok/lisc indeksu moze przechodzic z jednego do
drugiego bloku dyskowego)

Liczba mozliwych lisci w indeksie b+-drzewa zalezy wykladniczo od ilosci
poziomow drzewa a zatem trzeba znalesc takie n, ze
2^(n-1)>57143 gdzie n to ilosc poziomow drzewa
n=17
Czyli drzewo ma 17poziomow.

c. Ilosc potrzebnych dostepow do blokow dyskowych to ilosc poziomow drzewa +
1, a zatem 18.

zadanie 2.
Dany jest schemat relacji R=(A,B,C,D) Dany jest rowniez nastepujacy zbior
zaleznosci funkcyjnych dla schematu R (zakladamy ze sa to jedyne zaleznosci
funkcyjne spelnione przez relacje R):
AB->C, AB->D , C->A, D->A
2.a Podaj klucz (kllucze) schematu R
2.b W jakiej postaci normalnej jest schemat reklacji R. Uzasadnij odpowiedz.

Tego w ogole nie rozumiem ;/
Co oznacza zapis AB->C ? domyslam sie to pewnie bedzie relacja jeden do
jeden albo raczej jeden do wielu. Ale nie moge zrozumiec dlaczego AB->C a
C->A skoro A i B sa w pierwszej relacji razem, to dlaczego w drugiej relacji
B nie wystepuje? I w jaki sposob mozna podac nazwy klucz(e) nie znajac nazw
kolumn?

z gory dziekuje za wszelkie odpowiedzi

pozdrawiam





=?ISO-8859-2?Q?Mase=B3?= - 09-02-2007 00:04

  jerry wrote:
> Witam,
>
> Mam kilka zadan z baz danych. Tyle ile umialem sam rozwiazalem, prosilbym
[...]
> zadanie 1.
> Dana jest relacja Pracownik zawierajaca 40.000 rekordow o stalej dlugosci
[...]
> zadanie 2.
> Dany jest schemat relacji R=(A,B,C,D) Dany jest rowniez nastepujacy zbior
[...]

Mam pewne podejrzenia i az sie boje zadac to pytanie: a jaka to uczelnia?

Pozdro

Maseł

P.S. IMHO zadania sa OK i nalezaloby sie douczyc do poprawki (obym sie
mylil co do tej poprawki)




jerry - 10-02-2007 00:02

 
Użytkownik "Maseł" <mmasel@poczta.onet.pl> napisał w wiadomości
news:6334b16c7e7ce78bdc37333c9896a5f7@masel.cs.put .poznan.pl...
> jerry wrote:
>> Witam,
>>
>> Mam kilka zadan z baz danych. Tyle ile umialem sam rozwiazalem, prosilbym
> [...]
>> zadanie 1.
>> Dana jest relacja Pracownik zawierajaca 40.000 rekordow o stalej dlugosci
> [...]
>> zadanie 2.
>> Dany jest schemat relacji R=(A,B,C,D) Dany jest rowniez nastepujacy zbior
> [...]
>
> Mam pewne podejrzenia i az sie boje zadac to pytanie: a jaka to uczelnia?
Politechnika to nie jest :)

> Pozdro
>
> Maseł
>
> P.S. IMHO zadania sa OK i nalezaloby sie douczyc do poprawki
Zadania sa ok, czy moje propozycje odpowiedzi? :)

>(obym sie mylil co do tej poprawki)
egzamin dopiero jutro.. mam nadzieje ze poprawki nie bedzie ;)

Zadanie drugie juz grubsza wygooglalem.
ale jeszcze odnosnie 1.a moglbys wskazac jakies info/link jak liczyc rzad
wierzcholka i liscia w indeksu?




=?ISO-8859-2?Q?Mase=B3?= - 10-02-2007 00:02

  jerry wrote:
> Użytkownik "Maseł" <mmasel@poczta.onet.pl> napisał w wiadomości
> news:6334b16c7e7ce78bdc37333c9896a5f7@masel.cs.put .poznan.pl...
>> jerry wrote:
>>> Witam,
>>>
>>> Mam kilka zadan z baz danych. Tyle ile umialem sam rozwiazalem, prosilbym
>> [...]
>>> zadanie 1.
>>> Dana jest relacja Pracownik zawierajaca 40.000 rekordow o stalej dlugosci
>> [...]
>>> zadanie 2.
>>> Dany jest schemat relacji R=(A,B,C,D) Dany jest rowniez nastepujacy zbior
>> [...]
>>
>> Mam pewne podejrzenia i az sie boje zadac to pytanie: a jaka to uczelnia?
> Politechnika to nie jest :)

Uff, a teraz pogooglaj za stronami studentow politechnik, maja tam
miedzy innymi materialy do przedmiotu z "bazy danych" w nazwie...

> egzamin dopiero jutro.. mam nadzieje ze poprawki nie bedzie ;)

Tez trzymam kciuki...

> Zadanie drugie juz grubsza wygooglalem.
> ale jeszcze odnosnie 1.a moglbys wskazac jakies info/link jak liczyc rzad
> wierzcholka i liscia w indeksu?

W skrocie przypomnij sobie strukture liscia i wezla - sa w nim jakies
dane (klucze) i wskazniki na inne bloki (wezly/liscie lub wlasciwe
dane). kluczy i wskaznikow jest mniej wiecej tyle samo w bloku (lub
wskaznikow jest o jeden wiecej). Teraz sprawdz ile takich par
klucz/wskaznik zmiescisz w bloku i masz rzad...
W sumie to byl na to nawet jakis wzorek, ale jestem na urlopie wiec ani
nie chce mi sie googlac ani nawet przeszukiwac lokalnego dysku...

Pozdro

Maseł





Lucyna Witkowska - 10-02-2007 00:02

  jerry <nie@mam.pl> napisał:
> Zadania wygladaja na przetlumaczone z jakiejs anglojezycznej ksiazki. Gdyby
> ktos przypadkiem wiedzial o jaka ksiazke chodzi rowniez bylbym wdzieczny za
> informacje.
> zadanie 1.
> Dana jest relacja Pracownik zawierajaca 40.000 rekordow o stalej dlugosci
> 115 bajtow. Zalozmy ze rekordy relacji sa przechowywane w strukturze stogu,
> oraz ze rozmiar bloku dyskowego wynosi 512 bajtow.

Drobna uwaga: bloki Oracle mogą byc min. 2 KB.

> Zalozmy ze na atrybucie
> SSN (identyfikator pracownika) o rozmiarze 9 bajtow zalozono indeks typu
> B+-drzewo. Wskaznik do bloku danych P=6byteow, wskaznik Pr do rekordu danych
> wynosi 7 bajtow.

?? w blokach liscia indeksu oprocz klucza przechowywany jest 10
bajtowy ROWID.

> 1.a Oblicz rzad wierzcholka wewnetrznego i liscia indeksu
> 1.b Zakladajac ze bloki indeksu sa wypelnione w 70% podaj liczbe blokow
> dyskowych na poziomie lisci oraz liczbe poziomow indeksu B+-drzewa.
> 1.c Ile dostepow do blokow dyskowych jest potrzebnych do odszukania rekordu
> o zadanej wartosci SSN stosujac indeks B+-drzewa (SSN jest unikalnym
> identyfikatorem pracownika)

> rozwiazanie zad 1.
> 1.a
> nie wiem :/
> 1.b
> Skoro bloki sa wypelnione w 70%, to 40.000 elementow zajmuje 57143 bloki
> Jeden blok zajmuje 9+6+7=22 bajty
> a zatem calosc zajmuje
> 57143*22bajty=1257146 bajtow
> a zatem ilosc uzytych blokow dyskowych jest rowna 1257146/512=2455 (o ile
> dobrze rozumiem to jeden blok/lisc indeksu moze przechodzic z jednego do
> drugiego bloku dyskowego)

Nie rozumiem tych rachunkow.
Zalozmy, ze w bloku liscia sa klucze 9B i wskazniki rekordu 7B, oraz
dwa wskazniki do poprzedniego i nastepnego liscia, co daje
12B. Czyli (0.7*512-12)/14 = 24 wiersze w jednym bloku indeksu.

> Liczba mozliwych lisci w indeksie b+-drzewa zalezy wykladniczo od ilosci
> poziomow drzewa a zatem trzeba znalesc takie n, ze
> 2^(n-1)>57143 gdzie n to ilosc poziomow drzewa
> n=17
> Czyli drzewo ma 17poziomow.

> c. Ilosc potrzebnych dostepow do blokow dyskowych to ilosc poziomow drzewa +
> 1, a zatem 18.

Taki indeks w prosty sposob wykończył by baze!
Wyobraz sobie 18 odczytow z dysku zeby przeczytac 1 wiersz.

Liczba mozliwych lisci w indeksie <= (liczba wierszy w bloku)**blevel
Czyli dla 40000 wierszy, przy tym chorym bloku powinien byc BLEVEL=4.

Pozdrowienia,
LW




=?ISO-8859-2?Q?Mase=B3?= - 10-02-2007 00:02

  Lucyna Witkowska wrote:
> jerry <nie@mam.pl> napisał:
>> Zadania wygladaja na przetlumaczone z jakiejs anglojezycznej ksiazki. Gdyby
>> ktos przypadkiem wiedzial o jaka ksiazke chodzi rowniez bylbym wdzieczny za
>> informacje.
>> zadanie 1.
>> Dana jest relacja Pracownik zawierajaca 40.000 rekordow o stalej dlugosci
>> 115 bajtow. Zalozmy ze rekordy relacji sa przechowywane w strukturze stogu,
>> oraz ze rozmiar bloku dyskowego wynosi 512 bajtow.
> Drobna uwaga: bloki Oracle mogą byc min. 2 KB.

Ale ten Orakiel to pytajacemu tak siakos sie wymsknal, wiec moze to
jednak nie Orakiel

>> Zalozmy ze na atrybucie
>> SSN (identyfikator pracownika) o rozmiarze 9 bajtow zalozono indeks typu
>> B+-drzewo. Wskaznik do bloku danych P=6byteow, wskaznik Pr do rekordu danych
>> wynosi 7 bajtow.
>
> ?? w blokach liscia indeksu oprocz klucza przechowywany jest 10
> bajtowy ROWID.

Widzisz, nawet ROWID takie nie Oraklowe jakies...

> Zalozmy, ze w bloku liscia sa klucze 9B i wskazniki rekordu 7B, oraz
> dwa wskazniki do poprzedniego i nastepnego liscia, co daje

Nie pamietam czy te 2 wskazniki to w teorii wystepuja, czy nie jest to
aby fanaberia praktycznych implementacji

>> c. Ilosc potrzebnych dostepow do blokow dyskowych to ilosc poziomow drzewa +
>> 1, a zatem 18.
>
> Taki indeks w prosty sposob wykończył by baze!
> Wyobraz sobie 18 odczytow z dysku zeby przeczytac 1 wiersz.

Z drugiej strony masz wybor - nie zakladasz tego indeksu i czytasz
8984,375 bloku (zakladajac 100% wypelnienie i brak naglowkow bloku i nie
przejmujac sie jakimistam HWM)
Z trzeciej strony - ciekawe jaka jest struktura hipotetycznych zapytan
wspieranych przez ten hipotetyczny indeks na naszej hipotetycznej (caly
czas sie powstrzymywalem zeby nie napisac: hipotecznej) bo jak znam
zycie, to zaraz znajdzie sie ktos, kto powie, ze nawet tak wysmukle
drzewo uratowalo mu kiedys 4-litery jak uzytkownicy zaczeli narzekac na
czas wykonywania zapytan...

> Liczba mozliwych lisci w indeksie <= (liczba wierszy w bloku)**blevel
> Czyli dla 40000 wierszy, przy tym chorym bloku powinien byc BLEVEL=4.

Jako praktyk, popieram opinie o rozmiarze bloku, jako dydaktyk twierdze
jednak, ze zadanie ma sens...

Pozdro

Maseł




Lucyna Witkowska - 13-02-2007 00:04

  Maseł <mmasel@poczta.onet.pl> napisał:
> > Taki indeks w prosty sposob wykończył by baze!
> > Wyobraz sobie 18 odczytow z dysku zeby przeczytac 1 wiersz.

> Z drugiej strony masz wybor - nie zakladasz tego indeksu i czytasz
> 8984,375 bloku (zakladajac 100% wypelnienie i brak naglowkow bloku i nie
> przejmujac sie jakimistam HWM)

To prawda. Chociaz takie indeksy na szczescie zdarzaja sie rzadko.

Jonathan Lewis robil kiedys testy na zdegenerowanych indeksach -
takich, w ktorych 1 wiersz zajmowal 1 blok indeksu.
Osiagniecie blevel=18 wymagalo 1GB indeksu (tylko w 9.2 udało sie to
zrobic mniejszym kosztem), a blevel=24 powodowało ORA-00600.
Wiecej w artykule: How high can you go na www.dbazine.com

Pozdrowienia,
LW
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?= Oracle 19g +Insert +Insert +Insert... [oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?= [Oracle] jak =?ISO-8859-2?Q?ograniczy=E6_pami=EA=E6_dla_se?==?ISO-8859-2?Q?rwera=3F?= =?ISO-8859-2?Q?=5BOT=5D_Zdany_egzamin_Oracle_1Z0-007_a?==?ISO-8859-2?Q?_brak_informacji_na_stronie_Prometric_-_czy?==?ISO-8859-2?Q?_co=B6_nie_tak=3F?= [oracle] czy da =?ISO-8859-2?Q?si=EA_z_poziomu_procedury_?==?ISO-8859-2?Q?zrobi=E6_kopi=EA_zapasow=B1=3F?= [oracle 10g] czy =?ISO-8859-2?Q?mo=BFna_wy=B3=B1czy=E6_wszys?==?ISO-8859-2?Q?tkie_wi=EAzy_w_schemacie=3F?= MSSQL Express czy Oracle Express =?iso-8859-2?q?[oracle]_Jak_sprawdzi=E6_wielko=B6=E6_tabeli_=3F=3F?= =?ISO-8859-2?Q?Poszukjue_ksi=B1=BFki_"Oracle_?= =?ISO-8859-2?Q?optymalizacja_wydajno=B6ci"..?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • oefg.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com