Bazy danych 1. Pojęcia podstawowe

Podobne dokumenty
Bazy danych Wykład zerowy. P. F. Góra

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

Bazy danych - wykład wstępny

Bazy danych 6. Klucze obce. P. F. Góra

Bazy danych wykład trzeci. trzeci Modelowanie schematu bazy danych 1 / 40

Wykład I. Wprowadzenie do baz danych

Bazy danych 2. Wykład 1

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

SZKOLENIE: Administrator baz danych. Cel szkolenia

Wykład 2. Relacyjny model danych

Systemy GIS Systemy baz danych

Podstawy Systemów Zarządzania Baz Danych

Relacyjny model baz danych, model związków encji, normalizacje

Projektowanie Systemów Informacyjnych

PODSTAWY BAZ DANYCH. 5. Modelowanie danych. 2009/ Notatki do wykładu "Podstawy baz danych"

Bazy danych 12. Bazy NoSQL. P. F. Góra

Pojęcie systemu baz danych

Systemy baz danych. mgr inż. Sylwia Glińska

Wykład 8. SQL praca z tabelami 5

Autor: Joanna Karwowska

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Bazy danych 7. SQL podstawy

Bazy danych i usługi sieciowe

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Wykład 5. SQL praca z tabelami 2

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

Bazy danych i usługi sieciowe

Projektowanie relacyjnych baz danych

Wrocławska Wyższa Szkoła Informatyki Stosowanej. Bazy danych. Dr hab. inż. Krzysztof Pieczarka.

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Pojęcie bazy danych. Funkcje i możliwości.

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

Bazy danych 3. Normalizacja baz danych (c.d.)

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Bazy Danych - Projekt. Zasady przygotowania i oceny projektów

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Model relacyjny. Wykład II

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD

Wykład :45 BD-1 W_3

Aspekty aktywne baz danych

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

Bazy danych 10. SQL Widoki

Bazy danych 11. Algorytmy złaczeń. P. F. Góra

Bazy danych 9. SQL Klucze obce Transakcje

Wykład II Encja, atrybuty, klucze Związki encji. Opracowano na podstawie: Podstawowy Wykład z Systemów Baz Danych, J.D.Ullman, J.

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Baza danych. Modele danych

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Alicja Marszałek Różne rodzaje baz danych

BAZY DANYCH wprowadzenie. Opracował: dr inż. Piotr Suchomski

Wykład 4. SQL praca z tabelami 1

Bazy danych 12. SQL Wyszukiwanie pełnotekstowe

PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

Agnieszka Ptaszek Michał Chojecki

Projektowanie systemów baz danych

Bazy danych 4. SQL- podstawy

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Bazy danych 6. Podzapytania i grupowanie. P. F. Góra

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Język SQL, zajęcia nr 1

Bazy danych. Dr inż. Paweł Kasprowski

Bazy danych 4. SQL podstawy. P. F. Góra

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

FUNKCJE SZBD. ZSE - Systemy baz danych 1

Relacyjne bazy danych. Normalizacja i problem nadmierności danych.

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

Karta (sylabus) modułu/przedmiotu Mechanika i Budowa Maszyn Studia I stopnia

Hurtownie danych wykład 5

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

Wprowadzenie do baz danych

NARZĘDZIA WIZUALIZACJI

Systemy informatyczne. Modelowanie danych systemów informatycznych

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

PRZEWODNIK PO PRZEDMIOCIE

Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Bazy danych. Andrzej Łachwa, UJ, /14

Bazy danych 9. Klucze obce Transakcje. P. F. Góra

Przetwarzanie danych w chmurze

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Bazy danych 5. Samozłaczenie SQL podstawy

- Przedmiot kończy się egzaminem - Egzamin ma formę testu teoretycznego

Instrukcja do panelu administracyjnego. do zarządzania kontem FTP WebAs.

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Wstęp do relacyjnych baz danych. Jan Bartoszek

Przykładowa baza danych BIBLIOTEKA

Projektowanie BAZY DANYCH

2017/2018 WGGiOS AGH. LibreOffice Base

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM,

ORGANIZACJA ZAJĘĆ BAZY DANYCH PLAN WYKŁADU SCHEMAT SYSTEMU INFORMATYCZNEGO

Podstawy Systemów Zarządzania Baz Danych

Oracle PL/SQL. Paweł Rajba.

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Zasady transformacji modelu DOZ do projektu tabel bazy danych

NARZĘDZIA WIZUALIZACJI

Transkrypt:

Bazy danych 1. Pojęcia podstawowe P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2017/18

Baza danych: Duża kolekcja danych, odpowiednio zorganizowana w celu szybkiego przeszukiwania i dostępu do informacji, uzyskiwanego przy pomocy komputera. Copyright c 2010-17 P. F. Góra 1 2

Patron? Św. Izydor z Sewilli (VI wiek), patron Internetu, stworzył pierwszy katalog Copyright c 2010-17 P. F. Góra 1 3

Bazy danych sa wszechobecne! użytkownicy projektanci/programiści aplikacji bazodanowych projektanci/programiści baz danych, administratorzy baz danych projektanci/programiści systemów bazodanowych (DataBase Management System, DBMS) Cel wykładu: Projektowanie i programowanie baz danych Widza tylko front end Błędnie nazywanych bazami danych Copyright c 2010-17 P. F. Góra 1 4

Architektura klient-serwer lasagna code: aplikacja bazodanowa system operacyjny klient? business logic sieć serwer Czy logikę biznesowa umieszczać po stronie serwera czy po stronie aplikacji? Copyright c 2010-17 P. F. Góra 1 5

Architektura klient-serwer (cd) sytemy wielodostępne, heterogeniczne najbardziej kosztowna operacja: przesyłanie danych wiele operacji wykonywanych po stronie serwera Logika biznesowa raczej po stronie serwera struktura bazy (schemat) i więzy umieszczone bezpośrednio w bazie, nie w aplikacji Copyright c 2010-17 P. F. Góra 1 6

Schemat i instancja Baza danych to, w pewnym sensie, abstrakcyjny model systemu o określonym schemacie. Schemat bazy danych zawiera informację o tableach (lub innych obiektach) w bazie, kolumnach, typach danych, indeksach, wzajemnych powiazaniach pomiędzy tabelami, a także o użytkownikach, ich uprawnieniach itd itd. Konkretne wystapienie bazy danych, wraz konkretna (chwilowa!) zawartościa danych, nazywa się instancja. Każda instancja musi być fizycznie zlokalizowana na jakimś sprzęcie. Co zrobić, gdy zaczyna brakować miejsca, mocy obliczeniowej i innych zasobów? Copyright c 2010-17 P. F. Góra 1 7

Skalowanie Gdy brakuje zasobów, skalujemy nasz system bazodanowy: rozbudowujemy serwer lub dodajemy nowe serwery. Copyright c 2010-17 P. F. Góra 1 8

Skalowanie pionowe Skalowanie pionowe (vertical scaling, scaling up) polega na dokładaniu zasobów (pamięci, przestrzeni dyskowej, procesorów, portów komunikacyjnych etc) do istniejacego serwera. Copyright c 2010-17 P. F. Góra 1 9

Skalowanie pionowe Zalety Wady mniejsze zużycie mocy awaria unieruchamia cała bazę mniejszy koszt chłodzenia ograniczenia fizyczne mniejsza zajętość serwerowni prawo malejacych przychodów mniejsze koszta licencyjne duże serwery sa bardzo drogie nie wymaga dodatkowego sprzętu sieciowego nie ma spowolnień w celu zapewnienia spójności danych Copyright c 2010-17 P. F. Góra 1 10

Prawo Amdahla Jeśli mamy jeden procesor, dołożenie drugiego da nam większy zysk, niż dołożenie setnego procesora do 99 istniejacych. Niech α oznacza część operacji, które musza być wykonywane sekwencyjnie. 1 α jest częścia operacji, która można zrównoleglić. Wówczas jeśli mamy P procesorów, prawo Amdahla głosi, że osiagniemy przyspieszenie równe S = 1 α + 1 α P Copyright c 2010-17 P. F. Góra 1 11

Przypadki graniczne: α = 0 (wszystko da się zrównoleglić): S = P. Dla α > 0 lim P S = 1 α Prawo Amdahla jest szczególnym przypadkiem prawa malejacych przychodów (the law of diminishing returns). W pewnym momencie zwiększanie zasobów jedynego serwera przestaje się opłacać. Copyright c 2010-17 P. F. Góra 1 12

Skalowanie poziome Skalowanie poziome (horizontal scaling, scaling out) polega na dokładaniu serwerów, które przechowuja kopie bazy danych i obsługuja część ruchu. Copyright c 2010-17 P. F. Góra 1 13

