sbd 5 stron JAKW3OGGP7DM5YDHUYCTHYQFRZRJFYFPBVXUF4Q


  1. Wprowadzenie

    1. Bazy danych i ich użytkownicy

a) Wprowadzenie

Baza danych jest zbiorem powiązanych danych.

Każda baza danych posiada:

Systemem zarządzania bazą danych (SZBD) nazywamy zbiór programów umożliwiających tworzenie i eksploatację bazy danych.

SZBD jest oprogramowaniem ogólnego przeznaczenia ułatwiającym procesy definiowania, konstruowania i przetwarzania baz danych dla różnych aplikacji. SZBD nie zawiera warstwy wizualizacji.

0x01 graphic

Przykład:

Poniżej przedstawiono przykłady danych jakie mogą być przechowywane w bazie danych.


Student

Nazwisko

Nr_indeksu

Rok

Kierunek

Nowak

Kowalak

18175

335573

I

II

Informatyka

Telekomunikacja

Wykład

Nazwa

Nr_wykładu

Ilość

Prowadzący

Struktury danych

Bazy danych

Kompilatory

CS201

CS100

CS203

15

15

15

Misiek

Morzy

Nawrocki

Grupa

No_grupy

Nr_wykładu

Semestr

Rok

85

92

CS201

CS445

Letni

Zimowy

93

93

Oceny

Nr_indeksu

No_grupy

Nr_wykładu

Ocena

18175

19551

33573

92

101

112

CS100

CS445

CS100

4

5

3


b) Bazy danych a przetwarzanie plików

  1. Baza danych to dane + meta-baza (oprócz danych są także przechowywane informacje o semantyce danych).

  1. Niezależność programów i danych (np. w języku Clipper istnieje silne powiązanie między danymi a programem).

  1. Abstrakcyjna reprezentacja danych.

  1. Różnorodność sposobów widzenia danych.

c) Aktorzy na scenie

  1. Administrator bazy danych - DBA (posiada narzędzia diagnostyczne, stroi bazę danych).

  1. Projektanci bazy danych (modelowanie konkretnej rzeczywistości).

  1. Analitycy systemowi i programiści aplikacji (modelowanie konkretnej rzeczywistości).

  1. Użytkownicy końcowi (najważniejsza grupa - to dla nich zbudowano system)

d) Pracownicy poza sceną

  1. Projektanci i implementatorzy SZBD.

  1. Projektanci i implementatorzy narzędzi wspomagających.

  1. Operatorzy i personel pomocniczy.

e) Zalety SZBD

  1. Zmniejszenie nadmiarowości przechowywanych danych.

  1. Współdzielenie danych.

  1. Autoryzacja dostępu do danych.

  1. Wielość interfejsów do danych.

  1. Reprezentacja złożonych związków pomiędzy danymi.

  1. Ograniczenia integralnościowe.

  1. Backup & Recovery.

f) Kiedy nie stosować SZBD

g) Kierunki rozwoju systemów baz danych

    1. Koncepcja i architektura SZBD

a) Modele danych, schematy i instancje

Fundamentalną cechą systemów baz danych jest to, że zapewniają one pewien poziom abstrakcji widzenia danych przez użytkowników przesłaniając szczegóły dotyczącej fizycznej organizacji danych.

Model danych to zbiór koncepcji stosowanych do opisu struktury bazy danych.

Model ma za zadanie wprowadzić pośrednią warstwę abstrakcyjną, która pozwala łatwiej analizować obiekty świata rzeczywistego.

Struktura obejmuje:

Kategorie modeli danych

Schematy i instancje

Schemat bazy danych

Baza danych

Użytkownicy końcowi modyfikują stan bazy danych.

b) Architektura SZBD

Trzypoziomowa architektura systemu bazy danych ANSI/SPARC:

0x01 graphic

  1. Poziom wewnętrzny schemat wewnętrzny: opisuje fizyczną organizację bazy danych. Schemat wewnętrzny stosuje fizyczny model danych i opisuje ścieżki dostępu do danych oraz fizyczną organizację danych.

  1. Poziom pojęciowy (konceptualny) schemat konceptualny: opisuje strukturę bazy danych z punktu widzenia globalnego użytkownika. Opisuje encje, związki pomiędzy nimi, atrybuty i ograniczenia. Schemat pojęciowy stosuje konceptualny lub implementacyjny model danych.

  1. Poziom zewnętrzny (lub perspektywiczny) schematy zewnętrzne (perspektywiczne): każdy schemat zewnętrzny opisuje bazę danych z punktu widzenia jednej grupy użytkowników. Schemat zewnętrzny stosuje konceptualny lub implementacyjny model danych.

Przez zastosowanie modelu trzypoziomowego osiągnięto fizyczną i logiczną niezależność danych, co upraszcza utrzymywanie systemu. Zmiany na poziomie koncepcyjnym mogą zostać częściowo przesłonięte przez poziom zewnętrzny.

c) Języki baz danych

d) Interfejsy SZBD

e) Środowisko systemu baz danych

0x01 graphic

  1. Cykl życia systemu baz danych

Cyklem życia systemu baz danych nazywamy zbiór kroków niezbędnych do zaprojektowania globalnego schematu logicznego bazy danych, alokacji danych w sieci komputerowej oraz zdefiniowanie lokalnych schematów baz danych.

    1. Analiza wymagań miniświata

    1. Projekt logiczny

W tym kroku jest realizowany projekt schematu pojęciowego bazy danych opisującego wszystkie dane i ich wzajemne powiązania. Do projektowania wykorzystujemy model związków encji (ER model). Model ten transformujemy następnie do modelu implementacyjnego (np. modelu relacyjnego).

Innymi słowy podejmuje się decyzje: jakie dane mają być przechowywane w bazie danych? jaki schemat pojęciowy zostanie wykorzystany? Stosuje się obiektowe lub strukturalne narzędzia CASE (strukturalne w przypadku modelu ER).

      1. Modelowanie diagramów ER

Dane przedsiębiorstwa są analizowane i modelowane za pomocą diagramów ER.

      1. Integracja perspektyw

Wśród wielu analityków mogą występować różnice w postrzeganiu świata zewnętrznego, np. jeden stwierdzi, że klient składa zamówienie, a inny, że klient zamawia produkty. Wymaga to integracji perspektyw.

Fragmenty schematu pojęciowego tworzone przez niezależnych projektantów są integrowane w jeden schemat globalny, rozwiązywane są niespójności nazw encji i związków. Wykonywana jest analiza synonimów, agregacja i generalizacja.

      1. Transformacja modelu ER do modelu relacyjnego

Diagram ER jest transformowany do modelu relacyjnego - otrzymujemy schemat logiczny relacyjnej bazy danych w postaci schematów relacji.

Kolejne transformacje: model zewnętrzny model pojęciowy (EER) model implementacyjny (relacyjny).

Wyróżniamy trzy typy relacji:


Customer

cust_id

cust_name

Product

prod_no

prod_name

qty_in_stock

Order

order_no

sales_name

cust_no

Order_line

order_no

prod_no

Salesperson

sales_name

addr

dept

job_level

vacation_days


      1. Normalizacja schematów relacji

Otrzymany schemat bazy danych może być nie do przyjęcia z punktu widzenia jego własności użytkowych (np. duży koszt użytkowania, anomalie, itp.).

Dysponując informacją na temat zależności funkcyjnych i wielowartościowych (FD i MVD) dokonujemy normalizacji schematów relacji (3NF, BCNF, 4NF, 5NF).

Zalecenie: gdy będziemy implementować atrybuty wielowartościowe w modelu relacyjnym, to powinniśmy zaimplementować je jako osobne encje powiązane z relacją początkową; odpadnie wtedy potrzeba normalizacji do 4NF.

np. dana jest zależność funkcyjna

job_level vacation_days

Salesperson

sales_name

addr

dept

job_level

Sales_vacation

job_level

vacation_days

      1. Denormalizacja

