Relacyjny model danych 1.pdf

(416 KB) Pobierz
7.04.2015
Relacyjny model danych
Wykład 1
SQL ­ język relacyjnych i obiektowo­relacyjnych
baz danych – podstawowe konstrukcje
 
Streszczenie
W tym wykładzie rozpoczynamy naukę podstawowego języka baz danych ­ SQL.
Warto przypomnieć, że wprowadzenie do języka SQL było już przedstawione na
wykładach z "Relacyjnych Baz Danych". Część materiału będzie
więc teraz przypomnieniem.
Rozpoczniemy od krótkiego wprowadzenia w dziedzinę baz danych w tym od
przypomnienia definicji relacyjnego modelu danych (z pierwszego wykładu z
przedmiotu "Relacyjne bazy danych"). Następnie przejdziemy do nauki języka
SQL przedstawiając podstawowe informacje na temat typów danych, instrukcji
tworzących, modyfikujących i usuwających tabele bazy danych oraz instrukcji,
które wstawiają, usuwają i modyfikują dane w tabelach w bazie danych. Na
temat wymienionych instrukcji będzie też mowa w kolejnych wykładach. Na tym
wykładzie rozpoczniemy też dyskusję centralnego tematu w dziedzinie baz
danych, a mianowicie jak wydobywać dane z tabel w bazie danych. Wspomnimy
także o programie SQL*Plus, który jest standardowym, tekstowym interfejsem
do baz danych Oracle.
 
1.1 Bazy danych
Informacje (dane) są takim samym zasobem firmy, jak każdy inny (np.
pracownicy, materiały, urządzenia) i wymagającym, tak samo jak one,
zarządzania. Informacja może mieć wartość dla firmy tylko wtedy, gdy jest
dokładna i dostępna wtedy, kiedy trzeba. Baza danych stała się standardową
metodą strukturalizacji zarządzania informacją w większości organizacji.
Baza danych dotyczy zawsze pewnego fragmentu rzeczywistości związanego z
firmą, organizacją lub innym działającym lub planowanym systemem. Stanowi
kolekcję danych, których zadaniem jest reprezentowanie tego fragmentu
rzeczywistości. Baza danych jest na ogół częścią systemu informacyjnego,
obsługującego zapotrzebowania informacyjne związane z tym fragmentem
http://edu.pjwstk.edu.pl/wyklady/sbd/scb/w1.htm
1/29
7.04.2015
Relacyjny model danych
rzeczywistości.
W kontekście systemów informacyjnych warto podkreślić wszechobecność
informacji elektronicznej w codziennym życiu, dostępnej zaczynając od serwisów
działających na przeglądarkach internetowych, a kończąc na skomplikowanych
aplikacjach naukowych, jak projekty badania genomu człowieka i projekt
obserwacji Ziemi prowadzony przez NASA. Warto tu też wspomnieć o
zastosowaniach, które obejmują duże zbiory danych, takie jak biblioteki
elektroniczne, multimedialne bazy danych i interaktywne wideo.
Każda baza danych jest oparta na ustalonym modelu danych określającym
podstawowe zasady strukturalizacji i posługiwania się zbiorami danych. Obecnie
najpopularniejszym modelem jest relacyjny model danych, który za chwilę
przypomnimy. W wykładzie 7 będzie mowa o rozszerzeniu modelu relacyjnego
do obiektowo­relacyjnego modelu danych. W dodatkowym wykładzie
przedstawimy najnowszy model danych – oparty na języku XML.
Każda baza danych jest zarządzana przez wyspecjalizowany system, który
zarządza zapisem i przechowywaniem danych w pamięci komputera (przede
wszystkim na dyskach), zabezpiecza dane przed utratą i niepowołanym lub
nieodpowiednim użyciem oraz udostępnia dane zapisane w bazie danych przy
użyciu języka wysokiego poziomu opartego na przyjętym modelu danych.
Począwszy od tego wykładu aż do wykładu 7 będziemy prezentować język SQL
służący do komunikacji z bazami danych (oparty na relacyjnym i obiektowo­
relacyjnym modelu danych).
W wykładach od 8 do 13 będziemy studiować architekturę i zasady działania
systemu zarządzania bazą danych.
Natomiast wykłady od 14 do 15 i dodatkowe 2 i 3 zawierają materiał dotyczący
trzech specyficznych rodzajów systemów baz danych, odpowiednio systemów
rozproszonych, hurtowni danych oraz baz danych opartych na języku XML.
 
