BAZY DANYCH II
 
 


Wykład

Wykł.1 Wykł.2 Wykł.3 Wykł.4 Wykł.5 Wykł.6 Wykł.7 

E-LEARNING

Ćwiczenia

Ćw.1  Ćw.2  Ćw.3  Ćw.4  Ćw.5  Ćw.6  Ćw.7  Ćw.8  Ćw.9  Ćw.10  Ćw.11  Ćw.12  Ćw.13  Projekt 

Egzamin

(przedmiot fakultetatywny - bez egzaminu).
(przedmiot główny - egzamin pisemny, zakres materiału - wykłady).



Wykład 1

Wykład wprowadzający.
Współbieżność w bazach danych.
Transakcje w bazach danych. Punkty bezpieczeństwa transakcji. Kursory. Transakcje a współbieżny dostęp wielu użytkowników. Anomalie w transakcjach przeprowadzanych współbieżnie.Utracone modyfikacje. Niepowtarzalne odczyty. Błędne odczyty. Pojawianie się fantomów. Poziomy izolacji transakcji. Odczyt niezatwierdzonych danych. Odczyt zatwierdzonych danych. Stabilność na poziomie kursora. Odczyt powtarzalny. Transakcje szeregowalne. Zarzšdzanie poziomem izolacji transakcji w SQL. Blokady w bazach danych. Blokady wierszy. Blokady atrybutów. Blokady tabel. Rodzaje blokad. Zakleszczenia. Obsługa blokad w systemie baz danych.

Wykład 2

Trwałość i składowanie danych.
Partycjonowanie poziome, pionowe i mieszane. Metody indeksacji w relacyjnych bazach danych. Metoda ISAM. Metoda B-drzew. Metoda B*-drzew. Metoda R-drzew. Metoda R+-drzew. Metoda tablic mieszajšcych. Metoda bitmap. Rodzaje indeksów. Indeksy złożone. Indeksy klastrowane. Indeksy unikalne i nieunikalne. Indeksy pełnotekstowe. Indeksacja w systemach relacyjnych baz danych.

Wykład 3

Optymalizacja zapytań SQL.
Cel optymalizacji. Plan wykonania zapytania. Techniki optymalizacji zapytań w systemach baz danych. Plan wykonania zapytania z optymalizacją. Przegląd rozwiązań optymalizacyjnych. Optymalizacja zapytań SQL. Proste wyrażenia. Złączenia tabel. Algorytmy realizacji złączeń tabel. Złączenia tabel a zagnieżdżenia. Optymalizacja w bazach danych Oracle. Klastry danych. Optymalizator regułowy. Optymalizacja kosztowa w bazach danych Oracle. Narzędzia strojenia bazy danych Oracle. Wyznaczanie planu wykonania zapytania. Analiza statystyczna zapytania. Wskazówki. Optymalizacja w bazach danych PostgreSQL. Narzędzia strojenia bazy danych PostgreSQL.

Wykład 4

Rozproszone bazy danych.
Migracja danych. Replikacja. Podstawowe modele aktualizacji danych w systemach baz danych. Replikacja w MS SQL Server. Replikacja migawkowa. Replikacja transakcyjna. Replikacja złączająca. Replikacja w Oracle. Replikacja migawkowa. Replikacja Multi-Master. Replikacja hybrydowa. Replikacja master-slave w PostgreSQL. Replikacja MySQL. Replikacja oparta na poleceniach. Replikacja oparta na przekazywaniu krotek. Architektury replikacji w MySQL. Hurtownie danych.

Wykład 5

Obiektowe bazy danych.
Model obiektowy. Pojęcie klasy. Obiekty klasy. Zapytania w obiektowych bazach danych. Strategia wykonywania zapytania. Graf wykonywania zapytania. Języki zapytań do obiektowych baz danych. ODL. OQL. Przykładowe systemy obiektowych baz danych.

Wykład 6

Przestrzenne bazy danych. XML-owe bazy danych.
Standard OpenGIS. Obiekty geometryczne. Zapis WKT, WKB. Hierarchia obiektów. Funkcje geometryczne. Indeksacja dla obiektów geometrycznych. Rozszerzenia GIS dla baz danych: MySQL Spatial, PostGIS, Oracle Spatial, IBM DB2 Spatial Extender, MS SQL 2008 Spatial Storage.

Wykład 7

Projektowanie baz danych.
Etapy tworzenia oprogramowania bazodanowego. Etapy projektu systemu bazodanowego. Diagramy Hierarchii Funkcji (FHD). Diagramy przypadków użycia. Diagramy związków encji (ERD). Diagramy przepływów danych (DFD). Diagramy stanów systemu (STD). Pakiety do wspomagania projektowania baz danych (CASE).

Materiały do wykładu: BD2w.rar.

Ćw. 1

Administracja systemami baz danych.

Ćw. 2

Administracja systemami baz danych.

Ćw. 3

Współbieżność w bazach danych ([8]).
Przed cwiczeniem nalezy zapoznać się w [8] z tematami: SAVEPOINT, CURSOR, poziomy izolacji w [8].

Ćw. 4

Optymalizacja zapytań SQL.
Przed cwiczeniem należy się zapoznać z zagadnieniami optymalizacji zapytan SQL w systemach: [8], [5] i [7]