Normalizacja może prowadzić do pogorszenia efektywności przetwarzania zapytań. Denormalizacja polega na rozszerzeniu relacji o dodatkowe atrybuty w celu poprawy efektywności. Denormalizacja polega na uwzględnieniu częstości zapytań, ich priorytetów, wolumenów danych.

Denormalizacja nie jest bynajmniej odwrotnością normalizacji. Model relacyjny jest prosty, jednak ceną jest prymitywny zbiór typów danych i niska efektywność (w celu realizacji zapytania potrzeba dużo kosztownych operacji połączenia).

Założenie: 90% zapytań ma następujący charakter:

Kto obsługiwał klienta o nazwisku „Koszlajda”?

Customer

cust_id

cust_name

Order

order_no

sales_name

cust_no

Customer

cust_id

cust_name

sales_name

    1. Rozproszenie danych

Celem SZBD jest zapewnienie spójności dwojakiego rodzaju:

Replikacja ma związek z:

Mechanizmy replikacji:

Faza rozproszenia danych składa się z dwóch kroków:

W tej fazie uwzględniane jest środowisko fizyczne (m.in. konfiguracja sieci).

Schemat fragmentacji opisuje odwzorowanie typu 1:N fragmentacji schematu relacji na podrelacje. Podrelacje stanowią logiczne jednostki fizyczne rozproszone na jednym lub wielu stanowiskach.

Fragmentacja wynika z późniejszego sposobu korzystania z danych.

Schemat alokacji opisuje fizyczną alokację podrelacji - tj. przypisanie danej podrelacji do stanowiska.

Cele projektu bazy danych w środowisku rozproszonym:

Cele: minimalizacja czasu odpowiedzi, minimalizacja kosztów komunikacji, maksymalizacja dostępności.

W bazie danych mamy daną x. Ponieważ baza jest replikowana, mamy trzy repliki x1, x2 i x3. Użytkownik wysyła transakcję T modyfikującą daną x. System sam musi dokonać modyfikacji replik. W przypadku replikacji synchronicznej, uaktualnianie replik zachodzi w ramach tej samej transakcji. Jest to bardzo niewygodne, bo gdy w trakcie takiej dość długiej transakcji zostanie napotkana jakaś przeszkoda, to cała transakcja zostanie wycofana. Aby zwiększyć prawdopodobieństwo uaktualnienia replik wprowadzono replikację asynchroniczną. W przypadku replikacji asynchronicznej transakcja modyfikuje tylko jedną kopię repliki danej. Następnie system uruchamia osobne transakcje, po jednej dla każdej innej repliki. Mamy tu separację transakcji, co może doprowadzić do powstania realizacji nieuszeregowalnej. Informacje o transakcjach są zapisywane w specjalnym pliku log. W razie awarii systemu, będzie on potem wiedział jakie transakcje aktualizacji musi jeszcze wykonać.

    1. Projekt schematu logicznego lokalnej bazy danych i projekt fizyczny

Celem tej fazy jest projekt schematu logicznego lokalnej bazy danych, zdefiniowanie struktur fizycznych i określenie metod dostępu.

SQL (model relacyjny)

create table customer

( cust_no integer,

cust_name char(15),

cust_addr char(30),

sales_name char(15),

prod_no integer,

primary key (cust_no),

foreign key (sales_name) reference salesperson,

foreign key (prod_no) reference product);

Projekt fizyczny obejmuje zdefiniowanie indeksów i klastrów.

create [unique] index indexname on relation (columnname [asc|desc], columnname)

create unique index nazw_ind on customer (cust_name desc)

    1. Implementacja bazy danych, jej strojenie, modyfikacje i monitorowanie

  1. Projektowanie systemów informatycznych

    1. Wprowadzenie

Klient określa potrzeby, problemy i wymagania dotyczące określonego przedsiębiorstwa X, fragmentu działalności przedsiębiorstwa X lub fragmentu działalności uogólnionego przedsiębiorstwa. Wynikiem pracy informatyków jest produkt - system informatyczny, którego jądrem jest baza danych.

Metodyka budowy oprogramowania: