Wprowadzenie do systemów baz danych Wykład 1
Informacja to przyrost wiedzy, który może być uzyskany na podstawie danych Dane to opis faktów, zapisane są najczęściej w formie symboli reprezentujących coś Informacja to zinterpretowane dane, czyli dane umieszczone w pewnym kontekście Wiedza jest uzyskiwana z informacji poprzez jej zintegrowanie z istniejącą wiedzą Informacja ma charakter subiektywny i musi być rozpatrywana w kontekście odbiorcy. Te same dane mogą być różnie interpretowane przez różnych ludzi w zależności od posiadanej wiedzy i kontekstu
System informacyjny System informacyjny dostarcza informacje do pewnej organizacji lub jej części Systemy informacyjne związane są z działalnością człowieka Możemy wyróżnić Formalne systemy informacyjne występujące w danej organizacji opartej na biurokratycznej strukturze Techniczne systemy informacyjne stosujące technologię informacyjną Nieformalne systemy informacyjne (bez precyzyjnych ram działania) W celu pozyskiwania użytecznych informacji gromadzi się dane tworząc zbiory danych nazywane bazami danych Bazy danych stanowią centralną część systemów informacyjnych
Technologie informacyjne IT ang. Information Technology Zestaw narzędzi służących do pozyskiwania danych (informacji), gromadzenia danych (informacji), udostępniania danych (informacji), analizowania danych (informacji), przesyłania danych (informacji), selekcjonowania danych (informacji).
Współczesne technologie informacyjne Telekomunikacja Informatyka (technologie komputerowe) Sprzęt komputerowy i komunikacja sieciowa Oprogramowanie poczta elektroniczna, serwery WWW, bazy danych, aplikacje klienckie baz danych, urządzenia bankomaty, kasy, rejestratory, kontrolery ruchu, urządzenia pomiarowe.
Elementy technicznych systemów informacyjnych Serwer WWW, aplikacje, Email WAP Sieć komunikacyjna Sieć komunikacyjna Baza danych
Baza danych Baza danych jest logicznie uporządkowanym zbiorem danych Dane w bazie danych są zorganizowane zgodnie z przyjętym modelem Baza danych jest tworzona w celu modelowania pewnego wycinka rzeczywistości Modelowany fragment rzeczywistości nazywamy obszarem analizy (Universe Of Discourse; UOD) Obszar analizy obejmuje pewną ilość obiektów, zdarzeń i pojęć zwanych encjami Encje (obiekty, zdarzenia,...) posiadają opisujące je atrybuty W bazie danych przechowywane są dane (atrybuty) encji i związków zachodzącym między encjami
Typy współczesnych baz danych Produkcyjne bazy danych (operacyjne) Zawierają dane operacyjne potrzebne do bieżącej działalności np. rezerwacja biletów, przelewy bankowe Muszą zapewnić prawidłowe przetwarzanie transakcji OLTP (Online Transaction Processing) Bazy danych wspomagające decyzje (analityczne) Magazyny danych służące do wyszukiwania informacji wspomagających podejmowanie decyzji, np. które połączenia lotnicze zamknąć, a które otworzyć Muszą umożliwić prawidłową analizę danych OLAP (Online Analytical Processing)
Pojemność baz danych Dysk twardy o pojemności 1TB kosztuje około 200 zł Przyjmując, że 1 strona maszynopisu zajmuje 2KB uzyskamy, że 1TB = 500 milionów stron maszynopisu Zakup sprzętu do przechowywania ogromnych ilości danych nie stanowi obecnie większego problemu, znacznie większym problemem jest pozyskanie danych i ich wprowadzenie do systemu
Integralność bazy danych W języku angielskim słowo integrity tłumaczone jako integralność, oznacza w odniesieniu do osoby, że można zaufać temu, co dana osoba mówi, i że można oczekiwać zgodności między tym, co dana osoba mówi, że zrobiła (zrobi), a tym, co dana osoba naprawdę zrobiła (zrobi) Integralność bazy danych oznacza, że baza danych jest wiernym odbiciem swojego obszaru analizy Integralność bazy danych oznacza także, że baza danych jest poprawnie zorganizowana wewnętrznie nie zawiera powtórzeń danych, nie zawiera niejednoznacznych lub sprzecznych danych (baza danych jest wewnętrznie logicznie spójna)
Budowa bazy danych Zbiór danych zapisany na twardym dysku Klienci System zarządzania bazą danych SZBD (DBMS)
Funkcje Systemu Zarządzania BD Organizowanie danych Wprowadzanie danych Wybieranie danych Usuwanie danych Aktualizowanie danych Zachowanie integralności Zapewnienie bezpieczeństwa danych Zapewnienie bezpieczeństwa współbieżnego dostępu do bazy danych
Modele danych Hierarchiczny Sieciowy Relacyjny!!! Obiektowy Dedukcyjny Obiektowo-relacyjny
Relacyjny model danych Model matematyczny oparty o teorię zbiorów Model relacyjny jest modelem teoretycznym wdrażanym przez istniejące systemy baz danych Jedyną strukturą danych jest tabela (relacja) będąca odpowiednikiem relacji w teorii zbiorów
Organizacja danych w modelu relacyjnym Dane są zapisywane we wzajemnie ze sobą powiązanych tabelach (relacjach) Układ tabel tworzy się tak, aby jedna informacja była zapisana jeden i tylko jeden raz unikanie nadmiarowości (redundancji) danych Dostęp do danej jest uzyskiwany poprzez podanie: nazwy tabeli, nazwy kolumny, wartości klucza głównego (kolumny zawierającej unikalne wartości)
Postulaty realizowane w bazach danych System wdraża język zapytań Zasady integralności danych powinny być możliwe do zdefiniowania wewnątrz języka zapytań Katalog bazy danych jest przechowywany wewnątrz jednej lub wielu tabel, które mogą być czytane przez autoryzowanych użytkowników Programy, za pomocą których manipuluje się bazą danych, są niezależne od tego, jak baza danych jest fizycznie zorganizowana Relacyjna baza danych powinna działać tak samo, niezależnie od tego, czy pracuje na pojedynczej maszynie, czy jest rozproszona przez sieć
Język SQL Structured Query Language (SQL) - Strukturalny język zapytań - umożliwia wykonywanie wszystkich operacji Systemu Zapytań BD (SZBD) Pierwotnie przewidziany dla serwerów danych (serwerów SQL) obecnie praktycznie wszystkie bazy danych są wyposażone w interfejs SQL Prace nad językiem rozpoczęto w 1982 roku 1986 standard ANSI (American National Standards Committee) SQL-86 1987 standard ISO (International Standards Organization) SQL-87 (SQL1) 1992 SQL-92 (SQL2) 1999 SQL-99 (SQL3) 2003-2016 SQL2003 SQL2016
Rodzaje serwerów Serwer plików aplikacje klientów mają bezpośredni dostęp do danych zapisanych w plikach, funkcje SZBD pełnią aplikacje klientów wyposażone w sterowniki dostępu do danych Serwer danych aplikacje klientów uzyskują dostęp do danych za pośrednictwem programu działającego na serwerze, który pełni funkcję SZBD
Komercyjne serwery danych Oracle MS SQL Server tylko MS Windows DB2 (IMB) Sybase Adaptive Srever Informix
Bezpłatne serwery danych PostgreSQL najbardziej zaawansowany technologicznie serwer Open Source MySQL najpopularniejszy serwer Open Source MS SQL Server 2005 Express Edition* Oracle Database 10g Express Edition* IBM DB2 Express-C 9* Sybase ASE Express Edition for Linux* * - udostępnione, z ograniczeniami, serwery komercyjne
Sposoby dostępu do danych Interpreter języka SQL Biblioteka funkcji języka programowania np. C, C++ Zagnieżdżony SQL Rodzime sterowniki języków programowania PHP, Delphi, Builder C++, Visual Basic Standard ODBC (Open DataBase Conectivity) Standard JDBC (Java DataBase Conectivity) OLE DB Provider.NET Framework Data Provider
Rozdzielenie danych i aplikacji Życie bazy danych i zawartych w niej danych jest niezależne od cyklu życiowego aplikacji korzystających z bazy. Zwykle z bazy danych korzysta wiele zmieniających się w czasie aplikacji. Dane zawarte w bazie danych mają dużą wartość, dlatego bardzo rzadko są usuwane. Jeśli baza danych w istniejącej formie jest przestarzała technicznie dane przenosi się do nowszych systemów. Pojemność baz danych rośnie tak szybko, że dane można przechowywać bez ograniczeń czasowych, ciągle dodając nowe. Istnieją ustawy np. Ustawa o ochronie danych osobowych ograniczające prawo do przechowywania i udostępniania danych.
Oprogramowanie klienta Interpreter języka SQL Graficzne programy administracyjne Środowiska programistyczne IV generacji: Delphi, Builder C++, MS Access, MS Visual Studio Strony dostępu do danych obsługiwane przez popularne przeglądarki PHP, ASP, ASP.NET, JSP Programy w Jawie wykorzystujące standard JDBC Programy w C lub Pascalu wykorzystujące bibliotekę lub zagnieżdżony SQL Pakiety biurowe MS Office, Open Office (uniwersalne oprogramowanie z dostępem do baz danych)
Pakiety biurowe MS Office, Open Office, Star Office Edytor tekstu umożliwia umieszczanie w dokumentach danych, w formie tabel, oraz umożliwia drukowanie korespondencji seryjnej Arkusz kalkulacyjny zestawienia i analiza danych (np. raport tabeli przestawnej) OLAP Baza danych aplikacja umożliwia utworzenie lokalnej bazy danych oraz manipulację danymi w zewnętrznych bazach danych OLTP Active Server Pages narzędzia do tworzenia stron WWW umożliwiających edycję danych i proste operacje na danych
Bezpłatne oprogramowanie Open Source Bazy danych PostgreSQL i MySQL bezpłatne sterowniki ODBC Open Office ma własną bazę danych i współpracuje z zewnętrznymi bazami poprzez ODBC i JDBC Strony WWW dostępu do danych serwer Apache (Linux) + język skryptowy PHP (Linux, Windows) Komercyjne udostępniane bezpłatnie wymaga systemu MS Windows Platforma.NET MS Visual Studio Express Edition MS SQL Server Express Edition lub baza danych formatu MS Access Oracle Database Express Edition
Korzyści ze stosowania baz danych Wszystkie dane są dostępne w sieci z dowolnego komputera Każda informacja zapisywana jest jeden raz, aktualizacja jest też jednorazowa Dane są zawsze aktualne Dokumenty zawierające odwołania do bazy danych zawierają zawsze aktualne dane Prosta i efektywna eksploracja oraz analiza danych Możliwość tworzenia bardzo dużych zbiorów danych Możliwość publikacji aktualnych danych na stronach WWW Możliwość dostępu do danych w sieci Internet poprzez przeglądarki (wyszukiwanie, wprowadzanie, aktualizacja, usuwanie)
Rekrutacja elektroniczna Bez bazy danych Kandydaci składają wyłącznie dokumenty na papierze Członkowie komisji wpisują dane kandydatów do arkuszy kalkulacyjnych Po wprowadzeniu bazy danych Kandydaci sami wprowadzają swoje dane do systemu przez przeglądarki internetowe (w domu lub w szkole) Wszystkie dokumenty drukowane są na podstawie wprowadzonych danych Pracochłonny proces formowania listy przyjętych kandydatów Trudności z pisemnym poinformowaniem kandydatów o wynikach kwalifikacji i publikacją wyników na stronach WWW Pracochłonny proces tworzenia dokumentów komisji rekrutacyjnej Natychmiastowy proces formowania listy przyjętych kandydatów Kandydaci mogą w każdej chwili zapoznać się ze swoimi danymi i wynikami rekrutacji Wszystkie dokumenty są łatwo drukowane na podstawie zgromadzonych danych
Podsumowanie Zastosowanie baz danych usprawnia obieg informacji Bazy danych nadają się doskonale do wykorzystania, gdy zachodzi potrzeba współużytkowania danych w sieci przez różne programy Komercyjne systemy baz danych są kosztowne, ale istnieją bezpłatne lub bardzo tanie systemy spełniające wymagania bardzo wielu zastosowań Barierą przy tworzeniu bazy danych jest możliwość pozyskania danych i wprowadzenia ich do systemu Dokumentacja papierowa powinna być drukowana na podstawie wcześniej wprowadzonych do bazy danych unikanie wielokrotnego pisania lub wprowadzania danych