Ćw. 5

Optymalizacja zapytań SQL cd.

Ćw. 6

Zagadnienia indeksacji w systemach baz danych.

Ćw. 7

Wykorzystanie XML w systemach baz danych.
Materiały: DB2XMLeg.pdf.
Zadanie projektowe: nalezy stworzyc autorski przyklad schematu bazy danych - 2-3 tabele, ktore zawieraja pola XML. Projekt w wersji wydrukowanej powinien zawierac listingi SQL i innych komend (tworzenie tabel, 3 INSERT-y, 3 rozne zapytania SQL, importowanie danych z pliku tekstowego). Do projektu potrzebny jest IBM DB2 (Viper - wersja lepsza niz express).

Ćw. 8

Replikacja danych w systemach Postgresql / MySQL.

Ćw. 9

Tworzenie aplikacji z zanurzonym SQL.
Materiały: ADO.NET: wykład, JDBC: [23], PHP: [24].

Ćw. 10

Bazy danych przestrzennych - rozszerzenia GIS [22], [20].

Ćw. 11

Hurtownie danych - konstrukcja procesu ETL [21].

Ćw. 12

Hurtownie danych - konstrukcja procesu ETL dla danych przestrzennych [21].
Cwiczenia beda odbywaly sie w oparciu o [25]. Nalezy zaznajomic sie z Talend Open Studio (Spatial Data Integrator) i GeoKettle [26]. Przykładowe dane: [27].

Ćw. 13

NoSQL-owe bazy danych. Analiza predkosci w porownaniu do relacyjnych baz danych. MongoDB, ArangoDB.

Projekt

Projekt (jednoosobowy) polega na stworzeniu kompletnej specyfikacji dla zadanego systemu bazodanowego (dokumentacja).


7.2. Etapy projektu systemu bazodanowego

-	okreslic srodowisko systemu (diagram kontekstowy, UML)
-	okreslic cel budowy systemu,
-	okreslic wymagania stawiane przed systemem  (diagramy przypadków użycia),
-	okreslic funkcjonalnosc systemu - hierarchia (FHD),
-	okreslic strukturę danych i zależnosci między nimi (ERD, diagram obiektowy),
-	opisac przepływy danych, procesy i stany wystepujace w systemie  (DFD, STD)

7.8. Pakiety do wspomagania projektowania baz danych (CASE)

* Oracle: 
  -	Developer / 2000,
  -	Designer / 2000,
* IBM
  -	Rational,
* Microsoft: 
  -	Visio,
* inne
  - DBdesigner

pdf
Narzedzia:
  • DBDesigner, wprowadzenie w jez. polskim, autor: Lukasz Ruszaj.



  • Literatura i zasoby:

    [1]  Ullman, J.D., Widom J.: Podstawowy wykład z systemów baz danych. WNT, Warszawa 1999
    [2]  Delobel C., Adiba M.: Relacyjne bazy danych. WNT, Warszawa 1989
    [3]  Figura D.: Obiektowe bazy danych. AOW PLJ, Warszawa 1996
    [4]  Ullman J.D.: Systemy Baz Danych WNT, Warszawa 1988
    [5]  IBM - DB2 link2
    [6]  Birchall G.: DB2 SQL Cookbook
    [7]  http://www.oracle.com/, docs,
    [8]  http://www.postgresql.org/
    [9]  http://www.mysql.com/
    [10]  MS SQL Server 2005 Express Edition
    [11]  http://www.commandprompt.com/ppbook/
    [12]  http://www.w3schools.com/sql/
    [13]  Robert Chwastek - Bazy danych, SQL (AGH)
    [14]  Gruber M.: SQL. Helion Gliwice, 1996.
    [15]  Celko J.: SQL. Zaawansowane techniki programowania.. Mikom, Warszawa, 1999.
    [16]  Gurry M.: Optymalizacja Oracle SQL. Leksykon kieszonkowy. Helion, Gliwice, 2002.
    [17]  Yourdon E.: Współczesna analiza strukturalna. WNT, Warszawa, 1996.
    [18]  Jaszkiewicz A.: Inzynieria oprogramowania. Helion, Gliwice, 1997.
    [19]  Baird S. Miller Ch.: SQL Server - Administracja. Robomatic, Wroclaw, 2000.
    [20]  OpenGIS Implementation Specification for Geographic information
    [21]  Talend: Open Source ETL and Data Integration Software
    [22]  Piórkowski A.: MySQL Spatial i PostGIS - implementacje standardów danych przestrzennych. II Konferencja Wolne Oprogramowanie w Geoinformatyce. prezentacja w pdf
    [23]  Zięba A.: JDBC, 2007, pdf.
    [24]  Sowa M.: Sprzeg podstawowy do baz danych w PHP, 2007, pdf.
    [25]  Klisiewicz J., Piórkowski A, Porzycka St.: Konstrukcja procesu ETL dla danych przestrzennych. Studia Informatica. 2011 vol. 32 no. 2B s. 131-142. pdf.
    [26]  GeoKettle: Open Source Geospatial Business Intelligence .
    [27]  GRASS GIS: GRASS 6 Sample Data Download .



    opr. Adam Piórkowski, 2005-2007
     pioro(at)agh.edu.pl