plik


ÿþOPRACOWANIE ZAGADNIEC DO EGZAMINU Z PODSTAW BAZ DANYCH I. Wiadomo[ci wstpne 1. Typy baz danych - hierarchiczne - sieciowe - relacyjne Hierarchiczne  stosowana jest struktura typu drzewa. Wystpuj zwizki typu nadrzdny, podrzdny pomidzy rekordami. Zbiór rekordów poziomu wy|szego jest poBczony z relacjami poziomu ni|szego jako jeden-do-wielu. Dziki takiej strukturze wyszukiwanie danych odbywa si stosunkowo szybko, natomiast istotn wad jest to |e s wystpuje w tym modelu nadmierno[ danych spowodowana wykorzystaniem tylko relacj jeden do wielu. Trudno równie| zmieni struktur istniejcej bazy danych. Podstawowymi operacjami jakie mo|na robi na hierarchicznych bazach danych to wyszukiwanie rekordów, usuwanie rekordów, dodawania rekordów, edycja ich pól. Zalet jest to |e s one bardzo szybkie. " Usunicie rekordu wi|e si z usuniciem wszystkich rekordów wzgldem niego podrzdnych. " Nie istnieje mo|liwo[ wstawienia rekordu bez powizania go z rekordem nadrzdnym. " Ka|de pole musi zawiera odpowiedni typ danych z definicji danego typu rekordu. Sieciowe  rozwinicie bazy hierarchicznej, przez dodanie mo|liwo[ci relacji wiele do wielu. Wystpuje wic kolejna mo|liwo[ poBczenia, co powoduje |e nie ma potrzeby przy wyszukiwaniu przechodzenia przez caB struktur drzewa. W tym typie zmniejszono nadmiarowo[ danych natomiast nadal wystpowaBy problemy ze zmian struktury istniejcej ju| bazy. Powizania to binarne zwizki jeden do wielu, które okre[laj nazwy typów rekordów typu posiadacza i uczestnika. " Ka|demu rekordowi typu uczestnik odpowiada dokBadnie jeden rekord typu posiadacz. " Ka|demu rekordowi typu posiadacz odpowiada zero jeden lub wicej rekordów typu uczestnik " 3 typy operacji: 1. Operacje nawigacji 2. Polecenia sprowadzenia sprawdzaj zawarto[ poszczególnych rekordów 3. Polecenia modyfikujce modyfikuj zawarto[ rekordów oraz kolekcji Relacyjne  model danych jest oparty na jednej strukturze zwanej relacj, któr mo|na uwa|a za pewn abstrakcj intuicyjnego pojcia tabeli zbudowanej z wierszy i kolumn. Model ten jest stosowany w wikszo[ci systemów zarzdzania baz danych. Ka|da kolumna tablicy zawiera elementy tego samego typu zawiera swoj nazw i jest przez ni identyfikowana. Wiersz tablicy nazywany krotk albo rekordem identyfikowany jest za po[rednictwem warto[ci zapisanych w nim elementów (atrybutów). Podstaw by dobrze zarzdza tak baz jest dobre zaprojektowanie jej. Wyszukiwanie w bazie dokonywane jest za pomoc jzyka zapytaD. Podstawowym jzykiem jest jzyk SQL. --------- Opracowanie zagadnieD do egzaminu z Podstaw Baz Danych, v.2.0 --------- strona 1/14 2. Najpopularniejsze komercyjne i darmowe Systemy Zarzdzania Bazami Danych. Niekomercyjne: " Postresql - najbardziej zaawansowany, wolnodostpny RDBMS na [wiecie. Czasami nazywany "Oraclem ubogich". Udostpniony na licencji BSD. " Firebird - jest to kolejny zaawansowany RDBMS. Nie jest tak popularny jak mySQL czy Postresql. Dostpny na zmodyfikowanej licencji Mozilla Foundation. Komercyjne: " MySQL - najpopularniejszy RDBMS w internecie. Zawdzicza to Batwej obsBudze i "naturalnemu" zwizkowi z php. Do zastosowaD komercyjnych nale|y kupi licencj. Do zastosowaD niekomercyjnych bezpBatny. " Oracle Database - najbardziej znany komercyjny RDBMS. Posiada bardzo du|o ciekawych funkcjonalno[ci. Do zastosowaD niekomercyjnych bezpBatny. " MS SQL - RDBMS od Microsoftu. W wersji Express do zastosowaD niekomercyjnych jest bezpBatny. Funkcje SZBD (Systemu Zarzdzania Bazami Danych): - optymalizacja zapytaD - takie przeksztaBcanie zapytaD kierowanych do bazy przez jej u|ytkowników aby czas oczekiwania na odpowiedz byB mo|liwie najkrótszy, - zapewnienie integralno[ci danych - uniemo|liwienie przej[cia bazy do stanu, który nie istnieje w modelowanej rzeczywisto[ci, - zarzdzanie wspóBbie|nym dostpem wielu u|ytkowników w taki sposób aby ka|dy z nich byB niewidoczny ( przezroczysty ) dla innych u|ytkowników; ka|dy z u|ytkowników musi by przekonany o tym, |e jest wyBcznym wBa[cicielem danych, - odporno[ na awarie (niezawodno[ bazy danych) - mo|liwo[ odtworzenia poprawnego stanu bazy danych sprzed awarii, - ochrona danych - uniemo|liwienie dostpu nieuprawnionych u|ytkowników do poufnych danych innych u|ytkowników. II. Przegld powszechnie dostpnych narzdzi do modelowania, zarzdzania i projektowania Baz Danych: Case Studio Pot|ne [rodowisko które pomo|e nam na tworzenie relacji pomidzy ró|nymi systemami bazodanowymi pod kontrol systemu Microsoft Windows. Program posiada peBne wsparcie dla baz danych Oracle, DB2, MS SQL, InterBase, MaxDB, MySQL, PostgreSQL, Sybase ASE, Microsoft Access, Firebird, Advantage Database Server, Ingres, Informix, Pervasive V8, DBISAM. Program nie jest przeznaczony dla pocztkujcych. Chcc swobodnie porusza si w aplikacji nale|y zapozna si dokBadnie z zasadami jego dziaBania. OS: Windows Xp,Windows Vista,Windows 7 Visio Microsoft Office Visio Professional to program do tworzenia grafiki prezentacyjnej dla specjalistów IT, in|ynierów, programistów oraz do ogólnych celów biznesowych. Za pomoc programu mo|na tworzy diagramy, schematy blokowe, wykresy organizacyjne, plany pomieszczeD itp. Edycja Professional pozwala dodatkowo na tworzenie map stron WWW, diagramów aplikacji, kodu zródBowego, baz danych, logicznych schematów sieci, rysunków in|ynierskich, planów budynków, przestrzeni oraz piter. Nanoszenie na arkusz obiektów odbywa si metod "przecignij i upu[" z biblioteki w sumie kilkuset ksztaBtów (wicej dostpnych jest w witrynie Office Online). Gotowy dokument mo|na wydrukowa lub wyeksportowa do pliku graficznego, strony HTML lub (nowo[ w wersji 2007) PDF lub XPS. W Visio 2007 uproszczono tak|e zarzdzanie Bcznikami, które teraz automatycznie bez ingerencji u|ytkownika potrafi odpowiednio Bczy ksztaBty - nawet gdy te s przesuwane lub modyfikowane. Erwin (brak po polskiemu) CA ERwin Data Modeler is an industry-leading data modeling solution that provides a simple, visual interface to manage your complex data environment. The CA ERwin Data Modeler family of products is made up of a number of distinct editions that are designed to meet the needs of a variety of stakeholders across the organization. VP Visual Paradigm for UML obsBuguje trzy fazy modelowania danych z ERD - koncepcyjne, logiczne i fizyczne. Jej intuicyjne [rodowisko modelowania pozwala zakoDczy projekt szybko i dokBadnie. Mo|na eksportowa wynikowy schemat do bazy danych poprzez generowanie bazy danych. Oprócz pomocy modelowania, zapewnia generowanie raportów i mo|liwo[ci tworzenia kodu w tym generowanie kodu. Mo|e utworzy schematy in|ynierskie z kodu i obsBuguje ró|ne jzyki programowania. (Po ludzku - generuje kod z obrazków, schematów itd. oraz w drug stron  pozwala stworzy caB baz danych nie u|ywajc jzyka SQL). --------- Opracowanie zagadnieD do egzaminu z Podstaw Baz Danych, v.2.0 --------- strona 2/14 III. Relacyjny model danych 1. koncepcyjne, logiczne, fizyczne modele danych: Te same dane w bazie danych mog by w ró|ny sposób widziane i w ró|ny sposób przetwarzane w zale|no[ci od wyboru odpowiedniego poziomu abstrakcji  realizowanego przez dany system. Podstawowe realizowane poziomy abstrakcji to: I Poziom u|ytkowy  widoki na dane i programy, którymi posBuguje si u|ytkownik. II Poziom logiczny (koncepcyjny)  zbiór tabel, perspektyw i indeksów. III Poziom fizyczny zbiór plików z danymi i z indeksami. Perspektywy definiuje si na poziomie logicznym a u|ywa si na poziomie u|ytkowym. Indeksy definiuje si na poziomie logicznym a u|ywa si na poziomie fizycznym. Tabele definiuje si na poziomie logicznym a u|ywa si zarówno na poziomie u|ytkowym jak i fizycznym. Z poziomu u|ytkowego korzystaj gBównie koDcowi u|ytkownicy systemu. Z poziomu logicznego korzysta gBównie administrator danych systemu. Z poziomu fizycznego korzysta gBównie administrator bazy danych  nazywany w skrócie dba. Oczywi[cie projektant bazy danych definiuje i zajmuje si wszystkimi trzema poziomami. Korzystanie z poszczególnych poziomów odbywa si do pewnego stopnia w sposób niezale|ny. Na przykBad, mo|na zmienia poBo|enie danych na dysku i ich zapis bez potrzeby zmiany struktury logicznej tabel (niezale|no[ fizyczna danych); mo|na zmienia tabele bez konieczno[ci zmiany programów aplikacyjnych - o ile programy aplikacyjne s oparte na perspektywach a nie tabelach (niezale|no[ logiczna danych). W naszej przykBadowej bazie danych aplikacja mo|e polega na wy[wietlaniu informacji, kto prowadzi dany wykBad czyli zawarto[ci perspektywy Przedmioty-WykBadowcy. W pewnym momencie mo|e si okaza, |e jeden wykBad jest prowadzony przez dwóch lub wicej wykBadowców. Schemat bazy danych oparty na dwóch tabelach: WykBadowcy i Przedmioty jest ju| niewystarczajcy i wymaga dodania nowej tabeli Bczcej wykBadowców z przedmiotami oraz zmiany definicji perspektywy Przedmioty-WykBadowcy. S to zmiany realizowane na poziomie logicznym bazy danych. Natomiast sam program aplikacyjny oparty na perspektywie Przedmioty-WykBadowcy nie wymaga zmiany. Jest to przykBad zastosowania zasady niezale|no[ci logicznej danych. Z zastosowaniem zasady niezale|no[ci fizycznej danych mamy do czynienia w sytuacji, gdy dotychczas u|ywany dysk zapeBni si i zajdzie potrzeba dodania nowego dysku. Nowe wiersze wprowadzane do tabel bd teraz zapisywane na nowym dysku. Natomiast ani schematy tabel ani programy aplikacyjne nie wymagaj |adnej zmiany. 2. Elementy algebry relacji: Algebra relacji to zbiór operatorów, które sBu| do manipulacji relacjami. Rezultatem dziaBania, jak równie| argumentami tych operatorów s relacje. Operatory te mo|na podzieli na dwie grupy: Operacje na zbiorach: " Suma dwóch relacji tego samego typu " Ró|nica dwóch relacji tego samego typu " Iloczyn kartezjaDski dwóch relacji Operacje dedykowane dla modelu: " Selekcja  rodzina operatorów parametryzowanych warunkiem logicznym. Jako argument przyjmuje relacj, na wyj[ciu zwraca relacj zawierajc tylko te krotki, dla których warunek logiczny byB prawdziwy. PrzykBadowym operatorem selekcji jest " Projekcja (rzutowanie)  rodzina operatorów parametryzowanych cigiem indeksów, bdz cigiem nazw atrybutów. Krotki wynikowej relacji powstaj poprzez rzutowanie oryginalnych krotek na podany cig. PrzykBadowym operatorem projekcji jest " Przemianowanie  rodzina operatorów parametryzowanych par atrybutów (A,B), gdzie oba atrybuty maj t sam dziedzin. Operator ten zamienia nazw atrybutu A na B w wynikowej relacji. PrzykBadowym operatorem mo|e by " ZBczenie  mo|e by zdefiniowane przy u|yciu zBo|enia operatorów iloczynu kartezjaDskiego, selekcji i projekcji. Ten operator przyjmuje jako argumenty dwie relacje r(X) i s(Y). W wyniku powstaje relacja v(X*"Y). Dla ka|dej pary krotek (po jednej z ka|dej wej[ciowej relacji), które maj te same warto[ci dla wspólnych atrybutów, powstaje krotka nowej relacji poprzez doBczenie do pierwszej krotki warto[ci drugiej krotki. Notacja przykBadowa: dane(<Pesel, Imie, Nazwisko>) oceny(<Pesel, Przedmiot, Ocena>) = dane_oceny(<Pesel, Imie, Nazwisko, Przedmiot, Ocena>) Obecnie istnieje wiele spojrzeD na algebr relacji. W niektórych definiowane s dodatkowe operatory, które mo|na wyprowadzi przez zBo|enie operatorów wspomnianych wy|ej. W innych rodziny operatorów selekcji, projekcji i przemianowania s w uproszczeniu traktowane jako pojedyncze operatory. --------- Opracowanie zagadnieD do egzaminu z Podstaw Baz Danych, v.2.0 --------- strona 3/14 3. Postulaty Codda: 0. System musi by kwalifikowany jako relacyjny, jako baza danych i jako system zarzdzania 1. Postulat informacyjny - dane s reprezentowane jedynie poprzez warto[ci atrybutów w wierszach tabel, 2. Postulat dostpu - ka|da warto[ w bazie danych jest dostpna poprzez podanie nazwy tabeli, atrybutu oraz warto[ci klucza podstawowego, 3. Postulat dotyczcy warto[ci NULL - dostpna jest specjalna warto[ NULL dla reprezentacji warto[ci nieokre[lonej jak i nieadekwatnej, inna od wszystkich i podlegajca przetwarzaniu, 4. Postulat dotyczcy katalogu - wymaga si, aby system obsBugiwaB wbudowany katalog relacyjny z bie|cym dostpem dla uprawnionych u|ytkowników u|ywajcych jzyka zapytaD, 5. Postulat jzyka danych - system musi dostarcza peBnego jzyka przetwarzania danych, który mo|e by u|ywany w trybie interaktywnym jak i w obrbie programów aplikacyjnych, obsBuguje operacje definiowania danych, operacje ma- nipulowania danymi, ograniczenia zwizane z bezpieczeDstwem i integralno[ci oraz operacje zarzdzania transak- cjami, 6. Postulat modyfikowalno[ci perspektyw - system musi umo|liwia modyfikowanie perspektyw, o ile jest ono (modyfi- kowanie) semantycznie realizowalne, 7. Postulat modyfikowalno[ci danych - system musi umo|liwia operacje modyfikacji danych, musi obsBugiwa operatory INSERT, UPDATE oraz DELETE, 8. Postulat fizycznej niezale|no[ci danych - zmiany fizycznej reprezentacji danych i organizacji dostpu nie wpBywaj na aplikacje, 9. Postulat logicznej niezale|no[ci danych - zmiany warto[ci w tabelach nie wpBywaj na aplikacje, 10. Postulat niezale|no[ci wizów spójno[ci - wizy spójno[ci s definiowane w bazie i nie zale| od aplikacji, 11. Postulat niezale|no[ci dystrybucyjnej - dziaBanie aplikacji nie zale|y od modyfikacji i dystrybucji bazy, 12. Postulat bezpieczeDstwa wzgldem operacji niskiego poziomu - operacje niskiego poziomu nie mog narusza modelu relacyjnego i wizów spójno[ci. 4. Logika trójwarto[ciowa: W logice klasycznej istniej zdania, o których niektórzy twierdz, |e nie mo|na orzec ich prawdy lub faBszu. Takimi zdaniami s przede wszystkim zdania o przyszBo[ci. Aukasiewicz odrzuciB zasad dwuwarto[ciowo[ci, gdy|, jego zdaniem, prowadzi ona do fatalizmu, [cisBego determinizmu. DodaB trzeci warto[ logiczn  mo|liwo[ (lub nieokre[lono[), oznaczan symbolem ½. Warto[ t mo|na nada zdaniu, gdy:  brak przyczyny, która by przesdzaBa o danym wydarzeniu  brak przyczyny, która by to wydarzenie wykluczaBa --------- Opracowanie zagadnieD do egzaminu z Podstaw Baz Danych, v.2.0 --------- strona 4/14 IV. Modelowanie danych Encja (ang. entity) w bazach danych to reprezentacja wyobra|onego lub rzeczywistego obiektu (grupy obiektów) stosowana przy modelowaniu danych podczas analizy informatycznej. Formalnie jest to pojcie niedefiniowalne, a podstawow cech encji jest to, |e jest rozró|nialna od innych encji. W notacji UML  nazwa encji wielk liter. PrzykBady encji (i atrybuty w encji): " Osoba (imi, nazwisko, PESEL) " Pojazd (wysoko[, szeroko[, dBugo[, sposób poruszania si) Charakterystyczn cech encji jest to, |e wBcza ona do swojego obszaru znaczeniowego obok obiektów fizycznych równie| obiekty niematerialne. Encja mo|e stanowi pojcie, fakt, wydarzenie (np. konto bankowe, którego atrybuty to np. numer, posiadacz, dopuszczalny debet itp.; konferencja, której atrybuty to np. temat, data, organizator itp.; wypo|yczenie ksi|ki, z atrybutami np. imi i nazwisko wypo|yczajcego, numer karty bibliotecznej, data wypo|yczenia itp.). Atrybuty encji mog by: proste/zBo|one, jedno-/wielowarto[ciowe oraz pochodne. W modelu ER wyró|nia si tzw. encje sBabe (ang. weak entity) oraz encje mocne. Encja sBaba nie posiada swojego identyfikatora, a jej wystpienia mog istnie tylko w kontek[cie wystpieD encji z ni powizanych. PrzykBadowo, konkretne wystpienie encji Realizacja mo|e wystpi wyBcznie w kontek[cie konkretnego pracownika i konkretnego projektu. Encja mocna to taka encja, której istnienie nie zale|y od wystpowania elementów innych typów encji. Diagram ERD Diagram zwizków encji lub Diagram ERD (od ang. Entity-Relationship Diagram)  rodzaj graficznego przedstawienia zwizków pomidzy encjami u|ywany w projektowaniu systemów informacyjnych do przedstawienia konceptualnych modeli danych u|ywanych w systemie. Diagramy ERD s niezale|ne od systemu, ukazuj przejrzysty obraz zwizków midzy encjami. Mo|na je w prosty sposób interpretowa. Diagramy ERD sBu| do: analizy zale|no[ci funkcyjnych w bazie danych, wykrywaniu i usuwaniu problemów z nadmiarowo[ci danych, projektowania struktury bazy, wizualizacji poBo|enia atrybutów, analizy powizaD przy definiowaniu i wykorzystywaniu kluczy zBo|onych. Podstawowe elementy modelu ERD to encja, zwizek oraz atrybut. Diagram pokazuje logiczne zwizki pomidzy ró|nymi encjami, zwizki te maj dwie cechy: 1. Opcjonalno[  która mówi o tym, czy ka|da encja musi, czy te| mo|e wystpi równocze[nie z inn. W reprezentacji graficznej linia przerywana oznacza opcjonalno[ zwizku, natomiast cigBa wymóg zwizku. 2. Krotno[  okre[lajc ile encji wchodzi w skBad zwizku: a. 1:1 ("jeden do jeden")  encji odpowiada dokBadnie jedna encja, b. 1:N ("jeden do wielu")  encji odpowiada jedna lub wicej encji, c. M:N ("wiele do wielu")  jednej lub wicej encjom odpowiada jedna lub wicej encji. W przypadku zwizków M:N czsto stosuje si normalizacj diagramu, która polega na dodaniu encji po[redniczcej i zastpienie zwizku M:N dwoma zwizkami 1:N z now encj. UML Format otwarty UML (ang. Unified Modeling Language, czyli Zunifikowany Jzyk Modelowania)  jzyk formalny wykorzystywany do modelowania ró|nego rodzaju systemów, stworzony przez Grady Boocha, Jamesa Rumbaugha oraz Ivara Jackobsona, obecnie rozwijany przez Object Management Group. SBu|y do modelowania dziedziny problemu (opisywania-modelowania fragmentu istniejcej rzeczywisto[ci  na przykBad modelowanie tego, czym zajmuje si jaki[ dziaB w firmie)  w przypadku stosowania go do analizy oraz do modelowania rzeczywisto[ci, która ma dopiero powsta  tworzy si w nim gBównie modele systemów informatycznych. UML jest gBównie u|ywany wraz z jego reprezentacj graficzn  jego elementom przypisane s symbole, które wizane s ze sob na diagramach. UML jest oficjalnie zdefiniowany przez Object Management Group (OMG) w tzw. metamodelu UML  Meta-Object Facility (MOF). Jak inne specyfikacje bazujce na Meta-Object Facility, metamodel UML i modele UML mog by serializowane (zapisywane) w jzyku XML Metadata Interchange (XMI), opartym na standardzie XML. Cho UML byB zaprojektowany, by definiowa, wizualizowa, konstruowa i dokumentowa systemy kBadce nacisk na oprogramowanie, nie jest on ograniczony do modelowania oprogramowania. UML jest u|ywany tak|e do modelowania procesów biznesowych, in|ynierii systemów i reprezentowania struktur organizacyjnych. Systems Modeling Language (SysML, Jzyk Modelowania Systemów) jest jzykiem modelowania dla specyficznych zagadnieD in|ynierii systemów, zdefiniowanym jako profil UML 2.0. W UML-u do opracowywania formalnych ograniczeD mo|na wykorzysta tak|e jzyk Object Constraint Language (OCL) opracowany pierwotnie przez IBM. --------- Opracowanie zagadnieD do egzaminu z Podstaw Baz Danych, v.2.0 --------- strona 5/14 V. Normalizacja bazy Normalizacja to proces organizacji danych w bazie danych, który umo|liwia wyeliminowanie powtarzajcych si i niespójnych zale|no[ci. Polega przede wszystkim na dzieleniu jednorodnej tabeli na kilka poBczonych kluczem mniejszych tabel. GBównym powodem, dla którego normalizuje si baz jest wystpowanie problemów w przypadku zle zaprojektowanej struktury PrzykBadowe problemy:  jedna osoba mo|e prowadzi kilka kursów, wic pojawia si redundancja (nadmiarowo[, powtarzanie si) danych  zmiana jednej informacji o osobie prowadzcej kurs pociga za sob konieczno[ modyfikacji wszystkich rekordów, które s z ni zwizane (problem z zachowaniem integralno[ci danych - anomalia aktualizacji)  nie mo|na przechowywa informacji o osobie, która obecnie nie prowadzi |adnych zaj  anomalia doBczania (prosty fakt nie mo|e zosta wprowadzony sam z siebie)  usunicie kursu powoduje automatycznie usunicie prowadzcego - anomalia usuwania (z bazy zostaje usunity wicej ni| jeden fakt) Dekompozycja - podziaB atrybutów tabeli R midzy dwa schematy nowych tabel Tabel R o schemacie {A1, A2,& An} dekomponujemy na dwie tabele: S - {B1, B2,& Bm} oraz T - {C1,C2,& Ck} wg zasad: {A1, A2,& An} = {B1, B2,& Bm} {C1,C2,& Ck} Cele normalizacji:  uzyskanie lepszej ogólnej organizacji bazy  ograniczenie ilo[ci niepotrzebnie powtarzajcych si danych (uniknicie nadmiarowo[ci, czyli redundancji, prowadzcej do anomalii i problemów z utrzymaniem spójno[ci danych oraz do niepotrzebnego wzrostu objto[ci danych)  uBatwienie zarzdzania integralno[ci danych w bazie  uBatwienie zarzdzania bezpieczeDstwem (mniejsze tabele, ograniczony dostp)  zidentyfikowanie brakujcych encji  uzyskanie przejrzystego modelu Wady normalizacji:  istnienie w bazie wielu tabel o maBej liczbie kolumn  konieczno[ wykonania zBczeD wielu tabel w celu uzyskania informacji  wydBu|enie czasu wyszukiwania  pogorszenie wydajno[ci systemu  potrzeba dobrego formuBowania zapytaD W procesie normalizacji baza danych jest sprowadzana do tzw. postaci normalnych - zestawów kryteriów, które musi speBnia dana tabela, aby mogBa by uznana za poprawn i nie przyczyniaBa si do powstawania bBdów. Istnieje kilka stopni normalizacji. Ka|da nastpna posta normalna opiera si na poprzedniej tzn., aby baza byBa w 2PN, musi by w pierwszej oraz speBnia dodatkowe warunki. Zazwyczaj baz sprowadza si co najwy|ej do 3 postaci normalnej. 1 NF dotyczy powtarzajcych si grup danych i polega na usuwaniu powtarzajcych si grup danych. Ka|dy element informacji zapisany w dowolnej kolumnie dowolnego wiersza tabeli musi by niepodzielny. Sprowadzanie do 1NF: w poszczególnych tabelach wyeliminuj powtarzajce si grupy ’! dla ka|dego zestawu danych pokrewnych utwórz oddzieln tabel ’! dla ka|dego zestawu danych pokrewnych okre[l klucz podstawowy 2NF polega na wykluczeniu zale|no[ci funkcyjnych od cz[ci klucza zBo|onego. Tabela jest w drugiej postaci normalnej, je|eli wszystkie jej kolumny zale| funkcyjnie od caBego klucza gBównego (tj. od wszystkich kolumn klucza wielokolumnowego). Sprowadzanie do 2NF: utwórz oddzielne tabele dla zestawów warto[ci odnoszcych si do wielu rekordów ’! ustal powizania tabel za pomoc klucza obcego 3NF ma na celu wykluczenie zale|no[ci przechodnich pomidzy danymi poprzez okre[lenie danych determinujcych spo[ród niekluczowych atrybutów relacji. Tabela jest w trzeciej postaci normalnej, je|eli speBnia warunki drugiej postaci normalnej oraz nie wystpuj w niej |adne zale|no[ci funkcyjne pomidzy dowoln kolumn i inn kolumn nie bdc kluczem gBównym tej tabeli Sprowadzanie do 3NF: wyeliminuj pola, które nie zale| od klucza 4NF nie dopuszcza istnienia niezale|nych zwizków jeden do wielu pomidzy kolumnami klucza gBównego i kolumnami niekluczowymi 5NF  tabele zostaj podzielone na najmniejsze mo|liwe kawaBki w celu wyeliminowania redundacji. Normalizowane w ten sposób tabele zawieraj niewiele wicej poza kluczem gBównym. BCNF - oznacza relacj, w której ka|dy wyznacznik zale|no[ci jest kluczem kandydujcym. Potencjalne naruszenie BCNF mo|e wystpi w relacji, która zawiera dwa (lub wicej) zBo|one klucze kandydujce lub klucze kandydujce relacji po- krywaj si (tzn. maj co najmniej jeden wspólny atrybut). --------- Opracowanie zagadnieD do egzaminu z Podstaw Baz Danych, v.2.0 --------- strona 6/14 Klucze w bazie danych GBównymi zastosowaniami kluczy w bazie danych s: " poprawienie wydajno[ci dziaBania bazy danych - w operacjach DQL (Data Query Language), takich jak SELECT, gdzie na podstawie kluczy optymalizator bazy danych mo|e dostosowa najbardziej optymalny plan wykonania zapytania, co wpBywa na szybko[ zwracania rekordów jak i obci|enia serwera bazodanowego " zapewnienie automatycznej kontroli poprawno[ci operacji przetwarzania danych - przy stosowaniu operacji DML (Data Manipulation Language), takich jak INSERT, UPDATE, DELETE, gdzie na poziomie bazy danych dane s weryfi- kowane czy aby relacja jest poprawna, czy dane si nie powtarzaj, czy przedziaB jest odpowiedni, lub wywoBywana jest dowolna metoda weryfikacji danych (trigger) Klucz podstawowy (PRIMARY KEY) Ka|da z tabel musi posiada swój wBasny, unikatowy w ramach wBasnej struktury, identyfikator  zwany kluczem gBów- nym. PRIMARY KEY jednoznacznie identyfikuje ka|d krotk (rekord), dziki czemu, oprócz speBnienia warunków nor- malizacji bazy danych (Normal Form), mo|e wystpowa jako Bcznik w obrbie innych tabel. Klucz podstawowy mo|na utworzy podczas tworzenia tabeli lub modyfikacji tabeli. Aby zakwalifikowa dany atrybut jako klucz gBówny, musimy sprawdzi, czy posiada nastpujce wBasno[ci: " musi posiada warto[ dla ka|dego z wierszy, " dla ka|dego z tych wierszy warto[ musi by unikalna, " warto[ ta nie mo|e si zmieni, ani nie mo|e zosta usunita podczas caBego funkcjonowania wiersza w tabeli. Klucz obcy (FOREIGN KEY) Specyfikuje dodatkow kolumn lub zbiór kolumn w danej tabeli z warto[ciami, stanowicymi klucz gBówny w innej. Ograniczenie tego rodzaju pozwala na wprowadzanie relacji pomidzy tabelami zawierajcymi skojarzone ze sob kolumny. Ka|dy wiersz w tabeli zale|nej musi by powizany z jednym z wierszy w tabeli wskazywanej. Klucze obce mog skBada si z kilku kolumn, je|eli ich klucze wskazywane równie| skBadaj si z takich samych kolumn o identycznych typach danych. Maksymalna liczba kolumn, jaki mog wchodzi w skBad pojedynczego klucza obcego wynosi 32. Nazwy kolumn klucza obcego i klucza wskazywanego nie musz by takie sama, zwykle jednak s  aby zobrazowa zwizek zachodzcy pomidzy nimi. Relacje midzy tabelami Relacje jeden-do-wielu (1 ’! N) Relacja jeden-do-wielu jest najbardziej powszechnym typem relacji. W przypadku relacji tego typu dla wiersza w tabeli A mo|e istnie wiele zgodnych wierszy w tabeli B, jednak dla wiersza w tabeli B mo|e istnie tylko jeden zgodny wiersz w tabeli A. Na przykBad tabele Wydawcy i TytuBy s powizane relacj jeden-do-wielu: ka|dy wydawca publikuje wiele tytuBów, ale ka|dy tytuB pochodzi tylko od jednego wydawcy. Relacja jeden-do-wielu jest tworzona, je|eli tylko jedna z kolumn pokrewnych jest kluczem podstawowym lub podlega unikatowym ograniczeniom. Relacje wiele-do-wielu (N ’! N) W przypadku relacji wiele-do-wielu dla wiersza w tabeli A mo|e istnie wiele zgodnych wierszy w tabeli B i odwrotnie. Relacja tego typu jest tworzona przez zdefiniowanie trzeciej tabeli, zwanej tabel skrzy|owaD, której klucz podstawowy skBada si z kluczy obcych zarówno z tabeli A, jak i z tabeli B. Na przykBad tabele Autorzy i TytuBy s zwizane relacj wiele-do-wielu, definiowan przez relacj jeden-do-wielu z ka|dej z tych tabel, skierowan do tabeli AutorzyTytuBów. Klucz podstawowy tabeli AutorzyTytuBów jest kombinacj kolumny id_au (klucz podstawowy tabeli Autorzy) i kolumny id_tytuBu (klucz podstawowy tabeli TytuBy). Relacje jeden-do-jednego (1 ’! 1) W przypadku relacji jeden-do-jednego dla wiersza w tabeli A mo|e istnie maksymalnie jeden zgodny wiersz w tabeli B i odwrotnie. Relacja jeden-do-jednego jest tworzona, je|eli obie kolumny pokrewne s kluczami podstawowymi lub podlegaj unikatowym ograniczeniom. --------- Opracowanie zagadnieD do egzaminu z Podstaw Baz Danych, v.2.0 --------- strona 7/14 VI. Jzyk SQL Jzyk SQL (Structured Query Language) jest najbardziej znanym jzykiem zapytaD, zaimplementowanym w praktycznie wszystkich istniejcych na rynku systemach relacyjnych baz danych. SQL jest u|ywany jako samodzielny jzyk sBu|cy do interakcyjnych zapytaD, tworzenia i aktualizacji relacyjnej bazy danych. Mo|e by równie| zanurzany (ang. embedded) w klasyczne jzyki programowania. Instrukcje jzyka SQL podzieli mo|na na kilka typów:  tworzenia bazy DDL (Data Description Language)  CREATE, DROP, ALTER  modyfikacji danych DML (Data Modification Language)  INSERT, UPDATE, DELETE  wyszukiwania danych DQL (Data Query Language)  SELECT  do okre[lania praw dostpu i wizów integralno[ci DCL (Data Control Language)  GRANT, REVOKE, DENY Instrukcje DDL (definiowanie tabel, schematów, kluczy, indeksów  stworzenie schematu implementacyjnego): " [ CREATE / DROP ] AGGREGATE  funkcja agregacji, " [ CREATE ] CONSTRAINT TRIGGER  procedura wyzwalana jako ograniczenia, " [ CREATE / DROP ] DATABASE  baza danych, " [ CREATE / DROP ] FUNCTION  funkcja, " [ CREATE / DROP / ALTER ] GROUP  grupa, " [ CREATE / DROP ] INDEX  indeks " [ CREATE / DROP ] LANGUAGE  jzyk dla funkcji, " [ CREATE / DROP ] OPERATOR  operator u|ytkownika, " [ CREATE / DROP ] RULE  reguBa, " [ CREATE / DROP ] SEQUENCE  sekwencja, " [ CREATE / DROP / ALTER ] TABLE  tabela, " [ CREATE ] TABLE AS  tworzenie tabel jako wyniku instrukcji SELECT (tylko CREATE), " [ CREATE / DROP ] TRIGGER  wyzwalacz, " [ CREATE / DROP ] TYPE  typ danych, " [ CREATE / DROP / ALTER ] USER  u|ytkownik, " [ CREATE / DROP ] VIEW  perspektywa. Instrukcje DML (opisywanie, edycja i usuwanie danych): " INSERT  Aadowanie nowych danych (rekordów) do tabeli, " UPDATE  zmiana istniejcych danych w tabeli, " DELETE  kasowanie rekordów z tabeli, Instrukcje DCL (kontrola uprawnieD u|ytkowników, sterowanie transakcjami): " GRANT  przyznawanie uprawnieD, " REVOKE  odbieranie uprawnieD, " DENY  odmowa dostpu. Inne instrukcje: " COMMENT  dodaje komentarz (DDL), " COPY  kopiuje dane do lub z tabeli (niewi), " RESET  przywraca domy[ln warto[ parametru (niewi), " SET  ustawia parametry startowe bazy danych (niewi). Niektóre podrczniki do jzyka DML zaliczaj tylko instrukcje powodujce trwaBe zmiany stanu bazy (INSERT, UPDATE, DELETE, a instrukcj SELECT do Data Query Language (DQL). Instrukcje UPDATE oraz DELETE wykorzystuj mechanizm selekcji rekordów analogiczny do instrukcji SELECT, oparty na warunkach zdefiniowanych w WHERE. Uwaga: Instrukcje UPDATE oraz DELETE bez podanych kryteriów wybory rekordów dziaBaj na caBej tabeli. Wykonane zmiany s nieodwracalne. --------- Opracowanie zagadnieD do egzaminu z Podstaw Baz Danych, v.2.0 --------- strona 8/14 Standardy SQL SQL (ang. Structured Query Language)  strukturalny jzyk zapytaD u|ywany do tworzenia, modyfikowania baz da- nych oraz do umieszczania i pobierania danych z baz danych. Jzyk SQL jest jzykiem deklaratywnym. Decyzj o sposobie przechowywania i pobrania danych pozostawia si syste- mowi zarzdzania baz danych (DBMS). W 1986 SQL staB si oficjalnym standardem, wspieranym przez Midzynarodow Or- ganizacj Normalizacyjn (ISO) i jej czBonka, AmerykaDski Narodowy Instytut Normalizacji (ANSI). Wczesne wersje specyfikacji (SQL86 i SQL89) byBy w du|ej mierze jedynie okre[leniem wspólnej pBaszczyzny Bczcej ró|ne istniejce wówczas produkty i pozostawiaBy wiele swobody twórcom implementacji. Z czasem jednak systemy komputerowe ulegBy integracji i rynek zaczB domaga si aplikacji oraz ich funkcji faktycznie wspóBpracujcych z wieloma ró|nymi bazami danych. PojawiBa si potrzeba okre[lenia standardu [ci[lejszego. MógB on jednocze[nie obejmowa nowe elementy, nieujte do tej pory w jzyku. Tak powstaB standard SQL92, obowizujcy w produktach komercyjnych do dzi[. W 2003 przedstawiono SQL:2003  nowy standard jzyka SQL. ZostaB on opublikowany w Sigmod Record Vol. 33 No. 1 marca 2004. Jest to w zasadzie poprawione SQL:1999 z wyjtkiem cz[ci SQL/XML oraz kilku dodatkowych wBa[ciwo[ci. Zmiany wprowadzone w SQL:2003: 1. Dodano nowe typy danych (BIGINT, MULTISET oraz XML). 2. Usunito typy BIT oraz BIT VARYING. 3. Wprowadzono rozszerzenia w sposobie wywoBywania procedur. 4. Poszerzono instrukcj CREATE TABLE (CREATE TABLE { LIKE | AS }). 5. Wprowadzono instrukcj MERGE. 6. Wprowadzono nowy obiekt schematu  generator sekwencji. 7. Wprowadzono dwa nowe typy kolumn  identyfikatory oraz generowane. 8. Wprowadzono retrospektywne sprawdzanie wizów integralno[ci. 9. Wprowadzono rozszerzenia dla OLAP w formie wbudowanych funkcji (skalarnych i agregujcych). 10. Wprowadzono klauzul WINDOW. Krótka historia standardów jzyka SQL : " 1986: pierwszy standard SQL (SQL-86), " 1989: nastpny standard SQL (SQL-89), " 1992: wzbogacona wersja standardu (SQL-92 lub SQL 2), " 1999: standardu rozszerzonego o pewne cechy obiektowo[ci (SQL 3) " 2003: Kolejne rozszerzenie standardu (m.in. wBczenie do standardu jzyka XML) - SQL 4 " 2006 : Niewielkie rozszerzenie standardu " 2008 : Kolejne niewielkie rozszerzenie standardu Funkcje znakowe " LOWER(warto[)  zamienia WIELKIE litery na maBe; " UPPER(warto[)  zamienia maBe litery na WIELKIE; " INITCAP(warto[)  zamienia pierwsze litery w sBowie na du|e; " LPAD(warto[, n [, cig ]), RPAD(warto[, n [, cig ])  uzupeBnia kolumny z lewej (prawej) strony podanym cigiem a| do dBugo[ci n znaków. Jesli cig nie zostaB podany to wypeBnia spacjami; " SUBSTR(warto[, n [,m])  z podanego BaDcucha znaków wycina m znaków poczwszy od pozycji n-tej; " INSTR(warto[,  cig [,m,n])  wskazuje miejsce pierwszego (n-tego) wystpienia cigu w BaDcuchu znaków poczwszy od pozycji m-tej; " LTRIM(warto[ [, znaki ]), RTRIM(warto[ [, znaki ])  usuwa z lewej strony (prawej) podane znaki (spacje); " LENGTH(warto[)  zwraca dBugo[ BaDcucha znaków; " TRANSLATE(zródBo,z,na)  ka|de wystpienie w zródle znaku z cigu z zostanie zastpione odpowiadajcym mu znakiem z cigu na; " REPLACE(zródBo, wzór, nowy)  ka|de wystpienie w zródle cigu wzorzec zostanie zastpione przez cig nowy; Funkcje liczbowe " ROUND(warto[, n)  zaokrgla warto[ do n-tego dziesitnego miejsca po przecinku; " TRUNC(warto[, n)  obcina warto[ do n-tego dziesitnego miejsca po przecinku; " CEIL(warto[), FLOOR(warto[)  najmniejsza (najwiksza) liczba caBkowita wiksza lub równa (mniejsza lub równa) podanej warto[ci; " POWER(warto[, n)  podnosi warto[ do podanej potgi; " SQRT(warto[)  oblicza pierwiastek kwadratowy z podanej warto[ci; " ABS(warto[)  oblicza warto[ bezwzgldna wyra|enia; " MOD(wartosc1, wartosc2)  zwraca reszt z dzielenia; Funkcje grupowe " AVG( [distinct|all] wyra|enie) " COUNT( [distinct|all] wyra|enie) " MAX( [distinct|all] wyra|enie) " MIN( [distinct|all] wyra|enie) " SUM( [distinct|all] wyra|enie) " VARIANCE( [distinct|all] wyra|enie) " STDDEV( [distinct|all] wyra|enie) --------- Opracowanie zagadnieD do egzaminu z Podstaw Baz Danych, v.2.0 --------- strona 9/14 VII. Interfejsy dostpu do danych. " ODBC " JDBC " ADO " ADO.NET Interfejsy dostpu do baz danych powstaBy po to by umo|liwi dostp do danych przechowywanych w ró|nych bazach które korzystaj z poziomu ró|nych jzyków. 1. ODBC  (Open DataBase Connectivity - otwarte Bcze baz danych) definiuje niskopoziomowy zbiór funkcji umo|liwiajcych aplikacjom klienta i serwera wymian danych i przekazywanie instrukcji bez konieczno[ci posiadania dokBadnych informacji o implementacji zarówno klienta, jak i serwera, niezale|nie od tego, czy klient i serwer dziaBaj na tym samym, czy na ró|nych komputerach, a nawet na ró|nych platformach programowych lub/i sprztowych. Na architektur interfejsu ODBC skBadaj si cztery elementy: a. aplikacja  wykonujca specyficzne czynno[ci przetwarzania posBugujc si zapytaniami SQL w celu uzyskania i skBadowania danych niezbdnych dla procesu; b. zarzdca sterowników (Driver Manager)  w postaci biblioteki DLL (Dynamic Link Library), którego zadaniem jest udostpnianie aplikacji odpowiedniego sterownika bazy danych; c. sterownik  zazwyczaj w postaci biblioteki DLL, element wykonujcy funkcje interfejsu ODBC wywoBywany przez zarzdc sterowników. Przekazuje on równie| do zródBa danych |dania SQL, a do aplikacji  uzyskane wyniki. Je[li jest to wymagane  sterownik mo|e modyfikowa wykonywane zapytanie SQL w celu dostosowania go do specyfiki docelowego zródBa danych (np. dopasowanie dialektu SQL konkretnego systemu zarzdzania baz danych) d. zródBo danych  najcz[ciej system zarzdzania baz danych. 2. JDBC  (Java DataBase Connectivity) funkcjonalnie bardzo przypomina ODBC. GBówn rol przy powstawaniu tego interfejsu miaBo powstanie jzyka programowania jakim jest JAVA. Trzeba byBo stworzy nowy interfejs bazodanowy który by speBniB podobne wymagania jak sam jzyk. W porównaniu z ODBC zwikszono jedynie mo|liwo[ci interfejsu oraz przystosowano go do odmiennej specyfiki jzyka JAVA. JDBC okre[la pewien porzdek zgodno[ci z istniejcymi standardami SQL. Zapytania SQL w tym interfejsie s przesyBane do Systemu zarzdzania baz danych bez wzgldu na to czy jest mo|liwa ich realizacja. W przypadku nie mo|liwo[ci wykonania polecenia SZBD generuje odpowiedni wyjtek. Ka|dy sterownik JDBC sBu|y do komunikacji z konkretn baz danych i nie nadaje si do wykorzystania w przypadku baz danych innych producentów. 3. ADO  (ActiveX Data Objects) gdy powstaBo ODBC nastpnym interfejsem który umo|liwiaB dostp do danych byBo OLE.DB. Jego implementacja byBa jednak bardzo ci|ka do zrealizowania i powstaB interfejs ADO który opiera si na OLE.DB ale jest znacznie prostszy w implementacji. Aktualnie z ADO mo|na korzysta w Borland Delphi. Ide powstania ADO byB dostp do danych nie znajc wewntrznej struktury bazy. Za pomoc ADO poza dostpem do danych mo|na uzyska równie| dostp do plików Excela, plików tekstowych, HTML i wielu innych zródeB danych co w praktyce jest bardzo u|yteczne. Dane s transportowane w postaci rekordów bez wzgldu czy pochodz z jednej czy wielu tabel. 4. ADO.NET  Jest to ulepszona wersja ADO. GBównymi komponentami s zbiór danych oraz dostarczyciel danych. yródBo danych mo|e znajdowa si w fizycznej bazie danych lub w pliku XML. Dostarczyciel danych odpowiada za poBczenie i wysyBanie polecenia. Jest to taki sterownik odpowiedzialny za poBczenie z baz danych lub odczytanie odpowiedniego pliku, natomiast Zbiór danych reprezentuje dane w pamici. ADO.NET zapewnia obsBug baz danych MS SQL Server, Oracle oraz OLE.DB. W ADO.NET zbiór rekordów zostaB zastpiony przez zbiór danych. Dane znajdujce si w zbiorze danych zawarte s w tabelach. --------- Opracowanie zagadnieD do egzaminu z Podstaw Baz Danych, v.2.0 --------- strona 10/14 VIII. Transakcje Transakcja - zbiór operacji na bazie danych, które stanowi w istocie pewn caBo[ i jako takie powinny by wykonane wszystkie lub |adna z nich. Transakcja skBada si zawsze z 3 etapów: rozpoczcia, wykonania, zamknicia. Ka|da transakcja powinna mie nastpujce wBa[ciwo[ci: niepodzielno[, spójno[, izolacja, trwaBo[. W systemach bazodanowych istotne jest, aby transakcja trwaBa jak najkrócej, poniewa| równolegle mo|e by dokonywanych wiele transakcji i cz[ operacji musi zosta wykonana w pewnej kolejno[ci. Ka|dy etap transakcji jest logowany, dziki czemu w razie awarii systemu (dziki zawarto[ci logów), mo|na odtworzy stan bazy danych sprzed transakcji, która nie zostaBa zamknita. GBówne kroki przy wykonywaniu transakcji: " Uruchom transakcj i przeka| do SPT (SPT - system obsBugi wszystkich transakcji wykonywanych na bazie danych) " Zapisz transakcj do dziennika  zapisz w dzienniku informacje pocztkowe o transakcji " Sprowadz rekordy z bazy danych " Zapisz do dziennika obraz przed transakcj " Oblicz nowe warto[ci " Zapisz do dziennika obraz po transakcji " Zapisz w dzienniku zatwierdzenie " Zapisz nowe rekordy do bazy danych Transakcje jednou|ytkownikowe System jednou|ytkownikowy  je|eli w danym momencie z systemu mo|e korzysta tylko jeden u|ytkownik Transakcje wielou|ytkownikowe System wielou|ytkownikowy  w danym momencie z systemu mo|e korzysta wielu u|ytkowników wspóBbie|nie. Podstawowe anomalie " Problem utraconej aktualizacji " Problem bBdnego podsumowania " Problem aktualizacji tymczasowej " Odczyt niepowtarzalny - brudny zapis - brudny odczyt - rozmyty odczyt - fantom - utracona modyfikacja --------- Opracowanie zagadnieD do egzaminu z Podstaw Baz Danych, v.2.0 --------- strona 11/14 Poziomy izolacji " SERIALIZABLE - transakcje s w peBni odizolowane od pozostaBych, domy[lny poziom izolacji " REPEATABLE READ - transakcja mogca odczytywa te same dane wiele razy, za pomoc predykatu WHERE - powtór- ne wykonanie tego samego zapytania mo|e zwróci inne wiersze. Efekt ten znany jest jako fantom. " READ COMMITTED - transakcje mog odczytywa pewne dane wielokrotnie, lecz w tym wypadku odczyt zwraca za- wsze te same wiersze. Efekt ten znany jest jako bezpowtórzeniowo[ odczytu. " READ UNCOMMITTED - transakcja wielokrotnie odczytujca te same dane, uwzgldniajc poprawki wprowadzone przez inne transakcje, które nie zakoDczyBy si jeszcze sukcesem Efekt ten znany jest jako brudny odczyt. Blokady Blokady (zamki)  podstawowy mechanizm zapobiegajcy konfliktom przy wspóBbie|nie wykonywanych transakcjach GBówne typy blokad: " Blokada do odczytu  daje dostp tylko do odczytu danych i chroni zablokowane dane przed modyfikacj.  Ten typ blokady stosujemy, gdy chcemy zastosowa zapytanie na tabeli bez potrzeby dokonywania w niej zmian  Wa|ne jest by inni u|ytkownicy nie zmieniali tabeli w czasie gdy j ogldamy " Blokada do zapisu - umo|liwia dostp do elementów danych zarówno w celu ich odczytu, jak i zapisu  uniemo|liwia ona innym transakcjom jakikolwiek odczyt i zapis dla tego elementu danych Blokady: " blokady wyBczno[ci  zabezpieczaj wybrany element bazy danych zarówno przed zapisem jak i przed odczytem " blokady wspólne - umo|liwiaj wszystkim transakcjom odczyt danego elementu, lecz tylko jednej z nich  zapis " blokowanie dwufazowe - nowa transakcja otrzymuje na pocztek tylko blokad wspóln, która w momencie urucho- mienia polecenia modyfikujcego mo|e zosta zastpiona blokad wyBczno[ci  skraca czas trwania blokad wyBczno[ci  przyspiesza wspóBbie|ne wykonywanie transakcji Istnieje metoda zakBadania blokad gwarantujca powstanie i realizacj planów wyBcznie szeregowalnych i odtwarzalnych  protokóB [cisBego blokowania dwufazowego: " Ka|da transakcja musi uzyska blokad S na obiekcie zanim odczyta ten obiekt oraz blokad X na obiekcie przed zapisaniem go. " Je[li transakcja trzyma blokad X na obiekcie, |adna inna transakcja nie ma prawa zaBo|y |adnej blokady na tym obiekcie " Je[li transakcja trzyma blokad S na obiekcie, |adna inna transakcja nie ma prawa zaBo|y blokady X na tym obiekcie " Gdy transakcja nie mo|e zaBo|y blokady na obiekcie, mo|e ustawi si w kolejce oczekujcych transakcji stowarzyszonej z tym obiektem. " Wszystkie blokady trzymane przez transakcj s zwalniane jednocze[nie, w chwili, gdy transakcja koDczy si Mo|na w nim wyró|ni dwie fazy:  Transakcja zakBada blokady i dokonuje wymaganych odczytów i zapisów na obiektach, na których zaBo|yBa blokad  Transakcja wykonuje COMMIT/ROLLBACK jednocze[nie zwalniajc wszystkie blokady " ProtokóB Strict 2PL nie dopuszcza do anomalii utraconej aktualizacji, aktualizacji tymczasowej, bBdnego podsumowania oraz niepowtarzalnego odczytu: ProtokóB 2PL prowadzi do planów szeregowalnych, ale nie gwarantuje planów odtwarzalnych. Zakleszczenia (deadlocks) " Zjawisko zakleszczenia wystpuje wówczas, kiedy dwie lub wicej transakcji wzajemnie blokuj sobie  potrzebne do kontynuowania swojego dziaBania  obiekty " Zakleszczenie  jest to cykl transakcji oczekujcych wzajemnie na zwolnienie blokady przez inn transakcj w cyklu. " Sposoby radzenia sobie z zakleszczeniami:  Zapobieganie  Wykrywania  Ustalanie limitu oczekiwania na blokad (metoda timeout) Zapobieganie:  Ustalenie priorytetu midzy transakcjami.  Nie dopuszcza si aby transakcja z wy|szym priorytetem czekaBa na transakcje z ni|szym priorytetem  W przypadku zakleszczenia transakcja z ni|szym priorytetem zostaje wycofana przez system Wykrywanie zakleszczeD  polega na analizie, która transakcja oczekuje na zwolnienie blokady przez która transakcj i sprawdzaniu, czy wystpuje cykl - Utwórz graf oczekiwaD na zwolnienie blokady (wzBy  transakcje, krawdz Ti do Tj je[li transakcja Ti oczekuje na zwolnienie blokady przez Tj) - Co jaki[ czas sprawdzaj, czy w grafie jest cykl. Je[li jest wycofaj jedn z transakcji w cyklu --------- Opracowanie zagadnieD do egzaminu z Podstaw Baz Danych, v.2.0 --------- strona 12/14 IX. Widoki: Widok (perspektywa)  jest to zapisane w bazie danych nazwane zapytanie pobierajce dane z jednej lub wielu encji(tabel) . Do widoku odwoBujemy si tak jak do nazwy tabeli. Create view jakis_widok as Select kolumna1,kolumna2 from jakas_tabela; Powstanie widok o nazwie jakis_widok, wykonanie zapytania: Select * from jakis_widok; Wy[wietli nam dwie kolumny tabeli: jakas_tabela; GBówn zalet widoków jest mo|liwo[ Batwego zapisania skomplikowanych zapytaD oraz mo|liwo[ nadawania uprawnieD do ograniczonej ilo[ci danych (uprawnienia w Oracle). Istnieje jeszcze widok zmaterializowany (W Oracle), sBu|y on do zwikszenia wydajno[ci kosztem aktualno[ci danych. Podczas tworzenia widoku zmaterializowanego okre[la si interwaB od[wie|ania danych w widoku. Co okre[lony czas nastpuje  zrzucenie przeliczonych danych. WywoBanie widoku powoduje odczytanie  zrzuconych i ju| przeliczonych danych. Nadpisywanie widoków jest realizowane w zale|no[ci od RDBMS. W przypadku oracle: create or replace jakis_widok as select * from nowa_tabela; W przypadku bazy Oracle nale|y pamita |e widok bdzie wykonywany z prawami jego twórcy. Oznacza to i| nie musimy nadawa uprawnieD dla obiektów podrzdnych (np tabel z których korzysta widok). Reasumujc wystarczy nada prawo select (grant select on jakis_widok to jakis_user) by byBo mo|na korzysta z widoku. W przypadku MSSQL w wikszo[ci przypadków nale|y nada uprawnienia do elementów podrzdnych widoku. X. Indeksy Indeksy s tworzone, by zwikszy wydajno[ przeszukiwania bazy danych. W razie braku indeksu, wydajno[ bazy spada. PrzykBadowo, w razie braku indeksu, poszukiwanie np. konkretnego numeru telefonu zostan przekopane megabajty danych, co znaczco wydBu|a czas wyszukiwania rekordu. SQL Server obsBuguje dwa rodzaje indeksów: 1. Indeksy zgrupowane (klastrowe) W indeksie zgrupowanym dane przechowywane s we wBa[ciwej kolejno[ci (np. jak w encyklopedii). Nie jest to indeks przechowywany w odrbnym obiekcie. Jego gBówne zadanie to narzucanie tabelom, w jaki sposób zapisywa wiersze na kolejnych stronach. Po utworzeniu takiego indeksu, struktura stron tabeli podlega reorganizacji wedle wytycznych indeksu. W obrbie jednej tabeli mo|e istnie tylko jeden indeks klastrowy (nie mo|na równocze[nie posortowa danych na ró|ne sposoby). Wikszo[ tabel powinna mie indeks zgrupowany, nawet je[li tabela ma tylko jeden indeks. Kolejno[ zapisów danych zgodna z warto[ciami klucza indeksu zgrupowanego oznacza, |e zachowany jest odpowiedni porzdek stron w BaDcuchu. Je[li SQL Server przemierza BaDcuch stron, bdzie odwiedzaB ka|dy wiersz w kolejno[ci indeksu zgrupowanego, a nowe strony mog by swobodnie dodawane. W programie SQL Server wszystkie indeksy zgrupowane s ró|nowarto[ciowe, nawet je[li zbudujemy indeks bez u|ycia klauzuli UNIQUE. Wtedy SQL Server wymusi ró|nowarto[ciowo[ przez dodanie do wierszy (w razie potrzeby) identyfikator ujednoznaczajcy (uniquefer). Jest to 4bajtowa warto[ dodawana jako kolejny klucz sortowania do tych wierszy, które maj powtarzajce si warto[ci podstawowego klucza sortowania. 2. Indeksy niezgrupowane (nieklastrowe) Indeks niezgrupowany jest oddzielnym obiektem bazy danych, wskazujcym na poszczególne wiersze w tabeli, ale bez uwzgldnienia sposobu zapisania wiersza (np. indeks znajdujcy si na koDcu niektórych ksi|ek). W SQL Server indeks ten wskazuje na dokBadnie jeden wiersz w tabeli (tym si ró|ni od przykBadowego spisu haseB na koDcu ksi|ki) W przypadku indeksu niezgrupowanego najni|szy poziom drzewa (poziom li[ci) zawiera zakBadk informujc SQL Server, gdzie ma znalez wiersz danych odpowiadajcy kluczowi indeksu. Dla jednej tabeli mo|na ich stworzy max. 249. Zarówno indeksy zgrupowane jak i niezgrupowane przechowuj informacje przy u|yciu standardowych B-drzew. B- drzewo zapewnia szybki dostp do danych, gdy| grupuje rekordy o podobnych kluczach. B-drzewo oznacza drzewo zbalansowane i wBa[nie balansowanie drzewa jest kluczow wBa[ciwo[ci B-drzewa. Stan drzewa jest caBy czas kontrolowany, a gaBzie s w razie potrzeby modyfikowane tak, aby do przej[cia przez drzewo w celu odnalezienia jakiej[ warto[ci i dotarcie do konkretnego rekordu wymagaBo tylko kilku dostpów do strony. Indeksy zajmuj miejsce w bazie danych (teraz ju| nie jest to problemem  dyski s du|e i tanie na obecnym etapie postpu technologicznego). Indeks spowalnia przeprowadzane operacje, gdy| podczas wprowadzania, modyfikacji lub usuwania danych z indeksowanej kolumny SZBD musi uaktualni indeks. Z drugiej strony dostp do danych jest szybszy. --------- Opracowanie zagadnieD do egzaminu z Podstaw Baz Danych, v.2.0 --------- strona 13/14 XI. Zagadnienia dodatkowe NoSQL (Not-Only SQL) jest klasa systemów zarzdzania baza danych nie pasujcych do powszechnie stosowanego modelu relacyjnych baz danych: - brak jzyka SQL (w szczególno[ci brak operacji JOIN) - nierelacyjny model danych - nie musi zapewnia ACID (ACID - zbiór wBa[ciwo[ci, które gwarantuj poprawne przetwarzanie transakcji w bazach danych: atomicity  atomowo[, consistency  spójno[, isolation  izolacja, durability  trwaBo[) - rozproszona, odporna na awarie architektura Bazy danych typu noSQL: 1. Zorientowane na przetwarzanie du|ej ilo[ci danych 2. Czsto dane nie posiadaj struktury 3. Istotnym elementem jest przetwarzanie danych w czasie rzeczywistym Rodzaje baz danych NoSQL: - Bazy dokumentowe - Bazy grafowe - Bazy oparte o warto[ci kluczowe - Bazy obiektowe - Bazy tabelaryczne Charakterystyka aplikacji u|ywajcych NoSQL: " Przetwarzanie i przechowywanie ogromnej ilo[ci informacji. " Zwykle s to globalne systemy internetowe z bardzo rozbudowan infrastruktur. " Brak konieczno[ci stosowania cz[ci mechanizmów znanych z systemów relacyjnych (zBczenia, transakcje, sztywne schematy danych). " Potrzeba dynamicznego i taniego skalowania, a co za tym idzie niski i przewidywalny czas dostpu. " Wysoki poziom dostpno[ci (dziaBamy przez 24 godziny na dob, przez 365 dni w roku). Odno[nie systemów wysokiej dostpno[ci nic nie znalazBem. Ale z tego to mo|na pola wody |e tego typu systemy s u|ywane w bazach NoSQL, |e po|dan cech w nich jest wysoka niezawodno[, itd. --------- Opracowanie zagadnieD do egzaminu z Podstaw Baz Danych, v.2.0 --------- strona 14/14

Wyszukiwarka

Podobne podstrony:
opracowania na egzamin1
KJPS opracowanie na egzamin
03 ASK Opracowania na egzaminidA35
Opracowanie na egzamin z geodezji I, wesja 2(1)pdf
Opracowanie na egzamin z fizyki, semestr I(1)
Mechanika gruntów opracowanie na egzamin
Fizyka opracowanie na egzamin, wersja 2
Fizyka opracowanie na egzamin 30 06 2015
Przykładowe pytania i opracowania na egzamin pytania na egzamin psychologia
Pytania z opracowaniem na egzamin z Mechaniki Gruntów
tematy do opracowania na egzamin z PC
kzu pytania na egzamin opracowanie
[ASK] Opracowanie zagadnień na egzamin w trakcie składania
Opracowanie Zagadnień na egzamin Mikroprocki
Kartografia opracowanie pytań na egzamin

więcej podobnych podstron