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.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
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.pldoc.pisz.plpdf.pisz.ploefg.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 |
|