This commit is contained in:
MikolajPaterka 2022-02-12 22:18:53 +01:00
parent 0fe90733c8
commit d078d14030

View File

@ -203,7 +203,12 @@ stos - stktura danych, w której dodajemy elemanty na samą górę i zdjemujemy
### 8. Złożoność czasowa, klasy P i NP, problem P=NP. Redukowalność w czasie wielomianowym, NP-zupełność. ### 8. Złożoność czasowa, klasy P i NP, problem P=NP. Redukowalność w czasie wielomianowym, NP-zupełność.
? Klasa P - problemy, które potrafimy rozwiązać w czasie co najwyzej wielomianowym\
Klasa NP - problemy, których nie znamy rozwiązań w czasie wielomianowym lub mniejszym (czyli zadania o złozoności co najmniej wykładniczej)\
P = NP - kazdy problem P jest NP, ale nie wiadomo czy istnieje problem NP który jest P\
Redukowalność w czasie wielomianowym - problem, funkcję można obliczyć w czasie wielomianowym.
NP-zupełność - to problem który należy do klasy NP, oraz dowolny problem należący do NP, może być do niego zredukowany w czasie wielomianowym
### 9. Systemy plików (atrybuty pliku, katalogi, dowiązania twarde i symboliczne). ### 9. Systemy plików (atrybuty pliku, katalogi, dowiązania twarde i symboliczne).
**atrybut pliku** - cecha charakterystyczna pliku\ **atrybut pliku** - cecha charakterystyczna pliku\
@ -264,14 +269,14 @@ https://docs.microsoft.com/pl-pl/office/troubleshoot/access/database-normalizati
Załóżmy, że mamy transakcję składającą się z 10 zapytań. Jeżeli ostatnie zapytanie będzie skutkowało błędem, to zmiany dokonane przez poprzednie 9 zapytań zostaną cofnięte, a transakcja nie zostanie zakończona pomyślnie. Załóżmy, że mamy transakcję składającą się z 10 zapytań. Jeżeli ostatnie zapytanie będzie skutkowało błędem, to zmiany dokonane przez poprzednie 9 zapytań zostaną cofnięte, a transakcja nie zostanie zakończona pomyślnie.
**ACID** - Jednym ze zbiorów zasad definiujących cechy jakie powinny spełniać trasakcje jest ACID.\ **ACID** - Jednym ze zbiorów zasad definiujących cechy jakie powinny spełniać trasakcje jest ACID.\
**A** - Atomowość (atomicity) oznacza, że każda operacja na bazie danych jest traktowana jako osobny, niepodzielny byt. Co więcej, albo wszystkie operacje zakończą się pomyślnie, albo żadna z nich nie zostanie zaaplikowana. Mówiąc w skrócie wszystko albo nic.\ **A** - Atomowość (atomicity) oznacza, że każda operacja na bazie danych jest traktowana jako osobny, niepodzielny byt. Co więcej, albo wszystkie operacje zakończą się pomyślnie, albo żadna z nich nie zostanie zaaplikowana. Mówiąc w skrócie wszystko albo nic.\
Transakcja mimo tego, że jest zbiorem działań musi zostać wykonana jako jedna jednostka. Musi odbywać się w jednym momencie i nie może zostać podzielona na podzbiory. Transakcja mimo tego, że jest zbiorem działań musi zostać wykonana jako jedna jednostka. Musi odbywać się w jednym momencie i nie może zostać podzielona na podzbiory.\
**C** - Spójność (consistency) ta zasada stoi na straży spójności danych. Każda transakcja zmienia stan bazy z jednego poprawnego stanu na inny stan, również poprawny. Oznacza to także, że transakcja nie może łamać nałożonych na bazę reguł, ograniczeń i wyzwalaczy. \ **C** - Spójność (consistency) ta zasada stoi na straży spójności danych. Każda transakcja zmienia stan bazy z jednego poprawnego stanu na inny stan, również poprawny. Oznacza to także, że transakcja nie może łamać nałożonych na bazę reguł, ograniczeń i wyzwalaczy. \
System musi być spójny po zakończeniu transakcji. System musi być spójny po zakończeniu transakcji.\
**I** - Izolacja (isolation), równolegle uruchomione transakcje powinny być wyizolowane i nie powinny wpływać na siebie nawzajem. Oznacza to, że powinny się zachowywać tak, jakby były wykonywane sekwencyjnie.\ **I** - Izolacja (isolation), równolegle uruchomione transakcje powinny być wyizolowane i nie powinny wpływać na siebie nawzajem. Oznacza to, że powinny się zachowywać tak, jakby były wykonywane sekwencyjnie.\
Każda transakcja musi być wykonywana niezależnie od innych transakcji, które mogą być wykonywane w tym samym czasie. Każda transakcja musi być wykonywana niezależnie od innych transakcji, które mogą być wykonywane w tym samym czasie.\
**D** - Trwałość (durability), zmiany poczynione w trakcie transakcji są permanentne. Oznacza to, że rezultaty transakcji są trwale zapisane w bazie danych niezależnie od dalszych awarii. \ **D** - Trwałość (durability), zmiany poczynione w trakcie transakcji są permanentne. Oznacza to, że rezultaty transakcji są trwale zapisane w bazie danych niezależnie od dalszych awarii. \
Wykonana transakcja musi zostać utrwalona na stałe. Wykonana transakcja musi zostać utrwalona na stałe.
Poziomy izolacji - jak transakcje mogą wpływać na siebie, bardzo mocno, mocno, słabo albo wcale. I w zależności od tego jak wpływają to albo mamy więcej tych zjawisk (niepożądanych zjawisk dodajmy), albo mniej. (Def 2) definiuje dostęp do określonych zasobów przez wiele równoległych procesów\ Poziomy izolacji - jak transakcje mogą wpływać na siebie, bardzo mocno, mocno, słabo albo wcale. I w zależności od tego jak wpływają to albo mamy więcej tych zjawisk (niepożądanych zjawisk dodajmy), albo mniej. (Def 2) definiuje dostęp do określonych zasobów przez wiele równoległych procesów
- READ UNCOMMITTED możliwy brudny odczyt, odczyt nie dający się powtórzyć i odczyt widmo. Problemem tutaj jest to, że chcesz wykonać jedną transakcje na jakiś danych, ale te dane w między czasie zostały już uprzednio zmodyfikowane przez inną - READ UNCOMMITTED możliwy brudny odczyt, odczyt nie dający się powtórzyć i odczyt widmo. Problemem tutaj jest to, że chcesz wykonać jedną transakcje na jakiś danych, ale te dane w między czasie zostały już uprzednio zmodyfikowane przez inną
- READ COMMITTED - jest to domyślna opcja, która powoduje, że we wspomnianym przykładzie zostaną odczytane dane sprzed rozpoczęcia pierwszej transakcji. Podstawową wadą tej opcji jest oczywiście odwrotna sytuacja niż poprzednio w momencie zatwierdzenia transakcji dane zostaną zmienione czyli nasz pierwotny odczyt będzie nieaktualny. - READ COMMITTED - jest to domyślna opcja, która powoduje, że we wspomnianym przykładzie zostaną odczytane dane sprzed rozpoczęcia pierwszej transakcji. Podstawową wadą tej opcji jest oczywiście odwrotna sytuacja niż poprzednio w momencie zatwierdzenia transakcji dane zostaną zmienione czyli nasz pierwotny odczyt będzie nieaktualny.
@ -355,10 +360,10 @@ repozytorium - miejsce, gdzie w sposób uporządkowny przechowywyje się kod opr
odpowiednio i świadomie wykorzystane bardzo pomagają w procesie tworzenia i rozwijania oprogramowania. Ale, co mniej oczywiste mogą też zaszkodzić! \ odpowiednio i świadomie wykorzystane bardzo pomagają w procesie tworzenia i rozwijania oprogramowania. Ale, co mniej oczywiste mogą też zaszkodzić! \
testujemy pojedynczą część kodu zazwyczaj klasę lub metodę testujemy pojedynczą część kodu zazwyczaj klasę lub metodę
https://devstyle.pl/2020/06/25/mega-pigula-wiedzy-o-testach-jednostkowych/ https://devstyle.pl/2020/06/25/mega-pigula-wiedzy-o-testach-jednostkowych/
**modułowe** - oznacza to nic innego jak testowanie każdej metody, funkcji, klasy, modułu czy elementu w pojedynczy sposób. Kazdy elemant jest traktowany osobno (?)\ **modułowe** - oznacza to nic innego jak testowanie każdej metody, funkcji, klasy, modułu czy elementu w pojedynczy sposób, testy jedneostkowe metody\
**integracyjne** - testujemy kilka komponentów systemu jednocześnie. Testy integracyjne wykorzystają moduły przetestowane jednostkowo, grupując je w większe agregaty. Kolejnym etapem jest zastosowanie testów zdefiniowanych dla tych agregatów w planie testów integracji. Efektem testów jest zintegrowany system gotowy na testy systemowe \ **integracyjne** - testujemy kilka komponentów systemu jednocześnie. Testy integracyjne wykorzystają moduły przetestowane jednostkowo, grupując je w większe agregaty. Kolejnym etapem jest zastosowanie testów zdefiniowanych dla tych agregatów w planie testów integracji. Efektem testów jest zintegrowany system gotowy na testy systemowe \
**ciągła integracja** - ?\ **ciągła integracja** - praktyka programistyczna, rozwązuje problem budowania, testowania i integracji kodu, podastawą są pojedyncze współdzielone repozytoria. Efektywność tej praktyki zalezy od członków zespołu. Zamiany powinny być wrzucane często przynajmniej raz dziennie, przez co łatwo jest uwzględniać zmiany w kodzie
**scenariusze testowe** - ?\ **scenariusze testowe** - dokument zawirający zbiór przypadków testowych potrzebnych do sprawdzenia poprawności działania systemu w określonym zakresie. Kazdy scenariusz powinien być odzwierciedleniem dokładnie określonej funkcjonalności. Kazdy scenariusz powinien zawierać: id, wykaz czynności przygotowawczych, przypadek testowy, oczekiwany resultat\
**testy akceptacyjne** - Cele testowania akceptacyjnego to najczęściej: **testy akceptacyjne** - Cele testowania akceptacyjnego to najczęściej:
- budowanie zaufania do systemu; - budowanie zaufania do systemu;
- sprawdzanie kompletności systemu i jego prawidłowego działania; - sprawdzanie kompletności systemu i jego prawidłowego działania;
@ -446,6 +451,35 @@ stosuje się qos; stosuje się klasyfikowanie i tagowanie ramek (Tos w IP, na po
są to sposoby szyfrowania transmisji danych są to sposoby szyfrowania transmisji danych
### 26. Reprezentacja zmiennopozycyjna liczb. Błędy w obliczeniach, uwarunkowanie zadania, numeryczna stabilność algorytmów. ### 26. Reprezentacja zmiennopozycyjna liczb. Błędy w obliczeniach, uwarunkowanie zadania, numeryczna stabilność algorytmów.
Wartość liczby zmianno przecinkowej mozna zapisać za pomocą wzoru:\
[-1^{znak} * 2^{wykładnik} * mantysa] \
Zapis liczby zmiennoprzecinkowej zdjęcie\
https://www.samouczekprogramisty.pl/assets/images/2017/11/06_IEEE_754_pojedyncza_precyzja.png
Znak - dodatnia lub ujemna lub 0, jeśli w bit zawiera 0 to liczba jest dodatnia\
Wykładnik - wykładnik moze być z zakresu -127 do 128^1, jest zapisywany na 8 bitach, uzywa się kodowania z nadmiarem, wynosi on -127 [bias ] (od zakodowanej liczby nalezy odjąć liczbę 127 aby uzyskać zakodowaną warość)\
Mantysa - jest zapisana na 23 bitach, zawiera właściwą liczbę, która zostaje pomnozona przez wykładnik zgodnie ze wzorem
Przykład: liczba 0,0001010110001; po normalizacji to 1,010110001 * 2^{-4}\
W znormalizowanej mantysie mamy zawsze jedynkę na początku, zatem ją pomijamy; zatem mając liczbę: 1,010110001 mantysa będzie miała wartość: 0101 1000 1000 0000 0000 000 (zostały uzupełnione zera do 23 miejsc)\
Przykład cały\
Liczba: 270,125; binarnie to 100001110,001; po znoramlizowaniu to: 1,00001110001 * 2^{8}\
Mamy 11 miejsc, a mantysa powinna mieć 23 więc resztę uzupełniamy zerami, podstać mantysy:
```a
0000 1110 0010 0000 0000 000
```
Nasz wykładnik to 8, wynika to z przesunięcia normalizacji mantysy. Pamiętając o sposobie kodowania wykładnika dodaję 127. Koduję 135 co daje w zapsie binarnym:\
```a
1000 0111
````
Naszaa liczba jest dodatnia więc bit znaku to 0\
Cała liczba wygląd atak:
```a
0 1000 0111 0000 1110 0010 0000 0000 000
```
### 27. Algorytm Hornera. ### 27. Algorytm Hornera.
Schemat Hornera jest algorytmem służącym do bardzo szybkiego obliczania wartości wielomianu. Redukuje on liczbę mnożeń do minimum.\ Schemat Hornera jest algorytmem służącym do bardzo szybkiego obliczania wartości wielomianu. Redukuje on liczbę mnożeń do minimum.\
@ -556,5 +590,18 @@ hipotezy - ?\
**poziom istotności testu** - przyjęte z góry dopuszczalne ryzyko popełnienia błędu I rodzaju (uznania prawdziwej hipotezy zerowej za fałszywą), pozwalające określić, powyżej jakich odchyleń zaobserwowanych w próbie test rozstrzygnie na korzyść hipotezy alternatywnej **poziom istotności testu** - przyjęte z góry dopuszczalne ryzyko popełnienia błędu I rodzaju (uznania prawdziwej hipotezy zerowej za fałszywą), pozwalające określić, powyżej jakich odchyleń zaobserwowanych w próbie test rozstrzygnie na korzyść hipotezy alternatywnej
### 40. Symetryczne i asymetryczne protokoły szyfrowania. Algorytmy szyfrowania z kluczem tajnym oraz z kluczem publicznym. ### 40. Symetryczne i asymetryczne protokoły szyfrowania. Algorytmy szyfrowania z kluczem tajnym oraz z kluczem publicznym.
algorytmy symetryczne - to takie, w których kluczb do szyfrowania i deszyfrowania jest ten sam lub jeden mozna w łatwy sposób wyprowadzić z drugiego, przykłady: AES\
algorytmy asymetryczne - zawane algorytmami z kluczem jawnym lub publicznym, klucze do szyfrowani i deszyfrowania są rózne i jeden klucz nie mozna wyzczyć z drugiego, przykłady: RSA
### 41. Algorytmy czasu wielomianowego i wykładniczego ze względu na liczbę bitów danych. Notacja wielkie O. ### 41. Algorytmy czasu wielomianowego i wykładniczego ze względu na liczbę bitów danych. Notacja wielkie O.
### 42. Funkcje jednokierunkowe. Bezpieczeństwo systemów kryptograficznych.
Algorytmy czasu wielomianowego i wykładniczego ze względu na liczbę bitów danych -
Notacja wielkie O - to notacja przedstawiająca asymptotyczne tempo wzrost, wykorzystywana do zapisywania złozoności obliczeniowej algorytmów.\
f(n) = O(g(n)) oznacza, że istnieje taka wartość n0, że dla każdego n większego od n0 jest spełniona nierówność: f(n) ≤ cg(n), gdzie c jest stałą wartością
### 42. Funkcje jednokierunkowe. Bezpieczeństwo systemów kryptograficznych.
Funcja jednokierunkowa - funkcja, którą łatwo obliczyć, ale za to dużo trudniej obliczyć wartość jej funkcji odwrotnej. Znając wartośc *x* mozna łatwo oblczyć *f(x)*. Z drugiej strony znając *f(x)* trudno oobliczyć *x*\
(W sensie ściśle matematycznym nie jest udowodnione, że funkcje jednokierunkowe rzeczywiście istnieją)
Bezpieczeństwo