Wykład 1 Baza danych



Pobieranie 234,08 Kb.
Strona1/8
Data20.02.2019
Rozmiar234,08 Kb.
  1   2   3   4   5   6   7   8

Wykład 1

Baza danych


  • algebra, gdzie mamy do czynienia z danymi, językiem

  • odwzorowanie jakiegoś fragmentu rzeczywistości

  • miejsce przechowywania danych



Dane


  • fakty, są rożnego typu

Z jakimi rodzajami danych się spotykamy:



  • liczby

  • (łańcuchy) tekst

  • daty (datowy)

  • czasowy

  • multimedialny (obraz, dźwięk)

  • abstrakcyjne ( ? )

Struktury



Dane


Reprezentacja o określonej treści i strukturze, nadająca się do przechowywania, przesyłania oraz wykonania działań logicznych i matematycznych

Dane


To proste typy (bazowe; liczby, teksty, daty) i złożone (masowe; kolekcje, relacje, wielozbiory) oraz abstrakcyjne typy danych

Baza danych


  • jest logicznym zestawem danych i metadanych zbudowanych w oparciu o pewien model danych, na których można wykonywać określone operacje (aspekt składniowy i operacyjny)

metadane – dane o danych (dane na temat danych)

  • reprezentuje pewien fragment świata rzeczywistego (aspekt semantyczny)

  • jest projektowana, tworzona i utrzymywana z punktu widzenia przydatności dla określonych zastosowań (aspekt paradygmatyczny)



Model danych


Pojęcie niezbyt jednoznaczne, którego znaczenie jest wypadkową takich cech:

  • metajęzyk (pojęcia, terminologia) do mówienia o danych, systemach baz danych i przetwarzaniu

  • sposób rozumienia organizacji danych

  • języki opisu i przetwarzania danych; diagramy struktur danych, języki zapytań

  • ogólne założenia dotyczące architektury systemu baz danych

  • ograniczenia, ideologie lub teorie matematyczne dotyczące struktur danych i dostępu do danych

Model danych z punktu widzenia architektury systemu baz danych obejmuje :



  • definicję danych

  • operowanie danymi

  • integralność danych

Można wyróżnić trzy główne typy:

  • proste modele danych (system plików)

  • klasyczne (hierarchiczne, sieciowe, relacyjne)

  • semantyczne (częściowo obiektowe)


BAZA DANYCH


w zależności od przyjętego punktu widzenia może być traktowana, co najmniej jako:

  • model świata rzeczywistego

  • zasób systemu informatycznego

  • element składowy systemu

  • uniwersum interpretacji języka danych

  • zbiór struktur danych


WŁASNOŚCI BAZY DANYCH:

  • abstrakcja danych

  • niezależność danych

  • integralność danych (wiarygodność)

  • współdzielenie danych

  • integracja danych

  • trwałość danych

  • bezpieczeństwo danych



SYSTEM ZARZĄDZANIA BAZĄ DANYCH


(database management system DBMS)

system oprogramowania zawierający w szczególności następujące mechanizmy:



  • środki do gromadzenia, utrzymywania i administrowania trwałymi i masowymi zbiorami danych

  • środki zapewniające spójność i bezpieczeństwo danych

  • sprawny dostęp do danych ( poprzez język zapytań)

  • środki programistyczne ( API dla popularnych języków programowania )

  • jednoczesny dostęp do danych dla wielu użytkowników

  • środki pozwalające na odtworzenie zawartości bazy po awarii

  • środki optymalizujące pamięć i czas dostępu

  • współdziałanie w środowiskach rozproszonych



ZESTAW NARZĘDZI



INTERFEJ UŻYTKOWNIKA


JĄDRO SYSTEMU

BAZA DANYCH



PROCES TWORZENIA BAZY DANYCH:

  • analiza wymagań dziedziny modelowej

  • modelowanie koncepcyjne

  • modelowanie logiczne

  • modelowanie fizyczne

  • implementacja modelu w ramach systemu baz danych


MODEL ENCJA-ZWIĄZEK