Skalowanie poziome Zalety Wady awaria jednego serwera większe zużycie mocy nie unieruchamia całej bazy większy koszt chłodzenia łatwiej dokładać serwery większa zajętość serwerowni łatwiej usuwać serwery większe opłaty licencyjne na ogół tańsze od skalowania pionowego wymagane więcej sprzętu sieciowego (duże serwery sa bardzo drorgie) nierównomierne obciażenie serwerów (fragmentacja) spowolnienia dla zapewnienia spójności danych Copyright c 2010-17 P. F. Góra 1 14

W praktyce decyzja o wyborze skalowania bywa trudna. Zależy od charakteru bazy, liczby klientów jednocześnie komunikujacych się z baza, a nawet od (typowej) zawartości bazy (instancji bazy), posiadanego budżetu itp. Źródło: http://www.practicingsafetechs.com/techsv1/scaling/index.html Copyright c 2010-17 P. F. Góra 1 15

Zasadniczy podział Bazy relacyjne 80% rynku Bazdy danych relacyjne NoSQL Not only SQL Bazy NoSQL największe firmy technologiczne (Amazon, Facebook) plus 95% aplikacji wytwarzanych przez niczego nieświadomych programistów Copyright c 2010-17 P. F. Góra 1 16

Relacyjne bazy danych Oparte o mocne matematyczne podstawy Wymagaja dobrego (kosztownego, czasochłonnego, przemyślanego) zaprojektowania Instytucje rzadowe, banki, duże firmy (tradycyjne) Chronia przed wieloma błędami Zapewniaja bezpieczeństwo danych Zapewniaja stała spójność danych pomiędzy serwerami... i generuja wynikajace z tego opóźnienia Możliwy bardzo długi czas życia Kłopot, gdy dane nie pasuja do schematu Moga obsługiwać setki, a nawet tysiace jednoczesnych użytkowników Copyright c 2010-17 P. F. Góra 1 17

Bazy NoSQL Luźniejsze, gorzej zdefiniowane podstawy Nie wymagaja dokładnego projektowania Największe firmy nowych technologii plus większość małych firm nowych technologii Większa odpowiedzialność spoczywa na programiście Mnóstwo oprogramowania samo generuje takie bazy Nie musza zapewniać stałej spójności danych pomiędzy serwerami... zapewniajac lepsza dostępność, kosztem niejednoznacznych odczytów Typowo raczej krótki czas życia Znacznie bardziej elastyczne przy zróżnicowanych danych Pomyślane do obsługiwania dziesiatek i setek tysięcy jednoczesnych użytkowników Copyright c 2010-17 P. F. Góra 1 18

Cykl życia projektu informatycznego Analiza Modelowanie Implementacja Wdrożenie Utrzymanie Copyright c 2010-17 P. F. Góra 1 19

Baza danych jako model rzeczywistości Baza danych jest modelem rzeczywistości ma odpowiadać potrzebom użytkownika, nie wyobrażeniom projektanta Złamanie tej zasady to typowy (i bolesny) bład popełniany przy projektowaniu baz danych. Uzyskanie informacji od klienta czego im naprawdę trzeba bywa nie lada wyzwaniem Copyright c 2010-17 P. F. Góra 1 20

W Dolinie Krzemowej panuje systemowy brak odpowiedzialności. Zakorzeniony jest w chorobliwej wśród programistów pewności, że rozumieja co jest najlepsze dla świata, podczas gdy w rzeczywistości sa naiwni i nie maja nawet pojęcia, jaki jest skomplikowany. Zeynep Tűfekçi Copyright c 2010-17 P. F. Góra 1 21

Programming is Forgetting Źródło: Allison Parrish, Programming is Forgetting Copyright c 2010-17 P. F. Góra 1 22

Przykład mysql> CREATE TABLE Studenci -> (NrStudenta SMALLINT UNSIGNED NOT NUll AUTO_INCREMENT PRIMARY KEY, -> Imie VARCHAR(20), -> Nazwisko VARCHAR(20) NOT NULL, -> Uwagi VARCHAR(30), -> Grupa CHAR(2) NOT NULL); Query OK, 0 rows affected (0.06 sec) Projektowanie bazy danych (a w pewnym sensie każdego innego oprogramowania) łaczy się z odrzucaniem wielu informacji o świecie zewnętrznym. Część z nich bardzo trudno zdigitalizować. Jakaś część ta możliwa do digitalizacji lub nie kiedyś mogłaby się przydać. I co wtedy? Baza danych jest modelem jakiegoś fragmentu rzeczywistości. Copyright c 2010-17 P. F. Góra 1 23

