(Microsoft PowerPoint - ZBDiHD-wprowadzenie

Transkrypt

(Microsoft PowerPoint - ZBDiHD-wprowadzenie
Ważne informacje
Wydział Informatyki
Politechnika Białostocka
Zaawansowane bazy danych i
hurtownie danych
aragorn.pb.bialystok.pl/~gkret:
Materiały do wykładów, literatura
studia niestacjonarne II stopnia, sem. I
WYKŁAD 1:
Plan wykładu, wprowadzenie do aplikacji bazodanowych, MySQL
Agnieszka Oniśko, Małgorzata Krętowska
Wprowadzenie, MySQL 1/48
Wprowadzenie, MySQL 2/48
Systemy klient-serwer
Typy rozproszonych baz danych
Serwer
• 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
Baza
danych
Klient
Zarządzanie danymi
Zarządzanie regułami
Komunikacja
Wprowadzenie, MySQL 3/48
Logika aplikacji
Logika prezentacji
Komunikacja
Wprowadzenie, MySQL 4/48
Klient-serwer: Przykład
Relacyjny SZBD: ORACLE
• Pierwszy komercyjny SZBD (1977)
• Etapy rozwoju ORACLE
Serwer
Baza
danych
Klient
Wynik T1: tak lub nie
Wynik T2: tak lub nie
T1: sprawdź podany identyfikator
T2: aktualizuj stan konta
–
–
–
–
–
–
–
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, MySQL 5/48
Środowisko ORACLE
ORACLE Forms
Wprowadzenie, MySQL 6/48
Użytkownicy bazy danych
ORACLE Reports
Administratorzy baz danych
Pro*SQL
SQL*Plus
PL/SQL
Jądro SZBD
ORACLE Graphics
SQL*DBA
Baza danych
ORACLE TextRetrieval
Wprowadzenie, MySQL 7/48
Programiści
Użytkownicy końcowi
Wprowadzenie, MySQL 8/48
Aplikacja bazodanowa
Serwer
Plan przedmiotu
Aplikacja klienta
Serwer
Sesja klienta
Aplikacja klienta
Sesja klienta
Baza
danych
Klient
PHP
ADO.NET
Visual C++
Pyton
…
ORACLE
MySQL
MS SQL Server
Progress
...
Baza
danych
MySQL
MS SQL Server
Klient
PHP
ADO.NET
Część I wykładu: Linux/Windows, Apache, MySQL, PHP
Część II wykładu: MS SQL Server, ADO.NET, ASP.NET
Część III wykładu: hurtownie danych
Wprowadzenie, MySQL 9/48
Wprowadzenie, MySQL 10/48
Technologia LAMP
Plan przedmiotu: Szczegóły
1. Wprowadzenie: Przegląd technologii
2. MySQL
LAMP/WAMP
LAMP – akronim określający zestaw oprogramowania typu
open source stanowiący popularną platformę serwerową
dynamicznych stron WWW:
Linux: system operacyjny;
Apache: serwer WWW;
M
MySQL:
serwer bazy danych;
Perl, PHP (ew. Python, Primate (mod mono)): interpreter
języka skryptowego.
3. MS SQL Server
ADO.NET
4. Hurtownie danych
Wprowadzenie, MySQL 11/48
Wprowadzenie, MySQL 12/48
Technologia WAMP
Inne technologie
WAMP – akronim określający zestaw oprogramowania typu
open source stanowiący popularną platformę serwerową
dynamicznych stron WWW:
Windows: system operacyjny;
Apache: serwer WWW;
M
MySQL:
serwer bazy danych;
Perl, PHP, (ew. Python, Primate (mod mono)): interpreter
języka skryptowego.
MAMP
Macintosh: system operacyjny;
Apache: serwer WWW;
MySQL: serwer bazy danych;
Perl, PHP, (ew. Python, Primate (mod mono)): interpreter
języka skryptowego.
BAMP
BSD: system operacyjny;
Apache: serwer WWW;
MySQL: serwer bazy danych;
Perl, PHP, (ew. Python, Primate (mod mono)): interpreter
języka skryptowego.
Wprowadzenie, MySQL 13/48
Wprowadzenie, MySQL 14/48
MySQL: zakres materiału
1. Podstawowe obiekty w MySQL
2. MySQL a PHP
3. Zaawansowane obiekty MySQL: funkcje,
procedury, wyzwalacze
MySQL
Wprowadzenie, MySQL 15/48
Wprowadzenie, MySQL 16/48
MySQL: Dokumentacja on-line
MySQL – ogólne informacje
http://dev.mysql.com/doc/
•
•
•
•
MySQL: system relacyjnej bazy danych (RDBMS)
MySQL: serwer bazy danych
Właścicielem jest ORACLE
Program jest dostępny w ramach licencji GPL (General
Public License)
Wprowadzenie, MySQL 17/48
Platformy (SO) dla MySQL
Wprowadzenie, MySQL 18/48
MySQL: 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.
•
•
•
•
•
•
•
Wprowadzenie, MySQL 19/48
1995 - pierwsza wersja MySQL (Linux) - stworzony i
rozwijany przez szwedzką firmę MySQL AB
1998 - pierwsza wersja MySQL pod Windows 96/NT
2004 - wersja 4.1 (zaimplementowane R-drzewa i Bdrzewa, podzapytania)
2005 - wersja 5.0 (kursory, procedury składowane,
wyzwalacze, perspektywy, transakcje)
2008 - wersja 5.1 (partycjonowanie, replikacje)
Od lutego 2008 MySQL AB jest częścią Sun
Microsystems
Od stycznia 2010 roku właścicielem jest Oracle
Wprowadzenie, MySQL 20/48
MySQL a API
MySQL: Zalety
Serwer
Aplikacja klienta
Klient
MySQL
Connector/NET
.NET API, ADO.NET
Connector/C++
C++ API
Connector/J
Connector/MXJ
Java API
Connector/PHP
…
Connector/ODBC
Connector/OpenOffice.org
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...).
•
Sesja klienta
•
•
PHP API
Perl API
Python API
np. Microsoft
OpenOffice
Wprowadzenie, MySQL 21/48
MySQL: Krytyka
•
•
Wprowadzenie, MySQL 22/48
MySQL: Instalacja
Najnowsza wersja MySQL (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)
MySQL: słabe osiągi w hurtowniach danych
•
•
•
•
Wprowadzenie, MySQL 23/48
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, MySQL 24/48
MySQL: Instalacja
Bazy mysql i test
Baza systemowa mysql
Utworzenie bazy
systemowej mysql
MySQL
mysql
Utworzenie bazy
testowej test
•
•
test
Utworzenie użytkownika
systemowego root
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, MySQL 25/48
MySQL: MySQL Workbench (GUI)
•
•
•
Wprowadzenie, MySQL 26/48
Narzędzie Server Administration
SQL Development (posiada elementy
wcześniejszego Query Browser)
Data Modeling
Server Administration (wcześniej MySQL
Administrator)
Wprowadzenie, MySQL 27/48
•
•
•
•
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, MySQL 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, MySQL 29/48
MySQL
Wprowadzenie, MySQL 30/48
MySQL: Tworzenie i modyfikacja
obiektów bazy danych
SQL:
Data Definition Language
Data Manipulation Language
Data Query Language
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
Proceduralny SQL w MySQL:
Funkcje, Procedury
Wyzwalacze
Wprowadzenie, MySQL 31/48
Wprowadzenie, MySQL 32/48
MySQL: Tworzenie tabeli
MySQL: Tworzenie tabeli
Transakcja
Pracownik
Klient
DVD
CREATE TABLE Klient
(
klient_id SMALLINT NOT NULL AUTO_INCREMENT
PRIMARY KEY,
imie VARCHAR(30) NOT NULL,
nazwisko VARCHAR(40) NOT NULL,
email VARCHAR(30)
);
Wprowadzenie, MySQL 33/48
Wprowadzenie, MySQL 34/48
MySQL: Tworzenie tabeli
MySQL: 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, MySQL 35/48
Wprowadzenie, MySQL 36/48
MySQL: Tworzenie tabeli
MySQL: 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 (klient_id),
ADD CONSTRAINT fk_pracownik FOREIGN KEY (pracownik_id)
REFERENCES Pracownik (pracownik_id)
);
Wprowadzenie, MySQL 37/48
Wprowadzenie, MySQL 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, MySQL 39/48
Wprowadzenie, MySQL 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];
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];
UPDATE [LOW_PRIORITY] [IGNORE] tabele
SET nazwa_kolumny1 = {wyraż1|DEFAULT} [,
nazwa_kolumny2 = {wyraż2|DEFAULT}
[WHERE warunek];
Wprowadzenie, MySQL 41/48
DELETE: Przykład
DELETE *
FROM Transakcja, Klient
WHERE Transakcja.klient_id = Klient.klient_id AND
Klient.nazwisko = ‘Kowalski’;
Wprowadzenie, MySQL 43/48
lub
Wprowadzenie, MySQL 42/48

Podobne dokumenty