1
1. Podstawowe typy i struktury danych w językach programowania.
Podstawowe typy danych w językach programowania:
– typ reprezentujący liczbę całkowitą z jakiegoś zakresu zależnego od języka
‒ w C, C++, Javie np. int, w Pascalu np. integer
– typ reprezentujący przybliżoną wartość liczby rzeczywistej
‒ w C, C++, Javie np. double, w Pascalu np. real
– typ reprezentujący pojedynczy znak ASCII lub Unicode
‒ w C, C++, Javie, Pascalu np. char
– typ reprezentujący cały tekst
‒ w Javie, C++, Pascalu np. string
– może przyjmować wartości logiczne 1 (true, t) lub 0 (false, nil)
‒ w C++np. bool, w Pascalu boolean
Struktura danych - sposób uporządkowania informacji w komputerze. Na strukturach danych operują algorytmy.
Przykładowe struktury danych to:
1. Struktury statyczne (przez cały czas działania algorytmu mogą przechowywać dane o z góry ustalonym
rozmiarze)
rekord
‒ grupa danych takiego samego lub różnego typu
tablica
‒ jest strukturą jednorodną, tj. wszystkie składowe są tego samego typu
2. Struktury dynamiczne (ich skład, wymiary i struktura mogą się zmieniać w trakcie działania algorytmu)
lista
‒ to struktura danych składająca się z połączonych ze sobą w łańcuszek komórek zawierających dane
drzewo
i jego liczne odmiany (np. drzewo binarne) ‒ reprezentują hierarchię danych
stos
‒ liniowa struktura danych, dane dokładane są na wierzch stosu, również z wierzchołka są ściągane
kolejka
‒ liniowa struktura danych, nowe dane dopisywane są na końcu kolejki, a jako pierwsze obsługiwane są
dane z początku
2
2. Przegląd podstawowych instrukcji języków imperatywnych.
Języki imperatywne to języki trzeciej generacji – wysokiego poziomu.
Kod jest sekwencją instrukcji zmieniających krok po kroku stan maszyny (zawartość całej pamięci oraz rejestrów
i znaczników procesora), aż do uzyskania oczekiwanego wyniku.
Przykłady języków imperatywnych: Fortran, C, Pascal, Perl.
Podstawowe instrukcje na przykładzie języka Pascal:
1) Instrukcja przypisania {przypisuje zmiennej konkretną wartość}
Zmienna := stała;
Godzina := 12;
2) Instrukcje wejścia-wyjścia
READ
{czyta dane z pliku Input}
READ zmienna1, zmienna2, …, zmiennak;
READLN
{czyta dane i przenosi kursor do następnej linijki}
READKEY
{odczytaj z klawiatury}
WRITE
{wyświetl, kursor zostaje na końcu linijki}
WRITELN
{wyświetl, kursor przeskakuje do następnej linijki}
3) Instrukcje strukturalne
a) Instrukcje złożone
BEGIN Instrukcja1; Instrukcja2; ….; Instrukcjan; END.
b) Instrukcje warunkowe
Instrukcja
IF – THEN
{instrukcja jest wykonywana dopóki warunek jest prawdziwy}
IF warunek THEN
Begin
Instrukcja1;
Instrukcja2;
…
Instrukcjan;
Else
Instrukcja;
End
.
Instrukcja
CASE – OF
{lista warunków i odpowiadających im instrukcji
CASE{ identyfikator OF
3
Stała1 : instrukcja1;
Stała2 : instrukcja2;
…
Stałan : instrukcjan;
Else instrukcja;
4) Instrukcje iteracyjne
Instrukcja
WHILE – DO
{pętla jest wykonywana dopóki warunek jest spełniony, wykonuje się 0 lub 1 raz}
WHILE warunek DO instrukcje
Instrukcja
REPEAT – UNTIL
{powtarza zestaw instrukcji 1 … n, dopóki warunek nie jest spełniony, pętla
wykona się przynajmniej 1 raz}
REPEAT
Instrukcja1;
Instrukcja2;
….
Instrukcjan;
UNTIL warunek
Instrukcja
FOR – DO
{pętla podobna do pętli Repeat – Until, ciąg instrukcji wykonywany jest określoną ilość
razy}
FOR licznik:=start TO stop DO Instrukcja;
5) Instrukcja skoku bezwarunkowego
GOTO etykieta
{powoduje przejście do wykonania instrukcji poprzedzonej etykietą}
4
3. Sposoby przechowywania i kodowania informacji w komputerze.
W komputerach każda informacja (zarówno dane jak i programy tzn. sposób przetwarzania danych) przedstawiona jest w
postaci dwójkowej (binarnej).
Do przechowywania danych, programów oraz ich przetwarzania stosowane są pamięci zrealizowane na układach
scalonych, magnetycznych lub optycznych. Nośnikami informacji są zatem układy elektroniczne, magnetyczne lub
optyczne.
Rodzaje pamięci :
RAM ‒ pamięć o dostępie swobodnym, jest podstawowym składnikiem pamięci operacyjnej komputera, gromadzi
wszystkie dane, których w danej chwili wymaga procesor
Pamięć stała: ROM ‒ przechowuje dane nawet po wyłączeniu zasilania, np. ROM-BIOS, która zawiera program
startowy oraz podstawowe procedury obsługi urządzeń zewnętrznych (klawiatura, monitor, dyski, itp.). Pamięć ROM
można tylko odczytywać.
Pamięć dyskowa ‒ pamięć masowa o bardzo dużej pojemności, realizowana jest za pomocą urządzeń mechaniczno
elektronicznych. Typowym przykładem jest dysk twardy. Dane na dyskach są zorganizowane w system plików, którym
zarządza system operacyjny komputera.
Pamięć Flash ‒ jest to pamięć nieulotna, tzn. można w niej zapisać dane, wyłączyć zasilanie, a dane nie zostaną stracone
i wciąż będą obecne po ponownym włączeniu zasilania, może być stosowana jako zastępca pamięci ROM do
przechowywania BIOS komputera, obecnie stosuje się je powszechnie w aparatach fotograficznych, kamerach
cyfrowych, odtwarzaczach mp3 oraz w dyskach Pendrive.
Dysk sieciowy ‒ jest obszarem pamięci dyskowej odległego komputera, który został udostępniony użytkownikowi
poprzez sieć lokalną. Podobnie jak dysku twardym, można na nim umieszczać dane i programy. Dyski sieciowe mogą
być współdzielone przez kilku użytkowników sieci, dzięki temu użytkownicy są w stanie ze sobą ściśle współpracować,
zapewnia bezpieczeństwo danych ‒ jeśli komputer użytkownika ulegnie awarii, to dostęp do danych użytkownik może
uzyskać z innego, sprawnego komputera.
Dysk optyczny ‒ Dysk CD (mieści 700MB danych), DVD (4,7 GB), Blu-ray Disk i HD-DVD (mają pojemność 25-
30GB)
Każda informacja zorganizowana jest w określony sposób fizyczny i logiczny.
Organizacja fizyczna pamięci określa w jaki sposób informacja jest zapisywana lub czytana.
Organizacja logiczna informacji to organizacja w formie pliku.
Plik określimy jako logicznie powiązany ze sobą zbiór bajtów identyfikowany za pomocą unikatowej nazwy.
Plikiem można operować jako całością. Wielkości plików mogą wynosić od jednego bajta do kilku GB.
Pliki można podzielić na dwa rodzaje:
∙ pliki z danymi
∙ pliki programów w postaci binarnej (rozkazy dla procesora).
Informacje przechowywane w plikach z danymi możemy podzielić na:
∙ teksty zawierające ciągi liter i innych znaków pisarskich
∙ liczby różnego typu i o różnej dokładności przedstawienia
∙ obrazy
∙ dźwięki
∙ dane zapisywane przez programy użytkowe, które kodują informacje wg własnego systemu. Mogą to być teksty,
obrazy, dźwięki a nawet filmy
5
Informacje przechowywane w plikach są kodowane.
Sposób kodowania zależny jest od przeznaczenia pliku.
Niezależnie od sposobu kodowania informacje zapisane w plikach składają się z kolejnych bajtów, czyli, że zawsze są to
ciągi zer i jedynek.
Sposoby kodowania znaków pisarskich (litery, cyfry, znaki przestankowe i inne) ‒ kody alfanumeryczne:
ASCII – American Standard Code of Interchange Code (każdy kod składa się z 7 + 1 bitów, ósmy bit kontrolny –
bit parzystości, 128 + 128 kodów)
ISO – International Organization for Standarisation (pełne 8 bitów)
UNICODE – jeden znak to 16 bitów
Sposoby kodowania informacji o obrazach
∙ grafika rastrowa – obraz rejestrowany jako bitmapa (dwuwymiarowa tablica pikseli), cechą charakterystyczną
bitmapy jest głębia koloru, czyli liczba bitów wykorzystywanych do prezentacji kolorów
głębia koloru 1-bitowa – 2 kolory biały i czarny
8-bitowa – 2
8
, czyli 256 kolorów
24-bitowa – 2
24
, czyli 16 mln. Kolorów
∙ grafika wektorowa ‒ zapis obrazu oparty jest na formułach matematycznych, każdy element obrazu jest opisany
za pomocą pewnej liczby cech (położenie, barwa itp.), których wartości można zmieniać podczas edycji.
Sposoby kodowania dźwięków
Karta dźwiękowa określa natężenie dźwięku w danym momencie i zapisuje w postaci liczby 8- lub 16-to bitowej
Dźwięk może być zapisywany w wielu formatach o różnym stopniu kompresji np. WAV (platforma MS
Windows), MP3 (MPEG Audio Layer3), MP4 (MPEG-4)
Dane zapisywane przez programy użytkowe, które kodują informacje wg własnego systemu mogą zostać poprawnie
zinterpretowane tylko przez te programy lub programy pracujące w tym samym standardzie.
Bit – najmniejsza jednostka danych
‒ elementarna jednostka danych komputerowych reprezentowana w systemie binarnym jako 0 lub 1
Bajt = 8 bitów
6
4. Główne zadania i cechy systemu operacyjnego na przykładzie systemu Linux.
Każdy system operacyjny ma do spełnienia podstawowe cele:
∙ stworzenie bezpiecznego i niezawodnego środowiska
∙ efektywne zarzadzanie zasobami systemu komputerowego
∙ ochrona danych i pamięci ‒ tak aby jeden proces, w wyniku błędu lub zamierzonego działania nie mógł zniszczyć
lub pozyskać danych innego procesu
∙ zapewnienie wygodnej pracy użytkownikom
∙ automatyzacja najczęściej wykonywanych funkcji
Linux to wydajny i stabilny system operacyjny o strukturze Unixa,
doskonale nadający się do obsługi serwerów.
Istnieje ogromna ilość dystrybucji, do najpopularniejszych należą: Debian, Ubuntu, Fedora, Knoppix, Mandriva
Cechy systemu operacyjnego Linux:
∙ efektywność i stabilność systemu
∙ wielodostęp – wsparcie dla pracy z wieloma użytkownikami (na jednym komputerze może pracować kilkaset
użytkowników nie wpływając na siebie wzajemnie)
∙ wielozadaniowość, czyli praca procesora z podziałem czasu pomiędzy wiele zadań
∙ wieloprzetwarzanie, czyli praca wieloprocesorowa – wsparcie dla komputerów z większą niż jeden liczbą
procesorów
∙ obsługa różnych typów plików i różnych formatów plików wykonywalnych
∙ obsługa wielu różnych protokołów sieciowych, wsparcie dla kart sieciowych
∙ wykorzystanie współdzielonych bibliotek
∙ powszechna dostępność bez jakichkolwiek opłat licencyjnych (System Linux oparty jest na licencji GPL)
∙ bogaty zestaw oprogramowania umożliwiający szeroki zakres zastosowań
∙ możliwość pracy na wielu platformach sprzętowych przy stosunkowo niewielkich wymaganiach
∙ możliwość łatwej współpracy z innymi popularnymi systemami operacyjnymi
∙ bogata dokumentacja w wersji elektronicznej
∙ dostępność kodu źródłowego
7
5. Przegląd rodzajów licencji oprogramowania.
Licencja jest to umowa na korzystanie z aplikacji komputerowej, zawierana pomiędzy podmiotem mającym majątkowe
prawa autorskie do aplikacji a jej użytkownikiem.
Rodzaje licencji:
•
Komercyjna – wraz z zakupem użytkownik nabywa prawo do użytkowania programu, ale najczęściej nie może go
samodzielnie modyfikować.
•
Shareware – program rozpowszechniany jest za darmo z pewnym ograniczeniem, najczęściej czasowym lub
funkcjonalnym; po upływie określonego w licencji czasu należy program wykupić lub zaprzestać użytkowania, ew.
wykupić program w celu zwiększenia jego funkcjonalności.
•
Trial (ang. próba) – program można go używać przez z góry ustalony czas (od 7 do 90 dni). Programy na tej
licencji są w pełni funkcjonalne. Po upływie ustalonego czasu, jedyną rzeczą, na którą pozwoli program to rejestracja
albo usunięcie z dysku twardego.
Oprogramowanie shareware funkcjonuje dalej po okresie testowania ponaglając użytkownika do rejestracji,
natomiast wersja trial niestety nie działa dalej.
•
Freeware – program oferowany jest za darmo, ale użytkownik nie może go modyfikować.
•
Adware ‒ oprogramowanie (zazwyczaj zamknięte) rozpowszechniane za darmo zawierające funkcję wyświetlającą
reklamy zwykle w postaci banerów. Wydawca oprogramowania zarabia właśnie na tych reklamach. Zwykle jest też
możliwość nabycia wersji programu bez reklam za opłatą.
•
Open source (oprogramowanie wolne) – daje możliwość nie tylko korzystania z oprogramowania, lecz także jego
modyfikacji.
∙ GNU GPL (General Public License) – nakłada na autora oprogramowania obowiązek publikacji kodu
źródłowego.
∙ GNU LPGL (Lesser General Public License) – pozwala na łączenie licencji GPL z innego rodzaju, bardziej
liberalnymi licencjami, najczęściej BSD lub X11.
∙ X11 – jedna z najbardziej liberalnych licencji typu open source, pozwala na nieograniczone prawo do
użytkowania, modyfikowania oraz darmowego lub odpłatnego rozpowszechniania zmienionego programu, przy
zachowaniu warunków licencyjnych oraz informacji o autorze.
∙ BSD (Berkeley Software Distribution) – bardzo liberalna licencja pozwalająca m.in. na modyfikację i
rozpowszechnianie oprogramowania bez konieczności udostępniania kodu źródłowego.
8
6. Podstawowe koncepcje relacyjnych baz danych.
Podstawowym pojęciem modelu jest relacja.
Relacja
to dwuwymiarowa tablica, w której na przecięciu wiersza i kolumny znajduje się wartość atomowa (dana
elementarna – nierozkładalna).
Relacyjna baza danych
jest zbiorem relacji powiązanych ze sobą asocjacjami.
Każdy wiersz tablicy nazywa się
krotką.
Krotka to lista wartości atomowych).
W danej relacji nie ma powtórzeń krotki.
Porządek krotek w relacji nie jest istotny.
Każda relacja ma określone własności zwane
atrybutami
(nagłówki kolumn).
Atrybuty mają unikalne nazwy.
Wartości atrybutów są atomowe (elementarne) i jednorodne (reprezentują ten sam typ danych).
Każdy atrybut posiada
domenę
czyli zbiór dopuszczalnych wartości (przez określenie typu danych).
Porządek atrybutów w relacji nie jest istotny.
Każda relacja musi mieć
Klucz główny
(
Primary Key
).
Jest to kolumna lub zbiór kolumn, które w sposób unikalny definiują wiersz w danej tabeli.
Klucz obcy
jest kolumną lub zbiorem kolumn, który jest kluczem głównym w innej tabeli.
Asocjacja
pomiędzy relacjami utworzona jest poprzez zaznaczenie, iż wartość z jednej tabeli, w której jest kluczem
obcym, jest powiązana z wartością z innej tabeli, gdzie jest kluczem głównym.
Wartość klucza obcego nie może istnieć bez powiązania z kluczem głównym.
Typy asocjacji:
∙ jeden ‒ do jednego
∙ jeden – do wielu
∙ wiele ‒ do wielu
Mechanizm gwarantujący poprawność wprowadzanych danych to
ograniczenia integralnościowe
– ograniczenie
dozwolonych wartości, czyli zawężenie dziedziny (domeny) atrybutu.
Normalizacja
to proces organizacji danych w bazie danych, który umożliwia wyeliminowanie powtarzających się
i niespójnych zależności.
9
7. Podstawowe instrukcje języka SQL.
Język SQL został opracowany w 1987 roku z myślą o relacyjnych bazach danych.
Składa się on z trzech składowych:
•
języka definiowania danych ‒ DDL (Data Definition Language)
CREATE
– utworzenie struktury: bazy, tabeli, indeksu
DROP
– usuwanie struktury np. tabeli
ALTER
‒ zmiana właściwości struktury np. zmiana nazwy tabeli, zmiana nazwy kolumny w tabeli, dołączenie
nowej kolumny w tabeli
•
języka kontroli danych ‒ DCL (Data Control Language)
GRANT
– nadawanie uprawnień
REVOKE
‒ odbieranie nadanych lub cofniętych uprawnień
DENY
– odmowa uprawnień (nadawanie uprawnień negatywnych)
•
języka operowania na danych ‒ DML (Data Manipulation Language):
SELECT
– pobieranie danych z bazy
INSERT
– wstawianie wierszy tabeli
UPDATE
– modyfikacja zawartości wierszy
DELETE
– usuwanie wierszy
10
8. Problemy związane ze współbieżnym wykonaniem operacji na bazie danych – zjawiska
niepożądane.
1.
Brudny odczyt
– ma miejsce wtedy, gdy pewne instrukcje wewnątrz transakcji odczytują dane, które zostały
zmienione przez inną transakcję, zaś transakcja, która zmieniła dane, nie zatwierdziła jeszcze swoich działań.
2.
Odczyty nie dające się powtórzyć
– zjawisko zachodzi wtedy, gdy transakcja odczytuje zbiór danych, następnie
czyta dane ponownie i okazuje się, że dane nie są identyczne.
3.
Odczyty widmo
– gdy jedna transakcja aktualizuje tabelę, a inna transakcja w tym samym czasie dodaje nowy
wiersz w tabeli, wówczas nowy wiersz (choć powinien) nie zostaje zaktualizowany
4.
Zakleszczenie
– gdy dwie różne transakcje próbują zmienić te same dane w tym samym czasie, wówczas obie
sesje się zablokują, ponieważ każda z nich czeka na zakończenie drugiej.
Transakcja jest sekwencją instrukcji – operacją atomową, tzn. wykonywane są wszystkie instrukcje, albo żadna.
Jest to mechanizm zachowania spójności bazy danych w przypadku błędu lub awarii.
11
9. Przegląd podstawowych topologii sieci komputerowych.
Topologia fizyczna sieci określa sposób połączenia poszczególnych urządzeń sieciowych.
Wyróżniamy następujące fizyczne topologie sieci:
Magistrala ‒ Podstawowym medium transmisyjnym jest kabel koncentryczny tworzący szkielet sieci, do którego
podłącza się kolejne hosty. Wykorzystywana w sieciach lokalnych. Zaletą magistrali jest jej niska cena i łatwość
instalacji. Wadą jest zaś podatność na awarie i ograniczenia związane z rozbudową sieci.
Pierścień ‒ Hosty uporządkowane są w zamkniętą pętlę, pierścień. Każdy host połączony jest z dwoma sąsiadami.
Topologia pierścienia ma zastosowanie w sieciach lokalnych Zaletą jest niska cena oraz możliwość użycia różnych
mediów transmisyjnych na poszczególnych odcinkach. Wadą jest podatność na awarie i ograniczenia związane
z rozbudową sieci.
Podwójny pierścień – Urządzenia połączone są podwójnymi łączami, co pozwala na zachowanie transmisji w przypadku
awarii jednego z elementów sieci. Stosowana jest w sieciach szkieletowych, kampusowych i metropolitalnych. Jest
droższa od topologii pierścienia, ale jest bardziej niezawodna.
Gwiazda ‒ Wszystkie elementy sieci są podłączone do jednego punktu centralnego ‒ przełącznika (w starszych sieciach
koncentratora). Jest to najczęściej stosowana topologia w sieciach lokalnych. Zaletą jest duża odporność na awarie. Wadą
gwiazdy jest to, że wymaga użycia przełącznika, co zwiększa koszt instalacji.
Rozszerzona gwiazda – Łączy ze sobą wiele topologii gwiazdy, przełączniki uporządkowane są hierarchicznie.
12
Topologia hierarchiczna – Pod względem budowy zbliżona jest do topologii rozszerzonej gwiazdy. Przełączniki
połączone są z serwerem, który nadzoruje cały ruch danych, elementy sieci są połączone za pomocą drzewa połączeń.
Topologia mieszana – Stanowi połączenie sieci o różnych topologiach. Najczęściej używane są dwa rodzaje topologii
mieszanych: topologia gwiazda-magistrala oraz topologia gwiazda-pierścień.
Topologia siatki częściowej – Oprócz koniecznych połączeń sieć zawiera połączenia nadmiarowe. Rozwiązanie często
stosowane w sieciach, w których jest wymagana wysoka bezawaryjność.
Topologia pełnej siatki ‒ Każdy węzeł jest bezpośrednio połączony ze wszystkimi pozostałymi. Topologia siatki
charakteryzuje się maksymalną niezawodnością. Szczególnie przydatna dla sieci bezprzewodowych, natomiast dla
rozwiązań kablowych jest bardzo kosztowna ze względu na ilość łącz oraz wieloportowych urządzeń.
Topologia logiczna obejmuje sposób i reguły określające dostęp hostów do sieci
Topologia rozgłaszania – polega na tym, że host wysyła dane do wszystkich hostów podłączonych do medium, w
którym mogą występować kolizje. Przykładem są sieci Ethernet
Topologia przekazywania tokenu (żetonu) ‒ polega na kontrolowaniu transmisji danych poprzez przekazywanie
elektronicznego tokenu (żetonu). Host, który w danym momencie posiada token może skorzystać z medium, inne muszą
czekać aż go otrzymają. Dzięki takiemu rozwiązaniu nie występują kolizje. Np. sieci Token Ring , FDDI.
13
10. Definicja i funkcje protokołu komunikacyjnego – przegląd najczęściej używanych
protokołów komunikacyjnych.
Protokoły komunikacyjne to zbiór ścisłych reguł i kroków postępowania, które są automatycznie wykonywane przez
hosty w celu nawiązania łączności i wymiany danych.
Stosem najczęściej wykorzystywanych protokołów komunikacyjnych używanych w sieciach komputerowych jest
protokół
TCP/IP.
Protokół TCP/IP składa się z 4 warstw:
Warstwa aplikacji, która zawiera protokoły w większości pracujące w architekturze klient-serwer i świadczące różne
usługi na rzecz użytkownika.
HTTP
– protokół przesyłania dokumentów hipertekstowych w sieci WWW, jest używany do komunikacji między
przeglądarkami stron a serwerami.
HTTPS
– szyfrowana odmiana protokołu HTTP
SMTP
‒
protokół opisujący sposób wysyłania poczty z oprogramowania klienckiego
POP 3
‒ protokół pozwalający na odbiór poczty elektronicznej ze zdalnego serwera do lokalnego komputera, umożliwia
jedynie pobieranie i kasowanie poczty
FTP
(protokół transferu plików) – protokół typu klient-serwer, który umożliwia przesyłanie plików z i na serwer
TELNET
protokół komunikacyjny do obsługi odległego terminala w architekturze klient-serwer, pozwala na zdalne
połączenie się terminala z oddalonym od niego serwerem przy użyciu sieci.
SSH
jest usługą funkcjonalnie zbliżoną do usługi TELNET z tym, że informacja jest szyfrowana
Warstwa transportu ‒ odpowiada za kontrolę przepływu i retransmisję danych.
Głównym zadaniem protokołów tej warstwy jest dzielenie na segmenty strumienia danych przychodzącego z warstwy
aplikacji, a po stronie odbiorcy złożenie odebranych segmentów w ciągły strumień.
Protokołami tej warstwy są:
TCP
– protokół bezpołączeniowy, czyli bez potwierdzenia odbioru
UDP
‒ protokół połączeniowy, który
zapewnia mechanizmy pozwalające na dostarczenie danych w prawidłowej
kolejności oraz retransmisję zagubionych lub błędnych danych
Warstwa internetowa , której zadaniem jest przesyłanie danych z miejsca źródłowego do docelowego, niezależnie od
ścieżek i sieci napotkanych po drodze.
Protokołem tej warstwy jest protokół
IP
, który określa dokładany format wszystkich przesyłanych danych, definiuje
schemat adresowania i wybiera trasę którą będą przesyłane dane.
Używane są dwie wersje IPv4 oraz v6. IPv6 jest najnowszą wersją protokołu.
Warstwa dostępu do sieci ‒ jej zadaniem jest połączenie hosta z siecią
Protokoły działające w tej warstwie to:
ARP
– przekształca adresy IP na adresy fizyczne MAC (przypisane fizycznie do m.in. kart sieciowych)
RARP
służy do ustalenia adresu IP na podstawie MAC
14
11. Serwer plików i architektura klient-serwer – przykłady realizacji.
Serwer plików - jest to komputer wyspecjalizowany w celu przechowywania dużych ilości danych, przystosowany do
szybkiego ich transferu i uzyskiwania dostępu w krótkim czasie dla wielu użytkowników jednocześnie.
Potrafi on przechowywać dane w postaci aplikacji, plików, folderów zapewniając bezpieczeństwo i komfort pracy.
Serwer plików, ze względu na konieczność obsługi wielu żądań jednocześnie, powinien być wyposażony w szybki
procesor lub procesory, bardzo dużą ilość pamięci RAM i sporo przestrzeni dyskowej.
Udostępnianie może być zrealizowane poprzez:
‒ protokół komunikacyjny np.:
FTP – i wtedy jest to serwer FTP
HTTP – i wtedy jest to serwer WWW
‒ sieciowy system plików np.:
NFS
Coda
Andrew FS
Architektura klient-serwer to sposób przetwarzania informacji gdzie proces żądający usług i proces dostarczający usług
są wyodrębnione. Jest ona szczególnie wygodna w systemach sieciowych i rozproszonych.
Klient wysyła żądanie dostępu do danej usługi lub zasobu do serwera i oczekuje na odpowiedź od serwera
Serwer ‒ świadczy usługę lub udostępniająca zasoby, czeka na żądania od klientów, w momencie otrzymania żądania,
przetwarza je, a następnie wysyła odpowiedź.
Najprostszym przykładem jest organizacja dostępu do zasobów Internetu, gdzie:
∙
rolę serwera pełni serwer WWW
∙
rolę klienta pełni przeglądarka internetowa
Inny przykład:
∙ rolę serwera pełni serwer baz danych
∙ klientem jest aplikacja pobierająca dane
Innym przykładem architektury jest tzw. cienki klient, czyli maszyna z oprogramowaniem przeznaczonym tylko do
wyświetlania danych, gdy przetwarzanie odbywa się wyłącznie na serwerze .
Przykładem cienkiego klienta może być korzystanie z witryny WWW z serwisem transakcyjnym banku internetowego.
Użytkownik za pomocą przeglądarki internetowej może sprawdzać stan rachunku i wydawać dyspozycje, lecz
weryfikacja danych (np. kontrola salda) jest przeprowadzana po stronie serwera.
Odmiennym typem architektury klient-serwer są sieci peer-to-peer, w której każdy komputer jest jednocześnie serwerem
i klientem, gdyż z jednej strony udostępnia pliki innym użytkownikom sieci, z drugiej zaś korzysta z cudzych zasobów.
15
12. Bezpieczeństwo zasobów sieciowych – najczęściej spotykane typy zagrożeń
i zabezpieczeń.
Zagrożenia w sieci:
• Zamierzone związane z działaniami wykonywanymi z premedytacją, szpiegostwo, wandalizm, terroryzm itd.
• Losowe wewnętrzne to niezamierzone błędy i zaniedbania ludzi, defekty sprzętu i oprogramowania,
zniekształcania lub zagubienie informacji itd.
• Losowe zewnętrzne to skutki działania temperatury, wilgotności, zanieczyszczenia powietrza, zakłócenia źródła
zasilania, wyładowania atmosferyczne.
Atak sieciowy (hakerski) to rozmyślne działanie przeprowadzane bez autoryzacji, które ma na celu zakłócenie
funkcjonalności systemu informatycznego wraz z przetwarzaną w nim informacją, ograniczenie dostępu do niego,
kradzież lub zniszczenie danych w nim znajdujących się itp.
1.
Atak złośliwego kodu (złośliwe oprogramowanie)
Koń trojański (trojan) jest to program, który umożliwia zdalne przejęcie pełnej kontroli nad danym komputerem,
przejęcie sterowania urządzeniami komputera (klawiatura, mysz, CD-ROM, monitor),
podsłuchiwanie
komunikacji między komputerami, przechwytywanie hasła użytkownika, rozsyłanie spamu.
Wirus komputerowy to złośliwy program ukryty wewnątrz innego programu czy pliku, którego zadaniem jest
powielanie się w jak największej ilości kopii, na ogół posiada również funkcje destrukcyjne, uprzykrzające czy
nawet uniemożliwiające użytkownikowi korzystanie z komputera.
Robak ‒ swoim działaniem przypomina wirusa komputerowego, jednakże do powielania się wykorzystuje on
przede wszystkim sieć.
Spyware – program podsłuchujący (szpiegujący), gromadzący informacje o użytkowniku i jego działaniach bez
jego wiedzy (historia komend, sekwencje znaków wprowadzanych z klawiatury w tym hasła, numery kart
kredytowych, odwiedzane adresy WWW, a nawet zrzuty ekranowe).
Rootkity – ukrywają niebezpieczne pliki i procesy, narzędzie pomocnicze do włamań do systemów
informatycznych, umożliwiające przejęcie kontroli nad systemem
Keylogger ‒ rejestruje wszystkie naciśnięcia klawiszy klawiatury umożliwiając przechwycenie poufnych
danych
2.
DoS (Denial of Service)
‒ atak na system komputerowy, bądź usługę w celu uniemożliwienia działania poprzez
zajęcie wszystkich wolnych zasobów
3.
Sniffing
‒ polega ona na "podsłuchiwaniu" wszystkich pakietów krążących po sieci komputerowej, umożliwia
wychwycenie ważnych informacji, takich jak hasła, numery kart kredytowych czy dane osobowe
4.
Atak spamowy
‒ zalewanie niechcianymi wiadomościami zasobów komputerowych
5.
Atak phishingowy
‒ rozsyłanie fałszywych wiadomości nakłaniających do podania poufnych danych
16
Typy zabezpieczeń:
Zabezpieczenie serwera
‒ mechanizmy takie jak szyfrowanie danych, odpowiednio skonfigurowane zapory sieciowe oraz routery
‒ zabezpieczenie przed nieuprawnionym dostępem przez nadawanie uprawnień przez administratora serwera
Zabezpieczenie komputera użytkownika
‒ regularne aktualizowanie oprogramowania systemowego i pozostałych aplikacji zainstalowanych w systemie
‒ zainstalowanie i regularne aktualizowanie oprogramowania antywirusowego, co pozwoli wykryć szkodliwe
oprogramowanie
‒ korzystanie z pakietów poszerzonych o osobistą zaporę ogniową, które pozwala na wykrywanie prób włamań
oraz blokowanie szkodliwego i podejrzanego ruchu
‒ korzystanie z blokerów spamu
‒ korzystanie z klawiatury ekranowej
Zabezpieczenie przesyłanej informacji
‒ stosowanie różnych metod szyfrowania
‒ stosowanie podpisu elektronicznego w celu weryfikacji autentyczności dokumentu oraz osoby, która ten
dokument podpisała
‒ bezpieczna transmisja danych przy pomocy protokołów sieciowych SSL czy TLS
17
13. Klasyfikacja modeli ekonometrycznych.
Model ekonometryczny to równanie lub układ równań, który przedstawia zasadnicze powiązania ilościowe między
rozpatrywanymi zjawiskami ekonomicznymi.
W modelu ekonometrycznym można wyróżnić zjawisko ekonomiczne wyjaśniane przez model, czyli zmienną objaśnianą
oraz zjawiska, które oddziałują na zmienną objaśnianą, czyli zmienne objaśniające.
Modele ekonometryczne można sklasyfikować według różnych kryteriów:
∙ liczby równań w modelu:
model jednorównaniowy
– występuje w nim tylko jedna zmienna objaśniana
model wielorównaniowy
– jest układem równań, każde równanie zbudowane jest dla innej zmiennej
objaśnianej
∙ liczby zmiennych objaśniających:
model z jedną zmienną objaśniającą
model z wieloma zmiennymi objaśniającymi
∙ postaci analitycznej:
liniowy
‒ wszystkie zależności w modelu są liniowe
nieliniowy
np. wykładniczy, potęgowy
∙ roli czynnika czasu w równaniach modelu:
statyczny
– nie uwzględnia czynnika czasu
dynamiczny
– uwzględnia czynnik czasu przez dodanie zmiennej opóźnionej lub/i zmiennej czasowej,
np. model autoregresji, model trendu
∙ występowania składnika losowego:
stochastyczny
‒ występuje składnik losowy
deterministyczny
– brak składnika losowego
∙ ze względu na powiązania między zmiennymi łącznie współzależnymi:
prosty
– brak powiązań między zmiennymi łącznie współzależnymi
rekurencyjny
– istnieją jednostronne powiązania między zmiennymi łącznie współzależnymi
o równaniach współzależnych
– istnieją wielostronne powiązania między zmiennymi łącznie
współzależnymi
∙ ze względu na czynniki poznawcze modeli:
przyczynowo-skutkowy
– do badania zjawisk ekonomicznych,
wyrażają związki przyczynowo-skutkowe
między zmiennymi objaśniającymi i objaśnianymi
symptomatyczny
– zmienne objaśniające są skorelowane ze zmienną objaśniającą, ale nie wyrażają źródeł
zmienności tej zmiennej
tendencji rozwojowej
‒ w charakterze zmiennej objaśnianej występuje zmienna czasowa
18
14. Struktura liniowego modelu decyzyjnego.
Kiedy pojawia się problem decyzyjny?
1. Pojawia się decydent (osoba lub grupa osób), który musi rozwiązać problem;
2. Decydent chce osiągnąć jakiś cel;
3. Istnieją co najmniej dwa sposoby na osiągniecie zakładanego celu;
4. Istnieje otoczenie, które wpływa na sposób rozwiązania problemu lub jego wynik.
Składowe liniowego modelu decyzyjnego
∙
zmienne decyzyjne
– wielkości, które mają być wyznaczone
∙
parametry modelu
‒ z góry ustalone dane
∙
warunki wewnętrznej zgodności
‒
warunki ograniczające
, czyli ograniczenia nałożone na dostępne zasoby opisane za pomocą układu
równań lub nierówności
‒
warunki brzegowe
(warunki nieujemności) określają przedział nieujemnych wartości,
w którym znajdują się zmienne decyzyjne
∙
funkcja celu
mierząca cel, jakim jest minimalizacja kosztu lub maksymalizacja zysku
Zbiór rozwiązań dopuszczalnych to obszar, w którym znajdują się punkty spełniające wszystkie ograniczenia
jednocześnie.
Zbiór ten to inaczej punkty oznaczające rozwiązania możliwe do uzyskania przy danych ograniczeniach.
W maksymalizacji funkcji celu zbiór ten jest wielokątem wypukłym, natomiast w minimalizacji funkcji celu zbiór
ten jest zbiorem wypukłymi otwartym.
Rozwiązanie dopuszczalne jest jednym z rozwiązań modelu, jednakże nie jest ono najlepsze.
Rozwiązanie optymalne jest to rozwiązanie najkorzystniejsze w danym modelu decyzyjnym, znajduje się ono
w zbiorze rozwiązań dopuszczalnych.
19
15. Pojęcie prognozy oraz klasyfikacja prognoz wg różnych kryteriów.
Prognozowanie (predykcja) to naukowa metoda przewidywania zjawisk ekonomicznych w przyszłości.
Prognoza jest to wynik wnioskowania w przyszłość na podstawie modelu ekonometrycznego opisującego wybrane
zjawiska ekonomiczne.
Prognozą dopuszczalną jest taka prognoza, która w świetle przyjętego kryterium może być uznana za dostatecznie
dokładną lub wiarygodną.
Horyzont prognozy – okres dla którego dokonywana jest prognoza.
Klasyfikacja prognoz może być przeprowadzana według różnych kryteriów klasyfikacyjnych:
Kryterium horyzontu czasowego
∙ bezpośrednie (bezzwłoczne) do 1 miesiąca
∙ krótkoterminowe do 12 miesięcy
∙ średnioterminowe od 2 do 5 lat
∙ długoterminowe powyżej 5 lat
∙ prognozy operacyjne krótki horyzont czasowy (dzień, miesiąc, kwartał); w procesie bieżących decyzji i
w konstrukcji planów krótkoterminowych
∙ prognozy strategiczne dostarczają podstaw do podejmowania długofalowych decyzji
Kryterium stopnia szczegółowości
∙
ogólne
∙
szczegółowe (im na krótszy okres prognoza jest sporządzana, tym bardziej jest szczegółowa)
Kryterium charakteru
∙ ilościowe wynik prognozy wyrażony liczbowo
∙ jakościowe wynik prognozy wyrażony słownie
Kryterium funkcji lub celu
∙ prognozy badawcze mają na celu wszechstronne rozpoznanie przyszłości
∙ prognozy ostrzegawcze mają na celu ostrzeganie o niekorzystnym kształtowaniu się zjawisk
∙ prognozy normatywne dotyczą norm, które obowiązywać będą w przyszłości, określają zadania i środki (=
programowanie przyszłych działań)
∙ aktywne ‒ ich celem jest pobudzanie do działania
∙ pasywne mają na celu zniechęcenie odbiorcy do podejmowania określonych działań
Kryterium zakresu ujęcia
∙
całościowe ‒ globalne, kompleksowe
∙
częściowe ‒ odcinkowe, fragmentaryczne
Kryterium zasięgu terenowego
∙ światowe
∙ międzynarodowe
∙ krajowe
∙ regionalne
Kryterium zasięgu ekonomicznego
∙ prognozy makroekonomiczne
∙ prognozy mikroekonomiczne
20
16. Rodzaje cykli życia systemu.
Cykl życia systemu ‒ to ciąg wyodrębnionych, wzajemnie spójnych etapów, pozwalających na pełne i skuteczne
zaprojektowanie, a następnie użytkowanie systemu informatycznego.
Liniowy (tradycyjny, kaskadowy) cykl życia systemu
‒ następny etap zaczyna po zakończeniu poprzedniego
‒ koniecznymi cechami modelu są jego zupełność i kompletność oznaczające konieczność ścisłego opisu
wszystkich etapów niezbędnych przy projektowaniu i użytkowaniu elementów systemu
‒ osiągnięcie stanu użytkowania systemu jest możliwe dopiero pod koniec wykonania całego, zwykle
czasochłonnego cyklu
‒ olbrzymie koszty usuwania błędów popełnionych na wczesnych etapach oraz korekty wymagań
‒ sprawdzony w praktyce
Spiralny cykl życia systemu
‒ poszczególne fazy cyklu życia systemu realizowane są na zasadzie spirali
‒ kolejne wersje systemu są oceniane, weryfikowane i udoskonalane, w ten sposób powstają coraz bardziej
rozbudowane prototypy (za każdym razem wszystkie etapy cyklu życia są powtarzane od początku)
‒ jest elastyczny (zmiany otoczenia, alokacja zasobów, niestabilność wymagań)
‒ wadą jest długotrwałe dochodzenie do rozwiązania docelowego i dodatkowe koszty tworzenia kolejnych
prototypów
Iteracyjno-przyrostowy cykl życia systemu
‒ cechą charakterystyczną jest stopniowy przyrost funkcjonalności systemu, jego moduły mogą być na bieżąco
oprogramowane, wdrożone i użytkowane (przez kolejne iteracje następuje stopniowe, pełne wdrożenie systemu)
‒ istnieje możliwość wprowadzania bieżących zmian i korekt, stosownie do zmieniających się wymagań
‒ jest czasochłonny
21
17. Diagramy przepływu danych i modele związków encji.
Diagramy przepływu danych (DPD)
‒ najbardziej znana, powszechnie stosowana metoda analizy i projektowania
strukturalnego systemów informatycznych.
Zawiera 4 kategorie pojęciowe:
proces
‒ funkcja, działanie realizowane w systemie, przekształcające dane wejściowe w wynikowe
przepływ danych
– powiązanie pomiędzy procesami i innymi kategoriami diagramu przepływu danych
składnica
‒ zbiór, magazyn danych, które muszą być przechowywane w systemie określony czas
terminator
‒ źródło lub przeznaczenie danych, zewnętrzny obiekt, z którym komunikuje się system (osoby, działy,
jednostki organizacyjne…)
Diagram związków encji
‒ sposób modelowania danych za pomocą encji, związków i atrybutów.
Encja
– jednoznacznie identyfikowalny składnik badanej rzeczywistości, o którym informacja jest zbierana
i przechowywana
Związek
– powiązanie pomiędzy dwoma lub więcej encjami w danej dziedzinie przedmiotowej
1:1 (jeden do jeden) – encji odpowiada dokładnie jedna encja
1:N (jeden do wielu) – encji odpowiada jedna lub więcej encji
M:N (wiele do wielu) – jednej lub więcej encjom odpowiada jedna lub więcej encji
Atrybut
– cecha, element charakteryzujący encje i związki w dziedzinie przedmiotowej.
22
18. Struktura języka UML.
UML (Unified Modeling Language) jest graficznym językiem ogólnego przeznaczenia do obrazowania, specyfikowania,
tworzenia i dokumentowania systemów informatycznych.
Diagramy struktury:
1.
Diagram klas
(najstarszy) to graficzne przedstawienie statycznych, deklaratywnych elementów dziedziny
przedmiotowej oraz związków między nimi.
2.
Diagram obiektów
przedstawia kompletny stan systemu w wybranych momentach jego działani
3.
Diagram pakietów
przedstawia logiczną architekturę systemu w postaci zestawu pakietów połączonych
zależnościami
4.
Diagram struktur połączonych
przedstawia wzajemnie współdziałające części dla realizacji określonego
zadania
Diagramy wdrożeniowe:
5.
Diagram komponentów
wskazuje organizację i zależności między komponentami
6.
Diagram rozlokowania
przedstawia sieć połączonych ścieżkami komunikowania węzłów z ulokowanymi na
nich artefaktami
Diagramy dynamiki:
7.
Diagram przypadków użycia
(najważniejszy) to graficzne przedstawienie przypadków użycia, aktorów oraz
związków między nimi, występujące w danej dziedzinie przedmiotowej.
8.
Diagram czynności
(najbardziej podobny do podejścia strukturalnego) przedstawia sekwencyjne i/albo
współbieżne przepływy sterowania i danych pomiędzy logicznie uporządkowanymi ciągami czynności, akcji i
obiektów
9.
Diagram maszyny stanowej
odzwierciedla dyskretne, skokowe zachowanie skończonych systemów stan-
przejście
Diagramy interakcji (najbardziej rozbudowane):
10.
Diagram sekwencji
przedstawia interakcję klasyfikatorów w postaci sekwencji wymienianych między nimi
komunikatów
11.
Diagram komunikacji
przedstawia strukturalne powiązania wyrażone asocjacjami oraz wymianę komunikatów
pomiędzy klasyfikatorami
12.
Diagram harmonogramowania
przedstawia zmiany możliwych stanów klasyfikatorów uczestniczących w
interakcji na osi czasu
13.
Diagram sterowania interakcją
przedstawia związki pomiędzy wystąpieniami interakcji opisanymi z
wykorzystaniem dowolnego rodzaju diagramów interakcji
23
19. Diagramy przypadków użycia i diagramy klas.
Diagram przypadków użycia to graficzne przedstawienie przypadków użycia, aktorów oraz związków między nimi,
występujących w danej dziedzinie przedmiotowej.
‒ umożliwiają analizę obszaru zastosowań, dziedziny przedmiotowej
‒ pozwalają na opracowanie projektu przyszłego systemu
‒ stanowią przystępną i zrozumiałą platformę komunikacji i współdziałania udziałowców systemu – tj. aktorów,
twórców, inwestorów i właścicieli
‒ jest rodzajem umowy, kontraktu pomiędzy udziałowcami co do zakresu i funkcjonalności przyszłego systemu
‒ stanowią podstawę do testowania funkcji systemu w dalszych etapach jego cyklu życia
DPU zawierają 3 główne kategorie pojęciowe:
∙ przypadek użycia to specyfikacja ciągu akcji i ich wariantów, które system może wykonać poprzez interakcje
z aktorami tego systemu
∙ aktor to spójny zbiór ról odgrywanych przez użytkowników przypadku użycia w czasie interakcji z tym
przypadkiem użycia
∙ związek to semantyczne powiązanie pomiędzy elementami modelu (asocjacja – najważniejszy ze związków,
uogólnienie, zależność, realizacja)
Diagram klas to graficzne przedstawienie statycznych, deklaratywnych elementów dziedziny przedmiotowej oraz
związków między nimi.
Podstawę identyfikacji klasy stanowią grupy obiektów charakteryzujące się:
‒ identyczną strukturą danych, tj. takimi samymi atrybutami
‒ identycznym zachowaniem, tj. takimi samymi operacjami
‒ identycznymi związkami
‒ identycznym znaczeniem w określonym kontekście.
Klasę standardowo przedstawia się jako prostokąt złożony z trzech części: nazwy klasy, zestawu atrybutów, zestawu
operacji.
24
20. Obiektowe projektowanie systemów informatycznych.
System w podejściu obiektowym stanowi kolekcję wzajemnie powiązanych elementów zwanych obiektami
spełniających w nim określone role.
Główne pojęcia:
∙ obiekt ‒ każdy byt (pojęcie lub rzecz) mający znaczenie w kontekście rozwiązywania problemu w danej
dziedzinie przedmiotowej
Dwa obiekty są tak jak w rzeczywistości dwoma unikalnymi, oddzielnymi obiektami (bytami) nawet jeśli
posiadają takie same cechy, obiekty są odróżniane poprzez swoje istnienie, a nie cechy opisowe.
Każdy obiekt zawiera dane (atrybuty i wartości) i procesy (metody).
Każdy obiekt posiada jeden lub więcej atrybutów oraz jedną lub więcej metod.
∙ enkapsulacja (lub hermetyzacja) – różnicowanie dostępu do obiektu poprzez ujawnienie otoczeniu tylko tych
informacji o jego atrybutach/operacjach, które są niezbędne do efektywnego odwoływania się do tego obiektu
w systemie za pośrednictwem komunikatów .
Każdy obiekt stanowi oddzielny moduł (kapsułę) i zawiera dane i proces umożliwiające odgrywanie określonej
roli w systemie. Nosi to miano enkapsulacji bądź hermetyzacji i oznacza wzajemną niezależność danych
przechowywanych w modułach. A zatem dane jak i procesy dotyczące obiektu modelowane są równocześnie.
∙ atrybut ‒ to określony, pojedynczy składnik danych w obiekcie, wszystko, co wiadomo o obiekcie zawarte jest
w jego atrybutach, wartości atrybutów obiektu zmieniają się w czasie i stanie obiektu
∙ metody ‒ to wbudowane w obiekt procesy, które operują na wartościach atrybutów, zapewniają współdziałanie
obiektów w modelu obiektowym, Wyróżniamy: metody zewnętrzne (public), metody wewnętrzne (private)
∙ polimorfizm – możliwość nadawania tej samej nazwy różnym operacjom oraz wykonywania różnych procedur i
akcji przez operacje o tych samych nazwach; pozwala na redukcję liczby nazw operacji
∙ komunikat – specyfikacja łączności między klasami, zawierająca zlecenia wykonania określonej operacji
∙ klasa – uogólnienie kolekcji wystąpień obiektów, które mają takie same atrybuty, operacje, związki i znaczenie
∙ hierarchie klas i dziedziczenie – przyporządkowanie atrybutów i operacji klasom obiektów na podstawie
hierarchicznej zależności między nimi; możliwe jest wielokrotne dziedziczenie, co oznacza, że dana klasa
dziedziczy atrybuty i operacje z dowolnej liczby klas nadrzędnych
∙ ogniwo