Rodzaje pamięci
_ operacyjna - układy scalone
RAM - odczyt i zapis (Random Access Memory) : DRAM, SRAM
ROM - tylko odczyt (Read Only Memory) ; PROM, EPROM
_ masowa - dyski magnetyczne, odczyt i zapis
_ zewnętrzna
_ magnetyczne - dyski, ta my
_ optyczne - CD ROM, WORM, CD RW, DVD
_ Parametry pamięci
_ pojemność (kilo-, mega-, giga-, terabajty...)
_ czas dostępu (mili-, mikro-, nano-, pikosekundy...)
_ czas cyklu
_ szybko transmisji
Operatory logiczne
. NOR
(negacja sumy)
.NAND
(negacja iloczynu)
. NOT (negacja)
. OR (suma)
. AND (iloczyn)
Przebieg wykonania programu
_ Pamięć operacyjna, podzielona na segmenty,
strony i słowa, przechowuje rozkazy
i dane wykonywanych programów ...
_ Słowa pamięci adresowane są przez układy
procesora (za pośrednictwem szyny adresów)
_ Rozkazy i dane pobierane s do rejestrów
procesora przez szyn danych
_ Układy sterujące wykonuj rozkazy jako serie
mikrooperacji taktowane zegarem systemowym
Rodzaje komputerów
Komputery centralne, mainframe ;
_ Minikomputery, serwery i stacje robocze
_ Mikrokomputery
Oprogramowanie systemowe
i narzędziowe
_ Systemy operacyjne
_ mikrokomputery: MS DOS, MS Windows, Linux, OS/2...
_ serwery, stacje robocze: Windows NT, Unix, OS/400 (IBM)...
_ komputery centralne: VM, MVS (IBM)...
_ sieciowe: Novell Netware, Windows NT...
_ Oprogramowanie narzędziowe
m.in. Symantec (Norton...), programy share- i freeware
_ wspomaganie współpracy z urządzeniami i programami
_ testowanie konfiguracji i monitorowanie funkcji komputera
_ kompresja i archiwacja danych
_ szyfrowanie i zabezpieczanie informacji
_ ochrona dostępu do zasobów
Języki i narzędzia programowania
_ Język programowania to zbiór symboli i zasad służących
do pisania programów komputerowych przez człowieka
_ Implementacja języka programowania to oprogramowanie
wspomagające tworzenie programów w tym języku:
_ Translator, tłumaczący teksty programów na postać binarną
_ Edytor tekstu programów „ród owych”
_ Narzędzia wspomagające testowanie i uruchomienie
_ Zintegrowane środowiska tworzenia programów
_ (... Turbo Pascal firmy Borland)
_ Wizualne środowiska programowania obiektowego
_ (... Delphi firmy Borland/Inprise, Visual Basic Microsoftu)
MS Access: baza danych
_ Obiektowe środowisko tworzenia i użytkowania
aplikacji relacyjnych baz danych:
_ Tabele (uporządkowane zasoby danych)
_ Zapytania (przetwarzanie danych wg instrukcji SQL)
_ Formularze (wizualizacja danych, środki dialogu)
_ Raporty (systematyczne zestawienia danych)
_ Makra (automatyzacja pracy z baz danych)
_ Procedury Access Basic (programowanie)
IV.2 MS Excel: arkusz obliczeniowy
_ Obliczenia (adresowane pola, wartości i formuły)
_ Wykresy (wbudowane lub w oddzielnych arkuszach)
_ Listy danych, proste bazy danych
(sortowanie, filtrowanie, sumowanie...)
_ Synteza danych (tabele przestawne)
_ Analiza danych (scenariusze oblicze , statystyka)
_ Makra, procedury Excel Basic (programowanie)
IV.3 MS PowerPoint: prezentacje
_ Tekst i układ prezentacji (widoki, strony...)
_ Grafika (przybornik, paleta kolorów...)
_ Efekty animacji (standardowe, definiowane...)
_ Wbudowane obiekty (wykresy, równania...)
_ Ułatwienia pracy (wizardy, szablony)
_ Drukowanie (slajdy, materia y, komentarze)
IV.4 MS Word: edytor tekstu
_ Pisanie i edycja tekstów (czcionka, akapit...)
_ Wygląd strony (marginesy, nagłówki, stopki...)
_ Wzorce (style akapitów, szablony dokumentów...)
_ Włączanie obiektów (grafika, wzory...)
_ Redakcja dokumentów (sekcje, spisy...)
_ Grupowa praca nad dokumentem
_ Korespondencja seryjna (koperty, listy...)
_ Makra Word Basic (automatyzacja czynno ci)
_ Dokumenty w formacie HTML (strony WWW)
Protokół transmisji TCP/IP
( Transmission Control Protocol/ Internet Protocol)
zestaw procedur komunikacyjnych i standardów łączenia komputerów o różnej architekturze
Lata 70-te, od standardów narzucanych przez wielkich producentów do systemów otwartych
_ SNA (System Network Architecture IBM)
standard forsowany w 1-szym okresie rozwoju sieci
_ DNA (Digital Network Architecture DEC)
architektura sieciowa z protokołami komunikacji
warstwach, rozwój w stron OSI
_ Architektura systemów otwartych OSI-RM/ISO
(Open System Interconnection Reference Model/
International Organisation for Standarization)
Sieci rozległe i publiczne
_ WAN, MAN (Wide...; Metropolitan...)
_ Udostępniane przez operatorów na rzecz organizacji tworzących sieci rozległe
_ Rodzaje transmisji
_ sieć pakietowa (packet-swiching): X.25, Frame Relay; ATM - g łs, obraz i dane)
_ sieć zintegrowanych usług ISDN
_ Rodzaje linii
_ dzierżawione
_ komutowane
Protokoły specyficzne dla Internetu
_ Połączenia komputera z Internetem przez modem
_ PPP (Point-to-Point Protocol) - obecnie używany
_ SLIP (Serial Line Internet Protocol) - dawniejszy
_ Poczta elektroniczna czyli e-mail
_ wysy anie - SMTP (Simple Mail Transfer Protocol)
_ odbieranie - POP3 (Post Office Protocol)
- IMAP (Internet Message Access Protocol)
_ Nazwy domen: protokó DNS (Domain Name Service)
_ hierarchiczny system adresów i nazw
_ serwery nazw, rozproszona baza danych
Adresy w Internecie
_ Unikalny adres IP dla każdego urządzenia (komputer, drukarka...);
_ Adres jest binarną liczbą 32-bitow , podawany w formacie:
###.###.###.###, np. 148.81.78.50
World Wide Web
_ Nowe oblicze Internetu: „śiatowa pajęczyna”
rozproszone w całym ś wiecie zasoby informacji
dostępne z jednej aplikacji - przeglądarki stron WWW
na dowolnym komputerze dołączonym do sieci
_ HTML HyperText Markup Language
_ język opisu stron WWW
_ dokumenty (strony) WWW zawieraj odnośniki
(czniki - hypertext links) do innych stron w sieci
_ HTTP HyperText Transfer Protocol
_ protokół przesyłania stron WWW
200 000 000 komputerów w internecie.
Usługi dostępne w Internecie
Podstawowe:
_ E-mail, serwery pocztowe SMTP/POP(IMAP)
korespondencja elektroniczna z całym światem
rozszerzenia w standardzie MIME
_ Serwery FTP - udostępnianie plików (np. oprogramowania)
_ Telnet, dostęp do odległych systemów informatycznych
_ Grupy dyskusyjne (Usenet)
_ Pogawędki internetowe (IRC Internet Relay Chat),...
_ Na platformie WWW:
_ system przekazywania informacji; strony, witryny, portale...
_ wyszukiwarki, serwisy informacyjne, giełdy, aukcje...
_ Projektowanie bazy danych:
odwzorowanie modelu pojęciowego
na schemat bazy danych,
czyli logiczną strukturę danych właściwą dla SZBD
_ Model relacyjny
_ Codd 1970, oparty na poję ciach zbioru i relacji
_ Model sieciowy, oparty na konstrukcji „kosetu”
_ Codasyl (od 1969...)
_ Model hierarchiczny
_ zawęż ona postać modelu sieciowego
Funkcje użytkowania SZBD
_ Definiowanie struktur danych
_ rekordy, relacje - schematy, podschematy...
_ Wprowadzanie / edycja / aktualizacja danych
_ programowa, interakcyjna
_ Wyszukiwanie danych
_ programowe, interakcyjne i wizualne
_ Manipulacja danymi
_ środki programowania aplikacji bazodanowych
_ Prezentacja danych
_ arkusze, raporty, grafika
Języki systemów baz danych
_ Języki opisu danych
DDL (Data Description Language)
_ opis pól rekordów tabel, kluczy i ograniczeń
tworzenie i usuwanie tabel bazy danych
_ Języki manipulacji danymi
DML (Database Manipulation Langauge)
_ wprowadzanie danych do tabel
_ usuwanie danych z tabel
_ aktualizacja danych ...
_ Języki zapyta ń (query languages) - standard SQL
_ wybiórczy dostęp do informacji zawartej w bazie danych
Języki zapyta ń
_ SQL (Structured Query Language (+DML+DDL) )
Standardy ANSI 1989-1999
_ formalne: Quel, Prolog
_ graficzne: Query-By-Example, Cupid
_ języki naturalne
Rozproszone bazy danych
_ DDBS: Distributed Database Systems
_ Połączenie dwóch głównych technologii
_ Trzy scenariusze zdecentralizowanego _ centralna baza danych, kopie danych dla w ę z ł ów lokalnych
_ zdecentralizowane bazy w węzłach lokalnych, zdalne zapytania, transmisja wyników
rozproszona baza danych ze wspólnym modelem pojęciowym danych
Cechy rozproszonych baz danych
_ Dane rozproszone w różnych węzłach
_ fragmentaryzacja
_ replikacja
_ uzyskanie żądanej informacji może wymagać złożenia danych z różnych lokalizacji
_ Zasady przezroczystości
_ przezroczystość geograficzna: użytkownicy nie wiedzą , skąd pobieraj ą dane
_ przezroczystość fragmentaryzacji: użytkownicy nie wiedz ą o podziale danych
_ przezroczystość replikacji: użytkownicy nie wiedz ą istnieniu kopii danych
Centralne a rozproszone bazy danych
_ Zalety scentralizowanego podejścia
_ mniejsze koszty: sprzęt, programy, utrzymanie
_ scentralizowana kontrola dostępu
_ jeden wspólny schemat bazy danych...
_ Zalety rozproszonego podejścia
_ odporność na awarię w ę z ł a bazy danych oraz uszkodzenia łą czy transmisji danych
_ zmniejszenie objętości transmisji danych
_ przyspieszenie przetwarzania
_ elastyczność konfiguracji sprzętowej
_ heterogeniczne oprogramowanie...
Hurtownie danych
_ Różne potrzeby związane z wykorzystaniem zasobów danych
_ operacyjne: SZBD (+ nowe technologie)
_ analityczne, decyzyjne: hurtownie danych (+ systemy ekspertowe, bazy wiedzy)
_ Przykłady zapytań analitycznych
_ które produkty przynoszą najwięcej zysku?
_ którzy dostawcy s ą najmniej pewni?
_ Baza danych analitycznych: zintegrowana, tematyczna, nieulotna, wielowersyjna:
_ specyfika: wielkie zasoby danych, duży nakład obliczeń
_ metody: agregacje, podział na partycje
_ z ł o ż one i dynamiczne związki danych
Obiektowe bazy danych
_ Obiektowy model danych
_ klasy i typy, hierarchia klas, dziedziczenie
_ klasa: atrybuty i metody przetwarzania
_ obiekty: instancje klas; obiekty z ł o ż one
_ powiązania wskaźnikowe między obiektami
Multimedialne bazy danych (A)
.Różne rodzaje danych:
.sformatowany tekst, obrazy cyfrowe, dźwięki,
animacje, filmy, itp.
.Dane multimedialne o dużej objętości, specyfikacje
typów danych:
.Binary Large Object (BLOB)
.Character Large Object (CLOB)
.Model relacyjny lub obiektowy
.Własne rozwiązania producentów
Cztery generacje
1 : języki maszynowe
2 : asemblery
3 : języki wysokiego poziomu
4 : generatory aplikacji
Języki maszynowe
_ Języki pierwszej generacji, związane z maszynami
_ Programy to ciągi liczb binarnych, reprezentujących:
_ rozkazy
_ dane
_ adresy rozkazów i danych
Zmiana podstawy dwójkowej na heksadecymalną
skraca zapis programów (i adresów) binarnych
_ 16 cyfr: 0, 1, 2,..., 9, A, B, C, D, E, F
_ proste przejście: tetrady binarne _ cyfry 16-tkowe
np. 0001 _ 1, 0110 _ 6, 1111 _ F
Języki symboliczne - asemblery
_ Zapis programu binarnego za pomoc ą mnemonicznych symboli
_ Instrukcja programu = jeden lub kilka rozkazów procesora
_ Składnia instrukcji:
{Etykieta „:”} Kod_operacji {Operand {Operand}}
_ Symboliczne nazwy adresów pamięci i rejestrów
_ S ł owa kluczowe: nazwy rozkazów, dyrektyw...
_ Np: mov ax, [bx] `przenieś zawartość [bx] do ax
add ax, dana1 `dodaj zawartość dana1 do ax
push cx `po ł ó ż zawartość cx na stosie
jmp Np `skocz do rozkazu z etykietą
Języki wysokiego poziomu
. Języki trzeciej generacji - orientacja na człowieka
(programistę)
. Słownictwo, składnia i semantyka
. zbiór symboli i s ł ów kluczowych
. zasady tworzenia nazw własnych
. typy danych
. zasady konstrukcji wyra ż e ń
. deklaracje, instrukcje i dyrektywy
. struktura programu - procedury i funkcje, moduły
. Różne specyfiki zastosowań
Pierwsze języki wysokiego poziomu
. FORTRAN (FORmula TRANslator)
1957, obliczenia numeryczne
nadal rozwijany, standardy 58'/77'/91'
. ALGOL (ALGOrytmic Language)
1958, klasyczny j ę zyk algorytmiczny
publikacje algorytmów, standardy 60'/68'
. COBOL (COmmon Business Oriented Language)
1959, język dla zagadnień finansowych
do dziś używany, standardy 60'/74'/85'
Języki wyższego poziomu
Znane języki programowania
. Lisp 60' przetwarzanie list; sztuczna inteligencja
. APL 62' obliczenia, zwięzły zapis wyra ż e ń
. PL/I 64' Fortran + Algol + Cobol
. Basic 64' (Beginner's All-purpose Symbolic
Instruction Code) język dla początkujących
. Simula 67' symulacja komputerowa;
prekursor języków obiektowych
. Pascal 71' N.Wirth, definiowanie typów danych,
wskaźniki; uproszczenie/rozwinięcie Algolu
. Prolog 71' reprezentacja wiedzy logicznej
. C 75' dla Unixa, operacje na rejestrach
. dBase 80' programowanie baz danych
. Ada 80' uniwersalny, wspó ł bie ż ny
. C++ 86' obiektowa wersja C
. Java 95' obiektowy wg C++, aplety WWW
Podstawowe metodyki programowania
_ Programowanie strukturalne: hierarchiczna struktura
niezależnych części programu (procedury, moduły)
_ kontrola poprawności
_ łatwość rozbudowy i modyfikacji
_ oszczędność kodu
_ Programowanie obiektowe: struktura obiektów
o określonych cechach i zachowaniu (atrybuty i metody)
_ j.w.
_ hermetyzacja; klasy obiektów, dziedziczenie
_ wielokrotne użycie obiektów, biblioteki
Generatory aplikacji
. 4 - 5 generacja narzędzi programistycznych
. Wizualne środowiska programowania aplikacji:
. PowerBuilder
. Visual C++, Visual Basic
. Delphi
. JBuilder ...
. Automatyzacja programowania baz danych
. generatory zapytań SQL, kreatory raportów...
Algorytmy, języki, programy
Program to rozwiązanie zadania algorytmicznego
zapisane w języku programowania
_ Język programowania pozwala zapisać :
_ deklaracje typów (zbiorów wartości )
_ deklaracje zmiennych i stałych (wartości określonych typów)
_ wyrażenia reprezentujące operacje na warto ś ciach
_ instrukcje składające się na przepis rozwiązania
_ czynno ś ci przekazywania danych do zadania algorytmicznego i wyników jego rozwiązania
_ Operacje języka programowania dla różnych typów wartości
=> dziedzina algorytmiczna programów
Struktury danych : zbiory
Zbiory : S = {e1,, ..., ei ,...} ; |S|
w Pascalu operacje na zbiorach : +, -, *, in
* deklaracja typu zbiorowego wymaga okre ś lenia typu bazowego
*(elementów) o liczebności nie większej ni ż 256, np.:
*dołączanie elementów
*usuwanie elementów
*wybieranie wspólnej części
*relacja przynależności elementu do zbioru
Struktury danych : listy
_ Listy : uporządkowane ci ą gi elementów
_ Reprezentacja listy w programie
* tablica
* struktura rekordów powiązana wskaźnikami:
jednokierunkowo lub dwukierunkowo
_ Operacje na listach :
* dostęp do elementów listy, dodawanie i usuwanie
* wybieranie części listy
* składanie list
Struktura aplikacji w Delphi
_ Pliki źródłowe aplikacji w Delphi
_ plik .DPR : plik projektu aplikacji
_ pary plików .PAS + .DFM : moduły + formularze
_ pliki .PAS : moduły programu bez formularzy
_ wyróżniony formularz główny, widoczny
po uruchomieniu aplikacji
Komponenty aplikacji Delphi
_ Biblioteka VCL (Visual Component Library) zawiera predefiniowane typy komponentów aplikacji
_ s ą to obiekty o specyficznych w ł a ś ciwo ś ciach i zachowaniach
_ przeważnie mają postać graficzną
instancje obiektów s ą widoczne podczas wykonania aplikacji
_ umieszczane na formach stanowi ą graficzne środki komunikacji
z użytkownikiem (aplikacje typu GUI - Graphical User Interface)
_ komponent formy s ł u ż y za pojemnik na inne komponenty graficzne
_ mogą reagować na zdarzenia systemowe
_ zależnie od typu komponenty mogą reagować na określone zdarzenia
systemowe (np. związane z manipulacjami za pośrednictwem myszy)
reakcja na określone zdarzenie polega na wykonaniu procedury obsługi
tego zdarzenia, przypisanej w programie do instancji komponentu
Delphi jako środowisko programowania
_ Środowisko RAD (Rapid Application Development)
szybkiego tworzenia tj. projektowania, programowania, testowania, uruchamiania i rozpowszechniania aplikacji.
Narzędzia wspomagające tworzenie projektu:
Project Manager - zarządzanie modułami i formami
_ Object Inspector - zarządzanie komponentami
Opcje projektu i środowiska
_ Pisanie i sprawdzanie kodu źródłowego :
_ edytor tekstu programu w języku Object Pascal
_ automatyczna generacja kodu, wspomaganie pisania i edycji tekstu
_ kompilacja (pliki .DCU , .EXE , .DOF , .RES )
_ Narzędzia uruchomieniowe (znajdowanie i usuwanie błędów)
_ Narzędzia do tworzenia pakietów instalacyjnych
Części składowe środowiska Delphi
_ Delphi IDE (Integrated Development Environment)
stanowi aplikację , której główne okno zawiera m.in.:
pasek menu, przybornik, inspektor obiektów, palet ę komponentów
edytor modułów programu i projekty formularzy
_ szybkość prototypowania
_ łatwość dokumentacji
_ łatwość pielęgnacji
Rozwój podejścia obiektowego
_ Simula 67: prekursor języków obiektowych
_ klasy _ Eiffel (1985); C++ (1986) , Java (1995)
_ Object Pascal (~1990), Delphi (1995)
_ MS Windows, COM, Visual Basic...
Założenia „orientacji obiektowej”
_ Abstrakcja Niektóre pozycje paska menu
File - zarządzanie plikami projektów
_ Edit - edycja programów i porządkowanie układu formularzy
_ Search - wyszukiwanie i zastępowanie w tekstach programu
_ View - wyświetlanie i ukrywanie elementów środowiska IDE
Project - zarządzanie plikami projektu, kompilacja, opcje projektu
_ Run - uruchomianie aplikacji, wyszukiwanie błędów (debugging)
_ Tools - opcje środowiska i narzędzia współpracujące z Delphi
Windows - lista okien aktualnie otwartych w środowisku Delphi
Motywy rozwoju programowania zorientowanego obiektowo
Ulepszanie programów oraz procesu ich tworzenia i użytkowania
_ niezawodność
_ testowalność
_ rozszerzalność _ wielokrotne użycie
_ współdziałanie
_ programy operuj ą na strukturach abstrakcyjnych obiektów
o określonych cechach i zachowaniu
_ Enkapsulacja
_ programowa reprezentacja obiektów zamyka w sobie dane
opisujące ich cechy i kod reprezentujący ich zachowanie
_ Kompozycja / dekompozycja
_ obiekty można łączyć w większe całości
lub dzieli ć na części składowe
_ Wielokrotne użycie
_ biblioteki obiektów, hierarchie klas obiektów
o różnym poziomie specjalizacji
Typowe cechy obiektowych języków programowania
_ Orientacja obiektowa:
_ program jako struktura współdziałających, powiązanych
wzajemnie obiektów o określonych cechach i zachowaniach
_ Klasy i instancje obiektów
_ obiekty to instancje określonych klas (typów obiektowych)
tworzone na początku lub w trakcie wykonywania programu
Hermetyzacja (enkapsulacja) zawarto ś ci obiektów
_ sposób realizacji cech i zachowań ukryty wewnątrz obiektu
_ Dziedziczenie i polimorfizm
_ cechy/zachowania dziedziczone od klasy przodka lub własne
_ Komunikacja między obiektami
_ przesyłanie wiadomo ś ci w czasie wykonywania programu
Programowanie obiektowe w środowisku wizualnym Delphi
_ Biblioteka VCL zawiera komponenty aplikacji Delphi
_ komponenty to predefiniowane obiekty, zarejestrowane w bibliotece
_ przodkiem wszystkich komponentów jest klasa TObject
_ potomne klasy komponentów mogą dziedziczyć od przodków
właściwości i metody, sposób reakcji na zdarzenia systemowe
_ Definiowanie własnych obiektów w programie
_ definiowana klasa obiektów dziedziczy od jednej z klas VCL
_ domyślną klasą przodków (je ś li nie wskazano innej) jest Tobject
_ definiowane klasy obiektów mogą
dziedziczyć od przodków niezmienione właściwości i metody
redefiniować właściwości i metody dziedziczone od przodków
wprowadzać nowe właściwości i metody