• Nie Znaleziono Wyników

BAZY DANYCH

N/A
N/A
Protected

Academic year: 2021

Share "BAZY DANYCH"

Copied!
37
0
0

Pełen tekst

(1)

BAZY DANYCH

Marcin Czajkowski

Politechnika Białostocka Wydział Informatyki

Wykład 1: Wprowadzenie do baz danych

Przygotowanie wykładu: Małgorzata Krętowska

(2)

Ogólny plan przedmiotu

2

Wykład :

Wprowadzenie do baz danych

Normalizacja

Fizyczna organizacja baz danych

Indeksy

Transakcje

SQL

Pracownia specjalistyczna

SQL

(3)

Literatura

Ullman J.D., Widom J., Podstawowy wykład z baz danych, WNT 1999

Garcia-Molina H., Ullman J.D. Widom J., Systemy baz danych. Pełny wykład, WNT, 2006

Banachowski L., Chądzyńska A., Mrówka-Matejewska E., Matejewski K., Stencel K., Bazy danych. Wykłady i ćwiczenia, Wydawnictwo PJWSTK, 2003

Beynon-Davies P., Systemy baz danych, WNT, 1998

Elmasri R., Navathe S.B., Wprowadzenie do systemów baz danych, Helion, 2005

Kyte T., Expert Oracle Database Architecture: Oracle Database 9i, 10g, and 11g Programming Techniques and Solutions, 2nd edition, APress 2010

Connolly T., Begg C., Database Systems: A Practical Approach to Design, Implementation and Management, 4th edition, Addison Wesley, 2005

(4)

Materiały do wykładu

4

Centrum Edukacji Zdalnej:

http://cez2.wi.pb.edu.pl/moodle/

Klucz dostępu – podany na pracowni

(5)

Plan wykładu

System bazy danych

Baza danych

Model danych

System zarządzania bazą danych (SZDB)

Architektura klient-serwer

Relacyjne bazy danych

Zapytania proste SQL

(6)

System bazy danych

6

Scenariusze powstawania systemu bazy danych

przyrostowo („kawałek-po-kawałku”)

system zintegrowany

Składniki systemu baz danych

Baza danych Model danych System zarządzania bazą danych (SZBD)

(7)

Tworzenie baz danych

(8)

Przykład systemu zintegrowanego

„Supermarket”

8

Baza danych produktów

Automatyczna aktualizacja inf. o poziomie zapełnienia półek w sklepie

Automatyczna aktualizacja inf. o zapasie produktu w magazynie

Kasy: skanowanie kodów na paskach magnetycznych Aktualizacja informacji o sprzedaży

ilość <

min. poziom

Raport o uzupełnieniu półek w sklepie z magazynu

Generowanie zamówienia do działu dostaw

ilość <

min. poziom

Informacje ze sprzedaży, ilości towarów na półkach i w magazynie są wykorzystywane przez kierownictwo sklepu do podejmowania decyzji do do strategii marketingowych

(9)

Pojęcie bazy danych

Baza danych

Definicja: baza danych (ang. database, DB) to zbiór danych zapisanych w ściśle określony sposób w strukturach odpowiadających założonemu modelowi danych

strukturalizacja zarządzania informacją (zgodność z rzeczywistością)

zbiór danych istniejący przez długi czas

Właściwości bazy danych

Współdzielenie danych

współbieżny dostęp do danych przez wielu użytkowników

Kontrolowanie replikacji danych

baza jest zbiorem danych bez niepotrzebnie powtarzających się lub zbędnych informacji

Spójność reprezentacji danych

reprezentacja w oparciu o jeden model danych

Abstrakcja danych

baza nie jest dokładnym modelem rzeczywistości, a jedynie jej wycinkiem

Bezpieczeństwo danych

Niezależność danych

celem jest sytuacja, w której organizacja danych jest niewidoczna dla użytkowników i programów korzystających z danych

(10)

Model danych

10

Model danych jako architektura - zbiór zasad posługiwania się danymi:

Definicja danych -zbiór reguł określających, jaka jest struktura danych.

Operowanie danymi - zbiór reguł określających, jak operuje się danymi.

Integralność danych - zbiór reguł określających, które stany bazy danych są poprawne.

Typy modeli

Proste modele danych - struktury rekordów zgrupowanych w strukturach plików

Klasyczne modele danych: hierarchiczne, sieciowe, relacyjne

Semantyczne modele danych

Obiektowe modele danych

(11)

Hierarchiczny model danych

11

(12)

Sieciowy model danych

12

(13)

System zarządzania bazą danych (SZBD)

Database management system (DBMS)

Zorganizowany zbiór narzędzi umożliwiający dostęp i zarządzanie jedną lub większą liczbą baz danych. SZBD jest powłoką, która otacza bazę danych i za pomocą której dokonują się wszystkie operacje na bazie danych.

Funkcje SZBD:

Umożliwienie utworzenia nowej bazy i określenie jej schematu

Przechowywanie danych

Obsługa zapytań (ang. query)

Zapewnienie wielodostępności