1.2 Relacyjny model danych
Relacyjny model danych pojawił się po raz pierwszy w artykule naukowym
Edgara Codda w 1970 roku. W terminologii matematycznej baza danych jest
zbiorem relacji.  Stąd historycznie pochodzi nazwa relacyjny model danych i
relacyjna baza danych. W matematyce definiuje się relację jako podzbiór
iloczynu kartezjańskiego zbiorów wartości. Reprezentacją relacji jest
http://edu.pjwstk.edu.pl/wyklady/sbd/scb/w1.htm
2/29
7.04.2015
Relacyjny model danych
dwuwymiarowa tabela złożona z kolumn i wierszy.
Przyjmuje się następujące założenia o tabeli jako podstawowym elemencie
relacyjnego modelu danych:
Liczba kolumn jest z góry ustalona.
Z każdą kolumną jest związana jej nazwa oraz dziedzina, określająca zbiór
wartości, jakie mogą wystąpić w kolumnie.
Na przecięciu wiersza i kolumny znajduje się pojedyncza (atomowa)
wartość należąca do dziedziny kolumny.
Wiersz reprezentuje jeden rekord informacji np. informacje o osobie.
W modelu relacyjnym abstrahujemy od kolejności wierszy (rekordów) i
kolumn (pól w rekordzie).
Przedstawimy teraz trzy tabele, które będą nam towarzyszyć w przykładach w
większości wykładów.
W tabeli EMP zapisujemy informacje o pracownikach hipotetycznej firmy. Jeden
wiersz reprezentuje dane jednego pracownika. W szczególności wynika z niego,
że pracownik o nazwisku "King" pracuje w departamencie o numerze 10, piastuje
stanowisko "PRESIDENT" oraz jego zarobki wynoszą 5000.
EMP
EMPNO ENAME     JOB       MGR HIREDATE   SAL COMM DEPTNO
‐‐‐‐‐ ‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐ ‐‐‐‐ ‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐ ‐‐‐‐ ‐‐‐‐‐‐
 7839 KING    PRESIDENT NULL 17‐NOV‐81  5000 NULL     10
 7698 BLAKE   MANAGER   7839 01‐MAY‐81  2850 NULL     30
 7782 CLARK   MANAGER   7839 09‐JUN‐81  2450 NULL     10
 7566 JONES   MANAGER   7839 02‐APR‐81  2975 NULL     20
 7654 MARTIN  SALESMAN  7698 28‐SEP‐81  1250 1400     30
 7499 ALLEN   SALESMAN  7698 20‐FEB‐81  1600  300     30
 7844 TURNER  SALESMAN  7698 08‐SEP‐81  1500    0     30
 7900 JAMES   CLERK     7698 03‐DEC‐81   950 NULL     30
 7521 WARD    SALESMAN  7698 22‐FEB‐81  1250  500     30
 7902 FORD    ANALYST   7566 03‐DEC‐81  3000 NULL     20
 7369 SMITH   CLERK     7902 17‐DEC‐80   800 NULL     20
 7788 SCOTT   ANALYST   7566 09‐DEC‐82  3000 NULL     20
 7876 ADAMS   CLERK     7788 12‐JAN‐83  1100 NULL     20
 7934 MILLER  CLERK     7782 23‐JAN‐82  1300 NULL     10