Zaliczany do modeli pojęciowych; język wizualnych diagramów

  • encja – grupa obiektów o podobnych właściwościach którą można i warto wyróżnić w modelowej rzeczywistości

  • związek – grupa powiązań pomiędzy encjami

  • atrybut – cecha charakteryzująca encję lub związek

  • generalizacja\specjalizacja – zawieranie się grup obiektów

  • liczność – dla danej encj A ; określenie min i max liczby obiektów w innej encji


JĘZYK ZAPYTAŃ


  • wysoki poziom konceptualizacji i abstrakcji

  • deklaracyjny (nieproceduralny)

  • makroskopowy

  • naturalny

  • efektywny (optymalizowany)

  • uniwersalny

  • niezależny od dziedziny zastosowań

  • pozwalający na pracę w trybie interakcyjnym

SELECT [DISTINCT] przecinkowa lista wyrażeń

FROM przecinkowa lista tabel relacji

[WHERE warunek logiczny ]

[GROUP BY kryterium grupowania

[HAVING warunek logiczne]]

[ORDER BY kryterium porządkowania];

OPERATORY


- porównań =, <, >, <=, >=, <> (!=)

  • logiczne NOT, AND, OR

  • zawierania [NOT] BETWEEN

  • wzorca [NOT] LIKE

  • testujący Null IS [NOT] NULL



Relacyjne bazy danych


Język zapytań SQL pochodzi od teorii relacji.

RELACJA to specyficzny rodzaj tablicy, która:



  • określa pojedynczą jednostkę (entify) świata rzeczywistego

  • nie zawiera zduplikowanych wierszy, tzn. zawsze istnieje klucz główny (np. powtarzające się nazwiska)

  • kolumny i wiersze są nieuporządkowane














































































































Każda kolumna jest atrybutem.

Wiersze to krotki;

krotka – wiersz to rekord.



Składnia języka SQL


Po SELECT jest przecinkowa lista tabel, które nie mogą zaczynać się od cyfry.

Baza danych ma się składać z wzajemnie powiązanych tabel.



ZAPYTANIA


Centralną instrukcją języka SQL jest instrukcja służąca do wydobywania informacji z bazy danych. Jest nią instrukcja SELECT, określająca z jakich relacji (tabel) w bazie danych mają być sprowadzone dane i w jakiej dokładnie postaci mają się pojawić przed użytkownikiem. Instrukcja SELECT składa się z kilku części nazwanych klauzulami (frazami).