Everything should be made as simple as possible, but not simpler. Albert Einstein Copyright c 2010-17 P. F. Góra 1 24

Modelowanie danych diagramy zwiazków encji (ER) Zbiór encji (entity set) abstrakcyjna klasa reprezentujaca jakiś fragment rzeczywistości: osoba, pracownik, klient, pojazd, ksiażka. Encje maja swoje atrybuty (wszystkie encje z danego zbioru takie same), na przykład imię, nazwisko, PESEL. Zazwyczaj oczekuje się, że istnieje atrybut pozwalajacy na jednoznaczna identyfikację encji w zbiorze; w podanym przykładzie byłby to PESEL. Encje moga wchodzić w zwiazki (relationship), łacz ace elementy jednego zbioru encji z elementami innego (niekiedy tego samego!) zbioru encji. Teoretycznie zwiazki encji moga być wieloargumentowe, a nawet posiadać własne atrybuty. Takie przypadki eliminujemy, wprowadzajac sztuczne zwiazki dwuargumentowe i/lub dodatkowe zbiory encji (w modelu relacyjnym oznacza to wprowadzanie tabel pomostowych), tak więc ograniczmy się do bezatrybutowych zwiazków binarnych. Copyright c 2010-17 P. F. Góra 1 25

Przykład Encje, ich atrybuty i zwiazek Zwiazek: Zbiór par uporzadkowanych, podzbiór iloczynu kartezjańskiego zbiorów. Copyright c 2010-17 P. F. Góra 1 26

Rodzaje zwiazków między danymi Zwiazek wiele do wielu jeden operator może obsługiwać wiele maszyn, jedna maszyna może być obsługiwana przez wielu operatorów. Copyright c 2010-17 P. F. Góra 1 27

Niech będa dane zbiory A = {x 1, x 2, x 3, x 4 }, B = {y 1, y 2, y 3, y 4, y 5 }. Wiele do wielu A B x 1 y 2 x 1 y 3 x 2 y 1 x 2 y 2 x 2 y 5 x 3 y 1 x 4 y 2 x 4 y 5 x 3 y 6 Element y 4 nigdzie się nie pojawia (nie wszystkie elementy zbiorów musza wchodzić we wskazany zwiazek). Copyright c 2010-17 P. F. Góra 1 28

Ostatni wiersz wskazuje na nieporawna, nie należac a do iloczynu kartezjańskiego parę (x 3, y 6 ). W bazach danych, jeśli explicite tego nie zabronimy, tego typu zwiazki można definiować (a co się stanie, gdy taki faktycznie wystapi, zależy od kontekstu). Copyright c 2010-17 P. F. Góra 1 29

Zwiazki wiele do jednego, jeden do wielu Jedna maszyna może być obsługiwana tylko przez jednego operatora, ale jeden operator może obsługiwać wiele maszyn Jeden operator może obsługiwać wiele maszyn, ale jedna maszyna może być obsługiwana przez wielu operatorów Copyright c 2010-17 P. F. Góra 1 30

Zwiazek jeden do jednego Jedna maszyna może być obsługiwana tylko przez jednego operatora, a jeden operator może obsługiwać tylko jedna maszynę. W pewnym sensie można utożsamić operatora z obsługiwana przez niego maszyna. Copyright c 2010-17 P. F. Góra 1 31

Jeden do jednego A B x 1 y 3 x 2 y 1 x 4 y 2 Elementy w żadnej kolumnie nie powtarzaja się. Nie wszystkie elementy musza wystapić. Ale gdyby element x 3 wystapił, musiałby się łaczyć z y 4 albo y 5. Copyright c 2010-17 P. F. Góra 1 32

Integralność referencyjna Integralność referencyjna (referential integrity) to szczególny, występujacy wyłacznie w kontekstach bazodanowych, typ zwiazku wiele-do-jednego, w którym wskazywany element musi istnieć. Uniemożliwia to wystapienie takiej sytuacji, jaka była omawiana na stronie 29. Ze względu na swój ograniczajacy charakter, ten zwiazek zazwyczaj nazywany jest więzem integralności referencyjnej. Copyright c 2010-17 P. F. Góra 1 33

Przykład W bazie danych przychodni medycznej zapisywane sa informacje o badaniach zleconych przez zatrudnionych tam lekarzy. Zwiazek integralności referencyjnej mówi, że w bazie nie da się zapisać informacji o badaniu zleconym przez nieistniejacego (nie zatrudnionego tam) lekarza. Copyright c 2010-17 P. F. Góra 1 34