Chemoinformatyczne bazy danych - Wprowadzenie do technologii baz danych Andrzej Bąk
Wstęp Zarys Co to jest baza danych? Podstawy teorii baz danych Klasyfikacja baz danych Organizacja danych w relacyjnej bazie danych Podstawy języka SQL Etapy projektowania baz danych Strukturalne bazy danych
Wstęp Świat rzeczywisty opisany przez dane i związki między nimi można przedstawić w tabeli
Baza danych - Wprowadzenie Baza danych to uporządkowany zbiór informacji, który przechowywany jest w strukturach zgodnie z założonym modelem danych. Baza danych to połączenie wiedzy i technologii, które zintegrowane zostały w wyspecjalizowanym oprogramowaniu nazywanym systemem zarządzania bazami danych (DBMS ang. database management systems) lub potocznie systemem baz danych. DBMS system zarządzania oraz przechowywania danych wraz z metadanymi (danymi opisującymi dane).
Baza danych - Schemat Typowy system bazodanowy Architektura warstwowa Klient (użytkownik) System przechowywania oraz wymiary informacji Moduł zarządzania bazy danych Programowy moduł zarządzania operacjami bazy danych Programy dostępowe dla użytkowników bazy danych Serwer
Baza danych Podstawowe cele Zalety przechowywanie danych w ujednoliconym formacie zapobieganie replikacji danych redukcja lub eliminacja redundancji danych integralność i spójność danych wieloużytkownikowy dostęp do danych dostarczenie stałego, przyjaznego dla użytkownika dostępu do danych wygodne środowisko analiz danych
Baza danych - Typy hierarchiczne bazy danych, gdzie poszczególne informacje przypisane są systematycznie do określonego poziomu tworząc swoiste drzewo w układzie rodzic/dziecko/rodzeństwo Relacja 1 do n H Sposób organizacji danych B C D E F G I J A K L M N Przeszukiwanie hierarchicznej bazy danych to sekwencyjne odwiedzanie poszczególnych węzłów struktury począwszy od korzenia (rodzica nadrzędnego).
Baza danych - Typy Model sieciowy - określony węzeł połączony może być z wieloma innymi, tworząc rodzaj struktury rozproszonej B A C brak jednolitej struktury bazy danych - ułatwiony jest jednak dostęp do informacji D E F G B H I J K L M N D H IX J
Baza danych - Typy Model relacyjny relacyjne bazy danych, zaproponowane w 1970 roku prze E.F. Codda baza złożona jest zwykle z szeregu dwuwymiarowych tabeli (relacji) oraz związków pomiędzy nimi, które umożliwiają ich wzajemne łączenie (klucze). klucz główny tabeli (PK) - kolumna lub kolumny tabeli, które umożliwiają jednoznaczną identyfikację rekordu (wiersza) klucz obcym (FK) - kolumna lub kolumny tabeli, którym odpowiada klucz innej tabeli. Klucze obce służą do zachowania więzów integralności pomiędzy tabelami.
Baza danych - Tabela Nazewnictwo
Baza danych - Typy Inna klasyfikacja baz danych w głównej mierze oparta jest za rodzaju przechowywanej informacji chemicznej. baza literaturowa baza właściwości baza strukturalna bibliograficzna patentowa numeryczna metadane katologowa struktur reakcji
Relacyjna baza danych Założenia każda relacja (tabela) ma jednoznaczną nazwę każda kolumna ma jednoznaczną nazwę w ramach relacji wszystkie wartości w kolumnie muszą być tego samego typu porządek kolumn nie jest istotny porządek wierszy nie jest istotny każdy wiersz w relacji musi być różny pole relacji musi zawierać wartość atomową
Relacyjna baza danych Słownik dla opornych relacja tabela atrybut kolumna dziedzina atrybutu typ danych krotka wiersz tabeli schemat relacji nazwa tabeli z nazwami atrybutów schemat bazy danych zbiór schematów relacji
Relacyjna baza danych - Algebra Algebra relacji operatory + operacje rzutowanie wybranie zbioru atrybutów selekcja wybranie krotek spełniających dany warunek suma iloczyn różnica iloczyn kartezjański
Instalacja serwera MySQL To nic nie kosztuje! Google MySQL, Progress
Język SQL SQL Structured Query Language IBM 1970 rok Język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji oraz tworzenia relacji DML (data manipulation language) pobieranie danych, dopisywanie, usuwanie, modyfikacja DDL (data definition language) tworzenie nowych relacji DCL (data control language) nadzór nad prawami dostępu użytkowników, hostów itd..
Język SQL - DML Struktura SELECT * FROM osoby WHERE Wykształcenie= SO ; SELECT atrybuty FROM relacja WHERE warunek;
Język SQL - DDL SELECT Pesel, Wykształcenie FROM osoby; CREATE TABLE IF NOT EXISTS ChemComp ( Id MEDIUMINT(8) UNSIGNED ZEROFILL AUTO_INCREMENT NOT NULL, CONSTRAINT IdPk1 PRIMARY KEY (Id) )ENGINE=InnoDB;
Język SQL - DCL CREATE USER abak @ localhost IDENTIFIED by PASSWORD( **** ); GRANT SELECT, INSERT, UPDATE, DELETE ON Ligand.* TO abak @ localhost IDENTIFIED BY PASSWORD( *** ); Tutorial on-line lub pdf
Projektowanie bazy danych Koncepcja projektu użytkownik serwer RDBMS
Projektowanie bazy danych Etapy projektowania Pobranie danych Analiza danych Poprawa błędów Implementacja SQL Normalizacja Schemat relacyjny m - 1 1-1 Określenie związków w danych 1 - n m - n 1 - n
Projektowanie bazy danych Schemat relacyjny Diagram encji relacji ER
Projektowanie bazy danych Normalizacja bazy danych UNF 6 NF Cel normalizacji: uniknięcie redundacji tj. powtarzania się pól z identycznymi wartościami w różnych tabelach wyeliminowanie niewygodnych relacji wieloznacznych unikanie anomalii przy aktualizacji: modyfikacji, wstawiania, usuwania unikanie niespójności danych
Projektowanie bazy danych Zależność funkcyjna Kiedy wartość atrybutu B może zostać określona na podstawie wartości atrybutów A 1,.,A n to mówimy, że B jest funkcjonalnie zależne od atrybutów A 1,,A n I zapisujemy jako: {A 1,,A n } B zależności trywialne A 1,.,A n A i i=1,,n
Projektowanie bazy danych Zależności funkcyjne - zasady podziału A 1,,A n B 1,,B n A 1,,A n B i i=1,,n łączenia A 1,,A n B i i=1,,n A 1,,A n B 1,,B n przechodniości A B i B C to oznacza że A C
Projektowanie bazy danych Klucze Zbiór atrybutów {A 1,,A n } tworzy KLUCZ relacji jeżeli: wszystkie atrybuty są zależne funkcyjnie od tych atrybutów żaden podzbiór nie ma tej własności Klucz podstawy PK atrybut lub atrybuty umożliwiające jednoznaczną identyfikację wiersz Klucz obcy FK definiuje połączenia pomiędzy tabelami Klucz kandydujący jeżeli istnieje więcej niż 1 klucz podstawowy
Projektowanie bazy danych Normalizacja 1 NF Każda relacja spełniająca założenia E.F Codda jest w 1NF brak powtarzających się krotek/attrybutów wartości atomowe R (K1,K2, A, B, C, D, E, A, B) R1 (K1,K2, A, B, C, D, E) Powtarzające się grupy są usuwane.
Projektowanie bazy danych Relacja jest w 2NF jeżeli: jest w 1NF Normalizacja 2NF każdy atrybut niekluczowy jest w PEŁNI (NIE W CZĘŚCI) funkcjonalnie zależny od CAŁEGO klucza głównego R1 (K1,K2, A, B, C, D, E) {K1,K2} A {K1,K2} B {K2} E Argument E jest wyrzucany ponieważ jest częściowo zależny od składowej K2 klucza głównego {K1,K2} R2 (K1,K2, A, B, C, D) R2 (K2, E) {K1,K2} C {K1,K2} D
Projektowanie bazy danych Normalizacja 3N Relacja jest w 3NF jeżeli: jest w 2NF nie występują zależności przechodnie (nietrywialne) R2 (K1,K2, A, B, C) Argument C jest wyrzucany ponieważ zależy NIE TYLKO od klucza głównego Rozwiązanie: dekompozycja do dwóch tabel z PK w każdej z nich R3 (K1,K2,A, B) R3 (B, C)
Projektowanie bazy danych Normalizacja 3,5 BCNF Wciąż mogą pojawiać się anomalie relacja zawiera więcej niż jeden klucz kandydujący klucze kandydujące dzielą wspólne pole R3 (K1,K2, A, B, D) Relacja jest w postaci Boyce Codd a (3.5 lub BCNF) jeżeli: jest w 3NF każdy atrybut musi być w PEŁNI funkcyjnie zależny do klucza lub kluczy kandydujących
Projektowanie bazy danych Normalizacja 3,5 BCNF Rozwiązanie: umieścić dwa klucze kandydujące w oddzielnych tabelach umieścić atrybuty względem zależności funkcyjnych w oddzielnych tabelach R3 (K1,K2, A, B, D) R3.5 (K1,K2, B) R3.5 (K2, A, D)
Projektowanie bazy danych Normalizacja 3,5 BCNF Nieustanna dyskusja akademicka Teoria Rzeczywistość Równowaga
Projektowanie bazy danych Znormalizowana baza Ligand
Strukturalne bazy danych http://zinc.docking.org
Strukturalne bazy danych http://cdb.ics.uci.edu/
Strukturalne bazy danych http://www.rcsb.org/pdb/home/hom e.do
Dziękuję za uwagę