Ogólna postać jest następująca:
SELECT [DISTINCT] , / [[AS>], ...

FROM , , ...

[WHERE ]

[GROUP BY / [ASC/desc], ...] ;


UWAGI:

Powtarzające się krotki (wiersze) relacji nie są automatycznie eliminowane z wyników zapytania. Słowo DISTINCT oznacza eliminację powtarzających się wierszy.



Przykład:

Wypisz identyfikatory osób, które mają podwładnych (tzn. które są kierownikami pewnych pracowników).

SELECT DISTINCT szef FROM pracownik;
W miejscu nazwy atrybutu może wystąpić wyrażenie. Wyrażeniom na liście SELECT mogą zostać nadane nazwy zastępcze,

czyli aliasy. Alias może mieć postać prostego identyfikatora, czyli napisu złożonego z liter, cyfr i znaków podkreślenia albo ograniczonego identyfikatora, czyli dowolnego napisu ograniczonego podwójnymi cudzysłowami, np. „Zarobki pracowników”.

W szczególności w ograniczonym identyfikatorze mogą występować spacje, które są niedozwolone w prostym identyfikatorze.

Przykład:

Podaj uporządkowaną listę nazwisk pracowników wraz z identyfikatorem i okresem zatrudnienia w pełnych latach.
SELECT numer, nazwisko, TRUNC(MONTHS_BETWEEN(SYSDATE, data zatrudnienia) / 12) AS Zatrudnienie

FROM pracownik ORDER BY Zatrudnienie DESC;

Przy wypisywaniu rezultatów (wyniku) jako tytuły kolumn są używane aliasy. Mogą one występować w klauzuli ORDER BY jak w powyższym przykładzie, gdzie porządkujemy dane o pracownikach według stażu pracy.

Natomiast w klauzuli WHERE, GROUP BY i HAVING nie można ich używać.

Obie klauzule SELECT i FROM są wymagane w każdym zapytaniu.

Zasady wykonania prostego zapytania:


  1. Weź relację podaną w klauzuli FROM.

  2. Jeśli występuje klauzula WHERE, do każdej krotki danej relacji zastosuj warunek logiczny. Pozostaw krotki dające wartości true (usuwając krotki dające false lub NULL).

  3. Do każdej pozostającej krotki oblicz wartości wyrażeń na liście SELECT.

  4. Jeśli po słowie SELECT występuje LISTINCT, usuń duplikaty wśród wynikowych krotek.

  5. Jeśli występuje klauzula ORDER BY , wykonaj porządkowanie zgodne ze specyfikacją.

UWAGI:

Specjalna wartość NULL – aby wskazać niepełną lub nieznaną informację.

Ta wart. różna od 0 i od spacji jest szczególnie użyteczna przy powiązaniu kluczy głównego i obcego. Pojęcie wart. NULL

nie jest jednak do końca akceptowane. Codd utrzymuje, że wprowadzenie wart. NULL do systemu relacyjnego zmienia konwencjonalną logikę dwuwartościową (prawda, fałsz) na logikę trójwartościową (prawda, fałsz, nieznane).


Tabelki definiujące operatory logiczne w sytuacji występowania trzech wartościach logicznych:


OR

TRUE

FALSE

NULL

TRUE

TRUE

TRUE

TRUE

FALSE

TRUE

FALSE

NULL

NULL

TRUE

NULL

NULL
AND

TRUE

FALSE

NULL

TRUE

TRUE

FALSE

NULL

FALSE

FALSE

FALSE

NULL

NULL

TRUE

FALSE

NULL

NOT

TRUE

FALSE

NULL




FALSE

TRUE

NULL

Przy prezentacji danych użyteczną operacją jest reprezentowanie wart. NULL jako konkretnej wart. W Oracle używamy specjalnej funkcji NVL(r1,r2), której wartością jest r2 jeśli r1 jest NULL, w przeciwnym razie r1, np. NVL(zarobki, 0)

NVL(stopień, ‘brak’).

Klauzula ORDER BY – może wystąpić wyłącznie jako ostatnia klauzula polecenia SELECT. Domyślnie przyjmuje się narastający porządek sortowania, co w przypadku liczb oznacza, że mniejsze poprzedzają większe, w przypadku dat, że wcześniejsze poprzedzają późniejsze, natomiast w przypadku łańcuchów znaków, że są one wyświetlane zgodnie z porządkiem alfabetycznym. Liczba atrybutów porządkowania jest jednak ograniczona liczbą atrybutów relacji. Atrybuty wymieniamy kolejno w klauzuli ORDER BY oddzielając je przecinkami.

Ich kolejność jest istotna: porządkowanie odbywa się bowiem najpierw według wart. pierwszego atrybutu, następnie jeśli wart. te są równe dla dwóch lub więcej krotek, wg drugiego atrybutu itd. Ponadto po każdym z atrybutów porządkowania można użyć słowa kluczowego DESC, które powoduje odwrócenie domyślnego, narastającego porządku na malejący.

Użycie atrybutu w klauzuli ORDER BY nie pociąga za sobą konieczności jego użycia w klauzuli SELECT. W klauzuli ORDER BY do wynikowych kolumn możemy odwoływać się używając ich kolejnych numerów 1,2, ... .

Funkcje agregujące związane z grupowaniem.


  • AVG ([distinct] wyrażenie liczbowe) średnia arytmetyczna

  • COUNT ([distinct] wyrażenie (*) zliczające)

  • MAX ([distinct] wyrażenie)

  • MIN ([distinct] wyrażenie)

  • SUM ([distinct] wyrażenie-liczbowe)

Jeśli chodzi o średnią arytmetyczną, to wartości puste nie są uwzględniane

Jeśli chodzi o zliczane(*) to wszystkie wartości są brane pod uwagę (również puste).

W sumie i w średniej arytmetycznej wartości puste nie są uwzględniane.




  1   2   3   4   5   6   7   8


©operacji.org 2019
wyślij wiadomość

    Strona główna