Ważne informacje Wydział Informatyki Politechnika Białostocka Zaawansowane bazy danych i hurtownie danych studia niestacjonarne II stopnia, sem. I aragorn.pb.bialystok.pl/~gkret: Materiały do wykładów, literatura WYKŁAD 1: Plan wykładu, wprowadzenie do aplikacji bazodanowych, Agnieszka Oniśko, Małgorzata Krętowska Wprowadzenie, 1/48 Wprowadzenie, 2/48 Typy rozproszonych baz danych Systemy typu klient-serwer (jeden serwer) Jednorodna rozproszona baza danych (kilka serwerów, jeden system zarządzania bazą danych) Niejednorodna rozproszona baza danych (różne oprogramowanie) Federacyjny system baz danych Systemy klient-serwer Serwer Baza danych Zarządzanie danymi Zarządzanie regułami Logika aplikacji Logika prezentacji Komunikacja Komunikacja Wprowadzenie, 3/48 Wprowadzenie, 4/48
-serwer: Przykład Relacyjny SZBD: ORACLE Serwer Baza danych Wynik T1: tak lub nie Wynik T2: tak lub nie T1: sprawdź podany identyfikator T2: aktualizuj stan konta Pierwszy komercyjny SZBD (1977) Etapy rozwoju ORACLE 1978: wersja 1.0 (128kB) 1986: wersja z funkcjami bazy rozproszonej 1993: implementacja hurtowni danych, wersja pod Linux a 1997: wersja 8.x - relacyjno-obiektowa (Java) 2000: wersja 9i 2004: wersja 10g 2007: wersja 11g Wprowadzenie, 5/48 Wprowadzenie, 6/48 Środowisko ORACLE Użytkownicy bazy danych ORACLE Forms ORACLE Reports Pro*SQL Administratorzy baz danych SQL*Plus PL/SQL Jądro SZBD SQL*DBA Baza danych ORACLE Graphics ORACLE TextRetrieval Programiści Użytkownicy końcowi Wprowadzenie, 7/48 Wprowadzenie, 8/48
Aplikacja bazodanowa Plan przedmiotu Serwer Aplikacja klienta Serwer Aplikacja klienta Baza danych Sesja klienta Baza danych Sesja klienta ORACLE MS SQL Server Progress... PHP ADO.NET Visual C++ Pyton MS SQL Server PHP ADO.NET Część I wykładu: Linux/Windows, Apache,, PHP Część II wykładu: MS SQL Server, ADO.NET, ASP.NET Część III wykładu: hurtownie danych Wprowadzenie, 9/48 Wprowadzenie, 10/48 Plan przedmiotu: Szczegóły Technologia LAMP 1. Wprowadzenie: Przegląd technologii 2. LAMP/WAMP 3. MS SQL Server ADO.NET LAMP akronim określający zestaw oprogramowania typu open source stanowiący popularną platformę serwerową dynamicznych stron WWW: Linux: system operacyjny; Apache: serwer WWW; : serwer bazy danych; Perl, PHP (ew. Python, Primate (mod mono)): interpreter języka skryptowego. 4. Hurtownie danych Wprowadzenie, 11/48 Wprowadzenie, 12/48
Technologia WAMP WAMP akronim określający zestaw oprogramowania typu open source stanowiący popularną platformę serwerową dynamicznych stron WWW: Windows: system operacyjny; Apache: serwer WWW; : serwer bazy danych; Perl, PHP, (ew. Python, Primate (mod mono)): interpreter języka skryptowego. Inne technologie MAMP Macintosh: system operacyjny; Apache: serwer WWW; : serwer bazy danych; Perl, PHP, (ew. Python, Primate (mod mono)): interpreter języka skryptowego. BAMP BSD: system operacyjny; Apache: serwer WWW; : serwer bazy danych; Perl, PHP, (ew. Python, Primate (mod mono)): interpreter języka skryptowego. Wprowadzenie, 13/48 Wprowadzenie, 14/48 : zakres materiału 1. Podstawowe obiekty w 2. a PHP 3. Zaawansowane obiekty : funkcje, procedury, wyzwalacze Wprowadzenie, 15/48 Wprowadzenie, 16/48
: Dokumentacja on-line ogólne informacje http://dev.mysql.com/doc/ : system relacyjnej bazy danych (RDBMS) : serwer bazy danych Właścicielem jest ORACLE Program jest dostępny w ramach licencji GPL (General Public License) Wprowadzenie, 17/48 Wprowadzenie, 18/48 Platformy (SO) dla : Historia AIX, BSDi, FreeBSD, HP-UX, i5/os, Linux, Mac OS X, NetBSD, Novell NetWare, OpenBSD, ecomstation, OS/2 Warp, QNX, IRIX, Solaris, Symbian, SunOS, SCO OpenServer, SCO UnixWare, Sanos, Tru64, Windows 95, Windows 98, Windows ME, Windows NT, Windows 2000, Windows XP, Windows Vista. 1995 - pierwsza wersja (Linux) - stworzony i rozwijany przez szwedzką firmę AB 1998 - pierwsza wersja pod Windows 96/NT 2004 - wersja 4.1 (zaimplementowane R-drzewa i B- drzewa, podzapytania) 2005 - wersja 5.0 (kursory, procedury składowane, wyzwalacze, perspektywy, transakcje) 2008 - wersja 5.1 (partycjonowanie, replikacje) Od lutego 2008 AB jest częścią Sun Microsystems Od stycznia 2010 roku właścicielem jest Oracle Wprowadzenie, 19/48 Wprowadzenie, 20/48
a API : Zalety Serwer Sesja klienta Connector/NET Connector/C++ Aplikacja klienta.net API, ADO.NET C++ API Dostępny w ramach licencji GPL (General Public License). Dostępny dla ponad 20 różnych systemów operacyjnych. Możliwość połączenia do API implementowanych za pomocą różnych narzędzi (PHP,.NET, C++, Java, etc...). Connector/J Connector/MXJ Connector/PHP Connector/ODBC Java API PHP API Perl API Python API np. Microsoft Connector/OpenOffice.org OpenOffice Wprowadzenie, 21/48 Wprowadzenie, 22/48 : Krytyka : Instalacja Najnowsza wersja (wersja 5.1 z 2008) ma 20 różnych błędów (włącznie z 35 błędami z wersji 5.0). Zdarza się, że błędy krytyczne nie są usuwane przez długi okres czasu (do tej pory jeden z błędów z wersji z 2003 nie został usunięty) : słabe osiągi w hurtowniach danych Instalacja dostępna na stronie: http://dev.mysql.com/downloads/ Wybór wersji Alpha Beta Gamma Production Wybór systemu operacyjnego Wybór instalacji binarna ze źródłami Wprowadzenie, 23/48 Wprowadzenie, 24/48
: Instalacja Bazy mysql i test Utworzenie bazy systemowej mysql Utworzenie bazy testowej test Utworzenie użytkownika systemowego root mysql test Baza systemowa mysql Zawiera 23 tabele systemowe Tabele systemowe przechowują informacje na temat: użytkowników bazy uprawnień przydzielonych użytkownikom bazy Baza testowa test Nie zawiera żadnych tabel Wprowadzenie, 25/48 Wprowadzenie, 26/48 : Workbench (GUI) Narzędzie Server Administration SQL Development (posiada elementy wcześniejszego Query Browser) Data Modeling Server Administration (wcześniej Administrator) Zarządza połączeniami z bazą danych Pozwala na eksport i import danych Umożliwia tworzenie obiektów bazy danych Pozwala na nadawanie uprawnień użytkownikom bazy Wprowadzenie, 27/48 Wprowadzenie, 28/48
Narzędzie SQL Development Narzędzie Data Modeling Pozwala na tworzenie i wykonywanie zapytań do bazy danych Umożliwia tworzenie perspektyw Edytor generowania zapytań Mozliwość graficznej reprezentacji schematu bazy danych Możliwość tworzenia digramów EER Możliwoć edycji tabeli, indeksów, wyzwalaczy Wprowadzenie, 29/48 Wprowadzenie, 30/48 SQL: Data Definition Language Data Manipulation Language Data Query Language Proceduralny SQL w : Funkcje, Procedury Wyzwalacze : Tworzenie i modyfikacja obiektów bazy danych CREATE TABLE, DATABASE, FUNCTION, PROCEDURE, INDEX, TRIGGER, VIEW,.. ALTER TABLE, DATABASE, FUNCTION, PROCEDURE, INDEX, TRIGGER, VIEW,.. DROP TABLE, DATABASE, FUNCTION, PROCEDURE, INDEX, TRIGGER, VIEW,.. RENAME TABLE, DATABASE Wprowadzenie, 31/48 Wprowadzenie, 32/48
: Tworzenie tabeli : Tworzenie tabeli Transakcja DVD Pracownik CREATE TABLE ( klient_id SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY, imie VARCHAR(30) NOT NULL, nazwisko VARCHAR(40) NOT NULL, email VARCHAR(30) ); Wprowadzenie, 33/48 Wprowadzenie, 34/48 : Tworzenie tabeli : Tworzenie tabeli CREATE TABLE Pracownik ( pracownik_id SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY, imie VARCHAR(30) NOT NULL, nazwisko VARCHAR(40) NOT NULL, adres VARCHAR(30) ); CREATE TABLE DVD ( dvd_id SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY, tytul VARCHAR(30) NOT NULL, rok_prod VARCHAR(4), rezyser VARCHAR(35) ); Wprowadzenie, 35/48 Wprowadzenie, 36/48
: Tworzenie tabeli : Modyfikacja tabeli CREATE TABLE Transakcja ( transakcja_id SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY, dvd_id SMALLINT, klient_id SMALLINT, pracownik_id SMALLINT, data_wypozyczenia DATE, data_zwrotu DATE, FOREIGN KEY (dvd_id) REFERENCES DVD (dvd_id) ); ALTER TABLE Transakcja ( ADD CONSTRAINT fk_klient FOREIGN KEY (klient_id) REFERENCES (klient_id), ADD CONSTRAINT fk_pracownik FOREIGN KEY (pracownik_id) REFERENCES Pracownik (pracownik_id) ); Wprowadzenie, 37/48 Wprowadzenie, 38/48 Manipulowanie danymi: INSERT INSERT: Przykład INSERT [LOW_PRIORITY DELAYED HIGH_PRIORITY] [IGNORE] [INTO] nazwa_tabeli [(nazwa_kol,...)] {VALUES VALUE} ({wyraż DEFAULT},...),(...),... [ ON DUPLICATE KEY UPDATE nazwa_kol = wyraż [, nazwa_kol = wyraż ]... ] INSERT INTO DVD (tytul, rok_prod, rezyser ) VALUES ( Niebo, 2002, Tom Tykwer ), ( Good Bye Lenin!, 2003, Wolfgang Becker ), ( Babel, 2006, Alejandro Gonzalez Inarritu ); Wprowadzenie, 39/48 Wprowadzenie, 40/48
Manipulowanie danymi: UPDATE Manipulowanie danymi: DELETE UPDATE [LOW_PRIORITY] [IGNORE] tabele SET nazwa_kolumny1 = {wyraż1 DEFAULT} [, nazwa_kolumny2 = {wyraż2 DEFAULT}] [WHERE warunek] [ORDER BY...] [LIMIT liczba_wierszy]; lub UPDATE [LOW_PRIORITY] [IGNORE] tabele SET nazwa_kolumny1 = {wyraż1 DEFAULT} [, nazwa_kolumny2 = {wyraż2 DEFAULT} [WHERE warunek]; DELETE [LOW_PRIORITY] [QUICK] [IGNORE] nazwa_tabeli[.*] [, nazwa_tabeli[.*]]... FROM tabele [WHERE warunek]; lub DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM nazwa_tabeli[.*] [, nazwa_tabeli[.*]]... USING tabele [WHERE warunek]; Wprowadzenie, 41/48 Wprowadzenie, 42/48 DELETE: Przykład DELETE * FROM Transakcja, WHERE Transakcja.klient_id =.klient_id AND.nazwisko = Kowalski ; Wprowadzenie, 43/48