Pojęcie bazy danych funkcje i możliwości Charakterystyka baz danych:



Podobne dokumenty
Pojęcie bazy danych funkcje i możliwości

Wykład I. Wprowadzenie do baz danych

Pojęcie bazy danych. Funkcje i możliwości.

Alicja Marszałek Różne rodzaje baz danych

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Wrocławska Wyższa Szkoła Informatyki Stosowanej. Bazy danych. Dr hab. inż. Krzysztof Pieczarka.

Systemy baz danych. mgr inż. Sylwia Glińska

Technologia informacyjna (IT - Information Technology) dziedzina wiedzy obejmująca:

2017/2018 WGGiOS AGH. LibreOffice Base

Adam Cankudis IFP UAM

Baza danych. Baza danych to:

WPROWADZENIE DO BAZ DANYCH

KURS ACCESS 2003 Wiadomości wstępne

Bazy danych - wykład wstępny

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Baza danych. Modele danych

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Technologia informacyjna

Wykład 2. Relacyjny model danych

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM, regulski@metal.agh.edu.pl

Wprowadzenie do baz danych

Oracle11g: Wprowadzenie do SQL

RELACYJNE BAZY DANYCH

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM,

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

TI - Bazy TECHNOLOGIE INFORMACYJNE

Bazy danych TERMINOLOGIA

Wprowadzenie do baz danych

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

Tabela wewnętrzna - definicja

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

Pojęcie systemu informacyjnego i informatycznego

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Bazy danych Wykład zerowy. P. F. Góra

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

Systemy GIS Systemy baz danych

LITERATURA. C. J. Date; Wprowadzenie do systemów baz danych WNT Warszawa 2000 ( seria Klasyka Informatyki )

FUNKCJE SZBD. ZSE - Systemy baz danych 1

Wprowadzenie do projektowania i wykorzystania baz danych Relacje i elementy projektowania baz

Porównanie systemów zarządzania relacyjnymi bazami danych

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Relacyjne bazy danych

22. Podstawowe pojęcia baz danych. Baza Danych. Funkcje bazy danych. Właściwości bazy danych. Modele baz danych.

Przestrzenne bazy danych Podstawy języka SQL

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

SZKOLENIE: Administrator baz danych. Cel szkolenia

mail: strona: konsultacje: na stronie (po wcześniejszym umówieniu drogą mailową)

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Technologia informacyjna

ORGANIZACJA I ZARZĄDZANIE INFORMACJĄ W BAZIE DNYCH. podstawowe pojęcia.

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

Bazy danych 2. Wykład 1

Wykład XII. optymalizacja w relacyjnych bazach danych

71. Kolejki priorytetowe i metody ich realizacji

Zastosowanie relacyjnych baz danych w Systemach Informacji Geograficznej

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Podstawowe informacje o bazach danych. Technologie Informacyjne

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

Fizyczna struktura bazy danych w SQL Serwerze

Agnieszka Ptaszek Michał Chojecki

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

Normalizacja baz danych

Systemy GIS Tworzenie zapytań w bazach danych

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Autor: Joanna Karwowska

Program nauczania. Systemy baz danych. technik informatyk

BAZY DANYCH. Co to jest baza danych. Przykłady baz danych. Z czego składa się baza danych. Rodzaje baz danych

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Rozdział 1 Wprowadzenie do baz danych. (c) Instytut Informatyki Politechniki Poznańskiej 1