Wśród wartości występujących w tabeli EMP znajduje się charakterystyczna dla
baz danych tzw. pseudo­wartość NULL reprezentująca "brak wartości" w danym
http://edu.pjwstk.edu.pl/wyklady/sbd/scb/w1.htm
3/29
7.04.2015
Relacyjny model danych
polu. Jest to coś innego niż po prostu puste miejsce lub zero. W szczególności
możemy więc z tabeli EMP odczytać, że pracownik o nazwisku "King" nie ma
przełożonego oraz nie dotyczy go prowizja (COMM).
W tabeli DEPT zapisujemy informacje o departamentach (działach) hipotetycznej
firmy.
DEPT
DEPTNO DNAME       LOC
‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐
    10 ACCOUNTING  NEW YORK
    20 RESEARCH    DALLAS
    30 SALES       CHICAGO
    40 OPERATIONS  BOSTON
W tabeli SALGRADE zapisujemy informacje o klasach zaszeregowania zarobków
pracowników hipotetycznej firmy.
SALGRADE
GRADE LOSAL HISAL
‐‐‐‐‐ ‐‐‐‐‐ ‐‐‐‐‐
    1   700  1200
    2  1201  1400
    3  1401  2000
    4  2001  3000
    5  3001  9999
 
W szczególności możemy z tabeli SALGRADE odczytać, że grupa zaszeregowania
1 obejmuje zarobki od 700 do 1200.
Tabele EMP, DEPT i SALGRADE stanowią przykładową bazę danych używaną do
nauki SQL w materiałach firmy Oracle.
 
Znaczenie kolumny Deptno w tabeli Emp
Jej wartości nie opisują cechy pracownika.
Reprezentują związek danego pracownika z departamentem, o którym
informacja znajduje się w innej tabeli i tylko korzystając z identyfikatora
możemy rozpoznać w innej tabeli wiersz właściwego departamentu i odczytać
http://edu.pjwstk.edu.pl/wyklady/sbd/scb/w1.htm
4/29
7.04.2015
Relacyjny model danych
o nim informacje.
Istotne jest więc, aby identyfikator ten jednoznacznie określał dany
departament. W modelu relacyjnym nie ma innej możliwości identyfikacji
wiersza tylko poprzez wartości kolumn, które jednoznacznie identyfikują
wiersz.
Klucz główny i jednoznaczny
Dla każdej tabeli musi być określony jednoznaczny identyfikator nazywany
kluczem głównym ­ zbiór złożony z jednej lub więcej kolumn, w których
wartości jednoznacznie identyfikują cały wiersz.
Klucz jednoznaczny (nazywany też kluczem alternatywnym lub w skrócie
kluczem) ma tę samą własność co klucz główny przy czym klucz główny jest
tylko jeden, kluczy jednoznacznych w tabeli może być więcej niż jeden.
W tabeli Emp kluczem głównym jest jednoznaczny numer pracownika Empno.
Ename nie musi być kluczem!
W tabeli Dept kluczem głównym jest jednoznaczny numer departamentu
Deptno.
W tabeli Salgrade kluczem głównym jest jednoznaczny numer
zaszeregowania Grade.
Klucz obcy
Klucz obcy jest to zbiór złożony z jednej lub więcej kolumn, których
wartości występują jako wartości ustalonego klucza głównego lub
jednoznacznego w tej samej lub innej tabeli i są interpretowane jako
wskaźniki do wierszy w tej drugiej tabeli.
W tabeli Emp kluczem obcym jest numer Deptno, którego wartości pochodzą
z kolumny Deptno w tabeli Dept.
Na przykład, wartość 10 występująca w wierszu pracownika o nazwisku
"King" tabeli Emp stanowi odwołanie do wiersza w tabeli Dept, w którym są
zapisane informacje o departamencie o numerze 10 i nazwie "Accounting":
   "Pracownik King pracuje w departamencie Accounting"
W tabeli Emp kluczem obcym jest też numer Mgr, którego wartości pochodzą
http://edu.pjwstk.edu.pl/wyklady/sbd/scb/w1.htm
5/29
Zgłoś jeśli naruszono regulamin