Ochrona i zapewnienie integralności danych

(14)

Architektura klient-serwer

14

serwer

klienci

Typowe funkcje strony serwera aplikacji:

- przechowywanie i organizacja dostępu do danych

- wykonywanie instrukcji języka SQL

- sprawowanie kontroli nad spójnością danych - zarządzanie zasobami bazy danych, w tym kontami użytkowników

Typowe funkcje aplikacji po stronie klienta:

kontakt z użytkownikiem:

przyjmowanie od niego zleceń na operacje, wykonywanie tych zleceń lub przesyłanie ich w postaci

instrukcji języka SQL do serwera bazy danych

(15)

Użytkownicy bazy danych

Baza danych

Administratorzy baz danych

Użytkownicy końcowi Programiści

(16)

Administrator bazy danych

16

Instalowanie, aktualizowanie i konfigurowanie oprogramowania systemu

Zakładanie baz danych oraz kontrolowanie do nich dostępu

Tworzenie i modyfikowanie podstawowych struktur baz danych

Dostrajanie baz danych w celu uzyskania maksymalnej efektywności

Archiwizowanie i odtwarzanie baz danych

(17)

Programista, użytkownik końcowy

Programista

Projektowanie obiektów baz danych

Projektowanie i implementacja aplikacji bazodanowej

Współpraca z administratorem bazy w celu poprawnej integracji aplikacji z bazą danych

Użytkownik końcowy

Wprowadzanie, modyfikacja danych

Generowanie raportów

(18)

Relacyjne bazy danych (1970, Codd)

18

umożliwienie prezentowania użytkownikowi danych w postaci dwuwymiarowych tabel, nazywanych relacjami

użytkownik nie musi nic wiedzieć o wewnętrznej, często skomplikowanej, strukturze wewnętrznej

zapytania można wyrażać w języku wysokiego poziomu, co podnosi wydajność programistów baz danych

Nr konta Bilans Typ

12345 1000,00 oszczędnościowy

87654 3567,00 rozliczeniowy

... ... ...

Atrybuty

Krotki

Przykład:

Tabela Konta

(19)

Podstawy modeli relacyjnych

Schemat relacji - nazwa relacji oraz jej zbiór atrybutów

Film (tytuł, rok, czas, rodzaj)

W modelu relacyjnym projekt składa się z jednego lub kilku schematów relacji.

Zbiór schematów relacji jest określany schematem relacyjnym bazy danych lub schematem bazy danych.

Krotki - wiersze relacji, poza wierszem nagłówka, zawierającym atrybuty relacji

W krotce każdy atrybut ma swój odpowiednik w postaci składowej krotki

Przykład: (Gwiezdne wojny, 1977, 124, kolor)

Jedna krotka nie może wystąpić w relacji więcej niż jeden raz.

(20)

Podstawy modeli relacyjnych

20

Dziedziny - pewien określony typ elementarny, powiązany z każdym atrybutem relacji

W modelu relacyjnym każda składowa każdej relacji musi mieć określony typ atomowy (elementarny) np. typ

całkowity, znakowy. Wartość atrybutu nie może być ani rekordem, ani listą , ani zbiorem...

Klucz – zbiór atrybutów jednoznacznie identyfikujący rekordy w relacji

Instancja relacji - zbiór krotek danej relacji

Instancja bieżąca - zbiór krotek, które są w relacji

„teraz”

Liczność związku – 1-1; 1-N

(21)

Przykład

Utworzyć relacyjny schemat bazy z następujących atrybutów:

Id_klienta

Imię

Nazwisko

Id_filmu

Tytuł

Rok produkcji

Data_wypożyczenia

Data_zwrotu

(22)

Przykład schematu bazy danych

22

(23)

Tabele Pracownik, Departament

(24)

SQL

24

SQL (ang. Structured Query Language) – strukturalny język zapytań używany do tworzenia, modyfikowania relacyjnych baz danych oraz do umieszczania i pobierania danych z baz danych.

Typy zapytań SQL:

DML (ang. Data Manipulation Language) – język manipulowania danymi

DDL (ang. Data Definition Language) – język definiowania danych

DCL (ang. Data Control Language) – język kontroli na danymi

(25)

DML

25

DML (ang. Data Manipulation Language) służy do wykonywania operacji na danych – do ich umieszczania w bazie, usuwania, przeglądania oraz dokonywania zmian.

Najważniejsze polecenia:

INSERT – umieszczenie danych w bazie,

UPDATE – zmiana danych,

DELETE – usunięcie danych z bazy,

SELECT – wydobywanie danych (czasem umieszczany w oddzielnym typie zapytań DQL (ang. Data Query Language) język formułowania zapytań

(26)

DDL

26

DDL (ang. Data Definition Language) pozwala na operowanie na strukturach, w których dane są przechowywane – czyli np.

dodawać, zmieniać i kasować tabele lub bazy.

Najważniejsze polecenia:

CREATE (np. CREATE TABLE, CREATE DATABASE, ...) – utworzenie bazy, tabeli, indeksu itp.,

DROP (np. DROP TABLE, DROP DATABASE, ...) – usuwanie,

ALTER (np. ALTER TABLE ADD COLUMN ...) – zmiana struktury (dodanie kolumny do tabeli, zmiana typu danych w kolumnie tabeli).

(27)

DCL

27

DCL (ang. Data Control Language) ma zastosowanie do nadawania uprawnień do obiektów bazodanowych.

Najważniejsze polecenia:

GRANT - służy do nadawania uprawnień do pojedynczych obiektów lub globalnie konkretnemu użytkownikowi

REVOKE – służy do odbierania wskazanych uprawnień konkretnemu użytkownikowi

(28)

Zapytania proste

28

SELECT [ALL | DISTINCT] wyrażenie [[AS] alias], ...

FROM nazwa_tabeli, ...

[WHERE warunek]

[ORDER BY wyrażenie ASC|DESC], ...];

(29)

Zapytania proste

SELECT [ALL | DISTINCT] wyrażenie [[AS] alias], ...

FROM nazwa_tabeli, ...

ALL- pokazuje wszystkie wiersze (domyślny) DISTINCT - eliminuje powtarzające się wiersze

wyrażenie - nazwa kolumny lub wyrażenie zawierające nazwy kolumn,

zamiast wyrażenia może wystąpić znak '*’ oznaczający wszystkie kolumny

alias - nazwa nadana wyrażeniu na liście SELECT, może mieć postać identyfikatora prostego (napis złożony z liter, cyfr i znaków podkreślenia) lub złożonego (dowolny napis ograniczony podwójnymi cudzysłowami, np.

zawierający spacje),

(30)

Przykład

30

SELECT * FROM pracownik ;

(31)

Przykład

select stanowisko from pracownik;

select distinct stanowisko from pracownik;

(32)

Przykład

32

select nazwisko, pensja*12 as „pensja roczna”

from pracownik;

select nazwisko, pensja*12 as „pensja roczna”

from pracownik order by nazwisko;

(33)

Zapytania proste

[WHERE warunek]

Operatory logiczne: =; <; >; >=; <=

Operatory SQL:

BETWEEN ... AND ... - między dwiema wartościami (włącznie z nimi)

IN (lista) - zgodnie z jednym elementów listy

LIKE - zgodnie z zadanym wzorcem (interpretacja znaków typu "wildcard": ‘%’

Zastępuje ciąg znaków, ‘-’ zastępuje jeden znak)

IS NULL - jest wartością NULL

Operator negacji:

NOT (NOT nazwa_kolumny = ...; NOT BETWEEN; NOT IN; NOT LIKE; IS NOT NULL)

Kryteria złożone:

AND (i)

OR (lub)

(34)

Przykład

34

Wypisać nazwiska pracowników, którzy zarabiają powyżej 1 500 zł select nazwisko, pensja from pracownik where pensja>1500;

(35)

Przykład

Wypisać pracowników pracujących na stanowisku sprzedawcy lub analityka

select nazwisko, stanowisko from pracownik where stanowisko in (‘SPRZEDAWCA’,

‘ANALITYK’);

(36)

Przykład

Select nazwisko from pracownik where premia=NULL;

Select nazwisko, premia from pracownik where premia is NULL;

Wypisać pracowników, którzy nie dostają prowizji.

(37)

Przykład

Wypisać pracowników, których nazwiska zaczynają się na literę S.

select nazwiso from pracownik where nazwisko like ‘S%’;

Wypisać pracowników, których nazwiska mają 4 litery

select nazwisko from pracownik where nazwisko like ‘____’;

Cytaty

Powiązane dokumenty

Niezależność aplikacji i danych - dane mogą być wprowadzane do bazy bez konieczności modyfikacji korzystających z nich programów czy systemów użytkowych, a z drugiej

Model danych, architektura systemu bazy danych, funkcje systemu zarządzania bazą danych, relacyjny model danych, język SQL... Architektura systemu

Sens tego zapytania można opisać w następujący sposób: Wybrać (SELECT) wszystkie kolumny z tabeli Ucznio- wie (Uczniowie.*) oraz wszystkie kolumny z tabeli Klasy (Klasy.*),

Wyszukiwanie SELECT Wstawianie INSERT Aktualizacja UPDATE Usuwanie

T [0, 1] jest stopnień prawdziwości i wyznacza prawdziwość podsumowania (jak bardzo jest bliskie prawdzie). Wartości T są wyznaczane na podstawie rachunku Zadeha dotyczą-

Podstawowe założenia przyjęte przy budowie systemu to: możliwość wspomagania całego procesu legalizacji ponownej analizatorów, dostosowanie systemu do warunków pracy

Sporządź diagram związków encji (ERD) w III – ciej postaci normalnej, dla relacyjnej bazy danych obsługującej całoroczny Puchar Świata w żeglarskiej klasie FINN

Projektanci baz danych zajmują się projektowaniem struktury logicznej bazy danych, czyli struktur modelu danych i projektowaniem struktury fizycznej bazy danych, czyli