Dr Michał Tanaś(

Indeksowanie w bazach danych

Projektowanie systemów baz danych

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

Model relacyjny bazy danych

PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W NOWYM SĄCZU SYLABUS PRZEDMIOTU. Obowiązuje od roku akademickiego: 2011/2012

Podstawowe zagadnienia z zakresu baz danych

Przykładowa baza danych BIBLIOTEKA

BAZY DANYCH model związków encji. Opracował: dr inż. Piotr Suchomski

Model relacyjny. Wykład II

Sylabus do programu kształcenia obowiązującego od roku akademickiego 2014/15

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0

Pytania SO Oprogramowanie Biurowe. Pytania: Egzamin Zawodowy

PODSTAWOWE POJĘCIA BAZ DANYCH

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

LITERATURA. Wprowadzenie do systemów baz danych C.J.Date; WNT Warszawa 2000

Transkrypt:

Pojęcie bazy danych funkcje i możliwości Baza danych to zbiór informacji zapisanych w ściśle określony sposób w strukturach odpowiadających założonemu modelowi danych. W potocznym ujęciu obejmuje dane oraz program komputerowy wyspecjalizowany do gromadzenia i przetwarzania tych danych. Program taki nazywany jest Systemem zarządzania bazą danych (ang. Data Base Management System, DBMS). W ścisłej nomenklaturze baza danych oznacza zbiór danych, opisujący pewien wybrany fragment rzeczywistości. Dane w bazie danych posiadają dwie podstawowe cechy. Po pierwsze, odzwierciedlają rzeczywistość w sposób z nią zgodny. Po drugie, są zorganizowane w specyficzny sposób, zgodnie z modelem danych. Struktura danych i powiązania między nimi są opisane przez schemat bazy danych. Z DBMS współpracują programy użytkowników, zwane aplikacjami. Zadaniem tych programów jest przetwarzanie danych, tj. wstawianie nowych danych, modyfikowanie danych już istniejących, usuwanie danych nieaktualnych, wyszukiwanie danych. Charakterystyka baz danych: Do głównych cech charakteryzujących bazę danych zalicza się: Trwałość danych - oznacza, że dane przechowywane w bazie danych nie są ulotne. W konsekwencji, okres przechowywania danych jest ograniczony wyłącznie okresem żywotności nośnika danych. "Czas życia" danych, po ich zapisaniu do bazy danych jest niezależny od istnienia i działania bądź niedziałania aplikacji. Trwałość danych jest również niezależna od platformy sprzętowoprogramowej. Rozmiar wolumenu oznacza rozmiar przestrzeni mogącej przechowywać dane. W ogromnej większości zastosowań dane nie mieszczą się w pamięci operacyjnej, więc do ich składowania jest wymagana pamięć zewnętrzna. Tak duże ilości danych nie mogą być przeglądane liniowo ze względu na niewielką efektywność tej techniki. W konsekwencji konieczne jest wykorzystanie innych zaawansowanych mechanizmów efektywnego dostępu do danych. Złożoność danych. Dane gromadzone w bazie danych często są złożone ze względu na: o złożoność ich struktur i zależności pomiędzy danymi,

o złożoność semantyczną danych, o ograniczenia integralnościowe gwarantujące, że w bazie danych pojawią się wyłącznie dane spełniające te ograniczenia. Podstawowe wymagania stawiane bazom danych: Spójność bazy danych jest definiowana jako poprawność danych z punktu widzenia pewnych przyjętych kryteriów. Definiując spójność wymienia się trzy takie kryteria, tj.: o wierne odzwierciedlenie danych rzeczywistych. Innymi słowy, baza nie zawiera danych nieistniejących. Ponadto, zależności między danymi wiernie odzwierciedlają zależności pomiędzy obiektami świata rzeczywistego o spełnienie ograniczeń nałożonych przez użytkowników - wszystkie dane w bazie, na które nałożono pewne ograniczenia integralnościowe muszą te ograniczenia spełniać. Przykładowo ograniczenie do wartości np. ocen gwarantuje że nie pojawi się w bazie wartość cyfrowa, która nie ma swej reprezentacji w założonej skali o brak anomalii wynikających ze współbieżnego dostępu do danych -w przypadku baz danych, z których korzysta przynajmniej dwóch użytkowników mogą powstać dane niepoprawne na skutek równoczesnego modyfikowania tego samego zbioru danych. Baza danych musi być odporna na takie sytuacje niepoprawne. Drugim wymaganiem stawianym bazie danych jest zapewnienie efektywnego przetwarzania danych, tj. wstawiania nowych danych, modyfikowania istniejących, usuwania i wyszukiwania danych. W tym celu koniecznej jest wykorzystywanie efektywnych metod dostępu do danych z wykorzystaniem specjalizowanych struktur i optymalizacja metod dostępu. Ponadto, program, czy użytkownik korzystający z bazy danych nie zna fizycznej organizacji danych na nośniku. W związku z tym, optymalizacja dostępu powinna być realizowana przez wyspecjalizowany moduł programowy i powinna być niewidoczna dla użytkownika. Trzecim wymaganiem jest poprawne modelowanie świata rzeczywistego. Oznacza to, że struktura bazy danych musi odzwierciedlać we właściwy oraz poprawny sposób obiekty świata rzeczywistego i powiązania pomiędzy tymi obiektami.

Czwartym wymaganiem jest autoryzacja dostępu do danych. Oznacza to, że dostęp do bazy danych mają tylko jej użytkownicy identyfikowani unikalną nazwą i hasłem. Ponadto, każdy użytkownik posiada określone uprawnienia w bazie danych. Piątym wymaganiem jest zagwarantowanie możliwości równoczesnej pracy wielu użytkownikom tej samej bazy danych. Co więcej, użytkownicy ci mogą jednocześnie pracować z tym samym zbiorem danych. W takim przypadku mogą powstać konflikty w dostępie do danych, gdy jeden użytkownik modyfikuje zbiór danych, a drugi próbuje ten sam zbiór odczytać lub zmodyfikować. Baza danych musi zapewnić poprawne rozwiązanie tego typu konfliktów. Szóstym wymaganiem jest wsparcie dla tzw. metadanych. Metadane to najprościej mówiąc dane o bazie danych. Dane te opisują m.in.: dane przechowywane w bazie, struktury danych, użytkowników i ich uprawnienia. Technologie baz danych: Opisane wymagania odnośnie baz danych są zapewniane w ramach tzw. technologii baz danych. Oferuje ona m.in. fizyczne struktury i metody dostępu. Do fizycznych struktur wykorzystywanych w bazach danych zalicza się pliki uporządkowane, pliki haszowe, pliki zgrupowane, indeksy drzewiaste i indeksy bitmapowe. Do metod dostępu zalicza się: połowienie binarne, haszowanie statyczne i dynamiczne, algorytmy łączenia, sortowania i grupowania. Dostęp do danych z wykorzystaniem struktur fizycznych i metod dostępu jest optymalizowany za pomocą zaawansowanych technik optymalizacji składniowej i kosztowej. Ponadto, fizyczna organizacja danych na dysku nie ma wpływu na działanie aplikacji użytkowników korzystających z bazy danych. Oznacza to, że zmiana fizycznej organizacji danych np. o klientach banku, po pierwsze, jest niewidoczna dla użytkownika i po drugie, nie wymaga zmiany kodu aplikacji. Innymi słowy aplikacja działa tak samo dobrze jak poprzednio. Jednym z komponentów systemu bazy danych jest tzw. System Zarządzania Bazą Danych (DBMS). Z technologicznego punktu widzenia jest to moduł programowy, którego zadaniem jest zarządzanie całą bazą

danych oraz realizowanie żądań aplikacji użytkowników. Podstawowa funkcjonalność DBMS obejmuje: wsparcie dla języka bazy danych, który umożliwia m.in. wstawianie, modyfikowanie, usuwanie i wyszukiwanie danych oraz tworzenie, modyfikowanie i usuwanie struktur danych; wsparcie dla struktur danych zapewniających efektywne składowanie i przetwarzanie dużych wolumenów danych; optymalizację dostępu do danych; synchronizację współbieżnego dostępu do danych; zapewnienie bezpieczeństwa danych w przypadku awarii sprzętowo-programowej; autoryzację dostępu do danych; wielość interfejsów dostępu do bazy danych. Interakcja z bazą danych Jakakolwiek interakcja programu użytkowego z bazą danych odbywa się za pomocą języka SQL. Jest to jedyny sposób komunikowania się aplikacji z bazą danych. SQL jest językiem deklaratywnym. Oznacza to, że posługując się nim specyfikujemy tylko co chcemy otrzymać. Nie specyfikujemy sposobu w jaki ma być zrealizowane zadanie. Podział baz danych: Podziału systemów BD można dokonać w oparciu o kilka kryteriów. Najważniejszymi są: wykorzystywany model danych, liczba węzłów, czyli liczba baz danych wchodzących w skład systemu i cel stosowania systemu BD. Ze względu na model danych SBD dzieli się na: Bazy relacyjne. W bazach relacyjnych wiele tablic danych może współpracować ze sobą (są między sobą powiązane). Bazy relacyjne posiadają wewnętrzne języki programowania, wykorzystujące zwykle SQL do operowania na danych, za pomocą których tworzone są zaawansowane funkcje obsługi danych. Relacyjne bazy danych (jak również przeznaczony dla nich standard SQL) oparte są na kilku prostych zasadach:

o Wszystkie wartości danych oparte są na prostych typach danych. o Wszystkie dane w bazie relacyjnej przedstawiane są w formie dwuwymiarowych tabel ("relacji"). Każda tabela zawiera zero lub więcej wierszy ("krotek") i jedną lub więcej kolumn ("atrybutów"). Na każdy wiersz składają się jednakowo ułożone kolumny wypełnione wartościami, które z kolei w każdym wierszu mogą być inne. o Po wprowadzeniu danych do bazy, możliwe jest porównywanie wartości z różnych kolumn czy nawet z różnych tabel, i scalanie wierszy, gdy pochodzące z nich wartości są zgodne. Umożliwia to wiązanie danych i wykonywanie stosunkowo złożonych operacji w granicach całej bazy danych. o Wszystkie operacje wykonywane są w oparciu o algebrę relacji, bez względu na położenie wiersza tabeli. Wiersze w relacyjnej bazie danych przechowywane są w porządku zupełnie dowolnym nie musi on odzwierciedlać ani kolejności ich wprowadzania, ani kolejności ich przechowywania. o Z braku możliwości identyfikacji wiersza przez jego pozycję pojawia się potrzeba obecności jednej lub więcej kolumn nie powtarzalnych w granicach całej tabeli, pozwalających odnaleźć konkretny wiersz. Kolumny te określa się jako "klucz podstawowy" (ang. Primary key) tabeli. Bazy obiektowe. W bazach obiektowych dane przechowywane są w strukturach obiektowych (zdefiniowanych jako klasy). Koncepcje akademickie dotyczące baz obiektowych były najbardziej popularne w latach 90. Współcześnie popularność tego tematu zmalała, choć prace badawcze nad nimi nadal trwają. Bazy relacyjno-obiektowe. Pozwalają na manipulowanie danymi jako zestawem obiektów, posiadają jednak bazę relacyjną jako wewnętrzny mechanizm przechowywania danych. Temporalna baza danych. Baza jest odmianą bazy relacyjnej, w której każdy rekord posiada stempel czasowy, określający czas w jakim wartość jest prawdziwa. Posiada także operatory algebry relacyjnej, które pozwalają operować na danych temporalnych (wyciągać historię). Ze względu na cel stosowania wyróżnia się: Bazy danych przetwarzania transakcyjnego (OLTP).

Wykorzystywane w typowych zastosowaniach ewidencyjnych, np. w rezerwacji i sprzedaży biletów, w bibliotekach i wypożyczalniach, w systemach ewidencji ludności, pojazdów, mienia nieruchomego, w bankowości w obsłudze bieżącej, w systemach handlu internetowego i bankowości elektronicznej. Zastosowania tego typu charakteryzują się ogromną liczbą jednocześnie działających użytkowników (tysiące, dziesiątki tysięcy). Interakcja pojedynczego użytkownika z bazą danych musi więc być możliwie najkrótsza. Bazy danych przetwarzania analitycznego (OLAP) Stosuje się je w systemach wspomagania zarządzania. Zastosowania tego typu charakteryzują się niewielką liczbą użytkowników (kilku, kilkunastu). Czas interakcji użytkownika z bazą danych jest długi (godziny, dziesiątki godzin). Bazy danych dla wspomagania projektowania umożliwiają przechowywanie projektów złożonych obiektów, np. konstrukcji mostów, budynków, schematy urządzeń. W bazach danych informacji geograficznej przechowuje się zarówno dane tekstowe (np. opisy terenu) jak i dane przestrzenne (mapy). Tego typu systemy wymagają zaawansowanych technik przeszukiwania map i operacji na nich. Bazy danych służące do wspomagania wytwarzania oprogramowania przechowują wyniki poszczególnych faz realizacji projektów. Wyniki te są najczęściej reprezentowane w postaci specjalizowanych modeli (diagramów), obiektów i ich własności, projektów i kodów oprogramowania. Tego typu systemy, oprócz standardowej funkcjonalności, wspierają wyszukiwanie zależności pomiędzy obiektami oraz wywodzenie wersji obiektów (np. oprogramowania) i zarządzanie tymi wersjami. Relacja i jej atrybuty w bazach danych Podstawowe pojęcia RELACYJNA BAZA DANYCH - baza danych pozwalająca na sprawne przechowywanie, zarządzanie oraz operowanie danymi zorganizowanym w struktury zwane relacjami. RELACJA - podstawowym i jedynym sposobem reprezentowania danych w modelu relacyjnym jest relacja, będąca wydzielonym logicznie

zbiorem danych, zorganizowanych w formie tabeli, składającej się z wierszy dzielonych na kolumny. Relacja jest zbiorem krotek posiadających taką samą strukturę, lecz różne wartości. Zdefiniowana relacja zawiera określony zbiór atrybutów i dowolną ilość niepowtarzalnych krotek. ATRYBUT - w nagłówku relacji podane są atrybuty. Służą one do nazywania kolumn relacji. Na ogół oddają znaczenie danych umieszczanych w kolumnach pod nimi. Z każdym atrybutem powiązana jest dziedzina (typ danych) przy pomocy której reprezentowane są jego wartości. KROTKA - wiersze relacji, poza wierszem nagłówka (zawierającym atrybuty relacji), nazywane są krotkami. W krotce każdy atrybut posiada swój odpowiednik w postaci składowej krotki. Każda krotka reprezentuje pojedynczy i niepowtarzalny wpis do tabeli relacji. Inne nazwy krotki to rekord lub encja. Cechy relacji: każdy atrybut relacji ma unikalną nazwę; porządek atrybutów w relacji nie jest istotny; porządek krotek relacji nie jest istotny i nie jest elementem definicji relacji; relacja nie zawiera rekordów powtarzających się. Schemat relacji: SCHEMAT RELACJI - nazwa relacji oraz zbiór jej atrybutów nazywają się schematem relacji. W modelu relacyjnym, projekt składa się z jednego lub wielu schematów relacji. Zbiór schematów relacji projektu jest określany schematem relacyjnej bazy danych. Przykład relacji: Osoba Pesel Imię Nazwisko 12345678901 Jan 23456789012 Krystyna Kowalski Bednarska 34567890123 Krzysztof Ziemiński

Legenda: Osoba to nazwa relacji (tabeli) Wiersz nagłówka zawiera nazwy atrybutów Nazwa relacji wraz z nazwami atrybutów stanowią schemat relacji: Osoba (PESEL, imię, nazwisko) Każdy z wierszy poza wierszem nagłówka stanowi krotkę (rekord, encję) relacji W relacyjnym modelu baz danych i podobnych, kolumny stanowią atrybuty jakiegoś obiektu (np.: wielkość, grubość, tytuł, nazwisko) i stąd dane zawarte w kolumnach mają najczęściej jeden określony typ. Do identyfikacji wierszy stosuje klucz główny (ang. primary key), czyli jedną z kolumn lub ich grupę, których wartości są unikatowe w całej tabeli (dzięki czemu jednoznacznie identyfikują wiersz). Klucz główny. Klucz główny PRIMARY KEY to słowo kluczowe oznaczające dla kolumny, że jest ona kluczem głównym dla tabeli czyli unikalną wartością identyfikującą jednoznacznie każdy rekord tabeli. Klucz główny musi być unikalny (UNIQUE) i nie może przyjmować wartości NULL. Każda tabela powinna mieć klucz główny, ale nie jest to konieczność. Klucz główny (PRIMARY KEY) może tworzyć jedna kolumna (jest to wtedy klucz prosty) lub kilka kolumn (jest to wtedy klucz złożony). Klucz główny można ustalić w trakcie tworzenia nowej tabeli lub dla już istniejącej tabeli. Klucz główny może być: ukrytym przed użytkownikami identyfikatorem, który jest nadawany automatycznie przez system obsługujący bazę danych; w szczególności wiersz może być wówczas identyfikowany poprzez położenie w zbiorze danych (stosowane zwykle wtedy, gdy wszystkie rekordy mają stałą, taką samą wielkość); jawnym numerycznym kluczem, wybranym w procesie projektowania bazy danych, a w trakcie jej używania automatycznie zwiększanym przez system obsługujący bazę danych; jawnym kluczem składającym się z pojedynczej lub wielu kolumn; taka kolumna (kolumny) może być teoretycznie dowolnego typu, czy to numerycznego, czy tekstowego, czy nawet binarnego.

W tradycyjnym, relacyjnym modelu baz danych, zalecano by klucz główny składał się z kolumn (kolumny), których wartości nie są sztucznie wprowadzone. W zastosowaniu praktycznym klucz główny nie powinien też składać się z paru kolumn (ze względu na powolniejszy dostęp do danych). Zamiast tego stosuje się dodatkową, sztuczną wartość numeryczną (najczęściej kolejne liczby naturalne). Wprowadzona dodatkowa kolumna zazwyczaj nie może być zmieniana i jest nadawana automatycznie przez system zarządzania bazą danych. Poza ułatwieniem dla programisty, tak stworzony klucz przyśpiesza także indeksowanie i łączenie tabel oraz ułatwia rozwój bazy danych. Klucz obcy. FOREIGN KEY znany jako klucz obcy to pewnego rodzaju odnośnik łączący tabelę w której występuje klucz obcy z inną tabelą. Klucz obcy zapobiega wszelkim operacjom, które mogłyby zerwać taką więź między tabelami. Również klucz obcy nie może być wartością dowolną. Musi wskazywać na konkretny wiersz w drugiej tabeli. Klucz obcy można ustalić w trakcie tworzenia nowej tabeli lub dla już istniejącej tabeli. Modelowanie bazy danych Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: Relacja jeden do wielu. Charakteryzuje się ona tym, że dla każdego rekordu jednej tabeli może istnieć wiele rekordów w drugiej tabeli pozostającej z nią w związku. Relacja jeden-do-wielu jest realizowana poprzez utworzenie atrybutu w encji po stronie wiele, aby umieścić w nim klucz encji znajdującej się po stronie jeden. Tak utworzony atrybut encji po stronie wiele nosi nazwę klucza obcego ponieważ jest on głównym kluczem w innej tabeli. Relacja jeden do wielu jest najczęściej wykorzystywanym typem połączenia w relacyjnych baza danych. Relacja jeden do jednego. Charakteryzuje się tym,że dla każdej instancji jednej z dwóch encji istnieje dokładnie jedna instancja drugiej encji pozostająca z nią w równoważnym związku. Ten typ relacji spotyka się rzadko, ponieważ większość informacji powiązanych w ten sposób byłoby zawartych w jednej tabeli. Relacji jeden-do-jednego można używać do podziału tabeli z

wieloma polami, do odizolowania części tabeli ze względów bezpieczeństwa, albo do przechowania informacji odnoszącej się tylko do podzbioru tabeli głównej. Relacja wiele do wielu. W relacji wiele-do-wielu, rekord w tabeli A może mieć wiele dopasowanych do niego rekordów z tabeli B i tak samo rekord w tabeli B może mieć wiele dopasowanych do niego rekordów z tabeli A. Jest to możliwe tylko przez zdefiniowanie trzeciej tabeli (nazywanej tabelą łącza lub tabelą przejściową), której klucz podstawowy składa się z dwóch pól -kluczy obcych z tabel A i B. Relacja wiele-do-wielu jest definiowana jako dwie relacje jeden-do- wielu z trzecią tabelą. Pojęcie indeksu. W aplikacjach bazodanowych w większości przypadków korzystamy głównie z zapytań typu SELECT, rzadziej modyfikujemy nasze dane poprzez INSERT, UPDATE, czy DELETE. Dodatkowo działania modyfikujące są zwykle wykonywane w stałym czasie, który bywa zazwyczaj małą cząstką trwania wszystkich zapytań. Natomiast czas wykonania kwerendy SELECT bywa bardzo różny wszystko zależy od jej skomplikowania. Zapytanie wykonywane bez indeksów zmusza silnik bazy danych do przeszukiwania sekwencyjnie wszystkich wierszy tabeli. O ile w wypadkach gdy tabela jest mała nie powinniśmy napotkać problemów z wydajnością, jednak wraz z jej rozbudowaniem czas wykonywania zapytań niebezpiecznie wzrasta. Indeksy to jeden z najłatwiejszych sposobów na przyspieszanie zapytań do bazy danych. Indeks jest specjalnym plikiem utworzonym na serwerze, dzięki któremu możemy poprawić wydajność przy pobieraniu danych w większych tabelach. W indeksie zawarte są uporządkowane informacje gdzie znajduje się dana wartość dzięki czemu MySQL zamiast przeszukiwać wszystkie rekordy w poszukiwaniu tego konkretnego pola zajrzy do indeksu gdzie będzie miało wskazane gdzie dokładnie znajduje się dana wartość co przyśpieszy wyszukiwanie. Nałożenie indeksów należy dokładnie przemyśleć, w innym wypadku przyniosą odwrotny rezultat od zamierzonego, tym bardziej nie należy ich zakładać na każdą kolumnę. Indeksy mogą być nałożone na każdy typ kolumny, co najwyżej dla 16 kolumn w tabeli. W skrócie indeks jest specjalną strukturą, wprowadzoną w celu przyspieszenia dostępu do danych. Indeks w bazie danych jest

odzwierciedleniem spisu treści w książce. Wykorzystuje się go przy zapytaniach SELECT, które maja na celu wyszukiwanie odpowiednich wartości w bazie danych. Optymalizator najpierw przeszukuje indeks, który jest uporządkowany a następnie na podstawie indeksu odczytuje odpowiednie rekordy. Rodzaje indeksów Indeks unikalny UNIQUE. Po zdefiniowaniu unikalnego indeksu nie będzie można wprowadzić do kolumny powtarzającej się wartości, jak już wiemy indeksów nie opłaca się stosować tam gdzie często wartości powtarzają się, w tym właśnie celu można utworzyć indeks unikalny który sam zadba o to, a w przypadku próby wprowadzenia wartości która już jest wyrzuci błąd. Klucz Podstawowy - nazywany też kluczem głównym, dzięki temu ograniczeniu będziemy mogli w łatwy sposób odwoływać się do rekordów, służy on więc do identyfikacji poszczególnych wierszy. W jednej tabeli można utworzyć najwyżej jeden klucz podstawowy. Dla pola z kluczem głównym można dodatkowo określić parametr AUTO_INCREMENT. Na ten klucz automatycznie nakładana jest właściwość UNIQUE INDEX dzięki czemu do kolumny nie można wprowadzić powtarzającej się wartości. Klucz główny nie jest tym samym co unikalny indeks, przybiera on dodatkowe właściwości m.in można na niego nałożyć wspomniane AUTO_INCREMENT, a także odwoływać się przez klucz obcy. Pełny tekst FULLTEXT. Wsparcie MySQL do wyszukiwania pełnotekstowego. Index ten zakładamy dla pól, gdzie chcemy wyszukiwać dane za pomocą składni MATCH. Gdzie stosować: Gdy często w zapytaniach w klauzuli WHERE korzystamy z danego pola lub zestawu pól Gdy pola często wykorzystujemy do złączania tabel poprzez JOIN Gdy pola są często wykorzystywane do sortowania wyników tabeli Gdy pola są często wykorzystywane w funkcjach MIN() i MAX() Gdy rekordy w tabeli w danym polu mają bardzo różne wartości wyszukiwanie przy pomocy indeksu jest tym skuteczniejsze, im mniej rekordów ma szukaną przez nas wartość

Gdzie nie należy stosować: przede wszystkim nie należy stosować indexów wszędzie, indeks jest plikiem fizycznym co za tym idzie zajmuje on też miejsce na dysku indeksy przy poleceniach modyfikujących (INSERT, REPLACE, DELETE, UPDATE) muszą być także aktualizowane co za tym idzie przy tego typu poleceniach indeksy zamiast przyśpieszyć przyniosą odwrotny rezultat czyli zwolnią modyfikacje, w związku z czym nie należy ich stosować tam gdzie często jest coś modyfikowane, a rzadko pobierane indeksów nie opłaca się stosować tam gdzie wartość często się powtarza, nie powinno się zakładać indeksu wielokrotnie na tę samą kolumnę.